{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:@studio-freight/lenis@1.0.42/dist/lenis.mjs", "ssg:https://framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/ALzPzo9ZL7qsyNt6jnNi/Smooth_Scroll.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/Vec3Func.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Vec3.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Geometry.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Program.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Renderer.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/Vec4Func.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/QuatFunc.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Quat.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/Mat4Func.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Mat4.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/EulerFunc.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Euler.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Transform.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/Mat3Func.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Mat3.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Mesh.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Texture.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/functions/Vec2Func.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Vec2.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/math/Vec4.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/RenderTarget.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Triangle.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Flowmap.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/core/Camera.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Orbit.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Raycast.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Curve.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/path/CubicBezierSegment.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/path/QuadraticBezierSegment.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/path/LineSegment.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/path/Path.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Tube.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Animation.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Skin.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/Polyline.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/GLTFAnimation.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/GLTFSkin.js", "ssg:https://ga.jspm.io/npm:ogl@1.0.8/src/extras/helpers/FaceNormalsHelper.js"],
  "sourcesContent": ["function t(e,i,s){return Math.max(e,Math.min(i,s))}class Animate{advance(e){if(!this.isRunning)return;let i=!1;if(this.lerp)this.value=(s=this.value,o=this.to,n=60*this.lerp,r=e,function(e,i,s){return(1-s)*e+s*i}(s,o,1-Math.exp(-n*r))),Math.round(this.value)===this.to&&(this.value=this.to,i=!0);else{this.currentTime+=e;const s=t(0,this.currentTime/this.duration,1);i=s>=1;const o=i?1:this.easing(s);this.value=this.from+(this.to-this.from)*o}var s,o,n,r;this.onUpdate?.(this.value,i),i&&this.stop()}stop(){this.isRunning=!1}fromTo(e,i,{lerp:s=.1,duration:o=1,easing:n=(e=>e),onStart:r,onUpdate:l}){this.from=this.value=e,this.to=i,this.lerp=s,this.duration=o,this.easing=n,this.currentTime=0,this.isRunning=!0,r?.(),this.onUpdate=l}}class Dimensions{constructor({wrapper:e,content:i,autoResize:s=!0,debounce:o=250}={}){this.wrapper=e,this.content=i,s&&(this.debouncedResize=function(e,i){let s;return function(){let o=arguments,n=this;clearTimeout(s),s=setTimeout((function(){e.apply(n,o)}),i)}}(this.resize,o),this.wrapper===window?window.addEventListener(\"resize\",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener(\"resize\",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(e,...i){let s=this.events[e]||[];for(let e=0,o=s.length;e<o;e++)s[e](...i)}on(e,i){return this.events[e]?.push(i)||(this.events[e]=[i]),()=>{this.events[e]=this.events[e]?.filter((e=>i!==e))}}off(e,i){this.events[e]=this.events[e]?.filter((e=>i!==e))}destroy(){this.events={}}}const e=100/6;class VirtualScroll{constructor(e,{wheelMultiplier:i=1,touchMultiplier:s=1}){this.element=e,this.wheelMultiplier=i,this.touchMultiplier=s,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}on(e,i){return this.emitter.on(e,i)}destroy(){this.emitter.destroy(),window.removeEventListener(\"resize\",this.onWindowResize,!1),this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}onTouchStart=e=>{const{clientX:i,clientY:s}=e.targetTouches?e.targetTouches[0]:e;this.touchStart.x=i,this.touchStart.y=s,this.lastDelta={x:0,y:0},this.emitter.emit(\"scroll\",{deltaX:0,deltaY:0,event:e})};onTouchMove=e=>{const{clientX:i,clientY:s}=e.targetTouches?e.targetTouches[0]:e,o=-(i-this.touchStart.x)*this.touchMultiplier,n=-(s-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=i,this.touchStart.y=s,this.lastDelta={x:o,y:n},this.emitter.emit(\"scroll\",{deltaX:o,deltaY:n,event:e})};onTouchEnd=e=>{this.emitter.emit(\"scroll\",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:e})};onWheel=i=>{let{deltaX:s,deltaY:o,deltaMode:n}=i;s*=1===n?e:2===n?this.windowWidth:1,o*=1===n?e:2===n?this.windowHeight:1,s*=this.wheelMultiplier,o*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{deltaX:s,deltaY:o,event:i})};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight}}class Lenis{constructor({wrapper:e=window,content:i=document.documentElement,wheelEventsTarget:s=e,eventsTarget:o=s,smoothWheel:n=!0,syncTouch:r=!1,syncTouchLerp:l=.075,touchInertiaMultiplier:h=35,duration:a,easing:c=(e=>Math.min(1,1.001-Math.pow(2,-10*e))),lerp:d=!a&&.1,infinite:p=!1,orientation:u=\"vertical\",gestureOrientation:m=\"vertical\",touchMultiplier:v=1,wheelMultiplier:g=1,autoResize:S=!0,__experimental__naiveDimensions:w=!1}={}){this.__isSmooth=!1,this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=({deltaX:e,deltaY:i,event:s})=>{if(s.ctrlKey)return;const o=s.type.includes(\"touch\"),n=s.type.includes(\"wheel\");if(this.options.syncTouch&&o&&\"touchstart\"===s.type&&!this.isStopped&&!this.isLocked)return void this.reset();const r=0===e&&0===i,l=\"vertical\"===this.options.gestureOrientation&&0===i||\"horizontal\"===this.options.gestureOrientation&&0===e;if(r||l)return;let h=s.composedPath();if(h=h.slice(0,h.indexOf(this.rootElement)),h.find((e=>{var i,s,r,l,h;return(null===(i=e.hasAttribute)||void 0===i?void 0:i.call(e,\"data-lenis-prevent\"))||o&&(null===(s=e.hasAttribute)||void 0===s?void 0:s.call(e,\"data-lenis-prevent-touch\"))||n&&(null===(r=e.hasAttribute)||void 0===r?void 0:r.call(e,\"data-lenis-prevent-wheel\"))||(null===(l=e.classList)||void 0===l?void 0:l.contains(\"lenis\"))&&!(null===(h=e.classList)||void 0===h?void 0:h.contains(\"lenis-stopped\"))})))return;if(this.isStopped||this.isLocked)return void s.preventDefault();if(this.isSmooth=this.options.syncTouch&&o||this.options.smoothWheel&&n,!this.isSmooth)return this.isScrolling=!1,void this.animate.stop();s.preventDefault();let a=i;\"both\"===this.options.gestureOrientation?a=Math.abs(i)>Math.abs(e)?i:e:\"horizontal\"===this.options.gestureOrientation&&(a=e);const c=o&&this.options.syncTouch,d=o&&\"touchend\"===s.type&&Math.abs(a)>5;d&&(a=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+a,Object.assign({programmatic:!1},c?{lerp:d?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(!this.__preventNextScrollEvent&&!this.isScrolling){const e=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.direction=Math.sign(this.animatedScroll-e),this.emit()}},window.lenisVersion=\"1.0.42\",e!==document.documentElement&&e!==document.body||(e=window),this.options={wrapper:e,content:i,wheelEventsTarget:s,eventsTarget:o,smoothWheel:n,syncTouch:r,syncTouchLerp:l,touchInertiaMultiplier:h,duration:a,easing:c,lerp:d,infinite:p,gestureOrientation:m,orientation:u,touchMultiplier:v,wheelMultiplier:g,autoResize:S,__experimental__naiveDimensions:w},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:e,content:i,autoResize:S}),this.toggleClassName(\"lenis\",!0),this.velocity=0,this.isLocked=!1,this.isStopped=!1,this.isSmooth=r||n,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(o,{touchMultiplier:v,wheelMultiplier:g}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.toggleClassName(\"lenis\",!1),this.toggleClassName(\"lenis-smooth\",!1),this.toggleClassName(\"lenis-scrolling\",!1),this.toggleClassName(\"lenis-stopped\",!1),this.toggleClassName(\"lenis-locked\",!1)}on(e,i){return this.emitter.on(e,i)}off(e,i){return this.emitter.off(e,i)}setScroll(e){this.isHorizontal?this.rootElement.scrollLeft=e:this.rootElement.scrollTop=e}resize(){this.dimensions.resize()}emit(){this.emitter.emit(\"scroll\",this)}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(e){const i=e-(this.time||e);this.time=e,this.animate.advance(.001*i)}scrollTo(e,{offset:i=0,immediate:s=!1,lock:o=!1,duration:n=this.options.duration,easing:r=this.options.easing,lerp:l=!n&&this.options.lerp,onComplete:h,force:a=!1,programmatic:c=!0}={}){if(!this.isStopped&&!this.isLocked||a){if([\"top\",\"left\",\"start\"].includes(e))e=0;else if([\"bottom\",\"right\",\"end\"].includes(e))e=this.limit;else{let s;if(\"string\"==typeof e?s=document.querySelector(e):(null==e?void 0:e.nodeType)&&(s=e),s){if(this.options.wrapper!==window){const e=this.options.wrapper.getBoundingClientRect();i-=this.isHorizontal?e.left:e.top}const o=s.getBoundingClientRect();e=(this.isHorizontal?o.left:o.top)+this.animatedScroll}}if(\"number\"==typeof e){if(e+=i,e=Math.round(e),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):e=t(0,e,this.limit),s)return this.animatedScroll=this.targetScroll=e,this.setScroll(this.scroll),this.reset(),void(null==h||h(this));if(!c){if(e===this.targetScroll)return;this.targetScroll=e}this.animate.fromTo(this.animatedScroll,e,{duration:n,easing:r,lerp:l,onStart:()=>{o&&(this.isLocked=!0),this.isScrolling=!0},onUpdate:(e,i)=>{this.isScrolling=!0,this.velocity=e-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=e,this.setScroll(this.scroll),c&&(this.targetScroll=e),i||this.emit(),i&&(this.reset(),this.emit(),null==h||h(this),this.__preventNextScrollEvent=!0,requestAnimationFrame((()=>{delete this.__preventNextScrollEvent})))}})}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?\"x\":\"y\"]}get isHorizontal(){return\"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?(e=this.animatedScroll,i=this.limit,(e%i+i)%i):this.animatedScroll;var e,i}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isSmooth(){return this.__isSmooth}set isSmooth(e){this.__isSmooth!==e&&(this.__isSmooth=e,this.toggleClassName(\"lenis-smooth\",e))}get isScrolling(){return this.__isScrolling}set isScrolling(e){this.__isScrolling!==e&&(this.__isScrolling=e,this.toggleClassName(\"lenis-scrolling\",e))}get isStopped(){return this.__isStopped}set isStopped(e){this.__isStopped!==e&&(this.__isStopped=e,this.toggleClassName(\"lenis-stopped\",e))}get isLocked(){return this.__isLocked}set isLocked(e){this.__isLocked!==e&&(this.__isLocked=e,this.toggleClassName(\"lenis-locked\",e))}get className(){let e=\"lenis\";return this.isStopped&&(e+=\" lenis-stopped\"),this.isLocked&&(e+=\" lenis-locked\"),this.isScrolling&&(e+=\" lenis-scrolling\"),this.isSmooth&&(e+=\" lenis-smooth\"),e}toggleClassName(e,i){this.rootElement.classList.toggle(e,i),this.emitter.emit(\"className change\",this)}}export{Lenis as default};\n//# sourceMappingURL=lenis.mjs.map\n", "import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"@studio-freight/lenis\";import{useEffect,useRef}from\"react\";/**\n * @framerDisableUnlink\n */export default function SmoothScroll(props){const{intensity}=props;const lenis=useRef(null);useEffect(()=>{if(lenis.current)lenis.current.scrollTo(0,{immediate:true});},[lenis]);useEffect(()=>{const overlayElement=document.getElementById(\"overlay\");if(overlayElement){const handleMutation=(mutationsList,observer)=>{for(const mutation of mutationsList){if(mutation.type===\"childList\"){const hasChildren=overlayElement.children.length>0;if(hasChildren){// Check if the html tag has the style \"overflow: hidden;\"\nconst htmlElement=document.documentElement;const computedStyle=window.getComputedStyle(htmlElement);const isOverflowHidden=computedStyle.getPropertyValue(\"overflow\")===\"hidden\";if(isOverflowHidden){lenis.current.stop();}else{lenis.current.start();}}else{lenis.current.start();}}}};const observer=new MutationObserver(handleMutation);const config={childList:true};observer.observe(overlayElement,config);return()=>observer.disconnect();}},[]);useEffect(()=>{lenis.current=new Lenis({duration:intensity/10});const raf=time=>{lenis.current.raf(time);requestAnimationFrame(raf);};requestAnimationFrame(raf);return()=>{lenis.current.destroy();lenis.current=null;};},[]);return /*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"style\",{children:`\n      html.lenis {\n        height: auto;\n      }\n\n      .lenis.lenis-smooth {\n        scroll-behavior: auto !important;\n      }\n\n      .lenis.lenis-smooth [data-lenis-prevent] {\n        overscroll-behavior: contain;\n      }\n\n      .lenis.lenis-stopped {\n        overflow: hidden;\n      }\n\n      .lenis.lenis-scrolling iframe {\n        pointer-events: none;\n      }\n    `})});}SmoothScroll.displayName=\"Smooth Scroll\";addPropertyControls(SmoothScroll,{intensity:{title:\"Intensity\",type:ControlType.Number,defaultValue:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Smooth_Scroll.map", "/**\n * Calculates the length of a vec3\n *\n * @param {vec3} a vector to calculate length of\n * @returns {Number} length of a\n */\nfunction length(t){let e=t[0];let n=t[1];let r=t[2];return Math.sqrt(e*e+n*n+r*r)}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the source vector\n * @returns {vec3} out\n */function copy(t,e){t[0]=e[0];t[1]=e[1];t[2]=e[2];return t}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */function set(t,e,n,r){t[0]=e;t[1]=n;t[2]=r;return t}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */function add(t,e,n){t[0]=e[0]+n[0];t[1]=e[1]+n[1];t[2]=e[2]+n[2];return t}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */function subtract(t,e,n){t[0]=e[0]-n[0];t[1]=e[1]-n[1];t[2]=e[2]-n[2];return t}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */function multiply(t,e,n){t[0]=e[0]*n[0];t[1]=e[1]*n[1];t[2]=e[2]*n[2];return t}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */function divide(t,e,n){t[0]=e[0]/n[0];t[1]=e[1]/n[1];t[2]=e[2]/n[2];return t}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */function scale(t,e,n){t[0]=e[0]*n;t[1]=e[1]*n;t[2]=e[2]*n;return t}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} distance between a and b\n */function distance(t,e){let n=e[0]-t[0];let r=e[1]-t[1];let u=e[2]-t[2];return Math.sqrt(n*n+r*r+u*u)}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} squared distance between a and b\n */function squaredDistance(t,e){let n=e[0]-t[0];let r=e[1]-t[1];let u=e[2]-t[2];return n*n+r*r+u*u}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */function squaredLength(t){let e=t[0];let n=t[1];let r=t[2];return e*e+n*n+r*r}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */function negate(t,e){t[0]=-e[0];t[1]=-e[1];t[2]=-e[2];return t}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */function inverse(t,e){t[0]=1/e[0];t[1]=1/e[1];t[2]=1/e[2];return t}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to normalize\n * @returns {vec3} out\n */function normalize(t,e){let n=e[0];let r=e[1];let u=e[2];let l=n*n+r*r+u*u;l>0&&(l=1/Math.sqrt(l));t[0]=e[0]*l;t[1]=e[1]*l;t[2]=e[2]*l;return t}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} dot product of a and b\n */function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */function cross(t,e,n){let r=e[0],u=e[1],l=e[2];let o=n[0],a=n[1],c=n[2];t[0]=u*c-l*a;t[1]=l*o-r*c;t[2]=r*a-u*o;return t}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */function lerp(t,e,n,r){let u=e[0];let l=e[1];let o=e[2];t[0]=u+r*(n[0]-u);t[1]=l+r*(n[1]-l);t[2]=o+r*(n[2]-o);return t}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec3} out\n */function transformMat4(t,e,n){let r=e[0],u=e[1],l=e[2];let o=n[3]*r+n[7]*u+n[11]*l+n[15];o=o||1;t[0]=(n[0]*r+n[4]*u+n[8]*l+n[12])/o;t[1]=(n[1]*r+n[5]*u+n[9]*l+n[13])/o;t[2]=(n[2]*r+n[6]*u+n[10]*l+n[14])/o;return t}function scaleRotateMat4(t,e,n){let r=e[0],u=e[1],l=e[2];let o=n[3]*r+n[7]*u+n[11]*l+n[15];o=o||1;t[0]=(n[0]*r+n[4]*u+n[8]*l)/o;t[1]=(n[1]*r+n[5]*u+n[9]*l)/o;t[2]=(n[2]*r+n[6]*u+n[10]*l)/o;return t}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */function transformMat3(t,e,n){let r=e[0],u=e[1],l=e[2];t[0]=r*n[0]+u*n[3]+l*n[6];t[1]=r*n[1]+u*n[4]+l*n[7];t[2]=r*n[2]+u*n[5]+l*n[8];return t}\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */function transformQuat(t,e,n){let r=e[0],u=e[1],l=e[2];let o=n[0],a=n[1],c=n[2],i=n[3];let s=a*l-c*u;let f=c*r-o*l;let d=o*u-a*r;let m=a*d-c*f;let M=c*s-o*d;let h=o*f-a*s;let p=i*2;s*=p;f*=p;d*=p;m*=2;M*=2;h*=2;t[0]=r+s+m;t[1]=u+f+M;t[2]=l+d+h;return t}\n/**\n * Get the angle between two 3D vectors\n * @param {vec3} a The first operand\n * @param {vec3} b The second operand\n * @returns {Number} The angle in radians\n */const t=function(){const t=[0,0,0];const e=[0,0,0];return function(n,r){copy(t,n);copy(e,r);normalize(t,t);normalize(e,e);let u=dot(t,e);return u>1?0:u<-1?Math.PI:Math.acos(u)}}();\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {vec3} a The first vector.\n * @param {vec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */function exactEquals(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}export{add,t as angle,copy,cross,distance,divide,dot,exactEquals,inverse,length,lerp,multiply,negate,normalize,scale,scaleRotateMat4,set,squaredDistance,squaredLength,subtract,transformMat3,transformMat4,transformQuat};\n//# sourceMappingURL=Vec3Func.js.map\n", "import{set as t,copy as s,add as i,subtract as r,multiply as h,scale as e,divide as n,inverse as u,length as a,distance as o,squaredLength as c,squaredDistance as l,negate as p,cross as y,normalize as d,dot as g,exactEquals as m,transformMat3 as x,transformMat4 as f,scaleRotateMat4 as z,transformQuat as V,angle as q,lerp as A}from\"./functions/Vec3Func.js\";class Vec3 extends Array{constructor(t=0,s=t,i=t){super(t,s,i);return this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set(s,i=s,r=s){if(s.length)return this.copy(s);t(this,s,i,r);return this}copy(t){s(this,t);return this}add(t,s){s?i(this,t,s):i(this,this,t);return this}sub(t,s){s?r(this,t,s):r(this,this,t);return this}multiply(t){t.length?h(this,this,t):e(this,this,t);return this}divide(t){t.length?n(this,this,t):e(this,this,1/t);return this}inverse(t=this){u(this,t);return this}len(){return a(this)}distance(t){return t?o(this,t):a(this)}squaredLen(){return c(this)}squaredDistance(t){return t?l(this,t):c(this)}negate(t=this){p(this,t);return this}cross(t,s){s?y(this,t,s):y(this,this,t);return this}scale(t){e(this,this,t);return this}normalize(){d(this,this);return this}dot(t){return g(this,t)}equals(t){return m(this,t)}applyMatrix3(t){x(this,this,t);return this}applyMatrix4(t){f(this,this,t);return this}scaleRotateMatrix4(t){z(this,this,t);return this}applyQuaternion(t){V(this,this,t);return this}angle(t){return q(this,t)}lerp(t,s){A(this,this,t,s);return this}clone(){return new Vec3(this[0],this[1],this[2])}fromArray(t,s=0){this[0]=t[s];this[1]=t[s+1];this[2]=t[s+2];return this}toArray(t=[],s=0){t[s]=this[0];t[s+1]=this[1];t[s+2]=this[2];return t}transformDirection(t){const s=this[0];const i=this[1];const r=this[2];this[0]=t[0]*s+t[4]*i+t[8]*r;this[1]=t[1]*s+t[5]*i+t[9]*r;this[2]=t[2]*s+t[6]*i+t[10]*r;return this.normalize()}}export{Vec3};\n//# sourceMappingURL=Vec3.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";const e=new t;let s=1;let i=1;let r=false;class Geometry{constructor(t,e={}){t.canvas||console.error(\"gl not passed as first argument to Geometry\");this.gl=t;this.attributes=e;this.id=s++;this.VAOs={};this.drawRange={start:0,count:0};this.instancedCount=0;this.gl.renderer.bindVertexArray(null);this.gl.renderer.currentGeometry=null;this.glState=this.gl.renderer.state;for(let t in e)this.addAttribute(t,e[t])}addAttribute(t,e){this.attributes[t]=e;e.id=i++;e.size=e.size||1;e.type=e.type||(e.data.constructor===Float32Array?this.gl.FLOAT:e.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT);e.target=t===\"index\"?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER;e.normalized=e.normalized||false;e.stride=e.stride||0;e.offset=e.offset||0;e.count=e.count||(e.stride?e.data.byteLength/e.stride:e.data.length/e.size);e.divisor=e.instanced||0;e.needsUpdate=false;e.usage=e.usage||this.gl.STATIC_DRAW;e.buffer||this.updateAttribute(e);if(e.divisor){this.isInstanced=true;if(this.instancedCount&&this.instancedCount!==e.count*e.divisor){console.warn(\"geometry has multiple instanced buffers of different length\");return this.instancedCount=Math.min(this.instancedCount,e.count*e.divisor)}this.instancedCount=e.count*e.divisor}else t===\"index\"?this.drawRange.count=e.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,e.count))}updateAttribute(t){const e=!t.buffer;e&&(t.buffer=this.gl.createBuffer());if(this.glState.boundBuffer!==t.buffer){this.gl.bindBuffer(t.target,t.buffer);this.glState.boundBuffer=t.buffer}e?this.gl.bufferData(t.target,t.data,t.usage):this.gl.bufferSubData(t.target,0,t.data);t.needsUpdate=false}setIndex(t){this.addAttribute(\"index\",t)}setDrawRange(t,e){this.drawRange.start=t;this.drawRange.count=e}setInstancedCount(t){this.instancedCount=t}createVAO(t){this.VAOs[t.attributeOrder]=this.gl.renderer.createVertexArray();this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]);this.bindAttributes(t)}bindAttributes(t){t.attributeLocations.forEach(((t,{name:e,type:s})=>{if(!this.attributes[e]){console.warn(`active attribute ${e} not being supplied`);return}const i=this.attributes[e];this.gl.bindBuffer(i.target,i.buffer);this.glState.boundBuffer=i.buffer;let r=1;s===35674&&(r=2);s===35675&&(r=3);s===35676&&(r=4);const n=i.size/r;const a=r===1?0:r*r*4;const d=r===1?0:r*4;for(let e=0;e<r;e++){this.gl.vertexAttribPointer(t+e,n,i.type,i.normalized,i.stride+a,i.offset+e*d);this.gl.enableVertexAttribArray(t+e);this.gl.renderer.vertexAttribDivisor(t+e,i.divisor)}}));this.attributes.index&&this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.attributes.index.buffer)}draw({program:t,mode:e=this.gl.TRIANGLES}){if(this.gl.renderer.currentGeometry!==`${this.id}_${t.attributeOrder}`){this.VAOs[t.attributeOrder]||this.createVAO(t);this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]);this.gl.renderer.currentGeometry=`${this.id}_${t.attributeOrder}`}t.attributeLocations.forEach(((t,{name:e})=>{const s=this.attributes[e];s.needsUpdate&&this.updateAttribute(s)}));let s=2;this.attributes.index?.type===this.gl.UNSIGNED_INT&&(s=4);this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(e,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s,this.instancedCount):this.gl.renderer.drawArraysInstanced(e,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(e,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s):this.gl.drawArrays(e,this.drawRange.start,this.drawRange.count)}getPosition(){const t=this.attributes.position;if(t.data)return t;if(!r){console.warn(\"No position buffer data found to compute bounds\");return r=true}}computeBoundingBox(e){e||(e=this.getPosition());const s=e.data;const i=e.size;this.bounds||(this.bounds={min:new t,max:new t,center:new t,scale:new t,radius:Infinity});const r=this.bounds.min;const n=this.bounds.max;const a=this.bounds.center;const d=this.bounds.scale;r.set(Infinity);n.set(-Infinity);for(let t=0,e=s.length;t<e;t+=i){const e=s[t];const i=s[t+1];const a=s[t+2];r.x=Math.min(e,r.x);r.y=Math.min(i,r.y);r.z=Math.min(a,r.z);n.x=Math.max(e,n.x);n.y=Math.max(i,n.y);n.z=Math.max(a,n.z)}d.sub(n,r);a.add(r,n).divide(2)}computeBoundingSphere(t){t||(t=this.getPosition());const s=t.data;const i=t.size;this.bounds||this.computeBoundingBox(t);let r=0;for(let t=0,n=s.length;t<n;t+=i){e.fromArray(s,t);r=Math.max(r,this.bounds.center.squaredDistance(e))}this.bounds.radius=Math.sqrt(r)}remove(){for(let t in this.VAOs){this.gl.renderer.deleteVertexArray(this.VAOs[t]);delete this.VAOs[t]}for(let t in this.attributes){this.gl.deleteBuffer(this.attributes[t].buffer);delete this.attributes[t]}}}export{Geometry};\n//# sourceMappingURL=Geometry.js.map\n", "let e=1;const t={};class Program{constructor(t,{vertex:r,fragment:s,uniforms:n={},transparent:i=false,cullFace:a=t.BACK,frontFace:h=t.CCW,depthTest:o=true,depthWrite:l=true,depthFunc:g=t.LEQUAL}={}){t.canvas||console.error(\"gl not passed as first argument to Program\");this.gl=t;this.uniforms=n;this.id=e++;r||console.warn(\"vertex shader not supplied\");s||console.warn(\"fragment shader not supplied\");this.transparent=i;this.cullFace=a;this.frontFace=h;this.depthTest=o;this.depthWrite=l;this.depthFunc=g;this.blendFunc={};this.blendEquation={};this.transparent&&!this.blendFunc.src&&(this.gl.renderer.premultipliedAlpha?this.setBlendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA):this.setBlendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA));this.vertexShader=t.createShader(t.VERTEX_SHADER);this.fragmentShader=t.createShader(t.FRAGMENT_SHADER);this.program=t.createProgram();t.attachShader(this.program,this.vertexShader);t.attachShader(this.program,this.fragmentShader);this.setShaders({vertex:r,fragment:s})}setShaders({vertex:e,fragment:t}){if(e){this.gl.shaderSource(this.vertexShader,e);this.gl.compileShader(this.vertexShader);this.gl.getShaderInfoLog(this.vertexShader)!==\"\"&&console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)}\\nVertex Shader\\n${addLineNumbers(e)}`)}if(t){this.gl.shaderSource(this.fragmentShader,t);this.gl.compileShader(this.fragmentShader);this.gl.getShaderInfoLog(this.fragmentShader)!==\"\"&&console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)}\\nFragment Shader\\n${addLineNumbers(t)}`)}this.gl.linkProgram(this.program);if(!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS))return console.warn(this.gl.getProgramInfoLog(this.program));this.uniformLocations=new Map;let r=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_UNIFORMS);for(let e=0;e<r;e++){let t=this.gl.getActiveUniform(this.program,e);this.uniformLocations.set(t,this.gl.getUniformLocation(this.program,t.name));const r=t.name.match(/(\\w+)/g);t.uniformName=r[0];t.nameComponents=r.slice(1)}this.attributeLocations=new Map;const s=[];const n=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES);for(let e=0;e<n;e++){const t=this.gl.getActiveAttrib(this.program,e);const r=this.gl.getAttribLocation(this.program,t.name);if(r!==-1){s[r]=t.name;this.attributeLocations.set(t,r)}}this.attributeOrder=s.join(\"\")}setBlendFunc(e,t,r,s){this.blendFunc.src=e;this.blendFunc.dst=t;this.blendFunc.srcAlpha=r;this.blendFunc.dstAlpha=s;e&&(this.transparent=true)}setBlendEquation(e,t){this.blendEquation.modeRGB=e;this.blendEquation.modeAlpha=t}applyState(){this.depthTest?this.gl.renderer.enable(this.gl.DEPTH_TEST):this.gl.renderer.disable(this.gl.DEPTH_TEST);this.cullFace?this.gl.renderer.enable(this.gl.CULL_FACE):this.gl.renderer.disable(this.gl.CULL_FACE);this.blendFunc.src?this.gl.renderer.enable(this.gl.BLEND):this.gl.renderer.disable(this.gl.BLEND);this.cullFace&&this.gl.renderer.setCullFace(this.cullFace);this.gl.renderer.setFrontFace(this.frontFace);this.gl.renderer.setDepthMask(this.depthWrite);this.gl.renderer.setDepthFunc(this.depthFunc);this.blendFunc.src&&this.gl.renderer.setBlendFunc(this.blendFunc.src,this.blendFunc.dst,this.blendFunc.srcAlpha,this.blendFunc.dstAlpha);this.gl.renderer.setBlendEquation(this.blendEquation.modeRGB,this.blendEquation.modeAlpha)}use({flipFaces:e=false}={}){let t=-1;const r=this.gl.renderer.state.currentProgram===this.id;if(!r){this.gl.useProgram(this.program);this.gl.renderer.state.currentProgram=this.id}this.uniformLocations.forEach(((e,r)=>{let s=this.uniforms[r.uniformName];for(const e of r.nameComponents){if(!s)break;if(!(e in s)){if(Array.isArray(s.value))break;s=void 0;break}s=s[e]}if(!s)return warn(`Active uniform ${r.name} has not been supplied`);if(s&&s.value===void 0)return warn(`${r.name} uniform is missing a value parameter`);if(s.value.texture){t+=1;s.value.update(t);return setUniform(this.gl,r.type,e,t)}if(s.value.length&&s.value[0].texture){const n=[];s.value.forEach((e=>{t+=1;e.update(t);n.push(t)}));return setUniform(this.gl,r.type,e,n)}setUniform(this.gl,r.type,e,s.value)}));this.applyState();e&&this.gl.renderer.setFrontFace(this.frontFace===this.gl.CCW?this.gl.CW:this.gl.CCW)}remove(){this.gl.deleteProgram(this.program)}}function setUniform(e,t,r,s){s=s.length?flatten(s):s;const n=e.renderer.state.uniformLocations.get(r);if(s.length)if(n===void 0||n.length!==s.length)e.renderer.state.uniformLocations.set(r,s.slice(0));else{if(arraysEqual(n,s))return;n.set?n.set(s):setArray(n,s);e.renderer.state.uniformLocations.set(r,n)}else{if(n===s)return;e.renderer.state.uniformLocations.set(r,s)}switch(t){case 5126:return s.length?e.uniform1fv(r,s):e.uniform1f(r,s);case 35664:return e.uniform2fv(r,s);case 35665:return e.uniform3fv(r,s);case 35666:return e.uniform4fv(r,s);case 35670:case 5124:case 35678:case 36306:case 35680:case 36289:return s.length?e.uniform1iv(r,s):e.uniform1i(r,s);case 35671:case 35667:return e.uniform2iv(r,s);case 35672:case 35668:return e.uniform3iv(r,s);case 35673:case 35669:return e.uniform4iv(r,s);case 35674:return e.uniformMatrix2fv(r,false,s);case 35675:return e.uniformMatrix3fv(r,false,s);case 35676:return e.uniformMatrix4fv(r,false,s)}}function addLineNumbers(e){let t=e.split(\"\\n\");for(let e=0;e<t.length;e++)t[e]=e+1+\": \"+t[e];return t.join(\"\\n\")}function flatten(e){const r=e.length;const s=e[0].length;if(s===void 0)return e;const n=r*s;let i=t[n];i||(t[n]=i=new Float32Array(n));for(let t=0;t<r;t++)i.set(e[t],t*s);return i}function arraysEqual(e,t){if(e.length!==t.length)return false;for(let r=0,s=e.length;r<s;r++)if(e[r]!==t[r])return false;return true}function setArray(e,t){for(let r=0,s=e.length;r<s;r++)e[r]=t[r]}let r=0;function warn(e){if(!(r>100)){console.warn(e);r++;r>100&&console.warn(\"More than 100 program warnings - stopping logs.\")}}export{Program};\n//# sourceMappingURL=Program.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";const e=new t;let s=1;class Renderer{constructor({canvas:t=document.createElement(\"canvas\"),width:e=300,height:i=150,dpr:r=1,alpha:a=false,depth:n=true,stencil:h=false,antialias:l=false,premultipliedAlpha:d=false,preserveDrawingBuffer:o=false,powerPreference:u=\"default\",autoClear:c=true,webgl:p=2}={}){const g={alpha:a,depth:n,stencil:h,antialias:l,premultipliedAlpha:d,preserveDrawingBuffer:o,powerPreference:u};this.dpr=r;this.alpha=a;this.color=true;this.depth=n;this.stencil=h;this.premultipliedAlpha=d;this.autoClear=c;this.id=s++;p===2&&(this.gl=t.getContext(\"webgl2\",g));this.isWebgl2=!!this.gl;this.gl||(this.gl=t.getContext(\"webgl\",g));this.gl||console.error(\"unable to create webgl context\");this.gl.renderer=this;this.setSize(e,i);this.state={};this.state.blendFunc={src:this.gl.ONE,dst:this.gl.ZERO};this.state.blendEquation={modeRGB:this.gl.FUNC_ADD};this.state.cullFace=false;this.state.frontFace=this.gl.CCW;this.state.depthMask=true;this.state.depthFunc=this.gl.LEQUAL;this.state.premultiplyAlpha=false;this.state.flipY=false;this.state.unpackAlignment=4;this.state.framebuffer=null;this.state.viewport={x:0,y:0,width:null,height:null};this.state.textureUnits=[];this.state.activeTextureUnit=0;this.state.boundBuffer=null;this.state.uniformLocations=new Map;this.state.currentProgram=null;this.extensions={};if(this.isWebgl2){this.getExtension(\"EXT_color_buffer_float\");this.getExtension(\"OES_texture_float_linear\")}else{this.getExtension(\"OES_texture_float\");this.getExtension(\"OES_texture_float_linear\");this.getExtension(\"OES_texture_half_float\");this.getExtension(\"OES_texture_half_float_linear\");this.getExtension(\"OES_element_index_uint\");this.getExtension(\"OES_standard_derivatives\");this.getExtension(\"EXT_sRGB\");this.getExtension(\"WEBGL_depth_texture\");this.getExtension(\"WEBGL_draw_buffers\")}this.getExtension(\"WEBGL_compressed_texture_astc\");this.getExtension(\"EXT_texture_compression_bptc\");this.getExtension(\"WEBGL_compressed_texture_s3tc\");this.getExtension(\"WEBGL_compressed_texture_etc1\");this.getExtension(\"WEBGL_compressed_texture_pvrtc\");this.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");this.vertexAttribDivisor=this.getExtension(\"ANGLE_instanced_arrays\",\"vertexAttribDivisor\",\"vertexAttribDivisorANGLE\");this.drawArraysInstanced=this.getExtension(\"ANGLE_instanced_arrays\",\"drawArraysInstanced\",\"drawArraysInstancedANGLE\");this.drawElementsInstanced=this.getExtension(\"ANGLE_instanced_arrays\",\"drawElementsInstanced\",\"drawElementsInstancedANGLE\");this.createVertexArray=this.getExtension(\"OES_vertex_array_object\",\"createVertexArray\",\"createVertexArrayOES\");this.bindVertexArray=this.getExtension(\"OES_vertex_array_object\",\"bindVertexArray\",\"bindVertexArrayOES\");this.deleteVertexArray=this.getExtension(\"OES_vertex_array_object\",\"deleteVertexArray\",\"deleteVertexArrayOES\");this.drawBuffers=this.getExtension(\"WEBGL_draw_buffers\",\"drawBuffers\",\"drawBuffersWEBGL\");this.parameters={};this.parameters.maxTextureUnits=this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);this.parameters.maxAnisotropy=this.getExtension(\"EXT_texture_filter_anisotropic\")?this.gl.getParameter(this.getExtension(\"EXT_texture_filter_anisotropic\").MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}setSize(t,e){this.width=t;this.height=e;this.gl.canvas.width=t*this.dpr;this.gl.canvas.height=e*this.dpr;this.gl.canvas.style&&Object.assign(this.gl.canvas.style,{width:t+\"px\",height:e+\"px\"})}setViewport(t,e,s=0,i=0){if(this.state.viewport.width!==t||this.state.viewport.height!==e){this.state.viewport.width=t;this.state.viewport.height=e;this.state.viewport.x=s;this.state.viewport.y=i;this.gl.viewport(s,i,t,e)}}setScissor(t,e,s=0,i=0){this.gl.scissor(s,i,t,e)}enable(t){if(this.state[t]!==true){this.gl.enable(t);this.state[t]=true}}disable(t){if(this.state[t]!==false){this.gl.disable(t);this.state[t]=false}}setBlendFunc(t,e,s,i){if(this.state.blendFunc.src!==t||this.state.blendFunc.dst!==e||this.state.blendFunc.srcAlpha!==s||this.state.blendFunc.dstAlpha!==i){this.state.blendFunc.src=t;this.state.blendFunc.dst=e;this.state.blendFunc.srcAlpha=s;this.state.blendFunc.dstAlpha=i;s!==void 0?this.gl.blendFuncSeparate(t,e,s,i):this.gl.blendFunc(t,e)}}setBlendEquation(t,e){t=t||this.gl.FUNC_ADD;if(this.state.blendEquation.modeRGB!==t||this.state.blendEquation.modeAlpha!==e){this.state.blendEquation.modeRGB=t;this.state.blendEquation.modeAlpha=e;e!==void 0?this.gl.blendEquationSeparate(t,e):this.gl.blendEquation(t)}}setCullFace(t){if(this.state.cullFace!==t){this.state.cullFace=t;this.gl.cullFace(t)}}setFrontFace(t){if(this.state.frontFace!==t){this.state.frontFace=t;this.gl.frontFace(t)}}setDepthMask(t){if(this.state.depthMask!==t){this.state.depthMask=t;this.gl.depthMask(t)}}setDepthFunc(t){if(this.state.depthFunc!==t){this.state.depthFunc=t;this.gl.depthFunc(t)}}activeTexture(t){if(this.state.activeTextureUnit!==t){this.state.activeTextureUnit=t;this.gl.activeTexture(this.gl.TEXTURE0+t)}}bindFramebuffer({target:t=this.gl.FRAMEBUFFER,buffer:e=null}={}){if(this.state.framebuffer!==e){this.state.framebuffer=e;this.gl.bindFramebuffer(t,e)}}getExtension(t,e,s){if(e&&this.gl[e])return this.gl[e].bind(this.gl);this.extensions[t]||(this.extensions[t]=this.gl.getExtension(t));return e?this.extensions[t]?this.extensions[t][s].bind(this.extensions[t]):null:this.extensions[t]}sortOpaque(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program.id!==e.program.id?t.program.id-e.program.id:t.zDepth!==e.zDepth?t.zDepth-e.zDepth:e.id-t.id}sortTransparent(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.zDepth!==e.zDepth?e.zDepth-t.zDepth:e.id-t.id}sortUI(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program.id!==e.program.id?t.program.id-e.program.id:e.id-t.id}getRenderList({scene:t,camera:s,frustumCull:i,sort:r}){let a=[];s&&i&&s.updateFrustum();t.traverse((t=>{if(!t.visible)return true;t.draw&&(i&&t.frustumCulled&&s&&!s.frustumIntersectsMesh(t)||a.push(t))}));if(r){const t=[];const i=[];const r=[];a.forEach((a=>{a.program.transparent?a.program.depthTest?i.push(a):r.push(a):t.push(a);a.zDepth=0;if(a.renderOrder===0&&a.program.depthTest&&s){a.worldMatrix.getTranslation(e);e.applyMatrix4(s.projectionViewMatrix);a.zDepth=e.z}}));t.sort(this.sortOpaque);i.sort(this.sortTransparent);r.sort(this.sortUI);a=t.concat(i,r)}return a}render({scene:t,camera:e,target:s=null,update:i=true,sort:r=true,frustumCull:a=true,clear:n}){if(s===null){this.bindFramebuffer();this.setViewport(this.width*this.dpr,this.height*this.dpr)}else{this.bindFramebuffer(s);this.setViewport(s.width,s.height)}if(n||this.autoClear&&n!==false){if(this.depth&&(!s||s.depth)){this.enable(this.gl.DEPTH_TEST);this.setDepthMask(true)}this.gl.clear((this.color?this.gl.COLOR_BUFFER_BIT:0)|(this.depth?this.gl.DEPTH_BUFFER_BIT:0)|(this.stencil?this.gl.STENCIL_BUFFER_BIT:0))}i&&t.updateMatrixWorld();e&&e.updateMatrixWorld();const h=this.getRenderList({scene:t,camera:e,frustumCull:a,sort:r});h.forEach((t=>{t.draw({camera:e})}))}}export{Renderer};\n//# sourceMappingURL=Renderer.js.map\n", "/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nfunction copy(t,e){t[0]=e[0];t[1]=e[1];t[2]=e[2];t[3]=e[3];return t}\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */function set(t,e,n,r,l){t[0]=e;t[1]=n;t[2]=r;t[3]=l;return t}\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */function add(t,e,n){t[0]=e[0]+n[0];t[1]=e[1]+n[1];t[2]=e[2]+n[2];t[3]=e[3]+n[3];return t}\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */function scale(t,e,n){t[0]=e[0]*n;t[1]=e[1]*n;t[2]=e[2]*n;t[3]=e[3]*n;return t}\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */function length(t){let e=t[0];let n=t[1];let r=t[2];let l=t[3];return Math.sqrt(e*e+n*n+r*r+l*l)}\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */function normalize(t,e){let n=e[0];let r=e[1];let l=e[2];let u=e[3];let o=n*n+r*r+l*l+u*u;o>0&&(o=1/Math.sqrt(o));t[0]=n*o;t[1]=r*o;t[2]=l*o;t[3]=u*o;return t}\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */function lerp(t,e,n,r){let l=e[0];let u=e[1];let o=e[2];let c=e[3];t[0]=l+r*(n[0]-l);t[1]=u+r*(n[1]-u);t[2]=o+r*(n[2]-o);t[3]=c+r*(n[3]-c);return t}export{add,copy,dot,length,lerp,normalize,scale,set};\n//# sourceMappingURL=Vec4Func.js.map\n", "import{copy as t,set as e,add as n,scale as s,dot as l,lerp as o,length as r,normalize as a}from\"./Vec4Func.js\";\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */function identity(t){t[0]=0;t[1]=0;t[2]=0;t[3]=1;return t}\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/function setAxisAngle(t,e,n){n*=.5;let s=Math.sin(n);t[0]=s*e[0];t[1]=s*e[1];t[2]=s*e[2];t[3]=Math.cos(n);return t}\n/**\n * Multiplies two quats\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n */function multiply(t,e,n){let s=e[0],l=e[1],o=e[2],r=e[3];let a=n[0],i=n[1],c=n[2],u=n[3];t[0]=s*u+r*a+l*c-o*i;t[1]=l*u+r*i+o*a-s*c;t[2]=o*u+r*c+s*i-l*a;t[3]=r*u-s*a-l*i-o*c;return t}\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */function rotateX(t,e,n){n*=.5;let s=e[0],l=e[1],o=e[2],r=e[3];let a=Math.sin(n),i=Math.cos(n);t[0]=s*i+r*a;t[1]=l*i+o*a;t[2]=o*i-l*a;t[3]=r*i-s*a;return t}\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */function rotateY(t,e,n){n*=.5;let s=e[0],l=e[1],o=e[2],r=e[3];let a=Math.sin(n),i=Math.cos(n);t[0]=s*i-o*a;t[1]=l*i+r*a;t[2]=o*i+s*a;t[3]=r*i-l*a;return t}\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */function rotateZ(t,e,n){n*=.5;let s=e[0],l=e[1],o=e[2],r=e[3];let a=Math.sin(n),i=Math.cos(n);t[0]=s*i+l*a;t[1]=l*i-s*a;t[2]=o*i+r*a;t[3]=r*i-o*a;return t}\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n */function slerp(t,e,n,s){let l=e[0],o=e[1],r=e[2],a=e[3];let i=n[0],c=n[1],u=n[2],f=n[3];let M,h,m,X,Y;h=l*i+o*c+r*u+a*f;if(h<0){h=-h;i=-i;c=-c;u=-u;f=-f}if(1-h>1e-6){M=Math.acos(h);m=Math.sin(M);X=Math.sin((1-s)*M)/m;Y=Math.sin(s*M)/m}else{X=1-s;Y=s}t[0]=X*l+Y*i;t[1]=X*o+Y*c;t[2]=X*r+Y*u;t[3]=X*a+Y*f;return t}\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate inverse of\n * @returns {quat} out\n */function invert(t,e){let n=e[0],s=e[1],l=e[2],o=e[3];let r=n*n+s*s+l*l+o*o;let a=r?1/r:0;t[0]=-n*a;t[1]=-s*a;t[2]=-l*a;t[3]=o*a;return t}\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate conjugate of\n * @returns {quat} out\n */function conjugate(t,e){t[0]=-e[0];t[1]=-e[1];t[2]=-e[2];t[3]=e[3];return t}\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {mat3} m rotation matrix\n * @returns {quat} out\n * @function\n */function fromMat3(t,e){let n=e[0]+e[4]+e[8];let s;if(n>0){s=Math.sqrt(n+1);t[3]=.5*s;s=.5/s;t[0]=(e[5]-e[7])*s;t[1]=(e[6]-e[2])*s;t[2]=(e[1]-e[3])*s}else{let n=0;e[4]>e[0]&&(n=1);e[8]>e[n*3+n]&&(n=2);let l=(n+1)%3;let o=(n+2)%3;s=Math.sqrt(e[n*3+n]-e[l*3+l]-e[o*3+o]+1);t[n]=.5*s;s=.5/s;t[3]=(e[l*3+o]-e[o*3+l])*s;t[l]=(e[l*3+n]+e[n*3+l])*s;t[o]=(e[o*3+n]+e[n*3+o])*s}return t}\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} euler Angles to rotate around each axis in degrees.\n * @param {String} order detailing order of operations. Default 'XYZ'.\n * @returns {quat} out\n * @function\n */function fromEuler(t,e,n=\"YXZ\"){let s=Math.sin(e[0]*.5);let l=Math.cos(e[0]*.5);let o=Math.sin(e[1]*.5);let r=Math.cos(e[1]*.5);let a=Math.sin(e[2]*.5);let i=Math.cos(e[2]*.5);if(n===\"XYZ\"){t[0]=s*r*i+l*o*a;t[1]=l*o*i-s*r*a;t[2]=l*r*a+s*o*i;t[3]=l*r*i-s*o*a}else if(n===\"YXZ\"){t[0]=s*r*i+l*o*a;t[1]=l*o*i-s*r*a;t[2]=l*r*a-s*o*i;t[3]=l*r*i+s*o*a}else if(n===\"ZXY\"){t[0]=s*r*i-l*o*a;t[1]=l*o*i+s*r*a;t[2]=l*r*a+s*o*i;t[3]=l*r*i-s*o*a}else if(n===\"ZYX\"){t[0]=s*r*i-l*o*a;t[1]=l*o*i+s*r*a;t[2]=l*r*a-s*o*i;t[3]=l*r*i+s*o*a}else if(n===\"YZX\"){t[0]=s*r*i+l*o*a;t[1]=l*o*i+s*r*a;t[2]=l*r*a-s*o*i;t[3]=l*r*i-s*o*a}else if(n===\"XZY\"){t[0]=s*r*i-l*o*a;t[1]=l*o*i-s*r*a;t[2]=l*r*a+s*o*i;t[3]=l*r*i+s*o*a}return t}\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the source quaternion\n * @returns {quat} out\n * @function\n */const i=t;\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */const c=e;\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n * @function\n */const u=n;\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {quat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */const f=s;\n/**\n * Calculates the dot product of two quat's\n *\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */const M=l;\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n * @function\n */const h=o;\n/**\n * Calculates the length of a quat\n *\n * @param {quat} a vector to calculate length of\n * @returns {Number} length of a\n */const m=r;\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */const X=a;export{u as add,conjugate,i as copy,M as dot,fromEuler,fromMat3,identity,invert,m as length,h as lerp,multiply,X as normalize,rotateX,rotateY,rotateZ,f as scale,c as set,setAxisAngle,slerp};\n//# sourceMappingURL=QuatFunc.js.map\n", "import{identity as t,set as e,rotateX as r,rotateY as h,rotateZ as s,invert as i,conjugate as n,copy as a,normalize as g,multiply as o,dot as u,fromMat3 as _,fromEuler as C,setAxisAngle as c,slerp as l}from\"./functions/QuatFunc.js\";import\"./functions/Vec4Func.js\";class Quat extends Array{constructor(t=0,e=0,r=0,h=1){super(t,e,r,h);this.onChange=()=>{};this._target=this;const s=[\"0\",\"1\",\"2\",\"3\"];return new Proxy(this,{set(t,e){const r=Reflect.set(...arguments);r&&s.includes(e)&&t.onChange();return r}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(t){this._target[0]=t;this.onChange()}set y(t){this._target[1]=t;this.onChange()}set z(t){this._target[2]=t;this.onChange()}set w(t){this._target[3]=t;this.onChange()}identity(){t(this._target);this.onChange();return this}set(t,r,h,s){if(t.length)return this.copy(t);e(this._target,t,r,h,s);this.onChange();return this}rotateX(t){r(this._target,this._target,t);this.onChange();return this}rotateY(t){h(this._target,this._target,t);this.onChange();return this}rotateZ(t){s(this._target,this._target,t);this.onChange();return this}inverse(t=this._target){i(this._target,t);this.onChange();return this}conjugate(t=this._target){n(this._target,t);this.onChange();return this}copy(t){a(this._target,t);this.onChange();return this}normalize(t=this._target){g(this._target,t);this.onChange();return this}multiply(t,e){e?o(this._target,t,e):o(this._target,this._target,t);this.onChange();return this}dot(t){return u(this._target,t)}fromMatrix3(t){_(this._target,t);this.onChange();return this}fromEuler(t,e){C(this._target,t,t.order);e||this.onChange();return this}fromAxisAngle(t,e){c(this._target,t,e);this.onChange();return this}slerp(t,e){l(this._target,this._target,t,e);this.onChange();return this}fromArray(t,e=0){this._target[0]=t[e];this._target[1]=t[e+1];this._target[2]=t[e+2];this._target[3]=t[e+3];this.onChange();return this}toArray(t=[],e=0){t[e]=this[0];t[e+1]=this[1];t[e+2]=this[2];t[e+3]=this[3];return t}}export{Quat};\n//# sourceMappingURL=Quat.js.map\n", "import{length as t}from\"./Vec3Func.js\";const e=1e-6;\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */function copy(t,e){t[0]=e[0];t[1]=e[1];t[2]=e[2];t[3]=e[3];t[4]=e[4];t[5]=e[5];t[6]=e[6];t[7]=e[7];t[8]=e[8];t[9]=e[9];t[10]=e[10];t[11]=e[11];t[12]=e[12];t[13]=e[13];t[14]=e[14];t[15]=e[15];return t}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */function set(t,e,l,n,r,o,c,i,a,s,u,f,h,p,m,M,g){t[0]=e;t[1]=l;t[2]=n;t[3]=r;t[4]=o;t[5]=c;t[6]=i;t[7]=a;t[8]=s;t[9]=u;t[10]=f;t[11]=h;t[12]=p;t[13]=m;t[14]=M;t[15]=g;return t}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */function identity(t){t[0]=1;t[1]=0;t[2]=0;t[3]=0;t[4]=0;t[5]=1;t[6]=0;t[7]=0;t[8]=0;t[9]=0;t[10]=1;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return t}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */function transpose(t,e){if(t===e){let l=e[1],n=e[2],r=e[3];let o=e[6],c=e[7];let i=e[11];t[1]=e[4];t[2]=e[8];t[3]=e[12];t[4]=l;t[6]=e[9];t[7]=e[13];t[8]=n;t[9]=o;t[11]=e[14];t[12]=r;t[13]=c;t[14]=i}else{t[0]=e[0];t[1]=e[4];t[2]=e[8];t[3]=e[12];t[4]=e[1];t[5]=e[5];t[6]=e[9];t[7]=e[13];t[8]=e[2];t[9]=e[6];t[10]=e[10];t[11]=e[14];t[12]=e[3];t[13]=e[7];t[14]=e[11];t[15]=e[15]}return t}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */function invert(t,e){let l=e[0],n=e[1],r=e[2],o=e[3];let c=e[4],i=e[5],a=e[6],s=e[7];let u=e[8],f=e[9],h=e[10],p=e[11];let m=e[12],M=e[13],g=e[14],y=e[15];let d=l*i-n*c;let S=l*a-r*c;let q=l*s-o*c;let x=n*a-r*i;let T=n*s-o*i;let v=r*s-o*a;let b=u*M-f*m;let A=u*g-h*m;let O=u*y-p*m;let Q=f*g-h*M;let R=f*y-p*M;let j=h*y-p*g;let F=d*j-S*R+q*Q+x*O-T*A+v*b;if(!F)return null;F=1/F;t[0]=(i*j-a*R+s*Q)*F;t[1]=(r*R-n*j-o*Q)*F;t[2]=(M*v-g*T+y*x)*F;t[3]=(h*T-f*v-p*x)*F;t[4]=(a*O-c*j-s*A)*F;t[5]=(l*j-r*O+o*A)*F;t[6]=(g*q-m*v-y*S)*F;t[7]=(u*v-h*q+p*S)*F;t[8]=(c*R-i*O+s*b)*F;t[9]=(n*O-l*R-o*b)*F;t[10]=(m*T-M*q+y*d)*F;t[11]=(f*q-u*T-p*d)*F;t[12]=(i*A-c*Q-a*b)*F;t[13]=(l*Q-n*A+r*b)*F;t[14]=(M*S-m*x-g*d)*F;t[15]=(u*x-f*S+h*d)*F;return t}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {mat4} a the source matrix\n * @returns {Number} determinant of a\n */function determinant(t){let e=t[0],l=t[1],n=t[2],r=t[3];let o=t[4],c=t[5],i=t[6],a=t[7];let s=t[8],u=t[9],f=t[10],h=t[11];let p=t[12],m=t[13],M=t[14],g=t[15];let y=e*c-l*o;let d=e*i-n*o;let S=e*a-r*o;let q=l*i-n*c;let x=l*a-r*c;let T=n*a-r*i;let v=s*m-u*p;let b=s*M-f*p;let A=s*g-h*p;let O=u*M-f*m;let Q=u*g-h*m;let R=f*g-h*M;return y*R-d*Q+S*O+q*A-x*b+T*v}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */function multiply(t,e,l){let n=e[0],r=e[1],o=e[2],c=e[3];let i=e[4],a=e[5],s=e[6],u=e[7];let f=e[8],h=e[9],p=e[10],m=e[11];let M=e[12],g=e[13],y=e[14],d=e[15];let S=l[0],q=l[1],x=l[2],T=l[3];t[0]=S*n+q*i+x*f+T*M;t[1]=S*r+q*a+x*h+T*g;t[2]=S*o+q*s+x*p+T*y;t[3]=S*c+q*u+x*m+T*d;S=l[4];q=l[5];x=l[6];T=l[7];t[4]=S*n+q*i+x*f+T*M;t[5]=S*r+q*a+x*h+T*g;t[6]=S*o+q*s+x*p+T*y;t[7]=S*c+q*u+x*m+T*d;S=l[8];q=l[9];x=l[10];T=l[11];t[8]=S*n+q*i+x*f+T*M;t[9]=S*r+q*a+x*h+T*g;t[10]=S*o+q*s+x*p+T*y;t[11]=S*c+q*u+x*m+T*d;S=l[12];q=l[13];x=l[14];T=l[15];t[12]=S*n+q*i+x*f+T*M;t[13]=S*r+q*a+x*h+T*g;t[14]=S*o+q*s+x*p+T*y;t[15]=S*c+q*u+x*m+T*d;return t}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */function translate(t,e,l){let n=l[0],r=l[1],o=l[2];let c,i,a,s;let u,f,h,p;let m,M,g,y;if(e===t){t[12]=e[0]*n+e[4]*r+e[8]*o+e[12];t[13]=e[1]*n+e[5]*r+e[9]*o+e[13];t[14]=e[2]*n+e[6]*r+e[10]*o+e[14];t[15]=e[3]*n+e[7]*r+e[11]*o+e[15]}else{c=e[0];i=e[1];a=e[2];s=e[3];u=e[4];f=e[5];h=e[6];p=e[7];m=e[8];M=e[9];g=e[10];y=e[11];t[0]=c;t[1]=i;t[2]=a;t[3]=s;t[4]=u;t[5]=f;t[6]=h;t[7]=p;t[8]=m;t[9]=M;t[10]=g;t[11]=y;t[12]=c*n+u*r+m*o+e[12];t[13]=i*n+f*r+M*o+e[13];t[14]=a*n+h*r+g*o+e[14];t[15]=s*n+p*r+y*o+e[15]}return t}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {vec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/function scale(t,e,l){let n=l[0],r=l[1],o=l[2];t[0]=e[0]*n;t[1]=e[1]*n;t[2]=e[2]*n;t[3]=e[3]*n;t[4]=e[4]*r;t[5]=e[5]*r;t[6]=e[6]*r;t[7]=e[7]*r;t[8]=e[8]*o;t[9]=e[9]*o;t[10]=e[10]*o;t[11]=e[11]*o;t[12]=e[12];t[13]=e[13];t[14]=e[14];t[15]=e[15];return t}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {vec3} axis the axis to rotate around\n * @returns {mat4} out\n */function rotate(t,l,n,r){let o=r[0],c=r[1],i=r[2];let a=Math.hypot(o,c,i);let s,u,f;let h,p,m,M;let g,y,d,S;let q,x,T,v;let b,A,O;let Q,R,j;let F,V,k;if(Math.abs(a)<e)return null;a=1/a;o*=a;c*=a;i*=a;s=Math.sin(n);u=Math.cos(n);f=1-u;h=l[0];p=l[1];m=l[2];M=l[3];g=l[4];y=l[5];d=l[6];S=l[7];q=l[8];x=l[9];T=l[10];v=l[11];b=o*o*f+u;A=c*o*f+i*s;O=i*o*f-c*s;Q=o*c*f-i*s;R=c*c*f+u;j=i*c*f+o*s;F=o*i*f+c*s;V=c*i*f-o*s;k=i*i*f+u;t[0]=h*b+g*A+q*O;t[1]=p*b+y*A+x*O;t[2]=m*b+d*A+T*O;t[3]=M*b+S*A+v*O;t[4]=h*Q+g*R+q*j;t[5]=p*Q+y*R+x*j;t[6]=m*Q+d*R+T*j;t[7]=M*Q+S*R+v*j;t[8]=h*F+g*V+q*k;t[9]=p*F+y*V+x*k;t[10]=m*F+d*V+T*k;t[11]=M*F+S*V+v*k;if(l!==t){t[12]=l[12];t[13]=l[13];t[14]=l[14];t[15]=l[15]}return t}\n/**\n * Returns the translation vector component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslation,\n *  the returned vector will be the same as the translation vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive translation component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */function getTranslation(t,e){t[0]=e[12];t[1]=e[13];t[2]=e[14];return t}\n/**\n * Returns the scaling factor component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslationScale\n *  with a normalized Quaternion paramter, the returned vector will be\n *  the same as the scaling vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive scaling factor component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */function getScaling(t,e){let l=e[0];let n=e[1];let r=e[2];let o=e[4];let c=e[5];let i=e[6];let a=e[8];let s=e[9];let u=e[10];t[0]=Math.hypot(l,n,r);t[1]=Math.hypot(o,c,i);t[2]=Math.hypot(a,s,u);return t}function getMaxScaleOnAxis(t){let e=t[0];let l=t[1];let n=t[2];let r=t[4];let o=t[5];let c=t[6];let i=t[8];let a=t[9];let s=t[10];const u=e*e+l*l+n*n;const f=r*r+o*o+c*c;const h=i*i+a*a+s*s;return Math.sqrt(Math.max(u,f,h))}\n/**\n * Returns a quaternion representing the rotational component\n *  of a transformation matrix. If a matrix is built with\n *  fromRotationTranslation, the returned quaternion will be the\n *  same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {mat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */const l=function(){const t=[1,1,1];return function(e,l){let n=t;getScaling(n,l);let r=1/n[0];let o=1/n[1];let c=1/n[2];let i=l[0]*r;let a=l[1]*o;let s=l[2]*c;let u=l[4]*r;let f=l[5]*o;let h=l[6]*c;let p=l[8]*r;let m=l[9]*o;let M=l[10]*c;let g=i+f+M;let y=0;if(g>0){y=Math.sqrt(g+1)*2;e[3]=.25*y;e[0]=(h-m)/y;e[1]=(p-s)/y;e[2]=(a-u)/y}else if(i>f&&i>M){y=Math.sqrt(1+i-f-M)*2;e[3]=(h-m)/y;e[0]=.25*y;e[1]=(a+u)/y;e[2]=(p+s)/y}else if(f>M){y=Math.sqrt(1+f-i-M)*2;e[3]=(p-s)/y;e[0]=(a+u)/y;e[1]=.25*y;e[2]=(h+m)/y}else{y=Math.sqrt(1+M-i-f)*2;e[3]=(a-u)/y;e[0]=(p+s)/y;e[1]=(h+m)/y;e[2]=.25*y}return e}}();\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Decompose a mat4 to TRS properties.\n *\n * Equivalent to the Matrix4 decompose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} srcMat Matrix element, to be decomposed to TRS properties.\n * @param {quat4} dstRotation Rotation element, to be overwritten.\n * @param {vec3} dstTranslation Translation element, to be overwritten.\n * @param {vec3} dstScale Scale element, to be overwritten\n */function decompose(e,n,r,o){let c=t([e[0],e[1],e[2]]);const i=t([e[4],e[5],e[6]]);const a=t([e[8],e[9],e[10]]);const s=determinant(e);s<0&&(c=-c);r[0]=e[12];r[1]=e[13];r[2]=e[14];const u=e.slice();const f=1/c;const h=1/i;const p=1/a;u[0]*=f;u[1]*=f;u[2]*=f;u[4]*=h;u[5]*=h;u[6]*=h;u[8]*=p;u[9]*=p;u[10]*=p;l(n,u);o[0]=c;o[1]=i;o[2]=a}\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Compose TRS properties to a mat4.\n *\n * Equivalent to the Matrix4 compose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} dstMat Matrix element, to be modified and returned.\n * @param {quat4} srcRotation Rotation element of matrix.\n * @param {vec3} srcTranslation Translation element of matrix.\n * @param {vec3} srcScale Scale element of matrix.\n * @returns {mat4} dstMat, overwritten to mat4 equivalent of given TRS properties.\n */function compose(t,e,l,n){const r=t;const o=e[0],c=e[1],i=e[2],a=e[3];const s=o+o,u=c+c,f=i+i;const h=o*s,p=o*u,m=o*f;const M=c*u,g=c*f,y=i*f;const d=a*s,S=a*u,q=a*f;const x=n[0],T=n[1],v=n[2];r[0]=(1-(M+y))*x;r[1]=(p+q)*x;r[2]=(m-S)*x;r[3]=0;r[4]=(p-q)*T;r[5]=(1-(h+y))*T;r[6]=(g+d)*T;r[7]=0;r[8]=(m+S)*v;r[9]=(g-d)*v;r[10]=(1-(h+M))*v;r[11]=0;r[12]=l[0];r[13]=l[1];r[14]=l[2];r[15]=1;return r}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *     mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {vec3} v Translation vector\n * @param {vec3} s Scaling vector\n * @returns {mat4} out\n */function fromRotationTranslationScale(t,e,l,n){let r=e[0],o=e[1],c=e[2],i=e[3];let a=r+r;let s=o+o;let u=c+c;let f=r*a;let h=r*s;let p=r*u;let m=o*s;let M=o*u;let g=c*u;let y=i*a;let d=i*s;let S=i*u;let q=n[0];let x=n[1];let T=n[2];t[0]=(1-(m+g))*q;t[1]=(h+S)*q;t[2]=(p-d)*q;t[3]=0;t[4]=(h-S)*x;t[5]=(1-(f+g))*x;t[6]=(M+y)*x;t[7]=0;t[8]=(p+d)*T;t[9]=(M-y)*T;t[10]=(1-(f+m))*T;t[11]=0;t[12]=l[0];t[13]=l[1];t[14]=l[2];t[15]=1;return t}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */function fromQuat(t,e){let l=e[0],n=e[1],r=e[2],o=e[3];let c=l+l;let i=n+n;let a=r+r;let s=l*c;let u=n*c;let f=n*i;let h=r*c;let p=r*i;let m=r*a;let M=o*c;let g=o*i;let y=o*a;t[0]=1-f-m;t[1]=u+y;t[2]=h-g;t[3]=0;t[4]=u-y;t[5]=1-s-m;t[6]=p+M;t[7]=0;t[8]=h+g;t[9]=p-M;t[10]=1-s-f;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return t}\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */function perspective(t,e,l,n,r){let o=1/Math.tan(e/2);let c=1/(n-r);t[0]=o/l;t[1]=0;t[2]=0;t[3]=0;t[4]=0;t[5]=o;t[6]=0;t[7]=0;t[8]=0;t[9]=0;t[10]=(r+n)*c;t[11]=-1;t[12]=0;t[13]=0;t[14]=2*r*n*c;t[15]=0;return t}\n/**\n * Generates a orthogonal projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */function ortho(t,e,l,n,r,o,c){let i=1/(e-l);let a=1/(n-r);let s=1/(o-c);t[0]=-2*i;t[1]=0;t[2]=0;t[3]=0;t[4]=0;t[5]=-2*a;t[6]=0;t[7]=0;t[8]=0;t[9]=0;t[10]=2*s;t[11]=0;t[12]=(e+l)*i;t[13]=(r+n)*a;t[14]=(c+o)*s;t[15]=1;return t}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {vec3} eye Position of the viewer\n * @param {vec3} target Point the viewer is looking at\n * @param {vec3} up vec3 pointing up\n * @returns {mat4} out\n */function targetTo(t,e,l,n){let r=e[0],o=e[1],c=e[2],i=n[0],a=n[1],s=n[2];let u=r-l[0],f=o-l[1],h=c-l[2];let p=u*u+f*f+h*h;if(p===0)h=1;else{p=1/Math.sqrt(p);u*=p;f*=p;h*=p}let m=a*h-s*f,M=s*u-i*h,g=i*f-a*u;p=m*m+M*M+g*g;if(p===0){s?i+=1e-6:a?s+=1e-6:a+=1e-6;m=a*h-s*f,M=s*u-i*h,g=i*f-a*u;p=m*m+M*M+g*g}p=1/Math.sqrt(p);m*=p;M*=p;g*=p;t[0]=m;t[1]=M;t[2]=g;t[3]=0;t[4]=f*g-h*M;t[5]=h*m-u*g;t[6]=u*M-f*m;t[7]=0;t[8]=u;t[9]=f;t[10]=h;t[11]=0;t[12]=r;t[13]=o;t[14]=c;t[15]=1;return t}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */function add(t,e,l){t[0]=e[0]+l[0];t[1]=e[1]+l[1];t[2]=e[2]+l[2];t[3]=e[3]+l[3];t[4]=e[4]+l[4];t[5]=e[5]+l[5];t[6]=e[6]+l[6];t[7]=e[7]+l[7];t[8]=e[8]+l[8];t[9]=e[9]+l[9];t[10]=e[10]+l[10];t[11]=e[11]+l[11];t[12]=e[12]+l[12];t[13]=e[13]+l[13];t[14]=e[14]+l[14];t[15]=e[15]+l[15];return t}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */function subtract(t,e,l){t[0]=e[0]-l[0];t[1]=e[1]-l[1];t[2]=e[2]-l[2];t[3]=e[3]-l[3];t[4]=e[4]-l[4];t[5]=e[5]-l[5];t[6]=e[6]-l[6];t[7]=e[7]-l[7];t[8]=e[8]-l[8];t[9]=e[9]-l[9];t[10]=e[10]-l[10];t[11]=e[11]-l[11];t[12]=e[12]-l[12];t[13]=e[13]-l[13];t[14]=e[14]-l[14];t[15]=e[15]-l[15];return t}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */function multiplyScalar(t,e,l){t[0]=e[0]*l;t[1]=e[1]*l;t[2]=e[2]*l;t[3]=e[3]*l;t[4]=e[4]*l;t[5]=e[5]*l;t[6]=e[6]*l;t[7]=e[7]*l;t[8]=e[8]*l;t[9]=e[9]*l;t[10]=e[10]*l;t[11]=e[11]*l;t[12]=e[12]*l;t[13]=e[13]*l;t[14]=e[14]*l;t[15]=e[15]*l;return t}export{add,compose,copy,decompose,determinant,fromQuat,fromRotationTranslationScale,getMaxScaleOnAxis,l as getRotation,getScaling,getTranslation,identity,invert,multiply,multiplyScalar,ortho,perspective,rotate,scale,set,subtract,targetTo,translate,transpose};\n//# sourceMappingURL=Mat4Func.js.map\n", "import{set as t,translate as s,rotate as i,scale as h,add as r,subtract as e,multiplyScalar as n,multiply as u,identity as o,copy as a,perspective as c,ortho as f,fromQuat as g,invert as l,compose as m,decompose as p,getRotation as y,getTranslation as x,getScaling as d,getMaxScaleOnAxis as A,targetTo as M,determinant as b}from\"./functions/Mat4Func.js\";import\"./functions/Vec3Func.js\";class Mat4 extends Array{constructor(t=1,s=0,i=0,h=0,r=0,e=1,n=0,u=0,o=0,a=0,c=1,f=0,g=0,l=0,m=0,p=1){super(t,s,i,h,r,e,n,u,o,a,c,f,g,l,m,p);return this}get x(){return this[12]}get y(){return this[13]}get z(){return this[14]}get w(){return this[15]}set x(t){this[12]=t}set y(t){this[13]=t}set z(t){this[14]=t}set w(t){this[15]=t}set(s,i,h,r,e,n,u,o,a,c,f,g,l,m,p,y){if(s.length)return this.copy(s);t(this,s,i,h,r,e,n,u,o,a,c,f,g,l,m,p,y);return this}translate(t,i=this){s(this,i,t);return this}rotate(t,s,h=this){i(this,h,t,s);return this}scale(t,s=this){h(this,s,typeof t===\"number\"?[t,t,t]:t);return this}add(t,s){s?r(this,t,s):r(this,this,t);return this}sub(t,s){s?e(this,t,s):e(this,this,t);return this}multiply(t,s){t.length?s?u(this,t,s):u(this,this,t):n(this,this,t);return this}identity(){o(this);return this}copy(t){a(this,t);return this}fromPerspective({fov:t,aspect:s,near:i,far:h}={}){c(this,t,s,i,h);return this}fromOrthogonal({left:t,right:s,bottom:i,top:h,near:r,far:e}){f(this,t,s,i,h,r,e);return this}fromQuaternion(t){g(this,t);return this}setPosition(t){this.x=t[0];this.y=t[1];this.z=t[2];return this}inverse(t=this){l(this,t);return this}compose(t,s,i){m(this,t,s,i);return this}decompose(t,s,i){p(this,t,s,i);return this}getRotation(t){y(t,this);return this}getTranslation(t){x(t,this);return this}getScaling(t){d(t,this);return this}getMaxScaleOnAxis(){return A(this)}lookAt(t,s,i){M(this,t,s,i);return this}determinant(){return b(this)}fromArray(t,s=0){this[0]=t[s];this[1]=t[s+1];this[2]=t[s+2];this[3]=t[s+3];this[4]=t[s+4];this[5]=t[s+5];this[6]=t[s+6];this[7]=t[s+7];this[8]=t[s+8];this[9]=t[s+9];this[10]=t[s+10];this[11]=t[s+11];this[12]=t[s+12];this[13]=t[s+13];this[14]=t[s+14];this[15]=t[s+15];return this}toArray(t=[],s=0){t[s]=this[0];t[s+1]=this[1];t[s+2]=this[2];t[s+3]=this[3];t[s+4]=this[4];t[s+5]=this[5];t[s+6]=this[6];t[s+7]=this[7];t[s+8]=this[8];t[s+9]=this[9];t[s+10]=this[10];t[s+11]=this[11];t[s+12]=this[12];t[s+13]=this[13];t[s+14]=this[14];t[s+15]=this[15];return t}}export{Mat4};\n//# sourceMappingURL=Mat4.js.map\n", "function fromRotationMatrix(a,t,M=\"YXZ\"){if(M===\"XYZ\"){a[1]=Math.asin(Math.min(Math.max(t[8],-1),1));if(Math.abs(t[8])<.99999){a[0]=Math.atan2(-t[9],t[10]);a[2]=Math.atan2(-t[4],t[0])}else{a[0]=Math.atan2(t[6],t[5]);a[2]=0}}else if(M===\"YXZ\"){a[0]=Math.asin(-Math.min(Math.max(t[9],-1),1));if(Math.abs(t[9])<.99999){a[1]=Math.atan2(t[8],t[10]);a[2]=Math.atan2(t[1],t[5])}else{a[1]=Math.atan2(-t[2],t[0]);a[2]=0}}else if(M===\"ZXY\"){a[0]=Math.asin(Math.min(Math.max(t[6],-1),1));if(Math.abs(t[6])<.99999){a[1]=Math.atan2(-t[2],t[10]);a[2]=Math.atan2(-t[4],t[5])}else{a[1]=0;a[2]=Math.atan2(t[1],t[0])}}else if(M===\"ZYX\"){a[1]=Math.asin(-Math.min(Math.max(t[2],-1),1));if(Math.abs(t[2])<.99999){a[0]=Math.atan2(t[6],t[10]);a[2]=Math.atan2(t[1],t[0])}else{a[0]=0;a[2]=Math.atan2(-t[4],t[5])}}else if(M===\"YZX\"){a[2]=Math.asin(Math.min(Math.max(t[1],-1),1));if(Math.abs(t[1])<.99999){a[0]=Math.atan2(-t[9],t[5]);a[1]=Math.atan2(-t[2],t[0])}else{a[0]=0;a[1]=Math.atan2(t[8],t[10])}}else if(M===\"XZY\"){a[2]=Math.asin(-Math.min(Math.max(t[4],-1),1));if(Math.abs(t[4])<.99999){a[0]=Math.atan2(t[6],t[5]);a[1]=Math.atan2(t[8],t[0])}else{a[0]=Math.atan2(-t[9],t[10]);a[1]=0}}return a}export{fromRotationMatrix};\n//# sourceMappingURL=EulerFunc.js.map\n", "import{fromRotationMatrix as t}from\"./functions/EulerFunc.js\";import{Mat4 as r}from\"./Mat4.js\";import\"./functions/Mat4Func.js\";import\"./functions/Vec3Func.js\";const e=new r;class Euler extends Array{constructor(t=0,r=t,e=t,s=\"YXZ\"){super(t,r,e);this.order=s;this.onChange=()=>{};this._target=this;const i=[\"0\",\"1\",\"2\"];return new Proxy(this,{set(t,r){const e=Reflect.set(...arguments);e&&i.includes(r)&&t.onChange();return e}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this._target[0]=t;this.onChange()}set y(t){this._target[1]=t;this.onChange()}set z(t){this._target[2]=t;this.onChange()}set(t,r=t,e=t){if(t.length)return this.copy(t);this._target[0]=t;this._target[1]=r;this._target[2]=e;this.onChange();return this}copy(t){this._target[0]=t[0];this._target[1]=t[1];this._target[2]=t[2];this.onChange();return this}reorder(t){this._target.order=t;this.onChange();return this}fromRotationMatrix(r,e=this.order){t(this._target,r,e);this.onChange();return this}fromQuaternion(t,r=this.order,s){e.fromQuaternion(t);this._target.fromRotationMatrix(e,r);s||this.onChange();return this}fromArray(t,r=0){this._target[0]=t[r];this._target[1]=t[r+1];this._target[2]=t[r+2];return this}toArray(t=[],r=0){t[r]=this[0];t[r+1]=this[1];t[r+2]=this[2];return t}}export{Euler};\n//# sourceMappingURL=Euler.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import{Quat as i}from\"../math/Quat.js\";import{Mat4 as r}from\"../math/Mat4.js\";import{Euler as e}from\"../math/Euler.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/functions/Mat4Func.js\";import\"../math/functions/EulerFunc.js\";class Transform{constructor(){this.parent=null;this.children=[];this.visible=true;this.matrix=new r;this.worldMatrix=new r;this.matrixAutoUpdate=true;this.worldMatrixNeedsUpdate=false;this.position=new t;this.quaternion=new i;this.scale=new t(1);this.rotation=new e;this.up=new t(0,1,0);this.rotation._target.onChange=()=>this.quaternion.fromEuler(this.rotation,true);this.quaternion._target.onChange=()=>this.rotation.fromQuaternion(this.quaternion,void 0,true)}setParent(t,i=true){this.parent&&t!==this.parent&&this.parent.removeChild(this,false);this.parent=t;i&&t&&t.addChild(this,false)}addChild(t,i=true){~this.children.indexOf(t)||this.children.push(t);i&&t.setParent(this,false)}removeChild(t,i=true){!~this.children.indexOf(t)||this.children.splice(this.children.indexOf(t),1);i&&t.setParent(null,false)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix();if(this.worldMatrixNeedsUpdate||t){this.parent===null?this.worldMatrix.copy(this.matrix):this.worldMatrix.multiply(this.parent.worldMatrix,this.matrix);this.worldMatrixNeedsUpdate=false;t=true}for(let i=0,r=this.children.length;i<r;i++)this.children[i].updateMatrixWorld(t)}updateMatrix(){this.matrix.compose(this.quaternion,this.position,this.scale);this.worldMatrixNeedsUpdate=true}traverse(t){if(!t(this))for(let i=0,r=this.children.length;i<r;i++)this.children[i].traverse(t)}decompose(){this.matrix.decompose(this.quaternion._target,this.position,this.scale);this.rotation.fromQuaternion(this.quaternion)}lookAt(t,i=false){i?this.matrix.lookAt(this.position,t,this.up):this.matrix.lookAt(t,this.position,this.up);this.matrix.getRotation(this.quaternion._target);this.rotation.fromQuaternion(this.quaternion)}}export{Transform};\n//# sourceMappingURL=Transform.js.map\n", "/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {mat4} a   the source 4x4 matrix\n * @returns {mat3} out\n */\nfunction fromMat4(t,e){t[0]=e[0];t[1]=e[1];t[2]=e[2];t[3]=e[4];t[4]=e[5];t[5]=e[6];t[6]=e[8];t[7]=e[9];t[8]=e[10];return t}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */function fromQuat(t,e){let n=e[0],l=e[1],r=e[2],u=e[3];let o=n+n;let i=l+l;let a=r+r;let c=n*o;let f=l*o;let s=l*i;let m=r*o;let p=r*i;let d=r*a;let y=u*o;let M=u*i;let b=u*a;t[0]=1-s-d;t[3]=f-b;t[6]=m+M;t[1]=f+b;t[4]=1-c-d;t[7]=p-y;t[2]=m-M;t[5]=p+y;t[8]=1-c-s;return t}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */function copy(t,e){t[0]=e[0];t[1]=e[1];t[2]=e[2];t[3]=e[3];t[4]=e[4];t[5]=e[5];t[6]=e[6];t[7]=e[7];t[8]=e[8];return t}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */function set(t,e,n,l,r,u,o,i,a,c){t[0]=e;t[1]=n;t[2]=l;t[3]=r;t[4]=u;t[5]=o;t[6]=i;t[7]=a;t[8]=c;return t}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */function identity(t){t[0]=1;t[1]=0;t[2]=0;t[3]=0;t[4]=1;t[5]=0;t[6]=0;t[7]=0;t[8]=1;return t}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */function transpose(t,e){if(t===e){let n=e[1],l=e[2],r=e[5];t[1]=e[3];t[2]=e[6];t[3]=n;t[5]=e[7];t[6]=l;t[7]=r}else{t[0]=e[0];t[1]=e[3];t[2]=e[6];t[3]=e[1];t[4]=e[4];t[5]=e[7];t[6]=e[2];t[7]=e[5];t[8]=e[8]}return t}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */function invert(t,e){let n=e[0],l=e[1],r=e[2];let u=e[3],o=e[4],i=e[5];let a=e[6],c=e[7],f=e[8];let s=f*o-i*c;let m=-f*u+i*a;let p=c*u-o*a;let d=n*s+l*m+r*p;if(!d)return null;d=1/d;t[0]=s*d;t[1]=(-f*l+r*c)*d;t[2]=(i*l-r*o)*d;t[3]=m*d;t[4]=(f*n-r*a)*d;t[5]=(-i*n+r*u)*d;t[6]=p*d;t[7]=(-c*n+l*a)*d;t[8]=(o*n-l*u)*d;return t}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {mat3} a the source matrix\n * @returns {Number} determinant of a\n */function determinant(t){let e=t[0],n=t[1],l=t[2];let r=t[3],u=t[4],o=t[5];let i=t[6],a=t[7],c=t[8];return e*(c*u-o*a)+n*(-c*r+o*i)+l*(a*r-u*i)}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */function multiply(t,e,n){let l=e[0],r=e[1],u=e[2];let o=e[3],i=e[4],a=e[5];let c=e[6],f=e[7],s=e[8];let m=n[0],p=n[1],d=n[2];let y=n[3],M=n[4],b=n[5];let h=n[6],j=n[7],v=n[8];t[0]=m*l+p*o+d*c;t[1]=m*r+p*i+d*f;t[2]=m*u+p*a+d*s;t[3]=y*l+M*o+b*c;t[4]=y*r+M*i+b*f;t[5]=y*u+M*a+b*s;t[6]=h*l+j*o+v*c;t[7]=h*r+j*i+v*f;t[8]=h*u+j*a+v*s;return t}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to translate\n * @param {vec2} v vector to translate by\n * @returns {mat3} out\n */function translate(t,e,n){let l=e[0],r=e[1],u=e[2],o=e[3],i=e[4],a=e[5],c=e[6],f=e[7],s=e[8],m=n[0],p=n[1];t[0]=l;t[1]=r;t[2]=u;t[3]=o;t[4]=i;t[5]=a;t[6]=m*l+p*o+c;t[7]=m*r+p*i+f;t[8]=m*u+p*a+s;return t}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */function rotate(t,e,n){let l=e[0],r=e[1],u=e[2],o=e[3],i=e[4],a=e[5],c=e[6],f=e[7],s=e[8],m=Math.sin(n),p=Math.cos(n);t[0]=p*l+m*o;t[1]=p*r+m*i;t[2]=p*u+m*a;t[3]=p*o-m*l;t[4]=p*i-m*r;t[5]=p*a-m*u;t[6]=c;t[7]=f;t[8]=s;return t}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {vec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/function scale(t,e,n){let l=n[0],r=n[1];t[0]=l*e[0];t[1]=l*e[1];t[2]=l*e[2];t[3]=r*e[3];t[4]=r*e[4];t[5]=r*e[5];t[6]=e[6];t[7]=e[7];t[8]=e[8];return t}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {mat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */function normalFromMat4(t,e){let n=e[0],l=e[1],r=e[2],u=e[3];let o=e[4],i=e[5],a=e[6],c=e[7];let f=e[8],s=e[9],m=e[10],p=e[11];let d=e[12],y=e[13],M=e[14],b=e[15];let h=n*i-l*o;let j=n*a-r*o;let v=n*c-u*o;let F=l*a-r*i;let Q=l*c-u*i;let S=r*c-u*a;let x=f*y-s*d;let g=f*M-m*d;let k=f*b-p*d;let q=s*M-m*y;let w=s*b-p*y;let z=m*b-p*M;let A=h*z-j*w+v*q+F*k-Q*g+S*x;if(!A)return null;A=1/A;t[0]=(i*z-a*w+c*q)*A;t[1]=(a*k-o*z-c*g)*A;t[2]=(o*w-i*k+c*x)*A;t[3]=(r*w-l*z-u*q)*A;t[4]=(n*z-r*k+u*g)*A;t[5]=(l*k-n*w-u*x)*A;t[6]=(y*S-M*Q+b*F)*A;t[7]=(M*v-d*S-b*j)*A;t[8]=(d*Q-y*v+b*h)*A;return t}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */function projection(t,e,n){t[0]=2/e;t[1]=0;t[2]=0;t[3]=0;t[4]=-2/n;t[5]=0;t[6]=-1;t[7]=1;t[8]=1;return t}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */function add(t,e,n){t[0]=e[0]+n[0];t[1]=e[1]+n[1];t[2]=e[2]+n[2];t[3]=e[3]+n[3];t[4]=e[4]+n[4];t[5]=e[5]+n[5];t[6]=e[6]+n[6];t[7]=e[7]+n[7];t[8]=e[8]+n[8];return t}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */function subtract(t,e,n){t[0]=e[0]-n[0];t[1]=e[1]-n[1];t[2]=e[2]-n[2];t[3]=e[3]-n[3];t[4]=e[4]-n[4];t[5]=e[5]-n[5];t[6]=e[6]-n[6];t[7]=e[7]-n[7];t[8]=e[8]-n[8];return t}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */function multiplyScalar(t,e,n){t[0]=e[0]*n;t[1]=e[1]*n;t[2]=e[2]*n;t[3]=e[3]*n;t[4]=e[4]*n;t[5]=e[5]*n;t[6]=e[6]*n;t[7]=e[7]*n;t[8]=e[8]*n;return t}export{add,copy,determinant,fromMat4,fromQuat,identity,invert,multiply,multiplyScalar,normalFromMat4,projection,rotate,scale,set,subtract,translate,transpose};\n//# sourceMappingURL=Mat3Func.js.map\n", "import{set as t,translate as r,rotate as s,scale as i,multiply as h,identity as e,copy as n,fromMat4 as u,fromQuat as a,invert as o,normalFromMat4 as c}from\"./functions/Mat3Func.js\";class Mat3 extends Array{constructor(t=1,r=0,s=0,i=0,h=1,e=0,n=0,u=0,a=1){super(t,r,s,i,h,e,n,u,a);return this}set(r,s,i,h,e,n,u,a,o){if(r.length)return this.copy(r);t(this,r,s,i,h,e,n,u,a,o);return this}translate(t,s=this){r(this,s,t);return this}rotate(t,r=this){s(this,r,t);return this}scale(t,r=this){i(this,r,t);return this}multiply(t,r){r?h(this,t,r):h(this,this,t);return this}identity(){e(this);return this}copy(t){n(this,t);return this}fromMatrix4(t){u(this,t);return this}fromQuaternion(t){a(this,t);return this}fromBasis(t,r,s){this.set(t[0],t[1],t[2],r[0],r[1],r[2],s[0],s[1],s[2]);return this}inverse(t=this){o(this,t);return this}getNormalMatrix(t){c(this,t);return this}}export{Mat3};\n//# sourceMappingURL=Mat3.js.map\n", "import{Transform as r}from\"./Transform.js\";import{Mat3 as t}from\"../math/Mat3.js\";import{Mat4 as e}from\"../math/Mat4.js\";import\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/functions/Mat4Func.js\";import\"../math/functions/Mat3Func.js\";let i=0;class Mesh extends r{constructor(r,{geometry:a,program:s,mode:o=r.TRIANGLES,frustumCulled:m=true,renderOrder:l=0}={}){super();r.canvas||console.error(\"gl not passed as first argument to Mesh\");this.gl=r;this.id=i++;this.geometry=a;this.program=s;this.mode=o;this.frustumCulled=m;this.renderOrder=l;this.modelViewMatrix=new e;this.normalMatrix=new t;this.beforeRenderCallbacks=[];this.afterRenderCallbacks=[]}onBeforeRender(r){this.beforeRenderCallbacks.push(r);return this}onAfterRender(r){this.afterRenderCallbacks.push(r);return this}draw({camera:r}={}){if(r){this.program.uniforms.modelMatrix||Object.assign(this.program.uniforms,{modelMatrix:{value:null},viewMatrix:{value:null},modelViewMatrix:{value:null},normalMatrix:{value:null},projectionMatrix:{value:null},cameraPosition:{value:null}});this.program.uniforms.projectionMatrix.value=r.projectionMatrix;this.program.uniforms.cameraPosition.value=r.worldPosition;this.program.uniforms.viewMatrix.value=r.viewMatrix;this.modelViewMatrix.multiply(r.viewMatrix,this.worldMatrix);this.normalMatrix.getNormalMatrix(this.modelViewMatrix);this.program.uniforms.modelMatrix.value=this.worldMatrix;this.program.uniforms.modelViewMatrix.value=this.modelViewMatrix;this.program.uniforms.normalMatrix.value=this.normalMatrix}this.beforeRenderCallbacks.forEach((t=>t&&t({mesh:this,camera:r})));let t=this.program.cullFace&&this.worldMatrix.determinant()<0;this.program.use({flipFaces:t});this.geometry.draw({mode:this.mode,program:this.program});this.afterRenderCallbacks.forEach((t=>t&&t({mesh:this,camera:r})))}}export{Mesh};\n//# sourceMappingURL=Mesh.js.map\n", "const t=new Uint8Array(4);function isPowerOf2(t){return(t&t-1)===0}let i=1;class Texture{constructor(t,{image:e,target:s=t.TEXTURE_2D,type:h=t.UNSIGNED_BYTE,format:a=t.RGBA,internalFormat:l=a,wrapS:r=t.CLAMP_TO_EDGE,wrapT:g=t.CLAMP_TO_EDGE,generateMipmaps:n=s===(t.TEXTURE_2D||t.TEXTURE_CUBE_MAP),minFilter:m=(n?t.NEAREST_MIPMAP_LINEAR:t.LINEAR),magFilter:p=t.LINEAR,premultiplyAlpha:E=false,unpackAlignment:T=4,flipY:o=s==t.TEXTURE_2D,anisotropy:_=0,level:A=0,width:f,height:R=f,length:U=1}={}){this.gl=t;this.id=i++;this.image=e;this.target=s;this.type=h;this.format=a;this.internalFormat=l;this.minFilter=m;this.magFilter=p;this.wrapS=r;this.wrapT=g;this.generateMipmaps=n;this.premultiplyAlpha=E;this.unpackAlignment=T;this.flipY=o;this.anisotropy=Math.min(_,this.gl.renderer.parameters.maxAnisotropy);this.level=A;this.width=f;this.height=R;this.length=U;this.texture=this.gl.createTexture();this.store={image:null};this.glState=this.gl.renderer.state;this.state={};this.state.minFilter=this.gl.NEAREST_MIPMAP_LINEAR;this.state.magFilter=this.gl.LINEAR;this.state.wrapS=this.gl.REPEAT;this.state.wrapT=this.gl.REPEAT;this.state.anisotropy=0}bind(){if(this.glState.textureUnits[this.glState.activeTextureUnit]!==this.id){this.gl.bindTexture(this.target,this.texture);this.glState.textureUnits[this.glState.activeTextureUnit]=this.id}}update(i=0){const e=!(this.image===this.store.image&&!this.needsUpdate);if(e||this.glState.textureUnits[i]!==this.id){this.gl.renderer.activeTexture(i);this.bind()}if(e){this.needsUpdate=false;if(this.flipY!==this.glState.flipY){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,this.flipY);this.glState.flipY=this.flipY}if(this.premultiplyAlpha!==this.glState.premultiplyAlpha){this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha);this.glState.premultiplyAlpha=this.premultiplyAlpha}if(this.unpackAlignment!==this.glState.unpackAlignment){this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,this.unpackAlignment);this.glState.unpackAlignment=this.unpackAlignment}if(this.minFilter!==this.state.minFilter){this.gl.texParameteri(this.target,this.gl.TEXTURE_MIN_FILTER,this.minFilter);this.state.minFilter=this.minFilter}if(this.magFilter!==this.state.magFilter){this.gl.texParameteri(this.target,this.gl.TEXTURE_MAG_FILTER,this.magFilter);this.state.magFilter=this.magFilter}if(this.wrapS!==this.state.wrapS){this.gl.texParameteri(this.target,this.gl.TEXTURE_WRAP_S,this.wrapS);this.state.wrapS=this.wrapS}if(this.wrapT!==this.state.wrapT){this.gl.texParameteri(this.target,this.gl.TEXTURE_WRAP_T,this.wrapT);this.state.wrapT=this.wrapT}if(this.anisotropy&&this.anisotropy!==this.state.anisotropy){this.gl.texParameterf(this.target,this.gl.renderer.getExtension(\"EXT_texture_filter_anisotropic\").TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropy);this.state.anisotropy=this.anisotropy}if(this.image){if(this.image.width){this.width=this.image.width;this.height=this.image.height}if(this.target===this.gl.TEXTURE_CUBE_MAP)for(let t=0;t<6;t++)this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X+t,this.level,this.internalFormat,this.format,this.type,this.image[t]);else if(ArrayBuffer.isView(this.image))this.target===this.gl.TEXTURE_2D?this.gl.texImage2D(this.target,this.level,this.internalFormat,this.width,this.height,0,this.format,this.type,this.image):this.target===this.gl.TEXTURE_2D_ARRAY&&this.gl.texImage3D(this.target,this.level,this.internalFormat,this.width,this.height,this.length,0,this.format,this.type,this.image);else if(this.image.isCompressedTexture)for(let t=0;t<this.image.length;t++)this.gl.compressedTexImage2D(this.target,t,this.internalFormat,this.image[t].width,this.image[t].height,0,this.image[t].data);else this.target===this.gl.TEXTURE_2D?this.gl.texImage2D(this.target,this.level,this.internalFormat,this.format,this.type,this.image):this.gl.texImage3D(this.target,this.level,this.internalFormat,this.width,this.height,this.length,0,this.format,this.type,this.image);if(this.generateMipmaps)if(this.gl.renderer.isWebgl2||isPowerOf2(this.image.width)&&isPowerOf2(this.image.height))this.gl.generateMipmap(this.target);else{this.generateMipmaps=false;this.wrapS=this.wrapT=this.gl.CLAMP_TO_EDGE;this.minFilter=this.gl.LINEAR}this.onUpdate&&this.onUpdate()}else if(this.target===this.gl.TEXTURE_CUBE_MAP)for(let i=0;i<6;i++)this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,this.gl.RGBA,1,1,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t);else this.width?this.target===this.gl.TEXTURE_2D?this.gl.texImage2D(this.target,this.level,this.internalFormat,this.width,this.height,0,this.format,this.type,null):this.target===this.gl.TEXTURE_2D_ARRAY&&this.gl.texImage3D(this.target,this.level,this.internalFormat,this.width,this.height,this.length,0,this.format,this.type,null):this.gl.texImage2D(this.target,0,this.gl.RGBA,1,1,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t);this.store.image=this.image}}}export{Texture};\n//# sourceMappingURL=Texture.js.map\n", "/**\n * Copy the values from one vec2 to another\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the source vector\n * @returns {vec2} out\n */\nfunction copy(t,n){t[0]=n[0];t[1]=n[1];return t}\n/**\n * Set the components of a vec2 to the given values\n *\n * @param {vec2} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} out\n */function set(t,n,r){t[0]=n;t[1]=r;return t}\n/**\n * Adds two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {vec2} out\n */function add(t,n,r){t[0]=n[0]+r[0];t[1]=n[1]+r[1];return t}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {vec2} out\n */function subtract(t,n,r){t[0]=n[0]-r[0];t[1]=n[1]-r[1];return t}\n/**\n * Multiplies two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {vec2} out\n */function multiply(t,n,r){t[0]=n[0]*r[0];t[1]=n[1]*r[1];return t}\n/**\n * Divides two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {vec2} out\n */function divide(t,n,r){t[0]=n[0]/r[0];t[1]=n[1]/r[1];return t}\n/**\n * Scales a vec2 by a scalar number\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec2} out\n */function scale(t,n,r){t[0]=n[0]*r;t[1]=n[1]*r;return t}\n/**\n * Calculates the euclidian distance between two vec2's\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} distance between a and b\n */function distance(t,n){var r=n[0]-t[0],e=n[1]-t[1];return Math.sqrt(r*r+e*e)}\n/**\n * Calculates the squared euclidian distance between two vec2's\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} squared distance between a and b\n */function squaredDistance(t,n){var r=n[0]-t[0],e=n[1]-t[1];return r*r+e*e}\n/**\n * Calculates the length of a vec2\n *\n * @param {vec2} a vector to calculate length of\n * @returns {Number} length of a\n */function length(t){var n=t[0],r=t[1];return Math.sqrt(n*n+r*r)}\n/**\n * Calculates the squared length of a vec2\n *\n * @param {vec2} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */function squaredLength(t){var n=t[0],r=t[1];return n*n+r*r}\n/**\n * Negates the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a vector to negate\n * @returns {vec2} out\n */function negate(t,n){t[0]=-n[0];t[1]=-n[1];return t}\n/**\n * Returns the inverse of the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a vector to invert\n * @returns {vec2} out\n */function inverse(t,n){t[0]=1/n[0];t[1]=1/n[1];return t}\n/**\n * Normalize a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a vector to normalize\n * @returns {vec2} out\n */function normalize(t,n){var r=n[0],e=n[1];var u=r*r+e*e;u>0&&(u=1/Math.sqrt(u));t[0]=n[0]*u;t[1]=n[1]*u;return t}\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} dot product of a and b\n */function dot(t,n){return t[0]*n[0]+t[1]*n[1]}\n/**\n * Computes the cross product of two vec2's\n * Note that the cross product returns a scalar\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} cross product of a and b\n */function cross(t,n){return t[0]*n[1]-t[1]*n[0]}\n/**\n * Performs a linear interpolation between two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec2} out\n */function lerp(t,n,r,e){var u=n[0],a=n[1];t[0]=u+e*(r[0]-u);t[1]=a+e*(r[1]-a);return t}\n/**\n * Transforms the vec2 with a mat2\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to transform\n * @param {mat2} m matrix to transform with\n * @returns {vec2} out\n */function transformMat2(t,n,r){var e=n[0],u=n[1];t[0]=r[0]*e+r[2]*u;t[1]=r[1]*e+r[3]*u;return t}\n/**\n * Transforms the vec2 with a mat2d\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to transform\n * @param {mat2d} m matrix to transform with\n * @returns {vec2} out\n */function transformMat2d(t,n,r){var e=n[0],u=n[1];t[0]=r[0]*e+r[2]*u+r[4];t[1]=r[1]*e+r[3]*u+r[5];return t}\n/**\n * Transforms the vec2 with a mat3\n * 3rd vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to transform\n * @param {mat3} m matrix to transform with\n * @returns {vec2} out\n */function transformMat3(t,n,r){var e=n[0],u=n[1];t[0]=r[0]*e+r[3]*u+r[6];t[1]=r[1]*e+r[4]*u+r[7];return t}\n/**\n * Transforms the vec2 with a mat4\n * 3rd vector component is implicitly '0'\n * 4th vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec2} out\n */function transformMat4(t,n,r){let e=n[0];let u=n[1];t[0]=r[0]*e+r[4]*u+r[12];t[1]=r[1]*e+r[5]*u+r[13];return t}\n/**\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\n *\n * @param {vec2} a The first vector.\n * @param {vec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */function exactEquals(t,n){return t[0]===n[0]&&t[1]===n[1]}export{add,copy,cross,distance,divide,dot,exactEquals,inverse,length,lerp,multiply,negate,normalize,scale,set,squaredDistance,squaredLength,subtract,transformMat2,transformMat2d,transformMat3,transformMat4};\n//# sourceMappingURL=Vec2Func.js.map\n", "import{set as t,copy as s,add as i,subtract as r,multiply as h,scale as e,divide as n,inverse as u,length as a,distance as c,squaredDistance as l,squaredLength as o,negate as p,cross as d,normalize as y,dot as g,exactEquals as x,transformMat3 as m,transformMat4 as f,lerp as q}from\"./functions/Vec2Func.js\";class Vec2 extends Array{constructor(t=0,s=t){super(t,s);return this}get x(){return this[0]}get y(){return this[1]}set x(t){this[0]=t}set y(t){this[1]=t}set(s,i=s){if(s.length)return this.copy(s);t(this,s,i);return this}copy(t){s(this,t);return this}add(t,s){s?i(this,t,s):i(this,this,t);return this}sub(t,s){s?r(this,t,s):r(this,this,t);return this}multiply(t){t.length?h(this,this,t):e(this,this,t);return this}divide(t){t.length?n(this,this,t):e(this,this,1/t);return this}inverse(t=this){u(this,t);return this}len(){return a(this)}distance(t){return t?c(this,t):a(this)}squaredLen(){return this.squaredDistance()}squaredDistance(t){return t?l(this,t):o(this)}negate(t=this){p(this,t);return this}cross(t,s){return s?d(t,s):d(this,t)}scale(t){e(this,this,t);return this}normalize(){y(this,this);return this}dot(t){return g(this,t)}equals(t){return x(this,t)}applyMatrix3(t){m(this,this,t);return this}applyMatrix4(t){f(this,this,t);return this}lerp(t,s){q(this,this,t,s);return this}clone(){return new Vec2(this[0],this[1])}fromArray(t,s=0){this[0]=t[s];this[1]=t[s+1];return this}toArray(t=[],s=0){t[s]=this[0];t[s+1]=this[1];return t}}export{Vec2};\n//# sourceMappingURL=Vec2.js.map\n", "import{set as t,copy as s,normalize as r,scale as i,dot as e}from\"./functions/Vec4Func.js\";class Vec4 extends Array{constructor(t=0,s=t,r=t,i=t){super(t,s,r,i);return this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set w(t){this[3]=t}set(s,r=s,i=s,e=s){if(s.length)return this.copy(s);t(this,s,r,i,e);return this}copy(t){s(this,t);return this}normalize(){r(this,this);return this}multiply(t){i(this,this,t);return this}dot(t){return e(this,t)}fromArray(t,s=0){this[0]=t[s];this[1]=t[s+1];this[2]=t[s+2];this[3]=t[s+3];return this}toArray(t=[],s=0){t[s]=this[0];t[s+1]=this[1];t[s+2]=this[2];t[s+3]=this[3];return t}}export{Vec4};\n//# sourceMappingURL=Vec4.js.map\n", "import{Texture as e}from\"./Texture.js\";class RenderTarget{constructor(t,{width:r=t.canvas.width,height:i=t.canvas.height,target:h=t.FRAMEBUFFER,color:s=1,depth:f=true,stencil:l=false,depthTexture:g=false,wrapS:E=t.CLAMP_TO_EDGE,wrapT:u=t.CLAMP_TO_EDGE,minFilter:d=t.LINEAR,magFilter:T=d,type:n=t.UNSIGNED_BYTE,format:a=t.RGBA,internalFormat:R=a,unpackAlignment:p,premultiplyAlpha:N}={}){this.gl=t;this.width=r;this.height=i;this.depth=f;this.buffer=this.gl.createFramebuffer();this.target=h;this.gl.renderer.bindFramebuffer(this);this.textures=[];const F=[];for(let h=0;h<s;h++){this.textures.push(new e(t,{width:r,height:i,wrapS:E,wrapT:u,minFilter:d,magFilter:T,type:n,format:a,internalFormat:R,unpackAlignment:p,premultiplyAlpha:N,flipY:false,generateMipmaps:false}));this.textures[h].update();this.gl.framebufferTexture2D(this.target,this.gl.COLOR_ATTACHMENT0+h,this.gl.TEXTURE_2D,this.textures[h].texture,0);F.push(this.gl.COLOR_ATTACHMENT0+h)}F.length>1&&this.gl.renderer.drawBuffers(F);this.texture=this.textures[0];if(g&&(this.gl.renderer.isWebgl2||this.gl.renderer.getExtension(\"WEBGL_depth_texture\"))){this.depthTexture=new e(t,{width:r,height:i,minFilter:this.gl.NEAREST,magFilter:this.gl.NEAREST,format:this.gl.DEPTH_COMPONENT,internalFormat:t.renderer.isWebgl2?this.gl.DEPTH_COMPONENT16:this.gl.DEPTH_COMPONENT,type:this.gl.UNSIGNED_INT});this.depthTexture.update();this.gl.framebufferTexture2D(this.target,this.gl.DEPTH_ATTACHMENT,this.gl.TEXTURE_2D,this.depthTexture.texture,0)}else{if(f&&!l){this.depthBuffer=this.gl.createRenderbuffer();this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.depthBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.DEPTH_COMPONENT16,r,i);this.gl.framebufferRenderbuffer(this.target,this.gl.DEPTH_ATTACHMENT,this.gl.RENDERBUFFER,this.depthBuffer)}if(l&&!f){this.stencilBuffer=this.gl.createRenderbuffer();this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.stencilBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.STENCIL_INDEX8,r,i);this.gl.framebufferRenderbuffer(this.target,this.gl.STENCIL_ATTACHMENT,this.gl.RENDERBUFFER,this.stencilBuffer)}if(f&&l){this.depthStencilBuffer=this.gl.createRenderbuffer();this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.depthStencilBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.DEPTH_STENCIL,r,i);this.gl.framebufferRenderbuffer(this.target,this.gl.DEPTH_STENCIL_ATTACHMENT,this.gl.RENDERBUFFER,this.depthStencilBuffer)}}this.gl.renderer.bindFramebuffer({target:this.target})}setSize(e,t){if(this.width!==e||this.height!==t){this.width=e;this.height=t;this.gl.renderer.bindFramebuffer(this);for(let r=0;r<this.textures.length;r++){this.textures[r].width=e;this.textures[r].height=t;this.textures[r].needsUpdate=true;this.textures[r].update();this.gl.framebufferTexture2D(this.target,this.gl.COLOR_ATTACHMENT0+r,this.gl.TEXTURE_2D,this.textures[r].texture,0)}if(this.depthTexture){this.depthTexture.width=e;this.depthTexture.height=t;this.depthTexture.needsUpdate=true;this.depthTexture.update();this.gl.framebufferTexture2D(this.target,this.gl.DEPTH_ATTACHMENT,this.gl.TEXTURE_2D,this.depthTexture.texture,0)}else{if(this.depthBuffer){this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.depthBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.DEPTH_COMPONENT16,e,t)}if(this.stencilBuffer){this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.stencilBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.STENCIL_INDEX8,e,t)}if(this.depthStencilBuffer){this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.depthStencilBuffer);this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.DEPTH_STENCIL,e,t)}}this.gl.renderer.bindFramebuffer({target:this.target})}}}export{RenderTarget};\n//# sourceMappingURL=RenderTarget.js.map\n", "import{Geometry as t}from\"../core/Geometry.js\";import\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";class Triangle extends t{constructor(t,{attributes:e={}}={}){Object.assign(e,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}});super(t,e)}}export{Triangle};\n//# sourceMappingURL=Triangle.js.map\n", "import{RenderTarget as t}from\"../core/RenderTarget.js\";import{Program as e}from\"../core/Program.js\";import{Mesh as r}from\"../core/Mesh.js\";import{Vec2 as n}from\"../math/Vec2.js\";import{Triangle as o}from\"./Triangle.js\";import\"../core/Texture.js\";import\"../core/Transform.js\";import\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Mat4.js\";import\"../math/functions/Mat4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/Mat3.js\";import\"../math/functions/Mat3Func.js\";import\"../math/functions/Vec2Func.js\";import\"../core/Geometry.js\";class Flowmap{constructor(a,{size:m=128,falloff:u=.3,alpha:l=1,dissipation:c=.98,type:p}={}){const f=this;this.gl=a;this.uniform={value:null};this.mask={read:null,write:null,swap:()=>{let t=f.mask.read;f.mask.read=f.mask.write;f.mask.write=t;f.uniform.value=f.mask.read.texture}};createFBOs();this.aspect=1;this.mouse=new n;this.velocity=new n;this.mesh=initProgram();function createFBOs(){p||(p=a.HALF_FLOAT||a.renderer.extensions.OES_texture_half_float.HALF_FLOAT_OES);let e=(()=>a.renderer.isWebgl2||a.renderer.extensions[`OES_texture_${p===a.FLOAT?\"\":\"half_\"}float_linear`]?a.LINEAR:a.NEAREST)();const r={width:m,height:m,type:p,format:a.RGBA,internalFormat:a.renderer.isWebgl2?p===a.FLOAT?a.RGBA32F:a.RGBA16F:a.RGBA,minFilter:e,depth:false};f.mask.read=new t(a,r);f.mask.write=new t(a,r);f.mask.swap()}function initProgram(){return new r(a,{geometry:new o(a),program:new e(a,{vertex:s,fragment:i,uniforms:{tMap:f.uniform,uFalloff:{value:u*.5},uAlpha:{value:l},uDissipation:{value:c},uAspect:{value:1},uMouse:{value:f.mouse},uVelocity:{value:f.velocity}},depthTest:false})})}}update(){this.mesh.program.uniforms.uAspect.value=this.aspect;this.gl.renderer.render({scene:this.mesh,target:this.mask.write,clear:false});this.mask.swap()}}const s=\"\\n    attribute vec2 uv;\\n    attribute vec2 position;\\n\\n    varying vec2 vUv;\\n\\n    void main() {\\n        vUv = uv;\\n        gl_Position = vec4(position, 0, 1);\\n    }\\n\";const i=\"\\n    precision highp float;\\n\\n    uniform sampler2D tMap;\\n\\n    uniform float uFalloff;\\n    uniform float uAlpha;\\n    uniform float uDissipation;\\n    \\n    uniform float uAspect;\\n    uniform vec2 uMouse;\\n    uniform vec2 uVelocity;\\n\\n    varying vec2 vUv;\\n\\n    void main() {\\n        vec4 color = texture2D(tMap, vUv) * uDissipation;\\n\\n        vec2 cursor = vUv - uMouse;\\n        cursor.x *= uAspect;\\n\\n        vec3 stamp = vec3(uVelocity * vec2(1, -1), 1.0 - pow(1.0 - min(1.0, length(uVelocity)), 3.0));\\n        float falloff = smoothstep(uFalloff, 0.0, length(cursor)) * uAlpha;\\n\\n        color.rgb = mix(color.rgb, stamp, vec3(falloff));\\n\\n        gl_FragColor = color;\\n    }\\n\";export{Flowmap};\n//# sourceMappingURL=Flowmap.js.map\n", "import{Transform as t}from\"./Transform.js\";import{Mat4 as r}from\"../math/Mat4.js\";import{Vec3 as s}from\"../math/Vec3.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/functions/Mat4Func.js\";import\"../math/functions/Vec3Func.js\";const e=new r;const i=new s;const o=new s;class Camera extends t{constructor(t,{near:e=.1,far:i=100,fov:o=45,aspect:n=1,left:a,right:h,bottom:p,top:u,zoom:c=1}={}){super();Object.assign(this,{near:e,far:i,fov:o,aspect:n,left:a,right:h,bottom:p,top:u,zoom:c});this.projectionMatrix=new r;this.viewMatrix=new r;this.projectionViewMatrix=new r;this.worldPosition=new s;this.type=a||h?\"orthographic\":\"perspective\";this.type===\"orthographic\"?this.orthographic():this.perspective()}perspective({near:t=this.near,far:r=this.far,fov:s=this.fov,aspect:e=this.aspect}={}){Object.assign(this,{near:t,far:r,fov:s,aspect:e});this.projectionMatrix.fromPerspective({fov:s*(Math.PI/180),aspect:e,near:t,far:r});this.type=\"perspective\";return this}orthographic({near:t=this.near,far:r=this.far,left:s=this.left||-1,right:e=this.right||1,bottom:i=this.bottom||-1,top:o=this.top||1,zoom:n=this.zoom}={}){Object.assign(this,{near:t,far:r,left:s,right:e,bottom:i,top:o,zoom:n});s/=n;e/=n;i/=n;o/=n;this.projectionMatrix.fromOrthogonal({left:s,right:e,bottom:i,top:o,near:t,far:r});this.type=\"orthographic\";return this}updateMatrixWorld(){super.updateMatrixWorld();this.viewMatrix.inverse(this.worldMatrix);this.worldMatrix.getTranslation(this.worldPosition);this.projectionViewMatrix.multiply(this.projectionMatrix,this.viewMatrix);return this}updateProjectionMatrix(){return this.type===\"perspective\"?this.perspective():this.orthographic()}lookAt(t){super.lookAt(t,true);return this}project(t){t.applyMatrix4(this.viewMatrix);t.applyMatrix4(this.projectionMatrix);return this}unproject(t){t.applyMatrix4(e.inverse(this.projectionMatrix));t.applyMatrix4(this.worldMatrix);return this}updateFrustum(){this.frustum||(this.frustum=[new s,new s,new s,new s,new s,new s]);const t=this.projectionViewMatrix;this.frustum[0].set(t[3]-t[0],t[7]-t[4],t[11]-t[8]).constant=t[15]-t[12];this.frustum[1].set(t[3]+t[0],t[7]+t[4],t[11]+t[8]).constant=t[15]+t[12];this.frustum[2].set(t[3]+t[1],t[7]+t[5],t[11]+t[9]).constant=t[15]+t[13];this.frustum[3].set(t[3]-t[1],t[7]-t[5],t[11]-t[9]).constant=t[15]-t[13];this.frustum[4].set(t[3]-t[2],t[7]-t[6],t[11]-t[10]).constant=t[15]-t[14];this.frustum[5].set(t[3]+t[2],t[7]+t[6],t[11]+t[10]).constant=t[15]+t[14];for(let t=0;t<6;t++){const r=1/this.frustum[t].distance();this.frustum[t].multiply(r);this.frustum[t].constant*=r}}frustumIntersectsMesh(t,r=t.worldMatrix){if(!t.geometry.attributes.position)return true;t.geometry.bounds&&t.geometry.bounds.radius!==Infinity||t.geometry.computeBoundingSphere();if(!t.geometry.bounds)return true;const s=i;s.copy(t.geometry.bounds.center);s.applyMatrix4(r);const e=t.geometry.bounds.radius*r.getMaxScaleOnAxis();return this.frustumIntersectsSphere(s,e)}frustumIntersectsSphere(t,r){const s=o;for(let e=0;e<6;e++){const i=this.frustum[e];const o=s.copy(i).dot(t)+i.constant;if(o<-r)return false}return true}}export{Camera};\n//# sourceMappingURL=Camera.js.map\n", "import{Vec3 as e}from\"../math/Vec3.js\";import{Vec2 as t}from\"../math/Vec2.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/Vec2Func.js\";const a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,DOLLY_PAN:3};const n=new e;const s=new t;const o=new t;function Orbit(i,{element:h=document,enabled:c=true,target:l=new e,ease:u=.25,inertia:r=.85,enableRotate:d=true,rotateSpeed:p=.1,autoRotate:m=false,autoRotateSpeed:f=1,enableZoom:v=true,zoomSpeed:g=1,zoomStyle:M=\"dolly\",enablePan:y=true,panSpeed:b=.1,minPolarAngle:w=0,maxPolarAngle:E=Math.PI,minAzimuthAngle:L=-Infinity,maxAzimuthAngle:O=Infinity,minDistance:P=0,maxDistance:N=Infinity}={}){this.enabled=c;this.target=l;this.zoomStyle=M;u=u||1;r=r||0;this.minDistance=P;this.maxDistance=N;const Y={radius:1,phi:0,theta:0};const A={radius:1,phi:0,theta:0};const x={radius:1,phi:0,theta:0};const D=new e;const T=new e;T.copy(i.position).sub(this.target);x.radius=A.radius=T.distance();x.theta=A.theta=Math.atan2(T.x,T.z);x.phi=A.phi=Math.acos(Math.min(Math.max(T.y/A.radius,-1),1));this.offset=T;this.update=()=>{m&&handleAutoRotate();A.radius*=Y.radius;A.theta+=Y.theta;A.phi+=Y.phi;A.theta=Math.max(L,Math.min(O,A.theta));A.phi=Math.max(w,Math.min(E,A.phi));A.radius=Math.max(this.minDistance,Math.min(this.maxDistance,A.radius));x.phi+=(A.phi-x.phi)*u;x.theta+=(A.theta-x.theta)*u;x.radius+=(A.radius-x.radius)*u;this.target.add(D);let e=x.radius*Math.sin(Math.max(1e-6,x.phi));T.x=e*Math.sin(x.theta);T.y=x.radius*Math.cos(x.phi);T.z=e*Math.cos(x.theta);i.position.copy(this.target).add(T);i.lookAt(this.target);Y.theta*=r;Y.phi*=r;D.multiply(r);Y.radius=1};this.forcePosition=()=>{T.copy(i.position).sub(this.target);x.radius=A.radius=T.distance();x.theta=A.theta=Math.atan2(T.x,T.z);x.phi=A.phi=Math.acos(Math.min(Math.max(T.y/A.radius,-1),1));i.lookAt(this.target)};const X=new t;const R=new t;const S=new t;let k=a.NONE;this.mouseButtons={ORBIT:0,ZOOM:1,PAN:2};function getZoomScale(){return Math.pow(.95,g)}function panLeft(e,t){n.set(t[0],t[1],t[2]);n.multiply(-e);D.add(n)}function panUp(e,t){n.set(t[4],t[5],t[6]);n.multiply(e);D.add(n)}const pan=(e,t)=>{let a=h===document?document.body:h;n.copy(i.position).sub(this.target);let s=n.distance();s*=Math.tan((i.fov||45)/2*Math.PI/180);panLeft(2*e*s/a.clientHeight,i.matrix);panUp(2*t*s/a.clientHeight,i.matrix)};const dolly=e=>{if(this.zoomStyle===\"dolly\")Y.radius/=e;else{i.fov/=e;i.type===\"orthographic\"?i.orthographic():i.perspective()}};function handleAutoRotate(){const e=2*Math.PI/60/60*f;Y.theta-=e}function handleMoveRotate(e,t){s.set(e,t);o.sub(s,X).multiply(p);let a=h===document?document.body:h;Y.theta-=2*Math.PI*o.x/a.clientHeight;Y.phi-=2*Math.PI*o.y/a.clientHeight;X.copy(s)}function handleMouseMoveDolly(e){s.set(e.clientX,e.clientY);o.sub(s,S);o.y>0?dolly(getZoomScale()):o.y<0&&dolly(1/getZoomScale());S.copy(s)}function handleMovePan(e,t){s.set(e,t);o.sub(s,R).multiply(b);pan(o.x,o.y);R.copy(s)}function handleTouchStartDollyPan(e){if(v){let t=e.touches[0].pageX-e.touches[1].pageX;let a=e.touches[0].pageY-e.touches[1].pageY;let n=Math.sqrt(t*t+a*a);S.set(0,n)}if(y){let t=.5*(e.touches[0].pageX+e.touches[1].pageX);let a=.5*(e.touches[0].pageY+e.touches[1].pageY);R.set(t,a)}}function handleTouchMoveDollyPan(e){if(v){let t=e.touches[0].pageX-e.touches[1].pageX;let a=e.touches[0].pageY-e.touches[1].pageY;let n=Math.sqrt(t*t+a*a);s.set(0,n);o.set(0,Math.pow(s.y/S.y,g));dolly(o.y);S.copy(s)}if(y){let t=.5*(e.touches[0].pageX+e.touches[1].pageX);let a=.5*(e.touches[0].pageY+e.touches[1].pageY);handleMovePan(t,a)}}const onMouseDown=e=>{if(this.enabled){switch(e.button){case this.mouseButtons.ORBIT:if(d===false)return;X.set(e.clientX,e.clientY);k=a.ROTATE;break;case this.mouseButtons.ZOOM:if(v===false)return;S.set(e.clientX,e.clientY);k=a.DOLLY;break;case this.mouseButtons.PAN:if(y===false)return;R.set(e.clientX,e.clientY);k=a.PAN;break}if(k!==a.NONE){window.addEventListener(\"mousemove\",onMouseMove,false);window.addEventListener(\"mouseup\",onMouseUp,false)}}};const onMouseMove=e=>{if(this.enabled)switch(k){case a.ROTATE:if(d===false)return;handleMoveRotate(e.clientX,e.clientY);break;case a.DOLLY:if(v===false)return;handleMouseMoveDolly(e);break;case a.PAN:if(y===false)return;handleMovePan(e.clientX,e.clientY);break}};const onMouseUp=()=>{window.removeEventListener(\"mousemove\",onMouseMove,false);window.removeEventListener(\"mouseup\",onMouseUp,false);k=a.NONE};const onMouseWheel=e=>{if(this.enabled&&v&&(k===a.NONE||k===a.ROTATE)){e.stopPropagation();e.preventDefault();e.deltaY<0?dolly(1/getZoomScale()):e.deltaY>0&&dolly(getZoomScale())}};const onTouchStart=e=>{if(this.enabled){e.preventDefault();switch(e.touches.length){case 1:if(d===false)return;X.set(e.touches[0].pageX,e.touches[0].pageY);k=a.ROTATE;break;case 2:if(v===false&&y===false)return;handleTouchStartDollyPan(e);k=a.DOLLY_PAN;break;default:k=a.NONE}}};const onTouchMove=e=>{if(this.enabled){e.preventDefault();e.stopPropagation();switch(e.touches.length){case 1:if(d===false)return;handleMoveRotate(e.touches[0].pageX,e.touches[0].pageY);break;case 2:if(v===false&&y===false)return;handleTouchMoveDollyPan(e);break;default:k=a.NONE}}};const onTouchEnd=()=>{this.enabled&&(k=a.NONE)};const onContextMenu=e=>{this.enabled&&e.preventDefault()};function addHandlers(){h.addEventListener(\"contextmenu\",onContextMenu,false);h.addEventListener(\"mousedown\",onMouseDown,false);h.addEventListener(\"wheel\",onMouseWheel,{passive:false});h.addEventListener(\"touchstart\",onTouchStart,{passive:false});h.addEventListener(\"touchend\",onTouchEnd,false);h.addEventListener(\"touchmove\",onTouchMove,{passive:false})}this.remove=function(){h.removeEventListener(\"contextmenu\",onContextMenu);h.removeEventListener(\"mousedown\",onMouseDown);h.removeEventListener(\"wheel\",onMouseWheel);h.removeEventListener(\"touchstart\",onTouchStart);h.removeEventListener(\"touchend\",onTouchEnd);h.removeEventListener(\"touchmove\",onTouchMove);window.removeEventListener(\"mousemove\",onMouseMove);window.removeEventListener(\"mouseup\",onMouseUp)};addHandlers()}export{Orbit};\n//# sourceMappingURL=Orbit.js.map\n", "import{Vec2 as t}from\"../math/Vec2.js\";import{Vec3 as o}from\"../math/Vec3.js\";import{Mat4 as n}from\"../math/Mat4.js\";import\"../math/functions/Vec2Func.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/Mat4Func.js\";const i=new t;const r=new t;const s=new t;const e=new o;const c=new o;const a=new o;const l=new o;const d=new o;const h=new o;const u=new o;const m=new o;const y=new o;const f=new o;const p=new o;const x=new n;class Raycast{constructor(){this.origin=new o;this.direction=new o}castMouse(t,o=[0,0]){if(t.type===\"orthographic\"){const{left:n,right:i,bottom:r,top:s,zoom:e}=t;const c=n/e+(i-n)/e*(o[0]*.5+.5);const a=r/e+(s-r)/e*(o[1]*.5+.5);this.origin.set(c,a,0);this.origin.applyMatrix4(t.worldMatrix);this.direction.x=-t.worldMatrix[8];this.direction.y=-t.worldMatrix[9];this.direction.z=-t.worldMatrix[10]}else{t.worldMatrix.getTranslation(this.origin);this.direction.set(o[0],o[1],.5);t.unproject(this.direction);this.direction.sub(this.origin).normalize()}}intersectBounds(t,{maxDistance:n,output:i=[]}={}){Array.isArray(t)||(t=[t]);const r=x;const s=e;const a=c;const l=i;l.length=0;t.forEach((t=>{t.geometry.bounds&&t.geometry.bounds.radius!==Infinity||t.geometry.computeBoundingSphere();const i=t.geometry.bounds;r.inverse(t.worldMatrix);let e;if(n){a.copy(this.direction).scaleRotateMatrix4(r);e=n*a.len()}s.copy(this.origin).applyMatrix4(r);a.copy(this.direction).transformDirection(r);if(n&&s.distance(i.center)-i.radius>e)return;let c=0;if(t.geometry.raycast===\"sphere\"){if(s.distance(i.center)>i.radius){c=this.intersectSphere(i,s,a);if(!c)return}}else if(s.x<i.min.x||s.x>i.max.x||s.y<i.min.y||s.y>i.max.y||s.z<i.min.z||s.z>i.max.z){c=this.intersectBox(i,s,a);if(!c)return}if(!(n&&c>e)){t.hit||(t.hit={localPoint:new o,point:new o});t.hit.localPoint.copy(a).multiply(c).add(s);t.hit.point.copy(t.hit.localPoint).applyMatrix4(t.worldMatrix);t.hit.distance=t.hit.point.distance(this.origin);l.push(t)}}));l.sort(((t,o)=>t.hit.distance-o.hit.distance));return l}intersectMeshes(n,{cullFace:y=true,maxDistance:f,includeUV:p=true,includeNormal:w=true,output:g=[]}={}){const M=this.intersectBounds(n,{maxDistance:f,output:g});if(!M.length)return M;const z=x;const b=e;const A=c;const N=a;const v=l;const j=d;const B=h;const D=u;const F=m;const P=i;const R=r;const V=s;for(let n=M.length-1;n>=0;n--){const i=M[n];z.inverse(i.worldMatrix);let r;if(f){A.copy(this.direction).scaleRotateMatrix4(z);r=f*A.len()}b.copy(this.origin).applyMatrix4(z);A.copy(this.direction).transformDirection(z);let s=0;let e,c,a;const l=i.geometry;const d=l.attributes;const h=d.index;const u=d.position;const m=Math.max(0,l.drawRange.start);const x=Math.min(h?h.count:u.count,l.drawRange.start+l.drawRange.count);const g=u.size;for(let t=m;t<x;t+=3){const o=h?h.data[t]:t;const n=h?h.data[t+1]:t+1;const i=h?h.data[t+2]:t+2;N.fromArray(u.data,o*g);v.fromArray(u.data,n*g);j.fromArray(u.data,i*g);const l=this.intersectTriangle(N,v,j,y,b,A,D);if(l&&(!(f&&l>r)&&(!s||l<s))){s=l;e=o;c=n;a=i;B.copy(D)}}s||M.splice(n,1);i.hit.localPoint.copy(A).multiply(s).add(b);i.hit.point.copy(i.hit.localPoint).applyMatrix4(i.worldMatrix);i.hit.distance=i.hit.point.distance(this.origin);if(!i.hit.faceNormal){i.hit.localFaceNormal=new o;i.hit.faceNormal=new o;i.hit.uv=new t;i.hit.localNormal=new o;i.hit.normal=new o}i.hit.localFaceNormal.copy(B);i.hit.faceNormal.copy(i.hit.localFaceNormal).transformDirection(i.worldMatrix);if(p||w){N.fromArray(u.data,e*3);v.fromArray(u.data,c*3);j.fromArray(u.data,a*3);this.getBarycoord(i.hit.localPoint,N,v,j,F)}if(p&&d.uv){P.fromArray(d.uv.data,e*2);R.fromArray(d.uv.data,c*2);V.fromArray(d.uv.data,a*2);i.hit.uv.set(P.x*F.x+R.x*F.y+V.x*F.z,P.y*F.x+R.y*F.y+V.y*F.z)}if(w&&d.normal){N.fromArray(d.normal.data,e*3);v.fromArray(d.normal.data,c*3);j.fromArray(d.normal.data,a*3);i.hit.localNormal.set(N.x*F.x+v.x*F.y+j.x*F.z,N.y*F.x+v.y*F.y+j.y*F.z,N.z*F.x+v.z*F.y+j.z*F.z);i.hit.normal.copy(i.hit.localNormal).transformDirection(i.worldMatrix)}}M.sort(((t,o)=>t.hit.distance-o.hit.distance));return M}intersectPlane(t,o=this.origin,n=this.direction){const i=e;i.sub(t.origin,o);const r=i.dot(t.normal);const s=n.dot(t.normal);if(s==0)return 0;const c=r/s;return c<=0?0:o.add(n.scale(c))}intersectSphere(t,o=this.origin,n=this.direction){const i=a;i.sub(t.center,o);const r=i.dot(n);const s=i.dot(i)-r*r;const e=t.radius*t.radius;if(s>e)return 0;const c=Math.sqrt(e-s);const l=r-c;const d=r+c;return l<0&&d<0?0:l<0?d:l}intersectBox(t,o=this.origin,n=this.direction){let i,r,s,e,c,a;const l=1/n.x;const d=1/n.y;const h=1/n.z;const u=t.min;const m=t.max;i=((l>=0?u.x:m.x)-o.x)*l;r=((l>=0?m.x:u.x)-o.x)*l;s=((d>=0?u.y:m.y)-o.y)*d;e=((d>=0?m.y:u.y)-o.y)*d;if(i>e||s>r)return 0;s>i&&(i=s);e<r&&(r=e);c=((h>=0?u.z:m.z)-o.z)*h;a=((h>=0?m.z:u.z)-o.z)*h;if(i>a||c>r)return 0;c>i&&(i=c);a<r&&(r=a);return r<0?0:i>=0?i:r}intersectTriangle(t,o,n,i=true,r=this.origin,s=this.direction,e=u){const c=m;const a=y;const l=f;c.sub(o,t);a.sub(n,t);e.cross(c,a);let d=s.dot(e);if(!d)return 0;let h;if(d>0){if(i)return 0;h=1}else{h=-1;d=-d}l.sub(r,t);let p=h*s.dot(a.cross(l,a));if(p<0)return 0;let x=h*s.dot(c.cross(l));if(x<0)return 0;if(p+x>d)return 0;let w=-h*l.dot(e);return w<0?0:w/d}getBarycoord(t,o,n,i,r=m){const s=y;const e=f;const c=p;s.sub(i,o);e.sub(n,o);c.sub(t,o);const a=s.dot(s);const l=s.dot(e);const d=s.dot(c);const h=e.dot(e);const u=e.dot(c);const x=a*h-l*l;if(x===0)return r.set(-2,-1,-1);const w=1/x;const g=(h*d-l*u)*w;const M=(a*u-l*d)*w;return r.set(1-g-M,M,g)}}export{Raycast};\n//# sourceMappingURL=Raycast.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";const s=\"catmullrom\";const i=\"cubicbezier\";const e=\"quadraticbezier\";const n=new t,o=new t,c=new t,r=new t;\n/**\n * Get the control points of cubic bezier curve.\n * @param {*} i\n * @param {*} a\n * @param {*} b\n */function getCtrlPoint(t,s,i=.168,e=.168){s<1?n.sub(t[1],t[0]).scale(i).add(t[0]):n.sub(t[s+1],t[s-1]).scale(i).add(t[s]);if(s>t.length-3){const s=t.length-1;o.sub(t[s-1],t[s]).scale(e).add(t[s])}else o.sub(t[s],t[s+2]).scale(e).add(t[s+1]);return[n.clone(),o.clone()]}function getQuadraticBezierPoint(s,i,e,r){const u=1-s;n.copy(i).scale(u**2);o.copy(e).scale(2*u*s);c.copy(r).scale(s**2);const p=new t;p.add(n,o).add(c);return p}function getCubicBezierPoint(s,i,e,u,p){const h=1-s;n.copy(i).scale(h**3);o.copy(e).scale(3*h**2*s);c.copy(u).scale(3*h*s**2);r.copy(p).scale(s**3);const l=new t;l.add(n,o).add(c).add(r);return l}class Curve{constructor({points:i=[new t(0,0,0),new t(0,1,0),new t(1,1,0),new t(1,0,0)],divisions:e=12,type:n=s}={}){this.points=i;this.divisions=e;this.type=n}_getQuadraticBezierPoints(t=this.divisions){const s=[];const i=this.points.length;if(i<3){console.warn(\"Not enough points provided.\");return[]}const e=this.points[0];let n=this.points[1],o=this.points[2];for(let i=0;i<=t;i++){const c=getQuadraticBezierPoint(i/t,e,n,o);s.push(c)}let c=3;while(i-c>0){e.copy(o);n=o.scale(2).sub(n);o=this.points[c];for(let i=1;i<=t;i++){const c=getQuadraticBezierPoint(i/t,e,n,o);s.push(c)}c++}return s}_getCubicBezierPoints(t=this.divisions){const s=[];const i=this.points.length;if(i<4){console.warn(\"Not enough points provided.\");return[]}let e=this.points[0],n=this.points[1],o=this.points[2],c=this.points[3];for(let i=0;i<=t;i++){const r=getCubicBezierPoint(i/t,e,n,o,c);s.push(r)}let r=4;while(i-r>1){e.copy(c);n=c.scale(2).sub(o);o=this.points[r];c=this.points[r+1];for(let i=1;i<=t;i++){const r=getCubicBezierPoint(i/t,e,n,o,c);s.push(r)}r+=2}return s}_getCatmullRomPoints(t=this.divisions,s=.168,e=.168){const n=[];const o=this.points.length;if(o<=2)return this.points;let c;this.points.forEach(((o,r)=>{if(r===0)c=o;else{const[u,p]=getCtrlPoint(this.points,r-1,s,e);const h=new Curve({points:[c,u,p,o],type:i});n.pop();n.push(...h.getPoints(t));c=o}}));return n}getPoints(t=this.divisions,n=.168,o=.168){const c=this.type;return c===e?this._getQuadraticBezierPoints(t):c===i?this._getCubicBezierPoints(t):c===s?this._getCatmullRomPoints(t,n,o):this.points}}Curve.CATMULLROM=s;Curve.CUBICBEZIER=i;Curve.QUADRATICBEZIER=e;export{Curve};\n//# sourceMappingURL=Curve.js.map\n", "import t from\"./BaseSegment.js\";import{Vec3 as i}from\"../../math/Vec3.js\";import{T_VALUES as e,C_VALUES as s}from\"./utils.js\";import\"../../math/functions/Vec3Func.js\";const r=new i;function cubicBezier(t,i,e,s,r){const h=1-t;return h*h*h*i+3*h*h*t*e+3*h*t*t*s+t*t*t*r}function cubicBezierDeriv(t,i,e,s,r){const h=1-t;return 3*h*h*(e-i)+6*h*t*(s-e)+3*t*t*(r-s)}class CubicBezierSegment extends t{constructor(t,i,e,s,r=0,h=0){super();this.p0=t;this.p1=i;this.p2=e;this.p3=s;this.tiltStart=r;this.tiltEnd=h;this._len=-1}updateLength(){const t=.5;const i=e.length;let h=0;for(let n,p=0;p<i;p++){n=t*e[p]+t;h+=s[p]*this.getDerivativeAt(n,r).len()}this._len=t*h}\n/**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */getPointAt(t,e=new i){e.x=cubicBezier(t,this.p0.x,this.p1.x,this.p2.x,this.p3.x);e.y=cubicBezier(t,this.p0.y,this.p1.y,this.p2.y,this.p3.y);e.z=cubicBezier(t,this.p0.z,this.p1.z,this.p2.z,this.p3.z);return e}getDerivativeAt(t,e=new i){e.x=cubicBezierDeriv(t,this.p0.x,this.p1.x,this.p2.x,this.p3.x);e.y=cubicBezierDeriv(t,this.p0.y,this.p1.y,this.p2.y,this.p3.y);e.z=cubicBezierDeriv(t,this.p0.z,this.p1.z,this.p2.z,this.p3.z);return e}\n/**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */getTangentAt(t,e=new i){return this.getDerivativeAt(t,e).normalize()}lastPoint(){return this.p3}}export{CubicBezierSegment as default};\n//# sourceMappingURL=CubicBezierSegment.js.map\n", "import t from\"./BaseSegment.js\";import{Vec3 as i}from\"../../math/Vec3.js\";import{T_VALUES as e,C_VALUES as r}from\"./utils.js\";import\"../../math/functions/Vec3Func.js\";const s=new i;function quadraticBezier(t,i,e,r){const s=1-t;return s*s*i+2*s*t*e+t*t*r}function quadraticBezierDeriv(t,i,e,r){const s=1-t;return 2*s*(e-i)+2*t*(r-e)}class QuadraticBezierSegment extends t{constructor(t,i,e,r=0,s=0){super();this.p0=t;this.p1=i;this.p2=e;this.tiltStart=r;this.tiltEnd=s;this._len=-1}updateLength(){const t=.5;const i=e.length;let n=0;for(let a,h=0;h<i;h++){a=t*e[h]+t;n+=r[h]*this.getDerivativeAt(a,s).len()}this._len=t*n}\n/**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */getPointAt(t,e=new i){e.x=quadraticBezier(t,this.p0.x,this.p1.x,this.p2.x);e.y=quadraticBezier(t,this.p0.y,this.p1.y,this.p2.y);e.z=quadraticBezier(t,this.p0.z,this.p1.z,this.p2.z);return e}getDerivativeAt(t,e=new i){e.x=quadraticBezierDeriv(t,this.p0.x,this.p1.x,this.p2.x);e.y=quadraticBezierDeriv(t,this.p0.y,this.p1.y,this.p2.y);e.z=quadraticBezierDeriv(t,this.p0.z,this.p1.z,this.p2.z);return e}\n/**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */getTangentAt(t,e=new i){return this.getDerivativeAt(t,e).normalize()}lastPoint(){return this.p2}}export{QuadraticBezierSegment as default};\n//# sourceMappingURL=QuadraticBezierSegment.js.map\n", "import t from\"./BaseSegment.js\";import{Vec3 as e}from\"../../math/Vec3.js\";import{lerp as s}from\"../../math/functions/Vec3Func.js\";const n=new e;class LineSegment extends t{constructor(t,e,s=0,n=0){super();this.p0=t;this.p1=e;this.tiltStart=s;this.tiltEnd=n;this._len=-1}updateLength(){this._len=n.sub(this.p1,this.p0).len()}\n/**\n     * Get point at relative position in curve according to segment length.\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} Point at relative position\n     */getPointAt(t,n=new e){s(n,this.p0,this.p1,t);return n}\n/**\n     * Returns a unit vector tangent at t\n     * @param {number} t Distance at time t in range [0 .. 1]\n     * @param {Vec3} out Optional Vec3 to output\n     * @returns {Vec3} A unit vector\n     */getTangentAt(t,s=new e){return s.sub(this.p1,this.p0).normalize()}lastPoint(){return this.p1}}export{LineSegment as default};\n//# sourceMappingURL=LineSegment.js.map\n", "import{Vec3 as t}from\"../../math/Vec3.js\";import{Mat4 as e}from\"../../math/Mat4.js\";import n from\"./CubicBezierSegment.js\";import s from\"./QuadraticBezierSegment.js\";import i from\"./LineSegment.js\";import{clamp as h,mat4fromRotationSinCos as o,rotateNormalBinormal as r,toRadian as g,toDegrees as l}from\"./utils.js\";import\"../../math/functions/Vec3Func.js\";import\"../../math/functions/Mat4Func.js\";import\"./BaseSegment.js\";const a=new t;const c=new e;function throwIfNullProperty(t,e){if(this[t]==null)throw new Error(e)}class Path{constructor(){this._segments=[];this._lengthOffsets=null;this._totalLength=-1;this._lastPoint=null;this._lastTilt=0;this._assertLastPoint=throwIfNullProperty.bind(this,\"_lastPoint\",\"Can`t get previous point of curve. Did you forget moveTo command?\");this.tiltFunction=null}moveTo(t,e=0){this._totalLength=-1;this._lastPoint=t;this._lastTilt=e}bezierCurveTo(t,e,s,i=0){this._assertLastPoint();const h=new n(this._lastPoint,t,e,s,this._lastTilt,i);this.addSegment(h);return this}quadraticCurveTo(t,e,n=0){this._assertLastPoint();const i=new s(this._lastPoint,t,e,this._lastTilt,n);this.addSegment(i);return this}lineTo(t,e=0){this._assertLastPoint();const n=new i(this._lastPoint,t,this._lastTilt,e);this.addSegment(n);return this}addSegment(t){this._totalLength=-1;this._lastPoint=t.lastPoint();this._lastTilt=t.tiltEnd;this._segments.push(t);return this}getSegments(){return this._segments}updateLength(){const t=this._segments.length;this._lengthOffsets=new Array(t);let e=0;for(let n=0;n<t;n++){this._lengthOffsets[n]=e;e+=this._segments[n].getLength()}this._totalLength=e}getLength(){this._totalLength<0&&this.updateLength();return this._totalLength}\n/**\n     * Finding a path segment at a given absolute length distance\n     * @param {number} len absolute length distance\n     * @returns {[number, number]} [_segment index_, _relative segment distance_]\n     */findSegmentIndexAtLength(t){const e=this.getLength();if(t<=0)return[0,0];if(t>=e)return[this._segments.length-1,1];let n=0;let s=this._lengthOffsets.length-1;let i=-1;let h;while(n<=s){h=Math.ceil((n+s)/2);if(h===0||h===this._lengthOffsets.length-1||t>=this._lengthOffsets[h]&&t<this._lengthOffsets[h+1]){i=h;break}t<this._lengthOffsets[h]?s=h-1:n=h+1}const o=this._segments[i];const r=o.getLength();const g=(t-this._lengthOffsets[i])/r;return[i,g]}getPointAtLength(e,n=new t){const[s,i]=this.findSegmentIndexAtLength(e);return this._segments[s].getPointAt(i,n)}getPointAt(e,n=new t){const s=this.getLength();return this.getPointAtLength(e*s,n)}getTangentAtLength(e,n=new t){const[s,i]=this.findSegmentIndexAtLength(e);return this._segments[s].getTangentAt(i,n)}getTangentAt(e,n=new t){const s=this.getLength();return this.getTangentAtLength(e*s,n)}getTiltAtLength(t){const[e,n]=this.findSegmentIndexAtLength(t);return this._segments[e].getTiltAt(n)}getTiltAt(t){const e=this.getLength();return this.getTiltAtLength(t*e)}\n/**\n     * Get sequence of points using `getPointAt(t)`\n     * @param {number} divisions number of subdivisions\n     * @returns {Vec3[]} array of points\n     */getPoints(t=64){const e=new Array(t+1);for(let n=0;n<=t;n++)e[n]=this.getPointAt(n/t);return e}\n/**\n     * Generates the Frenet Frames.\n     * See http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n     * @param {number} divisions number of subdivisions\n     * @returns {{tangents: Vec3[], normals: Vec3[], binormals: Vec3[]}} Object with tangents, normals and binormals arrays\n     */computeFrenetFrames(e=64,n=false){const s=new Array(e+1);const i=new Array(e+1);const m=this.tiltFunction??(t=>t);const f=this.getLength();for(let t=0;t<=e;t++){const[n,h]=this.findSegmentIndexAtLength(f*t/e);const o=this._segments[n];s[t]=o.getTangentAt(h);i[t]=m(o.getTiltAt(h),t/e,this)}const u=Math.abs(s[0].x);const _=Math.abs(s[0].y);const L=Math.abs(s[0].z);const d=new t;u<_&&u<L?d.set(1,0,0):_<u&&_<L?d.set(0,1,0):d.set(0,0,1);const A=new Array(e+1);const w=new Array(e+1);A[0]=new t;w[0]=new t;a.cross(s[0],d).normalize();A[0].cross(s[0],a);w[0].cross(s[0],A[0]);for(let e=1;e<s.length;e++){A[e]=A[e-1].clone();w[e]=new t;a.cross(s[e-1],s[e]);const n=a.len();if(n>Number.EPSILON){a.scale(1/n);const t=h(s[e-1].dot(s[e]),-1,1);const i=h(n,-1,1);o(c,a,i,t);A[e].applyMatrix4(c)}w[e].cross(s[e],A[e])}for(let t=0;t<i.length;t++)r(g(i[t]),A[t],w[t]);if(n===true){const t=A[A.length-1];let e=Math.acos(h(A[0].dot(t),-1,1))/(A.length-1);s[0].dot(a.cross(A[0],t))>0&&(e=-e);for(let t=1;t<A.length-1;t++){const n=e*t;r(n,A[t],w[t]);i[t]+=l(n)}A[A.length-1]=A[0].clone();w[w.length-1]=w[0].clone()}return{tangents:s,normals:A,binormals:w,tilts:i}}}export{Path};\n//# sourceMappingURL=Path.js.map\n", "import{Geometry as t}from\"../core/Geometry.js\";import{Vec3 as s}from\"../math/Vec3.js\";import{Vec2 as e}from\"../math/Vec2.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/Vec2Func.js\";const i=new s;const a=new s;const n=new e;const r=new s;class Tube extends t{constructor(t,{path:s,radius:e=1,tubularSegments:i=64,radialSegments:a=8,closed:n=false,attributes:r={}}={}){super(t,r);this.path=s;this.radius=e;this.tubularSegments=i;this.radialSegments=a;this.closed=n;this.frenetFrames=s.computeFrenetFrames(i,n);const o=(i+1)*(a+1);const h=i*a*6;this.positions=new Float32Array(o*3);this.normals=new Float32Array(o*3);this.uvs=new Float32Array(o*2);this.indices=o>65536?new Uint32Array(h):new Uint16Array(h);this._generateAttributes();this._generateIndices();this.addAttribute(\"position\",{size:3,data:this.positions});this.addAttribute(\"normal\",{size:3,data:this.normals});this.addAttribute(\"uv\",{size:2,data:this.uvs});this.setIndex({data:this.indices})}_generateAttributes(){for(let t=0;t<=this.tubularSegments;t++){let s=t;t===this.tubularSegments&&(s=this.closed?0:this.tubularSegments);this.path.getPointAt(s/this.tubularSegments,r);const e=this.frenetFrames.normals[s];const o=this.frenetFrames.binormals[s];for(let s=0;s<=this.radialSegments;s++){const h=s/this.radialSegments*Math.PI*2;const m=Math.sin(h);const u=-Math.cos(h);const c=t*(this.radialSegments+1)+s;a.x=u*e.x+m*o.x;a.y=u*e.y+m*o.y;a.z=u*e.z+m*o.z;this.normals.set(a,c*3);i.x=r.x+this.radius*a.x;i.y=r.y+this.radius*a.y;i.z=r.z+this.radius*a.z;this.positions.set(i,c*3);n.x=t/this.tubularSegments;n.y=s/this.radialSegments;this.uvs.set(n,c*2)}}}_generateIndices(){for(let t=1;t<=this.tubularSegments;t++)for(let s=1;s<=this.radialSegments;s++){const e=(this.radialSegments+1)*(t-1)+(s-1);const i=(this.radialSegments+1)*t+(s-1);const a=(this.radialSegments+1)*t+s;const n=(this.radialSegments+1)*(t-1)+s;const r=(t-1)*this.radialSegments+(s-1);this.indices.set([e,i,n,i,a,n],r*6)}}}export{Tube};\n//# sourceMappingURL=Tube.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import{Quat as o}from\"../math/Quat.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";const s=new t;const n=new o;const r=new t;const a=new t;const i=new o;const e=new t;class Animation{constructor({objects:t,data:o}){this.objects=t;this.data=o;this.elapsed=0;this.weight=1;this.duration=o.frames.length-1}update(t=1,o){const c=o?1:this.weight/t;const m=this.elapsed%this.duration;const h=Math.floor(m);const p=m-h;const f=this.data.frames[h];const u=this.data.frames[(h+1)%this.duration];this.objects.forEach(((t,o)=>{s.fromArray(f.position,o*3);n.fromArray(f.quaternion,o*4);r.fromArray(f.scale,o*3);a.fromArray(u.position,o*3);i.fromArray(u.quaternion,o*4);e.fromArray(u.scale,o*3);s.lerp(a,p);n.slerp(i,p);r.lerp(e,p);t.position.lerp(s,c);t.quaternion.slerp(n,c);t.scale.lerp(r,c)}))}}export{Animation};\n//# sourceMappingURL=Animation.js.map\n", "import{Mesh as t}from\"../core/Mesh.js\";import{Transform as e}from\"../core/Transform.js\";import{Mat4 as r}from\"../math/Mat4.js\";import{Texture as s}from\"../core/Texture.js\";import{Animation as o}from\"./Animation.js\";import\"../math/Mat3.js\";import\"../math/functions/Mat3Func.js\";import\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/functions/Mat4Func.js\";const i=new r;class Skin extends t{constructor(t,{rig:e,geometry:r,program:s,mode:o=t.TRIANGLES}={}){super(t,{geometry:r,program:s,mode:o});this.createBones(e);this.createBoneTexture();this.animations=[];Object.assign(this.program.uniforms,{boneTexture:{value:this.boneTexture},boneTextureSize:{value:this.boneTextureSize}})}createBones(t){this.root=new e;this.bones=[];if(t.bones&&t.bones.length){for(let r=0;r<t.bones.length;r++){const s=new e;s.position.fromArray(t.bindPose.position,r*3);s.quaternion.fromArray(t.bindPose.quaternion,r*4);s.scale.fromArray(t.bindPose.scale,r*3);this.bones.push(s)}t.bones.forEach(((t,e)=>{this.bones[e].name=t.name;if(t.parent===-1)return this.bones[e].setParent(this.root);this.bones[e].setParent(this.bones[t.parent])}));this.root.updateMatrixWorld(true);this.bones.forEach((t=>{t.bindInverse=new r(...t.worldMatrix).inverse()}))}}createBoneTexture(){if(!this.bones.length)return;const t=Math.max(4,Math.pow(2,Math.ceil(Math.log(Math.sqrt(this.bones.length*4))/Math.LN2)));this.boneMatrices=new Float32Array(t*t*4);this.boneTextureSize=t;this.boneTexture=new s(this.gl,{image:this.boneMatrices,generateMipmaps:false,type:this.gl.FLOAT,internalFormat:this.gl.renderer.isWebgl2?this.gl.RGBA32F:this.gl.RGBA,minFilter:this.gl.NEAREST,magFilter:this.gl.NEAREST,flipY:false,width:t})}addAnimation(t){const e=new o({objects:this.bones,data:t});this.animations.push(e);return e}update(){let t=0;this.animations.forEach((e=>t+=e.weight));this.animations.forEach(((e,r)=>{e.update(t,r===0)}))}draw({camera:t}={}){this.root.updateMatrixWorld(true);this.bones.forEach(((t,e)=>{i.multiply(t.worldMatrix,t.bindInverse);this.boneMatrices.set(i,e*16)}));this.boneTexture&&(this.boneTexture.needsUpdate=true);super.draw({camera:t})}}export{Skin};\n//# sourceMappingURL=Skin.js.map\n", "import{Geometry as t}from\"../core/Geometry.js\";import{Program as e}from\"../core/Program.js\";import{Mesh as n}from\"../core/Mesh.js\";import{Vec2 as i}from\"../math/Vec2.js\";import{Vec3 as r}from\"../math/Vec3.js\";import{Color as o}from\"../math/Color.js\";import\"../math/functions/Vec3Func.js\";import\"../core/Transform.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Mat4.js\";import\"../math/functions/Mat4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/Mat3.js\";import\"../math/functions/Mat3Func.js\";import\"../math/functions/Vec2Func.js\";import\"../math/functions/ColorFunc.js\";const s=new r;class Polyline{constructor(r,{points:s,vertex:u=a,fragment:h=c,uniforms:m={},attributes:p={}}){this.gl=r;this.points=s;this.count=s.length;this.position=new Float32Array(this.count*3*2);this.prev=new Float32Array(this.count*3*2);this.next=new Float32Array(this.count*3*2);const l=new Float32Array(this.count*1*2);const v=new Float32Array(this.count*2*2);const d=new Uint16Array(3*(this.count-1)*2);for(let t=0;t<this.count;t++){l.set([-1,1],t*2);const e=t/(this.count-1);v.set([0,e,1,e],t*4);if(t===this.count-1)continue;const n=t*2;d.set([n+0,n+1,n+2],(n+0)*3);d.set([n+2,n+1,n+3],(n+1)*3)}const f=this.geometry=new t(r,Object.assign(p,{position:{size:3,data:this.position},prev:{size:3,data:this.prev},next:{size:3,data:this.next},side:{size:1,data:l},uv:{size:2,data:v},index:{size:1,data:d}}));this.updateGeometry();m.uResolution||(this.resolution=m.uResolution={value:new i});m.uDPR||(this.dpr=m.uDPR={value:1});m.uThickness||(this.thickness=m.uThickness={value:1});m.uColor||(this.color=m.uColor={value:new o(\"#000\")});m.uMiter||(this.miter=m.uMiter={value:1});this.resize();const y=this.program=new e(r,{vertex:u,fragment:h,uniforms:m});this.mesh=new n(r,{geometry:f,program:y})}updateGeometry(){this.points.forEach(((t,e)=>{t.toArray(this.position,e*3*2);t.toArray(this.position,e*3*2+3);if(e){t.toArray(this.next,3*(e-1)*2);t.toArray(this.next,3*(e-1)*2+3)}else{s.copy(t).sub(this.points[e+1]).add(t);s.toArray(this.prev,e*3*2);s.toArray(this.prev,e*3*2+3)}if(e===this.points.length-1){s.copy(t).sub(this.points[e-1]).add(t);s.toArray(this.next,e*3*2);s.toArray(this.next,e*3*2+3)}else{t.toArray(this.prev,(e+1)*3*2);t.toArray(this.prev,(e+1)*3*2+3)}}));this.geometry.attributes.position.needsUpdate=true;this.geometry.attributes.prev.needsUpdate=true;this.geometry.attributes.next.needsUpdate=true}resize(){this.resolution&&this.resolution.value.set(this.gl.canvas.width,this.gl.canvas.height);this.dpr&&(this.dpr.value=this.gl.renderer.dpr)}}const a=\"\\n    precision highp float;\\n\\n    attribute vec3 position;\\n    attribute vec3 next;\\n    attribute vec3 prev;\\n    attribute vec2 uv;\\n    attribute float side;\\n\\n    uniform mat4 modelViewMatrix;\\n    uniform mat4 projectionMatrix;\\n    uniform vec2 uResolution;\\n    uniform float uDPR;\\n    uniform float uThickness;\\n    uniform float uMiter;\\n\\n    varying vec2 vUv;\\n\\n    vec4 getPosition() {\\n        mat4 mvp = projectionMatrix * modelViewMatrix;\\n        vec4 current = mvp * vec4(position, 1);\\n        vec4 nextPos = mvp * vec4(next, 1);\\n        vec4 prevPos = mvp * vec4(prev, 1);\\n\\n        vec2 aspect = vec2(uResolution.x / uResolution.y, 1);    \\n        vec2 currentScreen = current.xy / current.w * aspect;\\n        vec2 nextScreen = nextPos.xy / nextPos.w * aspect;\\n        vec2 prevScreen = prevPos.xy / prevPos.w * aspect;\\n    \\n        vec2 dir1 = normalize(currentScreen - prevScreen);\\n        vec2 dir2 = normalize(nextScreen - currentScreen);\\n        vec2 dir = normalize(dir1 + dir2);\\n    \\n        vec2 normal = vec2(-dir.y, dir.x);\\n        normal /= mix(1.0, max(0.3, dot(normal, vec2(-dir1.y, dir1.x))), uMiter);\\n        normal /= aspect;\\n\\n        float pixelWidthRatio = 1.0 / (uResolution.y / uDPR);\\n        float pixelWidth = current.w * pixelWidthRatio;\\n        normal *= pixelWidth * uThickness;\\n        current.xy -= normal * side;\\n    \\n        return current;\\n    }\\n\\n    void main() {\\n        vUv = uv;\\n        gl_Position = getPosition();\\n    }\\n\";const c=\"\\n    precision highp float;\\n\\n    uniform vec3 uColor;\\n    \\n    varying vec2 vUv;\\n\\n    void main() {\\n        gl_FragColor.rgb = uColor;\\n        gl_FragColor.a = 1.0;\\n    }\\n\";export{Polyline};\n//# sourceMappingURL=Polyline.js.map\n", "import{Vec3 as t}from\"../math/Vec3.js\";import{Quat as e}from\"../math/Quat.js\";import\"../math/functions/Vec3Func.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";const n=new t;const i=new t;const s=new t;const r=new t;const o=new e;const a=new e;const c=new e;const m=new e;class GLTFAnimation{constructor(t,e=1){this.data=t;this.elapsed=0;this.weight=e;this.loop=true;this.startTime=t.reduce(((t,{times:e})=>Math.min(t,e[0])),Infinity);this.endTime=t.reduce(((t,{times:e})=>Math.max(t,e[e.length-1])),0);this.duration=this.endTime-this.startTime}update(t=1,e){const h=e?1:this.weight/t;const l=this.duration?(this.loop?this.elapsed%this.duration:Math.min(this.elapsed,this.duration-.001))+this.startTime:0;this.data.forEach((({node:t,transform:e,interpolation:u,times:p,values:f})=>{if(!this.duration){let i=n;let s=3;if(e===\"quaternion\"){i=o;s=4}i.fromArray(f,0);s===4?t[e].slerp(i,h):t[e].lerp(i,h);return}const d=Math.max(1,p.findIndex((t=>t>l)))-1;const w=d+1;let A=(l-p[d])/(p[w]-p[d]);u===\"STEP\"&&(A=0);let y=n;let T=i;let I=s;let j=r;let F=3;if(e===\"quaternion\"){y=o;T=a;I=c;j=m;F=4}if(u===\"CUBICSPLINE\"){y.fromArray(f,d*F*3+F*1);T.fromArray(f,d*F*3+F*2);I.fromArray(f,w*F*3+F*0);j.fromArray(f,w*F*3+F*1);y=this.cubicSplineInterpolate(A,y,T,I,j);F===4&&y.normalize()}else{y.fromArray(f,d*F);j.fromArray(f,w*F);F===4?y.slerp(j,A):y.lerp(j,A)}F===4?t[e].slerp(y,h):t[e].lerp(y,h)}))}cubicSplineInterpolate(t,e,n,i,s){const r=t*t;const o=r*t;const a=3*r-2*o;const c=o-r;const m=1-a;const h=c-r+t;for(let r=0;r<e.length;r++)e[r]=m*e[r]+h*(1-t)*n[r]+a*s[r]+c*t*i[r];return e}}export{GLTFAnimation};\n//# sourceMappingURL=GLTFAnimation.js.map\n", "import{Mesh as t}from\"../core/Mesh.js\";import{Mat4 as e}from\"../math/Mat4.js\";import{Texture as r}from\"../core/Texture.js\";import\"../core/Transform.js\";import\"../math/Vec3.js\";import\"../math/functions/Vec3Func.js\";import\"../math/Quat.js\";import\"../math/functions/QuatFunc.js\";import\"../math/functions/Vec4Func.js\";import\"../math/Euler.js\";import\"../math/functions/EulerFunc.js\";import\"../math/Mat3.js\";import\"../math/functions/Mat3Func.js\";import\"../math/functions/Mat4Func.js\";const s=new e;const i=new e;class GLTFSkin extends t{constructor(t,{skeleton:e,geometry:r,program:s,mode:i=t.TRIANGLES}={}){super(t,{geometry:r,program:s,mode:i});this.skeleton=e;this.program=s;this.createBoneTexture()}createBoneTexture(){if(!this.skeleton.joints.length)return;const t=Math.max(4,Math.pow(2,Math.ceil(Math.log(Math.sqrt(this.skeleton.joints.length*4))/Math.LN2)));this.boneMatrices=new Float32Array(t*t*4);this.boneTextureSize=t;this.boneTexture=new r(this.gl,{image:this.boneMatrices,generateMipmaps:false,type:this.gl.FLOAT,internalFormat:this.gl.renderer.isWebgl2?this.gl.RGBA32F:this.gl.RGBA,minFilter:this.gl.NEAREST,magFilter:this.gl.NEAREST,flipY:false,width:t})}updateUniforms(){this.skeleton.joints.forEach(((t,e)=>{s.multiply(t.worldMatrix,t.bindInverse);this.boneMatrices.set(s,e*16)}));this.boneTexture.needsUpdate=true;this.program.uniforms.boneTexture.value=this.boneTexture;this.program.uniforms.boneTextureSize.value=this.boneTextureSize}draw({camera:t}={}){this.program.uniforms.boneTexture||Object.assign(this.program.uniforms,{boneTexture:{value:this.boneTexture},boneTextureSize:{value:this.boneTextureSize}});this.updateUniforms();const e=this.worldMatrix;this.worldMatrix=i;super.draw({camera:t});this.worldMatrix=e}}export{GLTFSkin};\n//# sourceMappingURL=GLTFSkin.js.map\n", "import{Mesh as t}from\"../../core/Mesh.js\";import{Program as o}from\"../../core/Program.js\";import{Geometry as r}from\"../../core/Geometry.js\";import{Vec3 as n}from\"../../math/Vec3.js\";import{Mat3 as a}from\"../../math/Mat3.js\";import\"../../core/Transform.js\";import\"../../math/Quat.js\";import\"../../math/functions/QuatFunc.js\";import\"../../math/functions/Vec4Func.js\";import\"../../math/Mat4.js\";import\"../../math/functions/Mat4Func.js\";import\"../../math/functions/Vec3Func.js\";import\"../../math/Euler.js\";import\"../../math/functions/EulerFunc.js\";import\"../../math/functions/Mat3Func.js\";const e=new n;const i=new n;const s=new n;const m=new n;const c=new n;class FaceNormalsHelper extends t{constructor(t,{size:p=.1,color:f=new n(.15,.86,.86),...d}={}){const w=t.gl;const j=t.geometry.attributes.position.data;const h=new Float32Array([0,p]);const M=t.geometry.attributes.index;const x=M?t=>M.data[t]:t=>t;const v=M?M.data.length:Math.floor(j.length/3);const g=Math.floor(v/3);const y=new Float32Array(g*2*3);const F=new Float32Array(g*2*3);const b=new Float32Array(g*2);for(let t=0;t<v;t+=3){e.fromArray(j,x(t+0)*3);i.fromArray(j,x(t+1)*3);s.fromArray(j,x(t+2)*3);m.add(e,i).add(s).multiply(1/3);e.sub(e,i);s.sub(s,i);c.cross(s,e).normalize();const o=t*2;y.set(m,o);y.set(m,o+3);F.set(c,o);F.set(c,o+3);b.set(h,t/3*2)}const z=new r(w,{position:{size:3,data:y},normal:{size:3,data:F},size:{size:1,data:b}});const N=new o(w,{vertex:l,fragment:u,uniforms:{color:{value:f},worldNormalMatrix:{value:new a},objectWorldMatrix:{value:t.worldMatrix}}});super(w,{...d,mode:w.LINES,geometry:z,program:N});this.object=t}draw(t){this.program.uniforms.worldNormalMatrix.value.getNormalMatrix(this.object.worldMatrix);super.draw(t)}}const l=\"\\nattribute vec3 position;\\nattribute vec3 normal;\\nattribute float size;\\n\\nuniform mat4 viewMatrix;\\nuniform mat4 projectionMatrix;\\nuniform mat4 objectWorldMatrix;\\nuniform mat3 worldNormalMatrix;\\n\\nvoid main() {\\n    vec3 n = normalize(worldNormalMatrix * normal) * size;\\n    vec3 p = (objectWorldMatrix * vec4(position, 1.0)).xyz;\\n    gl_Position = projectionMatrix * viewMatrix * vec4(p + n, 1.0);\\n}\\n\";const u=\"\\nprecision highp float;\\nuniform vec3 color;\\n\\nvoid main() {    \\n    gl_FragColor = vec4(color, 1.0);\\n}\\n\";export{FaceNormalsHelper};\n//# sourceMappingURL=FaceNormalsHelper.js.map\n"],
  "mappings": "0HAAA,SAASA,GAAE,EAAEC,EAAEC,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,KAAK,IAAID,EAAEC,CAAC,CAAC,CAAC,CAAC,IAAMC,GAAN,KAAa,CAAC,QAAQC,EAAE,CAAC,GAAG,CAAC,KAAK,UAAU,OAAO,IAAI,EAAE,GAAG,GAAG,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,MAAMC,EAAE,KAAK,GAAG,EAAE,GAAG,KAAK,KAAKC,EAAEF,EAAE,SAASA,EAAEH,EAAEC,EAAE,CAAC,OAAO,EAAEA,GAAGE,EAAEF,EAAED,CAAC,EAAE,EAAEI,EAAE,EAAE,KAAK,IAAI,CAAC,EAAEC,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,KAAK,GAAG,EAAE,QAAQ,CAAC,KAAK,aAAaF,EAAE,IAAMF,EAAEF,GAAE,EAAE,KAAK,YAAY,KAAK,SAAS,CAAC,EAAE,EAAEE,GAAG,EAAE,IAAMG,EAAE,EAAE,EAAE,KAAK,OAAOH,CAAC,EAAE,KAAK,MAAM,KAAK,MAAM,KAAK,GAAG,KAAK,MAAMG,CAAC,CAAC,IAAI,EAAEA,EAAE,EAAEC,EAAE,KAAK,WAAW,KAAK,MAAM,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,OAAOF,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,SAASC,EAAE,EAAE,OAAO,EAAGD,GAAGA,EAAG,QAAQE,EAAE,SAASC,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMH,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,KAAK,SAASC,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,GAAGC,IAAI,EAAE,KAAK,SAASC,CAAC,CAAC,EAAOC,GAAN,KAAgB,CAAC,YAAY,CAAC,QAAQJ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,SAASC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,QAAQD,EAAE,KAAK,QAAQ,EAAE,IAAI,KAAK,gBAAgB,SAASA,EAAEH,EAAE,CAAC,IAAIC,EAAE,OAAO,UAAU,CAAC,IAAIG,EAAE,UAAUI,EAAE,KAAK,aAAaP,CAAC,EAAEA,EAAE,WAAY,UAAU,CAACE,EAAE,MAAMK,EAAEJ,CAAC,CAAC,EAAGJ,CAAC,CAAC,CAAC,EAAE,KAAK,OAAOI,CAAC,EAAE,KAAK,UAAUK,EAAOA,EAAO,iBAAiB,SAAS,KAAK,gBAAgB,EAAE,GAAG,KAAK,sBAAsB,IAAI,eAAe,KAAK,eAAe,EAAE,KAAK,sBAAsB,QAAQ,KAAK,OAAO,GAAG,KAAK,sBAAsB,IAAI,eAAe,KAAK,eAAe,EAAE,KAAK,sBAAsB,QAAQ,KAAK,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,uBAAuB,WAAW,EAAE,KAAK,uBAAuB,WAAW,EAAEA,EAAO,oBAAoB,SAAS,KAAK,gBAAgB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,CAAC,EAAE,gBAAgB,IAAI,CAAC,KAAK,UAAUA,GAAQ,KAAK,MAAMA,EAAO,WAAW,KAAK,OAAOA,EAAO,cAAc,KAAK,MAAM,KAAK,QAAQ,YAAY,KAAK,OAAO,KAAK,QAAQ,aAAa,EAAE,gBAAgB,IAAI,CAAC,KAAK,UAAUA,GAAQ,KAAK,aAAa,KAAK,QAAQ,aAAa,KAAK,YAAY,KAAK,QAAQ,cAAc,KAAK,aAAa,KAAK,QAAQ,aAAa,KAAK,YAAY,KAAK,QAAQ,YAAY,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,YAAY,KAAK,MAAM,EAAE,KAAK,aAAa,KAAK,MAAM,CAAC,CAAC,EAAOC,EAAN,KAAa,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAKP,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,OAAOA,CAAC,GAAG,CAAC,EAAE,QAAQA,EAAE,EAAEC,EAAE,EAAE,OAAOD,EAAEC,EAAED,IAAI,EAAEA,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAGA,EAAE,EAAE,CAAC,OAAO,KAAK,OAAOA,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,OAAOA,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,OAAOA,CAAC,EAAE,KAAK,OAAOA,CAAC,GAAG,OAAQA,GAAG,IAAIA,CAAE,CAAC,CAAC,CAAC,IAAIA,EAAE,EAAE,CAAC,KAAK,OAAOA,CAAC,EAAE,KAAK,OAAOA,CAAC,GAAG,OAAQA,GAAG,IAAIA,CAAE,CAAC,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAOA,GAAE,IAAI,EAAQQ,GAAN,KAAmB,CAAC,YAAYR,EAAE,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,KAAK,QAAQA,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,QAAQ,IAAIO,EAAQD,EAAO,iBAAiB,SAAS,KAAK,eAAe,EAAE,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,iBAAiB,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,iBAAiB,aAAa,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,iBAAiB,YAAY,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,iBAAiB,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAGN,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,GAAGA,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,QAAQ,EAAEM,EAAO,oBAAoB,SAAS,KAAK,eAAe,EAAE,EAAE,KAAK,QAAQ,oBAAoB,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,oBAAoB,aAAa,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,oBAAoB,YAAY,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,QAAQ,oBAAoB,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAaN,GAAG,CAAC,GAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAEA,EAAE,cAAcA,EAAE,cAAc,CAAC,EAAEA,EAAE,KAAK,WAAW,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAMA,CAAC,CAAC,CAAC,EAAE,YAAYA,GAAG,CAAC,GAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAEA,EAAE,cAAcA,EAAE,cAAc,CAAC,EAAEA,EAAEC,EAAE,EAAE,EAAE,KAAK,WAAW,GAAG,KAAK,gBAAgB,EAAE,EAAE,EAAE,KAAK,WAAW,GAAG,KAAK,gBAAgB,KAAK,WAAW,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,KAAK,UAAU,CAAC,EAAEA,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,KAAK,SAAS,CAAC,OAAOA,EAAE,OAAO,EAAE,MAAMD,CAAC,CAAC,CAAC,EAAE,WAAWA,GAAG,CAAC,KAAK,QAAQ,KAAK,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,OAAO,KAAK,UAAU,EAAE,MAAMA,CAAC,CAAC,CAAC,EAAE,QAAQH,GAAG,CAAC,GAAG,CAAC,OAAOC,EAAE,OAAOG,EAAE,UAAUI,CAAC,EAAER,EAAEC,GAAOO,IAAJ,EAAML,GAAMK,IAAJ,EAAM,KAAK,YAAY,EAAEJ,GAAOI,IAAJ,EAAML,GAAMK,IAAJ,EAAM,KAAK,aAAa,EAAEP,GAAG,KAAK,gBAAgBG,GAAG,KAAK,gBAAgB,KAAK,QAAQ,KAAK,SAAS,CAAC,OAAOH,EAAE,OAAOG,EAAE,MAAMJ,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,CAAC,KAAK,YAAYS,EAAO,WAAW,KAAK,aAAaA,EAAO,WAAW,CAAC,EAAOG,GAAN,KAAW,CAAC,YAAY,CAAC,QAAQT,EAAEM,EAAO,QAAQ,EAAE,SAAS,gBAAgB,kBAAkB,EAAEN,EAAE,aAAaC,EAAE,EAAE,YAAY,EAAE,GAAG,UAAUC,EAAE,GAAG,cAAcC,EAAE,KAAK,uBAAuB,EAAE,GAAG,SAASO,EAAE,OAAO,EAAGV,GAAG,KAAK,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,IAAIA,CAAC,CAAC,EAAG,KAAKW,EAAE,CAACD,GAAG,GAAG,SAASE,EAAE,GAAG,YAAYC,EAAE,WAAW,mBAAmBC,EAAE,WAAW,gBAAgBC,EAAE,EAAE,gBAAgBC,EAAE,EAAE,WAAWC,EAAE,GAAG,gCAAgCC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,WAAW,GAAG,KAAK,cAAc,GAAG,KAAK,YAAY,GAAG,KAAK,WAAW,GAAG,KAAK,gBAAgB,CAAC,CAAC,OAAOlB,EAAE,OAAOH,EAAE,MAAMC,CAAC,IAAI,CAAC,GAAGA,EAAE,QAAQ,OAAO,IAAMG,EAAEH,EAAE,KAAK,SAAS,OAAO,EAAEO,EAAEP,EAAE,KAAK,SAAS,OAAO,EAAE,GAAG,KAAK,QAAQ,WAAWG,GAAkBH,EAAE,OAAjB,cAAuB,CAAC,KAAK,WAAW,CAAC,KAAK,SAAS,OAAO,KAAK,KAAK,MAAM,EAAE,IAAMI,EAAMF,IAAJ,GAAWH,IAAJ,EAAMM,EAAe,KAAK,QAAQ,qBAA1B,YAAkDN,IAAJ,GAAsB,KAAK,QAAQ,qBAA5B,cAAoDG,IAAJ,EAAM,GAAGE,GAAGC,EAAE,OAAO,IAAIgB,EAAErB,EAAE,aAAa,EAAE,GAAGqB,EAAEA,EAAE,MAAM,EAAEA,EAAE,QAAQ,KAAK,WAAW,CAAC,EAAEA,EAAE,KAAMnB,GAAG,CAAC,IAAIH,EAAEC,GAAEI,GAAEC,GAAEgB,GAAE,QAAetB,EAAEG,EAAE,gBAAZ,MAAoCH,IAAT,OAAW,OAAOA,EAAE,KAAKG,EAAE,oBAAoB,IAAIC,KAAYH,GAAEE,EAAE,gBAAZ,MAAoCF,KAAT,OAAW,OAAOA,GAAE,KAAKE,EAAE,0BAA0B,IAAIK,KAAYH,GAAEF,EAAE,gBAAZ,MAAoCE,KAAT,OAAW,OAAOA,GAAE,KAAKF,EAAE,0BAA0B,MAAaG,GAAEH,EAAE,aAAZ,MAAiCG,KAAT,OAAW,OAAOA,GAAE,SAAS,OAAO,IAAI,EAAE,GAAQgB,GAAEnB,EAAE,aAAZ,MAAiCmB,KAAT,SAAkBA,GAAE,SAAS,eAAe,EAAE,CAAE,EAAE,OAAO,GAAG,KAAK,WAAW,KAAK,SAAS,OAAO,KAAKrB,EAAE,eAAe,EAAE,GAAG,KAAK,SAAS,KAAK,QAAQ,WAAWG,GAAG,KAAK,QAAQ,aAAaI,EAAE,CAAC,KAAK,SAAS,OAAO,KAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,KAAK,EAAEP,EAAE,eAAe,EAAE,IAAIY,EAAEb,EAAW,KAAK,QAAQ,qBAAtB,OAAyCa,EAAE,KAAK,IAAIb,CAAC,EAAE,KAAK,IAAIG,CAAC,EAAEH,EAAEG,EAAiB,KAAK,QAAQ,qBAA5B,eAAiDU,EAAEV,GAAG,IAAMoB,EAAEnB,GAAG,KAAK,QAAQ,UAAUU,EAAEV,GAAgBH,EAAE,OAAf,YAAqB,KAAK,IAAIY,CAAC,EAAE,EAAEC,IAAID,EAAE,KAAK,SAAS,KAAK,QAAQ,wBAAwB,KAAK,SAAS,KAAK,aAAaA,EAAE,OAAO,OAAO,CAAC,aAAa,EAAE,EAAEU,EAAE,CAAC,KAAKT,EAAE,KAAK,QAAQ,cAAc,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,SAAS,OAAO,KAAK,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,IAAI,CAAC,GAAG,CAAC,KAAK,0BAA0B,CAAC,KAAK,YAAY,CAAC,IAAMX,EAAE,KAAK,eAAe,KAAK,eAAe,KAAK,aAAa,KAAK,aAAa,KAAK,SAAS,EAAE,KAAK,UAAU,KAAK,KAAK,KAAK,eAAeA,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,EAAEM,EAAO,aAAa,SAASN,IAAI,SAAS,iBAAiBA,IAAI,SAAS,OAAOA,EAAEM,GAAQ,KAAK,QAAQ,CAAC,QAAQN,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAaC,EAAE,YAAY,EAAE,UAAUC,EAAE,cAAcC,EAAE,uBAAuB,EAAE,SAASO,EAAE,OAAO,EAAE,KAAKC,EAAE,SAASC,EAAE,mBAAmBE,EAAE,YAAYD,EAAE,gBAAgBE,EAAE,gBAAgBC,EAAE,WAAWC,EAAE,gCAAgCC,CAAC,EAAE,KAAK,QAAQ,IAAInB,GAAQ,KAAK,QAAQ,IAAIQ,EAAQ,KAAK,WAAW,IAAIH,GAAW,CAAC,QAAQJ,EAAE,QAAQ,EAAE,WAAWiB,CAAC,CAAC,EAAE,KAAK,gBAAgB,QAAQ,EAAE,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,SAASf,GAAG,EAAE,KAAK,YAAY,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,aAAa,KAAK,QAAQ,QAAQ,iBAAiB,SAAS,KAAK,eAAe,EAAE,EAAE,KAAK,cAAc,IAAIM,GAAcP,EAAE,CAAC,gBAAgBc,EAAE,gBAAgBC,CAAC,CAAC,EAAE,KAAK,cAAc,GAAG,SAAS,KAAK,eAAe,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,QAAQ,EAAE,KAAK,QAAQ,QAAQ,oBAAoB,SAAS,KAAK,eAAe,EAAE,EAAE,KAAK,cAAc,QAAQ,EAAE,KAAK,WAAW,QAAQ,EAAE,KAAK,gBAAgB,QAAQ,EAAE,EAAE,KAAK,gBAAgB,eAAe,EAAE,EAAE,KAAK,gBAAgB,kBAAkB,EAAE,EAAE,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,eAAe,EAAE,CAAC,CAAC,GAAGhB,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,GAAGA,EAAE,CAAC,CAAC,CAAC,IAAIA,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAIA,EAAE,CAAC,CAAC,CAAC,UAAUA,EAAE,CAAC,KAAK,aAAa,KAAK,YAAY,WAAWA,EAAE,KAAK,YAAY,UAAUA,CAAC,CAAC,QAAQ,CAAC,KAAK,WAAW,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,GAAG,KAAK,YAAY,GAAG,KAAK,eAAe,KAAK,aAAa,KAAK,aAAa,KAAK,SAAS,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,KAAK,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,YAAY,KAAK,UAAU,GAAG,KAAK,QAAQ,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAM,EAAEA,GAAG,KAAK,MAAMA,GAAG,KAAK,KAAKA,EAAE,KAAK,QAAQ,QAAQ,KAAK,CAAC,CAAC,CAAC,SAASA,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,KAAKC,EAAE,GAAG,SAAS,EAAE,KAAK,QAAQ,SAAS,OAAOC,EAAE,KAAK,QAAQ,OAAO,KAAKC,EAAE,CAAC,GAAG,KAAK,QAAQ,KAAK,WAAW,EAAE,MAAMO,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,UAAUA,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,OAAO,EAAE,SAASV,CAAC,EAAEA,EAAE,UAAU,CAAC,SAAS,QAAQ,KAAK,EAAE,SAASA,CAAC,EAAEA,EAAE,KAAK,UAAU,CAAC,IAAIF,EAAE,GAAa,OAAOE,GAAjB,SAAmBF,EAAE,SAAS,cAAcE,CAAC,EAAkBA,GAAE,WAAYF,EAAEE,GAAGF,EAAE,CAAC,GAAG,KAAK,QAAQ,UAAUQ,EAAO,CAAC,IAAMN,EAAE,KAAK,QAAQ,QAAQ,sBAAsB,EAAE,GAAG,KAAK,aAAaA,EAAE,KAAKA,EAAE,GAAG,CAAC,IAAMC,EAAEH,EAAE,sBAAsB,EAAEE,GAAG,KAAK,aAAaC,EAAE,KAAKA,EAAE,KAAK,KAAK,cAAc,CAAC,CAAC,GAAa,OAAOD,GAAjB,SAAmB,CAAC,GAAGA,GAAG,EAAEA,EAAE,KAAK,MAAMA,CAAC,EAAE,KAAK,QAAQ,SAAS,IAAI,KAAK,aAAa,KAAK,eAAe,KAAK,QAAQA,EAAEJ,GAAE,EAAEI,EAAE,KAAK,KAAK,EAAE,EAAE,OAAO,KAAK,eAAe,KAAK,aAAaA,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAW,GAAN,MAAS,EAAE,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,GAAGA,IAAI,KAAK,aAAa,OAAO,KAAK,aAAaA,CAAC,CAAC,KAAK,QAAQ,OAAO,KAAK,eAAeA,EAAE,CAAC,SAAS,EAAE,OAAOE,EAAE,KAAKC,EAAE,QAAQ,IAAI,CAACF,IAAI,KAAK,SAAS,IAAI,KAAK,YAAY,EAAE,EAAE,SAAS,CAACD,EAAEH,IAAI,CAAC,KAAK,YAAY,GAAG,KAAK,SAASG,EAAE,KAAK,eAAe,KAAK,UAAU,KAAK,KAAK,KAAK,QAAQ,EAAE,KAAK,eAAeA,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,IAAI,KAAK,aAAaA,GAAGH,GAAG,KAAK,KAAK,EAAEA,IAAI,KAAK,MAAM,EAAE,KAAK,KAAK,EAAW,IAAE,IAAI,EAAE,KAAK,yBAAyB,GAAG,sBAAuB,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,KAAK,QAAQ,UAAUS,EAAO,SAAS,gBAAgB,KAAK,QAAQ,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,gCAAgC,KAAK,aAAa,KAAK,YAAY,YAAY,KAAK,YAAY,YAAY,KAAK,YAAY,aAAa,KAAK,YAAY,aAAa,KAAK,WAAW,MAAM,KAAK,aAAa,IAAI,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC,OAAqB,KAAK,QAAQ,cAA5B,YAAuC,CAAC,IAAI,cAAc,CAAC,OAAO,KAAK,aAAa,KAAK,YAAY,WAAW,KAAK,YAAY,SAAS,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,UAAUN,EAAE,KAAK,eAAe,EAAE,KAAK,OAAOA,EAAE,EAAE,GAAG,GAAG,KAAK,eAAe,IAAIA,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,OAAW,KAAK,QAAT,EAAe,EAAE,KAAK,OAAO,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,SAASA,EAAE,CAAC,KAAK,aAAaA,IAAI,KAAK,WAAWA,EAAE,KAAK,gBAAgB,eAAeA,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,YAAYA,EAAE,CAAC,KAAK,gBAAgBA,IAAI,KAAK,cAAcA,EAAE,KAAK,gBAAgB,kBAAkBA,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,UAAUA,EAAE,CAAC,KAAK,cAAcA,IAAI,KAAK,YAAYA,EAAE,KAAK,gBAAgB,gBAAgBA,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,SAASA,EAAE,CAAC,KAAK,aAAaA,IAAI,KAAK,WAAWA,EAAE,KAAK,gBAAgB,eAAeA,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,IAAIA,EAAE,QAAQ,OAAO,KAAK,YAAYA,GAAG,kBAAkB,KAAK,WAAWA,GAAG,iBAAiB,KAAK,cAAcA,GAAG,oBAAoB,KAAK,WAAWA,GAAG,iBAAiBA,CAAC,CAAC,gBAAgBA,EAAE,EAAE,CAAC,KAAK,YAAY,UAAU,OAAOA,EAAE,CAAC,EAAE,KAAK,QAAQ,KAAK,mBAAmB,IAAI,CAAC,CAAC,ECEloW,SAARqB,GAA8BC,EAAM,CAAC,GAAK,CAAC,UAAAC,CAAS,EAAED,EAAYE,EAAMC,GAAO,IAAI,EAAE,OAAAC,EAAU,IAAI,CAAIF,EAAM,SAAQA,EAAM,QAAQ,SAAS,EAAE,CAAC,UAAU,EAAI,CAAC,CAAE,EAAE,CAACA,CAAK,CAAC,EAAEE,EAAU,IAAI,CAAC,IAAMC,EAAe,SAAS,eAAe,SAAS,EAAE,GAAGA,EAAe,CAAC,IAAMC,EAAe,CAACC,EAAcC,IAAW,CAAC,QAAUC,KAAYF,EAAe,GAAGE,EAAS,OAAO,YAAgE,GAAjCJ,EAAe,SAAS,OAAO,EAAiB,CACtc,IAAMK,EAAY,SAAS,gBAAoCC,EAAO,iBAAiBD,CAAW,EAAuC,iBAAiB,UAAU,IAAI,SAA8BR,EAAM,QAAQ,KAAK,EAAQA,EAAM,QAAQ,MAAM,CAAG,MAAMA,EAAM,QAAQ,MAAM,CAAK,EAAQM,EAAS,IAAI,iBAAiBF,CAAc,EAAQM,EAAO,CAAC,UAAU,EAAI,EAAE,OAAAJ,EAAS,QAAQH,EAAeO,CAAM,EAAQ,IAAIJ,EAAS,WAAW,CAAE,CAAC,EAAE,CAAC,CAAC,EAAEJ,EAAU,IAAI,CAACF,EAAM,QAAQ,IAAIW,GAAM,CAAC,SAASZ,EAAU,EAAE,CAAC,EAAE,IAAMa,EAAIC,GAAM,CAACb,EAAM,QAAQ,IAAIa,CAAI,EAAE,sBAAsBD,CAAG,CAAE,EAAE,6BAAsBA,CAAG,EAAQ,IAAI,CAACZ,EAAM,QAAQ,QAAQ,EAAEA,EAAM,QAAQ,IAAK,CAAE,EAAE,CAAC,CAAC,EAAsBc,GAAKC,GAAU,CAAC,SAAsBD,GAAK,QAAQ,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAoBruB,CAAC,CAAC,CAAC,CAAE,CAACjB,GAAa,YAAY,gBAAgBmB,GAAoBnB,GAAa,CAAC,UAAU,CAAC,MAAM,YAAY,KAAKoB,GAAY,OAAO,aAAa,EAAE,CAAC,CAAC,ECjB5J,SAASC,EAAOC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAMG,EAAEH,EAAE,CAAC,EAAE,OAAO,KAAK,KAAKC,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,CAAC,CAAC,CAO9E,SAASC,GAAKJ,EAAEC,EAAE,CAAC,OAAAD,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASD,CAAC,CASzD,SAASK,GAAIL,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAAH,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAEG,EAASH,CAAC,CAQnD,SAASM,GAAIN,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASF,CAAC,CAQzE,SAASO,GAASP,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASF,CAAC,CAQ9E,SAASQ,GAASR,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASF,CAAC,CAQ9E,SAASS,GAAOT,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASF,CAAC,CAQ5E,SAASU,GAAMV,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAASF,CAAC,CAOlE,SAASW,GAASX,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAED,EAAE,CAAC,EAAMG,EAAEF,EAAE,CAAC,EAAED,EAAE,CAAC,EAAMY,EAAEX,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,OAAO,KAAK,KAAKE,EAAEA,EAAEC,EAAEA,EAAES,EAAEA,CAAC,CAAC,CAOpG,SAASC,GAAgBb,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAED,EAAE,CAAC,EAAMG,EAAEF,EAAE,CAAC,EAAED,EAAE,CAAC,EAAMY,EAAEX,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,OAAOE,EAAEA,EAAEC,EAAEA,EAAES,EAAEA,CAAC,CAMhG,SAASE,GAAcd,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAMG,EAAEH,EAAE,CAAC,EAAE,OAAOC,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,CAAC,CAO7E,SAASY,GAAOf,EAAEC,EAAE,CAAC,OAAAD,EAAE,CAAC,EAAE,CAACC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,CAACC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,CAACC,EAAE,CAAC,EAASD,CAAC,CAO9D,SAASgB,GAAQhB,EAAEC,EAAE,CAAC,OAAAD,EAAE,CAAC,EAAE,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE,EAAEC,EAAE,CAAC,EAASD,CAAC,CAOlE,SAASiB,GAAUjB,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAMW,EAAEX,EAAE,CAAC,EAAMiB,EAAEhB,EAAEA,EAAEC,EAAEA,EAAES,EAAEA,EAAE,OAAAM,EAAE,IAAIA,EAAE,EAAE,KAAK,KAAKA,CAAC,GAAGlB,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEiB,EAAElB,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEiB,EAAElB,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEiB,EAASlB,CAAC,CAO/I,SAASmB,GAAInB,EAAEC,EAAE,CAAC,OAAOD,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,CAAC,CAQtD,SAASmB,GAAMpB,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAM,EAAEC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEmB,EAAEnB,EAAE,CAAC,EAAE,OAAAF,EAAE,CAAC,EAAEY,EAAES,EAAEH,EAAE,EAAElB,EAAE,CAAC,EAAEkB,EAAE,EAAEf,EAAEkB,EAAErB,EAAE,CAAC,EAAEG,EAAE,EAAES,EAAE,EAASZ,CAAC,CASvH,SAASsB,GAAKtB,EAAEC,EAAEC,EAAEC,EAAE,CAAC,IAAIS,EAAEX,EAAE,CAAC,EAAMiB,EAAEjB,EAAE,CAAC,EAAM,EAAEA,EAAE,CAAC,EAAE,OAAAD,EAAE,CAAC,EAAEY,EAAET,GAAGD,EAAE,CAAC,EAAEU,GAAGZ,EAAE,CAAC,EAAEkB,EAAEf,GAAGD,EAAE,CAAC,EAAEgB,GAAGlB,EAAE,CAAC,EAAE,EAAEG,GAAGD,EAAE,CAAC,EAAE,GAAUF,CAAC,CAStH,SAASuB,GAAcvB,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAM,EAAEC,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEgB,EAAEhB,EAAE,EAAE,EAAE,SAAE,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,EAAE,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,EAAE,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEgB,EAAEhB,EAAE,EAAE,GAAG,EAASF,CAAC,CAAC,SAASwB,GAAgBxB,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAM,EAAEC,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEgB,EAAEhB,EAAE,EAAE,EAAE,SAAE,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,GAAG,EAAElB,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,GAAG,EAAElB,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEgB,GAAG,EAASlB,CAAC,CAQ3Z,SAASyB,GAAczB,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAE,OAAAD,EAAE,CAAC,EAAEG,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEG,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEG,EAAED,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAASF,CAAC,CAQ7I,SAAS0B,GAAc1B,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAM,EAAEC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEmB,EAAEnB,EAAE,CAAC,EAAEyB,EAAEzB,EAAE,CAAC,EAAM0B,EAAE,EAAEV,EAAEG,EAAET,EAAMiB,EAAER,EAAElB,EAAE,EAAEe,EAAMY,EAAE,EAAElB,EAAE,EAAET,EAAM4B,EAAE,EAAED,EAAET,EAAEQ,EAAMG,EAAEX,EAAEO,EAAE,EAAEE,EAAMG,EAAE,EAAEJ,EAAE,EAAED,EAAMM,EAAEP,EAAE,EAAE,OAAAC,GAAGM,EAAEL,GAAGK,EAAEJ,GAAGI,EAAEH,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEjC,EAAE,CAAC,EAAEG,EAAEyB,EAAEG,EAAE/B,EAAE,CAAC,EAAEY,EAAEiB,EAAEG,EAAEhC,EAAE,CAAC,EAAEkB,EAAEY,EAAEG,EAASjC,CAAC,CAM5P,IAAMA,GAAE,UAAU,CAAC,IAAMA,EAAE,CAAC,EAAE,EAAE,CAAC,EAAQC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,SAASC,EAAEC,EAAE,CAACC,GAAKJ,EAAEE,CAAC,EAAEE,GAAKH,EAAEE,CAAC,EAAEc,GAAUjB,EAAEA,CAAC,EAAEiB,GAAUhB,EAAEA,CAAC,EAAE,IAAIW,EAAEO,GAAInB,EAAEC,CAAC,EAAE,OAAOW,EAAE,EAAE,EAAEA,EAAE,GAAG,KAAK,GAAG,KAAK,KAAKA,CAAC,CAAC,CAAC,EAAE,EAOlL,SAASuB,GAAYnC,EAAEC,EAAE,CAAC,OAAOD,EAAE,CAAC,IAAIC,EAAE,CAAC,GAAGD,EAAE,CAAC,IAAIC,EAAE,CAAC,GAAGD,EAAE,CAAC,IAAIC,EAAE,CAAC,CAAC,CCrK6R,IAAMmC,EAAN,MAAMC,UAAa,KAAK,CAAC,YAAY,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,CAAC,aAAM,EAAED,EAAEC,CAAC,EAAS,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAID,EAAE,EAAEA,EAAEE,EAAEF,EAAE,CAAC,OAAGA,EAAE,OAAc,KAAK,KAAKA,CAAC,GAAEG,GAAE,KAAKH,EAAE,EAAEE,CAAC,EAAS,KAAI,CAAC,KAAK,EAAE,CAAC,OAAAE,GAAE,KAAK,CAAC,EAAS,IAAI,CAAC,IAAI,EAAEJ,EAAE,CAAC,OAAAA,EAAEK,GAAE,KAAK,EAAEL,CAAC,EAAEK,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,IAAI,EAAEL,EAAE,CAAC,OAAAA,EAAEM,GAAE,KAAK,EAAEN,CAAC,EAAEM,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,SAAS,EAAE,CAAC,SAAE,OAAOC,GAAE,KAAK,KAAK,CAAC,EAAEC,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,OAAO,EAAE,CAAC,SAAE,OAAOC,GAAE,KAAK,KAAK,CAAC,EAAED,GAAE,KAAK,KAAK,EAAE,CAAC,EAAS,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAAE,GAAE,KAAK,CAAC,EAAS,IAAI,CAAC,KAAK,CAAC,OAAOC,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAEC,GAAE,KAAK,CAAC,EAAED,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,OAAOE,GAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAEC,GAAE,KAAK,CAAC,EAAED,GAAE,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,OAAAE,GAAE,KAAK,CAAC,EAAS,IAAI,CAAC,MAAM,EAAEf,EAAE,CAAC,OAAAA,EAAEgB,GAAE,KAAK,EAAEhB,CAAC,EAAEgB,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,MAAM,EAAE,CAAC,OAAAR,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,WAAW,CAAC,OAAAS,GAAE,KAAK,IAAI,EAAS,IAAI,CAAC,IAAI,EAAE,CAAC,OAAOC,GAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAOC,GAAE,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,OAAAC,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,aAAa,EAAE,CAAC,OAAAC,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,mBAAmB,EAAE,CAAC,OAAAC,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAAC,GAAE,KAAK,KAAK,CAAC,EAAS,IAAI,CAAC,MAAM,EAAE,CAAC,OAAOC,GAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAExB,EAAE,CAAC,OAAAyB,GAAE,KAAK,KAAK,EAAEzB,CAAC,EAAS,IAAI,CAAC,OAAO,CAAC,OAAO,IAAID,EAAK,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAEC,EAAE,EAAE,CAAC,YAAK,CAAC,EAAE,EAAEA,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAEA,EAAE,EAAE,CAAC,SAAEA,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAS,CAAC,CAAC,mBAAmB,EAAE,CAAC,IAAMA,EAAE,KAAK,CAAC,EAAQC,EAAE,KAAK,CAAC,EAAQ,EAAE,KAAK,CAAC,EAAE,YAAK,CAAC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAE,CAAC,EAAEC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAE,CAAC,EAAEC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAE,CAAC,EAAEC,EAAE,EAAE,EAAE,EAAE,EAAS,KAAK,UAAU,CAAC,CAAC,ECAvxD,IAAMyB,GAAE,IAAIC,EAAMC,GAAE,EAAMC,GAAE,EAAMC,GAAE,GAAYC,EAAN,KAAc,CAAC,YAAY,EAAEL,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,QAAQ,MAAM,6CAA6C,EAAE,KAAK,GAAG,EAAE,KAAK,WAAWA,EAAE,KAAK,GAAGE,KAAI,KAAK,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,eAAe,EAAE,KAAK,GAAG,SAAS,gBAAgB,IAAI,EAAE,KAAK,GAAG,SAAS,gBAAgB,KAAK,KAAK,QAAQ,KAAK,GAAG,SAAS,MAAM,QAAQI,KAAKN,EAAE,KAAK,aAAaM,EAAEN,EAAEM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAEN,EAAE,CAAghB,GAA/gB,KAAK,WAAW,CAAC,EAAEA,EAAEA,EAAE,GAAGG,KAAIH,EAAE,KAAKA,EAAE,MAAM,EAAEA,EAAE,KAAKA,EAAE,OAAOA,EAAE,KAAK,cAAc,aAAa,KAAK,GAAG,MAAMA,EAAE,KAAK,cAAc,YAAY,KAAK,GAAG,eAAe,KAAK,GAAG,cAAcA,EAAE,OAAO,IAAI,QAAQ,KAAK,GAAG,qBAAqB,KAAK,GAAG,aAAaA,EAAE,WAAWA,EAAE,YAAY,GAAMA,EAAE,OAAOA,EAAE,QAAQ,EAAEA,EAAE,OAAOA,EAAE,QAAQ,EAAEA,EAAE,MAAMA,EAAE,QAAQA,EAAE,OAAOA,EAAE,KAAK,WAAWA,EAAE,OAAOA,EAAE,KAAK,OAAOA,EAAE,MAAMA,EAAE,QAAQA,EAAE,WAAW,EAAEA,EAAE,YAAY,GAAMA,EAAE,MAAMA,EAAE,OAAO,KAAK,GAAG,YAAYA,EAAE,QAAQ,KAAK,gBAAgBA,CAAC,EAAKA,EAAE,QAAQ,CAAuB,GAAtB,KAAK,YAAY,GAAQ,KAAK,gBAAgB,KAAK,iBAAiBA,EAAE,MAAMA,EAAE,QAAS,eAAQ,KAAK,6DAA6D,EAAS,KAAK,eAAe,KAAK,IAAI,KAAK,eAAeA,EAAE,MAAMA,EAAE,OAAO,EAAE,KAAK,eAAeA,EAAE,MAAMA,EAAE,OAAO,MAAM,IAAI,QAAQ,KAAK,UAAU,MAAMA,EAAE,MAAM,KAAK,WAAW,QAAQ,KAAK,UAAU,MAAM,KAAK,IAAI,KAAK,UAAU,MAAMA,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAE,OAAOA,IAAI,EAAE,OAAO,KAAK,GAAG,aAAa,GAAM,KAAK,QAAQ,cAAc,EAAE,SAAQ,KAAK,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,YAAY,EAAE,QAAOA,EAAE,KAAK,GAAG,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAK,CAAC,SAAS,EAAE,CAAC,KAAK,aAAa,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAEA,EAAE,CAAC,KAAK,UAAU,MAAM,EAAE,KAAK,UAAU,MAAMA,CAAC,CAAC,kBAAkB,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK,EAAE,cAAc,EAAE,KAAK,GAAG,SAAS,kBAAkB,EAAE,KAAK,GAAG,SAAS,gBAAgB,KAAK,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,mBAAmB,QAAS,CAACM,EAAE,CAAC,KAAKN,EAAE,KAAKE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAWF,CAAC,EAAE,CAAC,QAAQ,KAAK,oBAAoBA,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAMG,EAAE,KAAK,WAAWH,CAAC,EAAE,KAAK,GAAG,WAAWG,EAAE,OAAOA,EAAE,MAAM,EAAE,KAAK,QAAQ,YAAYA,EAAE,OAAO,IAAIC,EAAE,EAAEF,IAAI,QAAQE,EAAE,GAAGF,IAAI,QAAQE,EAAE,GAAGF,IAAI,QAAQE,EAAE,GAAG,IAAMG,EAAEJ,EAAE,KAAKC,EAAQI,EAAEJ,IAAI,EAAE,EAAEA,EAAEA,EAAE,EAAQK,EAAEL,IAAI,EAAE,EAAEA,EAAE,EAAE,QAAQJ,EAAE,EAAEA,EAAEI,EAAEJ,IAAK,KAAK,GAAG,oBAAoBM,EAAEN,EAAEO,EAAEJ,EAAE,KAAKA,EAAE,WAAWA,EAAE,OAAOK,EAAEL,EAAE,OAAOH,EAAES,CAAC,EAAE,KAAK,GAAG,wBAAwBH,EAAEN,CAAC,EAAE,KAAK,GAAG,SAAS,oBAAoBM,EAAEN,EAAEG,EAAE,OAAO,CAAE,CAAE,EAAE,KAAK,WAAW,OAAO,KAAK,GAAG,WAAW,KAAK,GAAG,qBAAqB,KAAK,WAAW,MAAM,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAKH,EAAE,KAAK,GAAG,SAAS,EAAE,CAAI,KAAK,GAAG,SAAS,kBAAkB,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,KAAI,KAAK,KAAK,EAAE,cAAc,GAAG,KAAK,UAAU,CAAC,EAAE,KAAK,GAAG,SAAS,gBAAgB,KAAK,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,gBAAgB,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,IAAG,EAAE,mBAAmB,QAAS,CAACM,EAAE,CAAC,KAAKN,CAAC,IAAI,CAAC,IAAME,EAAE,KAAK,WAAWF,CAAC,EAAEE,EAAE,aAAa,KAAK,gBAAgBA,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,EAAE,KAAK,WAAW,OAAO,OAAO,KAAK,GAAG,eAAe,EAAE,GAAG,KAAK,YAAY,KAAK,WAAW,MAAM,KAAK,GAAG,SAAS,sBAAsBF,EAAE,KAAK,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW,MAAM,OAAO,KAAK,UAAU,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,GAAG,SAAS,oBAAoBA,EAAE,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,cAAc,EAAE,KAAK,WAAW,MAAM,KAAK,GAAG,aAAaA,EAAE,KAAK,UAAU,MAAM,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW,MAAM,OAAO,KAAK,UAAU,MAAM,CAAC,EAAE,KAAK,GAAG,WAAWA,EAAE,KAAK,UAAU,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,aAAa,CAAC,IAAM,EAAE,KAAK,WAAW,SAAS,GAAG,EAAE,KAAK,OAAO,EAAE,GAAG,CAACI,GAAG,eAAQ,KAAK,iDAAiD,EAASA,GAAE,EAAK,CAAC,mBAAmBJ,EAAE,CAACA,IAAIA,EAAE,KAAK,YAAY,GAAG,IAAME,EAAEF,EAAE,KAAWG,EAAEH,EAAE,KAAK,KAAK,SAAS,KAAK,OAAO,CAAC,IAAI,IAAIC,EAAE,IAAI,IAAIA,EAAE,OAAO,IAAIA,EAAE,MAAM,IAAIA,EAAE,OAAO,GAAQ,GAAG,IAAM,EAAE,KAAK,OAAO,IAAU,EAAE,KAAK,OAAO,IAAUO,EAAE,KAAK,OAAO,OAAaC,EAAE,KAAK,OAAO,MAAM,EAAE,IAAI,GAAQ,EAAE,EAAE,IAAI,IAAS,EAAE,QAAQH,EAAE,EAAEN,EAAEE,EAAE,OAAOI,EAAEN,EAAEM,GAAGH,EAAE,CAAC,IAAMH,EAAEE,EAAEI,CAAC,EAAQH,EAAED,EAAEI,EAAE,CAAC,EAAQE,EAAEN,EAAEI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIN,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIR,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAIK,EAAE,EAAE,CAAC,CAAC,CAACC,EAAE,IAAI,EAAE,CAAC,EAAED,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,KAAK,YAAY,GAAG,IAAMN,EAAE,EAAE,KAAWC,EAAE,EAAE,KAAK,KAAK,QAAQ,KAAK,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQG,EAAE,EAAEC,EAAEL,EAAE,OAAOI,EAAEC,EAAED,GAAGH,EAAGH,GAAE,UAAUE,EAAEI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,OAAO,gBAAgBN,EAAC,CAAC,EAAE,KAAK,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,KAAM,KAAK,GAAG,SAAS,kBAAkB,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,QAAQ,KAAK,KAAK,WAAY,KAAK,GAAG,aAAa,KAAK,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC,CAAE,CAAC,ECA7vJ,IAAIU,GAAE,EAAQC,GAAE,CAAC,EAAQC,EAAN,KAAa,CAAC,YAAY,EAAE,CAAC,OAAOC,EAAE,SAAS,EAAE,SAASC,EAAE,CAAC,EAAE,YAAYC,EAAE,GAAM,SAASC,EAAE,EAAE,KAAK,UAAUC,EAAE,EAAE,IAAI,UAAUC,EAAE,GAAK,WAAW,EAAE,GAAK,UAAUC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,QAAQ,MAAM,4CAA4C,EAAE,KAAK,GAAG,EAAE,KAAK,SAASL,EAAE,KAAK,GAAGJ,KAAIG,GAAG,QAAQ,KAAK,4BAA4B,EAAE,GAAG,QAAQ,KAAK,8BAA8B,EAAE,KAAK,YAAYE,EAAE,KAAK,SAASC,EAAE,KAAK,UAAUC,EAAE,KAAK,UAAUC,EAAE,KAAK,WAAW,EAAE,KAAK,UAAUC,EAAE,KAAK,UAAU,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,KAAK,aAAa,CAAC,KAAK,UAAU,MAAM,KAAK,GAAG,SAAS,mBAAmB,KAAK,aAAa,KAAK,GAAG,IAAI,KAAK,GAAG,mBAAmB,EAAE,KAAK,aAAa,KAAK,GAAG,UAAU,KAAK,GAAG,mBAAmB,GAAG,KAAK,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,EAAE,aAAa,KAAK,QAAQ,KAAK,YAAY,EAAE,EAAE,aAAa,KAAK,QAAQ,KAAK,cAAc,EAAE,KAAK,WAAW,CAAC,OAAON,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAOH,EAAE,SAASC,CAAC,EAAE,CAA2gB,GAAvgBD,IAAG,KAAK,GAAG,aAAa,KAAK,aAAaA,CAAC,EAAE,KAAK,GAAG,cAAc,KAAK,YAAY,EAAE,KAAK,GAAG,iBAAiB,KAAK,YAAY,IAAI,IAAI,QAAQ,KAAK,GAAG,KAAK,GAAG,iBAAiB,KAAK,YAAY,CAAC;AAAA;AAAA,EAAoBU,GAAeV,CAAC,CAAC,EAAE,GAAKC,IAAG,KAAK,GAAG,aAAa,KAAK,eAAeA,CAAC,EAAE,KAAK,GAAG,cAAc,KAAK,cAAc,EAAE,KAAK,GAAG,iBAAiB,KAAK,cAAc,IAAI,IAAI,QAAQ,KAAK,GAAG,KAAK,GAAG,iBAAiB,KAAK,cAAc,CAAC;AAAA;AAAA,EAAsBS,GAAeT,CAAC,CAAC,EAAE,GAAE,KAAK,GAAG,YAAY,KAAK,OAAO,EAAK,CAAC,KAAK,GAAG,oBAAoB,KAAK,QAAQ,KAAK,GAAG,WAAW,EAAE,OAAO,QAAQ,KAAK,KAAK,GAAG,kBAAkB,KAAK,OAAO,CAAC,EAAE,KAAK,iBAAiB,IAAI,IAAI,IAAIE,EAAE,KAAK,GAAG,oBAAoB,KAAK,QAAQ,KAAK,GAAG,eAAe,EAAE,QAAQH,EAAE,EAAEA,EAAEG,EAAEH,IAAI,CAAC,IAAIC,EAAE,KAAK,GAAG,iBAAiB,KAAK,QAAQD,CAAC,EAAE,KAAK,iBAAiB,IAAIC,EAAE,KAAK,GAAG,mBAAmB,KAAK,QAAQA,EAAE,IAAI,CAAC,EAAE,IAAME,EAAEF,EAAE,KAAK,MAAM,QAAQ,EAAEA,EAAE,YAAYE,EAAE,CAAC,EAAEF,EAAE,eAAeE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,mBAAmB,IAAI,IAAI,IAAMQ,EAAE,CAAC,EAAQ,EAAE,KAAK,GAAG,oBAAoB,KAAK,QAAQ,KAAK,GAAG,iBAAiB,EAAE,QAAQX,EAAE,EAAEA,EAAE,EAAEA,IAAI,CAAC,IAAMC,EAAE,KAAK,GAAG,gBAAgB,KAAK,QAAQD,CAAC,EAAQG,EAAE,KAAK,GAAG,kBAAkB,KAAK,QAAQF,EAAE,IAAI,EAAKE,IAAI,KAAIQ,EAAER,CAAC,EAAEF,EAAE,KAAK,KAAK,mBAAmB,IAAIA,EAAEE,CAAC,EAAE,CAAC,KAAK,eAAeQ,EAAE,KAAK,EAAE,CAAC,CAAC,aAAaX,EAAEC,EAAEE,EAAEQ,EAAE,CAAC,KAAK,UAAU,IAAIX,EAAE,KAAK,UAAU,IAAIC,EAAE,KAAK,UAAU,SAASE,EAAE,KAAK,UAAU,SAASQ,EAAEX,IAAI,KAAK,YAAY,GAAK,CAAC,iBAAiBA,EAAEC,EAAE,CAAC,KAAK,cAAc,QAAQD,EAAE,KAAK,cAAc,UAAUC,CAAC,CAAC,YAAY,CAAC,KAAK,UAAU,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,UAAU,EAAE,KAAK,SAAS,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,SAAS,EAAE,KAAK,UAAU,IAAI,KAAK,GAAG,SAAS,OAAO,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,KAAK,EAAE,KAAK,UAAU,KAAK,GAAG,SAAS,YAAY,KAAK,QAAQ,EAAE,KAAK,GAAG,SAAS,aAAa,KAAK,SAAS,EAAE,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,EAAE,KAAK,GAAG,SAAS,aAAa,KAAK,SAAS,EAAE,KAAK,UAAU,KAAK,KAAK,GAAG,SAAS,aAAa,KAAK,UAAU,IAAI,KAAK,UAAU,IAAI,KAAK,UAAU,SAAS,KAAK,UAAU,QAAQ,EAAE,KAAK,GAAG,SAAS,iBAAiB,KAAK,cAAc,QAAQ,KAAK,cAAc,SAAS,CAAC,CAAC,IAAI,CAAC,UAAUD,EAAE,EAAK,EAAE,CAAC,EAAE,CAAC,IAAIC,EAAE,GAAW,KAAK,GAAG,SAAS,MAAM,iBAAiB,KAAK,KAAU,KAAK,GAAG,WAAW,KAAK,OAAO,EAAE,KAAK,GAAG,SAAS,MAAM,eAAe,KAAK,IAAG,KAAK,iBAAiB,QAAS,CAACD,EAAEG,IAAI,CAAC,IAAIQ,EAAE,KAAK,SAASR,EAAE,WAAW,EAAE,QAAUH,KAAKG,EAAE,eAAe,CAAC,GAAG,CAACQ,EAAE,MAAM,GAAG,EAAEX,KAAKW,GAAG,CAAC,GAAG,MAAM,QAAQA,EAAE,KAAK,EAAE,MAAMA,EAAE,OAAO,KAAK,CAACA,EAAEA,EAAEX,CAAC,CAAC,CAAC,GAAG,CAACW,EAAE,OAAOC,GAAK,kBAAkBT,EAAE,IAAI,wBAAwB,EAAE,GAAGQ,GAAGA,EAAE,QAAQ,OAAO,OAAOC,GAAK,GAAGT,EAAE,IAAI,uCAAuC,EAAE,GAAGQ,EAAE,MAAM,QAAS,OAAAV,GAAG,EAAEU,EAAE,MAAM,OAAOV,CAAC,EAASY,GAAW,KAAK,GAAGV,EAAE,KAAKH,EAAEC,CAAC,EAAE,GAAGU,EAAE,MAAM,QAAQA,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAMP,EAAE,CAAC,EAAE,OAAAO,EAAE,MAAM,QAASX,GAAG,CAACC,GAAG,EAAED,EAAE,OAAOC,CAAC,EAAEG,EAAE,KAAKH,CAAC,CAAC,CAAE,EAASY,GAAW,KAAK,GAAGV,EAAE,KAAKH,EAAEI,CAAC,CAAC,CAACS,GAAW,KAAK,GAAGV,EAAE,KAAKH,EAAEW,EAAE,KAAK,CAAC,CAAE,EAAE,KAAK,WAAW,EAAEX,GAAG,KAAK,GAAG,SAAS,aAAa,KAAK,YAAY,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,KAAK,OAAO,CAAC,CAAC,EAAC,SAASa,GAAW,EAAE,EAAEV,EAAE,EAAE,CAAC,EAAE,EAAE,OAAOW,GAAQ,CAAC,EAAE,EAAE,IAAMV,EAAE,EAAE,SAAS,MAAM,iBAAiB,IAAID,CAAC,EAAE,GAAG,EAAE,OAAO,GAAGC,IAAI,QAAQA,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,MAAM,iBAAiB,IAAID,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAGY,GAAYX,EAAE,CAAC,EAAE,OAAOA,EAAE,IAAIA,EAAE,IAAI,CAAC,EAAEY,GAASZ,EAAE,CAAC,EAAE,EAAE,SAAS,MAAM,iBAAiB,IAAID,EAAEC,CAAC,CAAC,KAAK,CAAC,GAAGA,IAAI,EAAE,OAAO,EAAE,SAAS,MAAM,iBAAiB,IAAID,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAK,MAAK,OAAO,EAAE,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,EAAE,UAAUA,EAAE,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,IAAK,MAAK,IAAK,OAAM,IAAK,OAAM,IAAK,OAAM,IAAK,OAAM,OAAO,EAAE,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,EAAE,UAAUA,EAAE,CAAC,EAAE,IAAK,OAAM,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,IAAK,OAAM,OAAO,EAAE,WAAWA,EAAE,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,iBAAiBA,EAAE,GAAM,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,iBAAiBA,EAAE,GAAM,CAAC,EAAE,IAAK,OAAM,OAAO,EAAE,iBAAiBA,EAAE,GAAM,CAAC,CAAC,CAAC,CAAC,SAASO,GAAe,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM;AAAA,CAAI,EAAE,QAAQV,EAAE,EAAEA,EAAE,EAAE,OAAOA,IAAI,EAAEA,CAAC,EAAEA,EAAE,EAAE,KAAK,EAAEA,CAAC,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,CAAC,CAAC,SAASc,GAAQ,EAAE,CAAC,IAAMX,EAAE,EAAE,OAAaQ,EAAE,EAAE,CAAC,EAAE,OAAO,GAAGA,IAAI,OAAO,OAAO,EAAE,IAAMP,EAAED,EAAEQ,EAAMN,EAAEJ,GAAEG,CAAC,EAAEC,IAAIJ,GAAEG,CAAC,EAAEC,EAAE,IAAI,aAAaD,CAAC,GAAG,QAAQH,EAAE,EAAEA,EAAEE,EAAEF,IAAII,EAAE,IAAI,EAAEJ,CAAC,EAAEA,EAAEU,CAAC,EAAE,OAAON,CAAC,CAAC,SAASU,GAAY,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,MAAO,GAAM,QAAQZ,EAAE,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAEA,IAAI,GAAG,EAAEA,CAAC,IAAI,EAAEA,CAAC,EAAE,MAAO,GAAM,MAAO,EAAI,CAAC,SAASa,GAAS,EAAE,EAAE,CAAC,QAAQb,EAAE,EAAE,EAAE,EAAE,OAAOA,EAAE,EAAEA,IAAI,EAAEA,CAAC,EAAE,EAAEA,CAAC,CAAC,CAAC,IAAIA,GAAE,EAAE,SAASS,GAAK,EAAE,CAAMT,GAAE,MAAM,QAAQ,KAAK,CAAC,EAAEA,KAAIA,GAAE,KAAK,QAAQ,KAAK,iDAAiD,EAAE,CCA/mL,IAAMc,GAAE,IAAIC,EAAMC,GAAE,EAAQC,GAAN,KAAc,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,cAAc,QAAQ,EAAE,MAAMH,EAAE,IAAI,OAAOI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAMC,EAAE,GAAM,MAAMC,EAAE,GAAK,QAAQC,EAAE,GAAM,UAAUC,EAAE,GAAM,mBAAmBC,EAAE,GAAM,sBAAsBC,EAAE,GAAM,gBAAgB,EAAE,UAAU,UAAUC,EAAE,GAAK,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAMC,EAAE,CAAC,MAAMP,EAAE,MAAMC,EAAE,QAAQC,EAAE,UAAUC,EAAE,mBAAmBC,EAAE,sBAAsBC,EAAE,gBAAgB,CAAC,EAAE,KAAK,IAAI,EAAE,KAAK,MAAML,EAAE,KAAK,MAAM,GAAK,KAAK,MAAMC,EAAE,KAAK,QAAQC,EAAE,KAAK,mBAAmBE,EAAE,KAAK,UAAUE,EAAE,KAAK,GAAGT,KAAI,IAAI,IAAI,KAAK,GAAG,EAAE,WAAW,SAASU,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,EAAE,WAAW,QAAQA,CAAC,GAAG,KAAK,IAAI,QAAQ,MAAM,gCAAgC,EAAE,KAAK,GAAG,SAAS,KAAK,KAAK,QAAQZ,EAAEI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,UAAU,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,MAAM,cAAc,CAAC,QAAQ,KAAK,GAAG,QAAQ,EAAE,KAAK,MAAM,SAAS,GAAM,KAAK,MAAM,UAAU,KAAK,GAAG,IAAI,KAAK,MAAM,UAAU,GAAK,KAAK,MAAM,UAAU,KAAK,GAAG,OAAO,KAAK,MAAM,iBAAiB,GAAM,KAAK,MAAM,MAAM,GAAM,KAAK,MAAM,gBAAgB,EAAE,KAAK,MAAM,YAAY,KAAK,KAAK,MAAM,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,aAAa,CAAC,EAAE,KAAK,MAAM,kBAAkB,EAAE,KAAK,MAAM,YAAY,KAAK,KAAK,MAAM,iBAAiB,IAAI,IAAI,KAAK,MAAM,eAAe,KAAK,KAAK,WAAW,CAAC,EAAK,KAAK,UAAU,KAAK,aAAa,wBAAwB,EAAE,KAAK,aAAa,0BAA0B,IAAO,KAAK,aAAa,mBAAmB,EAAE,KAAK,aAAa,0BAA0B,EAAE,KAAK,aAAa,wBAAwB,EAAE,KAAK,aAAa,+BAA+B,EAAE,KAAK,aAAa,wBAAwB,EAAE,KAAK,aAAa,0BAA0B,EAAE,KAAK,aAAa,UAAU,EAAE,KAAK,aAAa,qBAAqB,EAAE,KAAK,aAAa,oBAAoB,GAAE,KAAK,aAAa,+BAA+B,EAAE,KAAK,aAAa,8BAA8B,EAAE,KAAK,aAAa,+BAA+B,EAAE,KAAK,aAAa,+BAA+B,EAAE,KAAK,aAAa,gCAAgC,EAAE,KAAK,aAAa,uCAAuC,EAAE,KAAK,oBAAoB,KAAK,aAAa,yBAAyB,sBAAsB,0BAA0B,EAAE,KAAK,oBAAoB,KAAK,aAAa,yBAAyB,sBAAsB,0BAA0B,EAAE,KAAK,sBAAsB,KAAK,aAAa,yBAAyB,wBAAwB,4BAA4B,EAAE,KAAK,kBAAkB,KAAK,aAAa,0BAA0B,oBAAoB,sBAAsB,EAAE,KAAK,gBAAgB,KAAK,aAAa,0BAA0B,kBAAkB,oBAAoB,EAAE,KAAK,kBAAkB,KAAK,aAAa,0BAA0B,oBAAoB,sBAAsB,EAAE,KAAK,YAAY,KAAK,aAAa,qBAAqB,cAAc,kBAAkB,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,WAAW,gBAAgB,KAAK,GAAG,aAAa,KAAK,GAAG,gCAAgC,EAAE,KAAK,WAAW,cAAc,KAAK,aAAa,gCAAgC,EAAE,KAAK,GAAG,aAAa,KAAK,aAAa,gCAAgC,EAAE,8BAA8B,EAAE,CAAC,CAAC,QAAQ,EAAEJ,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,OAAOA,EAAE,KAAK,GAAG,OAAO,MAAM,EAAE,KAAK,IAAI,KAAK,GAAG,OAAO,OAAOA,EAAE,KAAK,IAAI,KAAK,GAAG,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,OAAOA,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,EAAEA,EAAE,EAAE,EAAEI,EAAE,EAAE,EAAI,KAAK,MAAM,SAAS,QAAQ,GAAG,KAAK,MAAM,SAAS,SAASJ,KAAG,KAAK,MAAM,SAAS,MAAM,EAAE,KAAK,MAAM,SAAS,OAAOA,EAAE,KAAK,MAAM,SAAS,EAAE,EAAE,KAAK,MAAM,SAAS,EAAEI,EAAE,KAAK,GAAG,SAAS,EAAEA,EAAE,EAAEJ,CAAC,EAAE,CAAC,WAAW,EAAEA,EAAE,EAAE,EAAEI,EAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,EAAEA,EAAE,EAAEJ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAI,KAAK,MAAM,CAAC,IAAI,KAAM,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,GAAK,CAAC,QAAQ,EAAE,CAAI,KAAK,MAAM,CAAC,IAAI,KAAO,KAAK,GAAG,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,GAAM,CAAC,aAAa,EAAEA,EAAE,EAAEI,EAAE,EAAI,KAAK,MAAM,UAAU,MAAM,GAAG,KAAK,MAAM,UAAU,MAAMJ,GAAG,KAAK,MAAM,UAAU,WAAW,GAAG,KAAK,MAAM,UAAU,WAAWI,KAAG,KAAK,MAAM,UAAU,IAAI,EAAE,KAAK,MAAM,UAAU,IAAIJ,EAAE,KAAK,MAAM,UAAU,SAAS,EAAE,KAAK,MAAM,UAAU,SAASI,EAAE,IAAI,OAAO,KAAK,GAAG,kBAAkB,EAAEJ,EAAE,EAAEI,CAAC,EAAE,KAAK,GAAG,UAAU,EAAEJ,CAAC,EAAE,CAAC,iBAAiB,EAAEA,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,UAAY,KAAK,MAAM,cAAc,UAAU,GAAG,KAAK,MAAM,cAAc,YAAYA,KAAG,KAAK,MAAM,cAAc,QAAQ,EAAE,KAAK,MAAM,cAAc,UAAUA,EAAEA,IAAI,OAAO,KAAK,GAAG,sBAAsB,EAAEA,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,CAAI,KAAK,MAAM,WAAW,IAAG,KAAK,MAAM,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,CAAI,KAAK,MAAM,YAAY,IAAG,KAAK,MAAM,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,CAAI,KAAK,MAAM,YAAY,IAAG,KAAK,MAAM,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE,CAAI,KAAK,MAAM,YAAY,IAAG,KAAK,MAAM,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAI,KAAK,MAAM,oBAAoB,IAAG,KAAK,MAAM,kBAAkB,EAAE,KAAK,GAAG,cAAc,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,GAAG,YAAY,OAAOA,EAAE,IAAI,EAAE,CAAC,EAAE,CAAI,KAAK,MAAM,cAAcA,IAAG,KAAK,MAAM,YAAYA,EAAE,KAAK,GAAG,gBAAgB,EAAEA,CAAC,EAAE,CAAC,aAAa,EAAEA,EAAE,EAAE,CAAC,OAAGA,GAAG,KAAK,GAAGA,CAAC,EAAS,KAAK,GAAGA,CAAC,EAAE,KAAK,KAAK,EAAE,GAAE,KAAK,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,GAAUA,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,EAAC,CAAC,WAAW,EAAEA,EAAE,CAAC,OAAO,EAAE,cAAcA,EAAE,YAAY,EAAE,YAAYA,EAAE,YAAY,EAAE,QAAQ,KAAKA,EAAE,QAAQ,GAAG,EAAE,QAAQ,GAAGA,EAAE,QAAQ,GAAG,EAAE,SAASA,EAAE,OAAO,EAAE,OAAOA,EAAE,OAAOA,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,EAAEA,EAAE,CAAC,OAAO,EAAE,cAAcA,EAAE,YAAY,EAAE,YAAYA,EAAE,YAAY,EAAE,SAASA,EAAE,OAAOA,EAAE,OAAO,EAAE,OAAOA,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,EAAEA,EAAE,CAAC,OAAO,EAAE,cAAcA,EAAE,YAAY,EAAE,YAAYA,EAAE,YAAY,EAAE,QAAQ,KAAKA,EAAE,QAAQ,GAAG,EAAE,QAAQ,GAAGA,EAAE,QAAQ,GAAGA,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAOE,EAAE,YAAYE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAIC,EAAE,CAAC,EAA+I,GAA7IH,GAAGE,GAAGF,EAAE,cAAc,EAAE,EAAE,SAAUW,GAAG,CAAC,GAAG,CAACA,EAAE,QAAQ,MAAO,GAAKA,EAAE,OAAOT,GAAGS,EAAE,eAAeX,GAAG,CAACA,EAAE,sBAAsBW,CAAC,GAAGR,EAAE,KAAKQ,CAAC,EAAE,CAAE,EAAK,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAQT,EAAE,CAAC,EAAQU,EAAE,CAAC,EAAET,EAAE,QAASA,GAAG,CAACA,EAAE,QAAQ,YAAYA,EAAE,QAAQ,UAAUD,EAAE,KAAKC,CAAC,EAAES,EAAE,KAAKT,CAAC,EAAEQ,EAAE,KAAKR,CAAC,EAAEA,EAAE,OAAO,EAAKA,EAAE,cAAc,GAAGA,EAAE,QAAQ,WAAWH,IAAGG,EAAE,YAAY,eAAeL,EAAC,EAAEA,GAAE,aAAaE,EAAE,oBAAoB,EAAEG,EAAE,OAAOL,GAAE,EAAE,CAAE,EAAEa,EAAE,KAAK,KAAK,UAAU,EAAET,EAAE,KAAK,KAAK,eAAe,EAAEU,EAAE,KAAK,KAAK,MAAM,EAAET,EAAEQ,EAAE,OAAOT,EAAEU,CAAC,CAAC,CAAC,OAAOT,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAOL,EAAE,OAAO,EAAE,KAAK,OAAOI,EAAE,GAAK,KAAKU,EAAE,GAAK,YAAYT,EAAE,GAAK,MAAMC,CAAC,EAAE,CAAI,IAAI,MAAM,KAAK,gBAAgB,EAAE,KAAK,YAAY,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,KAAK,GAAG,IAAO,KAAK,gBAAgB,CAAC,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,MAAM,IAAKA,GAAG,KAAK,WAAWA,IAAI,MAAU,KAAK,QAAQ,CAAC,GAAG,EAAE,SAAQ,KAAK,OAAO,KAAK,GAAG,UAAU,EAAE,KAAK,aAAa,EAAI,GAAE,KAAK,GAAG,OAAO,KAAK,MAAM,KAAK,GAAG,iBAAiB,IAAI,KAAK,MAAM,KAAK,GAAG,iBAAiB,IAAI,KAAK,QAAQ,KAAK,GAAG,mBAAmB,EAAE,GAAEF,GAAG,EAAE,kBAAkB,EAAEJ,GAAGA,EAAE,kBAAkB,EAAU,KAAK,cAAc,CAAC,MAAM,EAAE,OAAOA,EAAE,YAAYK,EAAE,KAAKS,CAAC,CAAC,EAAI,QAASD,GAAG,CAACA,EAAE,KAAK,CAAC,OAAOb,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,ECO16N,SAASe,GAAKC,EAAEC,EAAE,CAAC,OAAAD,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAASD,CAAC,CAUhE,SAASE,GAAIF,EAAEC,EAAEE,EAAEC,EAAEC,EAAE,CAAC,OAAAL,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAASL,CAAC,CAgB5D,SAASM,GAAMC,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAASF,CAAC,CAa9E,SAASG,GAAUC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAMG,EAAEH,EAAE,CAAC,EAAMI,EAAEJ,EAAE,CAAC,EAAM,EAAEC,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAE,SAAE,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,GAAGL,EAAE,CAAC,EAAEE,EAAE,EAAEF,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAEI,EAAE,EAAEJ,EAAE,CAAC,EAAEK,EAAE,EAASL,CAAC,CAO9J,SAASM,GAAIN,EAAEC,EAAE,CAAC,OAAOD,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,CAAC,CC/ChE,SAASM,GAASC,EAAE,CAAC,OAAAA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAASA,CAAC,CASxD,SAASC,GAAaD,EAAEE,EAAEC,EAAE,CAACA,GAAG,GAAG,IAAI,EAAE,KAAK,IAAIA,CAAC,EAAE,OAAAH,EAAE,CAAC,EAAE,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAE,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAE,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAE,KAAK,IAAIG,CAAC,EAASH,CAAC,CAQnH,SAASI,GAASJ,EAAEE,EAAEC,EAAE,CAAC,IAAI,EAAED,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAM,EAAEC,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAE,OAAAH,EAAE,CAAC,EAAE,EAAEU,EAAEH,EAAE,EAAEF,EAAEI,EAAEH,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEK,EAAEH,EAAEC,EAAEF,EAAE,EAAE,EAAEG,EAAET,EAAE,CAAC,EAAEM,EAAEI,EAAEH,EAAEE,EAAE,EAAED,EAAEH,EAAE,EAAEL,EAAE,CAAC,EAAEO,EAAEG,EAAE,EAAE,EAAEL,EAAEG,EAAEF,EAAEG,EAAST,CAAC,CAQrL,SAASW,GAAQX,EAAEE,EAAEC,EAAE,CAACA,GAAG,GAAG,IAAI,EAAED,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAM,EAAE,KAAK,IAAIC,CAAC,EAAEK,EAAE,KAAK,IAAIL,CAAC,EAAE,OAAAH,EAAE,CAAC,EAAE,EAAEQ,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEG,EAAEF,EAAE,EAAEN,EAAE,CAAC,EAAEM,EAAEE,EAAEH,EAAE,EAAEL,EAAE,CAAC,EAAEO,EAAEC,EAAE,EAAE,EAASR,CAAC,CAQ1J,SAASY,GAAQZ,EAAEE,EAAEC,EAAE,CAACA,GAAG,GAAG,IAAI,EAAED,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAM,EAAE,KAAK,IAAIC,CAAC,EAAEK,EAAE,KAAK,IAAIL,CAAC,EAAE,OAAAH,EAAE,CAAC,EAAE,EAAEQ,EAAEF,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEG,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEM,EAAEE,EAAE,EAAE,EAAER,EAAE,CAAC,EAAEO,EAAEC,EAAEH,EAAE,EAASL,CAAC,CAQ1J,SAASa,GAAQb,EAAEE,EAAEC,EAAE,CAACA,GAAG,GAAG,IAAI,EAAED,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAM,EAAE,KAAK,IAAIC,CAAC,EAAEK,EAAE,KAAK,IAAIL,CAAC,EAAE,OAAAH,EAAE,CAAC,EAAE,EAAEQ,EAAEH,EAAE,EAAEL,EAAE,CAAC,EAAEK,EAAEG,EAAE,EAAE,EAAER,EAAE,CAAC,EAAEM,EAAEE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEO,EAAEC,EAAEF,EAAE,EAASN,CAAC,CAS1J,SAASc,GAAMd,EAAEE,EAAEC,EAAE,EAAE,CAAC,IAAIE,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAMM,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAEY,EAAEZ,EAAE,CAAC,EAAMa,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,OAAAH,EAAEZ,EAAEG,EAAEF,EAAEG,EAAEF,EAAEG,EAAE,EAAEK,EAAKE,EAAE,IAAGA,EAAE,CAACA,EAAET,EAAE,CAACA,EAAEC,EAAE,CAACA,EAAEC,EAAE,CAACA,EAAEK,EAAE,CAACA,GAAK,EAAEE,EAAE,MAAMD,EAAE,KAAK,KAAKC,CAAC,EAAEC,EAAE,KAAK,IAAIF,CAAC,EAAEG,EAAE,KAAK,KAAK,EAAE,GAAGH,CAAC,EAAEE,EAAEE,EAAE,KAAK,IAAI,EAAEJ,CAAC,EAAEE,IAAOC,EAAE,EAAE,EAAEC,EAAE,GAAEpB,EAAE,CAAC,EAAEmB,EAAEd,EAAEe,EAAEZ,EAAER,EAAE,CAAC,EAAEmB,EAAEb,EAAEc,EAAEX,EAAET,EAAE,CAAC,EAAEmB,EAAEZ,EAAEa,EAAEV,EAAEV,EAAE,CAAC,EAAEmB,EAAE,EAAEC,EAAEL,EAASf,CAAC,CAOtT,SAASqB,GAAOrB,EAAEE,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAMK,EAAEJ,EAAEA,EAAE,EAAE,EAAEE,EAAEA,EAAEC,EAAEA,EAAM,EAAEC,EAAE,EAAEA,EAAE,EAAE,OAAAP,EAAE,CAAC,EAAE,CAACG,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAACK,EAAE,EAAEL,EAAE,CAAC,EAAEM,EAAE,EAASN,CAAC,CAQxI,SAASsB,GAAUtB,EAAEE,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAE,CAACE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAE,CAACE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAE,CAACE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAASF,CAAC,CAW3E,SAASuB,GAASvB,EAAEE,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAM,EAAE,GAAGC,EAAE,EAAG,EAAE,KAAK,KAAKA,EAAE,CAAC,EAAEH,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAEA,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG,EAAEF,EAAE,CAAC,GAAGE,EAAE,CAAC,EAAEA,EAAE,CAAC,GAAG,MAAM,CAAC,IAAIC,EAAE,EAAED,EAAE,CAAC,EAAEA,EAAE,CAAC,IAAIC,EAAE,GAAGD,EAAE,CAAC,EAAEA,EAAEC,EAAE,EAAEA,CAAC,IAAIA,EAAE,GAAG,IAAIE,GAAGF,EAAE,GAAG,EAAM,GAAGA,EAAE,GAAG,EAAE,EAAE,KAAK,KAAKD,EAAEC,EAAE,EAAEA,CAAC,EAAED,EAAEG,EAAE,EAAEA,CAAC,EAAEH,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEF,EAAEG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAEH,EAAE,CAAC,GAAGE,EAAEG,EAAE,EAAE,CAAC,EAAEH,EAAE,EAAE,EAAEG,CAAC,GAAG,EAAEL,EAAEK,CAAC,GAAGH,EAAEG,EAAE,EAAEF,CAAC,EAAED,EAAEC,EAAE,EAAEE,CAAC,GAAG,EAAEL,EAAE,CAAC,GAAGE,EAAE,EAAE,EAAEC,CAAC,EAAED,EAAEC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAOH,CAAC,CASxX,SAASwB,GAAUxB,EAAEE,EAAEC,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAID,EAAE,CAAC,EAAE,EAAE,EAAMG,EAAE,KAAK,IAAIH,EAAE,CAAC,EAAE,EAAE,EAAMI,EAAE,KAAK,IAAIJ,EAAE,CAAC,EAAE,EAAE,EAAMK,EAAE,KAAK,IAAIL,EAAE,CAAC,EAAE,EAAE,EAAM,EAAE,KAAK,IAAIA,EAAE,CAAC,EAAE,EAAE,EAAMM,EAAE,KAAK,IAAIN,EAAE,CAAC,EAAE,EAAE,EAAE,OAAGC,IAAI,OAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAAUH,IAAI,OAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAAUH,IAAI,OAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAAUH,IAAI,OAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAAUH,IAAI,OAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAAUH,IAAI,QAAOH,EAAE,CAAC,EAAE,EAAEO,EAAEC,EAAEH,EAAEC,EAAE,EAAEN,EAAE,CAAC,EAAEK,EAAEC,EAAEE,EAAE,EAAED,EAAE,EAAEP,EAAE,CAAC,EAAEK,EAAEE,EAAE,EAAE,EAAED,EAAEE,EAAER,EAAE,CAAC,EAAEK,EAAEE,EAAEC,EAAE,EAAEF,EAAE,GAASN,CAAC,CAQ7rB,IAAMQ,GAAEiB,GAWFhB,GAAEiB,GA0BR,IAAMC,GAAEC,GAwBR,IAAMC,GAAEC,GChK6P,IAAMC,EAAN,cAAmB,KAAK,CAAC,YAAY,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,CAAC,MAAM,EAAEF,EAAEC,EAAEC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,EAAE,KAAK,QAAQ,KAAK,IAAMC,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,OAAO,IAAI,MAAM,KAAK,CAAC,IAAIC,EAAEJ,EAAE,CAAC,IAAMC,EAAE,QAAQ,IAAI,GAAG,SAAS,EAAE,OAAAA,GAAGE,EAAE,SAASH,CAAC,GAAGI,EAAE,SAAS,EAASH,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,OAAAI,GAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,IAAI,EAAEJ,EAAEC,EAAEC,EAAE,CAAC,OAAG,EAAE,OAAc,KAAK,KAAK,CAAC,GAAEG,GAAE,KAAK,QAAQ,EAAEL,EAAEC,EAAEC,CAAC,EAAE,KAAK,SAAS,EAAS,KAAI,CAAC,QAAQ,EAAE,CAAC,OAAAI,GAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAAC,GAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAAC,GAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,OAAAC,GAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,UAAU,EAAE,KAAK,QAAQ,CAAC,OAAAC,GAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,KAAK,EAAE,CAAC,OAAAC,GAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,UAAU,EAAE,KAAK,QAAQ,CAAC,OAAAC,GAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,SAAS,EAAEb,EAAE,CAAC,OAAAA,EAAEc,GAAE,KAAK,QAAQ,EAAEd,CAAC,EAAEc,GAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,IAAI,EAAE,CAAC,OAAOC,GAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,OAAAC,GAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,UAAU,EAAEhB,EAAE,CAAC,OAAAiB,GAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,EAAEjB,GAAG,KAAK,SAAS,EAAS,IAAI,CAAC,cAAc,EAAEA,EAAE,CAAC,OAAAkB,GAAE,KAAK,QAAQ,EAAElB,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,MAAM,EAAEA,EAAE,CAAC,OAAAmB,GAAE,KAAK,QAAQ,KAAK,QAAQ,EAAEnB,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,UAAU,EAAEA,EAAE,EAAE,CAAC,YAAK,QAAQ,CAAC,EAAE,EAAEA,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,SAAS,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAEA,EAAE,EAAE,CAAC,SAAEA,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,CAAC,EAAS,CAAC,CAAC,ECA77D,IAAMoB,GAAE,KAO5C,SAASC,GAAKC,EAAEF,EAAE,CAAC,OAAAE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAASE,CAAC,CAMvM,SAASC,GAAID,EAAEF,EAAEI,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAEC,EAAE,CAAC,OAAAd,EAAE,CAAC,EAAEF,EAAEE,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAEQ,EAAER,EAAE,CAAC,EAAES,EAAET,EAAE,EAAE,EAAEU,EAAEV,EAAE,EAAE,EAAEW,EAAEX,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEY,EAAEZ,EAAE,EAAE,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAASd,CAAC,CAM9K,SAASe,GAASf,EAAE,CAAC,OAAAA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAASA,CAAC,CAcnJ,SAASgB,GAAOC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAMI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAMQ,EAAER,EAAE,CAAC,EAAES,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAMW,EAAEX,EAAE,EAAE,EAAEY,EAAEZ,EAAE,EAAE,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAAEd,EAAE,EAAE,EAAMe,EAAEd,EAAEI,EAAEH,EAAEE,EAAMY,EAAEf,EAAEK,EAAE,EAAEF,EAAMa,EAAEhB,EAAEM,EAAEJ,EAAEC,EAAMc,EAAEhB,EAAEI,EAAE,EAAED,EAAM,EAAEH,EAAEK,EAAEJ,EAAEE,EAAMc,EAAE,EAAEZ,EAAEJ,EAAEG,EAAMc,EAAEZ,EAAEI,EAAEH,EAAEE,EAAMU,EAAEb,EAAEK,EAAEH,EAAEC,EAAMW,EAAEd,EAAEM,EAAE,EAAEH,EAAMY,EAAEd,EAAEI,EAAEH,EAAEE,EAAMY,EAAEf,EAAEK,EAAE,EAAEF,EAAMa,EAAEf,EAAEI,EAAE,EAAED,EAAMa,EAAEX,EAAEU,EAAET,EAAEQ,EAAEP,EAAEM,EAAEL,EAAEI,EAAE,EAAED,EAAEF,EAAEC,EAAE,OAAIM,GAAcA,EAAE,EAAEA,EAAE3B,EAAE,CAAC,GAAGM,EAAEoB,EAAEnB,EAAEkB,EAAEjB,EAAEgB,GAAGG,EAAE3B,EAAE,CAAC,GAAG,EAAEyB,EAAEtB,EAAEuB,EAAEtB,EAAEoB,GAAGG,EAAE3B,EAAE,CAAC,GAAGa,EAAEO,EAAEN,EAAE,EAAEC,EAAEI,GAAGQ,EAAE3B,EAAE,CAAC,GAAGW,EAAE,EAAED,EAAEU,EAAE,EAAED,GAAGQ,EAAE3B,EAAE,CAAC,GAAGO,EAAEgB,EAAElB,EAAEqB,EAAElB,EAAEc,GAAGK,EAAE3B,EAAE,CAAC,GAAGE,EAAEwB,EAAE,EAAEH,EAAEnB,EAAEkB,GAAGK,EAAE3B,EAAE,CAAC,GAAGc,EAAEI,EAAEN,EAAEQ,EAAEL,EAAEE,GAAGU,EAAE3B,EAAE,CAAC,GAAGS,EAAEW,EAAET,EAAEO,EAAE,EAAED,GAAGU,EAAE3B,EAAE,CAAC,GAAGK,EAAEoB,EAAEnB,EAAEiB,EAAEf,EAAEa,GAAGM,EAAE3B,EAAE,CAAC,GAAGG,EAAEoB,EAAErB,EAAEuB,EAAErB,EAAEiB,GAAGM,EAAE3B,EAAE,EAAE,GAAGY,EAAE,EAAEC,EAAEK,EAAEH,EAAEC,GAAGW,EAAE3B,EAAE,EAAE,GAAGU,EAAEQ,EAAET,EAAE,EAAE,EAAEO,GAAGW,EAAE3B,EAAE,EAAE,GAAGM,EAAEgB,EAAEjB,EAAEmB,EAAEjB,EAAEc,GAAGM,EAAE3B,EAAE,EAAE,GAAGE,EAAEsB,EAAErB,EAAEmB,EAAE,EAAED,GAAGM,EAAE3B,EAAE,EAAE,GAAGa,EAAEI,EAAEL,EAAEO,EAAEL,EAAEE,GAAGW,EAAE3B,EAAE,EAAE,GAAGS,EAAEU,EAAET,EAAEO,EAAEN,EAAEK,GAAGW,EAAS3B,GAAxW,IAAyW,CAMvtB,SAAS4B,GAAY5B,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAMI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAMQ,EAAER,EAAE,CAAC,EAAES,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEW,EAAEX,EAAE,EAAE,EAAM,EAAEA,EAAE,EAAE,EAAEY,EAAEZ,EAAE,EAAE,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAAEd,EAAE,EAAE,EAAMe,EAAEd,EAAEI,EAAEH,EAAEE,EAAMY,EAAEf,EAAEK,EAAEH,EAAEC,EAAMa,EAAEhB,EAAEM,EAAE,EAAEH,EAAMc,EAAEhB,EAAEI,EAAEH,EAAEE,EAAMc,EAAEjB,EAAEK,EAAE,EAAEF,EAAM,EAAEF,EAAEI,EAAE,EAAED,EAAMc,EAAEZ,EAAEI,EAAEH,EAAE,EAAMY,EAAEb,EAAEK,EAAEH,EAAE,EAAMY,EAAEd,EAAEM,EAAEH,EAAE,EAAMY,EAAEd,EAAEI,EAAEH,EAAEE,EAAMY,EAAEf,EAAEK,EAAEH,EAAEC,EAAMa,EAAEf,EAAEI,EAAEH,EAAEE,EAAE,OAAOE,EAAEU,EAAET,EAAEQ,EAAEP,EAAEM,EAAEL,EAAEI,EAAEH,EAAEE,EAAE,EAAED,CAAC,CAQpW,SAASS,GAAS7B,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAMK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAEQ,EAAER,EAAE,CAAC,EAAMS,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAEW,EAAEX,EAAE,EAAE,EAAMY,EAAEZ,EAAE,EAAE,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAAEd,EAAE,EAAE,EAAEe,EAAEf,EAAE,EAAE,EAAMgB,EAAEf,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,OAAAF,EAAE,CAAC,EAAEiB,EAAEd,EAAEe,EAAEZ,EAAEa,EAAET,EAAE,EAAEG,EAAEb,EAAE,CAAC,EAAEiB,EAAE,EAAEC,EAAEX,EAAEY,EAAER,EAAE,EAAEG,EAAEd,EAAE,CAAC,EAAEiB,EAAEb,EAAEc,EAAEV,EAAEW,EAAE,EAAE,EAAEJ,EAAEf,EAAE,CAAC,EAAEiB,EAAEZ,EAAEa,EAAET,EAAEU,EAAEP,EAAE,EAAEI,EAAEC,EAAEf,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEiB,EAAEd,EAAEe,EAAEZ,EAAEa,EAAET,EAAE,EAAEG,EAAEb,EAAE,CAAC,EAAEiB,EAAE,EAAEC,EAAEX,EAAEY,EAAER,EAAE,EAAEG,EAAEd,EAAE,CAAC,EAAEiB,EAAEb,EAAEc,EAAEV,EAAEW,EAAE,EAAE,EAAEJ,EAAEf,EAAE,CAAC,EAAEiB,EAAEZ,EAAEa,EAAET,EAAEU,EAAEP,EAAE,EAAEI,EAAEC,EAAEf,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEF,EAAE,CAAC,EAAEiB,EAAEd,EAAEe,EAAEZ,EAAEa,EAAET,EAAE,EAAEG,EAAEb,EAAE,CAAC,EAAEiB,EAAE,EAAEC,EAAEX,EAAEY,EAAER,EAAE,EAAEG,EAAEd,EAAE,EAAE,EAAEiB,EAAEb,EAAEc,EAAEV,EAAEW,EAAE,EAAE,EAAEJ,EAAEf,EAAE,EAAE,EAAEiB,EAAEZ,EAAEa,EAAET,EAAEU,EAAEP,EAAE,EAAEI,EAAEC,EAAEf,EAAE,EAAE,EAAEgB,EAAEhB,EAAE,EAAE,EAAEiB,EAAEjB,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEiB,EAAEd,EAAEe,EAAEZ,EAAEa,EAAET,EAAE,EAAEG,EAAEb,EAAE,EAAE,EAAEiB,EAAE,EAAEC,EAAEX,EAAEY,EAAER,EAAE,EAAEG,EAAEd,EAAE,EAAE,EAAEiB,EAAEb,EAAEc,EAAEV,EAAEW,EAAE,EAAE,EAAEJ,EAAEf,EAAE,EAAE,EAAEiB,EAAEZ,EAAEa,EAAET,EAAEU,EAAEP,EAAE,EAAEI,EAAShB,CAAC,CAQvnB,SAAS8B,GAAU9B,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAMG,EAAEC,EAAEC,EAAEC,EAAMC,EAAEC,EAAEC,EAAE,EAAMC,EAAEC,EAAEC,EAAEC,EAAE,OAAGd,IAAID,GAAGA,EAAE,EAAE,EAAEC,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAEG,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAEG,EAAEH,EAAE,EAAE,IAAOI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAEQ,EAAER,EAAE,CAAC,EAAES,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEY,EAAEZ,EAAE,CAAC,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAAEd,EAAE,EAAE,EAAED,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAEQ,EAAER,EAAE,CAAC,EAAES,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEY,EAAEZ,EAAE,CAAC,EAAEa,EAAEb,EAAE,EAAE,EAAEc,EAAEd,EAAE,EAAE,EAAEe,EAAEf,EAAE,EAAE,EAAEK,EAAEF,EAAEM,EAAE,EAAEG,EAAER,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEM,EAAEH,EAAEO,EAAE,EAAEG,EAAET,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEO,EAAEJ,EAAEQ,EAAE,EAAEG,EAAEV,EAAEH,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEQ,EAAEL,EAAE,EAAE,EAAEY,EAAEX,EAAEH,EAAE,EAAE,GAASD,CAAC,CAQ/f,SAAS+B,GAAM/B,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEE,EAAEH,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEE,EAAEH,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEE,EAAEH,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEE,EAAEH,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEG,EAAEJ,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEG,EAAEJ,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEG,EAAEJ,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEG,EAAEJ,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,EAASD,CAAC,CAS5P,SAASgC,GAAOhC,EAAEE,EAAEC,EAAE8B,EAAE,CAAC,IAAI7B,EAAE6B,EAAE,CAAC,EAAE5B,EAAE4B,EAAE,CAAC,EAAE3B,EAAE2B,EAAE,CAAC,EAAM,EAAE,KAAK,MAAM7B,EAAEC,EAAEC,CAAC,EAAME,EAAEC,EAAEC,EAAMC,EAAEuB,EAAEtB,EAAEC,EAAMC,EAAEC,EAAEC,EAAE,EAAME,EAAEC,EAAEgB,EAAEf,EAAMC,EAAEC,EAAEC,EAAMC,EAAEC,EAAEC,EAAMC,EAAES,EAAEC,EAAE,OAAG,KAAK,IAAI,CAAC,EAAEpC,GAAS,MAAK,EAAE,EAAE,EAAEG,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEE,EAAE,KAAK,IAAIL,CAAC,EAAEM,EAAE,KAAK,IAAIN,CAAC,EAAEO,EAAE,EAAED,EAAEE,EAAET,EAAE,CAAC,EAAEgC,EAAEhC,EAAE,CAAC,EAAEU,EAAEV,EAAE,CAAC,EAAEW,EAAEX,EAAE,CAAC,EAAEY,EAAEZ,EAAE,CAAC,EAAEa,EAAEb,EAAE,CAAC,EAAEc,EAAEd,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAEiC,EAAEjC,EAAE,EAAE,EAAEkB,EAAElB,EAAE,EAAE,EAAEmB,EAAEjB,EAAEA,EAAEM,EAAED,EAAEa,EAAEjB,EAAED,EAAEM,EAAEJ,EAAEE,EAAEe,EAAEjB,EAAEF,EAAEM,EAAEL,EAAEG,EAAEgB,EAAEpB,EAAEC,EAAEK,EAAEJ,EAAEE,EAAEiB,EAAEpB,EAAEA,EAAEK,EAAED,EAAEiB,EAAEpB,EAAED,EAAEK,EAAEN,EAAEI,EAAEmB,EAAEvB,EAAEE,EAAEI,EAAEL,EAAEG,EAAE4B,EAAE/B,EAAEC,EAAEI,EAAEN,EAAEI,EAAE6B,EAAE/B,EAAEA,EAAEI,EAAED,EAAET,EAAE,CAAC,EAAEW,EAAEU,EAAEP,EAAEQ,EAAEJ,EAAEK,EAAEvB,EAAE,CAAC,EAAEkC,EAAEb,EAAEN,EAAEO,EAAEH,EAAEI,EAAEvB,EAAE,CAAC,EAAEY,EAAES,EAAEL,EAAEM,EAAEa,EAAEZ,EAAEvB,EAAE,CAAC,EAAEa,EAAEQ,EAAE,EAAEC,EAAEF,EAAEG,EAAEvB,EAAE,CAAC,EAAEW,EAAEa,EAAEV,EAAEW,EAAEP,EAAEQ,EAAE1B,EAAE,CAAC,EAAEkC,EAAEV,EAAET,EAAEU,EAAEN,EAAEO,EAAE1B,EAAE,CAAC,EAAEY,EAAEY,EAAER,EAAES,EAAEU,EAAET,EAAE1B,EAAE,CAAC,EAAEa,EAAEW,EAAE,EAAEC,EAAEL,EAAEM,EAAE1B,EAAE,CAAC,EAAEW,EAAEgB,EAAEb,EAAEsB,EAAElB,EAAEmB,EAAErC,EAAE,CAAC,EAAEkC,EAAEP,EAAEZ,EAAEqB,EAAEjB,EAAEkB,EAAErC,EAAE,EAAE,EAAEY,EAAEe,EAAEX,EAAEoB,EAAED,EAAEE,EAAErC,EAAE,EAAE,EAAEa,EAAEc,EAAE,EAAES,EAAEhB,EAAEiB,EAAKnC,IAAIF,IAAGA,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEE,EAAE,EAAE,GAASF,EAAC,CAStrB,SAASsC,GAAetC,EAAEC,EAAE,CAAC,OAAAD,EAAE,CAAC,EAAEC,EAAE,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,EAAE,EAAED,EAAE,CAAC,EAAEC,EAAE,EAAE,EAASD,CAAC,CAUtE,SAASuC,GAAWvC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAM,EAAEA,EAAE,CAAC,EAAMG,EAAEH,EAAE,CAAC,EAAMI,EAAEJ,EAAE,CAAC,EAAMK,EAAEL,EAAE,CAAC,EAAMM,EAAEN,EAAE,CAAC,EAAMO,EAAEP,EAAE,CAAC,EAAMQ,EAAER,EAAE,EAAE,EAAE,OAAAD,EAAE,CAAC,EAAE,KAAK,MAAME,EAAEC,EAAE,CAAC,EAAEH,EAAE,CAAC,EAAE,KAAK,MAAMI,EAAEC,EAAEC,CAAC,EAAEN,EAAE,CAAC,EAAE,KAAK,MAAMO,EAAEC,EAAEC,CAAC,EAAST,CAAC,CAAC,SAASwC,GAAkBxC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAME,EAAEF,EAAE,CAAC,EAAMG,EAAEH,EAAE,CAAC,EAAM,EAAEA,EAAE,CAAC,EAAMI,EAAEJ,EAAE,CAAC,EAAMK,EAAEL,EAAE,CAAC,EAAMM,EAAEN,EAAE,CAAC,EAAMO,EAAEP,EAAE,CAAC,EAAMQ,EAAER,EAAE,EAAE,EAAQS,EAAER,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAQO,EAAE,EAAE,EAAEN,EAAEA,EAAEC,EAAEA,EAAQM,EAAEL,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAE,OAAO,KAAK,KAAK,KAAK,IAAIC,EAAEC,EAAEC,CAAC,CAAC,CAAC,CAS1a,IAAMT,GAAE,UAAU,CAAC,IAAMF,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAEH,EAAEuC,GAAWpC,EAAED,CAAC,EAAE,IAAI,EAAE,EAAEC,EAAE,CAAC,EAAMC,EAAE,EAAED,EAAE,CAAC,EAAME,EAAE,EAAEF,EAAE,CAAC,EAAMG,EAAEJ,EAAE,CAAC,EAAE,EAAMK,EAAEL,EAAE,CAAC,EAAEE,EAAMI,EAAEN,EAAE,CAAC,EAAEG,EAAMI,EAAEP,EAAE,CAAC,EAAE,EAAMQ,EAAER,EAAE,CAAC,EAAEE,EAAMO,EAAET,EAAE,CAAC,EAAEG,EAAM,EAAEH,EAAE,CAAC,EAAE,EAAMU,EAAEV,EAAE,CAAC,EAAEE,EAAMS,EAAEX,EAAE,EAAE,EAAEG,EAAMS,EAAER,EAAEI,EAAEG,EAAME,EAAE,EAAE,OAAGD,EAAE,GAAGC,EAAE,KAAK,KAAKD,EAAE,CAAC,EAAE,EAAEb,EAAE,CAAC,EAAE,IAAIc,EAAEd,EAAE,CAAC,GAAGU,EAAEC,GAAGG,EAAEd,EAAE,CAAC,GAAG,EAAEO,GAAGO,EAAEd,EAAE,CAAC,GAAGM,EAAEE,GAAGM,GAAUT,EAAEI,GAAGJ,EAAEO,GAAGE,EAAE,KAAK,KAAK,EAAET,EAAEI,EAAEG,CAAC,EAAE,EAAEZ,EAAE,CAAC,GAAGU,EAAEC,GAAGG,EAAEd,EAAE,CAAC,EAAE,IAAIc,EAAEd,EAAE,CAAC,GAAGM,EAAEE,GAAGM,EAAEd,EAAE,CAAC,GAAG,EAAEO,GAAGO,GAAUL,EAAEG,GAAGE,EAAE,KAAK,KAAK,EAAEL,EAAEJ,EAAEO,CAAC,EAAE,EAAEZ,EAAE,CAAC,GAAG,EAAEO,GAAGO,EAAEd,EAAE,CAAC,GAAGM,EAAEE,GAAGM,EAAEd,EAAE,CAAC,EAAE,IAAIc,EAAEd,EAAE,CAAC,GAAGU,EAAEC,GAAGG,IAAOA,EAAE,KAAK,KAAK,EAAEF,EAAEP,EAAEI,CAAC,EAAE,EAAET,EAAE,CAAC,GAAGM,EAAEE,GAAGM,EAAEd,EAAE,CAAC,GAAG,EAAEO,GAAGO,EAAEd,EAAE,CAAC,GAAGU,EAAEC,GAAGG,EAAEd,EAAE,CAAC,EAAE,IAAIc,GAASd,CAAC,CAAC,EAAE,EAcxlB,SAASwC,GAAU,EAAEtC,EAAE8B,EAAE7B,EAAE,CAAC,IAAIC,EAAEqC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAQpC,EAAEoC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAQnC,EAAEmC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAUd,GAAY,CAAC,EAAI,IAAIvB,EAAE,CAACA,GAAG4B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAMxB,EAAE,EAAE,MAAM,EAAQC,EAAE,EAAEL,EAAQM,EAAE,EAAEL,EAAQ4B,EAAE,EAAE3B,EAAEE,EAAE,CAAC,GAAGC,EAAED,EAAE,CAAC,GAAGC,EAAED,EAAE,CAAC,GAAGC,EAAED,EAAE,CAAC,GAAGE,EAAEF,EAAE,CAAC,GAAGE,EAAEF,EAAE,CAAC,GAAGE,EAAEF,EAAE,CAAC,GAAGyB,EAAEzB,EAAE,CAAC,GAAGyB,EAAEzB,EAAE,EAAE,GAAGyB,EAAEhC,GAAEC,EAAEM,CAAC,EAAEL,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAEG,CAAC,CAe7U,SAASoC,GAAQ3C,EAAEC,EAAEC,EAAEC,EAAE,CAAC,IAAM,EAAEH,EAAQI,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAEM,EAAEN,EAAE,CAAC,EAAQO,EAAEJ,EAAEA,EAAEK,EAAEJ,EAAEA,EAAEK,EAAEJ,EAAEA,EAAQK,EAAEP,EAAEI,EAAE,EAAEJ,EAAEK,EAAEG,EAAER,EAAEM,EAAQG,EAAER,EAAEI,EAAEK,EAAET,EAAEK,EAAEK,EAAET,EAAEI,EAAQM,EAAET,EAAEC,EAAES,EAAEV,EAAEE,EAAES,EAAEX,EAAEG,EAAQS,EAAEhB,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEiB,EAAEjB,EAAE,CAAC,EAAE,SAAE,CAAC,GAAG,GAAGU,EAAEE,IAAII,EAAE,EAAE,CAAC,GAAG,EAAED,GAAGC,EAAE,EAAE,CAAC,GAAGP,EAAEK,GAAGE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAED,GAAG,EAAE,EAAE,CAAC,GAAG,GAAGP,EAAEI,IAAI,EAAE,EAAE,CAAC,GAAGD,EAAEE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAGJ,EAAEK,GAAGG,EAAE,EAAE,CAAC,GAAGN,EAAEE,GAAGI,EAAE,EAAE,EAAE,GAAG,GAAGT,EAAEE,IAAIO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAElB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAS,CAAC,CAyB1Y,SAAS0C,GAASC,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAMI,EAAEH,EAAEA,EAAMI,EAAEH,EAAEA,EAAMI,EAAE,EAAE,EAAMC,EAAEN,EAAEG,EAAMI,EAAEN,EAAEE,EAAMK,EAAEP,EAAEG,EAAMK,EAAE,EAAEN,EAAM,EAAE,EAAEC,EAAMM,EAAE,EAAEL,EAAMM,EAAET,EAAEC,EAAMS,EAAEV,EAAEE,EAAMS,EAAEX,EAAEG,EAAE,OAAAP,EAAE,CAAC,EAAE,EAAEU,EAAEE,EAAEZ,EAAE,CAAC,EAAES,EAAEM,EAAEf,EAAE,CAAC,EAAEW,EAAEG,EAAEd,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAES,EAAEM,EAAEf,EAAE,CAAC,EAAE,EAAEQ,EAAEI,EAAEZ,EAAE,CAAC,EAAE,EAAEa,EAAEb,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEW,EAAEG,EAAEd,EAAE,CAAC,EAAE,EAAEa,EAAEb,EAAE,EAAE,EAAE,EAAEQ,EAAEE,EAAEV,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAASA,CAAC,CAUrU,SAASgB,GAAYhB,EAAEC,EAAEC,EAAEC,EAAE,EAAE,CAAC,IAAIC,EAAE,EAAE,KAAK,IAAIH,EAAE,CAAC,EAAMI,EAAE,GAAGF,EAAE,GAAG,OAAAH,EAAE,CAAC,EAAEI,EAAEF,EAAEF,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,GAAG,EAAEG,GAAGE,EAAEL,EAAE,EAAE,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAE,EAAEG,EAAEE,EAAEL,EAAE,EAAE,EAAE,EAASA,CAAC,CAYjN,SAASiB,GAAMjB,EAAEC,EAAEC,EAAEC,EAAE,EAAEC,EAAEC,EAAE,CAAC,IAAIC,EAAE,GAAGL,EAAEC,GAAOK,EAAE,GAAGJ,EAAE,GAAOK,EAAE,GAAGJ,EAAEC,GAAG,OAAAL,EAAE,CAAC,EAAE,GAAGM,EAAEN,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,GAAGO,EAAEP,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEQ,EAAER,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,GAAGC,EAAEC,GAAGI,EAAEN,EAAE,EAAE,GAAG,EAAEG,GAAGI,EAAEP,EAAE,EAAE,GAAGK,EAAED,GAAGI,EAAER,EAAE,EAAE,EAAE,EAASA,CAAC,CAShO,SAASkB,GAASlB,EAAEC,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAEF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEH,EAAE,CAAC,EAAEI,EAAEJ,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,EAAMM,EAAE,EAAEP,EAAE,CAAC,EAAEQ,EAAEN,EAAEF,EAAE,CAAC,EAAES,EAAEN,EAAEH,EAAE,CAAC,EAAM,EAAEO,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAK,IAAI,EAAEA,EAAE,GAAO,EAAE,EAAE,KAAK,KAAK,CAAC,EAAEF,GAAG,EAAEC,GAAG,EAAEC,GAAG,GAAE,IAAIC,EAAEL,EAAEI,EAAEH,EAAEE,EAAEG,EAAEL,EAAEC,EAAEH,EAAEK,EAAEG,EAAER,EAAEI,EAAEH,EAAEE,EAAE,SAAEG,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,EAAK,IAAI,IAAGN,EAAEF,GAAG,KAAKC,EAAEC,GAAG,KAAKD,GAAG,KAAKK,EAAEL,EAAEI,EAAEH,EAAEE,EAAEG,EAAEL,EAAEC,EAAEH,EAAEK,EAAEG,EAAER,EAAEI,EAAEH,EAAEE,EAAE,EAAEG,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,GAAE,EAAE,EAAE,KAAK,KAAK,CAAC,EAAEF,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEd,EAAE,CAAC,EAAEY,EAAEZ,EAAE,CAAC,EAAEa,EAAEb,EAAE,CAAC,EAAEc,EAAEd,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEU,EAAEI,EAAEH,EAAEE,EAAEb,EAAE,CAAC,EAAEW,EAAEC,EAAEH,EAAEK,EAAEd,EAAE,CAAC,EAAES,EAAEI,EAAEH,EAAEE,EAAEZ,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAES,EAAET,EAAE,CAAC,EAAEU,EAAEV,EAAE,EAAE,EAAEW,EAAEX,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAE,EAAEA,EAAE,EAAE,EAAEI,EAAEJ,EAAE,EAAE,EAAEK,EAAEL,EAAE,EAAE,EAAE,EAASA,CAAC,CAQ9d,SAASmB,GAAInB,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAASF,CAAC,CAQ9R,SAASoB,GAASpB,EAAEC,EAAEC,EAAE,CAAC,OAAAF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAE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",
  "names": ["t", "i", "s", "Animate", "e", "o", "r", "l", "Dimensions", "n", "window", "Emitter", "VirtualScroll", "Lenis", "a", "d", "p", "u", "m", "v", "g", "S", "w", "h", "c", "SmoothScroll", "props", "intensity", "lenis", "pe", "ue", "overlayElement", "handleMutation", "mutationsList", "observer", "mutation", "htmlElement", "window", "config", "Lenis", "raf", "time", "p", "l", "addPropertyControls", "ControlType", "length", "t", "e", "n", "r", "copy", "set", "add", "subtract", "multiply", "divide", "scale", "distance", "u", "squaredDistance", "squaredLength", "negate", "inverse", "normalize", "l", "dot", "cross", "c", "lerp", "transformMat4", "scaleRotateMat4", "transformMat3", "transformQuat", "i", "s", "f", "d", "m", "M", "h", "p", "exactEquals", "Vec3", "_Vec3", "s", "i", "r", "set", "copy", "add", "subtract", "multiply", "scale", "divide", "inverse", "length", "distance", "squaredLength", "squaredDistance", "negate", "cross", "normalize", "dot", "exactEquals", "transformMat3", "transformMat4", "scaleRotateMat4", "transformQuat", "t", "lerp", "e", "Vec3", "s", "i", "r", "Geometry", "t", "n", "a", "d", "e", "t", "Program", "r", "n", "i", "a", "h", "o", "g", "addLineNumbers", "s", "warn", "setUniform", "flatten", "arraysEqual", "setArray", "e", "Vec3", "s", "Renderer", "i", "a", "n", "h", "l", "d", "o", "c", "g", "t", "r", "copy", "t", "e", "set", "n", "r", "l", "scale", "t", "e", "n", "normalize", "t", "e", "n", "r", "l", "u", "dot", "identity", "t", "setAxisAngle", "e", "n", "multiply", "l", "o", "r", "i", "c", "u", "rotateX", "rotateY", "rotateZ", "slerp", "f", "M", "h", "m", "X", "Y", "invert", "conjugate", "fromMat3", "fromEuler", "copy", "set", "M", "dot", "X", "normalize", "Quat", "e", "r", "h", "s", "t", "identity", "c", "rotateX", "rotateY", "rotateZ", "invert", "conjugate", "i", "X", "multiply", "M", "fromMat3", "fromEuler", "setAxisAngle", "slerp", "e", "copy", "t", "set", "l", "n", "o", "c", "i", "a", "s", "u", "f", "h", "m", "M", "g", "identity", "invert", "t", "e", "l", "n", "o", "c", "i", "a", "s", "u", "f", "h", "m", "M", "g", "y", "d", "S", "q", "x", "v", "b", "A", "O", "Q", "R", "j", "F", "determinant", "multiply", "translate", "scale", "rotate", "r", "p", "T", "V", "k", "getTranslation", "getScaling", "getMaxScaleOnAxis", "decompose", "length", "compose", "fromQuat", "t", "e", "l", "n", "o", "c", "i", "a", "s", "u", "f", "h", "m", "M", "g", "y", "perspective", "ortho", "targetTo", "add", "subtract", "multiplyScalar", "Mat4", "s", "i", "h", "r", "e", "n", "u", "o", "a", "c", "f", "g", "l", "m", "p", "y", "set", "translate", "rotate", "scale", "add", "subtract", "multiply", "multiplyScalar", "identity", "copy", "perspective", "ortho", "fromQuat", "invert", "compose", "decompose", "getTranslation", "getScaling", "getMaxScaleOnAxis", "targetTo", "determinant", "fromRotationMatrix", "a", "M", "e", "Mat4", "Euler", "r", "s", "i", "t", "fromRotationMatrix", "Transform", "Mat4", "Vec3", "Quat", "Euler", "r", "fromMat4", "t", "e", "fromQuat", "n", "l", "u", "i", "a", "c", "f", "s", "y", "M", "b", "copy", "set", "identity", "invert", "t", "e", "n", "l", "u", "i", "a", "c", "f", "s", "multiply", "t", "e", "n", "l", "u", "i", "a", "c", "f", "s", "y", "M", "b", "h", "j", "v", "translate", "rotate", "scale", "normalFromMat4", "F", "Q", "S", "x", "g", "k", "q", "w", "A", "Mat3", "r", "i", "h", "e", "n", "u", "a", "s", "o", "set", "translate", "rotate", "scale", "multiply", "identity", "copy", "fromMat4", "fromQuat", "invert", "normalFromMat4", "i", "Mesh", "Transform", "r", "a", "o", "m", "l", "Mat4", "Mat3", "t", "t", "isPowerOf2", "i", "Texture", "e", "h", "a", "l", "r", "g", "n", "m", "p", "E", "T", "o", "_", "A", "f", "R", "U", "copy", "t", "n", "set", "r", "add", "subtract", "multiply", "divide", "scale", "distance", "e", "squaredDistance", "length", "squaredLength", "negate", "inverse", "normalize", "u", "dot", "cross", "lerp", "a", "transformMat3", "t", "n", "r", "e", "u", "transformMat4", "exactEquals", "Vec2", "_Vec2", "s", "set", "copy", "add", "subtract", "multiply", "scale", "divide", "inverse", "length", "distance", "squaredDistance", "squaredLength", "negate", "cross", "normalize", "dot", "exactEquals", "transformMat3", "transformMat4", "lerp", "Vec4", "s", "r", "i", "e", "set", "copy", "normalize", "scale", "dot", "RenderTarget", "r", "i", "h", "s", "f", "l", "g", "E", "u", "d", "T", "n", "a", "R", "p", "N", "F", "Texture", "e", "t", "Triangle", "Geometry", "e", "Flowmap", "a", "m", "u", "l", "c", "p", "f", "t", "createFBOs", "Vec2", "initProgram", "e", "r", "RenderTarget", "Mesh", "Triangle", "Program", "s", "i", "e", "Mat4", "i", "Vec3", "o", "n", "Vec3", "s", "Vec2", "o", "i", "Vec2", "r", "s", "e", "Vec3", "c", "a", "l", "d", "h", "u", "m", "y", "f", "p", "x", "Mat4", "s", "i", "e", "n", "Vec3", "o", "c", "r", "getCtrlPoint", "t", "getQuadraticBezierPoint", "u", "p", "getCubicBezierPoint", "h", "l", "Curve", "_Curve", "r", "Vec3", "s", "Vec3", "n", "Vec3", "a", "Vec3", "c", "Mat4", "i", "Vec3", "a", "n", "Vec2", "r", "s", "Vec3", "n", "Quat", "r", "a", "i", "e", "i", "Mat4", "s", "Vec3", "n", "Vec3", "i", "s", "r", "o", "Quat", "a", "c", "m", "s", "Mat4", "i", "e", "Vec3", "i", "s", "m", "c"]
}
