{"version":3,"file":"shared.HSgYYif6.mjs","names":["Icon","Component","Icon","useRef","iconKeys","lowercaseIconKeyPairs","useState","HouseFactory","React","moduleBaseUrl","RenderTarget","weightOptions","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","clamp","DEG2RAD","Mesh","Controls","EventDispatcher","Loader","_geometry","_sphere","_v2","_camera","t","o","r","e","i","n","y","u","t","t.default","i","a","a.default","o","global","s","y","S","x","z","N","E","C","I","_","L","T","R","F","D","H","W","j","$","J","K","G","X","le","t","e","r","o","n","i","a","s","l","u","f","h","y","H","C","S","P","g","I","R","W","A","N","U","j","v","D","F","E","useReducer","useRef","k","G","t","r","K","L","M","exports2","R","D","__cjs_default__","global","__export1","Reconciler","DefaultEventPriority","React.useRef","isOrthographicCamera","DiscreteEventPriority","ContinuousEventPriority","i","React.useContext","ConcurrentRoot","j","T","p","M2","W","u2","React2.useContext","React2.useId","React2.useMemo","React2.useState","useEffect","useLayoutEffect","__export4","exports","module","module2","q","B","F","N","exports3","module3","isRef","React.useLayoutEffect","React.useEffect","React.Component","React.version","_a","React2.useLayoutEffect","React2.useEffect","React2.createContext","React2.Component","React3.useRef","React3.useState","React3.Suspense","Canvas","Pass","_camera","_geometry","FullScreenQuad","Mesh","Pass","Pass","FullScreenQuad","_camera","_geometry","Pass","Mesh","EventDispatcher","useMemo","Fragment","useRef","clamp","bufferGeometry","Fragment","Fragment","Suspense","Fragment","useMemo","ShaderGradient","Fragment","ShaderGradient","m.ShaderGradientCanvas","m.FramerShaderGradient","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","animation","animation1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.forwardRef","React.useRef","React.useId","e","e","t","n","n","r","s","e","r","t","A","O","t","x","V","b","RenderTarget","Children","useRef","useMemo","useState","useCallback","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","addPropertyOverrides","PhosphorFonts","Phosphor","PhosphorControls","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","addPropertyOverrides","PhosphorFonts","Phosphor","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","transition2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","css","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","fonts","css","className","fonts","css","className","addPropertyOverrides","PhosphorFonts","Phosphor","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","transition2","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","css","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","NavigationNavLinkFonts","NavigationNavLink","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","SVG","css","sharedStyle.css","sharedStyle.fonts","mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","getProps","Icon","React.forwardRef","Icon","useRef","iconKeys","lowercaseIconKeyPairs","useState","HouseFactory","React","moduleBaseUrl","RenderTarget","addPropertyOverrides","Phosphor","Phosphor1","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","addPropertyOverrides","TerciaryCTAFonts","TerciaryCTA","DropdownLinksFonts","DropdownLinks","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","SVG","Image1","useState","HomeFactory","React","RenderTarget","addPropertyOverrides","Feather","LinksDropdownFonts","LinksDropdown","cycleOrder","serializationHash","variantClassNames","transition1","transition2","matchVariant","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","css","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","Logo","HamburgerButton","LinksDropdown","NavLinkDropdown","NavigationNavLink","Warehouse","DropdownLinks","CurrencyCircleDollar","NewspaperClipping","CodeBlock","UsersThree","TerciaryCTA","ButtonsButtonFonts","ButtonsButton","cycleOrder","serializationHash","variantClassNames","transition1","transition2","matchVariant","animation","animation1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","React.useRef","_Fragment","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","addPropertyOverrides","TickerFonts","cycleOrder","serializationHash","variantClassNames","animation","animation1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","Image","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","Image1","BadgeOverline","ButtonsButton","FlowAnimation","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","sharedStyle.className","sharedStyle1.className","css","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","TickerImages","fonts","css","className","__esmMin","init_npm_react_18_3_1","ue","ce$1","fe","npm_react_18_3_1_exports","global$2","x$2","oe$1","window","init_ssg_sandbox_shims","pe$1","le$2","ne$1","e$4","ye","ve","z$2","J$2","Y","init_npm_scheduler_0_23_2","init_jsx_runtime","l$2","I$3","H$3","j$4","ie","npm_scheduler_0_23_2_exports","B$2","p$1","navigator","e$5","c$1","de$1","_e$1","L$3","te","motion","useMotionValue","useReducedMotion","useTransform","LayoutGroupContext","AnimatePresence","MotionConfigContext","LayoutGroup","init_framer_motion_DhsWWWsN","frame","useInView","addFonts","useSVGTemplate","useLocaleInfo","RichText","ResolveLinks","useOverlayState","fontStore","withFX","getLoadingLazyAtYPosition","getFonts","forwardLoader","withOptimizedAppearEffect","getPropertyControls","useVariantState","withCSS","SVG$5","cx","getFontsFromSharedStyle","init_framer_B1b760uK","ControlType","runTasksWithYield","Floating","useConstant","addPropertyControls","SmartComponentScopedContainer","useRouter","Image$1","useComponentViewport","ComponentViewportProvider","useActiveVariantCallback","Link","RenderTarget$1","init_icon_nullstate_js_0_7","defaultEvents","init_utils","className$13","fonts$14","init_BrIjiAV4e","init_snYwGQueu","FramersnYwGQueu","css$22","NullState","useIconSelection","init_nS1OnCtLi","init_o77HbpIl9","FramernS1OnCtLi","className$14","css$21","fonts$13","Component$8","IconInner","Icon$8","House_default","init_House","React","props","Icon$7","isMounted","iconKey","iconKeys$2","selectByList","iconSearch","iconSelection","lowercaseIconKeyPairs$2","SelectedIcon","setSelectedIcon","importModule","module","moduleBaseUrl$2","emptyState","color","mirrored","weightOptions$1","init_Phosphor","key","res","piece","__defProp$1","__defProps$1","__getOwnPropDescs$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__pow","__defNormalProp$1","__spreadValues","__spreadProps","__objRest","__export","__async","init_chunk_5BEQP2BQ","obj","value","prop","b","a","target","source","exclude","name","all","fulfilled","step","generator","reject","rejected","x","resolve","__this","__arguments","generateUUID","d0","d1","d2","d3","_lut","clamp$2","min","max","euclideanModulo","n","m","mapLinear","b1","a1","b2","a2","inverseLerp","y","lerp","t","damp","lambda","dt","pingpong","length","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","range","seededRandom","s","degToRad","degrees","DEG2RAD$1","radToDeg","radians","RAD2DEG","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","setQuaternionFromProperEuler","cos","sin","c2","s2","c13","c","s13","c1_3","s1_3","c3_1","s3_1","order","q","denormalize","array","normalize","arrayNeedsUint32","i","getTypedArray","TYPED_ARRAYS","type","buffer","createElementNS","createCanvasElement","canvas","warnOnce","message","_cache","probeAsync","probe","gl","sync","interval","toNormalizedProjectionMatrix","projectionMatrix","toReversedProjectionMatrix","SRGBToLinear","LinearToSRGB","serializeImage","image","ImageUtils","satForAxes","j","axes","_testAxis","r","extents","p0","v0","p1","v1","p2","v2","hue2rgb","p","_generateTables","floatView","uint32View","baseTable","shiftTable","e","mantissaTable","exponentTable","offsetTable","toHalfFloat","val","f","_tables","fromHalfFloat","checkIntersection$1","intersect2","material","BackSide","ray","pC","pB","pA","point","FrontSide","_intersectionPointWorld","object","distance","raycaster","checkGeometryIntersection","_vA$1","_vB$1","_vC$1","intersection","_intersectionPoint","barycoord","Vector3","Triangle","uv","Vector2","uv1","normal","face","cloneUniforms","dst","u","src","property","mergeUniforms","merged","uniforms","tmp2","cloneUniformsGroups","getUnlitUniformColorSpace","currentRenderTarget","renderer","ColorManagement","WebGLAnimation","context","isAnimating","animationLoop","requestId","onAnimationFrame","time","callback","WebGLAttributes","buffers","createBuffer","attribute","usage","size","bufferType","updateBuffer","updateRanges","mergeIndex","previousRange","l","get","remove","data","update","cached","WebGLBackground","clearColor","Color","clearAlpha","alpha","planeMesh","boxMesh","currentBackground","currentBackgroundVersion","currentTonemapping","getBackground","background","scene","cubeuvmaps","cubemaps","render","forceClear","setClear","environmentBlendMode","state","premultipliedAlpha","addToRenderList","CubeUVReflectionMapping","Mesh$1","BoxGeometry","ShaderMaterial","ShaderLib","camera","objects","_e1$1","_m1$1","SRGBTransfer","renderList","PlaneGeometry","_rgb","alpha2","WebGLBindingStates","maxVertexAttributes","bindingStates","defaultState","createBindingState","currentState","forceUpdate","setup","updateBuffers","getBindingState","geometry","program","bindVertexArrayObject","needsUpdate","index","saveCache","attributes","setupVertexAttributes","createVertexArrayObject","vao","deleteVertexArrayObject","wireframe","programMap","stateMap","newAttributes","enabledAttributes","attributeDivisors","cachedAttributes","geometryAttributes","attributesNum","programAttributes","cachedAttribute","geometryAttribute","cache","attributes2","initAttributes","il","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","disableUnusedAttributes","vertexAttribPointer","integer","stride","offset","normalized","materialDefaultAttributeValues","programAttribute","bytesPerElement","IntType","dispose","reset","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","resetDefaultState","WebGLBufferRenderer","mode","setMode","start","count","info","renderInstances","primcount","renderMultiDraw","drawCount","extensions","starts","counts","elementCount","renderMultiDrawInstances","extension","WebGLCapabilities","maxAnisotropy","getMaxAnisotropy","textureFormatReadable","textureFormat","utils","textureTypeReadable","halfFloatSupportedByExt","textureType","getMaxPrecision","precision2","precision","parameters","maxPrecision","logarithmicDepthBuffer","reverseDepthBuffer","ext","maxTextures","maxVertexTextures","maxTextureSize","maxCubemapSize","maxAttributes","maxVertexUniforms","maxVaryings","maxFragmentUniforms","vertexTextures","maxSamples","WebGLClipping","scope","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","plane","Plane","viewNormalMatrix","Matrix3","uniform","enabled","planes","enableLocalClipping","projectPlanes","clipIntersection","clipShadows","materialProperties","properties","resetGlobalState","nGlobal","lGlobal","dstArray","useCache","nPlanes","skipTransform","flatSize","dstOffset","viewMatrix","i4","WebGLCubeMaps","mapTextureMapping","mapping","CubeReflectionMapping","EquirectangularRefractionMapping","CubeRefractionMapping","texture","cubemap","renderTarget","WebGLCubeRenderTarget","onTextureDispose","event","_createPlanes","lodPlanes","sizeLods","sigmas","lod","lodMax","totalLods","LOD_MIN","EXTRA_LOD_SIGMA","sizeLod","sigma","texelSize","position","faceIndex","coordinates","fill2","BufferGeometry","BufferAttribute","_createRenderTarget","cubeUVRenderTarget","WebGLRenderTarget","width","height","params","_setViewport","_getBlurShader","weights","MAX_SAMPLES","poleAxis","\"n\"","\"CUBEUV_TEXEL_WIDTH\"","\"CUBEUV_TEXEL_HEIGHT\"","\"CUBEUV_MAX_MIP\"","\"envMap\"","\"samples\"","\"weights\"","\"latitudinal\"","\"dTheta\"","\"mipInt\"","\"poleAxis\"","_getCommonVertexShader","NoBlending","_getEquirectMaterial","_getCubemapMaterial","\"flipEnvMap\"","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","isEquirectMap","isCubeMap","currentPMREMVersion","PMREMGenerator","isCubeTextureComplete","cubemapUV","WebGLExtensions","getExtension","WebGLGeometries","geometries","wireframeAttributes","onGeometryDispose","morphAttributes","updateWireframeAttribute","indices","geometryIndex","geometryPosition","version","Uint32BufferAttribute","Uint16BufferAttribute","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","setIndex","WebGLInfo","memory","instanceCount","WebGLMorphtargets","morphTextures","morph","Vector4","objectInfluences","morphAttribute","morphTargetsCount","entry","disposeTexture","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","capabilities","DataArrayTexture","FloatType","vertexDataStride","morphTarget","morphNormal","morphColor","textures","morphInfluencesSum","morphBaseInfluence","WebGLObjects","updateMap","buffergeometry","onInstancedMeshDispose","skeleton","instancedMesh","flatten","firstElem","nBlocks","blockSize","arrayCacheF32","arraysEqual","copyArray","allocTexUnits","arrayCacheI32","setValueV1f","v","setValueV2f","setValueV3f","setValueV4f","setValueM2","elements","mat2array","setValueM3","mat3array","setValueM4","mat4array","setValueV1i","setValueV2i","setValueV3i","setValueV4i","setValueV1ui","setValueV2ui","setValueV3ui","setValueV4ui","setValueT1","unit","emptyTexture2D","LessEqualCompare","emptyShadowTexture","emptyTexture","setValueT3D1","empty3dTexture","setValueT6","emptyCubeTexture","setValueT2DArray1","emptyArrayTexture","getSingularSetter","setValueV1fArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","getPureArraySetter","addUniform","container","uniformObject","parseUniform","path","activeInfo","pathLength","match","RePathPart","matchEnd","id","idIsIndex","subscript","SingleUniform","addr","PureArrayUniform","next","StructuredUniform","WebGLShader","shader","string","handleSource","lines","lines2","from","errorLine","to","line","getEncodingComponents","workingPrimaries","encodingPrimaries","colorSpace","gamutMapping","P3Primaries","Rec709Primaries","LinearSRGBColorSpace","LinearDisplayP3ColorSpace","SRGBColorSpace","DisplayP3ColorSpace","getShaderErrors","status","errors","errorMatches","getTexelEncodingFunction","components","functionName","getToneMappingFunction","toneMappingName","toneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","AgXToneMapping","NeutralToneMapping","CustomToneMapping","getLuminanceFunction","_v0$1","generateVertexExtensions","filterEmptyLine","generateDefines","chunks","defines","fetchAttributeLocations","locationSize","replaceLightNums","numSpotLightCoords","replaceClippingPlaneNums","resolveIncludes","includePattern","includeReplacer","ShaderChunk","include","newInclude","shaderChunkMap","unrollLoops","unrollLoopPattern","loopReplacer","end","snippet","generatePrecision","precisionstring","generateShadowMapTypeDefine","shadowMapTypeDefine","generateEnvMapTypeDefine","envMapTypeDefine","generateEnvMapModeDefine","envMapModeDefine","generateEnvMapBlendingDefine","envMapBlendingDefine","MultiplyOperation","MixOperation","AddOperation","generateCubeUVSize","imageHeight","maxMip","texelHeight","WebGLProgram","vertexShader","fragmentShader","envMapCubeUVSize","customVertexExtensions","customDefines","prefixVertex","prefixFragment","versionString","\"tonemapping_pars_fragment\"","\"colorspace_pars_fragment\"","GLSL3","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","onFirstUse","programLog","vertexLog","fragmentLog","runnable","haveDiagnostics","vertexErrors","fragmentErrors","self2","WebGLUniforms","cachedUniforms","programReady","COMPLETION_STATUS_KHR","cacheKey","WebGLPrograms","_programLayers","Layers","_customShaders","WebGLShaderCache","_activeChannels","programs","SUPPORTS_VERTEX_TEXTURES","shaderIDs","getChannel","getParameters","fog","environment","envMap","envMapCubeUVHeight","shaderID","morphTextureStride","customVertexShaderID","customFragmentShaderID","IS_INSTANCEDMESH","IS_BATCHEDMESH","HAS_MAP","HAS_MATCAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_ANISOTROPY","HAS_CLEARCOAT","HAS_DISPERSION","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_ANISOTROPYMAP","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_GRADIENTMAP","HAS_ALPHAMAP","HAS_ALPHATEST","HAS_ALPHAHASH","HAS_EXTENSIONS","ObjectSpaceNormalMap","TangentSpaceNormalMap","NormalBlending","lights","clipping","shadows","getProgramCacheKey","getProgramCacheKeyParameters","getProgramCacheKeyBooleans","getUniforms","UniformsUtils","acquireProgram","pl","preexistingProgram","releaseProgram","releaseShaderCache","WebGLProperties","has","map","painterSortStable","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","opaque","transmissive","transparent","init","getNextRenderItem","renderItem","groupOrder","z","group","push","unshift","sort","customOpaqueSort","customTransparentSort","finish","WebGLRenderLists","lists","listArray","list","renderCallDepth","UniformsCache","light","ShadowUniformsCache","shadowCastingAndTexturingLightsFirst","lightB","lightA","WebGLLights","shadowCache","vector3","matrix4","Matrix4","matrix42","g","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","numSpotShadowsWithMaps","numLightProbes","intensity","shadowMap","shadow","shadowUniforms","UniformsLib","hash","setupView","WebGLRenderState","lightsArray","shadowsArray","pushLight","pushShadow","shadowLight","setupLights","setupLightsView","WebGLRenderStates","renderStates","renderStateArray","renderState","WebGLShadowMap","_frustum2","Frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","MeshDepthMaterial","RGBADepthPacking","_distanceMaterial","MeshDistanceMaterial","_materialCache","_maxTextureSize","shadowSide","shadowMaterialVertical","vertex","fragment","shadowMaterialHorizontal","fullScreenTri","fullScreenMesh","_previousType","activeCubeFace","activeMipmapLevel","_state","toVSM","fromVSM","shadowFrameExtents","pars","NearestFilter","viewportCount","vp","viewport","renderObject","VSMPass","getDepthMaterial","result","customMaterial","keyA","keyB","materialsForVariant","cachedMaterial","onMaterialDispose","shadowCamera","groups","k","kl","groupMaterial","depthMaterial","children","uuid","WebGLState","ColorBuffer","locked","currentColorMask","currentColorClear","colorMask","lock","DepthBuffer","reversed","currentDepthMask","currentDepthFunc","currentDepthClear","depthTest","enable","disable","depthMask","reversedFuncs","depthFunc","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","depth","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","stencilMask","stencilFunc","stencilRef","stencilFail","stencilZFail","stencilZPass","stencil","colorBuffer","depthBuffer","stencilBuffer","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentBlendColor","currentBlendAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","lineWidthAvailable","glVersion","currentTextureSlot","currentBoundTextures","scissorParam","viewportParam","currentScissor","currentViewport","createTexture","dimensions","emptyTextures","setFlipSided","setCullFace","CullFaceBack","setBlending","bindFramebuffer","framebuffer","drawBuffers","drawBuffers2","useProgram","equationToGL","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","factorToGL","ZeroFactor","OneFactor","SrcColorFactor","SrcAlphaFactor","SrcAlphaSaturateFactor","DstColorFactor","DstAlphaFactor","OneMinusSrcColorFactor","OneMinusSrcAlphaFactor","OneMinusDstColorFactor","OneMinusDstAlphaFactor","ConstantColorFactor","OneMinusConstantColorFactor","ConstantAlphaFactor","OneMinusConstantAlphaFactor","blending","CustomBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","blendEquation","blendSrc","blendDst","blendEquationAlpha","blendSrcAlpha","blendDstAlpha","blendColor","blendAlpha","setMaterial","flipSided","frontFaceCW","stencilWrite","setPolygonOffset","cullFace","CullFaceNone","CullFaceFront","setLineWidth","polygonOffset","factor","setScissorTest","scissorTest","activeTexture","webglSlot","bindTexture","boundTexture","webglType","webglTexture","unbindTexture","compressedTexImage2D","error","compressedTexImage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","texStorage2D","texStorage3D","texImage2D","texImage3D","scissor","scissor2","viewport2","updateUBOMapping","blockIndex","uniformsGroup","uniformBlockBinding","contain","imageAspect","aspect2","cover","fill","getByteLength","typeByteLength","getTextureTypeByteLength","format","AlphaFormat","LuminanceFormat","LuminanceAlphaFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBFormat","RGBAFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_PVRTC_4BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","RGB_BPTC_SIGNED_Format","RGB_BPTC_UNSIGNED_Format","RED_RGTC1_Format","SIGNED_RED_RGTC1_Format","RED_GREEN_RGTC2_Format","SIGNED_RED_GREEN_RGTC2_Format","UnsignedByteType","ByteType","UnsignedShortType","ShortType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedIntType","UnsignedInt5999Type","WebGLTextures","multisampledRTTExt","supportsInvalidateFramebuffer","_imageDimensions","_videoTextures","_canvas2","_sources","useOffscreenCanvas","createCanvas","resizeImage","scale","getDimensions","maxSize","needsNewCanvas","textureNeedsGenerateMipmaps","generateMipmap","_gl","getInternalFormat","internalFormatName","internalFormat","glFormat","glType","transfer","forceLinearTransfer","LinearTransfer","getInternalDepthFormat","glInternalFormat","useStencil","depthType","UnsignedInt248Type","getMipLevels","deallocateTexture","onRenderTargetDispose","deallocateRenderTarget","textureProperties","webglTextures","deleteTexture","renderTargetProperties","level","attachmentProperties","textureUnits","resetTextureUnits","allocateTextureUnit","textureUnit","getTextureCacheKey","setTexture2D","updateVideoTexture","uploadTexture","slot","setTexture2DArray","setTexture3D","setTextureCube","uploadCubeTexture","wrappingToGL","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","filterToGL","NearestMipmapNearestFilter","NearestMipmapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipmapLinearFilter","compareToGL","NeverCompare","AlwaysCompare","LessCompare","EqualCompare","GreaterEqualCompare","GreaterCompare","NotEqualCompare","setTextureParameters","initTexture","forceUpload","textureCacheKey","sourceProperties","texturePrimaries","NoColorSpace","unpackConversion","verifyColorSpace","mipmap","mipmaps","useTexStorage","allocateMemory","dataReady","levels","DepthStencilFormat","layerByteLength","layerIndex","layerData","isCompressed","isDataTexture","cubeImage","mipmapImage","setupFrameBufferTexture","textureTarget","useMultisampledRTT","attachment","getRenderTargetSamples","setupRenderBufferStorage","renderbuffer","depthTexture","glAttachmentType","samples","isMultisample","setupDepthTexture","webglDepthTexture","DepthFormat","setupDepthRenderbuffer","isCube","disposeEvent","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","texture2","glTextureType","updateRenderTargetMipmap","invalidationArrayRead","invalidationArrayDraw","updateMultisampleRenderTarget","mask","depthStyle","WebGLUtils","convert","WebGLMaterials","refreshTransformUniform","refreshFogUniforms","refreshMaterialUniforms","refreshUniformsCommon","refreshUniformsToon","refreshUniformsPhong","refreshUniformsStandard","refreshUniformsPhysical","transmissionRenderTarget","refreshUniformsMatcap","refreshUniformsDistance","refreshUniformsLine","refreshUniformsDash","refreshUniformsPoints","pixelRatio","refreshUniformsSprites","envMapRotation","_e1","_m1","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","bind","webglProgram","prepareUniformsGroup","onUniformsGroupsDispose","updateBufferData","bindingPointIndex","allocateBindingPointIndex","uniformArray","jl","hasUniformChanged","values","arrayOffset","info2","getUniformSize","indexString","indexArray","cachedObject","chunkOffset2","chunkPadding","chunkStart","chunkOffset","transformVertex","_alignedPosition","vertexPosition","center","_rotatedPosition","mvPosition","_viewWorldMatrix","sortOpaque","sortTransparent","copyAttributeData","itemSize","vertexCount","targetOffset","checkIntersection","positionAttribute","_vStart","_vEnd","_intersectPointOnRay","_intersectPointOnSegment","thresholdSq","testPoint","rayPointDistanceSq","_ray","localThresholdSq","intersectPoint","matrixWorld","intersects2","CubicPoly","c0","c1","c3","x0","t0","x1","t1","x2","tension","x3","dt0","dt1","t2","dt2","t3","CatmullRom","p3","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","QuadraticBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","CubicBezier","linkedList","last","clockwise","signedArea","dim","insertNode","equals","removeNode","filterPoints","again","area","earcutLinked","ear","pass","invSize","indexCurve","minX","minY","stop","prev","isEarHashed","isEar","triangles","cureLocalIntersections","splitEarcut","ax","bx","ay","by","cy","y0","y1","pointInTriangle","minZ","zOrder","maxZ","intersects","locallyInside","isValidDiagonal","splitPolygon","eliminateHoles","queue","len","holeIndices","getLeftmost","compareX","eliminateHole","outerNode","bridge","findHoleBridge","hole","bridgeReverse","qx","hx","hy","mx","my","tanMin","tan","sectorContainsSector","sortLinked","tail","numMerges","pSize","qSize","inSize","leftmost","px2","py2","intersectsPolygon","middleInside","o1","sign","q1","o2","q2","o3","o4","onSegment","num","inside","Node","an","bp","sum","removeDupEndPts","points","addContour","contour","vertices","toJSON$1","shapes","shape","options","toJSON","isUniqueEdge","hash1","hash2","edges","convertArray","forceClone","isTypedArray","getKeyframeOrder","compareTime","times","sortedArray","nValues","srcOffset","flattenJSON","jsonKeys","valuePropertyName","subclip","clip","sourceClip","tracks","track","valueSize","fps","startFrame","endFrame","minStartTime","makeClipAdditive","targetClip","numTracks","referenceClip","referenceTime","referenceFrame","referenceTrack","referenceTrackType","targetTrack","referenceOffset","referenceValueSize","targetValueSize","lastIndex","referenceValue","startIndex","endIndex","interpolant","Quaternion","numTimes","valueStart","valueEnd","AdditiveAnimationBlendMode","getTrackTypeForValueTypeName","typeName","NumberKeyframeTrack","VectorKeyframeTrack","ColorKeyframeTrack","QuaternionKeyframeTrack","BooleanKeyframeTrack","StringKeyframeTrack","parseKeyframeTrack","json","trackType","now","ascSort","intersect","propagate","recursive","getBoneList","boneList","setPoint","_vector","pointMap","three_module_exports","REVISION","MOUSE","TOUCH","CullFaceFrontBack","AttachedBindMode","DetachedBindMode","UVMapping","NearestMipMapNearestFilter","NearestMipMapLinearFilter","LinearMipMapNearestFilter","LinearMipMapLinearFilter","RGBIntegerFormat","LoopOnce","LoopRepeat","LoopPingPong","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","NormalAnimationBlendMode","TrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","BasicDepthPacking","RGBDepthPacking","RGDepthPacking","ZeroStencilOp","KeepStencilOp","ReplaceStencilOp","IncrementStencilOp","DecrementStencilOp","IncrementWrapStencilOp","DecrementWrapStencilOp","InvertStencilOp","NeverStencilFunc","LessStencilFunc","EqualStencilFunc","LessEqualStencilFunc","GreaterStencilFunc","NotEqualStencilFunc","GreaterEqualStencilFunc","AlwaysStencilFunc","StaticDrawUsage","DynamicDrawUsage","StreamDrawUsage","StaticReadUsage","DynamicReadUsage","StreamReadUsage","StaticCopyUsage","DynamicCopyUsage","StreamCopyUsage","GLSL1","WebGLCoordinateSystem","WebGPUCoordinateSystem","EventDispatcher$1","_seed","MathUtils","_m3","LINEAR_SRGB_TO_LINEAR_DISPLAY_P3","LINEAR_DISPLAY_P3_TO_LINEAR_SRGB","COLOR_SPACES","SUPPORTED_WORKING_COLOR_SPACES","_canvas","_sourceId","Source","_textureId","Texture","RenderTarget","WebGLArrayRenderTarget","Data3DTexture","WebGL3DRenderTarget","_vector$c","_quaternion$4","Box3","_points","_vector$b","_box$4","_v0$3","_v1$7","_v2$4","_f0","_f1","_f2","_center","_extents","_triangleNormal","_box$3","_v1$6","_v2$3","Sphere","_vector$a","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","_v1$5","_m1$4","_zero","_one","_x","_y","_z","_matrix$2","_quaternion$3","Euler","_object3DId","_v1$4","_q1","_m1$3","_target","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_childaddedEvent","_childremovedEvent","Object3D","_v0$2","_v1$3","_v2$2","_v3$2","_vab","_vac","_vbc","_vap","_vbp","_vcp","_v40","_v41","_v42","_colorKeywords","_hslA","_hslB","_color","_materialId","Material","MeshBasicMaterial","DataUtils","_vector$9","_vector2$1","Int8BufferAttribute","Uint8BufferAttribute","Uint8ClampedBufferAttribute","Int16BufferAttribute","Int32BufferAttribute","Float16BufferAttribute","Float32BufferAttribute","_id$2","_m1$2","_obj","_offset","_box$2","_boxMorphTargets","_vector$8","_inverseMatrix$3","_ray$3","_sphere$6","_sphereHitAt","_tempA","_morphA","default_vertex","default_fragment","Camera","_v3$1","_minTarget","_maxTarget","PerspectiveCamera","fov","aspect","CubeCamera","CubeTexture","_vector1","_vector2","_normalMatrix","_sphere$5","_vector$7","OrthographicCamera","_flatCamera","_clearColor","_oldTarget","_oldActiveCubeFace","_oldActiveMipmapLevel","_oldXrEnabled","PHI","INV_PHI","_axisDirections","DepthTexture","programIdCount","_id$1","WebGLShaderStage","nextVersion","TextureUtils","ArrayCamera","Group","_moveEvent","WebXRController","_occlusion_vertex","_occlusion_fragment","WebXRDepthSensing","WebXRManager","WebGLRenderer","FogExp2","Fog","Scene","InterleavedBuffer","_vector$6","InterleavedBufferAttribute","SpriteMaterial","_geometry$3","_intersectPoint","_worldScale","_mvPosition","_vA","_vB","_vC","_uvA","_uvB","_uvC","Sprite","_v1$2","_v2$1","LOD","_basePosition","_skinIndex","_skinWeight","_vector3","_matrix4","_vertex","_sphere$4","_inverseMatrix$2","_ray$2","SkinnedMesh","Bone","DataTexture","_offsetMatrix","_identityMatrix$1","Skeleton","InstancedBufferAttribute","_instanceLocalMatrix","_instanceWorldMatrix","_instanceIntersects","_box3","_identity","_mesh$1","_sphere$3","InstancedMesh","MultiDrawRenderList","_matrix$1","_invMatrixWorld","_identityMatrix","_whiteColor","_projScreenMatrix$2","_frustum","_box$1","_sphere$2","_vector$5","_forward","_temp","_renderList","_mesh","_batchIntersects","BatchedMesh","LineBasicMaterial","_inverseMatrix$1","_ray$1","_sphere$1","Line","_start","_end","LineSegments","LineLoop","PointsMaterial","_inverseMatrix","_sphere$7","_position$2","Points","VideoTexture","FramebufferTexture","CompressedTexture","CompressedArrayTexture","CompressedCubeTexture","CanvasTexture","Curve","EllipseCurve","ArcCurve","tmp","px","py","pz","CatmullRomCurve3","CubicBezierCurve","CubicBezierCurve3","LineCurve","LineCurve3","QuadraticBezierCurve","QuadraticBezierCurve3","SplineCurve","Curves","CurvePath","Path","LatheGeometry","CapsuleGeometry","CircleGeometry","CylinderGeometry","ConeGeometry","PolyhedronGeometry","DodecahedronGeometry","_v0","_v1$1","_normal","_triangle","EdgesGeometry","Shape","Earcut","ShapeUtils","ExtrudeGeometry","WorldUVGenerator","IcosahedronGeometry","OctahedronGeometry","RingGeometry","ShapeGeometry","SphereGeometry","TetrahedronGeometry","TorusGeometry","TorusKnotGeometry","TubeGeometry","WireframeGeometry","Geometries","ShadowMaterial","RawShaderMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshPhongMaterial","MeshToonMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshMatcapMaterial","LineDashedMaterial","AnimationUtils","Interpolant","CubicInterpolant","LinearInterpolant","DiscreteInterpolant","KeyframeTrack","QuaternionLinearInterpolant","AnimationClip","Cache","LoadingManager","DefaultLoadingManager","Loader$1","loading","HttpError","FileLoader","AnimationLoader","CompressedTextureLoader","ImageLoader","CubeTextureLoader","DataTextureLoader","TextureLoader","Light","HemisphereLight","_projScreenMatrix$1","_lightPositionWorld$1","_lookTarget$1","LightShadow","SpotLightShadow","SpotLight","_projScreenMatrix","_lightPositionWorld","_lookTarget","PointLightShadow","PointLight","DirectionalLightShadow","DirectionalLight","AmbientLight","RectAreaLight","SphericalHarmonics3","LightProbe","MaterialLoader","LoaderUtils","InstancedBufferGeometry","BufferGeometryLoader","ObjectLoader","TEXTURE_MAPPING","TEXTURE_WRAPPING","TEXTURE_FILTER","ImageBitmapLoader","_context","AudioContext","AudioLoader","_eyeRight","_eyeLeft","_projectionMatrix","StereoCamera","Clock","_position$1","_quaternion$1","_scale$1","_orientation$1","AudioListener","Audio","_position","_quaternion","_scale","_orientation","PositionalAudio","AudioAnalyser","PropertyMixer","_RESERVED_CHARS_RE","_reservedRe","_wordChar","_wordCharOrDot","_directoryRe","_nodeRe","_objectRe","_propertyRe","_trackRe","_supportedObjectNames","Composite","PropertyBinding","AnimationObjectGroup","AnimationAction","_controlInterpolantsResultBuffer","AnimationMixer","Uniform","_id","UniformsGroup","InstancedInterleavedBuffer","GLBufferAttribute","_matrix","Raycaster","Spherical","Cylindrical","Matrix2","_vector$4","Box2","_startP","_startEnd","Line3","_vector$3","SpotLightHelper","_vector$2","_boneMatrix","_matrixWorldInv","SkeletonHelper","PointLightHelper","_vector$1","_color1","_color2","HemisphereLightHelper","GridHelper","PolarGridHelper","_v1","_v2$5","_v3","DirectionalLightHelper","_camera$3","CameraHelper","_box","BoxHelper","Box3Helper","PlaneHelper","_axis","_lineGeometry","_coneGeometry","ArrowHelper","AxesHelper","ShapePath","Controls$1","WebGLMultipleRenderTargets","init_chunk_Z4XR7UL5","listeners","listener","listenerArray","_Vector2","scalar","minVal","maxVal","denominator","theta","dx","dy","angle","_Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","me","xAxis","yAxis","zAxis","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","d","h","t11","t12","t13","det","detInv","rotation","sx","tx","sy","ty","matrix","sourceColorSpace","targetColorSpace","sourceToReference","targetFromReference","imageData","isRootObject","meta","output","url","_Texture","wrapS","wrapT","magFilter","minFilter","anisotropy","_Vector4","w","epsilon","epsilon2","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","src0","srcOffset0","z0","w0","src1","srcOffset1","z1","w1","dir","sqrSin","tDir","quaternion","euler","s1","s3","halfAngle","axis","trace","vFrom","vTo","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","theta1","theta2","r1","r2","_Vector3","vx","vy","vz","qy","qz","qw","tz","az","bz","planeNormal","dz","sinPhiRadius","phi","radius","sz","halfSize","precise","box","vector","sphere","triangle","optionalCenter","maxRadiusSq","radiusSum","deltaLengthSq","lengthSq","delta","origin","direction","directionDistance","segExtent","a01","b0","s0","sqrDist","extDet","invDet","optionalPointOnRay","optionalPointOnSegment","tca","radius2","thc","distToPoint","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","DdN","sign2","backfaceCulling","DdQxE2","DdE1xQ","QdN","_Matrix4","n14","n24","n34","n41","n42","n43","n44","scaleX","scaleY","scaleZ","af","bf","ce","cf","de","df","ac","ad","bc","bd","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","t14","scaleXSq","scaleYSq","scaleZSq","yx","zx","zy","y2","z2","wx","wy","wz","invSX","invSY","invSZ","near","right","left","top","bottom","coordinateSystem","far","zInv","_Euler","newOrder","channel","layers","_Object3D","onRotationChange","onQuaternionChange","parent","force","updateParents","updateChildren","bound","serialize","library","element","uuids","animation","extractFromCache","materials","images","skeletons","animations","nodes","child","_Triangle","targetLengthSq","dot00","dot01","dot02","dot11","dot12","denom","invDenom","v3","attr","i1","i2","i3","i0","d4","vc","d5","d6","vb","va","\"aliceblue\"","\"antiquewhite\"","\"aqua\"","\"aquamarine\"","\"azure\"","\"beige\"","\"bisque\"","\"black\"","\"blanchedalmond\"","\"blue\"","\"blueviolet\"","\"brown\"","\"burlywood\"","\"cadetblue\"","\"chartreuse\"","\"chocolate\"","\"coral\"","\"cornflowerblue\"","\"cornsilk\"","\"crimson\"","\"cyan\"","\"darkblue\"","\"darkcyan\"","\"darkgoldenrod\"","\"darkgray\"","\"darkgreen\"","\"darkgrey\"","\"darkkhaki\"","\"darkmagenta\"","\"darkolivegreen\"","\"darkorange\"","\"darkorchid\"","\"darkred\"","\"darksalmon\"","\"darkseagreen\"","\"darkslateblue\"","\"darkslategray\"","\"darkslategrey\"","\"darkturquoise\"","\"darkviolet\"","\"deeppink\"","\"deepskyblue\"","\"dimgray\"","\"dimgrey\"","\"dodgerblue\"","\"firebrick\"","\"floralwhite\"","\"forestgreen\"","\"fuchsia\"","\"gainsboro\"","\"ghostwhite\"","\"gold\"","\"goldenrod\"","\"gray\"","\"green\"","\"greenyellow\"","\"grey\"","\"honeydew\"","\"hotpink\"","\"indianred\"","\"indigo\"","\"ivory\"","\"khaki\"","\"lavender\"","\"lavenderblush\"","\"lawngreen\"","\"lemonchiffon\"","\"lightblue\"","\"lightcoral\"","\"lightcyan\"","\"lightgoldenrodyellow\"","\"lightgray\"","\"lightgreen\"","\"lightgrey\"","\"lightpink\"","\"lightsalmon\"","\"lightseagreen\"","\"lightskyblue\"","\"lightslategray\"","\"lightslategrey\"","\"lightsteelblue\"","\"lightyellow\"","\"lime\"","\"limegreen\"","\"linen\"","\"magenta\"","\"maroon\"","\"mediumaquamarine\"","\"mediumblue\"","\"mediumorchid\"","\"mediumpurple\"","\"mediumseagreen\"","\"mediumslateblue\"","\"mediumspringgreen\"","\"mediumturquoise\"","\"mediumvioletred\"","\"midnightblue\"","\"mintcream\"","\"mistyrose\"","\"moccasin\"","\"navajowhite\"","\"navy\"","\"oldlace\"","\"olive\"","\"olivedrab\"","\"orange\"","\"orangered\"","\"orchid\"","\"palegoldenrod\"","\"palegreen\"","\"paleturquoise\"","\"palevioletred\"","\"papayawhip\"","\"peachpuff\"","\"peru\"","\"pink\"","\"plum\"","\"powderblue\"","\"purple\"","\"rebeccapurple\"","\"red\"","\"rosybrown\"","\"royalblue\"","\"saddlebrown\"","\"salmon\"","\"sandybrown\"","\"seagreen\"","\"seashell\"","\"sienna\"","\"silver\"","\"skyblue\"","\"slateblue\"","\"slategray\"","\"slategrey\"","\"snow\"","\"springgreen\"","\"steelblue\"","\"tan\"","\"teal\"","\"thistle\"","\"tomato\"","\"turquoise\"","\"violet\"","\"wheat\"","\"white\"","\"whitesmoke\"","\"yellow\"","\"yellowgreen\"","hex","handleAlpha","style","hue","saturation","lightness","color1","color2","newValue","currentValue","data2","srcPlanes","dstPlanes","index1","index2","component","_BufferGeometry","normalMatrix","tangent","morphAttributesPosition","morphTargetsRelative","normalAttribute","uvAttribute","tangentAttribute","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","handleTriangle","tmp22","n2","handleVertex","nA","nB","nC","cb","ab","normals","convertBufferAttribute","array2","indices2","geometry2","newAttribute","morphArray","hasMorphAttributes","attributeArray","boundingSphere","boundingBox","keys","ml","morphPosition","morphInfluences","influence","drawRange","rayLocalSpace","_BoxGeometry","widthSegments","heightSegments","depthSegments","uvs","numberOfVertices","groupStart","buildPlane","segmentWidth","width2","gridX","segmentHeight","height2","gridY","widthHalf","heightHalf","depthHalf","depth2","gridX1","gridY1","vertexCounter","groupCount","iy","ix","udir","vdir","materialIndex","\"color\"","\"uv\"","\"uv1\"","fov2","vExtentSlope","focalLength","minTarget","maxTarget","fullWidth","fullHeight","view","skew","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","cameras","currentActiveCubeFace","currentActiveMipmapLevel","currentXrEnabled","generateMipmaps","mesh","currentMinFilter","constant","inverseNormalLength","startSign","endSign","optionalNormalMatrix","referencePoint","p4","p5","frustum","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","sprite","negRadius","_PlaneGeometry","width_half","height_half","segment_width","segment_height","scaleW","scaleH","equirectangular","cubeSize","outputTarget","_lodMax","tmpMesh","cubeCamera","upSign","forwardSign","originalAutoClear","backgroundMaterial","backgroundBox","useSolidColor","col","isCubeTexture","autoClear","pingPongRenderTarget","lodIn","lodOut","blurMaterial","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaRadians","sigmaPixels","weight","targetIn","outputSize","targetOut","seq","vertexShaderStage","fragmentShaderStage","materialShaders","shaderStage","set","stage","code","inputSource","hand","inputjoint","inputPose","gripPose","handPose","targetRay","grip","jointPose","referenceSpace","joint","indexTip","thumbTip","texProps","depthData","cameraXR","session","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","depthSensing","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","currentSize","currentPixelRatio","cameraL","cameraR","_currentDepthNear","_currentDepthFar","controller","onSessionEvent","controllerIndex","onSessionEnd","onInputSourcesChange","space","layerInit","depthFormat","glDepthFormat","projectionlayerInit","cameraLPos","cameraRPos","setProjectionFromUnion","cameraL2","cameraR2","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","left2","right2","top2","bottom2","updateCamera","depthNear","depthFar","cameras2","updateUserCamera","cameraXR2","onAnimationFrameCallback","views","cameraXRNeedsUpdate","glSubImage","enabledFeatures","_alpha","uintClearColor","intClearColor","currentRenderList","currentRenderState","renderListStack","renderStateStack","_this","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_currentClearColor","_currentClearAlpha","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_currentProjectionMatrix","_projScreenMatrix2","_vector32","_vector4","_emptyScene","_renderBackground","getTargetPixelRatio","getContext","contextName","contextAttributes","onContextLost","onContextRestore","onContextCreationError","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","uniformsGroups","initGLContext","xr","updateStyle","boolean","method","bits","isIntegerFormat","targetFormat","targetType","isUnsignedType","stencil2","onXRSessionStart","onXRSessionEnd","infoAutoReset","shadowMapEnabled","shadowMapAutoUpdate","shadowMapNeedsUpdate","shadowMapType","deallocateMaterial","releaseMaterialProgramReferences","setProgram","rangeFactor","drawStart","drawEnd","lineWidth","drawCount2","maxInstanceCount","prepareMaterial","getProgram","targetScene","materials2","material2","checkMaterialsReady","depthSensingMesh","projectObject","opaqueObjects","transmissiveObjects","camera2","renderTransmissionPass","renderScene","sortObjects","currentRenderList2","transparentObjects","renderObjects","activeViewport","currentToneMapping","currentCameraViewport","renderTargetNeedsUpdate","currentSide","overrideMaterial","lightsStateVersion","parameters2","programCacheKey","updateCommonMaterialProperties","materialNeedsLights","getUniformList","progUniforms","vertexAlphas","vertexTangents","needsProgramChange","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","markUniformsLightsNeedsUpdate","defaultFramebuffer","useDefaultFramebuffer","isRenderTarget3D","__webglFramebuffer","layer","activeCubeFaceIndex","framebuffer2","glBuffer","currFramebuffer","levelScale","srcTexture","dstX","dstY","srcRegion","dstPosition","dstTexture","currentUnpackRowLen","currentUnpackImageHeight","currentUnpackSkipPixels","currentUnpackSkipRows","currentUnpackSkipImages","dstZ","glTarget","_FogExp2","density","_Fog","ib","_InterleavedBufferAttribute","interleavedBuffer","removedElements","levelDistance","bindMatrix","skinWeight","boneIndex","_Skeleton","bones","boneInverses","inverse","bone","boneMatrices","boneTexture","boneInverse","dataIndex","raycastTimes","instanceId","pool","item","maxVertexCount","maxIndexCount","matricesTexture","indirectTexture","colorsTexture","attributeName","reference","dstAttribute","batchGeometry","srcAttribute","func","drawInfo","instanceDrawInfo","drawId","matricesArray","reservedRange","lastRange","reservedRanges","drawRanges","bounds","hasIndex","indexCount","dstIndex","srcIndex","vertexStart","indexStart","posAttr","iv","colorsArray","l2","inf","multiDrawStarts","multiDrawCounts","perObjectFrustumCulled","indirectArray","culled","customSort","lineDistances","threshold","localThreshold","video","updateVideo","optionalTarget","divisions","lengths","current","arcLengths","targetArcLength","comparison","lengthBefore","segmentLength","segmentFraction","pt1","pt2","tangents","binormals","vec","mat","segments","closed","aX","aY","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","twoPi","deltaAngle","samePoints","aRadius","curveType","intPoint","pow","curve","startPoint","endPoint","lineType","curveLengths","diff","lens","sums","curves","resolution","pts","aCPx","aCPy","aCP1x","aCP1y","aCP2x","aCP2y","firstPoint","lastPoint","_LatheGeometry","phiLength","initNormals","inverseSegments","vertex2","curNormal","prevNormal","phiStart","base","_CapsuleGeometry","capSegments","radialSegments","_CircleGeometry","segment","thetaStart","thetaLength","_CylinderGeometry","halfHeight","generateTorso","openEnded","radiusTop","generateCap","radiusBottom","slope","indexRow","sinTheta","cosTheta","centerIndexStart","centerIndexEnd","_ConeGeometry","_PolyhedronGeometry","vertexBuffer","uvBuffer","subdivide","detail","applyRadius","generateUVs","getVertexByIndex","subdivideFace","detail2","cols","aj","bj","rows","pushVertex","azimuth","inclination","correctUVs","correctSeam","centroid","azi","correctUV","azimuth2","_DodecahedronGeometry","thresholdDot","thresholdAngle","indexAttr","positionAttr","indexArr","vertKeys","hashes","edgeData","jNext","vecHash0","vecHash1","reverseHash","index0","holesPts","hasHoles","outerLen","maxX","maxY","_ShapeUtils","faces","holeIndex","holes","_ExtrudeGeometry","verticesArray","uvArray","addShape","placeholder","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","uvgen","extrudePts","extrudeByPath","splineTube","binormal","position2","shapePoints","hl","ahole","scalePt2","pt","vlen","flen","getBevelVec","v_trans_x","v_trans_y","shrink_by","v_prev_x","inPt","inPrev","v_prev_y","v_next_x","inNext","v_next_y","v_prev_lensq","collinear0","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","ptNextShift_x","ptNextShift_y","sf","v_trans_lensq","direction_eq","contourMovements","holesMovements","oneHoleMovements","verticesMovements","bs2","vert","bs","buildLidFaces","buildSideFaces","f3","layeroffset","sidewalls","contour2","sl","slen1","slen2","f4","addVertex","nextIndex","addUV","vector2","geometryShapes","a_x","indexA","a_y","b_x","indexB","b_y","c_x","indexC","c_y","a_z","b_z","c_z","d_x","indexD","d_y","d_z","_IcosahedronGeometry","_OctahedronGeometry","_RingGeometry","thetaSegments","phiSegments","innerRadius","radiusStep","outerRadius","thetaSegmentLevel","_ShapeGeometry","indexOffset","shapeVertices","shapeHoles","shapeHole","_SphereGeometry","thetaEnd","grid","verticesRow","uOffset","_TetrahedronGeometry","_TorusGeometry","tubularSegments","arc","tube","_TorusKnotGeometry","P1","P2","B","T","N","calculatePositionOnCurve","cu","su","quOverP","cs","_TubeGeometry","frames","P","generateBufferData","generateSegment","generateIndices","o","ol","\"STANDARD\"","\"PHYSICAL\"","reflectivity","\"TOON\"","\"MATCAP\"","parameterPositions","resultBuffer","sampleValues","sampleSize","pp","giveUpAt","t1global","mid","iPrev","iNext","tPrev","tNext","halfDt","o0","oP","oN","wP","wN","ppp","sP","sN","offset1","offset0","weight1","weight0","interpolation","\"name\"","\"times\"","\"values\"","factoryMethod","timeOffset","timeScale","nKeys","startTime","endTime","valid","prevTime","currTime","smoothInterpolation","writeIndex","keep","offsetP","offsetN","readOffset","writeOffset","TypedKeyframeTrack","duration","blendMode","jsonTracks","frameTime","clipTracks","\"duration\"","\"tracks\"","\"uuid\"","\"blendMode\"","numMorphTargets","morphTargetSequence","noLoop","clipArray","objectOrClipArray","animationToMorphTargets","pattern","parts","animationMorphTargets","clips","addNonemptyTrack","animationKeys","propertyName","destTracks","trackName","clipName","hierarchyTracks","morphTargetNames","morphTargetName","animationKey","boneName","file","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","onLoad","onProgress","onError","transform","regex","loader","manager","crossOrigin","resourcePath","requestHeader","response","req","mimeType","responseType","callbacks","reader","contentLength","total","lengthComputable","loaded","stream","readData","done","text","exec","label","decoder","err","loadTexture","texDatas","onImageLoad","removeEventListeners","onImageError","urls","texData","skyColor","groundColor","shadowMatrix","viewportIndex","penumbra","decay","power","coefficients","coeff","sh","_MaterialLoader","getTexture","normalScale","interleavedBufferMap","arrayBufferMap","getInterleavedBuffer","json2","getArrayBuffer","arrayBuffer","typedArray","bufferAttribute","metadata","hasImages","bufferGeometryLoader","loadImage","deserializeImage","imageArray","currentUrl","deserializedImage","parseConstant","getGeometry","getMaterial","instanceMatrix","instanceColor","objectAnimations","imageBitmap","fetchOptions","promise","blob","bufferCopy","audioBuffer","handleError","eyeSepHalf","eyeSepOnProjection","ymax","xmin","xmax","autoStart","newTime","audioNode","mediaElement","mediaStream","delay","filter","coneInnerAngle","coneOuterAngle","coneOuterGain","panner","audio","fftSize","binding","mixFunction","mixFunctionAdditive","setIdentity","accuIndex","currentWeight","mix","weightAdditive","originalValueOffset","targetIndex","workOffset","parsedPath","optionalParsedPath","targetGroup","firstValidIndex","bindings","_PropertyBinding","rootNode","root","matches","results","lastDot","objectName","nodeName","searchNodeSubtree","childNode","subTreeNode","dest","targetArray","sourceArray","targetObject","propertyIndex","objectIndex","nodeProperty","versioning","bindingType","indicesByUUID","paths","parsedPaths","nBindings","knownObject","nObjects","nCachedObjects","firstActiveIndex","lastCachedObject","bindingsForPath","lastCached","lastCachedIndex","firstActiveObject","firstActive","lastObject","indicesByPath","lastBindingsIndex","lastBindings","lastBindingsPath","mixer","localRoot","nTracks","interpolants","interpolantSettings","repetitions","fadeOutAction","warp","fadeInDuration","fadeOutDuration","startEndRatio","endStartRatio","fadeInAction","weightInterpolant","action","now2","startTimeScale","endTimeScale","timeScaleInterpolant","timeRunning","timeDirection","clipTime","deltaTime","propertyMixers","interpolantValue","loop","loopCount","pingPong","loopDelta","pending","atStart","settings","atEnd","weightNow","weightThen","rootUuid","bindingsByRoot","bindingsByName","prototypeAction","clipUuid","actionsForClip","actions","actionsByClip","knownActions","lastInactiveAction","cacheIndex","knownActionsForClip","lastKnownAction","byClipCacheIndex","actionByRoot","prevIndex","lastActiveIndex","firstInactiveAction","firstInactiveIndex","lastActiveAction","bindingByName","propBinding","lastInactiveBinding","firstInactiveBinding","lastActiveBinding","lastActiveInterpolant","optionalRoot","clipObject","existingAction","newAction","nActions","timeInSeconds","actionsToRemove","_Uniform","uniformsSource","elementSize","coords","other","EPS","_Matrix2","startEnd2","clampToLine","positions","coneLength","coneWidth","colors","sphereSize","sectors","rings","addLine","addPoint","colorFrustum","colorCone","colorUp","colorTarget","colorCross","colorAttribute","cone","cross","positions2","headLength","headWidth","xAxisColor","yAxisColor","zAxisColor","toShapesNoHoles","shapes2","inSubpaths","tmpPath2","tmpShape2","isPointInsidePolygon","polyLen","inPolygon","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","isClockWise","subPaths","solid","tmpPath","tmpShape","holesFirst","isCCW","betterShapeHoles","newShapes","newShapeHoles","mainIdx","tmpPoints","ambiguous","toChange","sIdx","sLen","sho","hIdx","ho","hole_unassigned","s2Idx","tmpHoles","domElement","t$3","o$3","r$5","e$3","i$4","init_constants","u$2","i$3","o$2","s$3","y$2","init_react_reconciler_production_min","S","E","C","I","_","L","R","F","D","H","W","ta","ua","wa","xa","za","Aa","Ba","Ca","$","V","Z","J","K","G","X","ne","le","oe","pe","xe","ze","Ee","Ce","Ie","_e","Le","Fe","De","Be","Ae","qe","Je","Ke","en","nn","tn","rn","ln","un","on","sn","cn","fn","dn","hn","gn","pn","mn","vn","yn","bn","Sn","kn","xn","wn","zn","Nn","Pn","En","Cn","In","_n","Un","Ln","Tn","Rn","Mn","Fn","Qn","Dn","Hn","Wn","Bn","On","An","qn","jn","$n","Vn","Zn","Yn","Jn","Kn","Gn","cc","Xn","ec","et","nt","tt","ic","rt","lt","at","ut","mc","A","nc","oc","pc","qc","rc","it","sc","ot","st","ct","ft","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","ht","gt","mt","vt","yt","bt","St","kt","xt","wt","Tc","Uc","zt","Nt","Pt","Et","Zc","$c","Ct","It","_t","Ut","Lt","Tt","Rt","Mt","Ft","kd","ld","md","nd","Qt","Dt","Ht","Wt","Bt","sd","td","ud","vd","wd","xd","yd","zd","Ad","Bd","Ot","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","ya","At","qt","jt","$t","Vt","Zt","Ud","Vd","Wd","Xd","Yd","Zd","Yt","Jt","ee","ge","he","Ar","je","ke","Kt","Gt","Xt","er","re","se","nr","we","tr","rr","lr","ar","ur","ir","or","sr","cr","fr","dr","M","Ge","He","gr","pr","mr","hr","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","qr","Ye","Ze","$e","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","tf","uf","vf","O","wf","xf","yf","vr","Af","Bf","Cf","Df","Ef","Ff","Gf","yr","If","al","Lf","Nf","Of","Pf","Qf","br","Sr","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zr","Vr","ag","bg","cg","dg","eg","fg","kr","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","wr","zr","Nr","zg","Ag","Q","Bg","Cg","Yr","rl","Eg","Fg","Pr","Er","Cr","Ir","Ig","U","Jg","_r","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ur","Lr","Vg","Wg","Xg","Yg","Zg","$g","ah","ch","dh","eh","fh","gh","Tr","Rr","Mr","Fr","Qr","Dr","nh","oh","ph","qh","rh","Hr","Wr","Br","Or","jr","$r","Jr","Kr","Gr","Xr","el","nl","tl","ll","Bh","ul","cl","fl","dl","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","init_npm_react_reconciler_0_29_2","createStore","setState","nextState","partial","previousState","replace","getState","subscribeWithSelector","currentSlice","selector","listenerToAdd","nextSlice","equalityFn","previousSlice","api","createState","create","useStore2","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","hasNewStateSlice","useIsomorphicLayoutEffect","stateBeforeSubscriptionRef","nextStateSlice","unsubscribe","sliceToReturn","items","shallowEqualArrays","arrA","arrB","equal","query","entry2","globalCache","preload2","config","isPromise","error2","k$1","G$1","t$1","r$3","K$1","B$1","L$1","M$1","exports2$1","R$1","N$1","D$1","__cjs_default__$1","Object2","global$1","specifiers","hasNamedExports","hasDefaultExport","requiredModule","k3","createRenderer","createInstance","_b2","_a2","attach2","instance","prepare","catalogue","args","applyProps$1","appendChild","added","_child$__r3f","_parentInstance$__r3f","attach","parentInstance","updateInstance","invalidateInstance","insertBefore","_child$__r3f2","_parentInstance$__r3f2","restSiblings","sibling","beforeChild","removeRecursive","removeChild","dispose2","_parentInstance$__r3f3","_child$__r3f3","detach","_child$__r3f4","removeInteractivity","findInitialRoot","isPrimitive","shouldDispose","__export16","__export1$1","switchInstance","newInstance","newProps","fiber","fiber2","handleTextInstance","parentHostContext","argsNew","cN","restNew","oldProps","argsOld","cO","restOld","diffProps","reconstruct","localState","_getEventPriority","is","useMutableCallback","ref","useIsomorphicLayoutEffect2","Block","calculateDpr","dpr","buildGraph","entries","acc","key2","INDEX_REGEX","target2","previous","kN","rN","_d","_c","cP","kP","rP","changes","previousKeys","DEFAULT","_instance$__r3f","entries2","value2","memoized","_instance$__r3f2","rootState","isDiffSet","prevHandlers","isEvent","hasColorSpace","sRGBEncoding","currentInstance","targetProp","reverseEntries","ctor","DEFAULTS","__DEV__","isColor","getColorManagement","_currentInstance$key","internal","_instance$__r3f3","_instance$__r3f3$root","isOrthographicCamera$1","makeId","getEventPriority","globalScope","releaseInternalPointerCapture","captureData","captures","capturedMap","pointerId","store","createEvents","calculateDistance","filterPointerEvents","duplicates","intersections","eventsObjects","state2","getRootState","handleRaycast","hits","aState","bState","hit","eventObject","_r3f2","handleIntersects","unprojectedPoint","pointer","hasPointerCapture","setPointerCapture","releasePointerCapture","extractEventProps","raycastEvent","capturesForPointer","cancelPointer","hoveredObj","pointerMissed","handlePointer","isPointerMove","isClickEvent","onPointerMissed","onIntersect","hoveredItem","handler","run","effects","timestamp","flushGlobalEffects","globalEffects","globalAfterEffects","globalTailEffects","render$1","i$1","subscribers","subscription","createLoop","running","useFrameInProgress","repeat","roots2","_state$gl$xr","invalidate2","_state$gl$xr2","advance2","runGlobalEffects","frame2","useStore","useThree","useFrame","subscribe","renderPriority","loadingFn","input","memoizedLoaders","Proto","input2","useLoader","suspend","computeInitialSize","defaultStyle","defaultSize","createRoot","prevRoot","roots","prevFiber","prevStore","logRecoverableError","createStore2","invalidate","advance","reconciler","onCreated","configured","lastCamera","glConfig","propsSize","sceneOptions","onCreatedCallback","performance2","raycastOptions","cameraOptions","createRendererInstance","shallowLoose","applyProps","isCamera","orthographic","handleXRFrame","handleSessionChange","gl2","oldEnabled","oldType","types","legacy","linear","flat","isRenderer","events","frameloop","Provider","unmountComponentAtNode","rootElement","_state$gl","_state$gl$renderLists","_state$gl2","_state$gl3","createPointerEvents","DOM_EVENTS","_internal$lastEvent","eventName","passive","g2","j$1","h2","f2","H2","O2","S2","B2","R2","D2","W$1","E2","traverseFiber","ascending","wrapContext","context2","useFiber","FiberContext","maybeFiber","node","useContextMap","contextMap","useContextBridge","Prev","__spreadProps2","__spreadValues2","FiberProvider","preload","clear","scheduler_development_exports","exports$1","module$1","__export0","__export2","__export3","__export4$1","__export5","__export6","__export7","__export8","__export9","__export10","__export11","__export12","__export13","__export14","__export15","__export17","__export18","scheduler_development_default","module2$1","q$1","F$1","T2","U$1","exports3$1","module3$1","extend","_window$document","isRef$1","ErrorBoundary","k2","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","CanvasImpl","Canvas2","init_chunk_WS7WB67W","frameYieldMs","heap","siftUp","peek","pop","first","siftDown","parentIndex","compare","halfLength","leftIndex","rightIndex","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","localPerformance","localDate","initialTime","maxSigned31BitInt","IMMEDIATE_PRIORITY_TIMEOUT","USER_BLOCKING_PRIORITY_TIMEOUT","NORMAL_PRIORITY_TIMEOUT","LOW_PRIORITY_TIMEOUT","IDLE_PRIORITY_TIMEOUT","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","timer","currentTime","handleTimeout","requestHostCallback","flushWork","firstTimer","requestHostTimeout","cancelHostTimeout","previousPriorityLevel","workLoop","hasTimeRemaining","initialTime2","shouldYieldToHost","continuationCallback","unstable_runWithPriority","priorityLevel","eventHandler","unstable_next","unstable_wrapCallback","parentPriorityLevel","unstable_scheduleCallback","startTime2","timeout","expirationTime","newTask","unstable_pauseExecution","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_cancelCallback","unstable_getCurrentPriorityLevel","isMessageLoopRunning","scheduledHostCallback","taskTimeoutID","frameInterval","requestPaint","forceFrameRate","\"error\"","performWorkUntilDeadline","hasMoreWork","schedulePerformWorkUntilDeadline","port","ms","unstable_requestPaint","\"unstable_now\"","\"unstable_IdlePriority\"","\"unstable_ImmediatePriority\"","\"unstable_LowPriority\"","\"unstable_NormalPriority\"","\"unstable_Profiling\"","\"unstable_UserBlockingPriority\"","\"unstable_cancelCallback\"","\"unstable_continueExecution\"","\"unstable_forceFrameRate\"","\"unstable_getCurrentPriorityLevel\"","\"unstable_getFirstCallbackNode\"","\"unstable_next\"","\"unstable_pauseExecution\"","\"unstable_requestPaint\"","\"unstable_runWithPriority\"","\"unstable_scheduleCallback\"","\"unstable_shouldYield\"","\"unstable_wrapCallback\"","def","isObj","isArr","arrays","strict","defaultTarget","tempTarget","getCurrentViewport","performanceTimeout","setPerformanceCurrent","resolved","clock","internal2","oldSize","oldDpr","oldCamera","customRenderer","Bridge","containerRef","containerRect","resize","canvasRef","divRef","forwardedRef","handlePointerMissed","block","setBlock","setError","eventSource","eventPrefix","fallback","canvasProps","zoomOutPlanes","zoomOutSphere","envBasePath","init_chunk_SX7QUDKQ","pixelDensity","ShaderGradientCanvas","useShaderChunkFix","\"uv2_pars_vertex\"","\"uv2_vertex\"","\"uv2_pars_fragment\"","\"encodings_fragment\"","init_chunk_CWHPURPD","Pass$1","_camera$2","_geometry$2","FullScreenQuad$1","init_chunk_4Z3JUAHA","MaskPass","ClearMaskPass","init_chunk_FZIV7POA","writeValue","clearValue","readBuffer","writeBuffer","ShaderPass","init_chunk_YUIDVF63","textureID","CopyShader","init_chunk_USQFKVUW","EffectComposer","_geometry$1","init_chunk_2S3VJM34","passIndex","maskActive","effectiveWidth","effectiveHeight","RenderPass","init_chunk_IRMTC4UN","oldAutoClear","oldClearAlpha","oldOverrideMaterial","HalftoneShader","init_chunk_3U6A2N6D","Pass","_camera","_geometry","FullScreenQuad","init_chunk_O7SDERYP","BlendFunction","init_chunk_4NRCS6EB","blendFunctions","BlendMode","init_chunk_KD5UHE3V","blendFunction","opacity","usePassedMeshSize","HalftonePass","init_chunk_XLXOMSVB","\"disable\"","\"tDiffuse\"","PostProcessing","composer","effectComposer","halftoneParams","halftonePass","init_chunk_5TNITGB6","dToR","dToRArr","formatUrlString","urlString","useCameraAnimation","cAzimuthAngle","cPolarAngle","enableTransition","control","zoomOut","cameraZoom","cDistance","init_chunk_KO4ISVNC","isPerspectiveCamera","isOrthographicCamera","clamp$1","approxZero","EPSILON","number","approxEquals","roundToStep","infinityToMaxNumber","maxNumberToInfinity","smoothDamp","smoothTime","omega","exp","change","originalTo","maxChange","maxSpeed","temp","currentVelocityRef","smoothDampVec3","targetX","targetY","targetZ","changeX","changeY","changeZ","originalToX","originalToY","originalToZ","maxChangeSq","magnitudeSq","magnitude","tempX","tempY","tempZ","origMinusCurrentX","origMinusCurrentY","origMinusCurrentZ","outMinusOrigX","out","outMinusOrigY","outMinusOrigZ","extractClientCoordFromEvent","pointers","notSupportedInOrthographicCamera","CameraControl","_b","CameraControls","MOUSE_BUTTON","ACTION","DOLLY_DIRECTION","PI_2","PI_HALF","DEG2RAD","EventDispatcher","VERSION","TOUCH_DOLLY_FACTOR","isMac","THREE","_ORIGIN","_AXIS_Y","_AXIS_Z","_v2","_v3A","_v3B","_v3C","_cameraDirection","_xColumn","_yColumn","_zColumn","_deltaTarget","_deltaOffset","_sphericalA","_sphericalB","_box3A","_box3B","_sphere","_quaternionA","_quaternionB","_rotationMatrix","_raycaster","init_chunk_DA2VURNJ","_CameraControls","libs","truckX","pedestalY","targetDistance","deltaX","deltaY","dragToOffset","dollyScale","lastDistance","clampedDistance","overflowedDistance","zoomScale","lastZoom","zoom","dragStartPosition","lastDragPosition","dollyStart","onPointerDown","elRect","mouseButton","zombiePointer","onPointerMove","onPointerUp","startDragging","dragging","endDragging","lastScrollTimeStamp","onMouseWheel","deltaYFactor","onContextMenu","lockedPointer","dollyX","dollyY","dollyDirection","dollyDelta","onPointerLockChange","onPointerLockError","domElement2","azimuthAngle","polarAngle","boundaryEnclosesCamera","interactiveArea","resolveImmediately","lastRadius","maxDistanceByCollisionTest","isCollided","zoomStep","promises","aabb","box3OrObject","viewFromPolar","bb","paddingLeft","paddingBottom","paddingRight","paddingTop","bbSize","sphereOrMesh","distanceToFit","diameter","positionX","positionY","positionZ","targetA","targetAX","targetAY","targetAZ","positionA","positionAX","positionAY","positionAZ","targetB","targetBX","targetBY","targetBZ","positionB","positionBX","positionBY","positionBZ","deltaTheta","deltaPhi","deltaRadius","pos","cameraToPoint","box3","viewportOrX","boundingRectAspect","vFOV","hFOV","receiveEndValue","cameraDirection","side","deltaTarget","deltaOffset","deltaZoom","dollyControlAmount","planeX","planeY","worldToScreen","lerpRatio","cursor","newTargetEnd","isMin","isMax","dollyAmount","targetEndDiff","worldCursorPosition","prevPlaneConstant","newPlaneConstant","pullBack","maxDistance","updated","activePointer","offsetLength2","newTarget","deltaClampedTarget","deltaClampedTargetLength2","friction","offsetFactor","zoomInv","rayDirection","nearPlaneCorner","rect","onResolve","object3d","Controls","init_chunk_4MKFODLT","useRGBELoader","RGBELoader","init_chunk_UIVFRJXT","rgbe_error","rgbe_error_code","msg","fgets","buffer2","chunk","lineLimit","consume","RGBE_ReadHeader","magic_token_re","gamma_re","exposure_re","format_re","dimensions_re","header","RGBE_ReadPixels_RLE","scanline_width","w2","data_rgba","ptr_end","rgbeStart","scanline_buffer","num_scanlines","ptr","isEncodedRun","byteValue","off","RGBEByteToRGBFloat","sourceOffset","destOffset","RGBEByteToRGBHalf","byteArray","rgbe_header_info","image_rgba_data","numElements","floatArray","halfArray","onLoadCallback","EnvironmentMap","envPreset","defaultScene","resolveScene","oldenv","isRef","init_chunk_2S5ZDPTV","Lights","lightType","brightness","Loader","init_chunk_YBH3ZCKF","vertex_default","fragment_default","vertexSphere_default","fragmentSphere_default","init_chunk_WMVG427C","Geometry","meshCount","init_chunk_WBM42ICI","hexToRgb","rgbStringToRgb","rgbString","colorToRgb","formatColor","Materials","init_chunk_OH6HADGN","uC1","uC2","uC3","rgbColors","uniformValues","onInit","animate","Mesh","rotationX","rotationY","rotationZ","color3","uDensity","uStrength","init_chunk_ZHIRR2QJ","decodeComponents","split","decode","tokens","singleMatcher","customDecodeURIComponent","replaceMap","multiMatcher","__cjs_default__","global","encoderForArrayFormat","encode","keyValueSep","parserForArrayFormat","accumulator","isArray","isEncodedArray","decode2","arrayValue","validateArrayFormatSeparator","strictUriEncode","decodeComponent","keysSorter","removeHash","hashStart","getHash","extract","queryStart","parseValue","parse","formatter","ret","param","splitOnFirst","filter_obj_exports","exports","filter_obj_default","split_on_first_exports","exports2","module2","split_on_first_default","decode_uri_component_exports","exports3","module3","token","decode_uri_component_default","strict_uri_encode_exports","exports4","module4","strict_uri_encode_default","exports5","module5","filterObject","isNullOrUndefined","encodeFragmentIdentifier","__export1","init_chunk_AVODCFKL","predicate","separator","separatorIndex","encodedURI","str","shouldFilter","objectCopy","url_","queryFromUrl","parsedQueryFromUrl","queryString","exclusionFilter","\"extract\"","\"parse\"","\"stringify\"","\"parseUrl\"","\"stringifyUrl\"","\"pick\"","\"exclude\"","presets","init_chunk_VTSZNOAZ","ShaderGradient$1","_a","passedProps","grain","init_chunk_6GMBAIZ4","FramerShaderGradient","rest","cameraAngle","noise","init_FramerShaderGradient","ShaderGradient","init_ShaderGradient_3","addPropertyOverrides$11","variants","nextOverrides","variant","overrides","ShaderGradientFonts","MotionDivWithFXWithOptimizedAppearEffect","cycleOrder$11","serializationHash$12","variantClassNames$12","transition1$11","animation$3","animation1$3","Transition$12","Variants$12","humanReadableVariantMap$11","getProps$17","createLayoutDependency$12","FramereHx70Ztok","init_eHx70Ztok","transition","contextValue","restProps","layoutDependency","scopingClassNames","ref1","defaultLayoutId","layoutId","gestureHandlers","className","classNames","baseVariant","gestureVariant","noopReturn","init_index_es","init_index_es$1","init_index_es$2","__rest","init_tslib_es6","n$1","init_dist","init_index_es$3","resolveElements","inView$1","getElementSize","notifyTarget","notifyAll","createResizeObserver","resizeElement","createWindowResizeHandler","resizeWindow","dispatchPointerEvent","dispatchViewEvent","asTransformCssVar","testAnimation","mouseEvent","init_index_es$4","Ticker","fadeOptions","sizingOptions","paddingValue","paddingPerSide","padding","currentTarget","isCanvas","filteredSlots","slots","numChildren","hasChildren","isHorizontal","transformer","directionTransformers","parentRef","childrenRef","setSize","clonedChildren","dupedChildren","duplicateBy","MAX_DUPLICATED_ITEMS","measure","parentLength","childrenLength","gap","childrenStyles","initialResize","contentSize","widthType","heightType","isInView","childIndex","animateToValue","isHover","isReducedMotion","listRef","animationRef","speed","hoverFactor","playOrPause","hidden","fadeDirection","fadeWidthStart","fadeWidth","fadeWidthEnd","fadeMask","fadeAlpha","clamp","fadeInset","containerStyle","fadeContent","overflow","isValidNumber","alignment","placeholderStyles","emojiStyles","titleStyles","subtitleStyles","init_Ticker","fonts$12","css$20","className$12","init_dwOfG7XgH","fonts$11","css$19","className$11","init_OiVNRM89a","fonts$10","css$18","className$10","init_RKGxIaBMW","fonts$9","css$17","className$9","init_oyQrFUwBY","addPropertyOverrides$10","PhosphorFonts$3","PhosphorControls$1","cycleOrder$10","serializationHash$11","variantClassNames$11","transition1$10","Transition$11","humanReadableVariantMap$10","Variants$11","humanReadableEnumMap","humanReadableEnumMap1","getProps$16","createLayoutDependency$11","Component$7","css$16","FramerF6ZhvI1ZC","init_F6ZhvI1ZC","section","textColor","iconColor","distribute","iconName","fallbackRef","refBinding","vyt13HORf","U71_cGil4","yRfDwWF7Q","wq561nFkG","jGfDTZg8d","h5mTi1koL","\"iconSelection\"","\"weight\"","addPropertyOverrides$9","PhosphorFonts$2","enabledGestures$4","cycleOrder$9","serializationHash$10","variantClassNames$10","transition1$9","transition2$4","Transition$10","Variants$10","humanReadableVariantMap$9","getProps$15","createLayoutDependency$10","Component$6","css$15","FramervgBqmh6lv","init_vgBqmh6lv","title","link","isDisplayed","tUkIe0hVq","LifcxX_Fm","fonts$8","css$14","className$8","init_eqtenyFat","fonts$7","css$13","className$7","init_oyGO3_Izt","addPropertyOverrides$8","PhosphorFonts$1","PhosphorControls","enabledGestures$3","cycleOrder$8","serializationHash$9","variantClassNames$9","transition1$8","Transition$9","Variants$9","humanReadableVariantMap$8","getProps$14","createLayoutDependency$9","Component$5","css$12","FramerlgKeAsBNa","init_lgKeAsBNa","iconLeft","phospherIcon","iconRight","newTab","GrpQ8zFBL","SM93ZbT4W","mKwdituEw","FsefAOOPs","RCPR2dydG","cRoeZpcrs","RmbCx19YN","addPropertyOverrides$7","enabledGestures$2","cycleOrder$7","serializationHash$8","variantClassNames$8","transition1$7","transition2$3","Transition$8","humanReadableVariantMap$7","Variants$8","getProps$13","createLayoutDependency$8","Component$4","css$11","FramerRvt29oeAL","init_Rvt29oeAL","click","hover","pageName","onTappl9465","activeVariantCallback","setGestureState","jeZtiIfD1","onMouseEnter1vzdodp","S2DktiVNL","x7kSahbL4","FevlqhOb5","vr3GalQZm","addPropertyOverrides$6","NavigationNavLinkFonts$1","cycleOrder$6","serializationHash$7","variantClassNames$7","transition1$6","matchVariant$4","Transition$7","humanReadableVariantMap$6","Variants$7","getProps$12","createLayoutDependency$7","Component$3","css$10","FramermKi0anJwt","init_mKi0anJwt","arg","companyDescription","componentViewport","MLc2difUh","resolvedLinks","resolvedLinks1","resolvedLinks2","resolvedLinks3","resolvedLinks4","resolvedLinks5","resolvedLinks6","resolvedLinks7","resolvedLinks8","resolvedLinks9","mask$4","Base$4","MotionSVG$4","SVG$4","svg$4","getProps$11","Icon$6","init_fYpCfNn8R","animated","width1","href","qxTvv_EBh","ezTt3ayMo","lschgej4H","mask$3","Base$3","MotionSVG$3","SVG$3","svg$3","getProps$10","Icon$5","init_qaecwyQhQ","mask$2","Base$2","MotionSVG$2","SVG$2","svg$2","getProps$9","Icon$4","init_dB8DgMI7m","mask$1","Base$1","MotionSVG$1","SVG$1","svg$1","getProps$8","Icon$3","init_ILlKpAwNA","Base","MotionSVG","SVG","svg","getProps$7","Icon$2","init_C2dJZ1Mny","init_utils_MaUy","Icon$1","iconKeys$1","lowercaseIconKeyPairs$1","moduleBaseUrl$1","weightOptions","init_Phosphor$1","addPropertyOverrides$5","PhosphorFonts","Phosphor1Controls","enabledGestures$1","cycleOrder$5","serializationHash$6","variantClassNames$6","transition1$5","Transition$6","humanReadableVariantMap$5","Variants$6","getProps$6","createLayoutDependency$6","FramerYvXKgVWSM","init_YvXKgVWSM","icon","page","description","onMouseEnterjbqxow","JxS39eB8d","isDisplayed1","pLBUm7cCY","gxMJH5Dfk","SjFy9z8Vn","XW1Q11KMX","addPropertyOverrides$4","TerciaryCTAFonts$1","DropdownLinksFonts$1","cycleOrder$4","serializationHash$5","variantClassNames$5","transition1$4","matchVariant$3","Transition$5","humanReadableVariantMap$4","Variants$5","getProps$5","createLayoutDependency$5","FramerMqTWH19Qx","init_MqTWH19Qx","JxS39eB8d1ql7jkp","setVariant","init_home","Icon","iconKeys","lowercaseIconKeyPairs","active","moduleBaseUrl","uppercaseIconKeys","init_Feather","addPropertyOverrides$3","FeatherFonts","LinksDropdownFonts$1","enabledGestures","cycleOrder$3","serializationHash$4","variantClassNames$4","transition1$3","transition2$2","matchVariant$2","Transition$4","humanReadableVariantMap$3","Variants$4","getProps$4","createLayoutDependency$4","Component$2","css$9","FramermX_gz7Doj","init_mX_gz7Doj","onTap1ls98dx","onTap1atkffj","addPropertyOverrides$2","LogoFonts","HamburgerButtonFonts","LinksDropdownFonts","NavLinkDropdownFonts","MotionDivWithFX","NavigationNavLinkFonts","WarehouseFonts","DropdownLinksFonts","CurrencyCircleDollarFonts","NewspaperClippingFonts","CodeBlockFonts","UsersThreeFonts","TerciaryCTAFonts","ButtonsButtonFonts$1","cycleOrder$2","serializationHash$3","variantClassNames$3","transition1$2","transition2$1","matchVariant$1","transition3","transition4","animation$2","animation1$2","animation2","Overlay","transition5","animation3","animation4","animation5","Transition$3","humanReadableVariantMap$2","Variants$3","getProps$3","createLayoutDependency$3","Component$1","css$8","FramerNvEMI9F73","init_NvEMI9F73","visible","setVisible","dismissWithEsc","hKuB2S4dS16iexip","hKuB2S4dSrwij0e","S2DktiVNL13elrgn","overlay","parentLayoutId","componentScopeId","ref2","ref3","isDisplayed2","ref4","isDisplayed3","ref5","ref6","jeZtiIfD1n06ohy","ref7","ref8","ref9","ref10","ref11","ref12","overlay1","overlay2","overlay3","overlay4","overlay5","resolvedLinks10","resolvedLinks11","addPropertyOverrides$1","TickerFonts$1","MotionSectionWithFXWithOptimizedAppearEffect","cycleOrder$1","serializationHash$2","variantClassNames$2","animation$1","animation1$1","transition2","Transition$2","Variants$2","humanReadableVariantMap$1","getProps$2","createLayoutDependency$2","FramerQPeXi6Lzr","init_QPeXi6Lzr","fonts$6","css$7","className$6","init_GiLAKWVpB","fonts$5","css$6","className$5","init_JyVUMpsJt","fonts$4","css$5","className$4","init_AfSbvoluX","fonts$3","css$4","className$3","init_TWMMt7QpR","fonts$2","css$3","className$2","init_GyyhZkl87","TickerFonts","serializationHash$1","variantClassNames$1","transition1$1","Transition$1","Variants$1","getProps$1","createLayoutDependency$1","FramerpzL8a0dup","init_pzL8a0dup","addPropertyOverrides","BadgeOverlineFonts","ButtonsButtonFonts","SmartComponentScopedContainerWithFXWithOptimizedAppearEffect","FlowAnimationFonts","cycleOrder","serializationHash","variantClassNames","transition1","matchVariant","animation1","Transition","humanReadableVariantMap","Variants","getProps","createLayoutDependency","Component","css$2","FramerYAgo0KP6d","init_YAgo0KP6d","fonts$1","css$1","className$1","init_rgOrMEYj1","fonts","css","init_cpwF0WKAN","init_siteMetadata"],"sources":["https:/framerusercontent.com/modules/Qc8yuHkQmGO0kFiSWbkX/rVmMAFttOHuuiwSg6KjZ/House.js","https:/framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-5BEQP2BQ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-Z4XR7UL5.mjs","https:/ga.jspm.io/npm:react-reconciler@0.29.2/constants.js","https:/ga.jspm.io/npm:react-reconciler@0.29.2/cjs/react-reconciler.production.min.js","https:/ga.jspm.io/npm:react-reconciler@0.29.2/index.js","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WS7WB67W.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-SX7QUDKQ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-CWHPURPD.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4Z3JUAHA.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-FZIV7POA.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-YUIDVF63.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-USQFKVUW.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-2S3VJM34.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-IRMTC4UN.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-3U6A2N6D.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-O7SDERYP.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4NRCS6EB.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-KD5UHE3V.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-XLXOMSVB.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-5TNITGB6.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-G7COPUKV.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-KO4ISVNC.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-DA2VURNJ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4MKFODLT.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-UIVFRJXT.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-2S5ZDPTV.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-YBH3ZCKF.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WMVG427C.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WBM42ICI.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-BI5IV7LU.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-OH6HADGN.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-ZHIRR2QJ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-AVODCFKL.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-VTSZNOAZ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-6GMBAIZ4.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/FramerShaderGradient.mjs","https:/framerusercontent.com/modules/eHvUILZR0c2vMx0hHjI1/G0OS3ugjmvFGXj8OojiG/ShaderGradient_3.js","https:/framerusercontent.com/modules/4txNyg3eqzWPtrbr3hye/wioOgx9JCsPRUrWkapDc/eHx70Ztok.js","https:/ga.jspm.io/npm:@motionone/utils@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.4.0/tslib.es6.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/generators@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.12.0/dist/index.es.js","https:/framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/LHz3bw67SqHRmnCKTlE6/Ticker.js","https:/framerusercontent.com/modules/d2h9DTRna5ZliTULyEwZ/BIP8qHCRTLyNVo5dQF0S/dwOfG7XgH.js","https:/framerusercontent.com/modules/ky5wbStELp8XEBh1cle4/Q7DqMcr5ST8jRA0G6Nvg/OiVNRM89a.js","https:/framerusercontent.com/modules/2FiZOdGwVXeBRMM1zILn/eAbluGor3QDNUpviDpYp/RKGxIaBMW.js","https:/framerusercontent.com/modules/bTvmhpODvTLN8GaO1ABZ/dHhxOuU65yyMveYc7cBM/oyQrFUwBY.js","https:/framerusercontent.com/modules/yKr8ir8X3wgqOuWQLYvu/O1dCCTKKaZSeoXNkqGhF/F6ZhvI1ZC.js","https:/framerusercontent.com/modules/EKnngIAuUI6TsAi6uQ1G/wAXm7Y2xHUdhVDXZJTSv/vgBqmh6lv.js","https:/framerusercontent.com/modules/JjgJ53tSYCs2p5jaMD0Y/jcPcn5LbBCqqFe9rrc4x/eqtenyFat.js","https:/framerusercontent.com/modules/wy2xd55SZPJVYFyd4aYR/b8LVDW2pBD8zHgeClMuq/oyGO3_Izt.js","https:/framerusercontent.com/modules/bT9KKHrIkFvP9fd3DREm/vZ4byS3dhfH23GJASHzl/lgKeAsBNa.js","https:/framerusercontent.com/modules/AlNWcCCeivyNNOd81gyW/AMNvqcW74IdPEVLR16s7/Rvt29oeAL.js","https:/framerusercontent.com/modules/oBsrvWMahxwpVUsi7RNo/oYJRF0ppEY6ibzYnR1WR/mKi0anJwt.js","https:/framerusercontent.com/modules/5xPouwvQM8G7ZhDlYMOi/GZuaYCQlJCTIgDmF0TD0/fYpCfNn8R.js","https:/framerusercontent.com/modules/C6mQ7TFcYytYISJWneeK/yLFrmBiRAFhxG5gXRZKZ/qaecwyQhQ.js","https:/framerusercontent.com/modules/O5RaG1McVbUBcjK13zz1/d14L6gVLK922EvAKI1C4/dB8DgMI7m.js","https:/framerusercontent.com/modules/oeG6xBwo7PnoRBdoRf9u/zD6oCfAKePdei90zk0xl/ILlKpAwNA.js","https:/framerusercontent.com/modules/WCNBSlB0dO1xWTHTWirH/dfoYiV7W0HOw89UQw2Er/C2dJZ1Mny.js","https:/framer.com/m/utils-MaUy.js@OSpwWF91FHPVFyQJjMHt","https:/framerusercontent.com/modules/V2gQ6rBc1czq5vzQcz5e/zkOCpcrZKye0wlfjjjoe/Phosphor.js","https:/framerusercontent.com/modules/rufuw62Ri2jtwKAUtJkY/Mv7VaYlOc3Q9retoN1wb/YvXKgVWSM.js","https:/framerusercontent.com/modules/sxr12InKbIQSCti0PM6a/1cCDvY7DCe6v5V1fjGkl/MqTWH19Qx.js","https:/framerusercontent.com/modules/8tFVJ9SCM5akQRM0UzVD/YkxZV5bKC4LrRDEdvAgQ/home.js","https:/framerusercontent.com/modules/f0DboytQenYh21kfme7W/zb1zVBMZJKgPMiedOi0y/Feather.js","https:/framerusercontent.com/modules/vwdy6Q92Hav6Qbo934Hi/e9tHVngIBXXDaAf45rMY/mX_gz7Doj.js","https:/framerusercontent.com/modules/k4CrW86lXCBJNtkcrSuq/qA7r1jNQGvRRm0AQW4Ka/NvEMI9F73.js","https:/framerusercontent.com/modules/nWcklLcxY8LDRfR5M7aG/YtIMGrS4KZekx3NoIgMD/QPeXi6Lzr.js","https:/framerusercontent.com/modules/gS4N6jvITXHmlWC2kQlq/BxRr7kG4cxItbOwAIf32/GiLAKWVpB.js","https:/framerusercontent.com/modules/RSI6qXo8uPQ8XtBMXFL7/egvWts5grydW1B9KFa6n/JyVUMpsJt.js","https:/framerusercontent.com/modules/vgQyI9VZ9ChLgJEBOZfo/sEEURhOGJU4ipUkC3sRH/AfSbvoluX.js","https:/framerusercontent.com/modules/CvxeCX4bvBvvglMPclpM/eQ63ZQNZfn2nlJd1txfx/TWMMt7QpR.js","https:/framerusercontent.com/modules/xRPkMNBjg2xALyKEsbqo/OG9axSMdfZjBzkPO2I14/GyyhZkl87.js","https:/framerusercontent.com/modules/ruB4N16EY9vHIdMcaQ5U/F7M8ZuU208whcgx6OMvY/pzL8a0dup.js","https:/framerusercontent.com/modules/hL11PGslDOQb3YxPOAwK/vQoeF8CrvjJ4M9XpfDqX/YAgo0KP6d.js","https:/framerusercontent.com/modules/7F0UOlJTdepOXB6n4HSE/Zt25mAHTm1PdOWsMTrqE/rgOrMEYj1.js","https:/framerusercontent.com/modules/lzpQkcNbIDB4oDBjJFX2/ymWdmtgEqi7A0gSzTANW/cpwF0WKAN.js","https:/framerusercontent.com/modules/wJyGMnAarreAanC4NW6k/JdsmyKtLGk7tzVMI98Fo/siteMetadata.js"],"sourcesContent":["let Component;\nlet IconInner;\nvar Icon = (React) => {\n  if (!Component) {\n    Component = /* @__PURE__ */ new Map([\n      [\n        \"bold\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n      ],\n      [\n        \"duotone\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n          \"path\",\n          {\n            d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n            opacity: \"0.2\"\n          }\n        ), /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"fill\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n      ],\n      [\n        \"light\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n      ],\n      [\n        \"regular\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"thin\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n      ]\n    ]);\n    IconInner = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(\"g\", { ref, ...props }, Component.get(props.weight)));\n  }\n  return IconInner;\n};\nconst __FramerMetadata__ = {\n  exports: {\n    default: {\n      type: \"reactComponent\",\n      slots: [],\n      annotations: { framerContractVersion: \"1\" }\n    },\n    __FramerMetadata__: { type: \"variable\" }\n  }\n};\nvar House_default = Icon;\nexport {\n  __FramerMetadata__,\n  House_default as default\n};\n","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HouseFactory from\"https://framer.com/m/phosphor-icons/House.js@0.0.57\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";const iconKeys=[\"Acorn\",\"AddressBook\",\"AddressBookTabs\",\"AirTrafficControl\",\"Airplane\",\"AirplaneInFlight\",\"AirplaneLanding\",\"AirplaneTakeoff\",\"AirplaneTaxiing\",\"AirplaneTilt\",\"Airplay\",\"Alarm\",\"Alien\",\"AlignBottom\",\"AlignBottomSimple\",\"AlignCenterVertical\",\"AlignLeft\",\"AlignLeftSimple\",\"AlignRight\",\"AlignRightSimple\",\"AlignTop\",\"AlignTopSimple\",\"AmazonLogo\",\"Ambulance\",\"Anchor\",\"AnchorSimple\",\"AndroidLogo\",\"Angle\",\"AngularLogo\",\"Aperture\",\"AppStoreLogo\",\"AppWindow\",\"AppleLogo\",\"ApplePodcastsLogo\",\"ApproximateEquals\",\"Archive\",\"ArchiveBox\",\"ArchiveTray\",\"Armchair\",\"ArrowArcLeft\",\"ArrowArcRight\",\"ArrowBendDownLeft\",\"ArrowBendDownRight\",\"ArrowBendLeftDown\",\"ArrowBendLeftUp\",\"ArrowBendRightDown\",\"ArrowBendRightUp\",\"ArrowBendUpLeft\",\"ArrowBendUpRight\",\"ArrowCircleDown\",\"ArrowCircleDownLeft\",\"ArrowCircleDownRight\",\"ArrowCircleLeft\",\"ArrowCircleRight\",\"ArrowCircleUp\",\"ArrowCircleUpLeft\",\"ArrowCircleUpRight\",\"ArrowClockwise\",\"ArrowDown\",\"ArrowDownLeft\",\"ArrowDownRight\",\"ArrowElbowDownLeft\",\"ArrowElbowDownRight\",\"ArrowElbowLeft\",\"ArrowElbowLeftDown\",\"ArrowElbowLeftUp\",\"ArrowElbowRight\",\"ArrowElbowRightDown\",\"ArrowElbowRightUp\",\"ArrowElbowUpLeft\",\"ArrowElbowUpRight\",\"ArrowFatDown\",\"ArrowFatLeft\",\"ArrowFatLineDown\",\"ArrowFatLineLeft\",\"ArrowFatLineRight\",\"ArrowFatLineUp\",\"ArrowFatLinesDown\",\"ArrowFatLinesLeft\",\"ArrowFatLinesRight\",\"ArrowFatLinesUp\",\"ArrowFatRight\",\"ArrowFatUp\",\"ArrowLeft\",\"ArrowLineDown\",\"ArrowLineDownLeft\",\"ArrowLineDownRight\",\"ArrowLineLeft\",\"ArrowLineRight\",\"ArrowLineUp\",\"ArrowLineUpLeft\",\"ArrowLineUpRight\",\"ArrowRight\",\"ArrowSquareDown\",\"ArrowSquareDownLeft\",\"ArrowSquareDownRight\",\"ArrowSquareIn\",\"ArrowSquareLeft\",\"ArrowSquareOut\",\"ArrowSquareRight\",\"ArrowSquareUp\",\"ArrowSquareUpLeft\",\"ArrowSquareUpRight\",\"ArrowUDownLeft\",\"ArrowUDownRight\",\"ArrowULeftDown\",\"ArrowULeftUp\",\"ArrowURightDown\",\"ArrowURightUp\",\"ArrowUUpLeft\",\"ArrowUUpRight\",\"ArrowUp\",\"ArrowUpLeft\",\"ArrowUpRight\",\"ArrowsClockwise\",\"ArrowsDownUp\",\"ArrowsHorizontal\",\"ArrowsIn\",\"ArrowsInCardinal\",\"ArrowsInLineVertical\",\"ArrowsInSimple\",\"ArrowsLeftRight\",\"ArrowsMerge\",\"ArrowsOut\",\"ArrowsOutCardinal\",\"ArrowsOutSimple\",\"ArrowsSplit\",\"ArrowsVertical\",\"Article\",\"ArticleMedium\",\"ArticleNyTimes\",\"Asclepius\",\"Asterisk\",\"AsteriskSimple\",\"At\",\"Atom\",\"Avocado\",\"Axe\",\"Baby\",\"BabyCarriage\",\"Backpack\",\"Backspace\",\"Bag\",\"BagSimple\",\"Balloon\",\"Bandaids\",\"Bank\",\"Barbell\",\"Barcode\",\"Barn\",\"Barricade\",\"Baseball\",\"BaseballCap\",\"BaseballHelmet\",\"Basket\",\"Basketball\",\"Bathtub\",\"BatteryCharging\",\"BatteryEmpty\",\"BatteryFull\",\"BatteryHigh\",\"BatteryLow\",\"BatteryMedium\",\"BatteryPlus\",\"BatteryPlusVertical\",\"BatteryVerticalEmpty\",\"BatteryVerticalFull\",\"BatteryVerticalHigh\",\"BatteryVerticalLow\",\"BatteryWarning\",\"BeachBall\",\"Beanie\",\"Bed\",\"BeerBottle\",\"BeerStein\",\"BehanceLogo\",\"Bell\",\"BellRinging\",\"BellSimple\",\"BellSimpleRinging\",\"BellSimpleSlash\",\"BellSimpleZ\",\"BellSlash\",\"BellZ\",\"Belt\",\"BezierCurve\",\"Bicycle\",\"Binary\",\"Binoculars\",\"Biohazard\",\"Bird\",\"Blueprint\",\"Bluetooth\",\"BluetoothConnected\",\"BluetoothSlash\",\"BluetoothX\",\"Boat\",\"Bomb\",\"Bone\",\"Book\",\"BookBookmark\",\"BookOpen\",\"BookOpenText\",\"BookOpenUser\",\"BookUser\",\"Bookmark\",\"BookmarkSimple\",\"Bookmarks\",\"BookmarksSimple\",\"Books\",\"Boot\",\"Boules\",\"BoundingBox\",\"BowlFood\",\"BowlSteam\",\"BowlingBall\",\"BoxArrowDown\",\"BoxArrowUp\",\"BoxingGlove\",\"BracketsAngle\",\"BracketsCurly\",\"BracketsRound\",\"BracketsSquare\",\"Brain\",\"Brandy\",\"Bread\",\"Bridge\",\"Briefcase\",\"BriefcaseMetal\",\"Broadcast\",\"Broom\",\"Browser\",\"Browsers\",\"Bug\",\"BugBeetle\",\"BugDroid\",\"Building\",\"BuildingApartment\",\"BuildingOffice\",\"Buildings\",\"Bulldozer\",\"Bus\",\"Butterfly\",\"CableCar\",\"Cactus\",\"Cake\",\"Calculator\",\"Calendar\",\"CalendarBlank\",\"CalendarCheck\",\"CalendarDot\",\"CalendarDots\",\"CalendarHeart\",\"CalendarMinus\",\"CalendarPlus\",\"CalendarSlash\",\"CalendarStar\",\"CalendarX\",\"CallBell\",\"Camera\",\"CameraPlus\",\"CameraRotate\",\"CameraSlash\",\"Campfire\",\"Car\",\"CarBattery\",\"CarProfile\",\"CarSimple\",\"Cardholder\",\"Cards\",\"CardsThree\",\"CaretCircleDoubleUp\",\"CaretCircleDown\",\"CaretCircleLeft\",\"CaretCircleRight\",\"CaretCircleUp\",\"CaretCircleUpDown\",\"CaretDoubleDown\",\"CaretDoubleLeft\",\"CaretDoubleRight\",\"CaretDoubleUp\",\"CaretDown\",\"CaretLeft\",\"CaretLineDown\",\"CaretLineLeft\",\"CaretLineRight\",\"CaretLineUp\",\"CaretRight\",\"CaretUp\",\"CaretUpDown\",\"Carrot\",\"CashRegister\",\"CassetteTape\",\"CastleTurret\",\"Cat\",\"CellSignalFull\",\"CellSignalHigh\",\"CellSignalLow\",\"CellSignalMedium\",\"CellSignalNone\",\"CellSignalSlash\",\"CellSignalX\",\"CellTower\",\"Certificate\",\"Chair\",\"Chalkboard\",\"ChalkboardSimple\",\"ChalkboardTeacher\",\"Champagne\",\"ChargingStation\",\"ChartBar\",\"ChartBarHorizontal\",\"ChartDonut\",\"ChartLine\",\"ChartLineDown\",\"ChartLineUp\",\"ChartPie\",\"ChartPieSlice\",\"ChartPolar\",\"ChartScatter\",\"Chat\",\"ChatCentered\",\"ChatCenteredDots\",\"ChatCenteredSlash\",\"ChatCenteredText\",\"ChatCircle\",\"ChatCircleDots\",\"ChatCircleSlash\",\"ChatCircleText\",\"ChatDots\",\"ChatSlash\",\"ChatTeardrop\",\"ChatTeardropDots\",\"ChatTeardropSlash\",\"ChatTeardropText\",\"ChatText\",\"Chats\",\"ChatsCircle\",\"ChatsTeardrop\",\"Check\",\"CheckCircle\",\"CheckFat\",\"CheckSquare\",\"CheckSquareOffset\",\"Checkerboard\",\"Checks\",\"Cheers\",\"Cheese\",\"ChefHat\",\"Cherries\",\"Church\",\"Cigarette\",\"CigaretteSlash\",\"Circle\",\"CircleDashed\",\"CircleHalf\",\"CircleHalfTilt\",\"CircleNotch\",\"CirclesFour\",\"CirclesThree\",\"CirclesThreePlus\",\"Circuitry\",\"City\",\"Clipboard\",\"ClipboardText\",\"Clock\",\"ClockAfternoon\",\"ClockClockwise\",\"ClockCountdown\",\"ClockUser\",\"ClosedCaptioning\",\"Cloud\",\"CloudArrowDown\",\"CloudArrowUp\",\"CloudCheck\",\"CloudFog\",\"CloudLightning\",\"CloudMoon\",\"CloudRain\",\"CloudSlash\",\"CloudSnow\",\"CloudSun\",\"CloudWarning\",\"CloudX\",\"Clover\",\"Club\",\"CoatHanger\",\"CodaLogo\",\"Code\",\"CodeBlock\",\"CodeSimple\",\"CodepenLogo\",\"CodesandboxLogo\",\"Coffee\",\"CoffeeBean\",\"Coin\",\"CoinVertical\",\"Coins\",\"Columns\",\"ColumnsPlusLeft\",\"ColumnsPlusRight\",\"Command\",\"Compass\",\"CompassRose\",\"CompassTool\",\"ComputerTower\",\"Confetti\",\"ContactlessPayment\",\"Control\",\"Cookie\",\"CookingPot\",\"Copy\",\"CopySimple\",\"Copyleft\",\"Copyright\",\"CornersIn\",\"CornersOut\",\"Couch\",\"CourtBasketball\",\"Cow\",\"CowboyHat\",\"Cpu\",\"Crane\",\"CraneTower\",\"CreditCard\",\"Cricket\",\"Crop\",\"Cross\",\"Crosshair\",\"CrosshairSimple\",\"Crown\",\"CrownCross\",\"CrownSimple\",\"Cube\",\"CubeFocus\",\"CubeTransparent\",\"CurrencyBtc\",\"CurrencyCircleDollar\",\"CurrencyCny\",\"CurrencyDollar\",\"CurrencyDollarSimple\",\"CurrencyEth\",\"CurrencyEur\",\"CurrencyGbp\",\"CurrencyInr\",\"CurrencyJpy\",\"CurrencyKrw\",\"CurrencyKzt\",\"CurrencyNgn\",\"CurrencyRub\",\"Cursor\",\"CursorClick\",\"CursorText\",\"Cylinder\",\"Database\",\"Desk\",\"Desktop\",\"DesktopTower\",\"Detective\",\"DevToLogo\",\"DeviceMobile\",\"DeviceMobileCamera\",\"DeviceMobileSlash\",\"DeviceMobileSpeaker\",\"DeviceRotate\",\"DeviceTablet\",\"DeviceTabletCamera\",\"DeviceTabletSpeaker\",\"Devices\",\"Diamond\",\"DiamondsFour\",\"DiceFive\",\"DiceFour\",\"DiceOne\",\"DiceSix\",\"DiceThree\",\"DiceTwo\",\"Disc\",\"DiscoBall\",\"DiscordLogo\",\"Divide\",\"Dna\",\"Dog\",\"Door\",\"DoorOpen\",\"Dot\",\"DotOutline\",\"DotsNine\",\"DotsSix\",\"DotsSixVertical\",\"DotsThree\",\"DotsThreeCircle\",\"DotsThreeOutline\",\"DotsThreeVertical\",\"Download\",\"DownloadSimple\",\"Dress\",\"Dresser\",\"DribbbleLogo\",\"Drone\",\"Drop\",\"DropHalf\",\"DropHalfBottom\",\"DropSimple\",\"DropSlash\",\"DropboxLogo\",\"Ear\",\"EarSlash\",\"Egg\",\"EggCrack\",\"Eject\",\"EjectSimple\",\"Elevator\",\"Empty\",\"Engine\",\"Envelope\",\"EnvelopeOpen\",\"EnvelopeSimple\",\"EnvelopeSimpleOpen\",\"Equalizer\",\"Equals\",\"Eraser\",\"EscalatorDown\",\"EscalatorUp\",\"Exam\",\"ExclamationMark\",\"Exclude\",\"ExcludeSquare\",\"Export\",\"Eye\",\"EyeClosed\",\"EyeSlash\",\"Eyedropper\",\"EyedropperSample\",\"Eyeglasses\",\"Eyes\",\"FaceMask\",\"FacebookLogo\",\"Factory\",\"Faders\",\"FadersHorizontal\",\"FalloutShelter\",\"Fan\",\"Farm\",\"FastForward\",\"FastForwardCircle\",\"Feather\",\"FediverseLogo\",\"FigmaLogo\",\"File\",\"FileArchive\",\"FileArrowDown\",\"FileArrowUp\",\"FileAudio\",\"FileC\",\"FileCloud\",\"FileCode\",\"FileCpp\",\"FileCss\",\"FileCsv\",\"FileDashed\",\"FileDoc\",\"FileHtml\",\"FileImage\",\"FileIni\",\"FileJpg\",\"FileJs\",\"FileJsx\",\"FileLock\",\"FileMagnifyingGlass\",\"FileMd\",\"FileMinus\",\"FilePdf\",\"FilePlus\",\"FilePng\",\"FilePpt\",\"FilePy\",\"FileRs\",\"FileSql\",\"FileSvg\",\"FileText\",\"FileTs\",\"FileTsx\",\"FileTxt\",\"FileVideo\",\"FileVue\",\"FileX\",\"FileXls\",\"FileZip\",\"Files\",\"FilmReel\",\"FilmScript\",\"FilmSlate\",\"FilmStrip\",\"Fingerprint\",\"FingerprintSimple\",\"FinnTheHuman\",\"Fire\",\"FireExtinguisher\",\"FireSimple\",\"FireTruck\",\"FirstAid\",\"FirstAidKit\",\"Fish\",\"FishSimple\",\"Flag\",\"FlagBanner\",\"FlagBannerFold\",\"FlagCheckered\",\"FlagPennant\",\"Flame\",\"Flashlight\",\"Flask\",\"FlipHorizontal\",\"FlipVertical\",\"FloppyDisk\",\"FloppyDiskBack\",\"FlowArrow\",\"Flower\",\"FlowerLotus\",\"FlowerTulip\",\"FlyingSaucer\",\"Folder\",\"FolderDashed\",\"FolderLock\",\"FolderMinus\",\"FolderNotch\",\"FolderNotchMinus\",\"FolderNotchOpen\",\"FolderNotchPlus\",\"FolderOpen\",\"FolderPlus\",\"FolderSimple\",\"FolderSimpleDashed\",\"FolderSimpleLock\",\"FolderSimpleMinus\",\"FolderSimplePlus\",\"FolderSimpleStar\",\"FolderSimpleUser\",\"FolderStar\",\"FolderUser\",\"Folders\",\"Football\",\"FootballHelmet\",\"Footprints\",\"ForkKnife\",\"FourK\",\"FrameCorners\",\"FramerLogo\",\"Function\",\"Funnel\",\"FunnelSimple\",\"FunnelSimpleX\",\"FunnelX\",\"GameController\",\"Garage\",\"GasCan\",\"GasPump\",\"Gauge\",\"Gavel\",\"Gear\",\"GearFine\",\"GearSix\",\"GenderFemale\",\"GenderIntersex\",\"GenderMale\",\"GenderNeuter\",\"GenderNonbinary\",\"GenderTransgender\",\"Ghost\",\"Gif\",\"Gift\",\"GitBranch\",\"GitCommit\",\"GitDiff\",\"GitFork\",\"GitMerge\",\"GitPullRequest\",\"GithubLogo\",\"GitlabLogo\",\"GitlabLogoSimple\",\"Globe\",\"GlobeHemisphereEast\",\"GlobeHemisphereWest\",\"GlobeSimple\",\"GlobeSimpleX\",\"GlobeStand\",\"GlobeX\",\"Goggles\",\"Golf\",\"GoodreadsLogo\",\"GoogleCardboardLogo\",\"GoogleChromeLogo\",\"GoogleDriveLogo\",\"GoogleLogo\",\"GooglePhotosLogo\",\"GooglePlayLogo\",\"GooglePodcastsLogo\",\"Gps\",\"GpsFix\",\"GpsSlash\",\"Gradient\",\"GraduationCap\",\"Grains\",\"GrainsSlash\",\"Graph\",\"GraphicsCard\",\"GreaterThan\",\"GreaterThanOrEqual\",\"GridFour\",\"GridNine\",\"Guitar\",\"HairDryer\",\"Hamburger\",\"Hammer\",\"Hand\",\"HandArrowDown\",\"HandArrowUp\",\"HandCoins\",\"HandDeposit\",\"HandEye\",\"HandFist\",\"HandGrabbing\",\"HandHeart\",\"HandPalm\",\"HandPeace\",\"HandPointing\",\"HandSoap\",\"HandSwipeLeft\",\"HandSwipeRight\",\"HandTap\",\"HandWaving\",\"HandWithdraw\",\"Handbag\",\"HandbagSimple\",\"HandsClapping\",\"HandsPraying\",\"Handshake\",\"HardDrive\",\"HardDrives\",\"HardHat\",\"Hash\",\"HashStraight\",\"HeadCircuit\",\"Headlights\",\"Headphones\",\"Headset\",\"Heart\",\"HeartBreak\",\"HeartHalf\",\"HeartStraight\",\"HeartStraightBreak\",\"Heartbeat\",\"Hexagon\",\"HighDefinition\",\"HighHeel\",\"Highlighter\",\"HighlighterCircle\",\"Hockey\",\"Hoodie\",\"Horse\",\"Hospital\",\"Hourglass\",\"HourglassHigh\",\"HourglassLow\",\"HourglassMedium\",\"HourglassSimple\",\"HourglassSimpleHigh\",\"HourglassSimpleLow\",\"House\",\"HouseLine\",\"HouseSimple\",\"Hurricane\",\"IceCream\",\"IdentificationBadge\",\"IdentificationCard\",\"Image\",\"ImageBroken\",\"ImageSquare\",\"Images\",\"ImagesSquare\",\"Infinity\",\"Info\",\"InstagramLogo\",\"Intersect\",\"IntersectSquare\",\"IntersectThree\",\"Intersection\",\"Invoice\",\"Island\",\"Jar\",\"JarLabel\",\"Jeep\",\"Joystick\",\"Kanban\",\"Key\",\"KeyReturn\",\"Keyboard\",\"Keyhole\",\"Knife\",\"Ladder\",\"LadderSimple\",\"Lamp\",\"LampPendant\",\"Laptop\",\"Lasso\",\"LastfmLogo\",\"Layout\",\"Leaf\",\"Lectern\",\"Lego\",\"LegoSmiley\",\"LessThan\",\"LessThanOrEqual\",\"LetterCircleH\",\"LetterCircleP\",\"LetterCircleV\",\"Lifebuoy\",\"Lightbulb\",\"LightbulbFilament\",\"Lighthouse\",\"Lightning\",\"LightningA\",\"LightningSlash\",\"LineSegment\",\"LineSegments\",\"LineVertical\",\"Link\",\"LinkBreak\",\"LinkSimple\",\"LinkSimpleBreak\",\"LinkSimpleHorizontal\",\"LinkedinLogo\",\"LinktreeLogo\",\"LinuxLogo\",\"List\",\"ListBullets\",\"ListChecks\",\"ListDashes\",\"ListHeart\",\"ListMagnifyingGlass\",\"ListNumbers\",\"ListPlus\",\"ListStar\",\"Lock\",\"LockKey\",\"LockKeyOpen\",\"LockLaminated\",\"LockLaminatedOpen\",\"LockOpen\",\"LockSimple\",\"LockSimpleOpen\",\"Lockers\",\"Log\",\"MagicWand\",\"Magnet\",\"MagnetStraight\",\"MagnifyingGlass\",\"MagnifyingGlassMinus\",\"MagnifyingGlassPlus\",\"Mailbox\",\"MapPin\",\"MapPinArea\",\"MapPinLine\",\"MapPinPlus\",\"MapPinSimple\",\"MapPinSimpleArea\",\"MapPinSimpleLine\",\"MapTrifold\",\"MarkdownLogo\",\"MarkerCircle\",\"Martini\",\"MaskHappy\",\"MaskSad\",\"MastodonLogo\",\"MathOperations\",\"MatrixLogo\",\"Medal\",\"MedalMilitary\",\"MediumLogo\",\"Megaphone\",\"MegaphoneSimple\",\"MemberOf\",\"Memory\",\"MessengerLogo\",\"MetaLogo\",\"Meteor\",\"Metronome\",\"Microphone\",\"MicrophoneSlash\",\"MicrophoneStage\",\"Microscope\",\"MicrosoftExcelLogo\",\"MicrosoftOutlookLogo\",\"MicrosoftTeamsLogo\",\"MicrosoftWordLogo\",\"Minus\",\"MinusCircle\",\"MinusSquare\",\"Money\",\"MoneyWavy\",\"Monitor\",\"MonitorArrowUp\",\"MonitorPlay\",\"Moon\",\"MoonStars\",\"Moped\",\"MopedFront\",\"Mosque\",\"Motorcycle\",\"Mountains\",\"Mouse\",\"MouseLeftClick\",\"MouseMiddleClick\",\"MouseRightClick\",\"MouseScroll\",\"MouseSimple\",\"MusicNote\",\"MusicNoteSimple\",\"MusicNotes\",\"MusicNotesMinus\",\"MusicNotesPlus\",\"MusicNotesSimple\",\"NavigationArrow\",\"Needle\",\"Network\",\"NetworkSlash\",\"NetworkX\",\"Newspaper\",\"NewspaperClipping\",\"NotEquals\",\"NotMemberOf\",\"NotSubsetOf\",\"NotSupersetOf\",\"Notches\",\"Note\",\"NoteBlank\",\"NotePencil\",\"Notebook\",\"Notepad\",\"Notification\",\"NotionLogo\",\"NuclearPlant\",\"NumberCircleEight\",\"NumberCircleFive\",\"NumberCircleFour\",\"NumberCircleNine\",\"NumberCircleOne\",\"NumberCircleSeven\",\"NumberCircleSix\",\"NumberCircleThree\",\"NumberCircleTwo\",\"NumberCircleZero\",\"NumberEight\",\"NumberFive\",\"NumberFour\",\"NumberNine\",\"NumberOne\",\"NumberSeven\",\"NumberSix\",\"NumberSquareEight\",\"NumberSquareFive\",\"NumberSquareFour\",\"NumberSquareNine\",\"NumberSquareOne\",\"NumberSquareSeven\",\"NumberSquareSix\",\"NumberSquareThree\",\"NumberSquareTwo\",\"NumberSquareZero\",\"NumberThree\",\"NumberTwo\",\"NumberZero\",\"Numpad\",\"Nut\",\"NyTimesLogo\",\"Octagon\",\"OfficeChair\",\"Onigiri\",\"OpenAiLogo\",\"Option\",\"Orange\",\"OrangeSlice\",\"Oven\",\"Package\",\"PaintBrush\",\"PaintBrushBroad\",\"PaintBrushHousehold\",\"PaintBucket\",\"PaintRoller\",\"Palette\",\"Panorama\",\"Pants\",\"PaperPlane\",\"PaperPlaneRight\",\"PaperPlaneTilt\",\"Paperclip\",\"PaperclipHorizontal\",\"Parachute\",\"Paragraph\",\"Parallelogram\",\"Park\",\"Password\",\"Path\",\"PatreonLogo\",\"Pause\",\"PauseCircle\",\"PawPrint\",\"PaypalLogo\",\"Peace\",\"Pen\",\"PenNib\",\"PenNibStraight\",\"Pencil\",\"PencilCircle\",\"PencilLine\",\"PencilRuler\",\"PencilSimple\",\"PencilSimpleLine\",\"PencilSimpleSlash\",\"PencilSlash\",\"Pentagon\",\"Pentagram\",\"Pepper\",\"Percent\",\"Person\",\"PersonArmsSpread\",\"PersonSimple\",\"PersonSimpleBike\",\"PersonSimpleCircle\",\"PersonSimpleHike\",\"PersonSimpleRun\",\"PersonSimpleSki\",\"PersonSimpleSwim\",\"PersonSimpleTaiChi\",\"PersonSimpleThrow\",\"PersonSimpleWalk\",\"Perspective\",\"Phone\",\"PhoneCall\",\"PhoneDisconnect\",\"PhoneIncoming\",\"PhoneList\",\"PhoneOutgoing\",\"PhonePause\",\"PhonePlus\",\"PhoneSlash\",\"PhoneTransfer\",\"PhoneX\",\"PhosphorLogo\",\"Pi\",\"PianoKeys\",\"PicnicTable\",\"PictureInPicture\",\"PiggyBank\",\"Pill\",\"PingPong\",\"PintGlass\",\"PinterestLogo\",\"Pinwheel\",\"Pipe\",\"PipeWrench\",\"PixLogo\",\"Pizza\",\"Placeholder\",\"Planet\",\"Plant\",\"Play\",\"PlayCircle\",\"PlayPause\",\"Playlist\",\"Plug\",\"PlugCharging\",\"Plugs\",\"PlugsConnected\",\"Plus\",\"PlusCircle\",\"PlusMinus\",\"PlusSquare\",\"PokerChip\",\"PoliceCar\",\"Polygon\",\"Popcorn\",\"Popsicle\",\"PottedPlant\",\"Power\",\"Prescription\",\"Presentation\",\"PresentationChart\",\"Printer\",\"Prohibit\",\"ProhibitInset\",\"ProjectorScreen\",\"ProjectorScreenChart\",\"Pulse\",\"PushPin\",\"PushPinSimple\",\"PushPinSimpleSlash\",\"PushPinSlash\",\"PuzzlePiece\",\"QrCode\",\"Question\",\"QuestionMark\",\"Queue\",\"Quotes\",\"Rabbit\",\"Racquet\",\"Radical\",\"Radio\",\"RadioButton\",\"Radioactive\",\"Rainbow\",\"RainbowCloud\",\"Ranking\",\"ReadCvLogo\",\"Receipt\",\"ReceiptX\",\"Record\",\"Rectangle\",\"RectangleDashed\",\"Recycle\",\"RedditLogo\",\"Repeat\",\"RepeatOnce\",\"ReplitLogo\",\"Resize\",\"Rewind\",\"RewindCircle\",\"RoadHorizon\",\"Robot\",\"Rocket\",\"RocketLaunch\",\"Rows\",\"RowsPlusBottom\",\"RowsPlusTop\",\"Rss\",\"RssSimple\",\"Rug\",\"Ruler\",\"Sailboat\",\"Scales\",\"Scan\",\"ScanSmiley\",\"Scissors\",\"Scooter\",\"Screencast\",\"Screwdriver\",\"Scribble\",\"ScribbleLoop\",\"Scroll\",\"Seal\",\"SealCheck\",\"SealPercent\",\"SealQuestion\",\"SealWarning\",\"Seat\",\"Seatbelt\",\"SecurityCamera\",\"Selection\",\"SelectionAll\",\"SelectionBackground\",\"SelectionForeground\",\"SelectionInverse\",\"SelectionPlus\",\"SelectionSlash\",\"Shapes\",\"Share\",\"ShareFat\",\"ShareNetwork\",\"Shield\",\"ShieldCheck\",\"ShieldCheckered\",\"ShieldChevron\",\"ShieldPlus\",\"ShieldSlash\",\"ShieldStar\",\"ShieldWarning\",\"ShippingContainer\",\"ShirtFolded\",\"ShootingStar\",\"ShoppingBag\",\"ShoppingBagOpen\",\"ShoppingCart\",\"ShoppingCartSimple\",\"Shovel\",\"Shower\",\"Shrimp\",\"Shuffle\",\"ShuffleAngular\",\"ShuffleSimple\",\"Sidebar\",\"SidebarSimple\",\"Sigma\",\"SignIn\",\"SignOut\",\"Signature\",\"Signpost\",\"SimCard\",\"Siren\",\"SketchLogo\",\"SkipBack\",\"SkipBackCircle\",\"SkipForward\",\"SkipForwardCircle\",\"Skull\",\"SkypeLogo\",\"SlackLogo\",\"Sliders\",\"SlidersHorizontal\",\"Slideshow\",\"Smiley\",\"SmileyAngry\",\"SmileyBlank\",\"SmileyMeh\",\"SmileyMelting\",\"SmileyNervous\",\"SmileySad\",\"SmileySticker\",\"SmileyWink\",\"SmileyXEyes\",\"SnapchatLogo\",\"Sneaker\",\"SneakerMove\",\"Snowflake\",\"SoccerBall\",\"Sock\",\"SolarPanel\",\"SolarRoof\",\"SortAscending\",\"SortDescending\",\"SoundcloudLogo\",\"Spade\",\"Sparkle\",\"SpeakerHifi\",\"SpeakerHigh\",\"SpeakerLow\",\"SpeakerNone\",\"SpeakerSimpleHigh\",\"SpeakerSimpleLow\",\"SpeakerSimpleNone\",\"SpeakerSimpleSlash\",\"SpeakerSimpleX\",\"SpeakerSlash\",\"SpeakerX\",\"Speedometer\",\"Sphere\",\"Spinner\",\"SpinnerBall\",\"SpinnerGap\",\"Spiral\",\"SplitHorizontal\",\"SplitVertical\",\"SpotifyLogo\",\"SprayBottle\",\"Square\",\"SquareHalf\",\"SquareHalfBottom\",\"SquareLogo\",\"SquareSplitVertical\",\"SquaresFour\",\"Stack\",\"StackMinus\",\"StackOverflowLogo\",\"StackPlus\",\"StackSimple\",\"Stairs\",\"Stamp\",\"StandardDefinition\",\"Star\",\"StarAndCrescent\",\"StarFour\",\"StarHalf\",\"StarOfDavid\",\"SteamLogo\",\"SteeringWheel\",\"Steps\",\"Stethoscope\",\"Sticker\",\"Stool\",\"Stop\",\"StopCircle\",\"Storefront\",\"Strategy\",\"StripeLogo\",\"Student\",\"SubsetOf\",\"SubsetProperOf\",\"Subtitles\",\"SubtitlesSlash\",\"Subtract\",\"SubtractSquare\",\"Subway\",\"Suitcase\",\"SuitcaseRolling\",\"SuitcaseSimple\",\"Sun\",\"SunDim\",\"SunHorizon\",\"Sunglasses\",\"SupersetOf\",\"SupersetProperOf\",\"Swap\",\"Swatches\",\"SwimmingPool\",\"Sword\",\"Synagogue\",\"Syringe\",\"TShirt\",\"Table\",\"Tabs\",\"Tag\",\"TagChevron\",\"TagSimple\",\"Target\",\"Taxi\",\"TeaBag\",\"TelegramLogo\",\"Television\",\"TelevisionSimple\",\"TennisBall\",\"Tent\",\"Terminal\",\"TerminalWindow\",\"TestTube\",\"TextAUnderline\",\"TextAa\",\"TextAlignCenter\",\"TextAlignJustify\",\"TextAlignLeft\",\"TextAlignRight\",\"TextB\",\"TextColumns\",\"TextH\",\"TextHFive\",\"TextHFour\",\"TextHOne\",\"TextHSix\",\"TextHThree\",\"TextHTwo\",\"TextIndent\",\"TextItalic\",\"TextOutdent\",\"TextStrikethrough\",\"TextSubscript\",\"TextSuperscript\",\"TextT\",\"TextTSlash\",\"TextUnderline\",\"Textbox\",\"Thermometer\",\"ThermometerCold\",\"ThermometerHot\",\"ThermometerSimple\",\"ThreadsLogo\",\"ThreeD\",\"ThumbsDown\",\"ThumbsUp\",\"Ticket\",\"TidalLogo\",\"TiktokLogo\",\"Tilde\",\"Timer\",\"TipJar\",\"Tipi\",\"Tire\",\"ToggleLeft\",\"ToggleRight\",\"Toilet\",\"ToiletPaper\",\"Toolbox\",\"Tooth\",\"Tornado\",\"Tote\",\"ToteSimple\",\"Towel\",\"Tractor\",\"Trademark\",\"TrademarkRegistered\",\"TrafficCone\",\"TrafficSign\",\"TrafficSignal\",\"Train\",\"TrainRegional\",\"TrainSimple\",\"Tram\",\"Translate\",\"Trash\",\"TrashSimple\",\"Tray\",\"TrayArrowDown\",\"TrayArrowUp\",\"TreasureChest\",\"Tree\",\"TreeEvergreen\",\"TreePalm\",\"TreeStructure\",\"TreeView\",\"TrendDown\",\"TrendUp\",\"Triangle\",\"TriangleDashed\",\"Trolley\",\"TrolleySuitcase\",\"Trophy\",\"Truck\",\"TruckTrailer\",\"TumblrLogo\",\"TwitchLogo\",\"TwitterLogo\",\"Umbrella\",\"UmbrellaSimple\",\"Union\",\"Unite\",\"UniteSquare\",\"Upload\",\"UploadSimple\",\"Usb\",\"User\",\"UserCheck\",\"UserCircle\",\"UserCircleCheck\",\"UserCircleDashed\",\"UserCircleGear\",\"UserCircleMinus\",\"UserCirclePlus\",\"UserFocus\",\"UserGear\",\"UserList\",\"UserMinus\",\"UserPlus\",\"UserRectangle\",\"UserSound\",\"UserSquare\",\"UserSwitch\",\"Users\",\"UsersFour\",\"UsersThree\",\"Van\",\"Vault\",\"VectorThree\",\"VectorTwo\",\"Vibrate\",\"Video\",\"VideoCamera\",\"VideoCameraSlash\",\"VideoConference\",\"Vignette\",\"VinylRecord\",\"VirtualReality\",\"Virus\",\"Visor\",\"Voicemail\",\"Volleyball\",\"Wall\",\"Wallet\",\"Warehouse\",\"Warning\",\"WarningCircle\",\"WarningDiamond\",\"WarningOctagon\",\"WashingMachine\",\"Watch\",\"WaveSawtooth\",\"WaveSine\",\"WaveSquare\",\"WaveTriangle\",\"Waveform\",\"WaveformSlash\",\"Waves\",\"Webcam\",\"WebcamSlash\",\"WebhooksLogo\",\"WechatLogo\",\"WhatsappLogo\",\"Wheelchair\",\"WheelchairMotion\",\"WifiHigh\",\"WifiLow\",\"WifiMedium\",\"WifiNone\",\"WifiSlash\",\"WifiX\",\"Wind\",\"Windmill\",\"WindowsLogo\",\"Wine\",\"Wrench\",\"X\",\"XCircle\",\"XLogo\",\"XSquare\",\"Yarn\",\"YinYang\",\"YoutubeLogo\"];const moduleBaseUrl=\"https://framer.com/m/phosphor-icons/\";const weightOptions=[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"];const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * PHOSPHOR\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,weight,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);const[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HouseFactory(React):null);async function importModule(){// Get the selected module\ntry{const version=\"0.0.57\";const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@${version}`;const module=await import(/* webpackIgnore: true */iconModuleUrl);if(isMounted.current)setSelectedIcon(module.default(React));}catch(err){if(isMounted.current)setSelectedIcon(null);}}useEffect(()=>{isMounted.current=true;importModule();return()=>{isMounted.current=false;};},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/_jsx(NullState,{}):null;return /*#__PURE__*/_jsx(motion.div,{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",style:{userSelect:\"none\",width:\"100%\",height:\"100%\",display:\"inline-block\",fill:color,color,flexShrink:0,transform:mirrored?\"scale(-1, 1)\":undefined},focusable:\"false\",color:color,children:/*#__PURE__*/_jsx(SelectedIcon,{color:color,weight:weight})}):emptyState});}Icon.displayName=\"Phosphor\";Icon.defaultProps={width:24,height:24,iconSelection:\"House\",iconSearch:\"House\",color:\"#66F\",selectByList:true,weight:\"regular\",mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Phosphor site](https://phosphoricons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},weight:{type:ControlType.Enum,title:\"Weight\",optionTitles:weightOptions.map(piece=>piece.charAt(0).toUpperCase()+piece.slice(1)),options:weightOptions,defaultValue:Icon.defaultProps.weight},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Phosphor.map","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __pow = Math.pow;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __async = (__this, __arguments, generator) => {\n  return new Promise((resolve, reject) => {\n    var fulfilled = (value) => {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var rejected = (value) => {\n      try {\n        step(generator.throw(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n    step((generator = generator.apply(__this, __arguments)).next());\n  });\n};\n\nexport {\n  __pow,\n  __spreadValues,\n  __spreadProps,\n  __objRest,\n  __export,\n  __async\n};\n","import {\n  __async,\n  __export,\n  __pow,\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/three@0.169.0/node_modules/three/build/three.module.js\nvar three_module_exports = {};\n__export(three_module_exports, {\n  ACESFilmicToneMapping: () => ACESFilmicToneMapping,\n  AddEquation: () => AddEquation,\n  AddOperation: () => AddOperation,\n  AdditiveAnimationBlendMode: () => AdditiveAnimationBlendMode,\n  AdditiveBlending: () => AdditiveBlending,\n  AgXToneMapping: () => AgXToneMapping,\n  AlphaFormat: () => AlphaFormat,\n  AlwaysCompare: () => AlwaysCompare,\n  AlwaysDepth: () => AlwaysDepth,\n  AlwaysStencilFunc: () => AlwaysStencilFunc,\n  AmbientLight: () => AmbientLight,\n  AnimationAction: () => AnimationAction,\n  AnimationClip: () => AnimationClip,\n  AnimationLoader: () => AnimationLoader,\n  AnimationMixer: () => AnimationMixer,\n  AnimationObjectGroup: () => AnimationObjectGroup,\n  AnimationUtils: () => AnimationUtils,\n  ArcCurve: () => ArcCurve,\n  ArrayCamera: () => ArrayCamera,\n  ArrowHelper: () => ArrowHelper,\n  AttachedBindMode: () => AttachedBindMode,\n  Audio: () => Audio,\n  AudioAnalyser: () => AudioAnalyser,\n  AudioContext: () => AudioContext,\n  AudioListener: () => AudioListener,\n  AudioLoader: () => AudioLoader,\n  AxesHelper: () => AxesHelper,\n  BackSide: () => BackSide,\n  BasicDepthPacking: () => BasicDepthPacking,\n  BasicShadowMap: () => BasicShadowMap,\n  BatchedMesh: () => BatchedMesh,\n  Bone: () => Bone,\n  BooleanKeyframeTrack: () => BooleanKeyframeTrack,\n  Box2: () => Box2,\n  Box3: () => Box3,\n  Box3Helper: () => Box3Helper,\n  BoxGeometry: () => BoxGeometry,\n  BoxHelper: () => BoxHelper,\n  BufferAttribute: () => BufferAttribute,\n  BufferGeometry: () => BufferGeometry,\n  BufferGeometryLoader: () => BufferGeometryLoader,\n  ByteType: () => ByteType,\n  Cache: () => Cache,\n  Camera: () => Camera,\n  CameraHelper: () => CameraHelper,\n  CanvasTexture: () => CanvasTexture,\n  CapsuleGeometry: () => CapsuleGeometry,\n  CatmullRomCurve3: () => CatmullRomCurve3,\n  CineonToneMapping: () => CineonToneMapping,\n  CircleGeometry: () => CircleGeometry,\n  ClampToEdgeWrapping: () => ClampToEdgeWrapping,\n  Clock: () => Clock,\n  Color: () => Color,\n  ColorKeyframeTrack: () => ColorKeyframeTrack,\n  ColorManagement: () => ColorManagement,\n  CompressedArrayTexture: () => CompressedArrayTexture,\n  CompressedCubeTexture: () => CompressedCubeTexture,\n  CompressedTexture: () => CompressedTexture,\n  CompressedTextureLoader: () => CompressedTextureLoader,\n  ConeGeometry: () => ConeGeometry,\n  ConstantAlphaFactor: () => ConstantAlphaFactor,\n  ConstantColorFactor: () => ConstantColorFactor,\n  Controls: () => Controls,\n  CubeCamera: () => CubeCamera,\n  CubeReflectionMapping: () => CubeReflectionMapping,\n  CubeRefractionMapping: () => CubeRefractionMapping,\n  CubeTexture: () => CubeTexture,\n  CubeTextureLoader: () => CubeTextureLoader,\n  CubeUVReflectionMapping: () => CubeUVReflectionMapping,\n  CubicBezierCurve: () => CubicBezierCurve,\n  CubicBezierCurve3: () => CubicBezierCurve3,\n  CubicInterpolant: () => CubicInterpolant,\n  CullFaceBack: () => CullFaceBack,\n  CullFaceFront: () => CullFaceFront,\n  CullFaceFrontBack: () => CullFaceFrontBack,\n  CullFaceNone: () => CullFaceNone,\n  Curve: () => Curve,\n  CurvePath: () => CurvePath,\n  CustomBlending: () => CustomBlending,\n  CustomToneMapping: () => CustomToneMapping,\n  CylinderGeometry: () => CylinderGeometry,\n  Cylindrical: () => Cylindrical,\n  Data3DTexture: () => Data3DTexture,\n  DataArrayTexture: () => DataArrayTexture,\n  DataTexture: () => DataTexture,\n  DataTextureLoader: () => DataTextureLoader,\n  DataUtils: () => DataUtils,\n  DecrementStencilOp: () => DecrementStencilOp,\n  DecrementWrapStencilOp: () => DecrementWrapStencilOp,\n  DefaultLoadingManager: () => DefaultLoadingManager,\n  DepthFormat: () => DepthFormat,\n  DepthStencilFormat: () => DepthStencilFormat,\n  DepthTexture: () => DepthTexture,\n  DetachedBindMode: () => DetachedBindMode,\n  DirectionalLight: () => DirectionalLight,\n  DirectionalLightHelper: () => DirectionalLightHelper,\n  DiscreteInterpolant: () => DiscreteInterpolant,\n  DisplayP3ColorSpace: () => DisplayP3ColorSpace,\n  DodecahedronGeometry: () => DodecahedronGeometry,\n  DoubleSide: () => DoubleSide,\n  DstAlphaFactor: () => DstAlphaFactor,\n  DstColorFactor: () => DstColorFactor,\n  DynamicCopyUsage: () => DynamicCopyUsage,\n  DynamicDrawUsage: () => DynamicDrawUsage,\n  DynamicReadUsage: () => DynamicReadUsage,\n  EdgesGeometry: () => EdgesGeometry,\n  EllipseCurve: () => EllipseCurve,\n  EqualCompare: () => EqualCompare,\n  EqualDepth: () => EqualDepth,\n  EqualStencilFunc: () => EqualStencilFunc,\n  EquirectangularReflectionMapping: () => EquirectangularReflectionMapping,\n  EquirectangularRefractionMapping: () => EquirectangularRefractionMapping,\n  Euler: () => Euler,\n  EventDispatcher: () => EventDispatcher,\n  ExtrudeGeometry: () => ExtrudeGeometry,\n  FileLoader: () => FileLoader,\n  Float16BufferAttribute: () => Float16BufferAttribute,\n  Float32BufferAttribute: () => Float32BufferAttribute,\n  FloatType: () => FloatType,\n  Fog: () => Fog,\n  FogExp2: () => FogExp2,\n  FramebufferTexture: () => FramebufferTexture,\n  FrontSide: () => FrontSide,\n  Frustum: () => Frustum,\n  GLBufferAttribute: () => GLBufferAttribute,\n  GLSL1: () => GLSL1,\n  GLSL3: () => GLSL3,\n  GreaterCompare: () => GreaterCompare,\n  GreaterDepth: () => GreaterDepth,\n  GreaterEqualCompare: () => GreaterEqualCompare,\n  GreaterEqualDepth: () => GreaterEqualDepth,\n  GreaterEqualStencilFunc: () => GreaterEqualStencilFunc,\n  GreaterStencilFunc: () => GreaterStencilFunc,\n  GridHelper: () => GridHelper,\n  Group: () => Group,\n  HalfFloatType: () => HalfFloatType,\n  HemisphereLight: () => HemisphereLight,\n  HemisphereLightHelper: () => HemisphereLightHelper,\n  IcosahedronGeometry: () => IcosahedronGeometry,\n  ImageBitmapLoader: () => ImageBitmapLoader,\n  ImageLoader: () => ImageLoader,\n  ImageUtils: () => ImageUtils,\n  IncrementStencilOp: () => IncrementStencilOp,\n  IncrementWrapStencilOp: () => IncrementWrapStencilOp,\n  InstancedBufferAttribute: () => InstancedBufferAttribute,\n  InstancedBufferGeometry: () => InstancedBufferGeometry,\n  InstancedInterleavedBuffer: () => InstancedInterleavedBuffer,\n  InstancedMesh: () => InstancedMesh,\n  Int16BufferAttribute: () => Int16BufferAttribute,\n  Int32BufferAttribute: () => Int32BufferAttribute,\n  Int8BufferAttribute: () => Int8BufferAttribute,\n  IntType: () => IntType,\n  InterleavedBuffer: () => InterleavedBuffer,\n  InterleavedBufferAttribute: () => InterleavedBufferAttribute,\n  Interpolant: () => Interpolant,\n  InterpolateDiscrete: () => InterpolateDiscrete,\n  InterpolateLinear: () => InterpolateLinear,\n  InterpolateSmooth: () => InterpolateSmooth,\n  InvertStencilOp: () => InvertStencilOp,\n  KeepStencilOp: () => KeepStencilOp,\n  KeyframeTrack: () => KeyframeTrack,\n  LOD: () => LOD,\n  LatheGeometry: () => LatheGeometry,\n  Layers: () => Layers,\n  LessCompare: () => LessCompare,\n  LessDepth: () => LessDepth,\n  LessEqualCompare: () => LessEqualCompare,\n  LessEqualDepth: () => LessEqualDepth,\n  LessEqualStencilFunc: () => LessEqualStencilFunc,\n  LessStencilFunc: () => LessStencilFunc,\n  Light: () => Light,\n  LightProbe: () => LightProbe,\n  Line: () => Line,\n  Line3: () => Line3,\n  LineBasicMaterial: () => LineBasicMaterial,\n  LineCurve: () => LineCurve,\n  LineCurve3: () => LineCurve3,\n  LineDashedMaterial: () => LineDashedMaterial,\n  LineLoop: () => LineLoop,\n  LineSegments: () => LineSegments,\n  LinearDisplayP3ColorSpace: () => LinearDisplayP3ColorSpace,\n  LinearFilter: () => LinearFilter,\n  LinearInterpolant: () => LinearInterpolant,\n  LinearMipMapLinearFilter: () => LinearMipMapLinearFilter,\n  LinearMipMapNearestFilter: () => LinearMipMapNearestFilter,\n  LinearMipmapLinearFilter: () => LinearMipmapLinearFilter,\n  LinearMipmapNearestFilter: () => LinearMipmapNearestFilter,\n  LinearSRGBColorSpace: () => LinearSRGBColorSpace,\n  LinearToneMapping: () => LinearToneMapping,\n  LinearTransfer: () => LinearTransfer,\n  Loader: () => Loader,\n  LoaderUtils: () => LoaderUtils,\n  LoadingManager: () => LoadingManager,\n  LoopOnce: () => LoopOnce,\n  LoopPingPong: () => LoopPingPong,\n  LoopRepeat: () => LoopRepeat,\n  LuminanceAlphaFormat: () => LuminanceAlphaFormat,\n  LuminanceFormat: () => LuminanceFormat,\n  MOUSE: () => MOUSE,\n  Material: () => Material,\n  MaterialLoader: () => MaterialLoader,\n  MathUtils: () => MathUtils,\n  Matrix2: () => Matrix2,\n  Matrix3: () => Matrix3,\n  Matrix4: () => Matrix4,\n  MaxEquation: () => MaxEquation,\n  Mesh: () => Mesh,\n  MeshBasicMaterial: () => MeshBasicMaterial,\n  MeshDepthMaterial: () => MeshDepthMaterial,\n  MeshDistanceMaterial: () => MeshDistanceMaterial,\n  MeshLambertMaterial: () => MeshLambertMaterial,\n  MeshMatcapMaterial: () => MeshMatcapMaterial,\n  MeshNormalMaterial: () => MeshNormalMaterial,\n  MeshPhongMaterial: () => MeshPhongMaterial,\n  MeshPhysicalMaterial: () => MeshPhysicalMaterial,\n  MeshStandardMaterial: () => MeshStandardMaterial,\n  MeshToonMaterial: () => MeshToonMaterial,\n  MinEquation: () => MinEquation,\n  MirroredRepeatWrapping: () => MirroredRepeatWrapping,\n  MixOperation: () => MixOperation,\n  MultiplyBlending: () => MultiplyBlending,\n  MultiplyOperation: () => MultiplyOperation,\n  NearestFilter: () => NearestFilter,\n  NearestMipMapLinearFilter: () => NearestMipMapLinearFilter,\n  NearestMipMapNearestFilter: () => NearestMipMapNearestFilter,\n  NearestMipmapLinearFilter: () => NearestMipmapLinearFilter,\n  NearestMipmapNearestFilter: () => NearestMipmapNearestFilter,\n  NeutralToneMapping: () => NeutralToneMapping,\n  NeverCompare: () => NeverCompare,\n  NeverDepth: () => NeverDepth,\n  NeverStencilFunc: () => NeverStencilFunc,\n  NoBlending: () => NoBlending,\n  NoColorSpace: () => NoColorSpace,\n  NoToneMapping: () => NoToneMapping,\n  NormalAnimationBlendMode: () => NormalAnimationBlendMode,\n  NormalBlending: () => NormalBlending,\n  NotEqualCompare: () => NotEqualCompare,\n  NotEqualDepth: () => NotEqualDepth,\n  NotEqualStencilFunc: () => NotEqualStencilFunc,\n  NumberKeyframeTrack: () => NumberKeyframeTrack,\n  Object3D: () => Object3D,\n  ObjectLoader: () => ObjectLoader,\n  ObjectSpaceNormalMap: () => ObjectSpaceNormalMap,\n  OctahedronGeometry: () => OctahedronGeometry,\n  OneFactor: () => OneFactor,\n  OneMinusConstantAlphaFactor: () => OneMinusConstantAlphaFactor,\n  OneMinusConstantColorFactor: () => OneMinusConstantColorFactor,\n  OneMinusDstAlphaFactor: () => OneMinusDstAlphaFactor,\n  OneMinusDstColorFactor: () => OneMinusDstColorFactor,\n  OneMinusSrcAlphaFactor: () => OneMinusSrcAlphaFactor,\n  OneMinusSrcColorFactor: () => OneMinusSrcColorFactor,\n  OrthographicCamera: () => OrthographicCamera,\n  P3Primaries: () => P3Primaries,\n  PCFShadowMap: () => PCFShadowMap,\n  PCFSoftShadowMap: () => PCFSoftShadowMap,\n  PMREMGenerator: () => PMREMGenerator,\n  Path: () => Path,\n  PerspectiveCamera: () => PerspectiveCamera,\n  Plane: () => Plane,\n  PlaneGeometry: () => PlaneGeometry,\n  PlaneHelper: () => PlaneHelper,\n  PointLight: () => PointLight,\n  PointLightHelper: () => PointLightHelper,\n  Points: () => Points,\n  PointsMaterial: () => PointsMaterial,\n  PolarGridHelper: () => PolarGridHelper,\n  PolyhedronGeometry: () => PolyhedronGeometry,\n  PositionalAudio: () => PositionalAudio,\n  PropertyBinding: () => PropertyBinding,\n  PropertyMixer: () => PropertyMixer,\n  QuadraticBezierCurve: () => QuadraticBezierCurve,\n  QuadraticBezierCurve3: () => QuadraticBezierCurve3,\n  Quaternion: () => Quaternion,\n  QuaternionKeyframeTrack: () => QuaternionKeyframeTrack,\n  QuaternionLinearInterpolant: () => QuaternionLinearInterpolant,\n  RED_GREEN_RGTC2_Format: () => RED_GREEN_RGTC2_Format,\n  RED_RGTC1_Format: () => RED_RGTC1_Format,\n  REVISION: () => REVISION,\n  RGBADepthPacking: () => RGBADepthPacking,\n  RGBAFormat: () => RGBAFormat,\n  RGBAIntegerFormat: () => RGBAIntegerFormat,\n  RGBA_ASTC_10x10_Format: () => RGBA_ASTC_10x10_Format,\n  RGBA_ASTC_10x5_Format: () => RGBA_ASTC_10x5_Format,\n  RGBA_ASTC_10x6_Format: () => RGBA_ASTC_10x6_Format,\n  RGBA_ASTC_10x8_Format: () => RGBA_ASTC_10x8_Format,\n  RGBA_ASTC_12x10_Format: () => RGBA_ASTC_12x10_Format,\n  RGBA_ASTC_12x12_Format: () => RGBA_ASTC_12x12_Format,\n  RGBA_ASTC_4x4_Format: () => RGBA_ASTC_4x4_Format,\n  RGBA_ASTC_5x4_Format: () => RGBA_ASTC_5x4_Format,\n  RGBA_ASTC_5x5_Format: () => RGBA_ASTC_5x5_Format,\n  RGBA_ASTC_6x5_Format: () => RGBA_ASTC_6x5_Format,\n  RGBA_ASTC_6x6_Format: () => RGBA_ASTC_6x6_Format,\n  RGBA_ASTC_8x5_Format: () => RGBA_ASTC_8x5_Format,\n  RGBA_ASTC_8x6_Format: () => RGBA_ASTC_8x6_Format,\n  RGBA_ASTC_8x8_Format: () => RGBA_ASTC_8x8_Format,\n  RGBA_BPTC_Format: () => RGBA_BPTC_Format,\n  RGBA_ETC2_EAC_Format: () => RGBA_ETC2_EAC_Format,\n  RGBA_PVRTC_2BPPV1_Format: () => RGBA_PVRTC_2BPPV1_Format,\n  RGBA_PVRTC_4BPPV1_Format: () => RGBA_PVRTC_4BPPV1_Format,\n  RGBA_S3TC_DXT1_Format: () => RGBA_S3TC_DXT1_Format,\n  RGBA_S3TC_DXT3_Format: () => RGBA_S3TC_DXT3_Format,\n  RGBA_S3TC_DXT5_Format: () => RGBA_S3TC_DXT5_Format,\n  RGBDepthPacking: () => RGBDepthPacking,\n  RGBFormat: () => RGBFormat,\n  RGBIntegerFormat: () => RGBIntegerFormat,\n  RGB_BPTC_SIGNED_Format: () => RGB_BPTC_SIGNED_Format,\n  RGB_BPTC_UNSIGNED_Format: () => RGB_BPTC_UNSIGNED_Format,\n  RGB_ETC1_Format: () => RGB_ETC1_Format,\n  RGB_ETC2_Format: () => RGB_ETC2_Format,\n  RGB_PVRTC_2BPPV1_Format: () => RGB_PVRTC_2BPPV1_Format,\n  RGB_PVRTC_4BPPV1_Format: () => RGB_PVRTC_4BPPV1_Format,\n  RGB_S3TC_DXT1_Format: () => RGB_S3TC_DXT1_Format,\n  RGDepthPacking: () => RGDepthPacking,\n  RGFormat: () => RGFormat,\n  RGIntegerFormat: () => RGIntegerFormat,\n  RawShaderMaterial: () => RawShaderMaterial,\n  Ray: () => Ray,\n  Raycaster: () => Raycaster,\n  Rec709Primaries: () => Rec709Primaries,\n  RectAreaLight: () => RectAreaLight,\n  RedFormat: () => RedFormat,\n  RedIntegerFormat: () => RedIntegerFormat,\n  ReinhardToneMapping: () => ReinhardToneMapping,\n  RenderTarget: () => RenderTarget,\n  RepeatWrapping: () => RepeatWrapping,\n  ReplaceStencilOp: () => ReplaceStencilOp,\n  ReverseSubtractEquation: () => ReverseSubtractEquation,\n  RingGeometry: () => RingGeometry,\n  SIGNED_RED_GREEN_RGTC2_Format: () => SIGNED_RED_GREEN_RGTC2_Format,\n  SIGNED_RED_RGTC1_Format: () => SIGNED_RED_RGTC1_Format,\n  SRGBColorSpace: () => SRGBColorSpace,\n  SRGBTransfer: () => SRGBTransfer,\n  Scene: () => Scene,\n  ShaderChunk: () => ShaderChunk,\n  ShaderLib: () => ShaderLib,\n  ShaderMaterial: () => ShaderMaterial,\n  ShadowMaterial: () => ShadowMaterial,\n  Shape: () => Shape,\n  ShapeGeometry: () => ShapeGeometry,\n  ShapePath: () => ShapePath,\n  ShapeUtils: () => ShapeUtils,\n  ShortType: () => ShortType,\n  Skeleton: () => Skeleton,\n  SkeletonHelper: () => SkeletonHelper,\n  SkinnedMesh: () => SkinnedMesh,\n  Source: () => Source,\n  Sphere: () => Sphere,\n  SphereGeometry: () => SphereGeometry,\n  Spherical: () => Spherical,\n  SphericalHarmonics3: () => SphericalHarmonics3,\n  SplineCurve: () => SplineCurve,\n  SpotLight: () => SpotLight,\n  SpotLightHelper: () => SpotLightHelper,\n  Sprite: () => Sprite,\n  SpriteMaterial: () => SpriteMaterial,\n  SrcAlphaFactor: () => SrcAlphaFactor,\n  SrcAlphaSaturateFactor: () => SrcAlphaSaturateFactor,\n  SrcColorFactor: () => SrcColorFactor,\n  StaticCopyUsage: () => StaticCopyUsage,\n  StaticDrawUsage: () => StaticDrawUsage,\n  StaticReadUsage: () => StaticReadUsage,\n  StereoCamera: () => StereoCamera,\n  StreamCopyUsage: () => StreamCopyUsage,\n  StreamDrawUsage: () => StreamDrawUsage,\n  StreamReadUsage: () => StreamReadUsage,\n  StringKeyframeTrack: () => StringKeyframeTrack,\n  SubtractEquation: () => SubtractEquation,\n  SubtractiveBlending: () => SubtractiveBlending,\n  TOUCH: () => TOUCH,\n  TangentSpaceNormalMap: () => TangentSpaceNormalMap,\n  TetrahedronGeometry: () => TetrahedronGeometry,\n  Texture: () => Texture,\n  TextureLoader: () => TextureLoader,\n  TextureUtils: () => TextureUtils,\n  TorusGeometry: () => TorusGeometry,\n  TorusKnotGeometry: () => TorusKnotGeometry,\n  Triangle: () => Triangle,\n  TriangleFanDrawMode: () => TriangleFanDrawMode,\n  TriangleStripDrawMode: () => TriangleStripDrawMode,\n  TrianglesDrawMode: () => TrianglesDrawMode,\n  TubeGeometry: () => TubeGeometry,\n  UVMapping: () => UVMapping,\n  Uint16BufferAttribute: () => Uint16BufferAttribute,\n  Uint32BufferAttribute: () => Uint32BufferAttribute,\n  Uint8BufferAttribute: () => Uint8BufferAttribute,\n  Uint8ClampedBufferAttribute: () => Uint8ClampedBufferAttribute,\n  Uniform: () => Uniform,\n  UniformsGroup: () => UniformsGroup,\n  UniformsLib: () => UniformsLib,\n  UniformsUtils: () => UniformsUtils,\n  UnsignedByteType: () => UnsignedByteType,\n  UnsignedInt248Type: () => UnsignedInt248Type,\n  UnsignedInt5999Type: () => UnsignedInt5999Type,\n  UnsignedIntType: () => UnsignedIntType,\n  UnsignedShort4444Type: () => UnsignedShort4444Type,\n  UnsignedShort5551Type: () => UnsignedShort5551Type,\n  UnsignedShortType: () => UnsignedShortType,\n  VSMShadowMap: () => VSMShadowMap,\n  Vector2: () => Vector2,\n  Vector3: () => Vector3,\n  Vector4: () => Vector4,\n  VectorKeyframeTrack: () => VectorKeyframeTrack,\n  VideoTexture: () => VideoTexture,\n  WebGL3DRenderTarget: () => WebGL3DRenderTarget,\n  WebGLArrayRenderTarget: () => WebGLArrayRenderTarget,\n  WebGLCoordinateSystem: () => WebGLCoordinateSystem,\n  WebGLCubeRenderTarget: () => WebGLCubeRenderTarget,\n  WebGLMultipleRenderTargets: () => WebGLMultipleRenderTargets,\n  WebGLRenderTarget: () => WebGLRenderTarget,\n  WebGLRenderer: () => WebGLRenderer,\n  WebGLUtils: () => WebGLUtils,\n  WebGPUCoordinateSystem: () => WebGPUCoordinateSystem,\n  WireframeGeometry: () => WireframeGeometry,\n  WrapAroundEnding: () => WrapAroundEnding,\n  ZeroCurvatureEnding: () => ZeroCurvatureEnding,\n  ZeroFactor: () => ZeroFactor,\n  ZeroSlopeEnding: () => ZeroSlopeEnding,\n  ZeroStencilOp: () => ZeroStencilOp,\n  createCanvasElement: () => createCanvasElement\n});\nvar REVISION = \"169\";\nvar MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nvar TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nvar CullFaceNone = 0;\nvar CullFaceBack = 1;\nvar CullFaceFront = 2;\nvar CullFaceFrontBack = 3;\nvar BasicShadowMap = 0;\nvar PCFShadowMap = 1;\nvar PCFSoftShadowMap = 2;\nvar VSMShadowMap = 3;\nvar FrontSide = 0;\nvar BackSide = 1;\nvar DoubleSide = 2;\nvar NoBlending = 0;\nvar NormalBlending = 1;\nvar AdditiveBlending = 2;\nvar SubtractiveBlending = 3;\nvar MultiplyBlending = 4;\nvar CustomBlending = 5;\nvar AddEquation = 100;\nvar SubtractEquation = 101;\nvar ReverseSubtractEquation = 102;\nvar MinEquation = 103;\nvar MaxEquation = 104;\nvar ZeroFactor = 200;\nvar OneFactor = 201;\nvar SrcColorFactor = 202;\nvar OneMinusSrcColorFactor = 203;\nvar SrcAlphaFactor = 204;\nvar OneMinusSrcAlphaFactor = 205;\nvar DstAlphaFactor = 206;\nvar OneMinusDstAlphaFactor = 207;\nvar DstColorFactor = 208;\nvar OneMinusDstColorFactor = 209;\nvar SrcAlphaSaturateFactor = 210;\nvar ConstantColorFactor = 211;\nvar OneMinusConstantColorFactor = 212;\nvar ConstantAlphaFactor = 213;\nvar OneMinusConstantAlphaFactor = 214;\nvar NeverDepth = 0;\nvar AlwaysDepth = 1;\nvar LessDepth = 2;\nvar LessEqualDepth = 3;\nvar EqualDepth = 4;\nvar GreaterEqualDepth = 5;\nvar GreaterDepth = 6;\nvar NotEqualDepth = 7;\nvar MultiplyOperation = 0;\nvar MixOperation = 1;\nvar AddOperation = 2;\nvar NoToneMapping = 0;\nvar LinearToneMapping = 1;\nvar ReinhardToneMapping = 2;\nvar CineonToneMapping = 3;\nvar ACESFilmicToneMapping = 4;\nvar CustomToneMapping = 5;\nvar AgXToneMapping = 6;\nvar NeutralToneMapping = 7;\nvar AttachedBindMode = \"attached\";\nvar DetachedBindMode = \"detached\";\nvar UVMapping = 300;\nvar CubeReflectionMapping = 301;\nvar CubeRefractionMapping = 302;\nvar EquirectangularReflectionMapping = 303;\nvar EquirectangularRefractionMapping = 304;\nvar CubeUVReflectionMapping = 306;\nvar RepeatWrapping = 1e3;\nvar ClampToEdgeWrapping = 1001;\nvar MirroredRepeatWrapping = 1002;\nvar NearestFilter = 1003;\nvar NearestMipmapNearestFilter = 1004;\nvar NearestMipMapNearestFilter = 1004;\nvar NearestMipmapLinearFilter = 1005;\nvar NearestMipMapLinearFilter = 1005;\nvar LinearFilter = 1006;\nvar LinearMipmapNearestFilter = 1007;\nvar LinearMipMapNearestFilter = 1007;\nvar LinearMipmapLinearFilter = 1008;\nvar LinearMipMapLinearFilter = 1008;\nvar UnsignedByteType = 1009;\nvar ByteType = 1010;\nvar ShortType = 1011;\nvar UnsignedShortType = 1012;\nvar IntType = 1013;\nvar UnsignedIntType = 1014;\nvar FloatType = 1015;\nvar HalfFloatType = 1016;\nvar UnsignedShort4444Type = 1017;\nvar UnsignedShort5551Type = 1018;\nvar UnsignedInt248Type = 1020;\nvar UnsignedInt5999Type = 35902;\nvar AlphaFormat = 1021;\nvar RGBFormat = 1022;\nvar RGBAFormat = 1023;\nvar LuminanceFormat = 1024;\nvar LuminanceAlphaFormat = 1025;\nvar DepthFormat = 1026;\nvar DepthStencilFormat = 1027;\nvar RedFormat = 1028;\nvar RedIntegerFormat = 1029;\nvar RGFormat = 1030;\nvar RGIntegerFormat = 1031;\nvar RGBIntegerFormat = 1032;\nvar RGBAIntegerFormat = 1033;\nvar RGB_S3TC_DXT1_Format = 33776;\nvar RGBA_S3TC_DXT1_Format = 33777;\nvar RGBA_S3TC_DXT3_Format = 33778;\nvar RGBA_S3TC_DXT5_Format = 33779;\nvar RGB_PVRTC_4BPPV1_Format = 35840;\nvar RGB_PVRTC_2BPPV1_Format = 35841;\nvar RGBA_PVRTC_4BPPV1_Format = 35842;\nvar RGBA_PVRTC_2BPPV1_Format = 35843;\nvar RGB_ETC1_Format = 36196;\nvar RGB_ETC2_Format = 37492;\nvar RGBA_ETC2_EAC_Format = 37496;\nvar RGBA_ASTC_4x4_Format = 37808;\nvar RGBA_ASTC_5x4_Format = 37809;\nvar RGBA_ASTC_5x5_Format = 37810;\nvar RGBA_ASTC_6x5_Format = 37811;\nvar RGBA_ASTC_6x6_Format = 37812;\nvar RGBA_ASTC_8x5_Format = 37813;\nvar RGBA_ASTC_8x6_Format = 37814;\nvar RGBA_ASTC_8x8_Format = 37815;\nvar RGBA_ASTC_10x5_Format = 37816;\nvar RGBA_ASTC_10x6_Format = 37817;\nvar RGBA_ASTC_10x8_Format = 37818;\nvar RGBA_ASTC_10x10_Format = 37819;\nvar RGBA_ASTC_12x10_Format = 37820;\nvar RGBA_ASTC_12x12_Format = 37821;\nvar RGBA_BPTC_Format = 36492;\nvar RGB_BPTC_SIGNED_Format = 36494;\nvar RGB_BPTC_UNSIGNED_Format = 36495;\nvar RED_RGTC1_Format = 36283;\nvar SIGNED_RED_RGTC1_Format = 36284;\nvar RED_GREEN_RGTC2_Format = 36285;\nvar SIGNED_RED_GREEN_RGTC2_Format = 36286;\nvar LoopOnce = 2200;\nvar LoopRepeat = 2201;\nvar LoopPingPong = 2202;\nvar InterpolateDiscrete = 2300;\nvar InterpolateLinear = 2301;\nvar InterpolateSmooth = 2302;\nvar ZeroCurvatureEnding = 2400;\nvar ZeroSlopeEnding = 2401;\nvar WrapAroundEnding = 2402;\nvar NormalAnimationBlendMode = 2500;\nvar AdditiveAnimationBlendMode = 2501;\nvar TrianglesDrawMode = 0;\nvar TriangleStripDrawMode = 1;\nvar TriangleFanDrawMode = 2;\nvar BasicDepthPacking = 3200;\nvar RGBADepthPacking = 3201;\nvar RGBDepthPacking = 3202;\nvar RGDepthPacking = 3203;\nvar TangentSpaceNormalMap = 0;\nvar ObjectSpaceNormalMap = 1;\nvar NoColorSpace = \"\";\nvar SRGBColorSpace = \"srgb\";\nvar LinearSRGBColorSpace = \"srgb-linear\";\nvar DisplayP3ColorSpace = \"display-p3\";\nvar LinearDisplayP3ColorSpace = \"display-p3-linear\";\nvar LinearTransfer = \"linear\";\nvar SRGBTransfer = \"srgb\";\nvar Rec709Primaries = \"rec709\";\nvar P3Primaries = \"p3\";\nvar ZeroStencilOp = 0;\nvar KeepStencilOp = 7680;\nvar ReplaceStencilOp = 7681;\nvar IncrementStencilOp = 7682;\nvar DecrementStencilOp = 7683;\nvar IncrementWrapStencilOp = 34055;\nvar DecrementWrapStencilOp = 34056;\nvar InvertStencilOp = 5386;\nvar NeverStencilFunc = 512;\nvar LessStencilFunc = 513;\nvar EqualStencilFunc = 514;\nvar LessEqualStencilFunc = 515;\nvar GreaterStencilFunc = 516;\nvar NotEqualStencilFunc = 517;\nvar GreaterEqualStencilFunc = 518;\nvar AlwaysStencilFunc = 519;\nvar NeverCompare = 512;\nvar LessCompare = 513;\nvar EqualCompare = 514;\nvar LessEqualCompare = 515;\nvar GreaterCompare = 516;\nvar NotEqualCompare = 517;\nvar GreaterEqualCompare = 518;\nvar AlwaysCompare = 519;\nvar StaticDrawUsage = 35044;\nvar DynamicDrawUsage = 35048;\nvar StreamDrawUsage = 35040;\nvar StaticReadUsage = 35045;\nvar DynamicReadUsage = 35049;\nvar StreamReadUsage = 35041;\nvar StaticCopyUsage = 35046;\nvar DynamicCopyUsage = 35050;\nvar StreamCopyUsage = 35042;\nvar GLSL1 = \"100\";\nvar GLSL3 = \"300 es\";\nvar WebGLCoordinateSystem = 2e3;\nvar WebGPUCoordinateSystem = 2001;\nvar EventDispatcher = class {\n  addEventListener(type, listener) {\n    if (this._listeners === void 0) this._listeners = {};\n    const listeners = this._listeners;\n    if (listeners[type] === void 0) {\n      listeners[type] = [];\n    }\n    if (listeners[type].indexOf(listener) === -1) {\n      listeners[type].push(listener);\n    }\n  }\n  hasEventListener(type, listener) {\n    if (this._listeners === void 0) return false;\n    const listeners = this._listeners;\n    return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1;\n  }\n  removeEventListener(type, listener) {\n    if (this._listeners === void 0) return;\n    const listeners = this._listeners;\n    const listenerArray = listeners[type];\n    if (listenerArray !== void 0) {\n      const index = listenerArray.indexOf(listener);\n      if (index !== -1) {\n        listenerArray.splice(index, 1);\n      }\n    }\n  }\n  dispatchEvent(event) {\n    if (this._listeners === void 0) return;\n    const listeners = this._listeners;\n    const listenerArray = listeners[event.type];\n    if (listenerArray !== void 0) {\n      event.target = this;\n      const array = listenerArray.slice(0);\n      for (let i = 0, l = array.length; i < l; i++) {\n        array[i].call(this, event);\n      }\n      event.target = null;\n    }\n  }\n};\nvar _lut = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"0a\", \"0b\", \"0c\", \"0d\", \"0e\", \"0f\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"1a\", \"1b\", \"1c\", \"1d\", \"1e\", \"1f\", \"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"2a\", \"2b\", \"2c\", \"2d\", \"2e\", \"2f\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"3a\", \"3b\", \"3c\", \"3d\", \"3e\", \"3f\", \"40\", \"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"4a\", \"4b\", \"4c\", \"4d\", \"4e\", \"4f\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"5a\", \"5b\", \"5c\", \"5d\", \"5e\", \"5f\", \"60\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\", \"6a\", \"6b\", \"6c\", \"6d\", \"6e\", \"6f\", \"70\", \"71\", \"72\", \"73\", \"74\", \"75\", \"76\", \"77\", \"78\", \"79\", \"7a\", \"7b\", \"7c\", \"7d\", \"7e\", \"7f\", \"80\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"89\", \"8a\", \"8b\", \"8c\", \"8d\", \"8e\", \"8f\", \"90\", \"91\", \"92\", \"93\", \"94\", \"95\", \"96\", \"97\", \"98\", \"99\", \"9a\", \"9b\", \"9c\", \"9d\", \"9e\", \"9f\", \"a0\", \"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"aa\", \"ab\", \"ac\", \"ad\", \"ae\", \"af\", \"b0\", \"b1\", \"b2\", \"b3\", \"b4\", \"b5\", \"b6\", \"b7\", \"b8\", \"b9\", \"ba\", \"bb\", \"bc\", \"bd\", \"be\", \"bf\", \"c0\", \"c1\", \"c2\", \"c3\", \"c4\", \"c5\", \"c6\", \"c7\", \"c8\", \"c9\", \"ca\", \"cb\", \"cc\", \"cd\", \"ce\", \"cf\", \"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\", \"d6\", \"d7\", \"d8\", \"d9\", \"da\", \"db\", \"dc\", \"dd\", \"de\", \"df\", \"e0\", \"e1\", \"e2\", \"e3\", \"e4\", \"e5\", \"e6\", \"e7\", \"e8\", \"e9\", \"ea\", \"eb\", \"ec\", \"ed\", \"ee\", \"ef\", \"f0\", \"f1\", \"f2\", \"f3\", \"f4\", \"f5\", \"f6\", \"f7\", \"f8\", \"f9\", \"fa\", \"fb\", \"fc\", \"fd\", \"fe\", \"ff\"];\nvar _seed = 1234567;\nvar DEG2RAD = Math.PI / 180;\nvar RAD2DEG = 180 / Math.PI;\nfunction generateUUID() {\n  const d0 = Math.random() * 4294967295 | 0;\n  const d1 = Math.random() * 4294967295 | 0;\n  const d2 = Math.random() * 4294967295 | 0;\n  const d3 = Math.random() * 4294967295 | 0;\n  const uuid = _lut[d0 & 255] + _lut[d0 >> 8 & 255] + _lut[d0 >> 16 & 255] + _lut[d0 >> 24 & 255] + \"-\" + _lut[d1 & 255] + _lut[d1 >> 8 & 255] + \"-\" + _lut[d1 >> 16 & 15 | 64] + _lut[d1 >> 24 & 255] + \"-\" + _lut[d2 & 63 | 128] + _lut[d2 >> 8 & 255] + \"-\" + _lut[d2 >> 16 & 255] + _lut[d2 >> 24 & 255] + _lut[d3 & 255] + _lut[d3 >> 8 & 255] + _lut[d3 >> 16 & 255] + _lut[d3 >> 24 & 255];\n  return uuid.toLowerCase();\n}\nfunction clamp(value, min, max) {\n  return Math.max(min, Math.min(max, value));\n}\nfunction euclideanModulo(n, m) {\n  return (n % m + m) % m;\n}\nfunction mapLinear(x, a1, a2, b1, b2) {\n  return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n}\nfunction inverseLerp(x, y, value) {\n  if (x !== y) {\n    return (value - x) / (y - x);\n  } else {\n    return 0;\n  }\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, dt) {\n  return lerp(x, y, 1 - Math.exp(-lambda * dt));\n}\nfunction pingpong(x, length = 1) {\n  return length - Math.abs(euclideanModulo(x, length * 2) - length);\n}\nfunction smoothstep(x, min, max) {\n  if (x <= min) return 0;\n  if (x >= max) return 1;\n  x = (x - min) / (max - min);\n  return x * x * (3 - 2 * x);\n}\nfunction smootherstep(x, min, max) {\n  if (x <= min) return 0;\n  if (x >= max) return 1;\n  x = (x - min) / (max - min);\n  return x * x * x * (x * (x * 6 - 15) + 10);\n}\nfunction randInt(low, high) {\n  return low + Math.floor(Math.random() * (high - low + 1));\n}\nfunction randFloat(low, high) {\n  return low + Math.random() * (high - low);\n}\nfunction randFloatSpread(range) {\n  return range * (0.5 - Math.random());\n}\nfunction seededRandom(s) {\n  if (s !== void 0) _seed = s;\n  let t = _seed += 1831565813;\n  t = Math.imul(t ^ t >>> 15, t | 1);\n  t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n  return ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\nfunction degToRad(degrees) {\n  return degrees * DEG2RAD;\n}\nfunction radToDeg(radians) {\n  return radians * RAD2DEG;\n}\nfunction isPowerOfTwo(value) {\n  return (value & value - 1) === 0 && value !== 0;\n}\nfunction ceilPowerOfTwo(value) {\n  return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n}\nfunction floorPowerOfTwo(value) {\n  return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n}\nfunction setQuaternionFromProperEuler(q, a, b, c, order) {\n  const cos = Math.cos;\n  const sin = Math.sin;\n  const c2 = cos(b / 2);\n  const s2 = sin(b / 2);\n  const c13 = cos((a + c) / 2);\n  const s13 = sin((a + c) / 2);\n  const c1_3 = cos((a - c) / 2);\n  const s1_3 = sin((a - c) / 2);\n  const c3_1 = cos((c - a) / 2);\n  const s3_1 = sin((c - a) / 2);\n  switch (order) {\n    case \"XYX\":\n      q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13);\n      break;\n    case \"YZY\":\n      q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13);\n      break;\n    case \"ZXZ\":\n      q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13);\n      break;\n    case \"XZX\":\n      q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13);\n      break;\n    case \"YXY\":\n      q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13);\n      break;\n    case \"ZYZ\":\n      q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13);\n      break;\n    default:\n      console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \" + order);\n  }\n}\nfunction denormalize(value, array) {\n  switch (array.constructor) {\n    case Float32Array:\n      return value;\n    case Uint32Array:\n      return value / 4294967295;\n    case Uint16Array:\n      return value / 65535;\n    case Uint8Array:\n      return value / 255;\n    case Int32Array:\n      return Math.max(value / 2147483647, -1);\n    case Int16Array:\n      return Math.max(value / 32767, -1);\n    case Int8Array:\n      return Math.max(value / 127, -1);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nfunction normalize(value, array) {\n  switch (array.constructor) {\n    case Float32Array:\n      return value;\n    case Uint32Array:\n      return Math.round(value * 4294967295);\n    case Uint16Array:\n      return Math.round(value * 65535);\n    case Uint8Array:\n      return Math.round(value * 255);\n    case Int32Array:\n      return Math.round(value * 2147483647);\n    case Int16Array:\n      return Math.round(value * 32767);\n    case Int8Array:\n      return Math.round(value * 127);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nvar MathUtils = {\n  DEG2RAD,\n  RAD2DEG,\n  generateUUID,\n  clamp,\n  euclideanModulo,\n  mapLinear,\n  inverseLerp,\n  lerp,\n  damp,\n  pingpong,\n  smoothstep,\n  smootherstep,\n  randInt,\n  randFloat,\n  randFloatSpread,\n  seededRandom,\n  degToRad,\n  radToDeg,\n  isPowerOfTwo,\n  ceilPowerOfTwo,\n  floorPowerOfTwo,\n  setQuaternionFromProperEuler,\n  normalize,\n  denormalize\n};\nvar Vector2 = class _Vector2 {\n  constructor(x = 0, y = 0) {\n    _Vector2.prototype.isVector2 = true;\n    this.x = x;\n    this.y = y;\n  }\n  get width() {\n    return this.x;\n  }\n  set width(value) {\n    this.x = value;\n  }\n  get height() {\n    return this.y;\n  }\n  set height(value) {\n    this.y = value;\n  }\n  set(x, y) {\n    this.x = x;\n    this.y = y;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    return this;\n  }\n  divide(v) {\n    this.x /= v.x;\n    this.y /= v.y;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  applyMatrix3(m) {\n    const x = this.x, y = this.y;\n    const e = m.elements;\n    this.x = e[0] * x + e[3] * y + e[6];\n    this.y = e[1] * x + e[4] * y + e[7];\n    return this;\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y;\n  }\n  cross(v) {\n    return this.x * v.y - this.y * v.x;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  angle() {\n    const angle = Math.atan2(-this.y, -this.x) + Math.PI;\n    return angle;\n  }\n  angleTo(v) {\n    const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n    if (denominator === 0) return Math.PI / 2;\n    const theta = this.dot(v) / denominator;\n    return Math.acos(clamp(theta, -1, 1));\n  }\n  distanceTo(v) {\n    return Math.sqrt(this.distanceToSquared(v));\n  }\n  distanceToSquared(v) {\n    const dx = this.x - v.x, dy = this.y - v.y;\n    return dx * dx + dy * dy;\n  }\n  manhattanDistanceTo(v) {\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    return this;\n  }\n  rotateAround(center, angle) {\n    const c = Math.cos(angle), s = Math.sin(angle);\n    const x = this.x - center.x;\n    const y = this.y - center.y;\n    this.x = x * c - y * s + center.x;\n    this.y = x * s + y * c + center.y;\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n  }\n};\nvar Matrix3 = class _Matrix3 {\n  constructor(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n    _Matrix3.prototype.isMatrix3 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n13, n21, n22, n23, n31, n32, n33);\n    }\n  }\n  set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n    const te = this.elements;\n    te[0] = n11;\n    te[1] = n21;\n    te[2] = n31;\n    te[3] = n12;\n    te[4] = n22;\n    te[5] = n32;\n    te[6] = n13;\n    te[7] = n23;\n    te[8] = n33;\n    return this;\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  copy(m) {\n    const te = this.elements;\n    const me = m.elements;\n    te[0] = me[0];\n    te[1] = me[1];\n    te[2] = me[2];\n    te[3] = me[3];\n    te[4] = me[4];\n    te[5] = me[5];\n    te[6] = me[6];\n    te[7] = me[7];\n    te[8] = me[8];\n    return this;\n  }\n  extractBasis(xAxis, yAxis, zAxis) {\n    xAxis.setFromMatrix3Column(this, 0);\n    yAxis.setFromMatrix3Column(this, 1);\n    zAxis.setFromMatrix3Column(this, 2);\n    return this;\n  }\n  setFromMatrix4(m) {\n    const me = m.elements;\n    this.set(\n      me[0],\n      me[4],\n      me[8],\n      me[1],\n      me[5],\n      me[9],\n      me[2],\n      me[6],\n      me[10]\n    );\n    return this;\n  }\n  multiply(m) {\n    return this.multiplyMatrices(this, m);\n  }\n  premultiply(m) {\n    return this.multiplyMatrices(m, this);\n  }\n  multiplyMatrices(a, b) {\n    const ae = a.elements;\n    const be = b.elements;\n    const te = this.elements;\n    const a11 = ae[0], a12 = ae[3], a13 = ae[6];\n    const a21 = ae[1], a22 = ae[4], a23 = ae[7];\n    const a31 = ae[2], a32 = ae[5], a33 = ae[8];\n    const b11 = be[0], b12 = be[3], b13 = be[6];\n    const b21 = be[1], b22 = be[4], b23 = be[7];\n    const b31 = be[2], b32 = be[5], b33 = be[8];\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n    te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n    te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n    te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n    te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n    te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n    te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n    return this;\n  }\n  multiplyScalar(s) {\n    const te = this.elements;\n    te[0] *= s;\n    te[3] *= s;\n    te[6] *= s;\n    te[1] *= s;\n    te[4] *= s;\n    te[7] *= s;\n    te[2] *= s;\n    te[5] *= s;\n    te[8] *= s;\n    return this;\n  }\n  determinant() {\n    const te = this.elements;\n    const a = te[0], b = te[1], c = te[2], d = te[3], e = te[4], f = te[5], g = te[6], h = te[7], i = te[8];\n    return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n  }\n  invert() {\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n12 = te[3], n22 = te[4], n32 = te[5], n13 = te[6], n23 = te[7], n33 = te[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13;\n    if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const detInv = 1 / det;\n    te[0] = t11 * detInv;\n    te[1] = (n31 * n23 - n33 * n21) * detInv;\n    te[2] = (n32 * n21 - n31 * n22) * detInv;\n    te[3] = t12 * detInv;\n    te[4] = (n33 * n11 - n31 * n13) * detInv;\n    te[5] = (n31 * n12 - n32 * n11) * detInv;\n    te[6] = t13 * detInv;\n    te[7] = (n21 * n13 - n23 * n11) * detInv;\n    te[8] = (n22 * n11 - n21 * n12) * detInv;\n    return this;\n  }\n  transpose() {\n    let tmp2;\n    const m = this.elements;\n    tmp2 = m[1];\n    m[1] = m[3];\n    m[3] = tmp2;\n    tmp2 = m[2];\n    m[2] = m[6];\n    m[6] = tmp2;\n    tmp2 = m[5];\n    m[5] = m[7];\n    m[7] = tmp2;\n    return this;\n  }\n  getNormalMatrix(matrix4) {\n    return this.setFromMatrix4(matrix4).invert().transpose();\n  }\n  transposeIntoArray(r) {\n    const m = this.elements;\n    r[0] = m[0];\n    r[1] = m[3];\n    r[2] = m[6];\n    r[3] = m[1];\n    r[4] = m[4];\n    r[5] = m[7];\n    r[6] = m[2];\n    r[7] = m[5];\n    r[8] = m[8];\n    return this;\n  }\n  setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n    const c = Math.cos(rotation);\n    const s = Math.sin(rotation);\n    this.set(\n      sx * c,\n      sx * s,\n      -sx * (c * cx + s * cy) + cx + tx,\n      -sy * s,\n      sy * c,\n      -sy * (-s * cx + c * cy) + cy + ty,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  //\n  scale(sx, sy) {\n    this.premultiply(_m3.makeScale(sx, sy));\n    return this;\n  }\n  rotate(theta) {\n    this.premultiply(_m3.makeRotation(-theta));\n    return this;\n  }\n  translate(tx, ty) {\n    this.premultiply(_m3.makeTranslation(tx, ty));\n    return this;\n  }\n  // for 2D Transforms\n  makeTranslation(x, y) {\n    if (x.isVector2) {\n      this.set(\n        1,\n        0,\n        x.x,\n        0,\n        1,\n        x.y,\n        0,\n        0,\n        1\n      );\n    } else {\n      this.set(\n        1,\n        0,\n        x,\n        0,\n        1,\n        y,\n        0,\n        0,\n        1\n      );\n    }\n    return this;\n  }\n  makeRotation(theta) {\n    const c = Math.cos(theta);\n    const s = Math.sin(theta);\n    this.set(\n      c,\n      -s,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeScale(x, y) {\n    this.set(\n      x,\n      0,\n      0,\n      0,\n      y,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  //\n  equals(matrix) {\n    const te = this.elements;\n    const me = matrix.elements;\n    for (let i = 0; i < 9; i++) {\n      if (te[i] !== me[i]) return false;\n    }\n    return true;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 9; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const te = this.elements;\n    array[offset] = te[0];\n    array[offset + 1] = te[1];\n    array[offset + 2] = te[2];\n    array[offset + 3] = te[3];\n    array[offset + 4] = te[4];\n    array[offset + 5] = te[5];\n    array[offset + 6] = te[6];\n    array[offset + 7] = te[7];\n    array[offset + 8] = te[8];\n    return array;\n  }\n  clone() {\n    return new this.constructor().fromArray(this.elements);\n  }\n};\nvar _m3 = /* @__PURE__ */ new Matrix3();\nfunction arrayNeedsUint32(array) {\n  for (let i = array.length - 1; i >= 0; --i) {\n    if (array[i] >= 65535) return true;\n  }\n  return false;\n}\nvar TYPED_ARRAYS = {\n  Int8Array,\n  Uint8Array,\n  Uint8ClampedArray,\n  Int16Array,\n  Uint16Array,\n  Int32Array,\n  Uint32Array,\n  Float32Array,\n  Float64Array\n};\nfunction getTypedArray(type, buffer) {\n  return new TYPED_ARRAYS[type](buffer);\n}\nfunction createElementNS(name) {\n  return document.createElementNS(\"http://www.w3.org/1999/xhtml\", name);\n}\nfunction createCanvasElement() {\n  const canvas = createElementNS(\"canvas\");\n  canvas.style.display = \"block\";\n  return canvas;\n}\nvar _cache = {};\nfunction warnOnce(message) {\n  if (message in _cache) return;\n  _cache[message] = true;\n  console.warn(message);\n}\nfunction probeAsync(gl, sync, interval) {\n  return new Promise(function(resolve, reject) {\n    function probe() {\n      switch (gl.clientWaitSync(sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0)) {\n        case gl.WAIT_FAILED:\n          reject();\n          break;\n        case gl.TIMEOUT_EXPIRED:\n          setTimeout(probe, interval);\n          break;\n        default:\n          resolve();\n      }\n    }\n    setTimeout(probe, interval);\n  });\n}\nfunction toNormalizedProjectionMatrix(projectionMatrix) {\n  const m = projectionMatrix.elements;\n  m[2] = 0.5 * m[2] + 0.5 * m[3];\n  m[6] = 0.5 * m[6] + 0.5 * m[7];\n  m[10] = 0.5 * m[10] + 0.5 * m[11];\n  m[14] = 0.5 * m[14] + 0.5 * m[15];\n}\nfunction toReversedProjectionMatrix(projectionMatrix) {\n  const m = projectionMatrix.elements;\n  const isPerspectiveMatrix = m[11] === -1;\n  if (isPerspectiveMatrix) {\n    m[10] = -m[10] - 1;\n    m[14] = -m[14];\n  } else {\n    m[10] = -m[10];\n    m[14] = -m[14] + 1;\n  }\n}\nvar LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /* @__PURE__ */ new Matrix3().set(\n  0.8224621,\n  0.177538,\n  0,\n  0.0331941,\n  0.9668058,\n  0,\n  0.0170827,\n  0.0723974,\n  0.9105199\n);\nvar LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /* @__PURE__ */ new Matrix3().set(\n  1.2249401,\n  -0.2249404,\n  0,\n  -0.0420569,\n  1.0420571,\n  0,\n  -0.0196376,\n  -0.0786361,\n  1.0982735\n);\nvar COLOR_SPACES = {\n  [LinearSRGBColorSpace]: {\n    transfer: LinearTransfer,\n    primaries: Rec709Primaries,\n    luminanceCoefficients: [0.2126, 0.7152, 0.0722],\n    toReference: (color) => color,\n    fromReference: (color) => color\n  },\n  [SRGBColorSpace]: {\n    transfer: SRGBTransfer,\n    primaries: Rec709Primaries,\n    luminanceCoefficients: [0.2126, 0.7152, 0.0722],\n    toReference: (color) => color.convertSRGBToLinear(),\n    fromReference: (color) => color.convertLinearToSRGB()\n  },\n  [LinearDisplayP3ColorSpace]: {\n    transfer: LinearTransfer,\n    primaries: P3Primaries,\n    luminanceCoefficients: [0.2289, 0.6917, 0.0793],\n    toReference: (color) => color.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),\n    fromReference: (color) => color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)\n  },\n  [DisplayP3ColorSpace]: {\n    transfer: SRGBTransfer,\n    primaries: P3Primaries,\n    luminanceCoefficients: [0.2289, 0.6917, 0.0793],\n    toReference: (color) => color.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),\n    fromReference: (color) => color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()\n  }\n};\nvar SUPPORTED_WORKING_COLOR_SPACES = /* @__PURE__ */ new Set([LinearSRGBColorSpace, LinearDisplayP3ColorSpace]);\nvar ColorManagement = {\n  enabled: true,\n  _workingColorSpace: LinearSRGBColorSpace,\n  get workingColorSpace() {\n    return this._workingColorSpace;\n  },\n  set workingColorSpace(colorSpace) {\n    if (!SUPPORTED_WORKING_COLOR_SPACES.has(colorSpace)) {\n      throw new Error(`Unsupported working color space, \"${colorSpace}\".`);\n    }\n    this._workingColorSpace = colorSpace;\n  },\n  convert: function(color, sourceColorSpace, targetColorSpace) {\n    if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n      return color;\n    }\n    const sourceToReference = COLOR_SPACES[sourceColorSpace].toReference;\n    const targetFromReference = COLOR_SPACES[targetColorSpace].fromReference;\n    return targetFromReference(sourceToReference(color));\n  },\n  fromWorkingColorSpace: function(color, targetColorSpace) {\n    return this.convert(color, this._workingColorSpace, targetColorSpace);\n  },\n  toWorkingColorSpace: function(color, sourceColorSpace) {\n    return this.convert(color, sourceColorSpace, this._workingColorSpace);\n  },\n  getPrimaries: function(colorSpace) {\n    return COLOR_SPACES[colorSpace].primaries;\n  },\n  getTransfer: function(colorSpace) {\n    if (colorSpace === NoColorSpace) return LinearTransfer;\n    return COLOR_SPACES[colorSpace].transfer;\n  },\n  getLuminanceCoefficients: function(target, colorSpace = this._workingColorSpace) {\n    return target.fromArray(COLOR_SPACES[colorSpace].luminanceCoefficients);\n  }\n};\nfunction SRGBToLinear(c) {\n  return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n}\nfunction LinearToSRGB(c) {\n  return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n}\nvar _canvas;\nvar ImageUtils = class {\n  static getDataURL(image) {\n    if (/^data:/i.test(image.src)) {\n      return image.src;\n    }\n    if (typeof HTMLCanvasElement === \"undefined\") {\n      return image.src;\n    }\n    let canvas;\n    if (image instanceof HTMLCanvasElement) {\n      canvas = image;\n    } else {\n      if (_canvas === void 0) _canvas = createElementNS(\"canvas\");\n      _canvas.width = image.width;\n      _canvas.height = image.height;\n      const context = _canvas.getContext(\"2d\");\n      if (image instanceof ImageData) {\n        context.putImageData(image, 0, 0);\n      } else {\n        context.drawImage(image, 0, 0, image.width, image.height);\n      }\n      canvas = _canvas;\n    }\n    if (canvas.width > 2048 || canvas.height > 2048) {\n      console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\", image);\n      return canvas.toDataURL(\"image/jpeg\", 0.6);\n    } else {\n      return canvas.toDataURL(\"image/png\");\n    }\n  }\n  static sRGBToLinear(image) {\n    if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n      const canvas = createElementNS(\"canvas\");\n      canvas.width = image.width;\n      canvas.height = image.height;\n      const context = canvas.getContext(\"2d\");\n      context.drawImage(image, 0, 0, image.width, image.height);\n      const imageData = context.getImageData(0, 0, image.width, image.height);\n      const data = imageData.data;\n      for (let i = 0; i < data.length; i++) {\n        data[i] = SRGBToLinear(data[i] / 255) * 255;\n      }\n      context.putImageData(imageData, 0, 0);\n      return canvas;\n    } else if (image.data) {\n      const data = image.data.slice(0);\n      for (let i = 0; i < data.length; i++) {\n        if (data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n          data[i] = Math.floor(SRGBToLinear(data[i] / 255) * 255);\n        } else {\n          data[i] = SRGBToLinear(data[i]);\n        }\n      }\n      return {\n        data,\n        width: image.width,\n        height: image.height\n      };\n    } else {\n      console.warn(\"THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.\");\n      return image;\n    }\n  }\n};\nvar _sourceId = 0;\nvar Source = class {\n  constructor(data = null) {\n    this.isSource = true;\n    Object.defineProperty(this, \"id\", { value: _sourceId++ });\n    this.uuid = generateUUID();\n    this.data = data;\n    this.dataReady = true;\n    this.version = 0;\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (!isRootObject && meta.images[this.uuid] !== void 0) {\n      return meta.images[this.uuid];\n    }\n    const output = {\n      uuid: this.uuid,\n      url: \"\"\n    };\n    const data = this.data;\n    if (data !== null) {\n      let url;\n      if (Array.isArray(data)) {\n        url = [];\n        for (let i = 0, l = data.length; i < l; i++) {\n          if (data[i].isDataTexture) {\n            url.push(serializeImage(data[i].image));\n          } else {\n            url.push(serializeImage(data[i]));\n          }\n        }\n      } else {\n        url = serializeImage(data);\n      }\n      output.url = url;\n    }\n    if (!isRootObject) {\n      meta.images[this.uuid] = output;\n    }\n    return output;\n  }\n};\nfunction serializeImage(image) {\n  if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n    return ImageUtils.getDataURL(image);\n  } else {\n    if (image.data) {\n      return {\n        data: Array.from(image.data),\n        width: image.width,\n        height: image.height,\n        type: image.data.constructor.name\n      };\n    } else {\n      console.warn(\"THREE.Texture: Unable to serialize Texture.\");\n      return {};\n    }\n  }\n}\nvar _textureId = 0;\nvar Texture = class _Texture extends EventDispatcher {\n  constructor(image = _Texture.DEFAULT_IMAGE, mapping = _Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = _Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace) {\n    super();\n    this.isTexture = true;\n    Object.defineProperty(this, \"id\", { value: _textureId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.source = new Source(image);\n    this.mipmaps = [];\n    this.mapping = mapping;\n    this.channel = 0;\n    this.wrapS = wrapS;\n    this.wrapT = wrapT;\n    this.magFilter = magFilter;\n    this.minFilter = minFilter;\n    this.anisotropy = anisotropy;\n    this.format = format;\n    this.internalFormat = null;\n    this.type = type;\n    this.offset = new Vector2(0, 0);\n    this.repeat = new Vector2(1, 1);\n    this.center = new Vector2(0, 0);\n    this.rotation = 0;\n    this.matrixAutoUpdate = true;\n    this.matrix = new Matrix3();\n    this.generateMipmaps = true;\n    this.premultiplyAlpha = false;\n    this.flipY = true;\n    this.unpackAlignment = 4;\n    this.colorSpace = colorSpace;\n    this.userData = {};\n    this.version = 0;\n    this.onUpdate = null;\n    this.isRenderTargetTexture = false;\n    this.pmremVersion = 0;\n  }\n  get image() {\n    return this.source.data;\n  }\n  set image(value = null) {\n    this.source.data = value;\n  }\n  updateMatrix() {\n    this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.name = source.name;\n    this.source = source.source;\n    this.mipmaps = source.mipmaps.slice(0);\n    this.mapping = source.mapping;\n    this.channel = source.channel;\n    this.wrapS = source.wrapS;\n    this.wrapT = source.wrapT;\n    this.magFilter = source.magFilter;\n    this.minFilter = source.minFilter;\n    this.anisotropy = source.anisotropy;\n    this.format = source.format;\n    this.internalFormat = source.internalFormat;\n    this.type = source.type;\n    this.offset.copy(source.offset);\n    this.repeat.copy(source.repeat);\n    this.center.copy(source.center);\n    this.rotation = source.rotation;\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    this.matrix.copy(source.matrix);\n    this.generateMipmaps = source.generateMipmaps;\n    this.premultiplyAlpha = source.premultiplyAlpha;\n    this.flipY = source.flipY;\n    this.unpackAlignment = source.unpackAlignment;\n    this.colorSpace = source.colorSpace;\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    this.needsUpdate = true;\n    return this;\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (!isRootObject && meta.textures[this.uuid] !== void 0) {\n      return meta.textures[this.uuid];\n    }\n    const output = {\n      metadata: {\n        version: 4.6,\n        type: \"Texture\",\n        generator: \"Texture.toJSON\"\n      },\n      uuid: this.uuid,\n      name: this.name,\n      image: this.source.toJSON(meta).uuid,\n      mapping: this.mapping,\n      channel: this.channel,\n      repeat: [this.repeat.x, this.repeat.y],\n      offset: [this.offset.x, this.offset.y],\n      center: [this.center.x, this.center.y],\n      rotation: this.rotation,\n      wrap: [this.wrapS, this.wrapT],\n      format: this.format,\n      internalFormat: this.internalFormat,\n      type: this.type,\n      colorSpace: this.colorSpace,\n      minFilter: this.minFilter,\n      magFilter: this.magFilter,\n      anisotropy: this.anisotropy,\n      flipY: this.flipY,\n      generateMipmaps: this.generateMipmaps,\n      premultiplyAlpha: this.premultiplyAlpha,\n      unpackAlignment: this.unpackAlignment\n    };\n    if (Object.keys(this.userData).length > 0) output.userData = this.userData;\n    if (!isRootObject) {\n      meta.textures[this.uuid] = output;\n    }\n    return output;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n  transformUv(uv) {\n    if (this.mapping !== UVMapping) return uv;\n    uv.applyMatrix3(this.matrix);\n    if (uv.x < 0 || uv.x > 1) {\n      switch (this.wrapS) {\n        case RepeatWrapping:\n          uv.x = uv.x - Math.floor(uv.x);\n          break;\n        case ClampToEdgeWrapping:\n          uv.x = uv.x < 0 ? 0 : 1;\n          break;\n        case MirroredRepeatWrapping:\n          if (Math.abs(Math.floor(uv.x) % 2) === 1) {\n            uv.x = Math.ceil(uv.x) - uv.x;\n          } else {\n            uv.x = uv.x - Math.floor(uv.x);\n          }\n          break;\n      }\n    }\n    if (uv.y < 0 || uv.y > 1) {\n      switch (this.wrapT) {\n        case RepeatWrapping:\n          uv.y = uv.y - Math.floor(uv.y);\n          break;\n        case ClampToEdgeWrapping:\n          uv.y = uv.y < 0 ? 0 : 1;\n          break;\n        case MirroredRepeatWrapping:\n          if (Math.abs(Math.floor(uv.y) % 2) === 1) {\n            uv.y = Math.ceil(uv.y) - uv.y;\n          } else {\n            uv.y = uv.y - Math.floor(uv.y);\n          }\n          break;\n      }\n    }\n    if (this.flipY) {\n      uv.y = 1 - uv.y;\n    }\n    return uv;\n  }\n  set needsUpdate(value) {\n    if (value === true) {\n      this.version++;\n      this.source.needsUpdate = true;\n    }\n  }\n  set needsPMREMUpdate(value) {\n    if (value === true) {\n      this.pmremVersion++;\n    }\n  }\n};\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\nvar Vector4 = class _Vector4 {\n  constructor(x = 0, y = 0, z = 0, w = 1) {\n    _Vector4.prototype.isVector4 = true;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.w = w;\n  }\n  get width() {\n    return this.z;\n  }\n  set width(value) {\n    this.z = value;\n  }\n  get height() {\n    return this.w;\n  }\n  set height(value) {\n    this.w = value;\n  }\n  set(x, y, z, w) {\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.w = w;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    this.z = scalar;\n    this.w = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setZ(z) {\n    this.z = z;\n    return this;\n  }\n  setW(w) {\n    this.w = w;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      case 2:\n        this.z = value;\n        break;\n      case 3:\n        this.w = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      case 3:\n        return this.w;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y, this.z, this.w);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    this.z = v.z;\n    this.w = v.w !== void 0 ? v.w : 1;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    this.z += v.z;\n    this.w += v.w;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    this.z += s;\n    this.w += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    this.z = a.z + b.z;\n    this.w = a.w + b.w;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    this.z += v.z * s;\n    this.w += v.w * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    this.z -= v.z;\n    this.w -= v.w;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    this.z -= s;\n    this.w -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    this.z = a.z - b.z;\n    this.w = a.w - b.w;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    this.z *= v.z;\n    this.w *= v.w;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    this.z *= scalar;\n    this.w *= scalar;\n    return this;\n  }\n  applyMatrix4(m) {\n    const x = this.x, y = this.y, z = this.z, w = this.w;\n    const e = m.elements;\n    this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n    this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n    this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n    this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  setAxisAngleFromQuaternion(q) {\n    this.w = 2 * Math.acos(q.w);\n    const s = Math.sqrt(1 - q.w * q.w);\n    if (s < 1e-4) {\n      this.x = 1;\n      this.y = 0;\n      this.z = 0;\n    } else {\n      this.x = q.x / s;\n      this.y = q.y / s;\n      this.z = q.z / s;\n    }\n    return this;\n  }\n  setAxisAngleFromRotationMatrix(m) {\n    let angle, x, y, z;\n    const epsilon = 0.01, epsilon2 = 0.1, te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10];\n    if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\n      if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\n        this.set(1, 0, 0, 0);\n        return this;\n      }\n      angle = Math.PI;\n      const xx = (m11 + 1) / 2;\n      const yy = (m22 + 1) / 2;\n      const zz = (m33 + 1) / 2;\n      const xy = (m12 + m21) / 4;\n      const xz = (m13 + m31) / 4;\n      const yz = (m23 + m32) / 4;\n      if (xx > yy && xx > zz) {\n        if (xx < epsilon) {\n          x = 0;\n          y = 0.707106781;\n          z = 0.707106781;\n        } else {\n          x = Math.sqrt(xx);\n          y = xy / x;\n          z = xz / x;\n        }\n      } else if (yy > zz) {\n        if (yy < epsilon) {\n          x = 0.707106781;\n          y = 0;\n          z = 0.707106781;\n        } else {\n          y = Math.sqrt(yy);\n          x = xy / y;\n          z = yz / y;\n        }\n      } else {\n        if (zz < epsilon) {\n          x = 0.707106781;\n          y = 0.707106781;\n          z = 0;\n        } else {\n          z = Math.sqrt(zz);\n          x = xz / z;\n          y = yz / z;\n        }\n      }\n      this.set(x, y, z, angle);\n      return this;\n    }\n    let s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12));\n    if (Math.abs(s) < 1e-3) s = 1;\n    this.x = (m32 - m23) / s;\n    this.y = (m13 - m31) / s;\n    this.z = (m21 - m12) / s;\n    this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\n    return this;\n  }\n  setFromMatrixPosition(m) {\n    const e = m.elements;\n    this.x = e[12];\n    this.y = e[13];\n    this.z = e[14];\n    this.w = e[15];\n    return this;\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    this.z = Math.min(this.z, v.z);\n    this.w = Math.min(this.w, v.w);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    this.z = Math.max(this.z, v.z);\n    this.w = Math.max(this.w, v.w);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\n    this.w = Math.max(min.w, Math.min(max.w, this.w));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\n    this.w = Math.max(minVal, Math.min(maxVal, this.w));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    this.z = Math.floor(this.z);\n    this.w = Math.floor(this.w);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    this.z = Math.ceil(this.z);\n    this.w = Math.ceil(this.w);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.z = Math.round(this.z);\n    this.w = Math.round(this.w);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    this.z = Math.trunc(this.z);\n    this.w = Math.trunc(this.w);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    this.z = -this.z;\n    this.w = -this.w;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    this.z += (v.z - this.z) * alpha;\n    this.w += (v.w - this.w) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    this.z = v1.z + (v2.z - v1.z) * alpha;\n    this.w = v1.w + (v2.w - v1.w) * alpha;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    this.z = array[offset + 2];\n    this.w = array[offset + 3];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    array[offset + 2] = this.z;\n    array[offset + 3] = this.w;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    this.z = attribute.getZ(index);\n    this.w = attribute.getW(index);\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    this.z = Math.random();\n    this.w = Math.random();\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n    yield this.z;\n    yield this.w;\n  }\n};\nvar RenderTarget = class extends EventDispatcher {\n  constructor(width = 1, height = 1, options = {}) {\n    super();\n    this.isRenderTarget = true;\n    this.width = width;\n    this.height = height;\n    this.depth = 1;\n    this.scissor = new Vector4(0, 0, width, height);\n    this.scissorTest = false;\n    this.viewport = new Vector4(0, 0, width, height);\n    const image = { width, height, depth: 1 };\n    options = Object.assign({\n      generateMipmaps: false,\n      internalFormat: null,\n      minFilter: LinearFilter,\n      depthBuffer: true,\n      stencilBuffer: false,\n      resolveDepthBuffer: true,\n      resolveStencilBuffer: true,\n      depthTexture: null,\n      samples: 0,\n      count: 1\n    }, options);\n    const texture = new Texture(image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace);\n    texture.flipY = false;\n    texture.generateMipmaps = options.generateMipmaps;\n    texture.internalFormat = options.internalFormat;\n    this.textures = [];\n    const count = options.count;\n    for (let i = 0; i < count; i++) {\n      this.textures[i] = texture.clone();\n      this.textures[i].isRenderTargetTexture = true;\n    }\n    this.depthBuffer = options.depthBuffer;\n    this.stencilBuffer = options.stencilBuffer;\n    this.resolveDepthBuffer = options.resolveDepthBuffer;\n    this.resolveStencilBuffer = options.resolveStencilBuffer;\n    this.depthTexture = options.depthTexture;\n    this.samples = options.samples;\n  }\n  get texture() {\n    return this.textures[0];\n  }\n  set texture(value) {\n    this.textures[0] = value;\n  }\n  setSize(width, height, depth = 1) {\n    if (this.width !== width || this.height !== height || this.depth !== depth) {\n      this.width = width;\n      this.height = height;\n      this.depth = depth;\n      for (let i = 0, il = this.textures.length; i < il; i++) {\n        this.textures[i].image.width = width;\n        this.textures[i].image.height = height;\n        this.textures[i].image.depth = depth;\n      }\n      this.dispose();\n    }\n    this.viewport.set(0, 0, width, height);\n    this.scissor.set(0, 0, width, height);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.width = source.width;\n    this.height = source.height;\n    this.depth = source.depth;\n    this.scissor.copy(source.scissor);\n    this.scissorTest = source.scissorTest;\n    this.viewport.copy(source.viewport);\n    this.textures.length = 0;\n    for (let i = 0, il = source.textures.length; i < il; i++) {\n      this.textures[i] = source.textures[i].clone();\n      this.textures[i].isRenderTargetTexture = true;\n    }\n    const image = Object.assign({}, source.texture.image);\n    this.texture.source = new Source(image);\n    this.depthBuffer = source.depthBuffer;\n    this.stencilBuffer = source.stencilBuffer;\n    this.resolveDepthBuffer = source.resolveDepthBuffer;\n    this.resolveStencilBuffer = source.resolveStencilBuffer;\n    if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n    this.samples = source.samples;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n};\nvar WebGLRenderTarget = class extends RenderTarget {\n  constructor(width = 1, height = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGLRenderTarget = true;\n  }\n};\nvar DataArrayTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, depth = 1) {\n    super(null);\n    this.isDataArrayTexture = true;\n    this.image = { data, width, height, depth };\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.wrapR = ClampToEdgeWrapping;\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n    this.layerUpdates = /* @__PURE__ */ new Set();\n  }\n  addLayerUpdate(layerIndex) {\n    this.layerUpdates.add(layerIndex);\n  }\n  clearLayerUpdates() {\n    this.layerUpdates.clear();\n  }\n};\nvar WebGLArrayRenderTarget = class extends WebGLRenderTarget {\n  constructor(width = 1, height = 1, depth = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGLArrayRenderTarget = true;\n    this.depth = depth;\n    this.texture = new DataArrayTexture(null, width, height, depth);\n    this.texture.isRenderTargetTexture = true;\n  }\n};\nvar Data3DTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, depth = 1) {\n    super(null);\n    this.isData3DTexture = true;\n    this.image = { data, width, height, depth };\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.wrapR = ClampToEdgeWrapping;\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n  }\n};\nvar WebGL3DRenderTarget = class extends WebGLRenderTarget {\n  constructor(width = 1, height = 1, depth = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGL3DRenderTarget = true;\n    this.depth = depth;\n    this.texture = new Data3DTexture(null, width, height, depth);\n    this.texture.isRenderTargetTexture = true;\n  }\n};\nvar Quaternion = class {\n  constructor(x = 0, y = 0, z = 0, w = 1) {\n    this.isQuaternion = true;\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._w = w;\n  }\n  static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n    let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3];\n    const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3];\n    if (t === 0) {\n      dst[dstOffset + 0] = x0;\n      dst[dstOffset + 1] = y0;\n      dst[dstOffset + 2] = z0;\n      dst[dstOffset + 3] = w0;\n      return;\n    }\n    if (t === 1) {\n      dst[dstOffset + 0] = x1;\n      dst[dstOffset + 1] = y1;\n      dst[dstOffset + 2] = z1;\n      dst[dstOffset + 3] = w1;\n      return;\n    }\n    if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n      let s = 1 - t;\n      const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos;\n      if (sqrSin > Number.EPSILON) {\n        const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir);\n        s = Math.sin(s * len) / sin;\n        t = Math.sin(t * len) / sin;\n      }\n      const tDir = t * dir;\n      x0 = x0 * s + x1 * tDir;\n      y0 = y0 * s + y1 * tDir;\n      z0 = z0 * s + z1 * tDir;\n      w0 = w0 * s + w1 * tDir;\n      if (s === 1 - t) {\n        const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n        x0 *= f;\n        y0 *= f;\n        z0 *= f;\n        w0 *= f;\n      }\n    }\n    dst[dstOffset] = x0;\n    dst[dstOffset + 1] = y0;\n    dst[dstOffset + 2] = z0;\n    dst[dstOffset + 3] = w0;\n  }\n  static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n    const x0 = src0[srcOffset0];\n    const y0 = src0[srcOffset0 + 1];\n    const z0 = src0[srcOffset0 + 2];\n    const w0 = src0[srcOffset0 + 3];\n    const x1 = src1[srcOffset1];\n    const y1 = src1[srcOffset1 + 1];\n    const z1 = src1[srcOffset1 + 2];\n    const w1 = src1[srcOffset1 + 3];\n    dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n    dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n    dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n    dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n    return dst;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(value) {\n    this._x = value;\n    this._onChangeCallback();\n  }\n  get y() {\n    return this._y;\n  }\n  set y(value) {\n    this._y = value;\n    this._onChangeCallback();\n  }\n  get z() {\n    return this._z;\n  }\n  set z(value) {\n    this._z = value;\n    this._onChangeCallback();\n  }\n  get w() {\n    return this._w;\n  }\n  set w(value) {\n    this._w = value;\n    this._onChangeCallback();\n  }\n  set(x, y, z, w) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._w = w;\n    this._onChangeCallback();\n    return this;\n  }\n  clone() {\n    return new this.constructor(this._x, this._y, this._z, this._w);\n  }\n  copy(quaternion) {\n    this._x = quaternion.x;\n    this._y = quaternion.y;\n    this._z = quaternion.z;\n    this._w = quaternion.w;\n    this._onChangeCallback();\n    return this;\n  }\n  setFromEuler(euler, update = true) {\n    const x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n    const cos = Math.cos;\n    const sin = Math.sin;\n    const c1 = cos(x / 2);\n    const c2 = cos(y / 2);\n    const c3 = cos(z / 2);\n    const s1 = sin(x / 2);\n    const s2 = sin(y / 2);\n    const s3 = sin(z / 2);\n    switch (order) {\n      case \"XYZ\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"YXZ\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      case \"ZXY\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"ZYX\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      case \"YZX\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"XZY\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      default:\n        console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \" + order);\n    }\n    if (update === true) this._onChangeCallback();\n    return this;\n  }\n  setFromAxisAngle(axis, angle) {\n    const halfAngle = angle / 2, s = Math.sin(halfAngle);\n    this._x = axis.x * s;\n    this._y = axis.y * s;\n    this._z = axis.z * s;\n    this._w = Math.cos(halfAngle);\n    this._onChangeCallback();\n    return this;\n  }\n  setFromRotationMatrix(m) {\n    const te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33;\n    if (trace > 0) {\n      const s = 0.5 / Math.sqrt(trace + 1);\n      this._w = 0.25 / s;\n      this._x = (m32 - m23) * s;\n      this._y = (m13 - m31) * s;\n      this._z = (m21 - m12) * s;\n    } else if (m11 > m22 && m11 > m33) {\n      const s = 2 * Math.sqrt(1 + m11 - m22 - m33);\n      this._w = (m32 - m23) / s;\n      this._x = 0.25 * s;\n      this._y = (m12 + m21) / s;\n      this._z = (m13 + m31) / s;\n    } else if (m22 > m33) {\n      const s = 2 * Math.sqrt(1 + m22 - m11 - m33);\n      this._w = (m13 - m31) / s;\n      this._x = (m12 + m21) / s;\n      this._y = 0.25 * s;\n      this._z = (m23 + m32) / s;\n    } else {\n      const s = 2 * Math.sqrt(1 + m33 - m11 - m22);\n      this._w = (m21 - m12) / s;\n      this._x = (m13 + m31) / s;\n      this._y = (m23 + m32) / s;\n      this._z = 0.25 * s;\n    }\n    this._onChangeCallback();\n    return this;\n  }\n  setFromUnitVectors(vFrom, vTo) {\n    let r = vFrom.dot(vTo) + 1;\n    if (r < Number.EPSILON) {\n      r = 0;\n      if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n        this._x = -vFrom.y;\n        this._y = vFrom.x;\n        this._z = 0;\n        this._w = r;\n      } else {\n        this._x = 0;\n        this._y = -vFrom.z;\n        this._z = vFrom.y;\n        this._w = r;\n      }\n    } else {\n      this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n      this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n      this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n      this._w = r;\n    }\n    return this.normalize();\n  }\n  angleTo(q) {\n    return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\n  }\n  rotateTowards(q, step) {\n    const angle = this.angleTo(q);\n    if (angle === 0) return this;\n    const t = Math.min(1, step / angle);\n    this.slerp(q, t);\n    return this;\n  }\n  identity() {\n    return this.set(0, 0, 0, 1);\n  }\n  invert() {\n    return this.conjugate();\n  }\n  conjugate() {\n    this._x *= -1;\n    this._y *= -1;\n    this._z *= -1;\n    this._onChangeCallback();\n    return this;\n  }\n  dot(v) {\n    return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n  }\n  lengthSq() {\n    return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n  }\n  length() {\n    return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n  }\n  normalize() {\n    let l = this.length();\n    if (l === 0) {\n      this._x = 0;\n      this._y = 0;\n      this._z = 0;\n      this._w = 1;\n    } else {\n      l = 1 / l;\n      this._x = this._x * l;\n      this._y = this._y * l;\n      this._z = this._z * l;\n      this._w = this._w * l;\n    }\n    this._onChangeCallback();\n    return this;\n  }\n  multiply(q) {\n    return this.multiplyQuaternions(this, q);\n  }\n  premultiply(q) {\n    return this.multiplyQuaternions(q, this);\n  }\n  multiplyQuaternions(a, b) {\n    const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n    const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n    this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n    this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n    this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n    this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n    this._onChangeCallback();\n    return this;\n  }\n  slerp(qb, t) {\n    if (t === 0) return this;\n    if (t === 1) return this.copy(qb);\n    const x = this._x, y = this._y, z = this._z, w = this._w;\n    let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n    if (cosHalfTheta < 0) {\n      this._w = -qb._w;\n      this._x = -qb._x;\n      this._y = -qb._y;\n      this._z = -qb._z;\n      cosHalfTheta = -cosHalfTheta;\n    } else {\n      this.copy(qb);\n    }\n    if (cosHalfTheta >= 1) {\n      this._w = w;\n      this._x = x;\n      this._y = y;\n      this._z = z;\n      return this;\n    }\n    const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta;\n    if (sqrSinHalfTheta <= Number.EPSILON) {\n      const s = 1 - t;\n      this._w = s * w + t * this._w;\n      this._x = s * x + t * this._x;\n      this._y = s * y + t * this._y;\n      this._z = s * z + t * this._z;\n      this.normalize();\n      return this;\n    }\n    const sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n    const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n    const ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n    this._w = w * ratioA + this._w * ratioB;\n    this._x = x * ratioA + this._x * ratioB;\n    this._y = y * ratioA + this._y * ratioB;\n    this._z = z * ratioA + this._z * ratioB;\n    this._onChangeCallback();\n    return this;\n  }\n  slerpQuaternions(qa, qb, t) {\n    return this.copy(qa).slerp(qb, t);\n  }\n  random() {\n    const theta1 = 2 * Math.PI * Math.random();\n    const theta2 = 2 * Math.PI * Math.random();\n    const x0 = Math.random();\n    const r1 = Math.sqrt(1 - x0);\n    const r2 = Math.sqrt(x0);\n    return this.set(\n      r1 * Math.sin(theta1),\n      r1 * Math.cos(theta1),\n      r2 * Math.sin(theta2),\n      r2 * Math.cos(theta2)\n    );\n  }\n  equals(quaternion) {\n    return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n  }\n  fromArray(array, offset = 0) {\n    this._x = array[offset];\n    this._y = array[offset + 1];\n    this._z = array[offset + 2];\n    this._w = array[offset + 3];\n    this._onChangeCallback();\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._w;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this._x = attribute.getX(index);\n    this._y = attribute.getY(index);\n    this._z = attribute.getZ(index);\n    this._w = attribute.getW(index);\n    this._onChangeCallback();\n    return this;\n  }\n  toJSON() {\n    return this.toArray();\n  }\n  _onChange(callback) {\n    this._onChangeCallback = callback;\n    return this;\n  }\n  _onChangeCallback() {\n  }\n  *[Symbol.iterator]() {\n    yield this._x;\n    yield this._y;\n    yield this._z;\n    yield this._w;\n  }\n};\nvar Vector3 = class _Vector3 {\n  constructor(x = 0, y = 0, z = 0) {\n    _Vector3.prototype.isVector3 = true;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n  }\n  set(x, y, z) {\n    if (z === void 0) z = this.z;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    this.z = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setZ(z) {\n    this.z = z;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      case 2:\n        this.z = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y, this.z);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    this.z = v.z;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    this.z += v.z;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    this.z += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    this.z = a.z + b.z;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    this.z += v.z * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    this.z -= v.z;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    this.z -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    this.z = a.z - b.z;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    this.z *= v.z;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    this.z *= scalar;\n    return this;\n  }\n  multiplyVectors(a, b) {\n    this.x = a.x * b.x;\n    this.y = a.y * b.y;\n    this.z = a.z * b.z;\n    return this;\n  }\n  applyEuler(euler) {\n    return this.applyQuaternion(_quaternion$4.setFromEuler(euler));\n  }\n  applyAxisAngle(axis, angle) {\n    return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle));\n  }\n  applyMatrix3(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    this.x = e[0] * x + e[3] * y + e[6] * z;\n    this.y = e[1] * x + e[4] * y + e[7] * z;\n    this.z = e[2] * x + e[5] * y + e[8] * z;\n    return this;\n  }\n  applyNormalMatrix(m) {\n    return this.applyMatrix3(m).normalize();\n  }\n  applyMatrix4(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n    this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n    this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n    this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n    return this;\n  }\n  applyQuaternion(q) {\n    const vx = this.x, vy = this.y, vz = this.z;\n    const qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n    const tx = 2 * (qy * vz - qz * vy);\n    const ty = 2 * (qz * vx - qx * vz);\n    const tz = 2 * (qx * vy - qy * vx);\n    this.x = vx + qw * tx + qy * tz - qz * ty;\n    this.y = vy + qw * ty + qz * tx - qx * tz;\n    this.z = vz + qw * tz + qx * ty - qy * tx;\n    return this;\n  }\n  project(camera) {\n    return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n  }\n  unproject(camera) {\n    return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n  }\n  transformDirection(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    this.x = e[0] * x + e[4] * y + e[8] * z;\n    this.y = e[1] * x + e[5] * y + e[9] * z;\n    this.z = e[2] * x + e[6] * y + e[10] * z;\n    return this.normalize();\n  }\n  divide(v) {\n    this.x /= v.x;\n    this.y /= v.y;\n    this.z /= v.z;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    this.z = Math.min(this.z, v.z);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    this.z = Math.max(this.z, v.z);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    this.z = Math.floor(this.z);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    this.z = Math.ceil(this.z);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.z = Math.round(this.z);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    this.z = Math.trunc(this.z);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    this.z = -this.z;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y + this.z * v.z;\n  }\n  // TODO lengthSquared?\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    this.z += (v.z - this.z) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    this.z = v1.z + (v2.z - v1.z) * alpha;\n    return this;\n  }\n  cross(v) {\n    return this.crossVectors(this, v);\n  }\n  crossVectors(a, b) {\n    const ax = a.x, ay = a.y, az = a.z;\n    const bx = b.x, by = b.y, bz = b.z;\n    this.x = ay * bz - az * by;\n    this.y = az * bx - ax * bz;\n    this.z = ax * by - ay * bx;\n    return this;\n  }\n  projectOnVector(v) {\n    const denominator = v.lengthSq();\n    if (denominator === 0) return this.set(0, 0, 0);\n    const scalar = v.dot(this) / denominator;\n    return this.copy(v).multiplyScalar(scalar);\n  }\n  projectOnPlane(planeNormal) {\n    _vector$c.copy(this).projectOnVector(planeNormal);\n    return this.sub(_vector$c);\n  }\n  reflect(normal) {\n    return this.sub(_vector$c.copy(normal).multiplyScalar(2 * this.dot(normal)));\n  }\n  angleTo(v) {\n    const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n    if (denominator === 0) return Math.PI / 2;\n    const theta = this.dot(v) / denominator;\n    return Math.acos(clamp(theta, -1, 1));\n  }\n  distanceTo(v) {\n    return Math.sqrt(this.distanceToSquared(v));\n  }\n  distanceToSquared(v) {\n    const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n    return dx * dx + dy * dy + dz * dz;\n  }\n  manhattanDistanceTo(v) {\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n  }\n  setFromSpherical(s) {\n    return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n  }\n  setFromSphericalCoords(radius, phi, theta) {\n    const sinPhiRadius = Math.sin(phi) * radius;\n    this.x = sinPhiRadius * Math.sin(theta);\n    this.y = Math.cos(phi) * radius;\n    this.z = sinPhiRadius * Math.cos(theta);\n    return this;\n  }\n  setFromCylindrical(c) {\n    return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n  }\n  setFromCylindricalCoords(radius, theta, y) {\n    this.x = radius * Math.sin(theta);\n    this.y = y;\n    this.z = radius * Math.cos(theta);\n    return this;\n  }\n  setFromMatrixPosition(m) {\n    const e = m.elements;\n    this.x = e[12];\n    this.y = e[13];\n    this.z = e[14];\n    return this;\n  }\n  setFromMatrixScale(m) {\n    const sx = this.setFromMatrixColumn(m, 0).length();\n    const sy = this.setFromMatrixColumn(m, 1).length();\n    const sz = this.setFromMatrixColumn(m, 2).length();\n    this.x = sx;\n    this.y = sy;\n    this.z = sz;\n    return this;\n  }\n  setFromMatrixColumn(m, index) {\n    return this.fromArray(m.elements, index * 4);\n  }\n  setFromMatrix3Column(m, index) {\n    return this.fromArray(m.elements, index * 3);\n  }\n  setFromEuler(e) {\n    this.x = e._x;\n    this.y = e._y;\n    this.z = e._z;\n    return this;\n  }\n  setFromColor(c) {\n    this.x = c.r;\n    this.y = c.g;\n    this.z = c.b;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y && v.z === this.z;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    this.z = array[offset + 2];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    array[offset + 2] = this.z;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    this.z = attribute.getZ(index);\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    this.z = Math.random();\n    return this;\n  }\n  randomDirection() {\n    const theta = Math.random() * Math.PI * 2;\n    const u = Math.random() * 2 - 1;\n    const c = Math.sqrt(1 - u * u);\n    this.x = c * Math.cos(theta);\n    this.y = u;\n    this.z = c * Math.sin(theta);\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n    yield this.z;\n  }\n};\nvar _vector$c = /* @__PURE__ */ new Vector3();\nvar _quaternion$4 = /* @__PURE__ */ new Quaternion();\nvar Box3 = class {\n  constructor(min = new Vector3(Infinity, Infinity, Infinity), max = new Vector3(-Infinity, -Infinity, -Infinity)) {\n    this.isBox3 = true;\n    this.min = min;\n    this.max = max;\n  }\n  set(min, max) {\n    this.min.copy(min);\n    this.max.copy(max);\n    return this;\n  }\n  setFromArray(array) {\n    this.makeEmpty();\n    for (let i = 0, il = array.length; i < il; i += 3) {\n      this.expandByPoint(_vector$b.fromArray(array, i));\n    }\n    return this;\n  }\n  setFromBufferAttribute(attribute) {\n    this.makeEmpty();\n    for (let i = 0, il = attribute.count; i < il; i++) {\n      this.expandByPoint(_vector$b.fromBufferAttribute(attribute, i));\n    }\n    return this;\n  }\n  setFromPoints(points) {\n    this.makeEmpty();\n    for (let i = 0, il = points.length; i < il; i++) {\n      this.expandByPoint(points[i]);\n    }\n    return this;\n  }\n  setFromCenterAndSize(center, size) {\n    const halfSize = _vector$b.copy(size).multiplyScalar(0.5);\n    this.min.copy(center).sub(halfSize);\n    this.max.copy(center).add(halfSize);\n    return this;\n  }\n  setFromObject(object, precise = false) {\n    this.makeEmpty();\n    return this.expandByObject(object, precise);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(box) {\n    this.min.copy(box.min);\n    this.max.copy(box.max);\n    return this;\n  }\n  makeEmpty() {\n    this.min.x = this.min.y = this.min.z = Infinity;\n    this.max.x = this.max.y = this.max.z = -Infinity;\n    return this;\n  }\n  isEmpty() {\n    return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n  }\n  getCenter(target) {\n    return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n  }\n  getSize(target) {\n    return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n  }\n  expandByPoint(point) {\n    this.min.min(point);\n    this.max.max(point);\n    return this;\n  }\n  expandByVector(vector) {\n    this.min.sub(vector);\n    this.max.add(vector);\n    return this;\n  }\n  expandByScalar(scalar) {\n    this.min.addScalar(-scalar);\n    this.max.addScalar(scalar);\n    return this;\n  }\n  expandByObject(object, precise = false) {\n    object.updateWorldMatrix(false, false);\n    const geometry = object.geometry;\n    if (geometry !== void 0) {\n      const positionAttribute = geometry.getAttribute(\"position\");\n      if (precise === true && positionAttribute !== void 0 && object.isInstancedMesh !== true) {\n        for (let i = 0, l = positionAttribute.count; i < l; i++) {\n          if (object.isMesh === true) {\n            object.getVertexPosition(i, _vector$b);\n          } else {\n            _vector$b.fromBufferAttribute(positionAttribute, i);\n          }\n          _vector$b.applyMatrix4(object.matrixWorld);\n          this.expandByPoint(_vector$b);\n        }\n      } else {\n        if (object.boundingBox !== void 0) {\n          if (object.boundingBox === null) {\n            object.computeBoundingBox();\n          }\n          _box$4.copy(object.boundingBox);\n        } else {\n          if (geometry.boundingBox === null) {\n            geometry.computeBoundingBox();\n          }\n          _box$4.copy(geometry.boundingBox);\n        }\n        _box$4.applyMatrix4(object.matrixWorld);\n        this.union(_box$4);\n      }\n    }\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      this.expandByObject(children[i], precise);\n    }\n    return this;\n  }\n  containsPoint(point) {\n    return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z;\n  }\n  containsBox(box) {\n    return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n  }\n  getParameter(point, target) {\n    return target.set(\n      (point.x - this.min.x) / (this.max.x - this.min.x),\n      (point.y - this.min.y) / (this.max.y - this.min.y),\n      (point.z - this.min.z) / (this.max.z - this.min.z)\n    );\n  }\n  intersectsBox(box) {\n    return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y && box.max.z >= this.min.z && box.min.z <= this.max.z;\n  }\n  intersectsSphere(sphere) {\n    this.clampPoint(sphere.center, _vector$b);\n    return _vector$b.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n  }\n  intersectsPlane(plane) {\n    let min, max;\n    if (plane.normal.x > 0) {\n      min = plane.normal.x * this.min.x;\n      max = plane.normal.x * this.max.x;\n    } else {\n      min = plane.normal.x * this.max.x;\n      max = plane.normal.x * this.min.x;\n    }\n    if (plane.normal.y > 0) {\n      min += plane.normal.y * this.min.y;\n      max += plane.normal.y * this.max.y;\n    } else {\n      min += plane.normal.y * this.max.y;\n      max += plane.normal.y * this.min.y;\n    }\n    if (plane.normal.z > 0) {\n      min += plane.normal.z * this.min.z;\n      max += plane.normal.z * this.max.z;\n    } else {\n      min += plane.normal.z * this.max.z;\n      max += plane.normal.z * this.min.z;\n    }\n    return min <= -plane.constant && max >= -plane.constant;\n  }\n  intersectsTriangle(triangle) {\n    if (this.isEmpty()) {\n      return false;\n    }\n    this.getCenter(_center);\n    _extents.subVectors(this.max, _center);\n    _v0$3.subVectors(triangle.a, _center);\n    _v1$7.subVectors(triangle.b, _center);\n    _v2$4.subVectors(triangle.c, _center);\n    _f0.subVectors(_v1$7, _v0$3);\n    _f1.subVectors(_v2$4, _v1$7);\n    _f2.subVectors(_v0$3, _v2$4);\n    let axes = [\n      0,\n      -_f0.z,\n      _f0.y,\n      0,\n      -_f1.z,\n      _f1.y,\n      0,\n      -_f2.z,\n      _f2.y,\n      _f0.z,\n      0,\n      -_f0.x,\n      _f1.z,\n      0,\n      -_f1.x,\n      _f2.z,\n      0,\n      -_f2.x,\n      -_f0.y,\n      _f0.x,\n      0,\n      -_f1.y,\n      _f1.x,\n      0,\n      -_f2.y,\n      _f2.x,\n      0\n    ];\n    if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) {\n      return false;\n    }\n    axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n    if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) {\n      return false;\n    }\n    _triangleNormal.crossVectors(_f0, _f1);\n    axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n    return satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents);\n  }\n  clampPoint(point, target) {\n    return target.copy(point).clamp(this.min, this.max);\n  }\n  distanceToPoint(point) {\n    return this.clampPoint(point, _vector$b).distanceTo(point);\n  }\n  getBoundingSphere(target) {\n    if (this.isEmpty()) {\n      target.makeEmpty();\n    } else {\n      this.getCenter(target.center);\n      target.radius = this.getSize(_vector$b).length() * 0.5;\n    }\n    return target;\n  }\n  intersect(box) {\n    this.min.max(box.min);\n    this.max.min(box.max);\n    if (this.isEmpty()) this.makeEmpty();\n    return this;\n  }\n  union(box) {\n    this.min.min(box.min);\n    this.max.max(box.max);\n    return this;\n  }\n  applyMatrix4(matrix) {\n    if (this.isEmpty()) return this;\n    _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\n    _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\n    _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\n    _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\n    _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\n    _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\n    _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\n    _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\n    this.setFromPoints(_points);\n    return this;\n  }\n  translate(offset) {\n    this.min.add(offset);\n    this.max.add(offset);\n    return this;\n  }\n  equals(box) {\n    return box.min.equals(this.min) && box.max.equals(this.max);\n  }\n};\nvar _points = [\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3()\n];\nvar _vector$b = /* @__PURE__ */ new Vector3();\nvar _box$4 = /* @__PURE__ */ new Box3();\nvar _v0$3 = /* @__PURE__ */ new Vector3();\nvar _v1$7 = /* @__PURE__ */ new Vector3();\nvar _v2$4 = /* @__PURE__ */ new Vector3();\nvar _f0 = /* @__PURE__ */ new Vector3();\nvar _f1 = /* @__PURE__ */ new Vector3();\nvar _f2 = /* @__PURE__ */ new Vector3();\nvar _center = /* @__PURE__ */ new Vector3();\nvar _extents = /* @__PURE__ */ new Vector3();\nvar _triangleNormal = /* @__PURE__ */ new Vector3();\nvar _testAxis = /* @__PURE__ */ new Vector3();\nfunction satForAxes(axes, v0, v1, v2, extents) {\n  for (let i = 0, j = axes.length - 3; i <= j; i += 3) {\n    _testAxis.fromArray(axes, i);\n    const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\n    const p0 = v0.dot(_testAxis);\n    const p1 = v1.dot(_testAxis);\n    const p2 = v2.dot(_testAxis);\n    if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n      return false;\n    }\n  }\n  return true;\n}\nvar _box$3 = /* @__PURE__ */ new Box3();\nvar _v1$6 = /* @__PURE__ */ new Vector3();\nvar _v2$3 = /* @__PURE__ */ new Vector3();\nvar Sphere = class {\n  constructor(center = new Vector3(), radius = -1) {\n    this.isSphere = true;\n    this.center = center;\n    this.radius = radius;\n  }\n  set(center, radius) {\n    this.center.copy(center);\n    this.radius = radius;\n    return this;\n  }\n  setFromPoints(points, optionalCenter) {\n    const center = this.center;\n    if (optionalCenter !== void 0) {\n      center.copy(optionalCenter);\n    } else {\n      _box$3.setFromPoints(points).getCenter(center);\n    }\n    let maxRadiusSq = 0;\n    for (let i = 0, il = points.length; i < il; i++) {\n      maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\n    }\n    this.radius = Math.sqrt(maxRadiusSq);\n    return this;\n  }\n  copy(sphere) {\n    this.center.copy(sphere.center);\n    this.radius = sphere.radius;\n    return this;\n  }\n  isEmpty() {\n    return this.radius < 0;\n  }\n  makeEmpty() {\n    this.center.set(0, 0, 0);\n    this.radius = -1;\n    return this;\n  }\n  containsPoint(point) {\n    return point.distanceToSquared(this.center) <= this.radius * this.radius;\n  }\n  distanceToPoint(point) {\n    return point.distanceTo(this.center) - this.radius;\n  }\n  intersectsSphere(sphere) {\n    const radiusSum = this.radius + sphere.radius;\n    return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\n  }\n  intersectsBox(box) {\n    return box.intersectsSphere(this);\n  }\n  intersectsPlane(plane) {\n    return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\n  }\n  clampPoint(point, target) {\n    const deltaLengthSq = this.center.distanceToSquared(point);\n    target.copy(point);\n    if (deltaLengthSq > this.radius * this.radius) {\n      target.sub(this.center).normalize();\n      target.multiplyScalar(this.radius).add(this.center);\n    }\n    return target;\n  }\n  getBoundingBox(target) {\n    if (this.isEmpty()) {\n      target.makeEmpty();\n      return target;\n    }\n    target.set(this.center, this.center);\n    target.expandByScalar(this.radius);\n    return target;\n  }\n  applyMatrix4(matrix) {\n    this.center.applyMatrix4(matrix);\n    this.radius = this.radius * matrix.getMaxScaleOnAxis();\n    return this;\n  }\n  translate(offset) {\n    this.center.add(offset);\n    return this;\n  }\n  expandByPoint(point) {\n    if (this.isEmpty()) {\n      this.center.copy(point);\n      this.radius = 0;\n      return this;\n    }\n    _v1$6.subVectors(point, this.center);\n    const lengthSq = _v1$6.lengthSq();\n    if (lengthSq > this.radius * this.radius) {\n      const length = Math.sqrt(lengthSq);\n      const delta = (length - this.radius) * 0.5;\n      this.center.addScaledVector(_v1$6, delta / length);\n      this.radius += delta;\n    }\n    return this;\n  }\n  union(sphere) {\n    if (sphere.isEmpty()) {\n      return this;\n    }\n    if (this.isEmpty()) {\n      this.copy(sphere);\n      return this;\n    }\n    if (this.center.equals(sphere.center) === true) {\n      this.radius = Math.max(this.radius, sphere.radius);\n    } else {\n      _v2$3.subVectors(sphere.center, this.center).setLength(sphere.radius);\n      this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3));\n      this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3));\n    }\n    return this;\n  }\n  equals(sphere) {\n    return sphere.center.equals(this.center) && sphere.radius === this.radius;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _vector$a = /* @__PURE__ */ new Vector3();\nvar _segCenter = /* @__PURE__ */ new Vector3();\nvar _segDir = /* @__PURE__ */ new Vector3();\nvar _diff = /* @__PURE__ */ new Vector3();\nvar _edge1 = /* @__PURE__ */ new Vector3();\nvar _edge2 = /* @__PURE__ */ new Vector3();\nvar _normal$1 = /* @__PURE__ */ new Vector3();\nvar Ray = class {\n  constructor(origin = new Vector3(), direction = new Vector3(0, 0, -1)) {\n    this.origin = origin;\n    this.direction = direction;\n  }\n  set(origin, direction) {\n    this.origin.copy(origin);\n    this.direction.copy(direction);\n    return this;\n  }\n  copy(ray) {\n    this.origin.copy(ray.origin);\n    this.direction.copy(ray.direction);\n    return this;\n  }\n  at(t, target) {\n    return target.copy(this.origin).addScaledVector(this.direction, t);\n  }\n  lookAt(v) {\n    this.direction.copy(v).sub(this.origin).normalize();\n    return this;\n  }\n  recast(t) {\n    this.origin.copy(this.at(t, _vector$a));\n    return this;\n  }\n  closestPointToPoint(point, target) {\n    target.subVectors(point, this.origin);\n    const directionDistance = target.dot(this.direction);\n    if (directionDistance < 0) {\n      return target.copy(this.origin);\n    }\n    return target.copy(this.origin).addScaledVector(this.direction, directionDistance);\n  }\n  distanceToPoint(point) {\n    return Math.sqrt(this.distanceSqToPoint(point));\n  }\n  distanceSqToPoint(point) {\n    const directionDistance = _vector$a.subVectors(point, this.origin).dot(this.direction);\n    if (directionDistance < 0) {\n      return this.origin.distanceToSquared(point);\n    }\n    _vector$a.copy(this.origin).addScaledVector(this.direction, directionDistance);\n    return _vector$a.distanceToSquared(point);\n  }\n  distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\n    _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\n    _segDir.copy(v1).sub(v0).normalize();\n    _diff.copy(this.origin).sub(_segCenter);\n    const segExtent = v0.distanceTo(v1) * 0.5;\n    const a01 = -this.direction.dot(_segDir);\n    const b0 = _diff.dot(this.direction);\n    const b1 = -_diff.dot(_segDir);\n    const c = _diff.lengthSq();\n    const det = Math.abs(1 - a01 * a01);\n    let s0, s1, sqrDist, extDet;\n    if (det > 0) {\n      s0 = a01 * b1 - b0;\n      s1 = a01 * b0 - b1;\n      extDet = segExtent * det;\n      if (s0 >= 0) {\n        if (s1 >= -extDet) {\n          if (s1 <= extDet) {\n            const invDet = 1 / det;\n            s0 *= invDet;\n            s1 *= invDet;\n            sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\n          } else {\n            s1 = segExtent;\n            s0 = Math.max(0, -(a01 * s1 + b0));\n            sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n          }\n        } else {\n          s1 = -segExtent;\n          s0 = Math.max(0, -(a01 * s1 + b0));\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        }\n      } else {\n        if (s1 <= -extDet) {\n          s0 = Math.max(0, -(-a01 * segExtent + b0));\n          s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        } else if (s1 <= extDet) {\n          s0 = 0;\n          s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = s1 * (s1 + 2 * b1) + c;\n        } else {\n          s0 = Math.max(0, -(a01 * segExtent + b0));\n          s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        }\n      }\n    } else {\n      s1 = a01 > 0 ? -segExtent : segExtent;\n      s0 = Math.max(0, -(a01 * s1 + b0));\n      sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n    }\n    if (optionalPointOnRay) {\n      optionalPointOnRay.copy(this.origin).addScaledVector(this.direction, s0);\n    }\n    if (optionalPointOnSegment) {\n      optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir, s1);\n    }\n    return sqrDist;\n  }\n  intersectSphere(sphere, target) {\n    _vector$a.subVectors(sphere.center, this.origin);\n    const tca = _vector$a.dot(this.direction);\n    const d2 = _vector$a.dot(_vector$a) - tca * tca;\n    const radius2 = sphere.radius * sphere.radius;\n    if (d2 > radius2) return null;\n    const thc = Math.sqrt(radius2 - d2);\n    const t0 = tca - thc;\n    const t1 = tca + thc;\n    if (t1 < 0) return null;\n    if (t0 < 0) return this.at(t1, target);\n    return this.at(t0, target);\n  }\n  intersectsSphere(sphere) {\n    return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\n  }\n  distanceToPlane(plane) {\n    const denominator = plane.normal.dot(this.direction);\n    if (denominator === 0) {\n      if (plane.distanceToPoint(this.origin) === 0) {\n        return 0;\n      }\n      return null;\n    }\n    const t = -(this.origin.dot(plane.normal) + plane.constant) / denominator;\n    return t >= 0 ? t : null;\n  }\n  intersectPlane(plane, target) {\n    const t = this.distanceToPlane(plane);\n    if (t === null) {\n      return null;\n    }\n    return this.at(t, target);\n  }\n  intersectsPlane(plane) {\n    const distToPoint = plane.distanceToPoint(this.origin);\n    if (distToPoint === 0) {\n      return true;\n    }\n    const denominator = plane.normal.dot(this.direction);\n    if (denominator * distToPoint < 0) {\n      return true;\n    }\n    return false;\n  }\n  intersectBox(box, target) {\n    let tmin, tmax, tymin, tymax, tzmin, tzmax;\n    const invdirx = 1 / this.direction.x, invdiry = 1 / this.direction.y, invdirz = 1 / this.direction.z;\n    const origin = this.origin;\n    if (invdirx >= 0) {\n      tmin = (box.min.x - origin.x) * invdirx;\n      tmax = (box.max.x - origin.x) * invdirx;\n    } else {\n      tmin = (box.max.x - origin.x) * invdirx;\n      tmax = (box.min.x - origin.x) * invdirx;\n    }\n    if (invdiry >= 0) {\n      tymin = (box.min.y - origin.y) * invdiry;\n      tymax = (box.max.y - origin.y) * invdiry;\n    } else {\n      tymin = (box.max.y - origin.y) * invdiry;\n      tymax = (box.min.y - origin.y) * invdiry;\n    }\n    if (tmin > tymax || tymin > tmax) return null;\n    if (tymin > tmin || isNaN(tmin)) tmin = tymin;\n    if (tymax < tmax || isNaN(tmax)) tmax = tymax;\n    if (invdirz >= 0) {\n      tzmin = (box.min.z - origin.z) * invdirz;\n      tzmax = (box.max.z - origin.z) * invdirz;\n    } else {\n      tzmin = (box.max.z - origin.z) * invdirz;\n      tzmax = (box.min.z - origin.z) * invdirz;\n    }\n    if (tmin > tzmax || tzmin > tmax) return null;\n    if (tzmin > tmin || tmin !== tmin) tmin = tzmin;\n    if (tzmax < tmax || tmax !== tmax) tmax = tzmax;\n    if (tmax < 0) return null;\n    return this.at(tmin >= 0 ? tmin : tmax, target);\n  }\n  intersectsBox(box) {\n    return this.intersectBox(box, _vector$a) !== null;\n  }\n  intersectTriangle(a, b, c, backfaceCulling, target) {\n    _edge1.subVectors(b, a);\n    _edge2.subVectors(c, a);\n    _normal$1.crossVectors(_edge1, _edge2);\n    let DdN = this.direction.dot(_normal$1);\n    let sign2;\n    if (DdN > 0) {\n      if (backfaceCulling) return null;\n      sign2 = 1;\n    } else if (DdN < 0) {\n      sign2 = -1;\n      DdN = -DdN;\n    } else {\n      return null;\n    }\n    _diff.subVectors(this.origin, a);\n    const DdQxE2 = sign2 * this.direction.dot(_edge2.crossVectors(_diff, _edge2));\n    if (DdQxE2 < 0) {\n      return null;\n    }\n    const DdE1xQ = sign2 * this.direction.dot(_edge1.cross(_diff));\n    if (DdE1xQ < 0) {\n      return null;\n    }\n    if (DdQxE2 + DdE1xQ > DdN) {\n      return null;\n    }\n    const QdN = -sign2 * _diff.dot(_normal$1);\n    if (QdN < 0) {\n      return null;\n    }\n    return this.at(QdN / DdN, target);\n  }\n  applyMatrix4(matrix4) {\n    this.origin.applyMatrix4(matrix4);\n    this.direction.transformDirection(matrix4);\n    return this;\n  }\n  equals(ray) {\n    return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Matrix4 = class _Matrix4 {\n  constructor(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n    _Matrix4.prototype.isMatrix4 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44);\n    }\n  }\n  set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n    const te = this.elements;\n    te[0] = n11;\n    te[4] = n12;\n    te[8] = n13;\n    te[12] = n14;\n    te[1] = n21;\n    te[5] = n22;\n    te[9] = n23;\n    te[13] = n24;\n    te[2] = n31;\n    te[6] = n32;\n    te[10] = n33;\n    te[14] = n34;\n    te[3] = n41;\n    te[7] = n42;\n    te[11] = n43;\n    te[15] = n44;\n    return this;\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  clone() {\n    return new _Matrix4().fromArray(this.elements);\n  }\n  copy(m) {\n    const te = this.elements;\n    const me = m.elements;\n    te[0] = me[0];\n    te[1] = me[1];\n    te[2] = me[2];\n    te[3] = me[3];\n    te[4] = me[4];\n    te[5] = me[5];\n    te[6] = me[6];\n    te[7] = me[7];\n    te[8] = me[8];\n    te[9] = me[9];\n    te[10] = me[10];\n    te[11] = me[11];\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    te[15] = me[15];\n    return this;\n  }\n  copyPosition(m) {\n    const te = this.elements, me = m.elements;\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    return this;\n  }\n  setFromMatrix3(m) {\n    const me = m.elements;\n    this.set(\n      me[0],\n      me[3],\n      me[6],\n      0,\n      me[1],\n      me[4],\n      me[7],\n      0,\n      me[2],\n      me[5],\n      me[8],\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  extractBasis(xAxis, yAxis, zAxis) {\n    xAxis.setFromMatrixColumn(this, 0);\n    yAxis.setFromMatrixColumn(this, 1);\n    zAxis.setFromMatrixColumn(this, 2);\n    return this;\n  }\n  makeBasis(xAxis, yAxis, zAxis) {\n    this.set(\n      xAxis.x,\n      yAxis.x,\n      zAxis.x,\n      0,\n      xAxis.y,\n      yAxis.y,\n      zAxis.y,\n      0,\n      xAxis.z,\n      yAxis.z,\n      zAxis.z,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  extractRotation(m) {\n    const te = this.elements;\n    const me = m.elements;\n    const scaleX = 1 / _v1$5.setFromMatrixColumn(m, 0).length();\n    const scaleY = 1 / _v1$5.setFromMatrixColumn(m, 1).length();\n    const scaleZ = 1 / _v1$5.setFromMatrixColumn(m, 2).length();\n    te[0] = me[0] * scaleX;\n    te[1] = me[1] * scaleX;\n    te[2] = me[2] * scaleX;\n    te[3] = 0;\n    te[4] = me[4] * scaleY;\n    te[5] = me[5] * scaleY;\n    te[6] = me[6] * scaleY;\n    te[7] = 0;\n    te[8] = me[8] * scaleZ;\n    te[9] = me[9] * scaleZ;\n    te[10] = me[10] * scaleZ;\n    te[11] = 0;\n    te[12] = 0;\n    te[13] = 0;\n    te[14] = 0;\n    te[15] = 1;\n    return this;\n  }\n  makeRotationFromEuler(euler) {\n    const te = this.elements;\n    const x = euler.x, y = euler.y, z = euler.z;\n    const a = Math.cos(x), b = Math.sin(x);\n    const c = Math.cos(y), d = Math.sin(y);\n    const e = Math.cos(z), f = Math.sin(z);\n    if (euler.order === \"XYZ\") {\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\n      te[0] = c * e;\n      te[4] = -c * f;\n      te[8] = d;\n      te[1] = af + be * d;\n      te[5] = ae - bf * d;\n      te[9] = -b * c;\n      te[2] = bf - ae * d;\n      te[6] = be + af * d;\n      te[10] = a * c;\n    } else if (euler.order === \"YXZ\") {\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\n      te[0] = ce + df * b;\n      te[4] = de * b - cf;\n      te[8] = a * d;\n      te[1] = a * f;\n      te[5] = a * e;\n      te[9] = -b;\n      te[2] = cf * b - de;\n      te[6] = df + ce * b;\n      te[10] = a * c;\n    } else if (euler.order === \"ZXY\") {\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\n      te[0] = ce - df * b;\n      te[4] = -a * f;\n      te[8] = de + cf * b;\n      te[1] = cf + de * b;\n      te[5] = a * e;\n      te[9] = df - ce * b;\n      te[2] = -a * d;\n      te[6] = b;\n      te[10] = a * c;\n    } else if (euler.order === \"ZYX\") {\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\n      te[0] = c * e;\n      te[4] = be * d - af;\n      te[8] = ae * d + bf;\n      te[1] = c * f;\n      te[5] = bf * d + ae;\n      te[9] = af * d - be;\n      te[2] = -d;\n      te[6] = b * c;\n      te[10] = a * c;\n    } else if (euler.order === \"YZX\") {\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n      te[0] = c * e;\n      te[4] = bd - ac * f;\n      te[8] = bc * f + ad;\n      te[1] = f;\n      te[5] = a * e;\n      te[9] = -b * e;\n      te[2] = -d * e;\n      te[6] = ad * f + bc;\n      te[10] = ac - bd * f;\n    } else if (euler.order === \"XZY\") {\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n      te[0] = c * e;\n      te[4] = -f;\n      te[8] = d * e;\n      te[1] = ac * f + bd;\n      te[5] = a * e;\n      te[9] = ad * f - bc;\n      te[2] = bc * f - ad;\n      te[6] = b * e;\n      te[10] = bd * f + ac;\n    }\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0;\n    te[12] = 0;\n    te[13] = 0;\n    te[14] = 0;\n    te[15] = 1;\n    return this;\n  }\n  makeRotationFromQuaternion(q) {\n    return this.compose(_zero, q, _one);\n  }\n  lookAt(eye, target, up) {\n    const te = this.elements;\n    _z.subVectors(eye, target);\n    if (_z.lengthSq() === 0) {\n      _z.z = 1;\n    }\n    _z.normalize();\n    _x.crossVectors(up, _z);\n    if (_x.lengthSq() === 0) {\n      if (Math.abs(up.z) === 1) {\n        _z.x += 1e-4;\n      } else {\n        _z.z += 1e-4;\n      }\n      _z.normalize();\n      _x.crossVectors(up, _z);\n    }\n    _x.normalize();\n    _y.crossVectors(_z, _x);\n    te[0] = _x.x;\n    te[4] = _y.x;\n    te[8] = _z.x;\n    te[1] = _x.y;\n    te[5] = _y.y;\n    te[9] = _z.y;\n    te[2] = _x.z;\n    te[6] = _y.z;\n    te[10] = _z.z;\n    return this;\n  }\n  multiply(m) {\n    return this.multiplyMatrices(this, m);\n  }\n  premultiply(m) {\n    return this.multiplyMatrices(m, this);\n  }\n  multiplyMatrices(a, b) {\n    const ae = a.elements;\n    const be = b.elements;\n    const te = this.elements;\n    const a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];\n    const a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];\n    const a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];\n    const a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];\n    const b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];\n    const b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];\n    const b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];\n    const b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n    te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n    te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n    te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n    te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n    te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n    te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n    te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n    te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n    te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n    te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n    te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n    te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n    te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n    return this;\n  }\n  multiplyScalar(s) {\n    const te = this.elements;\n    te[0] *= s;\n    te[4] *= s;\n    te[8] *= s;\n    te[12] *= s;\n    te[1] *= s;\n    te[5] *= s;\n    te[9] *= s;\n    te[13] *= s;\n    te[2] *= s;\n    te[6] *= s;\n    te[10] *= s;\n    te[14] *= s;\n    te[3] *= s;\n    te[7] *= s;\n    te[11] *= s;\n    te[15] *= s;\n    return this;\n  }\n  determinant() {\n    const te = this.elements;\n    const n11 = te[0], n12 = te[4], n13 = te[8], n14 = te[12];\n    const n21 = te[1], n22 = te[5], n23 = te[9], n24 = te[13];\n    const n31 = te[2], n32 = te[6], n33 = te[10], n34 = te[14];\n    const n41 = te[3], n42 = te[7], n43 = te[11], n44 = te[15];\n    return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n  }\n  transpose() {\n    const te = this.elements;\n    let tmp2;\n    tmp2 = te[1];\n    te[1] = te[4];\n    te[4] = tmp2;\n    tmp2 = te[2];\n    te[2] = te[8];\n    te[8] = tmp2;\n    tmp2 = te[6];\n    te[6] = te[9];\n    te[9] = tmp2;\n    tmp2 = te[3];\n    te[3] = te[12];\n    te[12] = tmp2;\n    tmp2 = te[7];\n    te[7] = te[13];\n    te[13] = tmp2;\n    tmp2 = te[11];\n    te[11] = te[14];\n    te[14] = tmp2;\n    return this;\n  }\n  setPosition(x, y, z) {\n    const te = this.elements;\n    if (x.isVector3) {\n      te[12] = x.x;\n      te[13] = x.y;\n      te[14] = x.z;\n    } else {\n      te[12] = x;\n      te[13] = y;\n      te[14] = z;\n    }\n    return this;\n  }\n  invert() {\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n41 = te[3], n12 = te[4], n22 = te[5], n32 = te[6], n42 = te[7], n13 = te[8], n23 = te[9], n33 = te[10], n43 = te[11], n14 = te[12], n24 = te[13], n34 = te[14], n44 = te[15], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n    const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n    if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const detInv = 1 / det;\n    te[0] = t11 * detInv;\n    te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n    te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n    te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n    te[4] = t12 * detInv;\n    te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n    te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n    te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n    te[8] = t13 * detInv;\n    te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n    te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n    te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n    te[12] = t14 * detInv;\n    te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n    te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n    te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n    return this;\n  }\n  scale(v) {\n    const te = this.elements;\n    const x = v.x, y = v.y, z = v.z;\n    te[0] *= x;\n    te[4] *= y;\n    te[8] *= z;\n    te[1] *= x;\n    te[5] *= y;\n    te[9] *= z;\n    te[2] *= x;\n    te[6] *= y;\n    te[10] *= z;\n    te[3] *= x;\n    te[7] *= y;\n    te[11] *= z;\n    return this;\n  }\n  getMaxScaleOnAxis() {\n    const te = this.elements;\n    const scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n    const scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n    const scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n    return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n  }\n  makeTranslation(x, y, z) {\n    if (x.isVector3) {\n      this.set(\n        1,\n        0,\n        0,\n        x.x,\n        0,\n        1,\n        0,\n        x.y,\n        0,\n        0,\n        1,\n        x.z,\n        0,\n        0,\n        0,\n        1\n      );\n    } else {\n      this.set(\n        1,\n        0,\n        0,\n        x,\n        0,\n        1,\n        0,\n        y,\n        0,\n        0,\n        1,\n        z,\n        0,\n        0,\n        0,\n        1\n      );\n    }\n    return this;\n  }\n  makeRotationX(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      0,\n      c,\n      -s,\n      0,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationY(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      c,\n      0,\n      s,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -s,\n      0,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationZ(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      c,\n      -s,\n      0,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationAxis(axis, angle) {\n    const c = Math.cos(angle);\n    const s = Math.sin(angle);\n    const t = 1 - c;\n    const x = axis.x, y = axis.y, z = axis.z;\n    const tx = t * x, ty = t * y;\n    this.set(\n      tx * x + c,\n      tx * y - s * z,\n      tx * z + s * y,\n      0,\n      tx * y + s * z,\n      ty * y + c,\n      ty * z - s * x,\n      0,\n      tx * z - s * y,\n      ty * z + s * x,\n      t * z * z + c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeScale(x, y, z) {\n    this.set(\n      x,\n      0,\n      0,\n      0,\n      0,\n      y,\n      0,\n      0,\n      0,\n      0,\n      z,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeShear(xy, xz, yx, yz, zx, zy) {\n    this.set(\n      1,\n      yx,\n      zx,\n      0,\n      xy,\n      1,\n      zy,\n      0,\n      xz,\n      yz,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  compose(position, quaternion, scale) {\n    const te = this.elements;\n    const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n    const x2 = x + x, y2 = y + y, z2 = z + z;\n    const xx = x * x2, xy = x * y2, xz = x * z2;\n    const yy = y * y2, yz = y * z2, zz = z * z2;\n    const wx = w * x2, wy = w * y2, wz = w * z2;\n    const sx = scale.x, sy = scale.y, sz = scale.z;\n    te[0] = (1 - (yy + zz)) * sx;\n    te[1] = (xy + wz) * sx;\n    te[2] = (xz - wy) * sx;\n    te[3] = 0;\n    te[4] = (xy - wz) * sy;\n    te[5] = (1 - (xx + zz)) * sy;\n    te[6] = (yz + wx) * sy;\n    te[7] = 0;\n    te[8] = (xz + wy) * sz;\n    te[9] = (yz - wx) * sz;\n    te[10] = (1 - (xx + yy)) * sz;\n    te[11] = 0;\n    te[12] = position.x;\n    te[13] = position.y;\n    te[14] = position.z;\n    te[15] = 1;\n    return this;\n  }\n  decompose(position, quaternion, scale) {\n    const te = this.elements;\n    let sx = _v1$5.set(te[0], te[1], te[2]).length();\n    const sy = _v1$5.set(te[4], te[5], te[6]).length();\n    const sz = _v1$5.set(te[8], te[9], te[10]).length();\n    const det = this.determinant();\n    if (det < 0) sx = -sx;\n    position.x = te[12];\n    position.y = te[13];\n    position.z = te[14];\n    _m1$4.copy(this);\n    const invSX = 1 / sx;\n    const invSY = 1 / sy;\n    const invSZ = 1 / sz;\n    _m1$4.elements[0] *= invSX;\n    _m1$4.elements[1] *= invSX;\n    _m1$4.elements[2] *= invSX;\n    _m1$4.elements[4] *= invSY;\n    _m1$4.elements[5] *= invSY;\n    _m1$4.elements[6] *= invSY;\n    _m1$4.elements[8] *= invSZ;\n    _m1$4.elements[9] *= invSZ;\n    _m1$4.elements[10] *= invSZ;\n    quaternion.setFromRotationMatrix(_m1$4);\n    scale.x = sx;\n    scale.y = sy;\n    scale.z = sz;\n    return this;\n  }\n  makePerspective(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {\n    const te = this.elements;\n    const x = 2 * near / (right - left);\n    const y = 2 * near / (top - bottom);\n    const a = (right + left) / (right - left);\n    const b = (top + bottom) / (top - bottom);\n    let c, d;\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      c = -(far + near) / (far - near);\n      d = -2 * far * near / (far - near);\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      c = -far / (far - near);\n      d = -far * near / (far - near);\n    } else {\n      throw new Error(\"THREE.Matrix4.makePerspective(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    te[0] = x;\n    te[4] = 0;\n    te[8] = a;\n    te[12] = 0;\n    te[1] = 0;\n    te[5] = y;\n    te[9] = b;\n    te[13] = 0;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = c;\n    te[14] = d;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = -1;\n    te[15] = 0;\n    return this;\n  }\n  makeOrthographic(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {\n    const te = this.elements;\n    const w = 1 / (right - left);\n    const h = 1 / (top - bottom);\n    const p = 1 / (far - near);\n    const x = (right + left) * w;\n    const y = (top + bottom) * h;\n    let z, zInv;\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      z = (far + near) * p;\n      zInv = -2 * p;\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      z = near * p;\n      zInv = -1 * p;\n    } else {\n      throw new Error(\"THREE.Matrix4.makeOrthographic(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    te[0] = 2 * w;\n    te[4] = 0;\n    te[8] = 0;\n    te[12] = -x;\n    te[1] = 0;\n    te[5] = 2 * h;\n    te[9] = 0;\n    te[13] = -y;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = zInv;\n    te[14] = -z;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0;\n    te[15] = 1;\n    return this;\n  }\n  equals(matrix) {\n    const te = this.elements;\n    const me = matrix.elements;\n    for (let i = 0; i < 16; i++) {\n      if (te[i] !== me[i]) return false;\n    }\n    return true;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 16; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const te = this.elements;\n    array[offset] = te[0];\n    array[offset + 1] = te[1];\n    array[offset + 2] = te[2];\n    array[offset + 3] = te[3];\n    array[offset + 4] = te[4];\n    array[offset + 5] = te[5];\n    array[offset + 6] = te[6];\n    array[offset + 7] = te[7];\n    array[offset + 8] = te[8];\n    array[offset + 9] = te[9];\n    array[offset + 10] = te[10];\n    array[offset + 11] = te[11];\n    array[offset + 12] = te[12];\n    array[offset + 13] = te[13];\n    array[offset + 14] = te[14];\n    array[offset + 15] = te[15];\n    return array;\n  }\n};\nvar _v1$5 = /* @__PURE__ */ new Vector3();\nvar _m1$4 = /* @__PURE__ */ new Matrix4();\nvar _zero = /* @__PURE__ */ new Vector3(0, 0, 0);\nvar _one = /* @__PURE__ */ new Vector3(1, 1, 1);\nvar _x = /* @__PURE__ */ new Vector3();\nvar _y = /* @__PURE__ */ new Vector3();\nvar _z = /* @__PURE__ */ new Vector3();\nvar _matrix$2 = /* @__PURE__ */ new Matrix4();\nvar _quaternion$3 = /* @__PURE__ */ new Quaternion();\nvar Euler = class _Euler {\n  constructor(x = 0, y = 0, z = 0, order = _Euler.DEFAULT_ORDER) {\n    this.isEuler = true;\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._order = order;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(value) {\n    this._x = value;\n    this._onChangeCallback();\n  }\n  get y() {\n    return this._y;\n  }\n  set y(value) {\n    this._y = value;\n    this._onChangeCallback();\n  }\n  get z() {\n    return this._z;\n  }\n  set z(value) {\n    this._z = value;\n    this._onChangeCallback();\n  }\n  get order() {\n    return this._order;\n  }\n  set order(value) {\n    this._order = value;\n    this._onChangeCallback();\n  }\n  set(x, y, z, order = this._order) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._order = order;\n    this._onChangeCallback();\n    return this;\n  }\n  clone() {\n    return new this.constructor(this._x, this._y, this._z, this._order);\n  }\n  copy(euler) {\n    this._x = euler._x;\n    this._y = euler._y;\n    this._z = euler._z;\n    this._order = euler._order;\n    this._onChangeCallback();\n    return this;\n  }\n  setFromRotationMatrix(m, order = this._order, update = true) {\n    const te = m.elements;\n    const m11 = te[0], m12 = te[4], m13 = te[8];\n    const m21 = te[1], m22 = te[5], m23 = te[9];\n    const m31 = te[2], m32 = te[6], m33 = te[10];\n    switch (order) {\n      case \"XYZ\":\n        this._y = Math.asin(clamp(m13, -1, 1));\n        if (Math.abs(m13) < 0.9999999) {\n          this._x = Math.atan2(-m23, m33);\n          this._z = Math.atan2(-m12, m11);\n        } else {\n          this._x = Math.atan2(m32, m22);\n          this._z = 0;\n        }\n        break;\n      case \"YXZ\":\n        this._x = Math.asin(-clamp(m23, -1, 1));\n        if (Math.abs(m23) < 0.9999999) {\n          this._y = Math.atan2(m13, m33);\n          this._z = Math.atan2(m21, m22);\n        } else {\n          this._y = Math.atan2(-m31, m11);\n          this._z = 0;\n        }\n        break;\n      case \"ZXY\":\n        this._x = Math.asin(clamp(m32, -1, 1));\n        if (Math.abs(m32) < 0.9999999) {\n          this._y = Math.atan2(-m31, m33);\n          this._z = Math.atan2(-m12, m22);\n        } else {\n          this._y = 0;\n          this._z = Math.atan2(m21, m11);\n        }\n        break;\n      case \"ZYX\":\n        this._y = Math.asin(-clamp(m31, -1, 1));\n        if (Math.abs(m31) < 0.9999999) {\n          this._x = Math.atan2(m32, m33);\n          this._z = Math.atan2(m21, m11);\n        } else {\n          this._x = 0;\n          this._z = Math.atan2(-m12, m22);\n        }\n        break;\n      case \"YZX\":\n        this._z = Math.asin(clamp(m21, -1, 1));\n        if (Math.abs(m21) < 0.9999999) {\n          this._x = Math.atan2(-m23, m22);\n          this._y = Math.atan2(-m31, m11);\n        } else {\n          this._x = 0;\n          this._y = Math.atan2(m13, m33);\n        }\n        break;\n      case \"XZY\":\n        this._z = Math.asin(-clamp(m12, -1, 1));\n        if (Math.abs(m12) < 0.9999999) {\n          this._x = Math.atan2(m32, m22);\n          this._y = Math.atan2(m13, m11);\n        } else {\n          this._x = Math.atan2(-m23, m33);\n          this._y = 0;\n        }\n        break;\n      default:\n        console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \" + order);\n    }\n    this._order = order;\n    if (update === true) this._onChangeCallback();\n    return this;\n  }\n  setFromQuaternion(q, order, update) {\n    _matrix$2.makeRotationFromQuaternion(q);\n    return this.setFromRotationMatrix(_matrix$2, order, update);\n  }\n  setFromVector3(v, order = this._order) {\n    return this.set(v.x, v.y, v.z, order);\n  }\n  reorder(newOrder) {\n    _quaternion$3.setFromEuler(this);\n    return this.setFromQuaternion(_quaternion$3, newOrder);\n  }\n  equals(euler) {\n    return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n  }\n  fromArray(array) {\n    this._x = array[0];\n    this._y = array[1];\n    this._z = array[2];\n    if (array[3] !== void 0) this._order = array[3];\n    this._onChangeCallback();\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._order;\n    return array;\n  }\n  _onChange(callback) {\n    this._onChangeCallback = callback;\n    return this;\n  }\n  _onChangeCallback() {\n  }\n  *[Symbol.iterator]() {\n    yield this._x;\n    yield this._y;\n    yield this._z;\n    yield this._order;\n  }\n};\nEuler.DEFAULT_ORDER = \"XYZ\";\nvar Layers = class {\n  constructor() {\n    this.mask = 1 | 0;\n  }\n  set(channel) {\n    this.mask = (1 << channel | 0) >>> 0;\n  }\n  enable(channel) {\n    this.mask |= 1 << channel | 0;\n  }\n  enableAll() {\n    this.mask = 4294967295 | 0;\n  }\n  toggle(channel) {\n    this.mask ^= 1 << channel | 0;\n  }\n  disable(channel) {\n    this.mask &= ~(1 << channel | 0);\n  }\n  disableAll() {\n    this.mask = 0;\n  }\n  test(layers) {\n    return (this.mask & layers.mask) !== 0;\n  }\n  isEnabled(channel) {\n    return (this.mask & (1 << channel | 0)) !== 0;\n  }\n};\nvar _object3DId = 0;\nvar _v1$4 = /* @__PURE__ */ new Vector3();\nvar _q1 = /* @__PURE__ */ new Quaternion();\nvar _m1$3 = /* @__PURE__ */ new Matrix4();\nvar _target = /* @__PURE__ */ new Vector3();\nvar _position$3 = /* @__PURE__ */ new Vector3();\nvar _scale$2 = /* @__PURE__ */ new Vector3();\nvar _quaternion$2 = /* @__PURE__ */ new Quaternion();\nvar _xAxis = /* @__PURE__ */ new Vector3(1, 0, 0);\nvar _yAxis = /* @__PURE__ */ new Vector3(0, 1, 0);\nvar _zAxis = /* @__PURE__ */ new Vector3(0, 0, 1);\nvar _addedEvent = { type: \"added\" };\nvar _removedEvent = { type: \"removed\" };\nvar _childaddedEvent = { type: \"childadded\", child: null };\nvar _childremovedEvent = { type: \"childremoved\", child: null };\nvar Object3D = class _Object3D extends EventDispatcher {\n  constructor() {\n    super();\n    this.isObject3D = true;\n    Object.defineProperty(this, \"id\", { value: _object3DId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"Object3D\";\n    this.parent = null;\n    this.children = [];\n    this.up = _Object3D.DEFAULT_UP.clone();\n    const position = new Vector3();\n    const rotation = new Euler();\n    const quaternion = new Quaternion();\n    const scale = new Vector3(1, 1, 1);\n    function onRotationChange() {\n      quaternion.setFromEuler(rotation, false);\n    }\n    function onQuaternionChange() {\n      rotation.setFromQuaternion(quaternion, void 0, false);\n    }\n    rotation._onChange(onRotationChange);\n    quaternion._onChange(onQuaternionChange);\n    Object.defineProperties(this, {\n      position: {\n        configurable: true,\n        enumerable: true,\n        value: position\n      },\n      rotation: {\n        configurable: true,\n        enumerable: true,\n        value: rotation\n      },\n      quaternion: {\n        configurable: true,\n        enumerable: true,\n        value: quaternion\n      },\n      scale: {\n        configurable: true,\n        enumerable: true,\n        value: scale\n      },\n      modelViewMatrix: {\n        value: new Matrix4()\n      },\n      normalMatrix: {\n        value: new Matrix3()\n      }\n    });\n    this.matrix = new Matrix4();\n    this.matrixWorld = new Matrix4();\n    this.matrixAutoUpdate = _Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n    this.matrixWorldAutoUpdate = _Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;\n    this.matrixWorldNeedsUpdate = false;\n    this.layers = new Layers();\n    this.visible = true;\n    this.castShadow = false;\n    this.receiveShadow = false;\n    this.frustumCulled = true;\n    this.renderOrder = 0;\n    this.animations = [];\n    this.userData = {};\n  }\n  onBeforeShadow() {\n  }\n  onAfterShadow() {\n  }\n  onBeforeRender() {\n  }\n  onAfterRender() {\n  }\n  applyMatrix4(matrix) {\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    this.matrix.premultiply(matrix);\n    this.matrix.decompose(this.position, this.quaternion, this.scale);\n  }\n  applyQuaternion(q) {\n    this.quaternion.premultiply(q);\n    return this;\n  }\n  setRotationFromAxisAngle(axis, angle) {\n    this.quaternion.setFromAxisAngle(axis, angle);\n  }\n  setRotationFromEuler(euler) {\n    this.quaternion.setFromEuler(euler, true);\n  }\n  setRotationFromMatrix(m) {\n    this.quaternion.setFromRotationMatrix(m);\n  }\n  setRotationFromQuaternion(q) {\n    this.quaternion.copy(q);\n  }\n  rotateOnAxis(axis, angle) {\n    _q1.setFromAxisAngle(axis, angle);\n    this.quaternion.multiply(_q1);\n    return this;\n  }\n  rotateOnWorldAxis(axis, angle) {\n    _q1.setFromAxisAngle(axis, angle);\n    this.quaternion.premultiply(_q1);\n    return this;\n  }\n  rotateX(angle) {\n    return this.rotateOnAxis(_xAxis, angle);\n  }\n  rotateY(angle) {\n    return this.rotateOnAxis(_yAxis, angle);\n  }\n  rotateZ(angle) {\n    return this.rotateOnAxis(_zAxis, angle);\n  }\n  translateOnAxis(axis, distance) {\n    _v1$4.copy(axis).applyQuaternion(this.quaternion);\n    this.position.add(_v1$4.multiplyScalar(distance));\n    return this;\n  }\n  translateX(distance) {\n    return this.translateOnAxis(_xAxis, distance);\n  }\n  translateY(distance) {\n    return this.translateOnAxis(_yAxis, distance);\n  }\n  translateZ(distance) {\n    return this.translateOnAxis(_zAxis, distance);\n  }\n  localToWorld(vector) {\n    this.updateWorldMatrix(true, false);\n    return vector.applyMatrix4(this.matrixWorld);\n  }\n  worldToLocal(vector) {\n    this.updateWorldMatrix(true, false);\n    return vector.applyMatrix4(_m1$3.copy(this.matrixWorld).invert());\n  }\n  lookAt(x, y, z) {\n    if (x.isVector3) {\n      _target.copy(x);\n    } else {\n      _target.set(x, y, z);\n    }\n    const parent = this.parent;\n    this.updateWorldMatrix(true, false);\n    _position$3.setFromMatrixPosition(this.matrixWorld);\n    if (this.isCamera || this.isLight) {\n      _m1$3.lookAt(_position$3, _target, this.up);\n    } else {\n      _m1$3.lookAt(_target, _position$3, this.up);\n    }\n    this.quaternion.setFromRotationMatrix(_m1$3);\n    if (parent) {\n      _m1$3.extractRotation(parent.matrixWorld);\n      _q1.setFromRotationMatrix(_m1$3);\n      this.quaternion.premultiply(_q1.invert());\n    }\n  }\n  add(object) {\n    if (arguments.length > 1) {\n      for (let i = 0; i < arguments.length; i++) {\n        this.add(arguments[i]);\n      }\n      return this;\n    }\n    if (object === this) {\n      console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\", object);\n      return this;\n    }\n    if (object && object.isObject3D) {\n      object.removeFromParent();\n      object.parent = this;\n      this.children.push(object);\n      object.dispatchEvent(_addedEvent);\n      _childaddedEvent.child = object;\n      this.dispatchEvent(_childaddedEvent);\n      _childaddedEvent.child = null;\n    } else {\n      console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\", object);\n    }\n    return this;\n  }\n  remove(object) {\n    if (arguments.length > 1) {\n      for (let i = 0; i < arguments.length; i++) {\n        this.remove(arguments[i]);\n      }\n      return this;\n    }\n    const index = this.children.indexOf(object);\n    if (index !== -1) {\n      object.parent = null;\n      this.children.splice(index, 1);\n      object.dispatchEvent(_removedEvent);\n      _childremovedEvent.child = object;\n      this.dispatchEvent(_childremovedEvent);\n      _childremovedEvent.child = null;\n    }\n    return this;\n  }\n  removeFromParent() {\n    const parent = this.parent;\n    if (parent !== null) {\n      parent.remove(this);\n    }\n    return this;\n  }\n  clear() {\n    return this.remove(...this.children);\n  }\n  attach(object) {\n    this.updateWorldMatrix(true, false);\n    _m1$3.copy(this.matrixWorld).invert();\n    if (object.parent !== null) {\n      object.parent.updateWorldMatrix(true, false);\n      _m1$3.multiply(object.parent.matrixWorld);\n    }\n    object.applyMatrix4(_m1$3);\n    object.removeFromParent();\n    object.parent = this;\n    this.children.push(object);\n    object.updateWorldMatrix(false, true);\n    object.dispatchEvent(_addedEvent);\n    _childaddedEvent.child = object;\n    this.dispatchEvent(_childaddedEvent);\n    _childaddedEvent.child = null;\n    return this;\n  }\n  getObjectById(id) {\n    return this.getObjectByProperty(\"id\", id);\n  }\n  getObjectByName(name) {\n    return this.getObjectByProperty(\"name\", name);\n  }\n  getObjectByProperty(name, value) {\n    if (this[name] === value) return this;\n    for (let i = 0, l = this.children.length; i < l; i++) {\n      const child = this.children[i];\n      const object = child.getObjectByProperty(name, value);\n      if (object !== void 0) {\n        return object;\n      }\n    }\n    return void 0;\n  }\n  getObjectsByProperty(name, value, result = []) {\n    if (this[name] === value) result.push(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].getObjectsByProperty(name, value, result);\n    }\n    return result;\n  }\n  getWorldPosition(target) {\n    this.updateWorldMatrix(true, false);\n    return target.setFromMatrixPosition(this.matrixWorld);\n  }\n  getWorldQuaternion(target) {\n    this.updateWorldMatrix(true, false);\n    this.matrixWorld.decompose(_position$3, target, _scale$2);\n    return target;\n  }\n  getWorldScale(target) {\n    this.updateWorldMatrix(true, false);\n    this.matrixWorld.decompose(_position$3, _quaternion$2, target);\n    return target;\n  }\n  getWorldDirection(target) {\n    this.updateWorldMatrix(true, false);\n    const e = this.matrixWorld.elements;\n    return target.set(e[8], e[9], e[10]).normalize();\n  }\n  raycast() {\n  }\n  traverse(callback) {\n    callback(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].traverse(callback);\n    }\n  }\n  traverseVisible(callback) {\n    if (this.visible === false) return;\n    callback(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].traverseVisible(callback);\n    }\n  }\n  traverseAncestors(callback) {\n    const parent = this.parent;\n    if (parent !== null) {\n      callback(parent);\n      parent.traverseAncestors(callback);\n    }\n  }\n  updateMatrix() {\n    this.matrix.compose(this.position, this.quaternion, this.scale);\n    this.matrixWorldNeedsUpdate = true;\n  }\n  updateMatrixWorld(force) {\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    if (this.matrixWorldNeedsUpdate || force) {\n      if (this.matrixWorldAutoUpdate === true) {\n        if (this.parent === null) {\n          this.matrixWorld.copy(this.matrix);\n        } else {\n          this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n        }\n      }\n      this.matrixWorldNeedsUpdate = false;\n      force = true;\n    }\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      const child = children[i];\n      child.updateMatrixWorld(force);\n    }\n  }\n  updateWorldMatrix(updateParents, updateChildren) {\n    const parent = this.parent;\n    if (updateParents === true && parent !== null) {\n      parent.updateWorldMatrix(true, false);\n    }\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    if (this.matrixWorldAutoUpdate === true) {\n      if (this.parent === null) {\n        this.matrixWorld.copy(this.matrix);\n      } else {\n        this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n      }\n    }\n    if (updateChildren === true) {\n      const children = this.children;\n      for (let i = 0, l = children.length; i < l; i++) {\n        const child = children[i];\n        child.updateWorldMatrix(false, true);\n      }\n    }\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    const output = {};\n    if (isRootObject) {\n      meta = {\n        geometries: {},\n        materials: {},\n        textures: {},\n        images: {},\n        shapes: {},\n        skeletons: {},\n        animations: {},\n        nodes: {}\n      };\n      output.metadata = {\n        version: 4.6,\n        type: \"Object\",\n        generator: \"Object3D.toJSON\"\n      };\n    }\n    const object = {};\n    object.uuid = this.uuid;\n    object.type = this.type;\n    if (this.name !== \"\") object.name = this.name;\n    if (this.castShadow === true) object.castShadow = true;\n    if (this.receiveShadow === true) object.receiveShadow = true;\n    if (this.visible === false) object.visible = false;\n    if (this.frustumCulled === false) object.frustumCulled = false;\n    if (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\n    if (Object.keys(this.userData).length > 0) object.userData = this.userData;\n    object.layers = this.layers.mask;\n    object.matrix = this.matrix.toArray();\n    object.up = this.up.toArray();\n    if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false;\n    if (this.isInstancedMesh) {\n      object.type = \"InstancedMesh\";\n      object.count = this.count;\n      object.instanceMatrix = this.instanceMatrix.toJSON();\n      if (this.instanceColor !== null) object.instanceColor = this.instanceColor.toJSON();\n    }\n    if (this.isBatchedMesh) {\n      object.type = \"BatchedMesh\";\n      object.perObjectFrustumCulled = this.perObjectFrustumCulled;\n      object.sortObjects = this.sortObjects;\n      object.drawRanges = this._drawRanges;\n      object.reservedRanges = this._reservedRanges;\n      object.visibility = this._visibility;\n      object.active = this._active;\n      object.bounds = this._bounds.map((bound) => ({\n        boxInitialized: bound.boxInitialized,\n        boxMin: bound.box.min.toArray(),\n        boxMax: bound.box.max.toArray(),\n        sphereInitialized: bound.sphereInitialized,\n        sphereRadius: bound.sphere.radius,\n        sphereCenter: bound.sphere.center.toArray()\n      }));\n      object.maxInstanceCount = this._maxInstanceCount;\n      object.maxVertexCount = this._maxVertexCount;\n      object.maxIndexCount = this._maxIndexCount;\n      object.geometryInitialized = this._geometryInitialized;\n      object.geometryCount = this._geometryCount;\n      object.matricesTexture = this._matricesTexture.toJSON(meta);\n      if (this._colorsTexture !== null) object.colorsTexture = this._colorsTexture.toJSON(meta);\n      if (this.boundingSphere !== null) {\n        object.boundingSphere = {\n          center: object.boundingSphere.center.toArray(),\n          radius: object.boundingSphere.radius\n        };\n      }\n      if (this.boundingBox !== null) {\n        object.boundingBox = {\n          min: object.boundingBox.min.toArray(),\n          max: object.boundingBox.max.toArray()\n        };\n      }\n    }\n    function serialize(library, element) {\n      if (library[element.uuid] === void 0) {\n        library[element.uuid] = element.toJSON(meta);\n      }\n      return element.uuid;\n    }\n    if (this.isScene) {\n      if (this.background) {\n        if (this.background.isColor) {\n          object.background = this.background.toJSON();\n        } else if (this.background.isTexture) {\n          object.background = this.background.toJSON(meta).uuid;\n        }\n      }\n      if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) {\n        object.environment = this.environment.toJSON(meta).uuid;\n      }\n    } else if (this.isMesh || this.isLine || this.isPoints) {\n      object.geometry = serialize(meta.geometries, this.geometry);\n      const parameters = this.geometry.parameters;\n      if (parameters !== void 0 && parameters.shapes !== void 0) {\n        const shapes = parameters.shapes;\n        if (Array.isArray(shapes)) {\n          for (let i = 0, l = shapes.length; i < l; i++) {\n            const shape = shapes[i];\n            serialize(meta.shapes, shape);\n          }\n        } else {\n          serialize(meta.shapes, shapes);\n        }\n      }\n    }\n    if (this.isSkinnedMesh) {\n      object.bindMode = this.bindMode;\n      object.bindMatrix = this.bindMatrix.toArray();\n      if (this.skeleton !== void 0) {\n        serialize(meta.skeletons, this.skeleton);\n        object.skeleton = this.skeleton.uuid;\n      }\n    }\n    if (this.material !== void 0) {\n      if (Array.isArray(this.material)) {\n        const uuids = [];\n        for (let i = 0, l = this.material.length; i < l; i++) {\n          uuids.push(serialize(meta.materials, this.material[i]));\n        }\n        object.material = uuids;\n      } else {\n        object.material = serialize(meta.materials, this.material);\n      }\n    }\n    if (this.children.length > 0) {\n      object.children = [];\n      for (let i = 0; i < this.children.length; i++) {\n        object.children.push(this.children[i].toJSON(meta).object);\n      }\n    }\n    if (this.animations.length > 0) {\n      object.animations = [];\n      for (let i = 0; i < this.animations.length; i++) {\n        const animation = this.animations[i];\n        object.animations.push(serialize(meta.animations, animation));\n      }\n    }\n    if (isRootObject) {\n      const geometries = extractFromCache(meta.geometries);\n      const materials = extractFromCache(meta.materials);\n      const textures = extractFromCache(meta.textures);\n      const images = extractFromCache(meta.images);\n      const shapes = extractFromCache(meta.shapes);\n      const skeletons = extractFromCache(meta.skeletons);\n      const animations = extractFromCache(meta.animations);\n      const nodes = extractFromCache(meta.nodes);\n      if (geometries.length > 0) output.geometries = geometries;\n      if (materials.length > 0) output.materials = materials;\n      if (textures.length > 0) output.textures = textures;\n      if (images.length > 0) output.images = images;\n      if (shapes.length > 0) output.shapes = shapes;\n      if (skeletons.length > 0) output.skeletons = skeletons;\n      if (animations.length > 0) output.animations = animations;\n      if (nodes.length > 0) output.nodes = nodes;\n    }\n    output.object = object;\n    return output;\n    function extractFromCache(cache) {\n      const values = [];\n      for (const key in cache) {\n        const data = cache[key];\n        delete data.metadata;\n        values.push(data);\n      }\n      return values;\n    }\n  }\n  clone(recursive) {\n    return new this.constructor().copy(this, recursive);\n  }\n  copy(source, recursive = true) {\n    this.name = source.name;\n    this.up.copy(source.up);\n    this.position.copy(source.position);\n    this.rotation.order = source.rotation.order;\n    this.quaternion.copy(source.quaternion);\n    this.scale.copy(source.scale);\n    this.matrix.copy(source.matrix);\n    this.matrixWorld.copy(source.matrixWorld);\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n    this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n    this.layers.mask = source.layers.mask;\n    this.visible = source.visible;\n    this.castShadow = source.castShadow;\n    this.receiveShadow = source.receiveShadow;\n    this.frustumCulled = source.frustumCulled;\n    this.renderOrder = source.renderOrder;\n    this.animations = source.animations.slice();\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    if (recursive === true) {\n      for (let i = 0; i < source.children.length; i++) {\n        const child = source.children[i];\n        this.add(child.clone());\n      }\n    }\n    return this;\n  }\n};\nObject3D.DEFAULT_UP = /* @__PURE__ */ new Vector3(0, 1, 0);\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\nvar _v0$2 = /* @__PURE__ */ new Vector3();\nvar _v1$3 = /* @__PURE__ */ new Vector3();\nvar _v2$2 = /* @__PURE__ */ new Vector3();\nvar _v3$2 = /* @__PURE__ */ new Vector3();\nvar _vab = /* @__PURE__ */ new Vector3();\nvar _vac = /* @__PURE__ */ new Vector3();\nvar _vbc = /* @__PURE__ */ new Vector3();\nvar _vap = /* @__PURE__ */ new Vector3();\nvar _vbp = /* @__PURE__ */ new Vector3();\nvar _vcp = /* @__PURE__ */ new Vector3();\nvar _v40 = /* @__PURE__ */ new Vector4();\nvar _v41 = /* @__PURE__ */ new Vector4();\nvar _v42 = /* @__PURE__ */ new Vector4();\nvar Triangle = class _Triangle {\n  constructor(a = new Vector3(), b = new Vector3(), c = new Vector3()) {\n    this.a = a;\n    this.b = b;\n    this.c = c;\n  }\n  static getNormal(a, b, c, target) {\n    target.subVectors(c, b);\n    _v0$2.subVectors(a, b);\n    target.cross(_v0$2);\n    const targetLengthSq = target.lengthSq();\n    if (targetLengthSq > 0) {\n      return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\n    }\n    return target.set(0, 0, 0);\n  }\n  // static/instance method to calculate barycentric coordinates\n  // based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n  static getBarycoord(point, a, b, c, target) {\n    _v0$2.subVectors(c, a);\n    _v1$3.subVectors(b, a);\n    _v2$2.subVectors(point, a);\n    const dot00 = _v0$2.dot(_v0$2);\n    const dot01 = _v0$2.dot(_v1$3);\n    const dot02 = _v0$2.dot(_v2$2);\n    const dot11 = _v1$3.dot(_v1$3);\n    const dot12 = _v1$3.dot(_v2$2);\n    const denom = dot00 * dot11 - dot01 * dot01;\n    if (denom === 0) {\n      target.set(0, 0, 0);\n      return null;\n    }\n    const invDenom = 1 / denom;\n    const u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n    const v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n    return target.set(1 - u - v, v, u);\n  }\n  static containsPoint(point, a, b, c) {\n    if (this.getBarycoord(point, a, b, c, _v3$2) === null) {\n      return false;\n    }\n    return _v3$2.x >= 0 && _v3$2.y >= 0 && _v3$2.x + _v3$2.y <= 1;\n  }\n  static getInterpolation(point, p1, p2, p3, v1, v2, v3, target) {\n    if (this.getBarycoord(point, p1, p2, p3, _v3$2) === null) {\n      target.x = 0;\n      target.y = 0;\n      if (\"z\" in target) target.z = 0;\n      if (\"w\" in target) target.w = 0;\n      return null;\n    }\n    target.setScalar(0);\n    target.addScaledVector(v1, _v3$2.x);\n    target.addScaledVector(v2, _v3$2.y);\n    target.addScaledVector(v3, _v3$2.z);\n    return target;\n  }\n  static getInterpolatedAttribute(attr, i1, i2, i3, barycoord, target) {\n    _v40.setScalar(0);\n    _v41.setScalar(0);\n    _v42.setScalar(0);\n    _v40.fromBufferAttribute(attr, i1);\n    _v41.fromBufferAttribute(attr, i2);\n    _v42.fromBufferAttribute(attr, i3);\n    target.setScalar(0);\n    target.addScaledVector(_v40, barycoord.x);\n    target.addScaledVector(_v41, barycoord.y);\n    target.addScaledVector(_v42, barycoord.z);\n    return target;\n  }\n  static isFrontFacing(a, b, c, direction) {\n    _v0$2.subVectors(c, b);\n    _v1$3.subVectors(a, b);\n    return _v0$2.cross(_v1$3).dot(direction) < 0 ? true : false;\n  }\n  set(a, b, c) {\n    this.a.copy(a);\n    this.b.copy(b);\n    this.c.copy(c);\n    return this;\n  }\n  setFromPointsAndIndices(points, i0, i1, i2) {\n    this.a.copy(points[i0]);\n    this.b.copy(points[i1]);\n    this.c.copy(points[i2]);\n    return this;\n  }\n  setFromAttributeAndIndices(attribute, i0, i1, i2) {\n    this.a.fromBufferAttribute(attribute, i0);\n    this.b.fromBufferAttribute(attribute, i1);\n    this.c.fromBufferAttribute(attribute, i2);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(triangle) {\n    this.a.copy(triangle.a);\n    this.b.copy(triangle.b);\n    this.c.copy(triangle.c);\n    return this;\n  }\n  getArea() {\n    _v0$2.subVectors(this.c, this.b);\n    _v1$3.subVectors(this.a, this.b);\n    return _v0$2.cross(_v1$3).length() * 0.5;\n  }\n  getMidpoint(target) {\n    return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n  }\n  getNormal(target) {\n    return _Triangle.getNormal(this.a, this.b, this.c, target);\n  }\n  getPlane(target) {\n    return target.setFromCoplanarPoints(this.a, this.b, this.c);\n  }\n  getBarycoord(point, target) {\n    return _Triangle.getBarycoord(point, this.a, this.b, this.c, target);\n  }\n  getInterpolation(point, v1, v2, v3, target) {\n    return _Triangle.getInterpolation(point, this.a, this.b, this.c, v1, v2, v3, target);\n  }\n  containsPoint(point) {\n    return _Triangle.containsPoint(point, this.a, this.b, this.c);\n  }\n  isFrontFacing(direction) {\n    return _Triangle.isFrontFacing(this.a, this.b, this.c, direction);\n  }\n  intersectsBox(box) {\n    return box.intersectsTriangle(this);\n  }\n  closestPointToPoint(p, target) {\n    const a = this.a, b = this.b, c = this.c;\n    let v, w;\n    _vab.subVectors(b, a);\n    _vac.subVectors(c, a);\n    _vap.subVectors(p, a);\n    const d1 = _vab.dot(_vap);\n    const d2 = _vac.dot(_vap);\n    if (d1 <= 0 && d2 <= 0) {\n      return target.copy(a);\n    }\n    _vbp.subVectors(p, b);\n    const d3 = _vab.dot(_vbp);\n    const d4 = _vac.dot(_vbp);\n    if (d3 >= 0 && d4 <= d3) {\n      return target.copy(b);\n    }\n    const vc = d1 * d4 - d3 * d2;\n    if (vc <= 0 && d1 >= 0 && d3 <= 0) {\n      v = d1 / (d1 - d3);\n      return target.copy(a).addScaledVector(_vab, v);\n    }\n    _vcp.subVectors(p, c);\n    const d5 = _vab.dot(_vcp);\n    const d6 = _vac.dot(_vcp);\n    if (d6 >= 0 && d5 <= d6) {\n      return target.copy(c);\n    }\n    const vb = d5 * d2 - d1 * d6;\n    if (vb <= 0 && d2 >= 0 && d6 <= 0) {\n      w = d2 / (d2 - d6);\n      return target.copy(a).addScaledVector(_vac, w);\n    }\n    const va = d3 * d6 - d5 * d4;\n    if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\n      _vbc.subVectors(c, b);\n      w = (d4 - d3) / (d4 - d3 + (d5 - d6));\n      return target.copy(b).addScaledVector(_vbc, w);\n    }\n    const denom = 1 / (va + vb + vc);\n    v = vb * denom;\n    w = vc * denom;\n    return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\n  }\n  equals(triangle) {\n    return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\n  }\n};\nvar _colorKeywords = {\n  \"aliceblue\": 15792383,\n  \"antiquewhite\": 16444375,\n  \"aqua\": 65535,\n  \"aquamarine\": 8388564,\n  \"azure\": 15794175,\n  \"beige\": 16119260,\n  \"bisque\": 16770244,\n  \"black\": 0,\n  \"blanchedalmond\": 16772045,\n  \"blue\": 255,\n  \"blueviolet\": 9055202,\n  \"brown\": 10824234,\n  \"burlywood\": 14596231,\n  \"cadetblue\": 6266528,\n  \"chartreuse\": 8388352,\n  \"chocolate\": 13789470,\n  \"coral\": 16744272,\n  \"cornflowerblue\": 6591981,\n  \"cornsilk\": 16775388,\n  \"crimson\": 14423100,\n  \"cyan\": 65535,\n  \"darkblue\": 139,\n  \"darkcyan\": 35723,\n  \"darkgoldenrod\": 12092939,\n  \"darkgray\": 11119017,\n  \"darkgreen\": 25600,\n  \"darkgrey\": 11119017,\n  \"darkkhaki\": 12433259,\n  \"darkmagenta\": 9109643,\n  \"darkolivegreen\": 5597999,\n  \"darkorange\": 16747520,\n  \"darkorchid\": 10040012,\n  \"darkred\": 9109504,\n  \"darksalmon\": 15308410,\n  \"darkseagreen\": 9419919,\n  \"darkslateblue\": 4734347,\n  \"darkslategray\": 3100495,\n  \"darkslategrey\": 3100495,\n  \"darkturquoise\": 52945,\n  \"darkviolet\": 9699539,\n  \"deeppink\": 16716947,\n  \"deepskyblue\": 49151,\n  \"dimgray\": 6908265,\n  \"dimgrey\": 6908265,\n  \"dodgerblue\": 2003199,\n  \"firebrick\": 11674146,\n  \"floralwhite\": 16775920,\n  \"forestgreen\": 2263842,\n  \"fuchsia\": 16711935,\n  \"gainsboro\": 14474460,\n  \"ghostwhite\": 16316671,\n  \"gold\": 16766720,\n  \"goldenrod\": 14329120,\n  \"gray\": 8421504,\n  \"green\": 32768,\n  \"greenyellow\": 11403055,\n  \"grey\": 8421504,\n  \"honeydew\": 15794160,\n  \"hotpink\": 16738740,\n  \"indianred\": 13458524,\n  \"indigo\": 4915330,\n  \"ivory\": 16777200,\n  \"khaki\": 15787660,\n  \"lavender\": 15132410,\n  \"lavenderblush\": 16773365,\n  \"lawngreen\": 8190976,\n  \"lemonchiffon\": 16775885,\n  \"lightblue\": 11393254,\n  \"lightcoral\": 15761536,\n  \"lightcyan\": 14745599,\n  \"lightgoldenrodyellow\": 16448210,\n  \"lightgray\": 13882323,\n  \"lightgreen\": 9498256,\n  \"lightgrey\": 13882323,\n  \"lightpink\": 16758465,\n  \"lightsalmon\": 16752762,\n  \"lightseagreen\": 2142890,\n  \"lightskyblue\": 8900346,\n  \"lightslategray\": 7833753,\n  \"lightslategrey\": 7833753,\n  \"lightsteelblue\": 11584734,\n  \"lightyellow\": 16777184,\n  \"lime\": 65280,\n  \"limegreen\": 3329330,\n  \"linen\": 16445670,\n  \"magenta\": 16711935,\n  \"maroon\": 8388608,\n  \"mediumaquamarine\": 6737322,\n  \"mediumblue\": 205,\n  \"mediumorchid\": 12211667,\n  \"mediumpurple\": 9662683,\n  \"mediumseagreen\": 3978097,\n  \"mediumslateblue\": 8087790,\n  \"mediumspringgreen\": 64154,\n  \"mediumturquoise\": 4772300,\n  \"mediumvioletred\": 13047173,\n  \"midnightblue\": 1644912,\n  \"mintcream\": 16121850,\n  \"mistyrose\": 16770273,\n  \"moccasin\": 16770229,\n  \"navajowhite\": 16768685,\n  \"navy\": 128,\n  \"oldlace\": 16643558,\n  \"olive\": 8421376,\n  \"olivedrab\": 7048739,\n  \"orange\": 16753920,\n  \"orangered\": 16729344,\n  \"orchid\": 14315734,\n  \"palegoldenrod\": 15657130,\n  \"palegreen\": 10025880,\n  \"paleturquoise\": 11529966,\n  \"palevioletred\": 14381203,\n  \"papayawhip\": 16773077,\n  \"peachpuff\": 16767673,\n  \"peru\": 13468991,\n  \"pink\": 16761035,\n  \"plum\": 14524637,\n  \"powderblue\": 11591910,\n  \"purple\": 8388736,\n  \"rebeccapurple\": 6697881,\n  \"red\": 16711680,\n  \"rosybrown\": 12357519,\n  \"royalblue\": 4286945,\n  \"saddlebrown\": 9127187,\n  \"salmon\": 16416882,\n  \"sandybrown\": 16032864,\n  \"seagreen\": 3050327,\n  \"seashell\": 16774638,\n  \"sienna\": 10506797,\n  \"silver\": 12632256,\n  \"skyblue\": 8900331,\n  \"slateblue\": 6970061,\n  \"slategray\": 7372944,\n  \"slategrey\": 7372944,\n  \"snow\": 16775930,\n  \"springgreen\": 65407,\n  \"steelblue\": 4620980,\n  \"tan\": 13808780,\n  \"teal\": 32896,\n  \"thistle\": 14204888,\n  \"tomato\": 16737095,\n  \"turquoise\": 4251856,\n  \"violet\": 15631086,\n  \"wheat\": 16113331,\n  \"white\": 16777215,\n  \"whitesmoke\": 16119285,\n  \"yellow\": 16776960,\n  \"yellowgreen\": 10145074\n};\nvar _hslA = { h: 0, s: 0, l: 0 };\nvar _hslB = { h: 0, s: 0, l: 0 };\nfunction hue2rgb(p, q, t) {\n  if (t < 0) t += 1;\n  if (t > 1) t -= 1;\n  if (t < 1 / 6) return p + (q - p) * 6 * t;\n  if (t < 1 / 2) return q;\n  if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n  return p;\n}\nvar Color = class {\n  constructor(r, g, b) {\n    this.isColor = true;\n    this.r = 1;\n    this.g = 1;\n    this.b = 1;\n    return this.set(r, g, b);\n  }\n  set(r, g, b) {\n    if (g === void 0 && b === void 0) {\n      const value = r;\n      if (value && value.isColor) {\n        this.copy(value);\n      } else if (typeof value === \"number\") {\n        this.setHex(value);\n      } else if (typeof value === \"string\") {\n        this.setStyle(value);\n      }\n    } else {\n      this.setRGB(r, g, b);\n    }\n    return this;\n  }\n  setScalar(scalar) {\n    this.r = scalar;\n    this.g = scalar;\n    this.b = scalar;\n    return this;\n  }\n  setHex(hex, colorSpace = SRGBColorSpace) {\n    hex = Math.floor(hex);\n    this.r = (hex >> 16 & 255) / 255;\n    this.g = (hex >> 8 & 255) / 255;\n    this.b = (hex & 255) / 255;\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setRGB(r, g, b, colorSpace = ColorManagement.workingColorSpace) {\n    this.r = r;\n    this.g = g;\n    this.b = b;\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setHSL(h, s, l, colorSpace = ColorManagement.workingColorSpace) {\n    h = euclideanModulo(h, 1);\n    s = clamp(s, 0, 1);\n    l = clamp(l, 0, 1);\n    if (s === 0) {\n      this.r = this.g = this.b = l;\n    } else {\n      const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n      const q = 2 * l - p;\n      this.r = hue2rgb(q, p, h + 1 / 3);\n      this.g = hue2rgb(q, p, h);\n      this.b = hue2rgb(q, p, h - 1 / 3);\n    }\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setStyle(style, colorSpace = SRGBColorSpace) {\n    function handleAlpha(string) {\n      if (string === void 0) return;\n      if (parseFloat(string) < 1) {\n        console.warn(\"THREE.Color: Alpha component of \" + style + \" will be ignored.\");\n      }\n    }\n    let m;\n    if (m = /^(\\w+)\\(([^\\)]*)\\)/.exec(style)) {\n      let color;\n      const name = m[1];\n      const components = m[2];\n      switch (name) {\n        case \"rgb\":\n        case \"rgba\":\n          if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setRGB(\n              Math.min(255, parseInt(color[1], 10)) / 255,\n              Math.min(255, parseInt(color[2], 10)) / 255,\n              Math.min(255, parseInt(color[3], 10)) / 255,\n              colorSpace\n            );\n          }\n          if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setRGB(\n              Math.min(100, parseInt(color[1], 10)) / 100,\n              Math.min(100, parseInt(color[2], 10)) / 100,\n              Math.min(100, parseInt(color[3], 10)) / 100,\n              colorSpace\n            );\n          }\n          break;\n        case \"hsl\":\n        case \"hsla\":\n          if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setHSL(\n              parseFloat(color[1]) / 360,\n              parseFloat(color[2]) / 100,\n              parseFloat(color[3]) / 100,\n              colorSpace\n            );\n          }\n          break;\n        default:\n          console.warn(\"THREE.Color: Unknown color model \" + style);\n      }\n    } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n      const hex = m[1];\n      const size = hex.length;\n      if (size === 3) {\n        return this.setRGB(\n          parseInt(hex.charAt(0), 16) / 15,\n          parseInt(hex.charAt(1), 16) / 15,\n          parseInt(hex.charAt(2), 16) / 15,\n          colorSpace\n        );\n      } else if (size === 6) {\n        return this.setHex(parseInt(hex, 16), colorSpace);\n      } else {\n        console.warn(\"THREE.Color: Invalid hex color \" + style);\n      }\n    } else if (style && style.length > 0) {\n      return this.setColorName(style, colorSpace);\n    }\n    return this;\n  }\n  setColorName(style, colorSpace = SRGBColorSpace) {\n    const hex = _colorKeywords[style.toLowerCase()];\n    if (hex !== void 0) {\n      this.setHex(hex, colorSpace);\n    } else {\n      console.warn(\"THREE.Color: Unknown color \" + style);\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor(this.r, this.g, this.b);\n  }\n  copy(color) {\n    this.r = color.r;\n    this.g = color.g;\n    this.b = color.b;\n    return this;\n  }\n  copySRGBToLinear(color) {\n    this.r = SRGBToLinear(color.r);\n    this.g = SRGBToLinear(color.g);\n    this.b = SRGBToLinear(color.b);\n    return this;\n  }\n  copyLinearToSRGB(color) {\n    this.r = LinearToSRGB(color.r);\n    this.g = LinearToSRGB(color.g);\n    this.b = LinearToSRGB(color.b);\n    return this;\n  }\n  convertSRGBToLinear() {\n    this.copySRGBToLinear(this);\n    return this;\n  }\n  convertLinearToSRGB() {\n    this.copyLinearToSRGB(this);\n    return this;\n  }\n  getHex(colorSpace = SRGBColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    return Math.round(clamp(_color.r * 255, 0, 255)) * 65536 + Math.round(clamp(_color.g * 255, 0, 255)) * 256 + Math.round(clamp(_color.b * 255, 0, 255));\n  }\n  getHexString(colorSpace = SRGBColorSpace) {\n    return (\"000000\" + this.getHex(colorSpace).toString(16)).slice(-6);\n  }\n  getHSL(target, colorSpace = ColorManagement.workingColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    const r = _color.r, g = _color.g, b = _color.b;\n    const max = Math.max(r, g, b);\n    const min = Math.min(r, g, b);\n    let hue, saturation;\n    const lightness = (min + max) / 2;\n    if (min === max) {\n      hue = 0;\n      saturation = 0;\n    } else {\n      const delta = max - min;\n      saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\n      switch (max) {\n        case r:\n          hue = (g - b) / delta + (g < b ? 6 : 0);\n          break;\n        case g:\n          hue = (b - r) / delta + 2;\n          break;\n        case b:\n          hue = (r - g) / delta + 4;\n          break;\n      }\n      hue /= 6;\n    }\n    target.h = hue;\n    target.s = saturation;\n    target.l = lightness;\n    return target;\n  }\n  getRGB(target, colorSpace = ColorManagement.workingColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    target.r = _color.r;\n    target.g = _color.g;\n    target.b = _color.b;\n    return target;\n  }\n  getStyle(colorSpace = SRGBColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    const r = _color.r, g = _color.g, b = _color.b;\n    if (colorSpace !== SRGBColorSpace) {\n      return `color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`;\n    }\n    return `rgb(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)})`;\n  }\n  offsetHSL(h, s, l) {\n    this.getHSL(_hslA);\n    return this.setHSL(_hslA.h + h, _hslA.s + s, _hslA.l + l);\n  }\n  add(color) {\n    this.r += color.r;\n    this.g += color.g;\n    this.b += color.b;\n    return this;\n  }\n  addColors(color1, color2) {\n    this.r = color1.r + color2.r;\n    this.g = color1.g + color2.g;\n    this.b = color1.b + color2.b;\n    return this;\n  }\n  addScalar(s) {\n    this.r += s;\n    this.g += s;\n    this.b += s;\n    return this;\n  }\n  sub(color) {\n    this.r = Math.max(0, this.r - color.r);\n    this.g = Math.max(0, this.g - color.g);\n    this.b = Math.max(0, this.b - color.b);\n    return this;\n  }\n  multiply(color) {\n    this.r *= color.r;\n    this.g *= color.g;\n    this.b *= color.b;\n    return this;\n  }\n  multiplyScalar(s) {\n    this.r *= s;\n    this.g *= s;\n    this.b *= s;\n    return this;\n  }\n  lerp(color, alpha) {\n    this.r += (color.r - this.r) * alpha;\n    this.g += (color.g - this.g) * alpha;\n    this.b += (color.b - this.b) * alpha;\n    return this;\n  }\n  lerpColors(color1, color2, alpha) {\n    this.r = color1.r + (color2.r - color1.r) * alpha;\n    this.g = color1.g + (color2.g - color1.g) * alpha;\n    this.b = color1.b + (color2.b - color1.b) * alpha;\n    return this;\n  }\n  lerpHSL(color, alpha) {\n    this.getHSL(_hslA);\n    color.getHSL(_hslB);\n    const h = lerp(_hslA.h, _hslB.h, alpha);\n    const s = lerp(_hslA.s, _hslB.s, alpha);\n    const l = lerp(_hslA.l, _hslB.l, alpha);\n    this.setHSL(h, s, l);\n    return this;\n  }\n  setFromVector3(v) {\n    this.r = v.x;\n    this.g = v.y;\n    this.b = v.z;\n    return this;\n  }\n  applyMatrix3(m) {\n    const r = this.r, g = this.g, b = this.b;\n    const e = m.elements;\n    this.r = e[0] * r + e[3] * g + e[6] * b;\n    this.g = e[1] * r + e[4] * g + e[7] * b;\n    this.b = e[2] * r + e[5] * g + e[8] * b;\n    return this;\n  }\n  equals(c) {\n    return c.r === this.r && c.g === this.g && c.b === this.b;\n  }\n  fromArray(array, offset = 0) {\n    this.r = array[offset];\n    this.g = array[offset + 1];\n    this.b = array[offset + 2];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.r;\n    array[offset + 1] = this.g;\n    array[offset + 2] = this.b;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.r = attribute.getX(index);\n    this.g = attribute.getY(index);\n    this.b = attribute.getZ(index);\n    return this;\n  }\n  toJSON() {\n    return this.getHex();\n  }\n  *[Symbol.iterator]() {\n    yield this.r;\n    yield this.g;\n    yield this.b;\n  }\n};\nvar _color = /* @__PURE__ */ new Color();\nColor.NAMES = _colorKeywords;\nvar _materialId = 0;\nvar Material = class extends EventDispatcher {\n  constructor() {\n    super();\n    this.isMaterial = true;\n    Object.defineProperty(this, \"id\", { value: _materialId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"Material\";\n    this.blending = NormalBlending;\n    this.side = FrontSide;\n    this.vertexColors = false;\n    this.opacity = 1;\n    this.transparent = false;\n    this.alphaHash = false;\n    this.blendSrc = SrcAlphaFactor;\n    this.blendDst = OneMinusSrcAlphaFactor;\n    this.blendEquation = AddEquation;\n    this.blendSrcAlpha = null;\n    this.blendDstAlpha = null;\n    this.blendEquationAlpha = null;\n    this.blendColor = new Color(0, 0, 0);\n    this.blendAlpha = 0;\n    this.depthFunc = LessEqualDepth;\n    this.depthTest = true;\n    this.depthWrite = true;\n    this.stencilWriteMask = 255;\n    this.stencilFunc = AlwaysStencilFunc;\n    this.stencilRef = 0;\n    this.stencilFuncMask = 255;\n    this.stencilFail = KeepStencilOp;\n    this.stencilZFail = KeepStencilOp;\n    this.stencilZPass = KeepStencilOp;\n    this.stencilWrite = false;\n    this.clippingPlanes = null;\n    this.clipIntersection = false;\n    this.clipShadows = false;\n    this.shadowSide = null;\n    this.colorWrite = true;\n    this.precision = null;\n    this.polygonOffset = false;\n    this.polygonOffsetFactor = 0;\n    this.polygonOffsetUnits = 0;\n    this.dithering = false;\n    this.alphaToCoverage = false;\n    this.premultipliedAlpha = false;\n    this.forceSinglePass = false;\n    this.visible = true;\n    this.toneMapped = true;\n    this.userData = {};\n    this.version = 0;\n    this._alphaTest = 0;\n  }\n  get alphaTest() {\n    return this._alphaTest;\n  }\n  set alphaTest(value) {\n    if (this._alphaTest > 0 !== value > 0) {\n      this.version++;\n    }\n    this._alphaTest = value;\n  }\n  // onBeforeRender and onBeforeCompile only supported in WebGLRenderer\n  onBeforeRender() {\n  }\n  onBeforeCompile() {\n  }\n  customProgramCacheKey() {\n    return this.onBeforeCompile.toString();\n  }\n  setValues(values) {\n    if (values === void 0) return;\n    for (const key in values) {\n      const newValue = values[key];\n      if (newValue === void 0) {\n        console.warn(`THREE.Material: parameter '${key}' has value of undefined.`);\n        continue;\n      }\n      const currentValue = this[key];\n      if (currentValue === void 0) {\n        console.warn(`THREE.Material: '${key}' is not a property of THREE.${this.type}.`);\n        continue;\n      }\n      if (currentValue && currentValue.isColor) {\n        currentValue.set(newValue);\n      } else if (currentValue && currentValue.isVector3 && (newValue && newValue.isVector3)) {\n        currentValue.copy(newValue);\n      } else {\n        this[key] = newValue;\n      }\n    }\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (isRootObject) {\n      meta = {\n        textures: {},\n        images: {}\n      };\n    }\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Material\",\n        generator: \"Material.toJSON\"\n      }\n    };\n    data.uuid = this.uuid;\n    data.type = this.type;\n    if (this.name !== \"\") data.name = this.name;\n    if (this.color && this.color.isColor) data.color = this.color.getHex();\n    if (this.roughness !== void 0) data.roughness = this.roughness;\n    if (this.metalness !== void 0) data.metalness = this.metalness;\n    if (this.sheen !== void 0) data.sheen = this.sheen;\n    if (this.sheenColor && this.sheenColor.isColor) data.sheenColor = this.sheenColor.getHex();\n    if (this.sheenRoughness !== void 0) data.sheenRoughness = this.sheenRoughness;\n    if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\n    if (this.emissiveIntensity !== void 0 && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\n    if (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\n    if (this.specularIntensity !== void 0) data.specularIntensity = this.specularIntensity;\n    if (this.specularColor && this.specularColor.isColor) data.specularColor = this.specularColor.getHex();\n    if (this.shininess !== void 0) data.shininess = this.shininess;\n    if (this.clearcoat !== void 0) data.clearcoat = this.clearcoat;\n    if (this.clearcoatRoughness !== void 0) data.clearcoatRoughness = this.clearcoatRoughness;\n    if (this.clearcoatMap && this.clearcoatMap.isTexture) {\n      data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\n    }\n    if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\n      data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\n    }\n    if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\n      data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\n      data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n    }\n    if (this.dispersion !== void 0) data.dispersion = this.dispersion;\n    if (this.iridescence !== void 0) data.iridescence = this.iridescence;\n    if (this.iridescenceIOR !== void 0) data.iridescenceIOR = this.iridescenceIOR;\n    if (this.iridescenceThicknessRange !== void 0) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n    if (this.iridescenceMap && this.iridescenceMap.isTexture) {\n      data.iridescenceMap = this.iridescenceMap.toJSON(meta).uuid;\n    }\n    if (this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture) {\n      data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON(meta).uuid;\n    }\n    if (this.anisotropy !== void 0) data.anisotropy = this.anisotropy;\n    if (this.anisotropyRotation !== void 0) data.anisotropyRotation = this.anisotropyRotation;\n    if (this.anisotropyMap && this.anisotropyMap.isTexture) {\n      data.anisotropyMap = this.anisotropyMap.toJSON(meta).uuid;\n    }\n    if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\n    if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\n    if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\n    if (this.lightMap && this.lightMap.isTexture) {\n      data.lightMap = this.lightMap.toJSON(meta).uuid;\n      data.lightMapIntensity = this.lightMapIntensity;\n    }\n    if (this.aoMap && this.aoMap.isTexture) {\n      data.aoMap = this.aoMap.toJSON(meta).uuid;\n      data.aoMapIntensity = this.aoMapIntensity;\n    }\n    if (this.bumpMap && this.bumpMap.isTexture) {\n      data.bumpMap = this.bumpMap.toJSON(meta).uuid;\n      data.bumpScale = this.bumpScale;\n    }\n    if (this.normalMap && this.normalMap.isTexture) {\n      data.normalMap = this.normalMap.toJSON(meta).uuid;\n      data.normalMapType = this.normalMapType;\n      data.normalScale = this.normalScale.toArray();\n    }\n    if (this.displacementMap && this.displacementMap.isTexture) {\n      data.displacementMap = this.displacementMap.toJSON(meta).uuid;\n      data.displacementScale = this.displacementScale;\n      data.displacementBias = this.displacementBias;\n    }\n    if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\n    if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\n    if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\n    if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\n    if (this.specularIntensityMap && this.specularIntensityMap.isTexture) data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid;\n    if (this.specularColorMap && this.specularColorMap.isTexture) data.specularColorMap = this.specularColorMap.toJSON(meta).uuid;\n    if (this.envMap && this.envMap.isTexture) {\n      data.envMap = this.envMap.toJSON(meta).uuid;\n      if (this.combine !== void 0) data.combine = this.combine;\n    }\n    if (this.envMapRotation !== void 0) data.envMapRotation = this.envMapRotation.toArray();\n    if (this.envMapIntensity !== void 0) data.envMapIntensity = this.envMapIntensity;\n    if (this.reflectivity !== void 0) data.reflectivity = this.reflectivity;\n    if (this.refractionRatio !== void 0) data.refractionRatio = this.refractionRatio;\n    if (this.gradientMap && this.gradientMap.isTexture) {\n      data.gradientMap = this.gradientMap.toJSON(meta).uuid;\n    }\n    if (this.transmission !== void 0) data.transmission = this.transmission;\n    if (this.transmissionMap && this.transmissionMap.isTexture) data.transmissionMap = this.transmissionMap.toJSON(meta).uuid;\n    if (this.thickness !== void 0) data.thickness = this.thickness;\n    if (this.thicknessMap && this.thicknessMap.isTexture) data.thicknessMap = this.thicknessMap.toJSON(meta).uuid;\n    if (this.attenuationDistance !== void 0 && this.attenuationDistance !== Infinity) data.attenuationDistance = this.attenuationDistance;\n    if (this.attenuationColor !== void 0) data.attenuationColor = this.attenuationColor.getHex();\n    if (this.size !== void 0) data.size = this.size;\n    if (this.shadowSide !== null) data.shadowSide = this.shadowSide;\n    if (this.sizeAttenuation !== void 0) data.sizeAttenuation = this.sizeAttenuation;\n    if (this.blending !== NormalBlending) data.blending = this.blending;\n    if (this.side !== FrontSide) data.side = this.side;\n    if (this.vertexColors === true) data.vertexColors = true;\n    if (this.opacity < 1) data.opacity = this.opacity;\n    if (this.transparent === true) data.transparent = true;\n    if (this.blendSrc !== SrcAlphaFactor) data.blendSrc = this.blendSrc;\n    if (this.blendDst !== OneMinusSrcAlphaFactor) data.blendDst = this.blendDst;\n    if (this.blendEquation !== AddEquation) data.blendEquation = this.blendEquation;\n    if (this.blendSrcAlpha !== null) data.blendSrcAlpha = this.blendSrcAlpha;\n    if (this.blendDstAlpha !== null) data.blendDstAlpha = this.blendDstAlpha;\n    if (this.blendEquationAlpha !== null) data.blendEquationAlpha = this.blendEquationAlpha;\n    if (this.blendColor && this.blendColor.isColor) data.blendColor = this.blendColor.getHex();\n    if (this.blendAlpha !== 0) data.blendAlpha = this.blendAlpha;\n    if (this.depthFunc !== LessEqualDepth) data.depthFunc = this.depthFunc;\n    if (this.depthTest === false) data.depthTest = this.depthTest;\n    if (this.depthWrite === false) data.depthWrite = this.depthWrite;\n    if (this.colorWrite === false) data.colorWrite = this.colorWrite;\n    if (this.stencilWriteMask !== 255) data.stencilWriteMask = this.stencilWriteMask;\n    if (this.stencilFunc !== AlwaysStencilFunc) data.stencilFunc = this.stencilFunc;\n    if (this.stencilRef !== 0) data.stencilRef = this.stencilRef;\n    if (this.stencilFuncMask !== 255) data.stencilFuncMask = this.stencilFuncMask;\n    if (this.stencilFail !== KeepStencilOp) data.stencilFail = this.stencilFail;\n    if (this.stencilZFail !== KeepStencilOp) data.stencilZFail = this.stencilZFail;\n    if (this.stencilZPass !== KeepStencilOp) data.stencilZPass = this.stencilZPass;\n    if (this.stencilWrite === true) data.stencilWrite = this.stencilWrite;\n    if (this.rotation !== void 0 && this.rotation !== 0) data.rotation = this.rotation;\n    if (this.polygonOffset === true) data.polygonOffset = true;\n    if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\n    if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\n    if (this.linewidth !== void 0 && this.linewidth !== 1) data.linewidth = this.linewidth;\n    if (this.dashSize !== void 0) data.dashSize = this.dashSize;\n    if (this.gapSize !== void 0) data.gapSize = this.gapSize;\n    if (this.scale !== void 0) data.scale = this.scale;\n    if (this.dithering === true) data.dithering = true;\n    if (this.alphaTest > 0) data.alphaTest = this.alphaTest;\n    if (this.alphaHash === true) data.alphaHash = true;\n    if (this.alphaToCoverage === true) data.alphaToCoverage = true;\n    if (this.premultipliedAlpha === true) data.premultipliedAlpha = true;\n    if (this.forceSinglePass === true) data.forceSinglePass = true;\n    if (this.wireframe === true) data.wireframe = true;\n    if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\n    if (this.wireframeLinecap !== \"round\") data.wireframeLinecap = this.wireframeLinecap;\n    if (this.wireframeLinejoin !== \"round\") data.wireframeLinejoin = this.wireframeLinejoin;\n    if (this.flatShading === true) data.flatShading = true;\n    if (this.visible === false) data.visible = false;\n    if (this.toneMapped === false) data.toneMapped = false;\n    if (this.fog === false) data.fog = false;\n    if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n    function extractFromCache(cache) {\n      const values = [];\n      for (const key in cache) {\n        const data2 = cache[key];\n        delete data2.metadata;\n        values.push(data2);\n      }\n      return values;\n    }\n    if (isRootObject) {\n      const textures = extractFromCache(meta.textures);\n      const images = extractFromCache(meta.images);\n      if (textures.length > 0) data.textures = textures;\n      if (images.length > 0) data.images = images;\n    }\n    return data;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.name = source.name;\n    this.blending = source.blending;\n    this.side = source.side;\n    this.vertexColors = source.vertexColors;\n    this.opacity = source.opacity;\n    this.transparent = source.transparent;\n    this.blendSrc = source.blendSrc;\n    this.blendDst = source.blendDst;\n    this.blendEquation = source.blendEquation;\n    this.blendSrcAlpha = source.blendSrcAlpha;\n    this.blendDstAlpha = source.blendDstAlpha;\n    this.blendEquationAlpha = source.blendEquationAlpha;\n    this.blendColor.copy(source.blendColor);\n    this.blendAlpha = source.blendAlpha;\n    this.depthFunc = source.depthFunc;\n    this.depthTest = source.depthTest;\n    this.depthWrite = source.depthWrite;\n    this.stencilWriteMask = source.stencilWriteMask;\n    this.stencilFunc = source.stencilFunc;\n    this.stencilRef = source.stencilRef;\n    this.stencilFuncMask = source.stencilFuncMask;\n    this.stencilFail = source.stencilFail;\n    this.stencilZFail = source.stencilZFail;\n    this.stencilZPass = source.stencilZPass;\n    this.stencilWrite = source.stencilWrite;\n    const srcPlanes = source.clippingPlanes;\n    let dstPlanes = null;\n    if (srcPlanes !== null) {\n      const n = srcPlanes.length;\n      dstPlanes = new Array(n);\n      for (let i = 0; i !== n; ++i) {\n        dstPlanes[i] = srcPlanes[i].clone();\n      }\n    }\n    this.clippingPlanes = dstPlanes;\n    this.clipIntersection = source.clipIntersection;\n    this.clipShadows = source.clipShadows;\n    this.shadowSide = source.shadowSide;\n    this.colorWrite = source.colorWrite;\n    this.precision = source.precision;\n    this.polygonOffset = source.polygonOffset;\n    this.polygonOffsetFactor = source.polygonOffsetFactor;\n    this.polygonOffsetUnits = source.polygonOffsetUnits;\n    this.dithering = source.dithering;\n    this.alphaTest = source.alphaTest;\n    this.alphaHash = source.alphaHash;\n    this.alphaToCoverage = source.alphaToCoverage;\n    this.premultipliedAlpha = source.premultipliedAlpha;\n    this.forceSinglePass = source.forceSinglePass;\n    this.visible = source.visible;\n    this.toneMapped = source.toneMapped;\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  onBuild() {\n    console.warn(\"Material: onBuild() has been removed.\");\n  }\n};\nvar MeshBasicMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshBasicMaterial = true;\n    this.type = \"MeshBasicMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _tables = /* @__PURE__ */ _generateTables();\nfunction _generateTables() {\n  const buffer = new ArrayBuffer(4);\n  const floatView = new Float32Array(buffer);\n  const uint32View = new Uint32Array(buffer);\n  const baseTable = new Uint32Array(512);\n  const shiftTable = new Uint32Array(512);\n  for (let i = 0; i < 256; ++i) {\n    const e = i - 127;\n    if (e < -27) {\n      baseTable[i] = 0;\n      baseTable[i | 256] = 32768;\n      shiftTable[i] = 24;\n      shiftTable[i | 256] = 24;\n    } else if (e < -14) {\n      baseTable[i] = 1024 >> -e - 14;\n      baseTable[i | 256] = 1024 >> -e - 14 | 32768;\n      shiftTable[i] = -e - 1;\n      shiftTable[i | 256] = -e - 1;\n    } else if (e <= 15) {\n      baseTable[i] = e + 15 << 10;\n      baseTable[i | 256] = e + 15 << 10 | 32768;\n      shiftTable[i] = 13;\n      shiftTable[i | 256] = 13;\n    } else if (e < 128) {\n      baseTable[i] = 31744;\n      baseTable[i | 256] = 64512;\n      shiftTable[i] = 24;\n      shiftTable[i | 256] = 24;\n    } else {\n      baseTable[i] = 31744;\n      baseTable[i | 256] = 64512;\n      shiftTable[i] = 13;\n      shiftTable[i | 256] = 13;\n    }\n  }\n  const mantissaTable = new Uint32Array(2048);\n  const exponentTable = new Uint32Array(64);\n  const offsetTable = new Uint32Array(64);\n  for (let i = 1; i < 1024; ++i) {\n    let m = i << 13;\n    let e = 0;\n    while ((m & 8388608) === 0) {\n      m <<= 1;\n      e -= 8388608;\n    }\n    m &= ~8388608;\n    e += 947912704;\n    mantissaTable[i] = m | e;\n  }\n  for (let i = 1024; i < 2048; ++i) {\n    mantissaTable[i] = 939524096 + (i - 1024 << 13);\n  }\n  for (let i = 1; i < 31; ++i) {\n    exponentTable[i] = i << 23;\n  }\n  exponentTable[31] = 1199570944;\n  exponentTable[32] = 2147483648;\n  for (let i = 33; i < 63; ++i) {\n    exponentTable[i] = 2147483648 + (i - 32 << 23);\n  }\n  exponentTable[63] = 3347054592;\n  for (let i = 1; i < 64; ++i) {\n    if (i !== 32) {\n      offsetTable[i] = 1024;\n    }\n  }\n  return {\n    floatView,\n    uint32View,\n    baseTable,\n    shiftTable,\n    mantissaTable,\n    exponentTable,\n    offsetTable\n  };\n}\nfunction toHalfFloat(val) {\n  if (Math.abs(val) > 65504) console.warn(\"THREE.DataUtils.toHalfFloat(): Value out of range.\");\n  val = clamp(val, -65504, 65504);\n  _tables.floatView[0] = val;\n  const f = _tables.uint32View[0];\n  const e = f >> 23 & 511;\n  return _tables.baseTable[e] + ((f & 8388607) >> _tables.shiftTable[e]);\n}\nfunction fromHalfFloat(val) {\n  const m = val >> 10;\n  _tables.uint32View[0] = _tables.mantissaTable[_tables.offsetTable[m] + (val & 1023)] + _tables.exponentTable[m];\n  return _tables.floatView[0];\n}\nvar DataUtils = {\n  toHalfFloat,\n  fromHalfFloat\n};\nvar _vector$9 = /* @__PURE__ */ new Vector3();\nvar _vector2$1 = /* @__PURE__ */ new Vector2();\nvar BufferAttribute = class {\n  constructor(array, itemSize, normalized = false) {\n    if (Array.isArray(array)) {\n      throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");\n    }\n    this.isBufferAttribute = true;\n    this.name = \"\";\n    this.array = array;\n    this.itemSize = itemSize;\n    this.count = array !== void 0 ? array.length / itemSize : 0;\n    this.normalized = normalized;\n    this.usage = StaticDrawUsage;\n    this.updateRanges = [];\n    this.gpuType = FloatType;\n    this.version = 0;\n  }\n  onUploadCallback() {\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  addUpdateRange(start, count) {\n    this.updateRanges.push({ start, count });\n  }\n  clearUpdateRanges() {\n    this.updateRanges.length = 0;\n  }\n  copy(source) {\n    this.name = source.name;\n    this.array = new source.array.constructor(source.array);\n    this.itemSize = source.itemSize;\n    this.count = source.count;\n    this.normalized = source.normalized;\n    this.usage = source.usage;\n    this.gpuType = source.gpuType;\n    return this;\n  }\n  copyAt(index1, attribute, index2) {\n    index1 *= this.itemSize;\n    index2 *= attribute.itemSize;\n    for (let i = 0, l = this.itemSize; i < l; i++) {\n      this.array[index1 + i] = attribute.array[index2 + i];\n    }\n    return this;\n  }\n  copyArray(array) {\n    this.array.set(array);\n    return this;\n  }\n  applyMatrix3(m) {\n    if (this.itemSize === 2) {\n      for (let i = 0, l = this.count; i < l; i++) {\n        _vector2$1.fromBufferAttribute(this, i);\n        _vector2$1.applyMatrix3(m);\n        this.setXY(i, _vector2$1.x, _vector2$1.y);\n      }\n    } else if (this.itemSize === 3) {\n      for (let i = 0, l = this.count; i < l; i++) {\n        _vector$9.fromBufferAttribute(this, i);\n        _vector$9.applyMatrix3(m);\n        this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n      }\n    }\n    return this;\n  }\n  applyMatrix4(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.applyMatrix4(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  applyNormalMatrix(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.applyNormalMatrix(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  transformDirection(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.transformDirection(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  set(value, offset = 0) {\n    this.array.set(value, offset);\n    return this;\n  }\n  getComponent(index, component) {\n    let value = this.array[index * this.itemSize + component];\n    if (this.normalized) value = denormalize(value, this.array);\n    return value;\n  }\n  setComponent(index, component, value) {\n    if (this.normalized) value = normalize(value, this.array);\n    this.array[index * this.itemSize + component] = value;\n    return this;\n  }\n  getX(index) {\n    let x = this.array[index * this.itemSize];\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.array[index * this.itemSize] = x;\n    return this;\n  }\n  getY(index) {\n    let y = this.array[index * this.itemSize + 1];\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.array[index * this.itemSize + 1] = y;\n    return this;\n  }\n  getZ(index) {\n    let z = this.array[index * this.itemSize + 2];\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.array[index * this.itemSize + 2] = z;\n    return this;\n  }\n  getW(index) {\n    let w = this.array[index * this.itemSize + 3];\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.array[index * this.itemSize + 3] = w;\n    return this;\n  }\n  setXY(index, x, y) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    this.array[index + 2] = z;\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    this.array[index + 2] = z;\n    this.array[index + 3] = w;\n    return this;\n  }\n  onUpload(callback) {\n    this.onUploadCallback = callback;\n    return this;\n  }\n  clone() {\n    return new this.constructor(this.array, this.itemSize).copy(this);\n  }\n  toJSON() {\n    const data = {\n      itemSize: this.itemSize,\n      type: this.array.constructor.name,\n      array: Array.from(this.array),\n      normalized: this.normalized\n    };\n    if (this.name !== \"\") data.name = this.name;\n    if (this.usage !== StaticDrawUsage) data.usage = this.usage;\n    return data;\n  }\n};\nvar Int8BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int8Array(array), itemSize, normalized);\n  }\n};\nvar Uint8BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint8Array(array), itemSize, normalized);\n  }\n};\nvar Uint8ClampedBufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint8ClampedArray(array), itemSize, normalized);\n  }\n};\nvar Int16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int16Array(array), itemSize, normalized);\n  }\n};\nvar Uint16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint16Array(array), itemSize, normalized);\n  }\n};\nvar Int32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int32Array(array), itemSize, normalized);\n  }\n};\nvar Uint32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint32Array(array), itemSize, normalized);\n  }\n};\nvar Float16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint16Array(array), itemSize, normalized);\n    this.isFloat16BufferAttribute = true;\n  }\n  getX(index) {\n    let x = fromHalfFloat(this.array[index * this.itemSize]);\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.array[index * this.itemSize] = toHalfFloat(x);\n    return this;\n  }\n  getY(index) {\n    let y = fromHalfFloat(this.array[index * this.itemSize + 1]);\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.array[index * this.itemSize + 1] = toHalfFloat(y);\n    return this;\n  }\n  getZ(index) {\n    let z = fromHalfFloat(this.array[index * this.itemSize + 2]);\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.array[index * this.itemSize + 2] = toHalfFloat(z);\n    return this;\n  }\n  getW(index) {\n    let w = fromHalfFloat(this.array[index * this.itemSize + 3]);\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.array[index * this.itemSize + 3] = toHalfFloat(w);\n    return this;\n  }\n  setXY(index, x, y) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    this.array[index + 2] = toHalfFloat(z);\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    this.array[index + 2] = toHalfFloat(z);\n    this.array[index + 3] = toHalfFloat(w);\n    return this;\n  }\n};\nvar Float32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Float32Array(array), itemSize, normalized);\n  }\n};\nvar _id$2 = 0;\nvar _m1$2 = /* @__PURE__ */ new Matrix4();\nvar _obj = /* @__PURE__ */ new Object3D();\nvar _offset = /* @__PURE__ */ new Vector3();\nvar _box$2 = /* @__PURE__ */ new Box3();\nvar _boxMorphTargets = /* @__PURE__ */ new Box3();\nvar _vector$8 = /* @__PURE__ */ new Vector3();\nvar BufferGeometry = class _BufferGeometry extends EventDispatcher {\n  constructor() {\n    super();\n    this.isBufferGeometry = true;\n    Object.defineProperty(this, \"id\", { value: _id$2++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"BufferGeometry\";\n    this.index = null;\n    this.attributes = {};\n    this.morphAttributes = {};\n    this.morphTargetsRelative = false;\n    this.groups = [];\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    this.drawRange = { start: 0, count: Infinity };\n    this.userData = {};\n  }\n  getIndex() {\n    return this.index;\n  }\n  setIndex(index) {\n    if (Array.isArray(index)) {\n      this.index = new (arrayNeedsUint32(index) ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\n    } else {\n      this.index = index;\n    }\n    return this;\n  }\n  getAttribute(name) {\n    return this.attributes[name];\n  }\n  setAttribute(name, attribute) {\n    this.attributes[name] = attribute;\n    return this;\n  }\n  deleteAttribute(name) {\n    delete this.attributes[name];\n    return this;\n  }\n  hasAttribute(name) {\n    return this.attributes[name] !== void 0;\n  }\n  addGroup(start, count, materialIndex = 0) {\n    this.groups.push({\n      start,\n      count,\n      materialIndex\n    });\n  }\n  clearGroups() {\n    this.groups = [];\n  }\n  setDrawRange(start, count) {\n    this.drawRange.start = start;\n    this.drawRange.count = count;\n  }\n  applyMatrix4(matrix) {\n    const position = this.attributes.position;\n    if (position !== void 0) {\n      position.applyMatrix4(matrix);\n      position.needsUpdate = true;\n    }\n    const normal = this.attributes.normal;\n    if (normal !== void 0) {\n      const normalMatrix = new Matrix3().getNormalMatrix(matrix);\n      normal.applyNormalMatrix(normalMatrix);\n      normal.needsUpdate = true;\n    }\n    const tangent = this.attributes.tangent;\n    if (tangent !== void 0) {\n      tangent.transformDirection(matrix);\n      tangent.needsUpdate = true;\n    }\n    if (this.boundingBox !== null) {\n      this.computeBoundingBox();\n    }\n    if (this.boundingSphere !== null) {\n      this.computeBoundingSphere();\n    }\n    return this;\n  }\n  applyQuaternion(q) {\n    _m1$2.makeRotationFromQuaternion(q);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateX(angle) {\n    _m1$2.makeRotationX(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateY(angle) {\n    _m1$2.makeRotationY(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateZ(angle) {\n    _m1$2.makeRotationZ(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  translate(x, y, z) {\n    _m1$2.makeTranslation(x, y, z);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  scale(x, y, z) {\n    _m1$2.makeScale(x, y, z);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  lookAt(vector) {\n    _obj.lookAt(vector);\n    _obj.updateMatrix();\n    this.applyMatrix4(_obj.matrix);\n    return this;\n  }\n  center() {\n    this.computeBoundingBox();\n    this.boundingBox.getCenter(_offset).negate();\n    this.translate(_offset.x, _offset.y, _offset.z);\n    return this;\n  }\n  setFromPoints(points) {\n    const position = [];\n    for (let i = 0, l = points.length; i < l; i++) {\n      const point = points[i];\n      position.push(point.x, point.y, point.z || 0);\n    }\n    this.setAttribute(\"position\", new Float32BufferAttribute(position, 3));\n    return this;\n  }\n  computeBoundingBox() {\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    const position = this.attributes.position;\n    const morphAttributesPosition = this.morphAttributes.position;\n    if (position && position.isGLBufferAttribute) {\n      console.error(\"THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.\", this);\n      this.boundingBox.set(\n        new Vector3(-Infinity, -Infinity, -Infinity),\n        new Vector3(Infinity, Infinity, Infinity)\n      );\n      return;\n    }\n    if (position !== void 0) {\n      this.boundingBox.setFromBufferAttribute(position);\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          _box$2.setFromBufferAttribute(morphAttribute);\n          if (this.morphTargetsRelative) {\n            _vector$8.addVectors(this.boundingBox.min, _box$2.min);\n            this.boundingBox.expandByPoint(_vector$8);\n            _vector$8.addVectors(this.boundingBox.max, _box$2.max);\n            this.boundingBox.expandByPoint(_vector$8);\n          } else {\n            this.boundingBox.expandByPoint(_box$2.min);\n            this.boundingBox.expandByPoint(_box$2.max);\n          }\n        }\n      }\n    } else {\n      this.boundingBox.makeEmpty();\n    }\n    if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\n      console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n    }\n  }\n  computeBoundingSphere() {\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    const position = this.attributes.position;\n    const morphAttributesPosition = this.morphAttributes.position;\n    if (position && position.isGLBufferAttribute) {\n      console.error(\"THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.\", this);\n      this.boundingSphere.set(new Vector3(), Infinity);\n      return;\n    }\n    if (position) {\n      const center = this.boundingSphere.center;\n      _box$2.setFromBufferAttribute(position);\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          _boxMorphTargets.setFromBufferAttribute(morphAttribute);\n          if (this.morphTargetsRelative) {\n            _vector$8.addVectors(_box$2.min, _boxMorphTargets.min);\n            _box$2.expandByPoint(_vector$8);\n            _vector$8.addVectors(_box$2.max, _boxMorphTargets.max);\n            _box$2.expandByPoint(_vector$8);\n          } else {\n            _box$2.expandByPoint(_boxMorphTargets.min);\n            _box$2.expandByPoint(_boxMorphTargets.max);\n          }\n        }\n      }\n      _box$2.getCenter(center);\n      let maxRadiusSq = 0;\n      for (let i = 0, il = position.count; i < il; i++) {\n        _vector$8.fromBufferAttribute(position, i);\n        maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8));\n      }\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          const morphTargetsRelative = this.morphTargetsRelative;\n          for (let j = 0, jl = morphAttribute.count; j < jl; j++) {\n            _vector$8.fromBufferAttribute(morphAttribute, j);\n            if (morphTargetsRelative) {\n              _offset.fromBufferAttribute(position, j);\n              _vector$8.add(_offset);\n            }\n            maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8));\n          }\n        }\n      }\n      this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n      if (isNaN(this.boundingSphere.radius)) {\n        console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n      }\n    }\n  }\n  computeTangents() {\n    const index = this.index;\n    const attributes = this.attributes;\n    if (index === null || attributes.position === void 0 || attributes.normal === void 0 || attributes.uv === void 0) {\n      console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");\n      return;\n    }\n    const positionAttribute = attributes.position;\n    const normalAttribute = attributes.normal;\n    const uvAttribute = attributes.uv;\n    if (this.hasAttribute(\"tangent\") === false) {\n      this.setAttribute(\"tangent\", new BufferAttribute(new Float32Array(4 * positionAttribute.count), 4));\n    }\n    const tangentAttribute = this.getAttribute(\"tangent\");\n    const tan1 = [], tan2 = [];\n    for (let i = 0; i < positionAttribute.count; i++) {\n      tan1[i] = new Vector3();\n      tan2[i] = new Vector3();\n    }\n    const vA = new Vector3(), vB = new Vector3(), vC = new Vector3(), uvA = new Vector2(), uvB = new Vector2(), uvC = new Vector2(), sdir = new Vector3(), tdir = new Vector3();\n    function handleTriangle(a, b, c) {\n      vA.fromBufferAttribute(positionAttribute, a);\n      vB.fromBufferAttribute(positionAttribute, b);\n      vC.fromBufferAttribute(positionAttribute, c);\n      uvA.fromBufferAttribute(uvAttribute, a);\n      uvB.fromBufferAttribute(uvAttribute, b);\n      uvC.fromBufferAttribute(uvAttribute, c);\n      vB.sub(vA);\n      vC.sub(vA);\n      uvB.sub(uvA);\n      uvC.sub(uvA);\n      const r = 1 / (uvB.x * uvC.y - uvC.x * uvB.y);\n      if (!isFinite(r)) return;\n      sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r);\n      tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r);\n      tan1[a].add(sdir);\n      tan1[b].add(sdir);\n      tan1[c].add(sdir);\n      tan2[a].add(tdir);\n      tan2[b].add(tdir);\n      tan2[c].add(tdir);\n    }\n    let groups = this.groups;\n    if (groups.length === 0) {\n      groups = [{\n        start: 0,\n        count: index.count\n      }];\n    }\n    for (let i = 0, il = groups.length; i < il; ++i) {\n      const group = groups[i];\n      const start = group.start;\n      const count = group.count;\n      for (let j = start, jl = start + count; j < jl; j += 3) {\n        handleTriangle(\n          index.getX(j + 0),\n          index.getX(j + 1),\n          index.getX(j + 2)\n        );\n      }\n    }\n    const tmp2 = new Vector3(), tmp22 = new Vector3();\n    const n = new Vector3(), n2 = new Vector3();\n    function handleVertex(v) {\n      n.fromBufferAttribute(normalAttribute, v);\n      n2.copy(n);\n      const t = tan1[v];\n      tmp2.copy(t);\n      tmp2.sub(n.multiplyScalar(n.dot(t))).normalize();\n      tmp22.crossVectors(n2, t);\n      const test = tmp22.dot(tan2[v]);\n      const w = test < 0 ? -1 : 1;\n      tangentAttribute.setXYZW(v, tmp2.x, tmp2.y, tmp2.z, w);\n    }\n    for (let i = 0, il = groups.length; i < il; ++i) {\n      const group = groups[i];\n      const start = group.start;\n      const count = group.count;\n      for (let j = start, jl = start + count; j < jl; j += 3) {\n        handleVertex(index.getX(j + 0));\n        handleVertex(index.getX(j + 1));\n        handleVertex(index.getX(j + 2));\n      }\n    }\n  }\n  computeVertexNormals() {\n    const index = this.index;\n    const positionAttribute = this.getAttribute(\"position\");\n    if (positionAttribute !== void 0) {\n      let normalAttribute = this.getAttribute(\"normal\");\n      if (normalAttribute === void 0) {\n        normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\n        this.setAttribute(\"normal\", normalAttribute);\n      } else {\n        for (let i = 0, il = normalAttribute.count; i < il; i++) {\n          normalAttribute.setXYZ(i, 0, 0, 0);\n        }\n      }\n      const pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n      const nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n      const cb = new Vector3(), ab = new Vector3();\n      if (index) {\n        for (let i = 0, il = index.count; i < il; i += 3) {\n          const vA = index.getX(i + 0);\n          const vB = index.getX(i + 1);\n          const vC = index.getX(i + 2);\n          pA.fromBufferAttribute(positionAttribute, vA);\n          pB.fromBufferAttribute(positionAttribute, vB);\n          pC.fromBufferAttribute(positionAttribute, vC);\n          cb.subVectors(pC, pB);\n          ab.subVectors(pA, pB);\n          cb.cross(ab);\n          nA.fromBufferAttribute(normalAttribute, vA);\n          nB.fromBufferAttribute(normalAttribute, vB);\n          nC.fromBufferAttribute(normalAttribute, vC);\n          nA.add(cb);\n          nB.add(cb);\n          nC.add(cb);\n          normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\n          normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\n          normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\n        }\n      } else {\n        for (let i = 0, il = positionAttribute.count; i < il; i += 3) {\n          pA.fromBufferAttribute(positionAttribute, i + 0);\n          pB.fromBufferAttribute(positionAttribute, i + 1);\n          pC.fromBufferAttribute(positionAttribute, i + 2);\n          cb.subVectors(pC, pB);\n          ab.subVectors(pA, pB);\n          cb.cross(ab);\n          normalAttribute.setXYZ(i + 0, cb.x, cb.y, cb.z);\n          normalAttribute.setXYZ(i + 1, cb.x, cb.y, cb.z);\n          normalAttribute.setXYZ(i + 2, cb.x, cb.y, cb.z);\n        }\n      }\n      this.normalizeNormals();\n      normalAttribute.needsUpdate = true;\n    }\n  }\n  normalizeNormals() {\n    const normals = this.attributes.normal;\n    for (let i = 0, il = normals.count; i < il; i++) {\n      _vector$8.fromBufferAttribute(normals, i);\n      _vector$8.normalize();\n      normals.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z);\n    }\n  }\n  toNonIndexed() {\n    function convertBufferAttribute(attribute, indices2) {\n      const array = attribute.array;\n      const itemSize = attribute.itemSize;\n      const normalized = attribute.normalized;\n      const array2 = new array.constructor(indices2.length * itemSize);\n      let index = 0, index2 = 0;\n      for (let i = 0, l = indices2.length; i < l; i++) {\n        if (attribute.isInterleavedBufferAttribute) {\n          index = indices2[i] * attribute.data.stride + attribute.offset;\n        } else {\n          index = indices2[i] * itemSize;\n        }\n        for (let j = 0; j < itemSize; j++) {\n          array2[index2++] = array[index++];\n        }\n      }\n      return new BufferAttribute(array2, itemSize, normalized);\n    }\n    if (this.index === null) {\n      console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\");\n      return this;\n    }\n    const geometry2 = new _BufferGeometry();\n    const indices = this.index.array;\n    const attributes = this.attributes;\n    for (const name in attributes) {\n      const attribute = attributes[name];\n      const newAttribute = convertBufferAttribute(attribute, indices);\n      geometry2.setAttribute(name, newAttribute);\n    }\n    const morphAttributes = this.morphAttributes;\n    for (const name in morphAttributes) {\n      const morphArray = [];\n      const morphAttribute = morphAttributes[name];\n      for (let i = 0, il = morphAttribute.length; i < il; i++) {\n        const attribute = morphAttribute[i];\n        const newAttribute = convertBufferAttribute(attribute, indices);\n        morphArray.push(newAttribute);\n      }\n      geometry2.morphAttributes[name] = morphArray;\n    }\n    geometry2.morphTargetsRelative = this.morphTargetsRelative;\n    const groups = this.groups;\n    for (let i = 0, l = groups.length; i < l; i++) {\n      const group = groups[i];\n      geometry2.addGroup(group.start, group.count, group.materialIndex);\n    }\n    return geometry2;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"BufferGeometry\",\n        generator: \"BufferGeometry.toJSON\"\n      }\n    };\n    data.uuid = this.uuid;\n    data.type = this.type;\n    if (this.name !== \"\") data.name = this.name;\n    if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n    if (this.parameters !== void 0) {\n      const parameters = this.parameters;\n      for (const key in parameters) {\n        if (parameters[key] !== void 0) data[key] = parameters[key];\n      }\n      return data;\n    }\n    data.data = { attributes: {} };\n    const index = this.index;\n    if (index !== null) {\n      data.data.index = {\n        type: index.array.constructor.name,\n        array: Array.prototype.slice.call(index.array)\n      };\n    }\n    const attributes = this.attributes;\n    for (const key in attributes) {\n      const attribute = attributes[key];\n      data.data.attributes[key] = attribute.toJSON(data.data);\n    }\n    const morphAttributes = {};\n    let hasMorphAttributes = false;\n    for (const key in this.morphAttributes) {\n      const attributeArray = this.morphAttributes[key];\n      const array = [];\n      for (let i = 0, il = attributeArray.length; i < il; i++) {\n        const attribute = attributeArray[i];\n        array.push(attribute.toJSON(data.data));\n      }\n      if (array.length > 0) {\n        morphAttributes[key] = array;\n        hasMorphAttributes = true;\n      }\n    }\n    if (hasMorphAttributes) {\n      data.data.morphAttributes = morphAttributes;\n      data.data.morphTargetsRelative = this.morphTargetsRelative;\n    }\n    const groups = this.groups;\n    if (groups.length > 0) {\n      data.data.groups = JSON.parse(JSON.stringify(groups));\n    }\n    const boundingSphere = this.boundingSphere;\n    if (boundingSphere !== null) {\n      data.data.boundingSphere = {\n        center: boundingSphere.center.toArray(),\n        radius: boundingSphere.radius\n      };\n    }\n    return data;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.index = null;\n    this.attributes = {};\n    this.morphAttributes = {};\n    this.groups = [];\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    const data = {};\n    this.name = source.name;\n    const index = source.index;\n    if (index !== null) {\n      this.setIndex(index.clone(data));\n    }\n    const attributes = source.attributes;\n    for (const name in attributes) {\n      const attribute = attributes[name];\n      this.setAttribute(name, attribute.clone(data));\n    }\n    const morphAttributes = source.morphAttributes;\n    for (const name in morphAttributes) {\n      const array = [];\n      const morphAttribute = morphAttributes[name];\n      for (let i = 0, l = morphAttribute.length; i < l; i++) {\n        array.push(morphAttribute[i].clone(data));\n      }\n      this.morphAttributes[name] = array;\n    }\n    this.morphTargetsRelative = source.morphTargetsRelative;\n    const groups = source.groups;\n    for (let i = 0, l = groups.length; i < l; i++) {\n      const group = groups[i];\n      this.addGroup(group.start, group.count, group.materialIndex);\n    }\n    const boundingBox = source.boundingBox;\n    if (boundingBox !== null) {\n      this.boundingBox = boundingBox.clone();\n    }\n    const boundingSphere = source.boundingSphere;\n    if (boundingSphere !== null) {\n      this.boundingSphere = boundingSphere.clone();\n    }\n    this.drawRange.start = source.drawRange.start;\n    this.drawRange.count = source.drawRange.count;\n    this.userData = source.userData;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n};\nvar _inverseMatrix$3 = /* @__PURE__ */ new Matrix4();\nvar _ray$3 = /* @__PURE__ */ new Ray();\nvar _sphere$6 = /* @__PURE__ */ new Sphere();\nvar _sphereHitAt = /* @__PURE__ */ new Vector3();\nvar _vA$1 = /* @__PURE__ */ new Vector3();\nvar _vB$1 = /* @__PURE__ */ new Vector3();\nvar _vC$1 = /* @__PURE__ */ new Vector3();\nvar _tempA = /* @__PURE__ */ new Vector3();\nvar _morphA = /* @__PURE__ */ new Vector3();\nvar _intersectionPoint = /* @__PURE__ */ new Vector3();\nvar _intersectionPointWorld = /* @__PURE__ */ new Vector3();\nvar Mesh = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new MeshBasicMaterial()) {\n    super();\n    this.isMesh = true;\n    this.type = \"Mesh\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.morphTargetInfluences !== void 0) {\n      this.morphTargetInfluences = source.morphTargetInfluences.slice();\n    }\n    if (source.morphTargetDictionary !== void 0) {\n      this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\n    }\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n  getVertexPosition(index, target) {\n    const geometry = this.geometry;\n    const position = geometry.attributes.position;\n    const morphPosition = geometry.morphAttributes.position;\n    const morphTargetsRelative = geometry.morphTargetsRelative;\n    target.fromBufferAttribute(position, index);\n    const morphInfluences = this.morphTargetInfluences;\n    if (morphPosition && morphInfluences) {\n      _morphA.set(0, 0, 0);\n      for (let i = 0, il = morphPosition.length; i < il; i++) {\n        const influence = morphInfluences[i];\n        const morphAttribute = morphPosition[i];\n        if (influence === 0) continue;\n        _tempA.fromBufferAttribute(morphAttribute, index);\n        if (morphTargetsRelative) {\n          _morphA.addScaledVector(_tempA, influence);\n        } else {\n          _morphA.addScaledVector(_tempA.sub(target), influence);\n        }\n      }\n      target.add(_morphA);\n    }\n    return target;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const material = this.material;\n    const matrixWorld = this.matrixWorld;\n    if (material === void 0) return;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere$6.copy(geometry.boundingSphere);\n    _sphere$6.applyMatrix4(matrixWorld);\n    _ray$3.copy(raycaster.ray).recast(raycaster.near);\n    if (_sphere$6.containsPoint(_ray$3.origin) === false) {\n      if (_ray$3.intersectSphere(_sphere$6, _sphereHitAt) === null) return;\n      if (_ray$3.origin.distanceToSquared(_sphereHitAt) > __pow(raycaster.far - raycaster.near, 2)) return;\n    }\n    _inverseMatrix$3.copy(matrixWorld).invert();\n    _ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3);\n    if (geometry.boundingBox !== null) {\n      if (_ray$3.intersectsBox(geometry.boundingBox) === false) return;\n    }\n    this._computeIntersections(raycaster, intersects2, _ray$3);\n  }\n  _computeIntersections(raycaster, intersects2, rayLocalSpace) {\n    let intersection;\n    const geometry = this.geometry;\n    const material = this.material;\n    const index = geometry.index;\n    const position = geometry.attributes.position;\n    const uv = geometry.attributes.uv;\n    const uv1 = geometry.attributes.uv1;\n    const normal = geometry.attributes.normal;\n    const groups = geometry.groups;\n    const drawRange = geometry.drawRange;\n    if (index !== null) {\n      if (Array.isArray(material)) {\n        for (let i = 0, il = groups.length; i < il; i++) {\n          const group = groups[i];\n          const groupMaterial = material[group.materialIndex];\n          const start = Math.max(group.start, drawRange.start);\n          const end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n          for (let j = start, jl = end; j < jl; j += 3) {\n            const a = index.getX(j);\n            const b = index.getX(j + 1);\n            const c = index.getX(j + 2);\n            intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n            if (intersection) {\n              intersection.faceIndex = Math.floor(j / 3);\n              intersection.face.materialIndex = group.materialIndex;\n              intersects2.push(intersection);\n            }\n          }\n        }\n      } else {\n        const start = Math.max(0, drawRange.start);\n        const end = Math.min(index.count, drawRange.start + drawRange.count);\n        for (let i = start, il = end; i < il; i += 3) {\n          const a = index.getX(i);\n          const b = index.getX(i + 1);\n          const c = index.getX(i + 2);\n          intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n          if (intersection) {\n            intersection.faceIndex = Math.floor(i / 3);\n            intersects2.push(intersection);\n          }\n        }\n      }\n    } else if (position !== void 0) {\n      if (Array.isArray(material)) {\n        for (let i = 0, il = groups.length; i < il; i++) {\n          const group = groups[i];\n          const groupMaterial = material[group.materialIndex];\n          const start = Math.max(group.start, drawRange.start);\n          const end = Math.min(position.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n          for (let j = start, jl = end; j < jl; j += 3) {\n            const a = j;\n            const b = j + 1;\n            const c = j + 2;\n            intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n            if (intersection) {\n              intersection.faceIndex = Math.floor(j / 3);\n              intersection.face.materialIndex = group.materialIndex;\n              intersects2.push(intersection);\n            }\n          }\n        }\n      } else {\n        const start = Math.max(0, drawRange.start);\n        const end = Math.min(position.count, drawRange.start + drawRange.count);\n        for (let i = start, il = end; i < il; i += 3) {\n          const a = i;\n          const b = i + 1;\n          const c = i + 2;\n          intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n          if (intersection) {\n            intersection.faceIndex = Math.floor(i / 3);\n            intersects2.push(intersection);\n          }\n        }\n      }\n    }\n  }\n};\nfunction checkIntersection$1(object, material, raycaster, ray, pA, pB, pC, point) {\n  let intersect2;\n  if (material.side === BackSide) {\n    intersect2 = ray.intersectTriangle(pC, pB, pA, true, point);\n  } else {\n    intersect2 = ray.intersectTriangle(pA, pB, pC, material.side === FrontSide, point);\n  }\n  if (intersect2 === null) return null;\n  _intersectionPointWorld.copy(point);\n  _intersectionPointWorld.applyMatrix4(object.matrixWorld);\n  const distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\n  if (distance < raycaster.near || distance > raycaster.far) return null;\n  return {\n    distance,\n    point: _intersectionPointWorld.clone(),\n    object\n  };\n}\nfunction checkGeometryIntersection(object, material, raycaster, ray, uv, uv1, normal, a, b, c) {\n  object.getVertexPosition(a, _vA$1);\n  object.getVertexPosition(b, _vB$1);\n  object.getVertexPosition(c, _vC$1);\n  const intersection = checkIntersection$1(object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint);\n  if (intersection) {\n    const barycoord = new Vector3();\n    Triangle.getBarycoord(_intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord);\n    if (uv) {\n      intersection.uv = Triangle.getInterpolatedAttribute(uv, a, b, c, barycoord, new Vector2());\n    }\n    if (uv1) {\n      intersection.uv1 = Triangle.getInterpolatedAttribute(uv1, a, b, c, barycoord, new Vector2());\n    }\n    if (normal) {\n      intersection.normal = Triangle.getInterpolatedAttribute(normal, a, b, c, barycoord, new Vector3());\n      if (intersection.normal.dot(ray.direction) > 0) {\n        intersection.normal.multiplyScalar(-1);\n      }\n    }\n    const face = {\n      a,\n      b,\n      c,\n      normal: new Vector3(),\n      materialIndex: 0\n    };\n    Triangle.getNormal(_vA$1, _vB$1, _vC$1, face.normal);\n    intersection.face = face;\n    intersection.barycoord = barycoord;\n  }\n  return intersection;\n}\nvar BoxGeometry = class _BoxGeometry extends BufferGeometry {\n  constructor(width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1) {\n    super();\n    this.type = \"BoxGeometry\";\n    this.parameters = {\n      width,\n      height,\n      depth,\n      widthSegments,\n      heightSegments,\n      depthSegments\n    };\n    const scope = this;\n    widthSegments = Math.floor(widthSegments);\n    heightSegments = Math.floor(heightSegments);\n    depthSegments = Math.floor(depthSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let numberOfVertices = 0;\n    let groupStart = 0;\n    buildPlane(\"z\", \"y\", \"x\", -1, -1, depth, height, width, depthSegments, heightSegments, 0);\n    buildPlane(\"z\", \"y\", \"x\", 1, -1, depth, height, -width, depthSegments, heightSegments, 1);\n    buildPlane(\"x\", \"z\", \"y\", 1, 1, width, depth, height, widthSegments, depthSegments, 2);\n    buildPlane(\"x\", \"z\", \"y\", 1, -1, width, depth, -height, widthSegments, depthSegments, 3);\n    buildPlane(\"x\", \"y\", \"z\", 1, -1, width, height, depth, widthSegments, heightSegments, 4);\n    buildPlane(\"x\", \"y\", \"z\", -1, -1, width, height, -depth, widthSegments, heightSegments, 5);\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function buildPlane(u, v, w, udir, vdir, width2, height2, depth2, gridX, gridY, materialIndex) {\n      const segmentWidth = width2 / gridX;\n      const segmentHeight = height2 / gridY;\n      const widthHalf = width2 / 2;\n      const heightHalf = height2 / 2;\n      const depthHalf = depth2 / 2;\n      const gridX1 = gridX + 1;\n      const gridY1 = gridY + 1;\n      let vertexCounter = 0;\n      let groupCount = 0;\n      const vector = new Vector3();\n      for (let iy = 0; iy < gridY1; iy++) {\n        const y = iy * segmentHeight - heightHalf;\n        for (let ix = 0; ix < gridX1; ix++) {\n          const x = ix * segmentWidth - widthHalf;\n          vector[u] = x * udir;\n          vector[v] = y * vdir;\n          vector[w] = depthHalf;\n          vertices.push(vector.x, vector.y, vector.z);\n          vector[u] = 0;\n          vector[v] = 0;\n          vector[w] = depth2 > 0 ? 1 : -1;\n          normals.push(vector.x, vector.y, vector.z);\n          uvs.push(ix / gridX);\n          uvs.push(1 - iy / gridY);\n          vertexCounter += 1;\n        }\n      }\n      for (let iy = 0; iy < gridY; iy++) {\n        for (let ix = 0; ix < gridX; ix++) {\n          const a = numberOfVertices + ix + gridX1 * iy;\n          const b = numberOfVertices + ix + gridX1 * (iy + 1);\n          const c = numberOfVertices + (ix + 1) + gridX1 * (iy + 1);\n          const d = numberOfVertices + (ix + 1) + gridX1 * iy;\n          indices.push(a, b, d);\n          indices.push(b, c, d);\n          groupCount += 6;\n        }\n      }\n      scope.addGroup(groupStart, groupCount, materialIndex);\n      groupStart += groupCount;\n      numberOfVertices += vertexCounter;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\n  }\n};\nfunction cloneUniforms(src) {\n  const dst = {};\n  for (const u in src) {\n    dst[u] = {};\n    for (const p in src[u]) {\n      const property = src[u][p];\n      if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {\n        if (property.isRenderTargetTexture) {\n          console.warn(\"UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().\");\n          dst[u][p] = null;\n        } else {\n          dst[u][p] = property.clone();\n        }\n      } else if (Array.isArray(property)) {\n        dst[u][p] = property.slice();\n      } else {\n        dst[u][p] = property;\n      }\n    }\n  }\n  return dst;\n}\nfunction mergeUniforms(uniforms) {\n  const merged = {};\n  for (let u = 0; u < uniforms.length; u++) {\n    const tmp2 = cloneUniforms(uniforms[u]);\n    for (const p in tmp2) {\n      merged[p] = tmp2[p];\n    }\n  }\n  return merged;\n}\nfunction cloneUniformsGroups(src) {\n  const dst = [];\n  for (let u = 0; u < src.length; u++) {\n    dst.push(src[u].clone());\n  }\n  return dst;\n}\nfunction getUnlitUniformColorSpace(renderer) {\n  const currentRenderTarget = renderer.getRenderTarget();\n  if (currentRenderTarget === null) {\n    return renderer.outputColorSpace;\n  }\n  if (currentRenderTarget.isXRRenderTarget === true) {\n    return currentRenderTarget.texture.colorSpace;\n  }\n  return ColorManagement.workingColorSpace;\n}\nvar UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\nvar default_vertex = \"void main() {\\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\nvar default_fragment = \"void main() {\\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\nvar ShaderMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isShaderMaterial = true;\n    this.type = \"ShaderMaterial\";\n    this.defines = {};\n    this.uniforms = {};\n    this.uniformsGroups = [];\n    this.vertexShader = default_vertex;\n    this.fragmentShader = default_fragment;\n    this.linewidth = 1;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.fog = false;\n    this.lights = false;\n    this.clipping = false;\n    this.forceSinglePass = true;\n    this.extensions = {\n      clipCullDistance: false,\n      // set to use vertex shader clipping\n      multiDraw: false\n      // set to use vertex shader multi_draw / enable gl_DrawID\n    };\n    this.defaultAttributeValues = {\n      \"color\": [1, 1, 1],\n      \"uv\": [0, 0],\n      \"uv1\": [0, 0]\n    };\n    this.index0AttributeName = void 0;\n    this.uniformsNeedUpdate = false;\n    this.glslVersion = null;\n    if (parameters !== void 0) {\n      this.setValues(parameters);\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.fragmentShader = source.fragmentShader;\n    this.vertexShader = source.vertexShader;\n    this.uniforms = cloneUniforms(source.uniforms);\n    this.uniformsGroups = cloneUniformsGroups(source.uniformsGroups);\n    this.defines = Object.assign({}, source.defines);\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.fog = source.fog;\n    this.lights = source.lights;\n    this.clipping = source.clipping;\n    this.extensions = Object.assign({}, source.extensions);\n    this.glslVersion = source.glslVersion;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.glslVersion = this.glslVersion;\n    data.uniforms = {};\n    for (const name in this.uniforms) {\n      const uniform = this.uniforms[name];\n      const value = uniform.value;\n      if (value && value.isTexture) {\n        data.uniforms[name] = {\n          type: \"t\",\n          value: value.toJSON(meta).uuid\n        };\n      } else if (value && value.isColor) {\n        data.uniforms[name] = {\n          type: \"c\",\n          value: value.getHex()\n        };\n      } else if (value && value.isVector2) {\n        data.uniforms[name] = {\n          type: \"v2\",\n          value: value.toArray()\n        };\n      } else if (value && value.isVector3) {\n        data.uniforms[name] = {\n          type: \"v3\",\n          value: value.toArray()\n        };\n      } else if (value && value.isVector4) {\n        data.uniforms[name] = {\n          type: \"v4\",\n          value: value.toArray()\n        };\n      } else if (value && value.isMatrix3) {\n        data.uniforms[name] = {\n          type: \"m3\",\n          value: value.toArray()\n        };\n      } else if (value && value.isMatrix4) {\n        data.uniforms[name] = {\n          type: \"m4\",\n          value: value.toArray()\n        };\n      } else {\n        data.uniforms[name] = {\n          value\n        };\n      }\n    }\n    if (Object.keys(this.defines).length > 0) data.defines = this.defines;\n    data.vertexShader = this.vertexShader;\n    data.fragmentShader = this.fragmentShader;\n    data.lights = this.lights;\n    data.clipping = this.clipping;\n    const extensions = {};\n    for (const key in this.extensions) {\n      if (this.extensions[key] === true) extensions[key] = true;\n    }\n    if (Object.keys(extensions).length > 0) data.extensions = extensions;\n    return data;\n  }\n};\nvar Camera = class extends Object3D {\n  constructor() {\n    super();\n    this.isCamera = true;\n    this.type = \"Camera\";\n    this.matrixWorldInverse = new Matrix4();\n    this.projectionMatrix = new Matrix4();\n    this.projectionMatrixInverse = new Matrix4();\n    this.coordinateSystem = WebGLCoordinateSystem;\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.matrixWorldInverse.copy(source.matrixWorldInverse);\n    this.projectionMatrix.copy(source.projectionMatrix);\n    this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\n    this.coordinateSystem = source.coordinateSystem;\n    return this;\n  }\n  getWorldDirection(target) {\n    return super.getWorldDirection(target).negate();\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\n  }\n  updateWorldMatrix(updateParents, updateChildren) {\n    super.updateWorldMatrix(updateParents, updateChildren);\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _v3$1 = /* @__PURE__ */ new Vector3();\nvar _minTarget = /* @__PURE__ */ new Vector2();\nvar _maxTarget = /* @__PURE__ */ new Vector2();\nvar PerspectiveCamera = class extends Camera {\n  constructor(fov2 = 50, aspect2 = 1, near = 0.1, far = 2e3) {\n    super();\n    this.isPerspectiveCamera = true;\n    this.type = \"PerspectiveCamera\";\n    this.fov = fov2;\n    this.zoom = 1;\n    this.near = near;\n    this.far = far;\n    this.focus = 10;\n    this.aspect = aspect2;\n    this.view = null;\n    this.filmGauge = 35;\n    this.filmOffset = 0;\n    this.updateProjectionMatrix();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.fov = source.fov;\n    this.zoom = source.zoom;\n    this.near = source.near;\n    this.far = source.far;\n    this.focus = source.focus;\n    this.aspect = source.aspect;\n    this.view = source.view === null ? null : Object.assign({}, source.view);\n    this.filmGauge = source.filmGauge;\n    this.filmOffset = source.filmOffset;\n    return this;\n  }\n  /**\n   * Sets the FOV by focal length in respect to the current .filmGauge.\n   *\n   * The default film gauge is 35, so that the focal length can be specified for\n   * a 35mm (full frame) camera.\n   *\n   * Values for focal length and film gauge must have the same unit.\n   */\n  setFocalLength(focalLength) {\n    const vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n    this.fov = RAD2DEG * 2 * Math.atan(vExtentSlope);\n    this.updateProjectionMatrix();\n  }\n  /**\n   * Calculates the focal length from the current .fov and .filmGauge.\n   */\n  getFocalLength() {\n    const vExtentSlope = Math.tan(DEG2RAD * 0.5 * this.fov);\n    return 0.5 * this.getFilmHeight() / vExtentSlope;\n  }\n  getEffectiveFOV() {\n    return RAD2DEG * 2 * Math.atan(\n      Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom\n    );\n  }\n  getFilmWidth() {\n    return this.filmGauge * Math.min(this.aspect, 1);\n  }\n  getFilmHeight() {\n    return this.filmGauge / Math.max(this.aspect, 1);\n  }\n  /**\n   * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n   * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n   */\n  getViewBounds(distance, minTarget, maxTarget) {\n    _v3$1.set(-1, -1, 0.5).applyMatrix4(this.projectionMatrixInverse);\n    minTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z);\n    _v3$1.set(1, 1, 0.5).applyMatrix4(this.projectionMatrixInverse);\n    maxTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z);\n  }\n  /**\n   * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n   * Copies the result into the target Vector2, where x is width and y is height.\n   */\n  getViewSize(distance, target) {\n    this.getViewBounds(distance, _minTarget, _maxTarget);\n    return target.subVectors(_maxTarget, _minTarget);\n  }\n  /**\n   * Sets an offset in a larger frustum. This is useful for multi-window or\n   * multi-monitor/multi-machine setups.\n   *\n   * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n   * the monitors are in grid like this\n   *\n   *   +---+---+---+\n   *   | A | B | C |\n   *   +---+---+---+\n   *   | D | E | F |\n   *   +---+---+---+\n   *\n   * then for each monitor you would call it like this\n   *\n   *   const w = 1920;\n   *   const h = 1080;\n   *   const fullWidth = w * 3;\n   *   const fullHeight = h * 2;\n   *\n   *   --A--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n   *   --B--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n   *   --C--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n   *   --D--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n   *   --E--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n   *   --F--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n   *\n   *   Note there is no reason monitors have to be the same size or in a grid.\n   */\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n    this.aspect = fullWidth / fullHeight;\n    if (this.view === null) {\n      this.view = {\n        enabled: true,\n        fullWidth: 1,\n        fullHeight: 1,\n        offsetX: 0,\n        offsetY: 0,\n        width: 1,\n        height: 1\n      };\n    }\n    this.view.enabled = true;\n    this.view.fullWidth = fullWidth;\n    this.view.fullHeight = fullHeight;\n    this.view.offsetX = x;\n    this.view.offsetY = y;\n    this.view.width = width;\n    this.view.height = height;\n    this.updateProjectionMatrix();\n  }\n  clearViewOffset() {\n    if (this.view !== null) {\n      this.view.enabled = false;\n    }\n    this.updateProjectionMatrix();\n  }\n  updateProjectionMatrix() {\n    const near = this.near;\n    let top = near * Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom;\n    let height = 2 * top;\n    let width = this.aspect * height;\n    let left = -0.5 * width;\n    const view = this.view;\n    if (this.view !== null && this.view.enabled) {\n      const fullWidth = view.fullWidth, fullHeight = view.fullHeight;\n      left += view.offsetX * width / fullWidth;\n      top -= view.offsetY * height / fullHeight;\n      width *= view.width / fullWidth;\n      height *= view.height / fullHeight;\n    }\n    const skew = this.filmOffset;\n    if (skew !== 0) left += near * skew / this.getFilmWidth();\n    this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far, this.coordinateSystem);\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.fov = this.fov;\n    data.object.zoom = this.zoom;\n    data.object.near = this.near;\n    data.object.far = this.far;\n    data.object.focus = this.focus;\n    data.object.aspect = this.aspect;\n    if (this.view !== null) data.object.view = Object.assign({}, this.view);\n    data.object.filmGauge = this.filmGauge;\n    data.object.filmOffset = this.filmOffset;\n    return data;\n  }\n};\nvar fov = -90;\nvar aspect = 1;\nvar CubeCamera = class extends Object3D {\n  constructor(near, far, renderTarget) {\n    super();\n    this.type = \"CubeCamera\";\n    this.renderTarget = renderTarget;\n    this.coordinateSystem = null;\n    this.activeMipmapLevel = 0;\n    const cameraPX = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPX.layers = this.layers;\n    this.add(cameraPX);\n    const cameraNX = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNX.layers = this.layers;\n    this.add(cameraNX);\n    const cameraPY = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPY.layers = this.layers;\n    this.add(cameraPY);\n    const cameraNY = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNY.layers = this.layers;\n    this.add(cameraNY);\n    const cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPZ.layers = this.layers;\n    this.add(cameraPZ);\n    const cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNZ.layers = this.layers;\n    this.add(cameraNZ);\n  }\n  updateCoordinateSystem() {\n    const coordinateSystem = this.coordinateSystem;\n    const cameras = this.children.concat();\n    const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = cameras;\n    for (const camera of cameras) this.remove(camera);\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      cameraPX.up.set(0, 1, 0);\n      cameraPX.lookAt(1, 0, 0);\n      cameraNX.up.set(0, 1, 0);\n      cameraNX.lookAt(-1, 0, 0);\n      cameraPY.up.set(0, 0, -1);\n      cameraPY.lookAt(0, 1, 0);\n      cameraNY.up.set(0, 0, 1);\n      cameraNY.lookAt(0, -1, 0);\n      cameraPZ.up.set(0, 1, 0);\n      cameraPZ.lookAt(0, 0, 1);\n      cameraNZ.up.set(0, 1, 0);\n      cameraNZ.lookAt(0, 0, -1);\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      cameraPX.up.set(0, -1, 0);\n      cameraPX.lookAt(-1, 0, 0);\n      cameraNX.up.set(0, -1, 0);\n      cameraNX.lookAt(1, 0, 0);\n      cameraPY.up.set(0, 0, 1);\n      cameraPY.lookAt(0, 1, 0);\n      cameraNY.up.set(0, 0, -1);\n      cameraNY.lookAt(0, -1, 0);\n      cameraPZ.up.set(0, -1, 0);\n      cameraPZ.lookAt(0, 0, 1);\n      cameraNZ.up.set(0, -1, 0);\n      cameraNZ.lookAt(0, 0, -1);\n    } else {\n      throw new Error(\"THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    for (const camera of cameras) {\n      this.add(camera);\n      camera.updateMatrixWorld();\n    }\n  }\n  update(renderer, scene) {\n    if (this.parent === null) this.updateMatrixWorld();\n    const { renderTarget, activeMipmapLevel } = this;\n    if (this.coordinateSystem !== renderer.coordinateSystem) {\n      this.coordinateSystem = renderer.coordinateSystem;\n      this.updateCoordinateSystem();\n    }\n    const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = this.children;\n    const currentRenderTarget = renderer.getRenderTarget();\n    const currentActiveCubeFace = renderer.getActiveCubeFace();\n    const currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n    const currentXrEnabled = renderer.xr.enabled;\n    renderer.xr.enabled = false;\n    const generateMipmaps = renderTarget.texture.generateMipmaps;\n    renderTarget.texture.generateMipmaps = false;\n    renderer.setRenderTarget(renderTarget, 0, activeMipmapLevel);\n    renderer.render(scene, cameraPX);\n    renderer.setRenderTarget(renderTarget, 1, activeMipmapLevel);\n    renderer.render(scene, cameraNX);\n    renderer.setRenderTarget(renderTarget, 2, activeMipmapLevel);\n    renderer.render(scene, cameraPY);\n    renderer.setRenderTarget(renderTarget, 3, activeMipmapLevel);\n    renderer.render(scene, cameraNY);\n    renderer.setRenderTarget(renderTarget, 4, activeMipmapLevel);\n    renderer.render(scene, cameraPZ);\n    renderTarget.texture.generateMipmaps = generateMipmaps;\n    renderer.setRenderTarget(renderTarget, 5, activeMipmapLevel);\n    renderer.render(scene, cameraNZ);\n    renderer.setRenderTarget(currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel);\n    renderer.xr.enabled = currentXrEnabled;\n    renderTarget.texture.needsPMREMUpdate = true;\n  }\n};\nvar CubeTexture = class extends Texture {\n  constructor(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace) {\n    images = images !== void 0 ? images : [];\n    mapping = mapping !== void 0 ? mapping : CubeReflectionMapping;\n    super(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isCubeTexture = true;\n    this.flipY = false;\n  }\n  get images() {\n    return this.image;\n  }\n  set images(value) {\n    this.image = value;\n  }\n};\nvar WebGLCubeRenderTarget = class extends WebGLRenderTarget {\n  constructor(size = 1, options = {}) {\n    super(size, size, options);\n    this.isWebGLCubeRenderTarget = true;\n    const image = { width: size, height: size, depth: 1 };\n    const images = [image, image, image, image, image, image];\n    this.texture = new CubeTexture(images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace);\n    this.texture.isRenderTargetTexture = true;\n    this.texture.generateMipmaps = options.generateMipmaps !== void 0 ? options.generateMipmaps : false;\n    this.texture.minFilter = options.minFilter !== void 0 ? options.minFilter : LinearFilter;\n  }\n  fromEquirectangularTexture(renderer, texture) {\n    this.texture.type = texture.type;\n    this.texture.colorSpace = texture.colorSpace;\n    this.texture.generateMipmaps = texture.generateMipmaps;\n    this.texture.minFilter = texture.minFilter;\n    this.texture.magFilter = texture.magFilter;\n    const shader = {\n      uniforms: {\n        tEquirect: { value: null }\n      },\n      vertexShader: (\n        /* glsl */\n        `\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t`\n      ),\n      fragmentShader: (\n        /* glsl */\n        `\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n      )\n    };\n    const geometry = new BoxGeometry(5, 5, 5);\n    const material = new ShaderMaterial({\n      name: \"CubemapFromEquirect\",\n      uniforms: cloneUniforms(shader.uniforms),\n      vertexShader: shader.vertexShader,\n      fragmentShader: shader.fragmentShader,\n      side: BackSide,\n      blending: NoBlending\n    });\n    material.uniforms.tEquirect.value = texture;\n    const mesh = new Mesh(geometry, material);\n    const currentMinFilter = texture.minFilter;\n    if (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter;\n    const camera = new CubeCamera(1, 10, this);\n    camera.update(renderer, mesh);\n    texture.minFilter = currentMinFilter;\n    mesh.geometry.dispose();\n    mesh.material.dispose();\n    return this;\n  }\n  clear(renderer, color, depth, stencil) {\n    const currentRenderTarget = renderer.getRenderTarget();\n    for (let i = 0; i < 6; i++) {\n      renderer.setRenderTarget(this, i);\n      renderer.clear(color, depth, stencil);\n    }\n    renderer.setRenderTarget(currentRenderTarget);\n  }\n};\nvar _vector1 = /* @__PURE__ */ new Vector3();\nvar _vector2 = /* @__PURE__ */ new Vector3();\nvar _normalMatrix = /* @__PURE__ */ new Matrix3();\nvar Plane = class {\n  constructor(normal = new Vector3(1, 0, 0), constant = 0) {\n    this.isPlane = true;\n    this.normal = normal;\n    this.constant = constant;\n  }\n  set(normal, constant) {\n    this.normal.copy(normal);\n    this.constant = constant;\n    return this;\n  }\n  setComponents(x, y, z, w) {\n    this.normal.set(x, y, z);\n    this.constant = w;\n    return this;\n  }\n  setFromNormalAndCoplanarPoint(normal, point) {\n    this.normal.copy(normal);\n    this.constant = -point.dot(this.normal);\n    return this;\n  }\n  setFromCoplanarPoints(a, b, c) {\n    const normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize();\n    this.setFromNormalAndCoplanarPoint(normal, a);\n    return this;\n  }\n  copy(plane) {\n    this.normal.copy(plane.normal);\n    this.constant = plane.constant;\n    return this;\n  }\n  normalize() {\n    const inverseNormalLength = 1 / this.normal.length();\n    this.normal.multiplyScalar(inverseNormalLength);\n    this.constant *= inverseNormalLength;\n    return this;\n  }\n  negate() {\n    this.constant *= -1;\n    this.normal.negate();\n    return this;\n  }\n  distanceToPoint(point) {\n    return this.normal.dot(point) + this.constant;\n  }\n  distanceToSphere(sphere) {\n    return this.distanceToPoint(sphere.center) - sphere.radius;\n  }\n  projectPoint(point, target) {\n    return target.copy(point).addScaledVector(this.normal, -this.distanceToPoint(point));\n  }\n  intersectLine(line, target) {\n    const direction = line.delta(_vector1);\n    const denominator = this.normal.dot(direction);\n    if (denominator === 0) {\n      if (this.distanceToPoint(line.start) === 0) {\n        return target.copy(line.start);\n      }\n      return null;\n    }\n    const t = -(line.start.dot(this.normal) + this.constant) / denominator;\n    if (t < 0 || t > 1) {\n      return null;\n    }\n    return target.copy(line.start).addScaledVector(direction, t);\n  }\n  intersectsLine(line) {\n    const startSign = this.distanceToPoint(line.start);\n    const endSign = this.distanceToPoint(line.end);\n    return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\n  }\n  intersectsBox(box) {\n    return box.intersectsPlane(this);\n  }\n  intersectsSphere(sphere) {\n    return sphere.intersectsPlane(this);\n  }\n  coplanarPoint(target) {\n    return target.copy(this.normal).multiplyScalar(-this.constant);\n  }\n  applyMatrix4(matrix, optionalNormalMatrix) {\n    const normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\n    const referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\n    const normal = this.normal.applyMatrix3(normalMatrix).normalize();\n    this.constant = -referencePoint.dot(normal);\n    return this;\n  }\n  translate(offset) {\n    this.constant -= offset.dot(this.normal);\n    return this;\n  }\n  equals(plane) {\n    return plane.normal.equals(this.normal) && plane.constant === this.constant;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _sphere$5 = /* @__PURE__ */ new Sphere();\nvar _vector$7 = /* @__PURE__ */ new Vector3();\nvar Frustum = class {\n  constructor(p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane()) {\n    this.planes = [p0, p1, p2, p3, p4, p5];\n  }\n  set(p0, p1, p2, p3, p4, p5) {\n    const planes = this.planes;\n    planes[0].copy(p0);\n    planes[1].copy(p1);\n    planes[2].copy(p2);\n    planes[3].copy(p3);\n    planes[4].copy(p4);\n    planes[5].copy(p5);\n    return this;\n  }\n  copy(frustum) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      planes[i].copy(frustum.planes[i]);\n    }\n    return this;\n  }\n  setFromProjectionMatrix(m, coordinateSystem = WebGLCoordinateSystem) {\n    const planes = this.planes;\n    const me = m.elements;\n    const me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];\n    const me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];\n    const me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];\n    const me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];\n    planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\n    planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\n    planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\n    planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\n    planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      planes[5].setComponents(me2, me6, me10, me14).normalize();\n    } else {\n      throw new Error(\"THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    return this;\n  }\n  intersectsObject(object) {\n    if (object.boundingSphere !== void 0) {\n      if (object.boundingSphere === null) object.computeBoundingSphere();\n      _sphere$5.copy(object.boundingSphere).applyMatrix4(object.matrixWorld);\n    } else {\n      const geometry = object.geometry;\n      if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n      _sphere$5.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\n    }\n    return this.intersectsSphere(_sphere$5);\n  }\n  intersectsSprite(sprite) {\n    _sphere$5.center.set(0, 0, 0);\n    _sphere$5.radius = 0.7071067811865476;\n    _sphere$5.applyMatrix4(sprite.matrixWorld);\n    return this.intersectsSphere(_sphere$5);\n  }\n  intersectsSphere(sphere) {\n    const planes = this.planes;\n    const center = sphere.center;\n    const negRadius = -sphere.radius;\n    for (let i = 0; i < 6; i++) {\n      const distance = planes[i].distanceToPoint(center);\n      if (distance < negRadius) {\n        return false;\n      }\n    }\n    return true;\n  }\n  intersectsBox(box) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      const plane = planes[i];\n      _vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n      _vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n      _vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n      if (plane.distanceToPoint(_vector$7) < 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n  containsPoint(point) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      if (planes[i].distanceToPoint(point) < 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nfunction WebGLAnimation() {\n  let context = null;\n  let isAnimating = false;\n  let animationLoop = null;\n  let requestId = null;\n  function onAnimationFrame(time, frame) {\n    animationLoop(time, frame);\n    requestId = context.requestAnimationFrame(onAnimationFrame);\n  }\n  return {\n    start: function() {\n      if (isAnimating === true) return;\n      if (animationLoop === null) return;\n      requestId = context.requestAnimationFrame(onAnimationFrame);\n      isAnimating = true;\n    },\n    stop: function() {\n      context.cancelAnimationFrame(requestId);\n      isAnimating = false;\n    },\n    setAnimationLoop: function(callback) {\n      animationLoop = callback;\n    },\n    setContext: function(value) {\n      context = value;\n    }\n  };\n}\nfunction WebGLAttributes(gl) {\n  const buffers = /* @__PURE__ */ new WeakMap();\n  function createBuffer(attribute, bufferType) {\n    const array = attribute.array;\n    const usage = attribute.usage;\n    const size = array.byteLength;\n    const buffer = gl.createBuffer();\n    gl.bindBuffer(bufferType, buffer);\n    gl.bufferData(bufferType, array, usage);\n    attribute.onUploadCallback();\n    let type;\n    if (array instanceof Float32Array) {\n      type = gl.FLOAT;\n    } else if (array instanceof Uint16Array) {\n      if (attribute.isFloat16BufferAttribute) {\n        type = gl.HALF_FLOAT;\n      } else {\n        type = gl.UNSIGNED_SHORT;\n      }\n    } else if (array instanceof Int16Array) {\n      type = gl.SHORT;\n    } else if (array instanceof Uint32Array) {\n      type = gl.UNSIGNED_INT;\n    } else if (array instanceof Int32Array) {\n      type = gl.INT;\n    } else if (array instanceof Int8Array) {\n      type = gl.BYTE;\n    } else if (array instanceof Uint8Array) {\n      type = gl.UNSIGNED_BYTE;\n    } else if (array instanceof Uint8ClampedArray) {\n      type = gl.UNSIGNED_BYTE;\n    } else {\n      throw new Error(\"THREE.WebGLAttributes: Unsupported buffer data format: \" + array);\n    }\n    return {\n      buffer,\n      type,\n      bytesPerElement: array.BYTES_PER_ELEMENT,\n      version: attribute.version,\n      size\n    };\n  }\n  function updateBuffer(buffer, attribute, bufferType) {\n    const array = attribute.array;\n    const updateRanges = attribute.updateRanges;\n    gl.bindBuffer(bufferType, buffer);\n    if (updateRanges.length === 0) {\n      gl.bufferSubData(bufferType, 0, array);\n    } else {\n      updateRanges.sort((a, b) => a.start - b.start);\n      let mergeIndex = 0;\n      for (let i = 1; i < updateRanges.length; i++) {\n        const previousRange = updateRanges[mergeIndex];\n        const range = updateRanges[i];\n        if (range.start <= previousRange.start + previousRange.count + 1) {\n          previousRange.count = Math.max(\n            previousRange.count,\n            range.start + range.count - previousRange.start\n          );\n        } else {\n          ++mergeIndex;\n          updateRanges[mergeIndex] = range;\n        }\n      }\n      updateRanges.length = mergeIndex + 1;\n      for (let i = 0, l = updateRanges.length; i < l; i++) {\n        const range = updateRanges[i];\n        gl.bufferSubData(\n          bufferType,\n          range.start * array.BYTES_PER_ELEMENT,\n          array,\n          range.start,\n          range.count\n        );\n      }\n      attribute.clearUpdateRanges();\n    }\n    attribute.onUploadCallback();\n  }\n  function get(attribute) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    return buffers.get(attribute);\n  }\n  function remove(attribute) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    const data = buffers.get(attribute);\n    if (data) {\n      gl.deleteBuffer(data.buffer);\n      buffers.delete(attribute);\n    }\n  }\n  function update(attribute, bufferType) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    if (attribute.isGLBufferAttribute) {\n      const cached = buffers.get(attribute);\n      if (!cached || cached.version < attribute.version) {\n        buffers.set(attribute, {\n          buffer: attribute.buffer,\n          type: attribute.type,\n          bytesPerElement: attribute.elementSize,\n          version: attribute.version\n        });\n      }\n      return;\n    }\n    const data = buffers.get(attribute);\n    if (data === void 0) {\n      buffers.set(attribute, createBuffer(attribute, bufferType));\n    } else if (data.version < attribute.version) {\n      if (data.size !== attribute.array.byteLength) {\n        throw new Error(\"THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.\");\n      }\n      updateBuffer(data.buffer, attribute, bufferType);\n      data.version = attribute.version;\n    }\n  }\n  return {\n    get,\n    remove,\n    update\n  };\n}\nvar PlaneGeometry = class _PlaneGeometry extends BufferGeometry {\n  constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) {\n    super();\n    this.type = \"PlaneGeometry\";\n    this.parameters = {\n      width,\n      height,\n      widthSegments,\n      heightSegments\n    };\n    const width_half = width / 2;\n    const height_half = height / 2;\n    const gridX = Math.floor(widthSegments);\n    const gridY = Math.floor(heightSegments);\n    const gridX1 = gridX + 1;\n    const gridY1 = gridY + 1;\n    const segment_width = width / gridX;\n    const segment_height = height / gridY;\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    for (let iy = 0; iy < gridY1; iy++) {\n      const y = iy * segment_height - height_half;\n      for (let ix = 0; ix < gridX1; ix++) {\n        const x = ix * segment_width - width_half;\n        vertices.push(x, -y, 0);\n        normals.push(0, 0, 1);\n        uvs.push(ix / gridX);\n        uvs.push(1 - iy / gridY);\n      }\n    }\n    for (let iy = 0; iy < gridY; iy++) {\n      for (let ix = 0; ix < gridX; ix++) {\n        const a = ix + gridX1 * iy;\n        const b = ix + gridX1 * (iy + 1);\n        const c = ix + 1 + gridX1 * (iy + 1);\n        const d = ix + 1 + gridX1 * iy;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments);\n  }\n};\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\tconst float ALPHA_HASH_SCALE = 0.05;\\n\tfloat hash2D( vec2 value ) {\\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\t}\\n\tfloat hash3D( vec3 value ) {\\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\t}\\n\tfloat getAlphaHashThreshold( vec3 position ) {\\n\t\tfloat maxDeriv = max(\\n\t\t\tlength( dFdx( position.xyz ) ),\\n\t\t\tlength( dFdy( position.xyz ) )\\n\t\t);\\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\t\tvec2 pixScales = vec2(\\n\t\t\texp2( floor( log2( pixScale ) ) ),\\n\t\t\texp2( ceil( log2( pixScale ) ) )\\n\t\t);\\n\t\tvec2 alpha = vec2(\\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\\n\t\t);\\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\t\tvec3 cases = vec3(\\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\t\t);\\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\\n\t\t\t: cases.z;\\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\t}\\n#endif\";\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\tuniform sampler2D alphaMap;\\n#endif\";\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\t#ifdef ALPHA_TO_COVERAGE\\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\tif ( diffuseColor.a == 0.0 ) discard;\\n\t#else\\n\tif ( diffuseColor.a < alphaTest ) discard;\\n\t#endif\\n#endif\";\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\tuniform float alphaTest;\\n#endif\";\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\t#if defined( USE_CLEARCOAT ) \\n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\t#endif\\n\t#if defined( USE_SHEEN ) \\n\t\tsheenSpecularIndirect *= ambientOcclusion;\\n\t#endif\\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\t#endif\\n#endif\";\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\tuniform sampler2D aoMap;\\n\tuniform float aoMapIntensity;\\n#endif\";\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\t#if ! defined( GL_ANGLE_multi_draw )\\n\t#define gl_DrawID _gl_DrawID\\n\tuniform int _gl_DrawID;\\n\t#endif\\n\tuniform highp sampler2D batchingTexture;\\n\tuniform highp usampler2D batchingIdTexture;\\n\tmat4 getBatchingMatrix( const in float i ) {\\n\t\tint size = textureSize( batchingTexture, 0 ).x;\\n\t\tint j = int( i ) * 4;\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\t\treturn mat4( v1, v2, v3, v4 );\\n\t}\\n\tfloat getIndirectIndex( const in int i ) {\\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\t\tint x = i % size;\\n\t\tint y = i / size;\\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\tuniform sampler2D batchingColorTexture;\\n\tvec3 getBatchingColor( const in float i ) {\\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\t\tint j = int( i );\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\t}\\n#endif\";\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\tvPosition = vec3( position );\\n#endif\";\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\tfloat G = G_BlinnPhong_Implicit( );\\n\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\treturn F * ( G * D );\\n} // validated\";\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\tconst mat3 XYZ_TO_REC709 = mat3(\\n\t\t 3.2404542, -0.9692660,  0.0556434,\\n\t\t-1.5371385,  1.8760108, -0.2040259,\\n\t\t-0.4985314,  0.0415560,  1.0572252\\n\t);\\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\t}\\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\t}\\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\t}\\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\t\txyz /= 1.0685e-7;\\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\t\treturn rgb;\\n\t}\\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\t\tvec3 I;\\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\t\tif ( cosTheta2Sq < 0.0 ) {\\n\t\t\treturn vec3( 1.0 );\\n\t\t}\\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\t\tfloat T121 = 1.0 - R12;\\n\t\tfloat phi12 = 0.0;\\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\t\tfloat phi21 = PI - phi12;\\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\t\tvec3 phi23 = vec3( 0.0 );\\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\t\tvec3 phi = vec3( phi21 ) + phi23;\\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\t\tvec3 r123 = sqrt( R123 );\\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\t\tvec3 C0 = R12 + Rs;\\n\t\tI = C0;\\n\t\tvec3 Cm = Rs - T121;\\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\\n\t\t\tCm *= r123;\\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\t\t\tI += Cm * Sm;\\n\t\t}\\n\t\treturn max( I, vec3( 0.0 ) );\\n\t}\\n#endif\";\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\tuniform sampler2D bumpMap;\\n\tuniform float bumpScale;\\n\tvec2 dHdxy_fwd() {\\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\t\treturn vec2( dBx, dBy );\\n\t}\\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\t\tvec3 vN = surf_norm;\\n\t\tvec3 R1 = cross( vSigmaY, vN );\\n\t\tvec3 R2 = cross( vN, vSigmaX );\\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\t}\\n#endif\";\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\tvec4 plane;\\n\t#ifdef ALPHA_TO_COVERAGE\\n\t\tfloat distanceToPlane, distanceGradient;\\n\t\tfloat clipOpacity = 1.0;\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\t\t\tplane = clippingPlanes[ i ];\\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\t\t\tif ( clipOpacity == 0.0 ) discard;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\t\t\tfloat unionClipOpacity = 1.0;\\n\t\t\t#pragma unroll_loop_start\\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\t\t\t\tplane = clippingPlanes[ i ];\\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\t\t\t}\\n\t\t\t#pragma unroll_loop_end\\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\\n\t\t#endif\\n\t\tdiffuseColor.a *= clipOpacity;\\n\t\tif ( diffuseColor.a == 0.0 ) discard;\\n\t#else\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\t\t\tplane = clippingPlanes[ i ];\\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\t\t\tbool clipped = true;\\n\t\t\t#pragma unroll_loop_start\\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\t\t\t\tplane = clippingPlanes[ i ];\\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\t\t\t}\\n\t\t\t#pragma unroll_loop_end\\n\t\t\tif ( clipped ) discard;\\n\t\t#endif\\n\t#endif\\n#endif\";\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\tvarying vec3 vClipPosition;\\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\tvarying vec3 vClipPosition;\\n#endif\";\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\tvClipPosition = - mvPosition.xyz;\\n#endif\";\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\tdiffuseColor.rgb *= vColor;\\n#endif\";\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\tvarying vec3 vColor;\\n#endif\";\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\tvarying vec3 vColor;\\n#endif\";\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\tfloat precisionSafeLength( vec3 v ) {\\n\t\tfloat maxComponent = max3( abs( v ) );\\n\t\treturn length( v / maxComponent ) * maxComponent;\\n\t}\\n#endif\\nstruct IncidentLight {\\n\tvec3 color;\\n\tvec3 direction;\\n\tbool visible;\\n};\\nstruct ReflectedLight {\\n\tvec3 directDiffuse;\\n\tvec3 directSpecular;\\n\tvec3 indirectDiffuse;\\n\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\tmat3 tmp;\\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\treturn tmp;\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\t#define cubeUV_minMipLevel 4.0\\n\t#define cubeUV_minTileSize 16.0\\n\tfloat getFace( vec3 direction ) {\\n\t\tvec3 absDirection = abs( direction );\\n\t\tfloat face = - 1.0;\\n\t\tif ( absDirection.x > absDirection.z ) {\\n\t\t\tif ( absDirection.x > absDirection.y )\\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\t\t\telse\\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\t\t} else {\\n\t\t\tif ( absDirection.z > absDirection.y )\\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\t\t\telse\\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\t\t}\\n\t\treturn face;\\n\t}\\n\tvec2 getUV( vec3 direction, float face ) {\\n\t\tvec2 uv;\\n\t\tif ( face == 0.0 ) {\\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\t\t} else if ( face == 1.0 ) {\\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\t\t} else if ( face == 2.0 ) {\\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\t\t} else if ( face == 3.0 ) {\\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\t\t} else if ( face == 4.0 ) {\\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\t\t} else {\\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\t\t}\\n\t\treturn 0.5 * ( uv + 1.0 );\\n\t}\\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\t\tfloat face = getFace( direction );\\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\t\tfloat faceSize = exp2( mipInt );\\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\t\tif ( face > 2.0 ) {\\n\t\t\tuv.y += faceSize;\\n\t\t\tface -= 3.0;\\n\t\t}\\n\t\tuv.x += face * faceSize;\\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\t\t#ifdef texture2DGradEXT\\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\t\t#else\\n\t\t\treturn texture2D( envMap, uv ).rgb;\\n\t\t#endif\\n\t}\\n\t#define cubeUV_r0 1.0\\n\t#define cubeUV_m0 - 2.0\\n\t#define cubeUV_r1 0.8\\n\t#define cubeUV_m1 - 1.0\\n\t#define cubeUV_r4 0.4\\n\t#define cubeUV_m4 2.0\\n\t#define cubeUV_r5 0.305\\n\t#define cubeUV_m5 3.0\\n\t#define cubeUV_r6 0.21\\n\t#define cubeUV_m6 4.0\\n\tfloat roughnessToMip( float roughness ) {\\n\t\tfloat mip = 0.0;\\n\t\tif ( roughness >= cubeUV_r1 ) {\\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\t\t} else if ( roughness >= cubeUV_r4 ) {\\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\t\t} else if ( roughness >= cubeUV_r5 ) {\\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\t\t} else if ( roughness >= cubeUV_r6 ) {\\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\t\t} else {\\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\\n\t\treturn mip;\\n\t}\\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\t\tfloat mipF = fract( mip );\\n\t\tfloat mipInt = floor( mip );\\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\t\tif ( mipF == 0.0 ) {\\n\t\t\treturn vec4( color0, 1.0 );\\n\t\t} else {\\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\t\t}\\n\t}\\n#endif\";\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\tmat3 bm = mat3( batchingMatrix );\\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\ttransformedNormal = bm * transformedNormal;\\n\t#ifdef USE_TANGENT\\n\t\ttransformedTangent = bm * transformedTangent;\\n\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\tmat3 im = mat3( instanceMatrix );\\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\ttransformedNormal = im * transformedNormal;\\n\t#ifdef USE_TANGENT\\n\t\ttransformedTangent = im * transformedTangent;\\n\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\t#ifdef FLIP_SIDED\\n\t\ttransformedTangent = - transformedTangent;\\n\t#endif\\n#endif\";\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\tuniform sampler2D displacementMap;\\n\tuniform float displacementScale;\\n\tuniform float displacementBias;\\n#endif\";\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\tuniform sampler2D emissiveMap;\\n#endif\";\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\nvar colorspace_pars_fragment = \"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\t#ifdef ENV_WORLDPOS\\n\t\tvec3 cameraToFrag;\\n\t\tif ( isOrthographic ) {\\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\t\t} else {\\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\t\t}\\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\t\t#ifdef ENVMAP_MODE_REFLECTION\\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\t\t#else\\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\t\t#endif\\n\t#else\\n\t\tvec3 reflectVec = vReflect;\\n\t#endif\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\t#else\\n\t\tvec4 envColor = vec4( 0.0 );\\n\t#endif\\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\t#elif defined( ENVMAP_BLENDING_MIX )\\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\t#elif defined( ENVMAP_BLENDING_ADD )\\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\t#endif\\n#endif\";\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\tuniform float envMapIntensity;\\n\tuniform float flipEnvMap;\\n\tuniform mat3 envMapRotation;\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tuniform samplerCube envMap;\\n\t#else\\n\t\tuniform sampler2D envMap;\\n\t#endif\\n\t\\n#endif\";\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\tuniform float reflectivity;\\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\t\t#define ENV_WORLDPOS\\n\t#endif\\n\t#ifdef ENV_WORLDPOS\\n\t\tvarying vec3 vWorldPosition;\\n\t\tuniform float refractionRatio;\\n\t#else\\n\t\tvarying vec3 vReflect;\\n\t#endif\\n#endif\";\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\t\t#define ENV_WORLDPOS\\n\t#endif\\n\t#ifdef ENV_WORLDPOS\\n\t\t\\n\t\tvarying vec3 vWorldPosition;\\n\t#else\\n\t\tvarying vec3 vReflect;\\n\t\tuniform float refractionRatio;\\n\t#endif\\n#endif\";\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\t#ifdef ENV_WORLDPOS\\n\t\tvWorldPosition = worldPosition.xyz;\\n\t#else\\n\t\tvec3 cameraToVertex;\\n\t\tif ( isOrthographic ) {\\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\t\t} else {\\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\t\t}\\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\t\t#ifdef ENVMAP_MODE_REFLECTION\\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\\n\t\t#else\\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\t\t#endif\\n\t#endif\\n#endif\";\nvar fog_vertex = \"#ifdef USE_FOG\\n\tvFogDepth = - mvPosition.z;\\n#endif\";\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\tvarying float vFogDepth;\\n#endif\";\nvar fog_fragment = \"#ifdef USE_FOG\\n\t#ifdef FOG_EXP2\\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\t#else\\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\t#endif\\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\tuniform vec3 fogColor;\\n\tvarying float vFogDepth;\\n\t#ifdef FOG_EXP2\\n\t\tuniform float fogDensity;\\n\t#else\\n\t\tuniform float fogNear;\\n\t\tuniform float fogFar;\\n\t#endif\\n#endif\";\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\tfloat dotNL = dot( normal, lightDirection );\\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\t#ifdef USE_GRADIENTMAP\\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\\n\t#else\\n\t\tvec2 fw = fwidth( coord ) * 0.5;\\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\t#endif\\n}\";\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\tuniform sampler2D lightMap;\\n\tuniform float lightMapIntensity;\\n#endif\";\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\tvec3 diffuseColor;\\n\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert\";\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\tvec3 irradiance = ambientLightColor;\\n\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\tif ( cutoffDistance > 0.0 ) {\\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\t}\\n\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\tstruct DirectionalLight {\\n\t\tvec3 direction;\\n\t\tvec3 color;\\n\t};\\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\t\tlight.color = directionalLight.color;\\n\t\tlight.direction = directionalLight.direction;\\n\t\tlight.visible = true;\\n\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\tstruct PointLight {\\n\t\tvec3 position;\\n\t\tvec3 color;\\n\t\tfloat distance;\\n\t\tfloat decay;\\n\t};\\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\t\tvec3 lVector = pointLight.position - geometryPosition;\\n\t\tlight.direction = normalize( lVector );\\n\t\tfloat lightDistance = length( lVector );\\n\t\tlight.color = pointLight.color;\\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\tstruct SpotLight {\\n\t\tvec3 position;\\n\t\tvec3 direction;\\n\t\tvec3 color;\\n\t\tfloat distance;\\n\t\tfloat decay;\\n\t\tfloat coneCos;\\n\t\tfloat penumbraCos;\\n\t};\\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\t\tvec3 lVector = spotLight.position - geometryPosition;\\n\t\tlight.direction = normalize( lVector );\\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\t\tif ( spotAttenuation > 0.0 ) {\\n\t\t\tfloat lightDistance = length( lVector );\\n\t\t\tlight.color = spotLight.color * spotAttenuation;\\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\t\t} else {\\n\t\t\tlight.color = vec3( 0.0 );\\n\t\t\tlight.visible = false;\\n\t\t}\\n\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\tstruct RectAreaLight {\\n\t\tvec3 color;\\n\t\tvec3 position;\\n\t\tvec3 halfWidth;\\n\t\tvec3 halfHeight;\\n\t};\\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\tstruct HemisphereLight {\\n\t\tvec3 direction;\\n\t\tvec3 skyColor;\\n\t\tvec3 groundColor;\\n\t};\\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\t\treturn irradiance;\\n\t}\\n#endif\";\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\\n\t\t#else\\n\t\t\treturn vec3( 0.0 );\\n\t\t#endif\\n\t}\\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\t\t\treturn envMapColor.rgb * envMapIntensity;\\n\t\t#else\\n\t\t\treturn vec3( 0.0 );\\n\t\t#endif\\n\t}\\n\t#ifdef USE_ANISOTROPY\\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\t\t\t#else\\n\t\t\t\treturn vec3( 0.0 );\\n\t\t\t#endif\\n\t\t}\\n\t#endif\\n#endif\";\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\";\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\tvec3 diffuseColor;\\n\tvec3 specularColor;\\n\tfloat specularShininess;\\n\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\";\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\tmaterial.ior = ior;\\n\t#ifdef USE_SPECULAR\\n\t\tfloat specularIntensityFactor = specularIntensity;\\n\t\tvec3 specularColorFactor = specularColor;\\n\t\t#ifdef USE_SPECULAR_COLORMAP\\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\t\t#endif\\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\t\t#endif\\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\t#else\\n\t\tfloat specularIntensityFactor = 1.0;\\n\t\tvec3 specularColorFactor = vec3( 1.0 );\\n\t\tmaterial.specularF90 = 1.0;\\n\t#endif\\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tmaterial.clearcoat = clearcoat;\\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\tmaterial.clearcoatF90 = 1.0;\\n\t#ifdef USE_CLEARCOATMAP\\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\t#endif\\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\t#endif\\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\tmaterial.clearcoatRoughness += geometryRoughness;\\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tmaterial.iridescence = iridescence;\\n\tmaterial.iridescenceIOR = iridescenceIOR;\\n\t#ifdef USE_IRIDESCENCEMAP\\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\t#endif\\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\t#else\\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\tmaterial.sheenColor = sheenColor;\\n\t#ifdef USE_SHEEN_COLORMAP\\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\t#endif\\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\t#ifdef USE_ANISOTROPYMAP\\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\t#else\\n\t\tvec2 anisotropyV = anisotropyVector;\\n\t#endif\\n\tmaterial.anisotropy = length( anisotropyV );\\n\tif( material.anisotropy == 0.0 ) {\\n\t\tanisotropyV = vec2( 1.0, 0.0 );\\n\t} else {\\n\t\tanisotropyV /= material.anisotropy;\\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\\n\t}\\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\tvec3 diffuseColor;\\n\tfloat roughness;\\n\tvec3 specularColor;\\n\tfloat specularF90;\\n\tfloat dispersion;\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat clearcoat;\\n\t\tfloat clearcoatRoughness;\\n\t\tvec3 clearcoatF0;\\n\t\tfloat clearcoatF90;\\n\t#endif\\n\t#ifdef USE_IRIDESCENCE\\n\t\tfloat iridescence;\\n\t\tfloat iridescenceIOR;\\n\t\tfloat iridescenceThickness;\\n\t\tvec3 iridescenceFresnel;\\n\t\tvec3 iridescenceF0;\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tvec3 sheenColor;\\n\t\tfloat sheenRoughness;\\n\t#endif\\n\t#ifdef IOR\\n\t\tfloat ior;\\n\t#endif\\n\t#ifdef USE_TRANSMISSION\\n\t\tfloat transmission;\\n\t\tfloat transmissionAlpha;\\n\t\tfloat thickness;\\n\t\tfloat attenuationDistance;\\n\t\tvec3 attenuationColor;\\n\t#endif\\n\t#ifdef USE_ANISOTROPY\\n\t\tfloat anisotropy;\\n\t\tfloat alphaT;\\n\t\tvec3 anisotropyT;\\n\t\tvec3 anisotropyB;\\n\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n    float x2 = x * x;\\n    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\tfloat a2 = pow2( alpha );\\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\tfloat a2 = pow2( alpha );\\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\t\tfloat v = 0.5 / ( gv + gl );\\n\t\treturn saturate(v);\\n\t}\\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\t\tfloat a2 = alphaT * alphaB;\\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\t\thighp float v2 = dot( v, v );\\n\t\tfloat w2 = a2 / v2;\\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\t\tvec3 f0 = material.clearcoatF0;\\n\t\tfloat f90 = material.clearcoatF90;\\n\t\tfloat roughness = material.clearcoatRoughness;\\n\t\tfloat alpha = pow2( roughness );\\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\t\tfloat D = D_GGX( alpha, dotNH );\\n\t\treturn F * ( V * D );\\n\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\tvec3 f0 = material.specularColor;\\n\tfloat f90 = material.specularF90;\\n\tfloat roughness = material.roughness;\\n\tfloat alpha = pow2( roughness );\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\t#ifdef USE_IRIDESCENCE\\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\t#endif\\n\t#ifdef USE_ANISOTROPY\\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\t#else\\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\t\tfloat D = D_GGX( alpha, dotNH );\\n\t#endif\\n\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\tconst float LUT_SIZE = 64.0;\\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\tfloat dotNV = saturate( dot( N, V ) );\\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\tfloat l = length( f );\\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\tfloat x = dot( v1, v2 );\\n\tfloat y = abs( x );\\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\tfloat v = a / b;\\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\tvec3 lightNormal = cross( v1, v2 );\\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\tvec3 T1, T2;\\n\tT1 = normalize( V - N * dot( V, N ) );\\n\tT2 = - cross( N, T1 );\\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\tvec3 coords[ 4 ];\\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\tvec3 vectorFormFactor = vec3( 0.0 );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\tfloat alpha = pow2( roughness );\\n\tfloat invAlpha = 1.0 / alpha;\\n\tfloat cos2h = dotNH * dotNH;\\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\tfloat V = V_Neubelt( dotNV, dotNL );\\n\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat r2 = roughness * roughness;\\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\tvec4 r = roughness * c0 + c1;\\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\t#ifdef USE_IRIDESCENCE\\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\t#else\\n\t\tvec3 Fr = specularColor;\\n\t#endif\\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\tfloat Ess = fab.x + fab.y;\\n\tfloat Ems = 1.0 - Ess;\\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\tsingleScatter += FssEss;\\n\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\t\tvec3 normal = geometryNormal;\\n\t\tvec3 viewDir = geometryViewDir;\\n\t\tvec3 position = geometryPosition;\\n\t\tvec3 lightPos = rectAreaLight.position;\\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\t\tvec3 lightColor = rectAreaLight.color;\\n\t\tfloat roughness = material.roughness;\\n\t\tvec3 rectCoords[ 4 ];\\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\t\tvec4 t1 = texture2D( ltc_1, uv );\\n\t\tvec4 t2 = texture2D( ltc_2, uv );\\n\t\tmat3 mInv = mat3(\\n\t\t\tvec3( t1.x, 0, t1.y ),\\n\t\t\tvec3(    0, 1,    0 ),\\n\t\t\tvec3( t1.z, 0, t1.w )\\n\t\t);\\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\t#endif\\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\t#ifdef USE_CLEARCOAT\\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\t#endif\\n\tvec3 singleScattering = vec3( 0.0 );\\n\tvec3 multiScattering = vec3( 0.0 );\\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\t#ifdef USE_IRIDESCENCE\\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\t#else\\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\t#endif\\n\tvec3 totalScattering = singleScattering + multiScattering;\\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Physical\\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\tif ( material.iridescenceThickness == 0.0 ) {\\n\t\tmaterial.iridescence = 0.0;\\n\t} else {\\n\t\tmaterial.iridescence = saturate( material.iridescence );\\n\t}\\n\tif ( material.iridescence > 0.0 ) {\\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\tPointLight pointLight;\\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\tPointLightShadow pointLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\t\tpointLight = pointLights[ i ];\\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\t\tpointLightShadow = pointLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\tSpotLight spotLight;\\n\tvec4 spotColor;\\n\tvec3 spotLightCoord;\\n\tbool inSpotLightMap;\\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\tSpotLightShadow spotLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\t\tspotLight = spotLights[ i ];\\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\t\t#else\\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\t\t#endif\\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\t\t#endif\\n\t\t#undef SPOT_LIGHT_MAP_INDEX\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\tspotLightShadow = spotLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\tDirectionalLight directionalLight;\\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\tDirectionalLightShadow directionalLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\t\tdirectionalLight = directionalLights[ i ];\\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\tRectAreaLight rectAreaLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\t\trectAreaLight = rectAreaLights[ i ];\\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\tvec3 iblIrradiance = vec3( 0.0 );\\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\t#if defined( USE_LIGHT_PROBES )\\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\t#endif\\n\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\tvec3 radiance = vec3( 0.0 );\\n\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\t#ifdef USE_LIGHTMAP\\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\t\tirradiance += lightMapIrradiance;\\n\t#endif\\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\t#ifdef USE_ANISOTROPY\\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\t#else\\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\t#endif\\n\t#ifdef USE_CLEARCOAT\\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\t#endif\\n#endif\";\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\tuniform float logDepthBufFC;\\n\tvarying float vFragDepth;\\n\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\tvarying float vFragDepth;\\n\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\tvFragDepth = 1.0 + gl_Position.w;\\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\nvar map_fragment = \"#ifdef USE_MAP\\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\t#ifdef DECODE_VIDEO_TEXTURE\\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\t\\n\t#endif\\n\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\tuniform sampler2D map;\\n#endif\";\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\t#if defined( USE_POINTS_UV )\\n\t\tvec2 uv = vUv;\\n\t#else\\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\t#endif\\n#endif\\n#ifdef USE_MAP\\n\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\tvarying vec2 vUv;\\n#else\\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\t\tuniform mat3 uvTransform;\\n\t#endif\\n#endif\\n#ifdef USE_MAP\\n\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tuniform sampler2D alphaMap;\\n#endif\";\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\tuniform sampler2D metalnessMap;\\n#endif\";\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tmorphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\t}\\n#endif\";\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\tvColor *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\t#if defined( USE_COLOR_ALPHA )\\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\t\t#elif defined( USE_COLOR )\\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\t\t#endif\\n\t}\\n#endif\";\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\tobjectNormal *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\t}\\n#endif\";\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\t#ifndef USE_INSTANCING_MORPH\\n\t\tuniform float morphTargetBaseInfluence;\\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\t#endif\\n\tuniform sampler2DArray morphTargetsTexture;\\n\tuniform ivec2 morphTargetsTextureSize;\\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\t}\\n#endif\";\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\ttransformed *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\t}\\n#endif\";\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\tvec3 fdx = dFdx( vViewPosition );\\n\tvec3 fdy = dFdy( vViewPosition );\\n\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\tvec3 normal = normalize( vNormal );\\n\t#ifdef DOUBLE_SIDED\\n\t\tnormal *= faceDirection;\\n\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\t#ifdef USE_TANGENT\\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\t#else\\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\t\t#if defined( USE_NORMALMAP )\\n\t\t\tvNormalMapUv\\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\t\t\tvClearcoatNormalMapUv\\n\t\t#else\\n\t\t\tvUv\\n\t\t#endif\\n\t\t);\\n\t#endif\\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\t\ttbn[0] *= faceDirection;\\n\t\ttbn[1] *= faceDirection;\\n\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\t#ifdef USE_TANGENT\\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\t#else\\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\t#endif\\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\t\ttbn2[0] *= faceDirection;\\n\t\ttbn2[1] *= faceDirection;\\n\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\t#ifdef FLIP_SIDED\\n\t\tnormal = - normal;\\n\t#endif\\n\t#ifdef DOUBLE_SIDED\\n\t\tnormal = normal * faceDirection;\\n\t#endif\\n\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\tmapN.xy *= normalScale;\\n\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n\t#ifdef USE_TANGENT\\n\t\tvarying vec3 vTangent;\\n\t\tvarying vec3 vBitangent;\\n\t#endif\\n#endif\";\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n\t#ifdef USE_TANGENT\\n\t\tvarying vec3 vTangent;\\n\t\tvarying vec3 vBitangent;\\n\t#endif\\n#endif\";\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\tvNormal = normalize( transformedNormal );\\n\t#ifdef USE_TANGENT\\n\t\tvTangent = normalize( transformedTangent );\\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\t#endif\\n#endif\";\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\tuniform sampler2D normalMap;\\n\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\\n\t\tvec2 st0 = dFdx( uv.st );\\n\t\tvec2 st1 = dFdy( uv.st );\\n\t\tvec3 N = surf_norm;\\n\t\tvec3 q1perp = cross( q1, N );\\n\t\tvec3 q0perp = cross( N, q0 );\\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\t\treturn mat3( T * scale, B * scale, N );\\n\t}\\n#endif\";\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tuniform sampler2D clearcoatNormalMap;\\n\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec4( 0., 0., 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec4( 1., 1., 1., 1. );\\n\tfloat vuf;\\n\tfloat af = modf( v * PackFactors.a, vuf );\\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec3( 0., 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec3( 1., 1., 1. );\\n\tfloat vuf;\\n\tfloat bf = modf( v * PackFactors.b, vuf );\\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec2( 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec2( 1., 1. );\\n\tfloat vuf;\\n\tfloat gf = modf( v * 256., vuf );\\n\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in vec2 v ) {\\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( const in vec4 v ) {\\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\nvar dithering_fragment = \"#ifdef DITHERING\\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\tvec3 dithering( vec3 color ) {\\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\t\treturn color + dither_shift_RGB;\\n\t}\\n#endif\";\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\troughnessFactor *= texelRoughness.g;\\n#endif\";\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\tuniform sampler2D roughnessMap;\\n#endif\";\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tstruct DirectionalLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t\tstruct SpotLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tstruct PointLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t\tfloat shadowCameraNear;\\n\t\t\tfloat shadowCameraFar;\\n\t\t};\\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\t#endif\\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\t}\\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\t}\\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\t\tfloat occlusion = 1.0;\\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\t\tfloat hard_shadow = step( compare , distribution.x );\\n\t\tif (hard_shadow != 1.0 ) {\\n\t\t\tfloat distance = compare - distribution.x ;\\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\t\t}\\n\t\treturn occlusion;\\n\t}\\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\t\tfloat shadow = 1.0;\\n\t\tshadowCoord.xyz /= shadowCoord.w;\\n\t\tshadowCoord.z += shadowBias;\\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\t\tif ( frustumTest ) {\\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\\n\t\t\tfloat dx2 = dx0 / 2.0;\\n\t\t\tfloat dy2 = dy0 / 2.0;\\n\t\t\tfloat dx3 = dx1 / 2.0;\\n\t\t\tfloat dy3 = dy1 / 2.0;\\n\t\t\tshadow = (\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\t\t\t) * ( 1.0 / 17.0 );\\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\t\t\tfloat dx = texelSize.x;\\n\t\t\tfloat dy = texelSize.y;\\n\t\t\tvec2 uv = shadowCoord.xy;\\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\t\t\tuv -= f * texelSize;\\n\t\t\tshadow = (\\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\t\t\t\t\t f.x ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\t\t\t\t\t f.x ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t f.y ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t f.y ) +\\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  f.x ),\\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  f.x ),\\n\t\t\t\t\t f.y )\\n\t\t\t) * ( 1.0 / 9.0 );\\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\t\t#else\\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\t\t#endif\\n\t\t}\\n\t\treturn mix( 1.0, shadow, shadowIntensity );\\n\t}\\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\t\tvec3 absV = abs( v );\\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\t\tabsV *= scaleToCube;\\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\t\tvec2 planar = v.xy;\\n\t\tfloat almostATexel = 1.5 * texelSizeY;\\n\t\tfloat almostOne = 1.0 - almostATexel;\\n\t\tif ( absV.z >= almostOne ) {\\n\t\t\tif ( v.z > 0.0 )\\n\t\t\t\tplanar.x = 4.0 - v.x;\\n\t\t} else if ( absV.x >= almostOne ) {\\n\t\t\tfloat signX = sign( v.x );\\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\\n\t\t} else if ( absV.y >= almostOne ) {\\n\t\t\tfloat signY = sign( v.y );\\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\t\t\tplanar.y = v.z * signY - 2.0;\\n\t\t}\\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\t}\\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\t\tfloat shadow = 1.0;\\n\t\tvec3 lightToPosition = shadowCoord.xyz;\\n\t\t\\n\t\tfloat lightToPositionLength = length( lightToPosition );\\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\\n\t\t\tvec3 bd3D = normalize( lightToPosition );\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\t\t\t\tshadow = (\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\t\t\t\t) * ( 1.0 / 9.0 );\\n\t\t\t#else\\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\t\t\t#endif\\n\t\t}\\n\t\treturn mix( 1.0, shadow, shadowIntensity );\\n\t}\\n#endif\";\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tstruct DirectionalLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\t\tstruct SpotLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tstruct PointLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t\tfloat shadowCameraNear;\\n\t\t\tfloat shadowCameraFar;\\n\t\t};\\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\t#endif\\n#endif\";\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\t\tshadowWorldPosition = worldPosition;\\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\t\t#endif\\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\";\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\tfloat shadow = 1.0;\\n\t#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\tDirectionalLightShadow directionalLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\t\tdirectionalLight = directionalLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\tSpotLightShadow spotLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\t\tspotLight = spotLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\tPointLightShadow pointLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\t\tpointLight = pointLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#endif\\n\treturn shadow;\\n}\";\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\tuniform mat4 bindMatrix;\\n\tuniform mat4 bindMatrixInverse;\\n\tuniform highp sampler2D boneTexture;\\n\tmat4 getBoneMatrix( const in float i ) {\\n\t\tint size = textureSize( boneTexture, 0 ).x;\\n\t\tint j = int( i ) * 4;\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\t\treturn mat4( v1, v2, v3, v4 );\\n\t}\\n#endif\";\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\tvec4 skinned = vec4( 0.0 );\\n\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\tmat4 skinMatrix = mat4( 0.0 );\\n\tskinMatrix += skinWeight.x * boneMatX;\\n\tskinMatrix += skinWeight.y * boneMatY;\\n\tskinMatrix += skinWeight.z * boneMatZ;\\n\tskinMatrix += skinWeight.w * boneMatW;\\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\t#ifdef USE_TANGENT\\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\t#endif\\n#endif\";\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\tspecularStrength = texelSpecular.r;\\n#else\\n\tspecularStrength = 1.0;\\n#endif\";\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\tuniform sampler2D specularMap;\\n#endif\";\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\tcolor *= toneMappingExposure;\\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 CineonToneMapping( vec3 color ) {\\n\tcolor *= toneMappingExposure;\\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\tconst mat3 ACESInputMat = mat3(\\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\\n\t);\\n\tconst mat3 ACESOutputMat = mat3(\\n\t\tvec3(  1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\t\tvec3( -0.07367, -0.00605,  1.07602 )\\n\t);\\n\tcolor *= toneMappingExposure / 0.6;\\n\tcolor = ACESInputMat * color;\\n\tcolor = RRTAndODTFit( color );\\n\tcolor = ACESOutputMat * color;\\n\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\tvec3 x2 = x * x;\\n\tvec3 x4 = x2 * x2;\\n\treturn + 15.5 * x4 * x2\\n\t\t- 40.14 * x4 * x\\n\t\t+ 31.96 * x4\\n\t\t- 6.868 * x2 * x\\n\t\t+ 0.4298 * x2\\n\t\t+ 0.1191 * x\\n\t\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\tconst mat3 AgXInsetMatrix = mat3(\\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\t);\\n\tconst mat3 AgXOutsetMatrix = mat3(\\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\t);\\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\\n\tcolor *= toneMappingExposure;\\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\tcolor = AgXInsetMatrix * color;\\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\tcolor = clamp( color, 0.0, 1.0 );\\n\tcolor = agxDefaultContrastApprox( color );\\n\tcolor = AgXOutsetMatrix * color;\\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\tcolor = clamp( color, 0.0, 1.0 );\\n\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\tconst float StartCompression = 0.8 - 0.04;\\n\tconst float Desaturation = 0.15;\\n\tcolor *= toneMappingExposure;\\n\tfloat x = min( color.r, min( color.g, color.b ) );\\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\tcolor -= offset;\\n\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\tif ( peak < StartCompression ) return color;\\n\tfloat d = 1. - StartCompression;\\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\tcolor *= newPeak / peak;\\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\tmaterial.transmission = transmission;\\n\tmaterial.transmissionAlpha = 1.0;\\n\tmaterial.thickness = thickness;\\n\tmaterial.attenuationDistance = attenuationDistance;\\n\tmaterial.attenuationColor = attenuationColor;\\n\t#ifdef USE_TRANSMISSIONMAP\\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\t#endif\\n\t#ifdef USE_THICKNESSMAP\\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\t#endif\\n\tvec3 pos = vWorldPosition;\\n\tvec3 v = normalize( cameraPosition - pos );\\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\tvec4 transmitted = getIBLVolumeRefraction(\\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\t\tmaterial.attenuationColor, material.attenuationDistance );\\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\tuniform float transmission;\\n\tuniform float thickness;\\n\tuniform float attenuationDistance;\\n\tuniform vec3 attenuationColor;\\n\t#ifdef USE_TRANSMISSIONMAP\\n\t\tuniform sampler2D transmissionMap;\\n\t#endif\\n\t#ifdef USE_THICKNESSMAP\\n\t\tuniform sampler2D thicknessMap;\\n\t#endif\\n\tuniform vec2 transmissionSamplerSize;\\n\tuniform sampler2D transmissionSamplerMap;\\n\tuniform mat4 modelMatrix;\\n\tuniform mat4 projectionMatrix;\\n\tvarying vec3 vWorldPosition;\\n\tfloat w0( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\t}\\n\tfloat w1( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\t}\\n\tfloat w2( float a ){\\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\t}\\n\tfloat w3( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\t}\\n\tfloat g0( float a ) {\\n\t\treturn w0( a ) + w1( a );\\n\t}\\n\tfloat g1( float a ) {\\n\t\treturn w2( a ) + w3( a );\\n\t}\\n\tfloat h0( float a ) {\\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\t}\\n\tfloat h1( float a ) {\\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\t}\\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\t\tuv = uv * texelSize.zw + 0.5;\\n\t\tvec2 iuv = floor( uv );\\n\t\tvec2 fuv = fract( uv );\\n\t\tfloat g0x = g0( fuv.x );\\n\t\tfloat g1x = g1( fuv.x );\\n\t\tfloat h0x = h0( fuv.x );\\n\t\tfloat h1x = h1( fuv.x );\\n\t\tfloat h0y = h0( fuv.y );\\n\t\tfloat h1y = h1( fuv.y );\\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\t}\\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\t\treturn mix( fSample, cSample, fract( lod ) );\\n\t}\\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\t\tvec3 modelScale;\\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\\n\t}\\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\t}\\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\t}\\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\t\tif ( isinf( attenuationDistance ) ) {\\n\t\t\treturn vec3( 1.0 );\\n\t\t} else {\\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\\n\t\t}\\n\t}\\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\t\tvec4 transmittedLight;\\n\t\tvec3 transmittance;\\n\t\t#ifdef USE_DISPERSION\\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\\n\t\t\\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\t\t\t\trefractionCoords += 1.0;\\n\t\t\t\trefractionCoords /= 2.0;\\n\t\t\\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\t\t\t}\\n\t\t\ttransmittedLight.a /= 3.0;\\n\t\t\\n\t\t#else\\n\t\t\\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\t\t\trefractionCoords += 1.0;\\n\t\t\trefractionCoords /= 2.0;\\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\t\t\\n\t\t#endif\\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\t}\\n#endif\";\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tuniform mat3 transmissionMapTransform;\\n\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tuniform mat3 thicknessMapTransform;\\n\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\tuniform mat3 mapTransform;\\n\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tuniform mat3 alphaMapTransform;\\n\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tuniform mat3 lightMapTransform;\\n\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\tuniform mat3 aoMapTransform;\\n\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tuniform mat3 bumpMapTransform;\\n\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tuniform mat3 normalMapTransform;\\n\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\tuniform mat3 displacementMapTransform;\\n\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tuniform mat3 emissiveMapTransform;\\n\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tuniform mat3 metalnessMapTransform;\\n\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tuniform mat3 roughnessMapTransform;\\n\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tuniform mat3 anisotropyMapTransform;\\n\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tuniform mat3 clearcoatMapTransform;\\n\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tuniform mat3 clearcoatNormalMapTransform;\\n\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tuniform mat3 clearcoatRoughnessMapTransform;\\n\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tuniform mat3 sheenColorMapTransform;\\n\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tuniform mat3 sheenRoughnessMapTransform;\\n\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tuniform mat3 iridescenceMapTransform;\\n\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tuniform mat3 iridescenceThicknessMapTransform;\\n\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tuniform mat3 specularMapTransform;\\n\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tuniform mat3 specularColorMapTransform;\\n\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tuniform mat3 specularIntensityMapTransform;\\n\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tuniform mat3 transmissionMapTransform;\\n\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tuniform mat3 thicknessMapTransform;\\n\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\t#ifdef USE_BATCHING\\n\t\tworldPosition = batchingMatrix * worldPosition;\\n\t#endif\\n\t#ifdef USE_INSTANCING\\n\t\tworldPosition = instanceMatrix * worldPosition;\\n\t#endif\\n\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\nvar vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\nvar fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\tvec4 texColor = texture2D( t2D, vUv );\\n\t#ifdef DECODE_VIDEO_TEXTURE\\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\t#endif\\n\ttexColor.rgb *= backgroundIntensity;\\n\tgl_FragColor = texColor;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$g = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\t#else\\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\t#endif\\n\ttexColor.rgb *= backgroundIntensity;\\n\tgl_FragColor = texColor;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$f = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\tgl_FragColor = texColor;\\n\tgl_FragColor.a *= opacity;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$e = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <morphinstance_vertex>\\n\t#ifdef USE_DISPLACEMENTMAP\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvHighPrecisionZW = gl_Position.zw;\\n}\";\nvar fragment$e = \"#if DEPTH_PACKING == 3200\\n\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\tvec4 diffuseColor = vec4( 1.0 );\\n\t#include <clipping_planes_fragment>\\n\t#if DEPTH_PACKING == 3200\\n\t\tdiffuseColor.a = opacity;\\n\t#endif\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <logdepthbuf_fragment>\\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\t#if DEPTH_PACKING == 3200\\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\t#elif DEPTH_PACKING == 3201\\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\t#elif DEPTH_PACKING == 3202\\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\t#elif DEPTH_PACKING == 3203\\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\t#endif\\n}\";\nvar vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <morphinstance_vertex>\\n\t#ifdef USE_DISPLACEMENTMAP\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvWorldPosition = worldPosition.xyz;\\n}\";\nvar fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\tvec4 diffuseColor = vec4( 1.0 );\\n\t#include <clipping_planes_fragment>\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\tfloat dist = length( vWorldPosition - referencePosition );\\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\tdist = saturate( dist );\\n\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\nvar vertex$c = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n}\";\nvar fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvec3 direction = normalize( vWorldDirection );\\n\tvec2 sampleUV = equirectUv( direction );\\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\tvLineDistance = scale * lineDistance;\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\t\tdiscard;\\n\t}\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n}\";\nvar vertex$a = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinbase_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t\t#include <defaultnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\t#ifdef USE_LIGHTMAP\\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\t#else\\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\t#endif\\n\t#include <aomap_fragment>\\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_lambert_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_lambert_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n}\";\nvar fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\tvec3 viewDir = normalize( vViewPosition );\\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\tvec3 y = cross( viewDir, x );\\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\t#ifdef USE_MATCAP\\n\t\tvec4 matcapColor = texture2D( matcap, uv );\\n\t#else\\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\t#endif\\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\nvar fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvarying vec3 vViewPosition;\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\t#ifdef OPAQUE\\n\t\tgl_FragColor.a = 1.0;\\n\t#endif\\n}\";\nvar vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_phong_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\nvar fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\t#define IOR\\n\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\tuniform float specularIntensity;\\n\tuniform vec3 specularColor;\\n\t#ifdef USE_SPECULAR_COLORMAP\\n\t\tuniform sampler2D specularColorMap;\\n\t#endif\\n\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\t\tuniform sampler2D specularIntensityMap;\\n\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tuniform float clearcoat;\\n\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tuniform float iridescence;\\n\tuniform float iridescenceIOR;\\n\tuniform float iridescenceThicknessMinimum;\\n\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\tuniform vec3 sheenColor;\\n\tuniform float sheenRoughness;\\n\t#ifdef USE_SHEEN_COLORMAP\\n\t\tuniform sampler2D sheenColorMap;\\n\t#endif\\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\t\tuniform sampler2D sheenRoughnessMap;\\n\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\tuniform vec2 anisotropyVector;\\n\t#ifdef USE_ANISOTROPYMAP\\n\t\tuniform sampler2D anisotropyMap;\\n\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <iridescence_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <iridescence_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <roughnessmap_fragment>\\n\t#include <metalnessmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <clearcoat_normal_fragment_begin>\\n\t#include <clearcoat_normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_physical_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\t#include <transmission_fragment>\\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\t#ifdef USE_SHEEN\\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\t#endif\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\t#endif\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_toon_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n#ifdef USE_POINTS_UV\\n\tvarying vec2 vUv;\\n\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\t#ifdef USE_POINTS_UV\\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\t#endif\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <project_vertex>\\n\tgl_PointSize = size;\\n\t#ifdef USE_SIZEATTENUATION\\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\t#endif\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_particle_fragment>\\n\t#include <color_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n}\";\nvar vertex$2 = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <logdepthbuf_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\t#include <logdepthbuf_fragment>\\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n}\";\nvar vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\tvec4 mvPosition = modelViewMatrix[ 3 ];\\n\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\\n\t#ifndef USE_SIZEATTENUATION\\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\\n\t#endif\\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\tvec2 rotatedPosition;\\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\tmvPosition.xy += rotatedPosition;\\n\tgl_Position = projectionMatrix * mvPosition;\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n}\";\nvar ShaderChunk = {\n  alphahash_fragment,\n  alphahash_pars_fragment,\n  alphamap_fragment,\n  alphamap_pars_fragment,\n  alphatest_fragment,\n  alphatest_pars_fragment,\n  aomap_fragment,\n  aomap_pars_fragment,\n  batching_pars_vertex,\n  batching_vertex,\n  begin_vertex,\n  beginnormal_vertex,\n  bsdfs,\n  iridescence_fragment,\n  bumpmap_pars_fragment,\n  clipping_planes_fragment,\n  clipping_planes_pars_fragment,\n  clipping_planes_pars_vertex,\n  clipping_planes_vertex,\n  color_fragment,\n  color_pars_fragment,\n  color_pars_vertex,\n  color_vertex,\n  common,\n  cube_uv_reflection_fragment,\n  defaultnormal_vertex,\n  displacementmap_pars_vertex,\n  displacementmap_vertex,\n  emissivemap_fragment,\n  emissivemap_pars_fragment,\n  colorspace_fragment,\n  colorspace_pars_fragment,\n  envmap_fragment,\n  envmap_common_pars_fragment,\n  envmap_pars_fragment,\n  envmap_pars_vertex,\n  envmap_physical_pars_fragment,\n  envmap_vertex,\n  fog_vertex,\n  fog_pars_vertex,\n  fog_fragment,\n  fog_pars_fragment,\n  gradientmap_pars_fragment,\n  lightmap_pars_fragment,\n  lights_lambert_fragment,\n  lights_lambert_pars_fragment,\n  lights_pars_begin,\n  lights_toon_fragment,\n  lights_toon_pars_fragment,\n  lights_phong_fragment,\n  lights_phong_pars_fragment,\n  lights_physical_fragment,\n  lights_physical_pars_fragment,\n  lights_fragment_begin,\n  lights_fragment_maps,\n  lights_fragment_end,\n  logdepthbuf_fragment,\n  logdepthbuf_pars_fragment,\n  logdepthbuf_pars_vertex,\n  logdepthbuf_vertex,\n  map_fragment,\n  map_pars_fragment,\n  map_particle_fragment,\n  map_particle_pars_fragment,\n  metalnessmap_fragment,\n  metalnessmap_pars_fragment,\n  morphinstance_vertex,\n  morphcolor_vertex,\n  morphnormal_vertex,\n  morphtarget_pars_vertex,\n  morphtarget_vertex,\n  normal_fragment_begin,\n  normal_fragment_maps,\n  normal_pars_fragment,\n  normal_pars_vertex,\n  normal_vertex,\n  normalmap_pars_fragment,\n  clearcoat_normal_fragment_begin,\n  clearcoat_normal_fragment_maps,\n  clearcoat_pars_fragment,\n  iridescence_pars_fragment,\n  opaque_fragment,\n  packing,\n  premultiplied_alpha_fragment,\n  project_vertex,\n  dithering_fragment,\n  dithering_pars_fragment,\n  roughnessmap_fragment,\n  roughnessmap_pars_fragment,\n  shadowmap_pars_fragment,\n  shadowmap_pars_vertex,\n  shadowmap_vertex,\n  shadowmask_pars_fragment,\n  skinbase_vertex,\n  skinning_pars_vertex,\n  skinning_vertex,\n  skinnormal_vertex,\n  specularmap_fragment,\n  specularmap_pars_fragment,\n  tonemapping_fragment,\n  tonemapping_pars_fragment,\n  transmission_fragment,\n  transmission_pars_fragment,\n  uv_pars_fragment,\n  uv_pars_vertex,\n  uv_vertex,\n  worldpos_vertex,\n  background_vert: vertex$h,\n  background_frag: fragment$h,\n  backgroundCube_vert: vertex$g,\n  backgroundCube_frag: fragment$g,\n  cube_vert: vertex$f,\n  cube_frag: fragment$f,\n  depth_vert: vertex$e,\n  depth_frag: fragment$e,\n  distanceRGBA_vert: vertex$d,\n  distanceRGBA_frag: fragment$d,\n  equirect_vert: vertex$c,\n  equirect_frag: fragment$c,\n  linedashed_vert: vertex$b,\n  linedashed_frag: fragment$b,\n  meshbasic_vert: vertex$a,\n  meshbasic_frag: fragment$a,\n  meshlambert_vert: vertex$9,\n  meshlambert_frag: fragment$9,\n  meshmatcap_vert: vertex$8,\n  meshmatcap_frag: fragment$8,\n  meshnormal_vert: vertex$7,\n  meshnormal_frag: fragment$7,\n  meshphong_vert: vertex$6,\n  meshphong_frag: fragment$6,\n  meshphysical_vert: vertex$5,\n  meshphysical_frag: fragment$5,\n  meshtoon_vert: vertex$4,\n  meshtoon_frag: fragment$4,\n  points_vert: vertex$3,\n  points_frag: fragment$3,\n  shadow_vert: vertex$2,\n  shadow_frag: fragment$2,\n  sprite_vert: vertex$1,\n  sprite_frag: fragment$1\n};\nvar UniformsLib = {\n  common: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    map: { value: null },\n    mapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 }\n  },\n  specularmap: {\n    specularMap: { value: null },\n    specularMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  envmap: {\n    envMap: { value: null },\n    envMapRotation: { value: /* @__PURE__ */ new Matrix3() },\n    flipEnvMap: { value: -1 },\n    reflectivity: { value: 1 },\n    // basic, lambert, phong\n    ior: { value: 1.5 },\n    // physical\n    refractionRatio: { value: 0.98 }\n    // basic, lambert, phong\n  },\n  aomap: {\n    aoMap: { value: null },\n    aoMapIntensity: { value: 1 },\n    aoMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  lightmap: {\n    lightMap: { value: null },\n    lightMapIntensity: { value: 1 },\n    lightMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  bumpmap: {\n    bumpMap: { value: null },\n    bumpMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    bumpScale: { value: 1 }\n  },\n  normalmap: {\n    normalMap: { value: null },\n    normalMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    normalScale: { value: /* @__PURE__ */ new Vector2(1, 1) }\n  },\n  displacementmap: {\n    displacementMap: { value: null },\n    displacementMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    displacementScale: { value: 1 },\n    displacementBias: { value: 0 }\n  },\n  emissivemap: {\n    emissiveMap: { value: null },\n    emissiveMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  metalnessmap: {\n    metalnessMap: { value: null },\n    metalnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  roughnessmap: {\n    roughnessMap: { value: null },\n    roughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  gradientmap: {\n    gradientMap: { value: null }\n  },\n  fog: {\n    fogDensity: { value: 25e-5 },\n    fogNear: { value: 1 },\n    fogFar: { value: 2e3 },\n    fogColor: { value: /* @__PURE__ */ new Color(16777215) }\n  },\n  lights: {\n    ambientLightColor: { value: [] },\n    lightProbe: { value: [] },\n    directionalLights: { value: [], properties: {\n      direction: {},\n      color: {}\n    } },\n    directionalLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {}\n    } },\n    directionalShadowMap: { value: [] },\n    directionalShadowMatrix: { value: [] },\n    spotLights: { value: [], properties: {\n      color: {},\n      position: {},\n      direction: {},\n      distance: {},\n      coneCos: {},\n      penumbraCos: {},\n      decay: {}\n    } },\n    spotLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {}\n    } },\n    spotLightMap: { value: [] },\n    spotShadowMap: { value: [] },\n    spotLightMatrix: { value: [] },\n    pointLights: { value: [], properties: {\n      color: {},\n      position: {},\n      decay: {},\n      distance: {}\n    } },\n    pointLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {},\n      shadowCameraNear: {},\n      shadowCameraFar: {}\n    } },\n    pointShadowMap: { value: [] },\n    pointShadowMatrix: { value: [] },\n    hemisphereLights: { value: [], properties: {\n      direction: {},\n      skyColor: {},\n      groundColor: {}\n    } },\n    // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n    rectAreaLights: { value: [], properties: {\n      color: {},\n      position: {},\n      width: {},\n      height: {}\n    } },\n    ltc_1: { value: null },\n    ltc_2: { value: null }\n  },\n  points: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    size: { value: 1 },\n    scale: { value: 1 },\n    map: { value: null },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 },\n    uvTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  sprite: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    center: { value: /* @__PURE__ */ new Vector2(0.5, 0.5) },\n    rotation: { value: 0 },\n    map: { value: null },\n    mapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 }\n  }\n};\nvar ShaderLib = {\n  basic: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.meshbasic_vert,\n    fragmentShader: ShaderChunk.meshbasic_frag\n  },\n  lambert: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshlambert_vert,\n    fragmentShader: ShaderChunk.meshlambert_frag\n  },\n  phong: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) },\n        specular: { value: /* @__PURE__ */ new Color(1118481) },\n        shininess: { value: 30 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshphong_vert,\n    fragmentShader: ShaderChunk.meshphong_frag\n  },\n  standard: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.roughnessmap,\n      UniformsLib.metalnessmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) },\n        roughness: { value: 1 },\n        metalness: { value: 0 },\n        envMapIntensity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshphysical_vert,\n    fragmentShader: ShaderChunk.meshphysical_frag\n  },\n  toon: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.gradientmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshtoon_vert,\n    fragmentShader: ShaderChunk.meshtoon_frag\n  },\n  matcap: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      {\n        matcap: { value: null }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshmatcap_vert,\n    fragmentShader: ShaderChunk.meshmatcap_frag\n  },\n  points: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.points,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.points_vert,\n    fragmentShader: ShaderChunk.points_frag\n  },\n  dashed: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.fog,\n      {\n        scale: { value: 1 },\n        dashSize: { value: 1 },\n        totalSize: { value: 2 }\n      }\n    ]),\n    vertexShader: ShaderChunk.linedashed_vert,\n    fragmentShader: ShaderChunk.linedashed_frag\n  },\n  depth: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.displacementmap\n    ]),\n    vertexShader: ShaderChunk.depth_vert,\n    fragmentShader: ShaderChunk.depth_frag\n  },\n  normal: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      {\n        opacity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshnormal_vert,\n    fragmentShader: ShaderChunk.meshnormal_frag\n  },\n  sprite: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.sprite,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.sprite_vert,\n    fragmentShader: ShaderChunk.sprite_frag\n  },\n  background: {\n    uniforms: {\n      uvTransform: { value: /* @__PURE__ */ new Matrix3() },\n      t2D: { value: null },\n      backgroundIntensity: { value: 1 }\n    },\n    vertexShader: ShaderChunk.background_vert,\n    fragmentShader: ShaderChunk.background_frag\n  },\n  backgroundCube: {\n    uniforms: {\n      envMap: { value: null },\n      flipEnvMap: { value: -1 },\n      backgroundBlurriness: { value: 0 },\n      backgroundIntensity: { value: 1 },\n      backgroundRotation: { value: /* @__PURE__ */ new Matrix3() }\n    },\n    vertexShader: ShaderChunk.backgroundCube_vert,\n    fragmentShader: ShaderChunk.backgroundCube_frag\n  },\n  cube: {\n    uniforms: {\n      tCube: { value: null },\n      tFlip: { value: -1 },\n      opacity: { value: 1 }\n    },\n    vertexShader: ShaderChunk.cube_vert,\n    fragmentShader: ShaderChunk.cube_frag\n  },\n  equirect: {\n    uniforms: {\n      tEquirect: { value: null }\n    },\n    vertexShader: ShaderChunk.equirect_vert,\n    fragmentShader: ShaderChunk.equirect_frag\n  },\n  distanceRGBA: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.displacementmap,\n      {\n        referencePosition: { value: /* @__PURE__ */ new Vector3() },\n        nearDistance: { value: 1 },\n        farDistance: { value: 1e3 }\n      }\n    ]),\n    vertexShader: ShaderChunk.distanceRGBA_vert,\n    fragmentShader: ShaderChunk.distanceRGBA_frag\n  },\n  shadow: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.lights,\n      UniformsLib.fog,\n      {\n        color: { value: /* @__PURE__ */ new Color(0) },\n        opacity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.shadow_vert,\n    fragmentShader: ShaderChunk.shadow_frag\n  }\n};\nShaderLib.physical = {\n  uniforms: /* @__PURE__ */ mergeUniforms([\n    ShaderLib.standard.uniforms,\n    {\n      clearcoat: { value: 0 },\n      clearcoatMap: { value: null },\n      clearcoatMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      clearcoatNormalMap: { value: null },\n      clearcoatNormalMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      clearcoatNormalScale: { value: /* @__PURE__ */ new Vector2(1, 1) },\n      clearcoatRoughness: { value: 0 },\n      clearcoatRoughnessMap: { value: null },\n      clearcoatRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      dispersion: { value: 0 },\n      iridescence: { value: 0 },\n      iridescenceMap: { value: null },\n      iridescenceMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      iridescenceIOR: { value: 1.3 },\n      iridescenceThicknessMinimum: { value: 100 },\n      iridescenceThicknessMaximum: { value: 400 },\n      iridescenceThicknessMap: { value: null },\n      iridescenceThicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      sheen: { value: 0 },\n      sheenColor: { value: /* @__PURE__ */ new Color(0) },\n      sheenColorMap: { value: null },\n      sheenColorMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      sheenRoughness: { value: 1 },\n      sheenRoughnessMap: { value: null },\n      sheenRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      transmission: { value: 0 },\n      transmissionMap: { value: null },\n      transmissionMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      transmissionSamplerSize: { value: /* @__PURE__ */ new Vector2() },\n      transmissionSamplerMap: { value: null },\n      thickness: { value: 0 },\n      thicknessMap: { value: null },\n      thicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      attenuationDistance: { value: 0 },\n      attenuationColor: { value: /* @__PURE__ */ new Color(0) },\n      specularColor: { value: /* @__PURE__ */ new Color(1, 1, 1) },\n      specularColorMap: { value: null },\n      specularColorMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      specularIntensity: { value: 1 },\n      specularIntensityMap: { value: null },\n      specularIntensityMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      anisotropyVector: { value: /* @__PURE__ */ new Vector2() },\n      anisotropyMap: { value: null },\n      anisotropyMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n    }\n  ]),\n  vertexShader: ShaderChunk.meshphysical_vert,\n  fragmentShader: ShaderChunk.meshphysical_frag\n};\nvar _rgb = { r: 0, b: 0, g: 0 };\nvar _e1$1 = /* @__PURE__ */ new Euler();\nvar _m1$1 = /* @__PURE__ */ new Matrix4();\nfunction WebGLBackground(renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha) {\n  const clearColor = new Color(0);\n  let clearAlpha = alpha === true ? 0 : 1;\n  let planeMesh;\n  let boxMesh;\n  let currentBackground = null;\n  let currentBackgroundVersion = 0;\n  let currentTonemapping = null;\n  function getBackground(scene) {\n    let background = scene.isScene === true ? scene.background : null;\n    if (background && background.isTexture) {\n      const usePMREM = scene.backgroundBlurriness > 0;\n      background = (usePMREM ? cubeuvmaps : cubemaps).get(background);\n    }\n    return background;\n  }\n  function render(scene) {\n    let forceClear = false;\n    const background = getBackground(scene);\n    if (background === null) {\n      setClear(clearColor, clearAlpha);\n    } else if (background && background.isColor) {\n      setClear(background, 1);\n      forceClear = true;\n    }\n    const environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n    if (environmentBlendMode === \"additive\") {\n      state.buffers.color.setClear(0, 0, 0, 1, premultipliedAlpha);\n    } else if (environmentBlendMode === \"alpha-blend\") {\n      state.buffers.color.setClear(0, 0, 0, 0, premultipliedAlpha);\n    }\n    if (renderer.autoClear || forceClear) {\n      state.buffers.depth.setTest(true);\n      state.buffers.depth.setMask(true);\n      state.buffers.color.setMask(true);\n      renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n    }\n  }\n  function addToRenderList(renderList, scene) {\n    const background = getBackground(scene);\n    if (background && (background.isCubeTexture || background.mapping === CubeUVReflectionMapping)) {\n      if (boxMesh === void 0) {\n        boxMesh = new Mesh(\n          new BoxGeometry(1, 1, 1),\n          new ShaderMaterial({\n            name: \"BackgroundCubeMaterial\",\n            uniforms: cloneUniforms(ShaderLib.backgroundCube.uniforms),\n            vertexShader: ShaderLib.backgroundCube.vertexShader,\n            fragmentShader: ShaderLib.backgroundCube.fragmentShader,\n            side: BackSide,\n            depthTest: false,\n            depthWrite: false,\n            fog: false\n          })\n        );\n        boxMesh.geometry.deleteAttribute(\"normal\");\n        boxMesh.geometry.deleteAttribute(\"uv\");\n        boxMesh.onBeforeRender = function(renderer2, scene2, camera) {\n          this.matrixWorld.copyPosition(camera.matrixWorld);\n        };\n        Object.defineProperty(boxMesh.material, \"envMap\", {\n          get: function() {\n            return this.uniforms.envMap.value;\n          }\n        });\n        objects.update(boxMesh);\n      }\n      _e1$1.copy(scene.backgroundRotation);\n      _e1$1.x *= -1;\n      _e1$1.y *= -1;\n      _e1$1.z *= -1;\n      if (background.isCubeTexture && background.isRenderTargetTexture === false) {\n        _e1$1.y *= -1;\n        _e1$1.z *= -1;\n      }\n      boxMesh.material.uniforms.envMap.value = background;\n      boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background.isRenderTargetTexture === false ? -1 : 1;\n      boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n      boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n      boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1));\n      boxMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer;\n      if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n        boxMesh.material.needsUpdate = true;\n        currentBackground = background;\n        currentBackgroundVersion = background.version;\n        currentTonemapping = renderer.toneMapping;\n      }\n      boxMesh.layers.enableAll();\n      renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\n    } else if (background && background.isTexture) {\n      if (planeMesh === void 0) {\n        planeMesh = new Mesh(\n          new PlaneGeometry(2, 2),\n          new ShaderMaterial({\n            name: \"BackgroundMaterial\",\n            uniforms: cloneUniforms(ShaderLib.background.uniforms),\n            vertexShader: ShaderLib.background.vertexShader,\n            fragmentShader: ShaderLib.background.fragmentShader,\n            side: FrontSide,\n            depthTest: false,\n            depthWrite: false,\n            fog: false\n          })\n        );\n        planeMesh.geometry.deleteAttribute(\"normal\");\n        Object.defineProperty(planeMesh.material, \"map\", {\n          get: function() {\n            return this.uniforms.t2D.value;\n          }\n        });\n        objects.update(planeMesh);\n      }\n      planeMesh.material.uniforms.t2D.value = background;\n      planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n      planeMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer;\n      if (background.matrixAutoUpdate === true) {\n        background.updateMatrix();\n      }\n      planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);\n      if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n        planeMesh.material.needsUpdate = true;\n        currentBackground = background;\n        currentBackgroundVersion = background.version;\n        currentTonemapping = renderer.toneMapping;\n      }\n      planeMesh.layers.enableAll();\n      renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\n    }\n  }\n  function setClear(color, alpha2) {\n    color.getRGB(_rgb, getUnlitUniformColorSpace(renderer));\n    state.buffers.color.setClear(_rgb.r, _rgb.g, _rgb.b, alpha2, premultipliedAlpha);\n  }\n  return {\n    getClearColor: function() {\n      return clearColor;\n    },\n    setClearColor: function(color, alpha2 = 1) {\n      clearColor.set(color);\n      clearAlpha = alpha2;\n      setClear(clearColor, clearAlpha);\n    },\n    getClearAlpha: function() {\n      return clearAlpha;\n    },\n    setClearAlpha: function(alpha2) {\n      clearAlpha = alpha2;\n      setClear(clearColor, clearAlpha);\n    },\n    render,\n    addToRenderList\n  };\n}\nfunction WebGLBindingStates(gl, attributes) {\n  const maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n  const bindingStates = {};\n  const defaultState = createBindingState(null);\n  let currentState = defaultState;\n  let forceUpdate = false;\n  function setup(object, material, program, geometry, index) {\n    let updateBuffers = false;\n    const state = getBindingState(geometry, program, material);\n    if (currentState !== state) {\n      currentState = state;\n      bindVertexArrayObject(currentState.object);\n    }\n    updateBuffers = needsUpdate(object, geometry, program, index);\n    if (updateBuffers) saveCache(object, geometry, program, index);\n    if (index !== null) {\n      attributes.update(index, gl.ELEMENT_ARRAY_BUFFER);\n    }\n    if (updateBuffers || forceUpdate) {\n      forceUpdate = false;\n      setupVertexAttributes(object, material, program, geometry);\n      if (index !== null) {\n        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer);\n      }\n    }\n  }\n  function createVertexArrayObject() {\n    return gl.createVertexArray();\n  }\n  function bindVertexArrayObject(vao) {\n    return gl.bindVertexArray(vao);\n  }\n  function deleteVertexArrayObject(vao) {\n    return gl.deleteVertexArray(vao);\n  }\n  function getBindingState(geometry, program, material) {\n    const wireframe = material.wireframe === true;\n    let programMap = bindingStates[geometry.id];\n    if (programMap === void 0) {\n      programMap = {};\n      bindingStates[geometry.id] = programMap;\n    }\n    let stateMap = programMap[program.id];\n    if (stateMap === void 0) {\n      stateMap = {};\n      programMap[program.id] = stateMap;\n    }\n    let state = stateMap[wireframe];\n    if (state === void 0) {\n      state = createBindingState(createVertexArrayObject());\n      stateMap[wireframe] = state;\n    }\n    return state;\n  }\n  function createBindingState(vao) {\n    const newAttributes = [];\n    const enabledAttributes = [];\n    const attributeDivisors = [];\n    for (let i = 0; i < maxVertexAttributes; i++) {\n      newAttributes[i] = 0;\n      enabledAttributes[i] = 0;\n      attributeDivisors[i] = 0;\n    }\n    return {\n      // for backward compatibility on non-VAO support browser\n      geometry: null,\n      program: null,\n      wireframe: false,\n      newAttributes,\n      enabledAttributes,\n      attributeDivisors,\n      object: vao,\n      attributes: {},\n      index: null\n    };\n  }\n  function needsUpdate(object, geometry, program, index) {\n    const cachedAttributes = currentState.attributes;\n    const geometryAttributes = geometry.attributes;\n    let attributesNum = 0;\n    const programAttributes = program.getAttributes();\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        const cachedAttribute = cachedAttributes[name];\n        let geometryAttribute = geometryAttributes[name];\n        if (geometryAttribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) geometryAttribute = object.instanceColor;\n        }\n        if (cachedAttribute === void 0) return true;\n        if (cachedAttribute.attribute !== geometryAttribute) return true;\n        if (geometryAttribute && cachedAttribute.data !== geometryAttribute.data) return true;\n        attributesNum++;\n      }\n    }\n    if (currentState.attributesNum !== attributesNum) return true;\n    if (currentState.index !== index) return true;\n    return false;\n  }\n  function saveCache(object, geometry, program, index) {\n    const cache = {};\n    const attributes2 = geometry.attributes;\n    let attributesNum = 0;\n    const programAttributes = program.getAttributes();\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        let attribute = attributes2[name];\n        if (attribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) attribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) attribute = object.instanceColor;\n        }\n        const data = {};\n        data.attribute = attribute;\n        if (attribute && attribute.data) {\n          data.data = attribute.data;\n        }\n        cache[name] = data;\n        attributesNum++;\n      }\n    }\n    currentState.attributes = cache;\n    currentState.attributesNum = attributesNum;\n    currentState.index = index;\n  }\n  function initAttributes() {\n    const newAttributes = currentState.newAttributes;\n    for (let i = 0, il = newAttributes.length; i < il; i++) {\n      newAttributes[i] = 0;\n    }\n  }\n  function enableAttribute(attribute) {\n    enableAttributeAndDivisor(attribute, 0);\n  }\n  function enableAttributeAndDivisor(attribute, meshPerAttribute) {\n    const newAttributes = currentState.newAttributes;\n    const enabledAttributes = currentState.enabledAttributes;\n    const attributeDivisors = currentState.attributeDivisors;\n    newAttributes[attribute] = 1;\n    if (enabledAttributes[attribute] === 0) {\n      gl.enableVertexAttribArray(attribute);\n      enabledAttributes[attribute] = 1;\n    }\n    if (attributeDivisors[attribute] !== meshPerAttribute) {\n      gl.vertexAttribDivisor(attribute, meshPerAttribute);\n      attributeDivisors[attribute] = meshPerAttribute;\n    }\n  }\n  function disableUnusedAttributes() {\n    const newAttributes = currentState.newAttributes;\n    const enabledAttributes = currentState.enabledAttributes;\n    for (let i = 0, il = enabledAttributes.length; i < il; i++) {\n      if (enabledAttributes[i] !== newAttributes[i]) {\n        gl.disableVertexAttribArray(i);\n        enabledAttributes[i] = 0;\n      }\n    }\n  }\n  function vertexAttribPointer(index, size, type, normalized, stride, offset, integer) {\n    if (integer === true) {\n      gl.vertexAttribIPointer(index, size, type, stride, offset);\n    } else {\n      gl.vertexAttribPointer(index, size, type, normalized, stride, offset);\n    }\n  }\n  function setupVertexAttributes(object, material, program, geometry) {\n    initAttributes();\n    const geometryAttributes = geometry.attributes;\n    const programAttributes = program.getAttributes();\n    const materialDefaultAttributeValues = material.defaultAttributeValues;\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        let geometryAttribute = geometryAttributes[name];\n        if (geometryAttribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) geometryAttribute = object.instanceColor;\n        }\n        if (geometryAttribute !== void 0) {\n          const normalized = geometryAttribute.normalized;\n          const size = geometryAttribute.itemSize;\n          const attribute = attributes.get(geometryAttribute);\n          if (attribute === void 0) continue;\n          const buffer = attribute.buffer;\n          const type = attribute.type;\n          const bytesPerElement = attribute.bytesPerElement;\n          const integer = type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType;\n          if (geometryAttribute.isInterleavedBufferAttribute) {\n            const data = geometryAttribute.data;\n            const stride = data.stride;\n            const offset = geometryAttribute.offset;\n            if (data.isInstancedInterleavedBuffer) {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute);\n              }\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\n                geometry._maxInstanceCount = data.meshPerAttribute * data.count;\n              }\n            } else {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttribute(programAttribute.location + i);\n              }\n            }\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n            for (let i = 0; i < programAttribute.locationSize; i++) {\n              vertexAttribPointer(\n                programAttribute.location + i,\n                size / programAttribute.locationSize,\n                type,\n                normalized,\n                stride * bytesPerElement,\n                (offset + size / programAttribute.locationSize * i) * bytesPerElement,\n                integer\n              );\n            }\n          } else {\n            if (geometryAttribute.isInstancedBufferAttribute) {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttributeAndDivisor(programAttribute.location + i, geometryAttribute.meshPerAttribute);\n              }\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\n                geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n              }\n            } else {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttribute(programAttribute.location + i);\n              }\n            }\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n            for (let i = 0; i < programAttribute.locationSize; i++) {\n              vertexAttribPointer(\n                programAttribute.location + i,\n                size / programAttribute.locationSize,\n                type,\n                normalized,\n                size * bytesPerElement,\n                size / programAttribute.locationSize * i * bytesPerElement,\n                integer\n              );\n            }\n          }\n        } else if (materialDefaultAttributeValues !== void 0) {\n          const value = materialDefaultAttributeValues[name];\n          if (value !== void 0) {\n            switch (value.length) {\n              case 2:\n                gl.vertexAttrib2fv(programAttribute.location, value);\n                break;\n              case 3:\n                gl.vertexAttrib3fv(programAttribute.location, value);\n                break;\n              case 4:\n                gl.vertexAttrib4fv(programAttribute.location, value);\n                break;\n              default:\n                gl.vertexAttrib1fv(programAttribute.location, value);\n            }\n          }\n        }\n      }\n    }\n    disableUnusedAttributes();\n  }\n  function dispose() {\n    reset();\n    for (const geometryId in bindingStates) {\n      const programMap = bindingStates[geometryId];\n      for (const programId in programMap) {\n        const stateMap = programMap[programId];\n        for (const wireframe in stateMap) {\n          deleteVertexArrayObject(stateMap[wireframe].object);\n          delete stateMap[wireframe];\n        }\n        delete programMap[programId];\n      }\n      delete bindingStates[geometryId];\n    }\n  }\n  function releaseStatesOfGeometry(geometry) {\n    if (bindingStates[geometry.id] === void 0) return;\n    const programMap = bindingStates[geometry.id];\n    for (const programId in programMap) {\n      const stateMap = programMap[programId];\n      for (const wireframe in stateMap) {\n        deleteVertexArrayObject(stateMap[wireframe].object);\n        delete stateMap[wireframe];\n      }\n      delete programMap[programId];\n    }\n    delete bindingStates[geometry.id];\n  }\n  function releaseStatesOfProgram(program) {\n    for (const geometryId in bindingStates) {\n      const programMap = bindingStates[geometryId];\n      if (programMap[program.id] === void 0) continue;\n      const stateMap = programMap[program.id];\n      for (const wireframe in stateMap) {\n        deleteVertexArrayObject(stateMap[wireframe].object);\n        delete stateMap[wireframe];\n      }\n      delete programMap[program.id];\n    }\n  }\n  function reset() {\n    resetDefaultState();\n    forceUpdate = true;\n    if (currentState === defaultState) return;\n    currentState = defaultState;\n    bindVertexArrayObject(currentState.object);\n  }\n  function resetDefaultState() {\n    defaultState.geometry = null;\n    defaultState.program = null;\n    defaultState.wireframe = false;\n  }\n  return {\n    setup,\n    reset,\n    resetDefaultState,\n    dispose,\n    releaseStatesOfGeometry,\n    releaseStatesOfProgram,\n    initAttributes,\n    enableAttribute,\n    disableUnusedAttributes\n  };\n}\nfunction WebGLBufferRenderer(gl, extensions, info) {\n  let mode;\n  function setMode(value) {\n    mode = value;\n  }\n  function render(start, count) {\n    gl.drawArrays(mode, start, count);\n    info.update(count, mode, 1);\n  }\n  function renderInstances(start, count, primcount) {\n    if (primcount === 0) return;\n    gl.drawArraysInstanced(mode, start, count, primcount);\n    info.update(count, mode, primcount);\n  }\n  function renderMultiDraw(starts, counts, drawCount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    extension.multiDrawArraysWEBGL(mode, starts, 0, counts, 0, drawCount);\n    let elementCount = 0;\n    for (let i = 0; i < drawCount; i++) {\n      elementCount += counts[i];\n    }\n    info.update(elementCount, mode, 1);\n  }\n  function renderMultiDrawInstances(starts, counts, drawCount, primcount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    if (extension === null) {\n      for (let i = 0; i < starts.length; i++) {\n        renderInstances(starts[i], counts[i], primcount[i]);\n      }\n    } else {\n      extension.multiDrawArraysInstancedWEBGL(mode, starts, 0, counts, 0, primcount, 0, drawCount);\n      let elementCount = 0;\n      for (let i = 0; i < drawCount; i++) {\n        elementCount += counts[i];\n      }\n      for (let i = 0; i < primcount.length; i++) {\n        info.update(elementCount, mode, primcount[i]);\n      }\n    }\n  }\n  this.setMode = setMode;\n  this.render = render;\n  this.renderInstances = renderInstances;\n  this.renderMultiDraw = renderMultiDraw;\n  this.renderMultiDrawInstances = renderMultiDrawInstances;\n}\nfunction WebGLCapabilities(gl, extensions, parameters, utils) {\n  let maxAnisotropy;\n  function getMaxAnisotropy() {\n    if (maxAnisotropy !== void 0) return maxAnisotropy;\n    if (extensions.has(\"EXT_texture_filter_anisotropic\") === true) {\n      const extension = extensions.get(\"EXT_texture_filter_anisotropic\");\n      maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n    } else {\n      maxAnisotropy = 0;\n    }\n    return maxAnisotropy;\n  }\n  function textureFormatReadable(textureFormat) {\n    if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT)) {\n      return false;\n    }\n    return true;\n  }\n  function textureTypeReadable(textureType) {\n    const halfFloatSupportedByExt = textureType === HalfFloatType && (extensions.has(\"EXT_color_buffer_half_float\") || extensions.has(\"EXT_color_buffer_float\"));\n    if (textureType !== UnsignedByteType && utils.convert(textureType) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE) && // Edge and Chrome Mac < 52 (#9513)\n    textureType !== FloatType && !halfFloatSupportedByExt) {\n      return false;\n    }\n    return true;\n  }\n  function getMaxPrecision(precision2) {\n    if (precision2 === \"highp\") {\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) {\n        return \"highp\";\n      }\n      precision2 = \"mediump\";\n    }\n    if (precision2 === \"mediump\") {\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) {\n        return \"mediump\";\n      }\n    }\n    return \"lowp\";\n  }\n  let precision = parameters.precision !== void 0 ? parameters.precision : \"highp\";\n  const maxPrecision = getMaxPrecision(precision);\n  if (maxPrecision !== precision) {\n    console.warn(\"THREE.WebGLRenderer:\", precision, \"not supported, using\", maxPrecision, \"instead.\");\n    precision = maxPrecision;\n  }\n  const logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n  const reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has(\"EXT_clip_control\");\n  if (reverseDepthBuffer === true) {\n    const ext = extensions.get(\"EXT_clip_control\");\n    ext.clipControlEXT(ext.LOWER_LEFT_EXT, ext.ZERO_TO_ONE_EXT);\n  }\n  const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n  const maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n  const maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n  const maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n  const maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n  const maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n  const maxVaryings = gl.getParameter(gl.MAX_VARYING_VECTORS);\n  const maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n  const vertexTextures = maxVertexTextures > 0;\n  const maxSamples = gl.getParameter(gl.MAX_SAMPLES);\n  return {\n    isWebGL2: true,\n    // keeping this for backwards compatibility\n    getMaxAnisotropy,\n    getMaxPrecision,\n    textureFormatReadable,\n    textureTypeReadable,\n    precision,\n    logarithmicDepthBuffer,\n    reverseDepthBuffer,\n    maxTextures,\n    maxVertexTextures,\n    maxTextureSize,\n    maxCubemapSize,\n    maxAttributes,\n    maxVertexUniforms,\n    maxVaryings,\n    maxFragmentUniforms,\n    vertexTextures,\n    maxSamples\n  };\n}\nfunction WebGLClipping(properties) {\n  const scope = this;\n  let globalState = null, numGlobalPlanes = 0, localClippingEnabled = false, renderingShadows = false;\n  const plane = new Plane(), viewNormalMatrix = new Matrix3(), uniform = { value: null, needsUpdate: false };\n  this.uniform = uniform;\n  this.numPlanes = 0;\n  this.numIntersection = 0;\n  this.init = function(planes, enableLocalClipping) {\n    const enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to\n    // run another frame in order to reset the state:\n    numGlobalPlanes !== 0 || localClippingEnabled;\n    localClippingEnabled = enableLocalClipping;\n    numGlobalPlanes = planes.length;\n    return enabled;\n  };\n  this.beginShadows = function() {\n    renderingShadows = true;\n    projectPlanes(null);\n  };\n  this.endShadows = function() {\n    renderingShadows = false;\n  };\n  this.setGlobalState = function(planes, camera) {\n    globalState = projectPlanes(planes, camera, 0);\n  };\n  this.setState = function(material, camera, useCache) {\n    const planes = material.clippingPlanes, clipIntersection = material.clipIntersection, clipShadows = material.clipShadows;\n    const materialProperties = properties.get(material);\n    if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\n      if (renderingShadows) {\n        projectPlanes(null);\n      } else {\n        resetGlobalState();\n      }\n    } else {\n      const nGlobal = renderingShadows ? 0 : numGlobalPlanes, lGlobal = nGlobal * 4;\n      let dstArray = materialProperties.clippingState || null;\n      uniform.value = dstArray;\n      dstArray = projectPlanes(planes, camera, lGlobal, useCache);\n      for (let i = 0; i !== lGlobal; ++i) {\n        dstArray[i] = globalState[i];\n      }\n      materialProperties.clippingState = dstArray;\n      this.numIntersection = clipIntersection ? this.numPlanes : 0;\n      this.numPlanes += nGlobal;\n    }\n  };\n  function resetGlobalState() {\n    if (uniform.value !== globalState) {\n      uniform.value = globalState;\n      uniform.needsUpdate = numGlobalPlanes > 0;\n    }\n    scope.numPlanes = numGlobalPlanes;\n    scope.numIntersection = 0;\n  }\n  function projectPlanes(planes, camera, dstOffset, skipTransform) {\n    const nPlanes = planes !== null ? planes.length : 0;\n    let dstArray = null;\n    if (nPlanes !== 0) {\n      dstArray = uniform.value;\n      if (skipTransform !== true || dstArray === null) {\n        const flatSize = dstOffset + nPlanes * 4, viewMatrix = camera.matrixWorldInverse;\n        viewNormalMatrix.getNormalMatrix(viewMatrix);\n        if (dstArray === null || dstArray.length < flatSize) {\n          dstArray = new Float32Array(flatSize);\n        }\n        for (let i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\n          plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\n          plane.normal.toArray(dstArray, i4);\n          dstArray[i4 + 3] = plane.constant;\n        }\n      }\n      uniform.value = dstArray;\n      uniform.needsUpdate = true;\n    }\n    scope.numPlanes = nPlanes;\n    scope.numIntersection = 0;\n    return dstArray;\n  }\n}\nfunction WebGLCubeMaps(renderer) {\n  let cubemaps = /* @__PURE__ */ new WeakMap();\n  function mapTextureMapping(texture, mapping) {\n    if (mapping === EquirectangularReflectionMapping) {\n      texture.mapping = CubeReflectionMapping;\n    } else if (mapping === EquirectangularRefractionMapping) {\n      texture.mapping = CubeRefractionMapping;\n    }\n    return texture;\n  }\n  function get(texture) {\n    if (texture && texture.isTexture) {\n      const mapping = texture.mapping;\n      if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) {\n        if (cubemaps.has(texture)) {\n          const cubemap = cubemaps.get(texture).texture;\n          return mapTextureMapping(cubemap, texture.mapping);\n        } else {\n          const image = texture.image;\n          if (image && image.height > 0) {\n            const renderTarget = new WebGLCubeRenderTarget(image.height);\n            renderTarget.fromEquirectangularTexture(renderer, texture);\n            cubemaps.set(texture, renderTarget);\n            texture.addEventListener(\"dispose\", onTextureDispose);\n            return mapTextureMapping(renderTarget.texture, texture.mapping);\n          } else {\n            return null;\n          }\n        }\n      }\n    }\n    return texture;\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    const cubemap = cubemaps.get(texture);\n    if (cubemap !== void 0) {\n      cubemaps.delete(texture);\n      cubemap.dispose();\n    }\n  }\n  function dispose() {\n    cubemaps = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nvar OrthographicCamera = class extends Camera {\n  constructor(left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2e3) {\n    super();\n    this.isOrthographicCamera = true;\n    this.type = \"OrthographicCamera\";\n    this.zoom = 1;\n    this.view = null;\n    this.left = left;\n    this.right = right;\n    this.top = top;\n    this.bottom = bottom;\n    this.near = near;\n    this.far = far;\n    this.updateProjectionMatrix();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.left = source.left;\n    this.right = source.right;\n    this.top = source.top;\n    this.bottom = source.bottom;\n    this.near = source.near;\n    this.far = source.far;\n    this.zoom = source.zoom;\n    this.view = source.view === null ? null : Object.assign({}, source.view);\n    return this;\n  }\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n    if (this.view === null) {\n      this.view = {\n        enabled: true,\n        fullWidth: 1,\n        fullHeight: 1,\n        offsetX: 0,\n        offsetY: 0,\n        width: 1,\n        height: 1\n      };\n    }\n    this.view.enabled = true;\n    this.view.fullWidth = fullWidth;\n    this.view.fullHeight = fullHeight;\n    this.view.offsetX = x;\n    this.view.offsetY = y;\n    this.view.width = width;\n    this.view.height = height;\n    this.updateProjectionMatrix();\n  }\n  clearViewOffset() {\n    if (this.view !== null) {\n      this.view.enabled = false;\n    }\n    this.updateProjectionMatrix();\n  }\n  updateProjectionMatrix() {\n    const dx = (this.right - this.left) / (2 * this.zoom);\n    const dy = (this.top - this.bottom) / (2 * this.zoom);\n    const cx = (this.right + this.left) / 2;\n    const cy = (this.top + this.bottom) / 2;\n    let left = cx - dx;\n    let right = cx + dx;\n    let top = cy + dy;\n    let bottom = cy - dy;\n    if (this.view !== null && this.view.enabled) {\n      const scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\n      const scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\n      left += scaleW * this.view.offsetX;\n      right = left + scaleW * this.view.width;\n      top -= scaleH * this.view.offsetY;\n      bottom = top - scaleH * this.view.height;\n    }\n    this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far, this.coordinateSystem);\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.zoom = this.zoom;\n    data.object.left = this.left;\n    data.object.right = this.right;\n    data.object.top = this.top;\n    data.object.bottom = this.bottom;\n    data.object.near = this.near;\n    data.object.far = this.far;\n    if (this.view !== null) data.object.view = Object.assign({}, this.view);\n    return data;\n  }\n};\nvar LOD_MIN = 4;\nvar EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582];\nvar MAX_SAMPLES = 20;\nvar _flatCamera = /* @__PURE__ */ new OrthographicCamera();\nvar _clearColor = /* @__PURE__ */ new Color();\nvar _oldTarget = null;\nvar _oldActiveCubeFace = 0;\nvar _oldActiveMipmapLevel = 0;\nvar _oldXrEnabled = false;\nvar PHI = (1 + Math.sqrt(5)) / 2;\nvar INV_PHI = 1 / PHI;\nvar _axisDirections = [\n  /* @__PURE__ */ new Vector3(-PHI, INV_PHI, 0),\n  /* @__PURE__ */ new Vector3(PHI, INV_PHI, 0),\n  /* @__PURE__ */ new Vector3(-INV_PHI, 0, PHI),\n  /* @__PURE__ */ new Vector3(INV_PHI, 0, PHI),\n  /* @__PURE__ */ new Vector3(0, PHI, -INV_PHI),\n  /* @__PURE__ */ new Vector3(0, PHI, INV_PHI),\n  /* @__PURE__ */ new Vector3(-1, 1, -1),\n  /* @__PURE__ */ new Vector3(1, 1, -1),\n  /* @__PURE__ */ new Vector3(-1, 1, 1),\n  /* @__PURE__ */ new Vector3(1, 1, 1)\n];\nvar PMREMGenerator = class {\n  constructor(renderer) {\n    this._renderer = renderer;\n    this._pingPongRenderTarget = null;\n    this._lodMax = 0;\n    this._cubeSize = 0;\n    this._lodPlanes = [];\n    this._sizeLods = [];\n    this._sigmas = [];\n    this._blurMaterial = null;\n    this._cubemapMaterial = null;\n    this._equirectMaterial = null;\n    this._compileMaterial(this._blurMaterial);\n  }\n  /**\n   * Generates a PMREM from a supplied Scene, which can be faster than using an\n   * image if networking bandwidth is low. Optional sigma specifies a blur radius\n   * in radians to be applied to the scene before PMREM generation. Optional near\n   * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n   * is placed at the origin).\n   */\n  fromScene(scene, sigma = 0, near = 0.1, far = 100) {\n    _oldTarget = this._renderer.getRenderTarget();\n    _oldActiveCubeFace = this._renderer.getActiveCubeFace();\n    _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n    _oldXrEnabled = this._renderer.xr.enabled;\n    this._renderer.xr.enabled = false;\n    this._setSize(256);\n    const cubeUVRenderTarget = this._allocateTargets();\n    cubeUVRenderTarget.depthBuffer = true;\n    this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\n    if (sigma > 0) {\n      this._blur(cubeUVRenderTarget, 0, 0, sigma);\n    }\n    this._applyPMREM(cubeUVRenderTarget);\n    this._cleanup(cubeUVRenderTarget);\n    return cubeUVRenderTarget;\n  }\n  /**\n   * Generates a PMREM from an equirectangular texture, which can be either LDR\n   * or HDR. The ideal input image size is 1k (1024 x 512),\n   * as this matches best with the 256 x 256 cubemap output.\n   * The smallest supported equirectangular image size is 64 x 32.\n   */\n  fromEquirectangular(equirectangular, renderTarget = null) {\n    return this._fromTexture(equirectangular, renderTarget);\n  }\n  /**\n   * Generates a PMREM from an cubemap texture, which can be either LDR\n   * or HDR. The ideal input cube size is 256 x 256,\n   * as this matches best with the 256 x 256 cubemap output.\n   * The smallest supported cube size is 16 x 16.\n   */\n  fromCubemap(cubemap, renderTarget = null) {\n    return this._fromTexture(cubemap, renderTarget);\n  }\n  /**\n   * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n   * your texture's network fetch for increased concurrency.\n   */\n  compileCubemapShader() {\n    if (this._cubemapMaterial === null) {\n      this._cubemapMaterial = _getCubemapMaterial();\n      this._compileMaterial(this._cubemapMaterial);\n    }\n  }\n  /**\n   * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n   * your texture's network fetch for increased concurrency.\n   */\n  compileEquirectangularShader() {\n    if (this._equirectMaterial === null) {\n      this._equirectMaterial = _getEquirectMaterial();\n      this._compileMaterial(this._equirectMaterial);\n    }\n  }\n  /**\n   * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n   * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n   * one of them will cause any others to also become unusable.\n   */\n  dispose() {\n    this._dispose();\n    if (this._cubemapMaterial !== null) this._cubemapMaterial.dispose();\n    if (this._equirectMaterial !== null) this._equirectMaterial.dispose();\n  }\n  // private interface\n  _setSize(cubeSize) {\n    this._lodMax = Math.floor(Math.log2(cubeSize));\n    this._cubeSize = Math.pow(2, this._lodMax);\n  }\n  _dispose() {\n    if (this._blurMaterial !== null) this._blurMaterial.dispose();\n    if (this._pingPongRenderTarget !== null) this._pingPongRenderTarget.dispose();\n    for (let i = 0; i < this._lodPlanes.length; i++) {\n      this._lodPlanes[i].dispose();\n    }\n  }\n  _cleanup(outputTarget) {\n    this._renderer.setRenderTarget(_oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel);\n    this._renderer.xr.enabled = _oldXrEnabled;\n    outputTarget.scissorTest = false;\n    _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\n  }\n  _fromTexture(texture, renderTarget) {\n    if (texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping) {\n      this._setSize(texture.image.length === 0 ? 16 : texture.image[0].width || texture.image[0].image.width);\n    } else {\n      this._setSize(texture.image.width / 4);\n    }\n    _oldTarget = this._renderer.getRenderTarget();\n    _oldActiveCubeFace = this._renderer.getActiveCubeFace();\n    _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n    _oldXrEnabled = this._renderer.xr.enabled;\n    this._renderer.xr.enabled = false;\n    const cubeUVRenderTarget = renderTarget || this._allocateTargets();\n    this._textureToCubeUV(texture, cubeUVRenderTarget);\n    this._applyPMREM(cubeUVRenderTarget);\n    this._cleanup(cubeUVRenderTarget);\n    return cubeUVRenderTarget;\n  }\n  _allocateTargets() {\n    const width = 3 * Math.max(this._cubeSize, 16 * 7);\n    const height = 4 * this._cubeSize;\n    const params = {\n      magFilter: LinearFilter,\n      minFilter: LinearFilter,\n      generateMipmaps: false,\n      type: HalfFloatType,\n      format: RGBAFormat,\n      colorSpace: LinearSRGBColorSpace,\n      depthBuffer: false\n    };\n    const cubeUVRenderTarget = _createRenderTarget(width, height, params);\n    if (this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height) {\n      if (this._pingPongRenderTarget !== null) {\n        this._dispose();\n      }\n      this._pingPongRenderTarget = _createRenderTarget(width, height, params);\n      const { _lodMax } = this;\n      ({ sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes(_lodMax));\n      this._blurMaterial = _getBlurShader(_lodMax, width, height);\n    }\n    return cubeUVRenderTarget;\n  }\n  _compileMaterial(material) {\n    const tmpMesh = new Mesh(this._lodPlanes[0], material);\n    this._renderer.compile(tmpMesh, _flatCamera);\n  }\n  _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\n    const fov2 = 90;\n    const aspect2 = 1;\n    const cubeCamera = new PerspectiveCamera(fov2, aspect2, near, far);\n    const upSign = [1, -1, 1, 1, 1, 1];\n    const forwardSign = [1, 1, 1, -1, -1, -1];\n    const renderer = this._renderer;\n    const originalAutoClear = renderer.autoClear;\n    const toneMapping = renderer.toneMapping;\n    renderer.getClearColor(_clearColor);\n    renderer.toneMapping = NoToneMapping;\n    renderer.autoClear = false;\n    const backgroundMaterial = new MeshBasicMaterial({\n      name: \"PMREM.Background\",\n      side: BackSide,\n      depthWrite: false,\n      depthTest: false\n    });\n    const backgroundBox = new Mesh(new BoxGeometry(), backgroundMaterial);\n    let useSolidColor = false;\n    const background = scene.background;\n    if (background) {\n      if (background.isColor) {\n        backgroundMaterial.color.copy(background);\n        scene.background = null;\n        useSolidColor = true;\n      }\n    } else {\n      backgroundMaterial.color.copy(_clearColor);\n      useSolidColor = true;\n    }\n    for (let i = 0; i < 6; i++) {\n      const col = i % 3;\n      if (col === 0) {\n        cubeCamera.up.set(0, upSign[i], 0);\n        cubeCamera.lookAt(forwardSign[i], 0, 0);\n      } else if (col === 1) {\n        cubeCamera.up.set(0, 0, upSign[i]);\n        cubeCamera.lookAt(0, forwardSign[i], 0);\n      } else {\n        cubeCamera.up.set(0, upSign[i], 0);\n        cubeCamera.lookAt(0, 0, forwardSign[i]);\n      }\n      const size = this._cubeSize;\n      _setViewport(cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size);\n      renderer.setRenderTarget(cubeUVRenderTarget);\n      if (useSolidColor) {\n        renderer.render(backgroundBox, cubeCamera);\n      }\n      renderer.render(scene, cubeCamera);\n    }\n    backgroundBox.geometry.dispose();\n    backgroundBox.material.dispose();\n    renderer.toneMapping = toneMapping;\n    renderer.autoClear = originalAutoClear;\n    scene.background = background;\n  }\n  _textureToCubeUV(texture, cubeUVRenderTarget) {\n    const renderer = this._renderer;\n    const isCubeTexture = texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping;\n    if (isCubeTexture) {\n      if (this._cubemapMaterial === null) {\n        this._cubemapMaterial = _getCubemapMaterial();\n      }\n      this._cubemapMaterial.uniforms.flipEnvMap.value = texture.isRenderTargetTexture === false ? -1 : 1;\n    } else {\n      if (this._equirectMaterial === null) {\n        this._equirectMaterial = _getEquirectMaterial();\n      }\n    }\n    const material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n    const mesh = new Mesh(this._lodPlanes[0], material);\n    const uniforms = material.uniforms;\n    uniforms[\"envMap\"].value = texture;\n    const size = this._cubeSize;\n    _setViewport(cubeUVRenderTarget, 0, 0, 3 * size, 2 * size);\n    renderer.setRenderTarget(cubeUVRenderTarget);\n    renderer.render(mesh, _flatCamera);\n  }\n  _applyPMREM(cubeUVRenderTarget) {\n    const renderer = this._renderer;\n    const autoClear = renderer.autoClear;\n    renderer.autoClear = false;\n    const n = this._lodPlanes.length;\n    for (let i = 1; i < n; i++) {\n      const sigma = Math.sqrt(this._sigmas[i] * this._sigmas[i] - this._sigmas[i - 1] * this._sigmas[i - 1]);\n      const poleAxis = _axisDirections[(n - i - 1) % _axisDirections.length];\n      this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\n    }\n    renderer.autoClear = autoClear;\n  }\n  /**\n   * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n   * vertically and horizontally, but this breaks down on a cube. Here we apply\n   * the blur latitudinally (around the poles), and then longitudinally (towards\n   * the poles) to approximate the orthogonally-separable blur. It is least\n   * accurate at the poles, but still does a decent job.\n   */\n  _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\n    const pingPongRenderTarget = this._pingPongRenderTarget;\n    this._halfBlur(\n      cubeUVRenderTarget,\n      pingPongRenderTarget,\n      lodIn,\n      lodOut,\n      sigma,\n      \"latitudinal\",\n      poleAxis\n    );\n    this._halfBlur(\n      pingPongRenderTarget,\n      cubeUVRenderTarget,\n      lodOut,\n      lodOut,\n      sigma,\n      \"longitudinal\",\n      poleAxis\n    );\n  }\n  _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\n    const renderer = this._renderer;\n    const blurMaterial = this._blurMaterial;\n    if (direction !== \"latitudinal\" && direction !== \"longitudinal\") {\n      console.error(\n        \"blur direction must be either latitudinal or longitudinal!\"\n      );\n    }\n    const STANDARD_DEVIATIONS = 3;\n    const blurMesh = new Mesh(this._lodPlanes[lodOut], blurMaterial);\n    const blurUniforms = blurMaterial.uniforms;\n    const pixels = this._sizeLods[lodIn] - 1;\n    const radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\n    const sigmaPixels = sigmaRadians / radiansPerPixel;\n    const samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\n    if (samples > MAX_SAMPLES) {\n      console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`);\n    }\n    const weights = [];\n    let sum = 0;\n    for (let i = 0; i < MAX_SAMPLES; ++i) {\n      const x2 = i / sigmaPixels;\n      const weight = Math.exp(-x2 * x2 / 2);\n      weights.push(weight);\n      if (i === 0) {\n        sum += weight;\n      } else if (i < samples) {\n        sum += 2 * weight;\n      }\n    }\n    for (let i = 0; i < weights.length; i++) {\n      weights[i] = weights[i] / sum;\n    }\n    blurUniforms[\"envMap\"].value = targetIn.texture;\n    blurUniforms[\"samples\"].value = samples;\n    blurUniforms[\"weights\"].value = weights;\n    blurUniforms[\"latitudinal\"].value = direction === \"latitudinal\";\n    if (poleAxis) {\n      blurUniforms[\"poleAxis\"].value = poleAxis;\n    }\n    const { _lodMax } = this;\n    blurUniforms[\"dTheta\"].value = radiansPerPixel;\n    blurUniforms[\"mipInt\"].value = _lodMax - lodIn;\n    const outputSize = this._sizeLods[lodOut];\n    const x = 3 * outputSize * (lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0);\n    const y = 4 * (this._cubeSize - outputSize);\n    _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\n    renderer.setRenderTarget(targetOut);\n    renderer.render(blurMesh, _flatCamera);\n  }\n};\nfunction _createPlanes(lodMax) {\n  const lodPlanes = [];\n  const sizeLods = [];\n  const sigmas = [];\n  let lod = lodMax;\n  const totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n  for (let i = 0; i < totalLods; i++) {\n    const sizeLod = Math.pow(2, lod);\n    sizeLods.push(sizeLod);\n    let sigma = 1 / sizeLod;\n    if (i > lodMax - LOD_MIN) {\n      sigma = EXTRA_LOD_SIGMA[i - lodMax + LOD_MIN - 1];\n    } else if (i === 0) {\n      sigma = 0;\n    }\n    sigmas.push(sigma);\n    const texelSize = 1 / (sizeLod - 2);\n    const min = -texelSize;\n    const max = 1 + texelSize;\n    const uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\n    const cubeFaces = 6;\n    const vertices = 6;\n    const positionSize = 3;\n    const uvSize = 2;\n    const faceIndexSize = 1;\n    const position = new Float32Array(positionSize * vertices * cubeFaces);\n    const uv = new Float32Array(uvSize * vertices * cubeFaces);\n    const faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\n    for (let face = 0; face < cubeFaces; face++) {\n      const x = face % 3 * 2 / 3 - 1;\n      const y = face > 2 ? 0 : -1;\n      const coordinates = [\n        x,\n        y,\n        0,\n        x + 2 / 3,\n        y,\n        0,\n        x + 2 / 3,\n        y + 1,\n        0,\n        x,\n        y,\n        0,\n        x + 2 / 3,\n        y + 1,\n        0,\n        x,\n        y + 1,\n        0\n      ];\n      position.set(coordinates, positionSize * vertices * face);\n      uv.set(uv1, uvSize * vertices * face);\n      const fill2 = [face, face, face, face, face, face];\n      faceIndex.set(fill2, faceIndexSize * vertices * face);\n    }\n    const planes = new BufferGeometry();\n    planes.setAttribute(\"position\", new BufferAttribute(position, positionSize));\n    planes.setAttribute(\"uv\", new BufferAttribute(uv, uvSize));\n    planes.setAttribute(\"faceIndex\", new BufferAttribute(faceIndex, faceIndexSize));\n    lodPlanes.push(planes);\n    if (lod > LOD_MIN) {\n      lod--;\n    }\n  }\n  return { lodPlanes, sizeLods, sigmas };\n}\nfunction _createRenderTarget(width, height, params) {\n  const cubeUVRenderTarget = new WebGLRenderTarget(width, height, params);\n  cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n  cubeUVRenderTarget.texture.name = \"PMREM.cubeUv\";\n  cubeUVRenderTarget.scissorTest = true;\n  return cubeUVRenderTarget;\n}\nfunction _setViewport(target, x, y, width, height) {\n  target.viewport.set(x, y, width, height);\n  target.scissor.set(x, y, width, height);\n}\nfunction _getBlurShader(lodMax, width, height) {\n  const weights = new Float32Array(MAX_SAMPLES);\n  const poleAxis = new Vector3(0, 1, 0);\n  const shaderMaterial = new ShaderMaterial({\n    name: \"SphericalGaussianBlur\",\n    defines: {\n      \"n\": MAX_SAMPLES,\n      \"CUBEUV_TEXEL_WIDTH\": 1 / width,\n      \"CUBEUV_TEXEL_HEIGHT\": 1 / height,\n      \"CUBEUV_MAX_MIP\": `${lodMax}.0`\n    },\n    uniforms: {\n      \"envMap\": { value: null },\n      \"samples\": { value: 1 },\n      \"weights\": { value: weights },\n      \"latitudinal\": { value: false },\n      \"dTheta\": { value: 0 },\n      \"mipInt\": { value: 0 },\n      \"poleAxis\": { value: poleAxis }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n  return shaderMaterial;\n}\nfunction _getEquirectMaterial() {\n  return new ShaderMaterial({\n    name: \"EquirectangularToCubeUV\",\n    uniforms: {\n      \"envMap\": { value: null }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n}\nfunction _getCubemapMaterial() {\n  return new ShaderMaterial({\n    name: \"CubemapToCubeUV\",\n    uniforms: {\n      \"envMap\": { value: null },\n      \"flipEnvMap\": { value: -1 }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n}\nfunction _getCommonVertexShader() {\n  return (\n    /* glsl */\n    `\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`\n  );\n}\nfunction WebGLCubeUVMaps(renderer) {\n  let cubeUVmaps = /* @__PURE__ */ new WeakMap();\n  let pmremGenerator = null;\n  function get(texture) {\n    if (texture && texture.isTexture) {\n      const mapping = texture.mapping;\n      const isEquirectMap = mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping;\n      const isCubeMap = mapping === CubeReflectionMapping || mapping === CubeRefractionMapping;\n      if (isEquirectMap || isCubeMap) {\n        let renderTarget = cubeUVmaps.get(texture);\n        const currentPMREMVersion = renderTarget !== void 0 ? renderTarget.texture.pmremVersion : 0;\n        if (texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion) {\n          if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n          renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture, renderTarget) : pmremGenerator.fromCubemap(texture, renderTarget);\n          renderTarget.texture.pmremVersion = texture.pmremVersion;\n          cubeUVmaps.set(texture, renderTarget);\n          return renderTarget.texture;\n        } else {\n          if (renderTarget !== void 0) {\n            return renderTarget.texture;\n          } else {\n            const image = texture.image;\n            if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) {\n              if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n              renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture);\n              renderTarget.texture.pmremVersion = texture.pmremVersion;\n              cubeUVmaps.set(texture, renderTarget);\n              texture.addEventListener(\"dispose\", onTextureDispose);\n              return renderTarget.texture;\n            } else {\n              return null;\n            }\n          }\n        }\n      }\n    }\n    return texture;\n  }\n  function isCubeTextureComplete(image) {\n    let count = 0;\n    const length = 6;\n    for (let i = 0; i < length; i++) {\n      if (image[i] !== void 0) count++;\n    }\n    return count === length;\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    const cubemapUV = cubeUVmaps.get(texture);\n    if (cubemapUV !== void 0) {\n      cubeUVmaps.delete(texture);\n      cubemapUV.dispose();\n    }\n  }\n  function dispose() {\n    cubeUVmaps = /* @__PURE__ */ new WeakMap();\n    if (pmremGenerator !== null) {\n      pmremGenerator.dispose();\n      pmremGenerator = null;\n    }\n  }\n  return {\n    get,\n    dispose\n  };\n}\nfunction WebGLExtensions(gl) {\n  const extensions = {};\n  function getExtension(name) {\n    if (extensions[name] !== void 0) {\n      return extensions[name];\n    }\n    let extension;\n    switch (name) {\n      case \"WEBGL_depth_texture\":\n        extension = gl.getExtension(\"WEBGL_depth_texture\") || gl.getExtension(\"MOZ_WEBGL_depth_texture\") || gl.getExtension(\"WEBKIT_WEBGL_depth_texture\");\n        break;\n      case \"EXT_texture_filter_anisotropic\":\n        extension = gl.getExtension(\"EXT_texture_filter_anisotropic\") || gl.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || gl.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");\n        break;\n      case \"WEBGL_compressed_texture_s3tc\":\n        extension = gl.getExtension(\"WEBGL_compressed_texture_s3tc\") || gl.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");\n        break;\n      case \"WEBGL_compressed_texture_pvrtc\":\n        extension = gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");\n        break;\n      default:\n        extension = gl.getExtension(name);\n    }\n    extensions[name] = extension;\n    return extension;\n  }\n  return {\n    has: function(name) {\n      return getExtension(name) !== null;\n    },\n    init: function() {\n      getExtension(\"EXT_color_buffer_float\");\n      getExtension(\"WEBGL_clip_cull_distance\");\n      getExtension(\"OES_texture_float_linear\");\n      getExtension(\"EXT_color_buffer_half_float\");\n      getExtension(\"WEBGL_multisampled_render_to_texture\");\n      getExtension(\"WEBGL_render_shared_exponent\");\n    },\n    get: function(name) {\n      const extension = getExtension(name);\n      if (extension === null) {\n        warnOnce(\"THREE.WebGLRenderer: \" + name + \" extension not supported.\");\n      }\n      return extension;\n    }\n  };\n}\nfunction WebGLGeometries(gl, attributes, info, bindingStates) {\n  const geometries = {};\n  const wireframeAttributes = /* @__PURE__ */ new WeakMap();\n  function onGeometryDispose(event) {\n    const geometry = event.target;\n    if (geometry.index !== null) {\n      attributes.remove(geometry.index);\n    }\n    for (const name in geometry.attributes) {\n      attributes.remove(geometry.attributes[name]);\n    }\n    for (const name in geometry.morphAttributes) {\n      const array = geometry.morphAttributes[name];\n      for (let i = 0, l = array.length; i < l; i++) {\n        attributes.remove(array[i]);\n      }\n    }\n    geometry.removeEventListener(\"dispose\", onGeometryDispose);\n    delete geometries[geometry.id];\n    const attribute = wireframeAttributes.get(geometry);\n    if (attribute) {\n      attributes.remove(attribute);\n      wireframeAttributes.delete(geometry);\n    }\n    bindingStates.releaseStatesOfGeometry(geometry);\n    if (geometry.isInstancedBufferGeometry === true) {\n      delete geometry._maxInstanceCount;\n    }\n    info.memory.geometries--;\n  }\n  function get(object, geometry) {\n    if (geometries[geometry.id] === true) return geometry;\n    geometry.addEventListener(\"dispose\", onGeometryDispose);\n    geometries[geometry.id] = true;\n    info.memory.geometries++;\n    return geometry;\n  }\n  function update(geometry) {\n    const geometryAttributes = geometry.attributes;\n    for (const name in geometryAttributes) {\n      attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER);\n    }\n    const morphAttributes = geometry.morphAttributes;\n    for (const name in morphAttributes) {\n      const array = morphAttributes[name];\n      for (let i = 0, l = array.length; i < l; i++) {\n        attributes.update(array[i], gl.ARRAY_BUFFER);\n      }\n    }\n  }\n  function updateWireframeAttribute(geometry) {\n    const indices = [];\n    const geometryIndex = geometry.index;\n    const geometryPosition = geometry.attributes.position;\n    let version = 0;\n    if (geometryIndex !== null) {\n      const array = geometryIndex.array;\n      version = geometryIndex.version;\n      for (let i = 0, l = array.length; i < l; i += 3) {\n        const a = array[i + 0];\n        const b = array[i + 1];\n        const c = array[i + 2];\n        indices.push(a, b, b, c, c, a);\n      }\n    } else if (geometryPosition !== void 0) {\n      const array = geometryPosition.array;\n      version = geometryPosition.version;\n      for (let i = 0, l = array.length / 3 - 1; i < l; i += 3) {\n        const a = i + 0;\n        const b = i + 1;\n        const c = i + 2;\n        indices.push(a, b, b, c, c, a);\n      }\n    } else {\n      return;\n    }\n    const attribute = new (arrayNeedsUint32(indices) ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\n    attribute.version = version;\n    const previousAttribute = wireframeAttributes.get(geometry);\n    if (previousAttribute) attributes.remove(previousAttribute);\n    wireframeAttributes.set(geometry, attribute);\n  }\n  function getWireframeAttribute(geometry) {\n    const currentAttribute = wireframeAttributes.get(geometry);\n    if (currentAttribute) {\n      const geometryIndex = geometry.index;\n      if (geometryIndex !== null) {\n        if (currentAttribute.version < geometryIndex.version) {\n          updateWireframeAttribute(geometry);\n        }\n      }\n    } else {\n      updateWireframeAttribute(geometry);\n    }\n    return wireframeAttributes.get(geometry);\n  }\n  return {\n    get,\n    update,\n    getWireframeAttribute\n  };\n}\nfunction WebGLIndexedBufferRenderer(gl, extensions, info) {\n  let mode;\n  function setMode(value) {\n    mode = value;\n  }\n  let type, bytesPerElement;\n  function setIndex(value) {\n    type = value.type;\n    bytesPerElement = value.bytesPerElement;\n  }\n  function render(start, count) {\n    gl.drawElements(mode, count, type, start * bytesPerElement);\n    info.update(count, mode, 1);\n  }\n  function renderInstances(start, count, primcount) {\n    if (primcount === 0) return;\n    gl.drawElementsInstanced(mode, count, type, start * bytesPerElement, primcount);\n    info.update(count, mode, primcount);\n  }\n  function renderMultiDraw(starts, counts, drawCount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    extension.multiDrawElementsWEBGL(mode, counts, 0, type, starts, 0, drawCount);\n    let elementCount = 0;\n    for (let i = 0; i < drawCount; i++) {\n      elementCount += counts[i];\n    }\n    info.update(elementCount, mode, 1);\n  }\n  function renderMultiDrawInstances(starts, counts, drawCount, primcount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    if (extension === null) {\n      for (let i = 0; i < starts.length; i++) {\n        renderInstances(starts[i] / bytesPerElement, counts[i], primcount[i]);\n      }\n    } else {\n      extension.multiDrawElementsInstancedWEBGL(mode, counts, 0, type, starts, 0, primcount, 0, drawCount);\n      let elementCount = 0;\n      for (let i = 0; i < drawCount; i++) {\n        elementCount += counts[i];\n      }\n      for (let i = 0; i < primcount.length; i++) {\n        info.update(elementCount, mode, primcount[i]);\n      }\n    }\n  }\n  this.setMode = setMode;\n  this.setIndex = setIndex;\n  this.render = render;\n  this.renderInstances = renderInstances;\n  this.renderMultiDraw = renderMultiDraw;\n  this.renderMultiDrawInstances = renderMultiDrawInstances;\n}\nfunction WebGLInfo(gl) {\n  const memory = {\n    geometries: 0,\n    textures: 0\n  };\n  const render = {\n    frame: 0,\n    calls: 0,\n    triangles: 0,\n    points: 0,\n    lines: 0\n  };\n  function update(count, mode, instanceCount) {\n    render.calls++;\n    switch (mode) {\n      case gl.TRIANGLES:\n        render.triangles += instanceCount * (count / 3);\n        break;\n      case gl.LINES:\n        render.lines += instanceCount * (count / 2);\n        break;\n      case gl.LINE_STRIP:\n        render.lines += instanceCount * (count - 1);\n        break;\n      case gl.LINE_LOOP:\n        render.lines += instanceCount * count;\n        break;\n      case gl.POINTS:\n        render.points += instanceCount * count;\n        break;\n      default:\n        console.error(\"THREE.WebGLInfo: Unknown draw mode:\", mode);\n        break;\n    }\n  }\n  function reset() {\n    render.calls = 0;\n    render.triangles = 0;\n    render.points = 0;\n    render.lines = 0;\n  }\n  return {\n    memory,\n    render,\n    programs: null,\n    autoReset: true,\n    reset,\n    update\n  };\n}\nfunction WebGLMorphtargets(gl, capabilities, textures) {\n  const morphTextures = /* @__PURE__ */ new WeakMap();\n  const morph = new Vector4();\n  function update(object, geometry, program) {\n    const objectInfluences = object.morphTargetInfluences;\n    const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n    const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n    let entry = morphTextures.get(geometry);\n    if (entry === void 0 || entry.count !== morphTargetsCount) {\n      let disposeTexture = function() {\n        texture.dispose();\n        morphTextures.delete(geometry);\n        geometry.removeEventListener(\"dispose\", disposeTexture);\n      };\n      if (entry !== void 0) entry.texture.dispose();\n      const hasMorphPosition = geometry.morphAttributes.position !== void 0;\n      const hasMorphNormals = geometry.morphAttributes.normal !== void 0;\n      const hasMorphColors = geometry.morphAttributes.color !== void 0;\n      const morphTargets = geometry.morphAttributes.position || [];\n      const morphNormals = geometry.morphAttributes.normal || [];\n      const morphColors = geometry.morphAttributes.color || [];\n      let vertexDataCount = 0;\n      if (hasMorphPosition === true) vertexDataCount = 1;\n      if (hasMorphNormals === true) vertexDataCount = 2;\n      if (hasMorphColors === true) vertexDataCount = 3;\n      let width = geometry.attributes.position.count * vertexDataCount;\n      let height = 1;\n      if (width > capabilities.maxTextureSize) {\n        height = Math.ceil(width / capabilities.maxTextureSize);\n        width = capabilities.maxTextureSize;\n      }\n      const buffer = new Float32Array(width * height * 4 * morphTargetsCount);\n      const texture = new DataArrayTexture(buffer, width, height, morphTargetsCount);\n      texture.type = FloatType;\n      texture.needsUpdate = true;\n      const vertexDataStride = vertexDataCount * 4;\n      for (let i = 0; i < morphTargetsCount; i++) {\n        const morphTarget = morphTargets[i];\n        const morphNormal = morphNormals[i];\n        const morphColor = morphColors[i];\n        const offset = width * height * 4 * i;\n        for (let j = 0; j < morphTarget.count; j++) {\n          const stride = j * vertexDataStride;\n          if (hasMorphPosition === true) {\n            morph.fromBufferAttribute(morphTarget, j);\n            buffer[offset + stride + 0] = morph.x;\n            buffer[offset + stride + 1] = morph.y;\n            buffer[offset + stride + 2] = morph.z;\n            buffer[offset + stride + 3] = 0;\n          }\n          if (hasMorphNormals === true) {\n            morph.fromBufferAttribute(morphNormal, j);\n            buffer[offset + stride + 4] = morph.x;\n            buffer[offset + stride + 5] = morph.y;\n            buffer[offset + stride + 6] = morph.z;\n            buffer[offset + stride + 7] = 0;\n          }\n          if (hasMorphColors === true) {\n            morph.fromBufferAttribute(morphColor, j);\n            buffer[offset + stride + 8] = morph.x;\n            buffer[offset + stride + 9] = morph.y;\n            buffer[offset + stride + 10] = morph.z;\n            buffer[offset + stride + 11] = morphColor.itemSize === 4 ? morph.w : 1;\n          }\n        }\n      }\n      entry = {\n        count: morphTargetsCount,\n        texture,\n        size: new Vector2(width, height)\n      };\n      morphTextures.set(geometry, entry);\n      geometry.addEventListener(\"dispose\", disposeTexture);\n    }\n    if (object.isInstancedMesh === true && object.morphTexture !== null) {\n      program.getUniforms().setValue(gl, \"morphTexture\", object.morphTexture, textures);\n    } else {\n      let morphInfluencesSum = 0;\n      for (let i = 0; i < objectInfluences.length; i++) {\n        morphInfluencesSum += objectInfluences[i];\n      }\n      const morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n      program.getUniforms().setValue(gl, \"morphTargetBaseInfluence\", morphBaseInfluence);\n      program.getUniforms().setValue(gl, \"morphTargetInfluences\", objectInfluences);\n    }\n    program.getUniforms().setValue(gl, \"morphTargetsTexture\", entry.texture, textures);\n    program.getUniforms().setValue(gl, \"morphTargetsTextureSize\", entry.size);\n  }\n  return {\n    update\n  };\n}\nfunction WebGLObjects(gl, geometries, attributes, info) {\n  let updateMap = /* @__PURE__ */ new WeakMap();\n  function update(object) {\n    const frame = info.render.frame;\n    const geometry = object.geometry;\n    const buffergeometry = geometries.get(object, geometry);\n    if (updateMap.get(buffergeometry) !== frame) {\n      geometries.update(buffergeometry);\n      updateMap.set(buffergeometry, frame);\n    }\n    if (object.isInstancedMesh) {\n      if (object.hasEventListener(\"dispose\", onInstancedMeshDispose) === false) {\n        object.addEventListener(\"dispose\", onInstancedMeshDispose);\n      }\n      if (updateMap.get(object) !== frame) {\n        attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER);\n        if (object.instanceColor !== null) {\n          attributes.update(object.instanceColor, gl.ARRAY_BUFFER);\n        }\n        updateMap.set(object, frame);\n      }\n    }\n    if (object.isSkinnedMesh) {\n      const skeleton = object.skeleton;\n      if (updateMap.get(skeleton) !== frame) {\n        skeleton.update();\n        updateMap.set(skeleton, frame);\n      }\n    }\n    return buffergeometry;\n  }\n  function dispose() {\n    updateMap = /* @__PURE__ */ new WeakMap();\n  }\n  function onInstancedMeshDispose(event) {\n    const instancedMesh = event.target;\n    instancedMesh.removeEventListener(\"dispose\", onInstancedMeshDispose);\n    attributes.remove(instancedMesh.instanceMatrix);\n    if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor);\n  }\n  return {\n    update,\n    dispose\n  };\n}\nvar DepthTexture = class extends Texture {\n  constructor(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat) {\n    if (format !== DepthFormat && format !== DepthStencilFormat) {\n      throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");\n    }\n    if (type === void 0 && format === DepthFormat) type = UnsignedIntType;\n    if (type === void 0 && format === DepthStencilFormat) type = UnsignedInt248Type;\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isDepthTexture = true;\n    this.image = { width, height };\n    this.magFilter = magFilter !== void 0 ? magFilter : NearestFilter;\n    this.minFilter = minFilter !== void 0 ? minFilter : NearestFilter;\n    this.flipY = false;\n    this.generateMipmaps = false;\n    this.compareFunction = null;\n  }\n  copy(source) {\n    super.copy(source);\n    this.compareFunction = source.compareFunction;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.compareFunction !== null) data.compareFunction = this.compareFunction;\n    return data;\n  }\n};\nvar emptyTexture = /* @__PURE__ */ new Texture();\nvar emptyShadowTexture = /* @__PURE__ */ new DepthTexture(1, 1);\nvar emptyArrayTexture = /* @__PURE__ */ new DataArrayTexture();\nvar empty3dTexture = /* @__PURE__ */ new Data3DTexture();\nvar emptyCubeTexture = /* @__PURE__ */ new CubeTexture();\nvar arrayCacheF32 = [];\nvar arrayCacheI32 = [];\nvar mat4array = new Float32Array(16);\nvar mat3array = new Float32Array(9);\nvar mat2array = new Float32Array(4);\nfunction flatten(array, nBlocks, blockSize) {\n  const firstElem = array[0];\n  if (firstElem <= 0 || firstElem > 0) return array;\n  const n = nBlocks * blockSize;\n  let r = arrayCacheF32[n];\n  if (r === void 0) {\n    r = new Float32Array(n);\n    arrayCacheF32[n] = r;\n  }\n  if (nBlocks !== 0) {\n    firstElem.toArray(r, 0);\n    for (let i = 1, offset = 0; i !== nBlocks; ++i) {\n      offset += blockSize;\n      array[i].toArray(r, offset);\n    }\n  }\n  return r;\n}\nfunction arraysEqual(a, b) {\n  if (a.length !== b.length) return false;\n  for (let i = 0, l = a.length; i < l; i++) {\n    if (a[i] !== b[i]) return false;\n  }\n  return true;\n}\nfunction copyArray(a, b) {\n  for (let i = 0, l = b.length; i < l; i++) {\n    a[i] = b[i];\n  }\n}\nfunction allocTexUnits(textures, n) {\n  let r = arrayCacheI32[n];\n  if (r === void 0) {\n    r = new Int32Array(n);\n    arrayCacheI32[n] = r;\n  }\n  for (let i = 0; i !== n; ++i) {\n    r[i] = textures.allocateTextureUnit();\n  }\n  return r;\n}\nfunction setValueV1f(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1f(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2f(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3f(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else if (v.r !== void 0) {\n    if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\n      gl.uniform3f(this.addr, v.r, v.g, v.b);\n      cache[0] = v.r;\n      cache[1] = v.g;\n      cache[2] = v.b;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueM2(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix2fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat2array.set(elements);\n    gl.uniformMatrix2fv(this.addr, false, mat2array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueM3(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix3fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat3array.set(elements);\n    gl.uniformMatrix3fv(this.addr, false, mat3array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueM4(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix4fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat4array.set(elements);\n    gl.uniformMatrix4fv(this.addr, false, mat4array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueV1i(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1i(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2i(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3i(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4i(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV1ui(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1ui(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2ui(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3ui(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4ui(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueT1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  let emptyTexture2D;\n  if (this.type === gl.SAMPLER_2D_SHADOW) {\n    emptyShadowTexture.compareFunction = LessEqualCompare;\n    emptyTexture2D = emptyShadowTexture;\n  } else {\n    emptyTexture2D = emptyTexture;\n  }\n  textures.setTexture2D(v || emptyTexture2D, unit);\n}\nfunction setValueT3D1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTexture3D(v || empty3dTexture, unit);\n}\nfunction setValueT6(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTextureCube(v || emptyCubeTexture, unit);\n}\nfunction setValueT2DArray1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTexture2DArray(v || emptyArrayTexture, unit);\n}\nfunction getSingularSetter(type) {\n  switch (type) {\n    case 5126:\n      return setValueV1f;\n    // FLOAT\n    case 35664:\n      return setValueV2f;\n    // _VEC2\n    case 35665:\n      return setValueV3f;\n    // _VEC3\n    case 35666:\n      return setValueV4f;\n    // _VEC4\n    case 35674:\n      return setValueM2;\n    // _MAT2\n    case 35675:\n      return setValueM3;\n    // _MAT3\n    case 35676:\n      return setValueM4;\n    // _MAT4\n    case 5124:\n    case 35670:\n      return setValueV1i;\n    // INT, BOOL\n    case 35667:\n    case 35671:\n      return setValueV2i;\n    // _VEC2\n    case 35668:\n    case 35672:\n      return setValueV3i;\n    // _VEC3\n    case 35669:\n    case 35673:\n      return setValueV4i;\n    // _VEC4\n    case 5125:\n      return setValueV1ui;\n    // UINT\n    case 36294:\n      return setValueV2ui;\n    // _VEC2\n    case 36295:\n      return setValueV3ui;\n    // _VEC3\n    case 36296:\n      return setValueV4ui;\n    // _VEC4\n    case 35678:\n    // SAMPLER_2D\n    case 36198:\n    // SAMPLER_EXTERNAL_OES\n    case 36298:\n    // INT_SAMPLER_2D\n    case 36306:\n    // UNSIGNED_INT_SAMPLER_2D\n    case 35682:\n      return setValueT1;\n    case 35679:\n    // SAMPLER_3D\n    case 36299:\n    // INT_SAMPLER_3D\n    case 36307:\n      return setValueT3D1;\n    case 35680:\n    // SAMPLER_CUBE\n    case 36300:\n    // INT_SAMPLER_CUBE\n    case 36308:\n    // UNSIGNED_INT_SAMPLER_CUBE\n    case 36293:\n      return setValueT6;\n    case 36289:\n    // SAMPLER_2D_ARRAY\n    case 36303:\n    // INT_SAMPLER_2D_ARRAY\n    case 36311:\n    // UNSIGNED_INT_SAMPLER_2D_ARRAY\n    case 36292:\n      return setValueT2DArray1;\n  }\n}\nfunction setValueV1fArray(gl, v) {\n  gl.uniform1fv(this.addr, v);\n}\nfunction setValueV2fArray(gl, v) {\n  const data = flatten(v, this.size, 2);\n  gl.uniform2fv(this.addr, data);\n}\nfunction setValueV3fArray(gl, v) {\n  const data = flatten(v, this.size, 3);\n  gl.uniform3fv(this.addr, data);\n}\nfunction setValueV4fArray(gl, v) {\n  const data = flatten(v, this.size, 4);\n  gl.uniform4fv(this.addr, data);\n}\nfunction setValueM2Array(gl, v) {\n  const data = flatten(v, this.size, 4);\n  gl.uniformMatrix2fv(this.addr, false, data);\n}\nfunction setValueM3Array(gl, v) {\n  const data = flatten(v, this.size, 9);\n  gl.uniformMatrix3fv(this.addr, false, data);\n}\nfunction setValueM4Array(gl, v) {\n  const data = flatten(v, this.size, 16);\n  gl.uniformMatrix4fv(this.addr, false, data);\n}\nfunction setValueV1iArray(gl, v) {\n  gl.uniform1iv(this.addr, v);\n}\nfunction setValueV2iArray(gl, v) {\n  gl.uniform2iv(this.addr, v);\n}\nfunction setValueV3iArray(gl, v) {\n  gl.uniform3iv(this.addr, v);\n}\nfunction setValueV4iArray(gl, v) {\n  gl.uniform4iv(this.addr, v);\n}\nfunction setValueV1uiArray(gl, v) {\n  gl.uniform1uiv(this.addr, v);\n}\nfunction setValueV2uiArray(gl, v) {\n  gl.uniform2uiv(this.addr, v);\n}\nfunction setValueV3uiArray(gl, v) {\n  gl.uniform3uiv(this.addr, v);\n}\nfunction setValueV4uiArray(gl, v) {\n  gl.uniform4uiv(this.addr, v);\n}\nfunction setValueT1Array(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture2D(v[i] || emptyTexture, units[i]);\n  }\n}\nfunction setValueT3DArray(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture3D(v[i] || empty3dTexture, units[i]);\n  }\n}\nfunction setValueT6Array(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTextureCube(v[i] || emptyCubeTexture, units[i]);\n  }\n}\nfunction setValueT2DArrayArray(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture2DArray(v[i] || emptyArrayTexture, units[i]);\n  }\n}\nfunction getPureArraySetter(type) {\n  switch (type) {\n    case 5126:\n      return setValueV1fArray;\n    // FLOAT\n    case 35664:\n      return setValueV2fArray;\n    // _VEC2\n    case 35665:\n      return setValueV3fArray;\n    // _VEC3\n    case 35666:\n      return setValueV4fArray;\n    // _VEC4\n    case 35674:\n      return setValueM2Array;\n    // _MAT2\n    case 35675:\n      return setValueM3Array;\n    // _MAT3\n    case 35676:\n      return setValueM4Array;\n    // _MAT4\n    case 5124:\n    case 35670:\n      return setValueV1iArray;\n    // INT, BOOL\n    case 35667:\n    case 35671:\n      return setValueV2iArray;\n    // _VEC2\n    case 35668:\n    case 35672:\n      return setValueV3iArray;\n    // _VEC3\n    case 35669:\n    case 35673:\n      return setValueV4iArray;\n    // _VEC4\n    case 5125:\n      return setValueV1uiArray;\n    // UINT\n    case 36294:\n      return setValueV2uiArray;\n    // _VEC2\n    case 36295:\n      return setValueV3uiArray;\n    // _VEC3\n    case 36296:\n      return setValueV4uiArray;\n    // _VEC4\n    case 35678:\n    // SAMPLER_2D\n    case 36198:\n    // SAMPLER_EXTERNAL_OES\n    case 36298:\n    // INT_SAMPLER_2D\n    case 36306:\n    // UNSIGNED_INT_SAMPLER_2D\n    case 35682:\n      return setValueT1Array;\n    case 35679:\n    // SAMPLER_3D\n    case 36299:\n    // INT_SAMPLER_3D\n    case 36307:\n      return setValueT3DArray;\n    case 35680:\n    // SAMPLER_CUBE\n    case 36300:\n    // INT_SAMPLER_CUBE\n    case 36308:\n    // UNSIGNED_INT_SAMPLER_CUBE\n    case 36293:\n      return setValueT6Array;\n    case 36289:\n    // SAMPLER_2D_ARRAY\n    case 36303:\n    // INT_SAMPLER_2D_ARRAY\n    case 36311:\n    // UNSIGNED_INT_SAMPLER_2D_ARRAY\n    case 36292:\n      return setValueT2DArrayArray;\n  }\n}\nvar SingleUniform = class {\n  constructor(id, activeInfo, addr) {\n    this.id = id;\n    this.addr = addr;\n    this.cache = [];\n    this.type = activeInfo.type;\n    this.setValue = getSingularSetter(activeInfo.type);\n  }\n};\nvar PureArrayUniform = class {\n  constructor(id, activeInfo, addr) {\n    this.id = id;\n    this.addr = addr;\n    this.cache = [];\n    this.type = activeInfo.type;\n    this.size = activeInfo.size;\n    this.setValue = getPureArraySetter(activeInfo.type);\n  }\n};\nvar StructuredUniform = class {\n  constructor(id) {\n    this.id = id;\n    this.seq = [];\n    this.map = {};\n  }\n  setValue(gl, value, textures) {\n    const seq = this.seq;\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i];\n      u.setValue(gl, value[u.id], textures);\n    }\n  }\n};\nvar RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\nfunction addUniform(container, uniformObject) {\n  container.seq.push(uniformObject);\n  container.map[uniformObject.id] = uniformObject;\n}\nfunction parseUniform(activeInfo, addr, container) {\n  const path = activeInfo.name, pathLength = path.length;\n  RePathPart.lastIndex = 0;\n  while (true) {\n    const match = RePathPart.exec(path), matchEnd = RePathPart.lastIndex;\n    let id = match[1];\n    const idIsIndex = match[2] === \"]\", subscript = match[3];\n    if (idIsIndex) id = id | 0;\n    if (subscript === void 0 || subscript === \"[\" && matchEnd + 2 === pathLength) {\n      addUniform(container, subscript === void 0 ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\n      break;\n    } else {\n      const map = container.map;\n      let next = map[id];\n      if (next === void 0) {\n        next = new StructuredUniform(id);\n        addUniform(container, next);\n      }\n      container = next;\n    }\n  }\n}\nvar WebGLUniforms = class {\n  constructor(gl, program) {\n    this.seq = [];\n    this.map = {};\n    const n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n    for (let i = 0; i < n; ++i) {\n      const info = gl.getActiveUniform(program, i), addr = gl.getUniformLocation(program, info.name);\n      parseUniform(info, addr, this);\n    }\n  }\n  setValue(gl, name, value, textures) {\n    const u = this.map[name];\n    if (u !== void 0) u.setValue(gl, value, textures);\n  }\n  setOptional(gl, object, name) {\n    const v = object[name];\n    if (v !== void 0) this.setValue(gl, name, v);\n  }\n  static upload(gl, seq, values, textures) {\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i], v = values[u.id];\n      if (v.needsUpdate !== false) {\n        u.setValue(gl, v.value, textures);\n      }\n    }\n  }\n  static seqWithValue(seq, values) {\n    const r = [];\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i];\n      if (u.id in values) r.push(u);\n    }\n    return r;\n  }\n};\nfunction WebGLShader(gl, type, string) {\n  const shader = gl.createShader(type);\n  gl.shaderSource(shader, string);\n  gl.compileShader(shader);\n  return shader;\n}\nvar COMPLETION_STATUS_KHR = 37297;\nvar programIdCount = 0;\nfunction handleSource(string, errorLine) {\n  const lines = string.split(\"\\n\");\n  const lines2 = [];\n  const from = Math.max(errorLine - 6, 0);\n  const to = Math.min(errorLine + 6, lines.length);\n  for (let i = from; i < to; i++) {\n    const line = i + 1;\n    lines2.push(`${line === errorLine ? \">\" : \" \"} ${line}: ${lines[i]}`);\n  }\n  return lines2.join(\"\\n\");\n}\nfunction getEncodingComponents(colorSpace) {\n  const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n  const encodingPrimaries = ColorManagement.getPrimaries(colorSpace);\n  let gamutMapping;\n  if (workingPrimaries === encodingPrimaries) {\n    gamutMapping = \"\";\n  } else if (workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries) {\n    gamutMapping = \"LinearDisplayP3ToLinearSRGB\";\n  } else if (workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries) {\n    gamutMapping = \"LinearSRGBToLinearDisplayP3\";\n  }\n  switch (colorSpace) {\n    case LinearSRGBColorSpace:\n    case LinearDisplayP3ColorSpace:\n      return [gamutMapping, \"LinearTransferOETF\"];\n    case SRGBColorSpace:\n    case DisplayP3ColorSpace:\n      return [gamutMapping, \"sRGBTransferOETF\"];\n    default:\n      console.warn(\"THREE.WebGLProgram: Unsupported color space:\", colorSpace);\n      return [gamutMapping, \"LinearTransferOETF\"];\n  }\n}\nfunction getShaderErrors(gl, shader, type) {\n  const status = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n  const errors = gl.getShaderInfoLog(shader).trim();\n  if (status && errors === \"\") return \"\";\n  const errorMatches = /ERROR: 0:(\\d+)/.exec(errors);\n  if (errorMatches) {\n    const errorLine = parseInt(errorMatches[1]);\n    return type.toUpperCase() + \"\\n\\n\" + errors + \"\\n\\n\" + handleSource(gl.getShaderSource(shader), errorLine);\n  } else {\n    return errors;\n  }\n}\nfunction getTexelEncodingFunction(functionName, colorSpace) {\n  const components = getEncodingComponents(colorSpace);\n  return `vec4 ${functionName}( vec4 value ) { return ${components[0]}( ${components[1]}( value ) ); }`;\n}\nfunction getToneMappingFunction(functionName, toneMapping) {\n  let toneMappingName;\n  switch (toneMapping) {\n    case LinearToneMapping:\n      toneMappingName = \"Linear\";\n      break;\n    case ReinhardToneMapping:\n      toneMappingName = \"Reinhard\";\n      break;\n    case CineonToneMapping:\n      toneMappingName = \"Cineon\";\n      break;\n    case ACESFilmicToneMapping:\n      toneMappingName = \"ACESFilmic\";\n      break;\n    case AgXToneMapping:\n      toneMappingName = \"AgX\";\n      break;\n    case NeutralToneMapping:\n      toneMappingName = \"Neutral\";\n      break;\n    case CustomToneMapping:\n      toneMappingName = \"Custom\";\n      break;\n    default:\n      console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\", toneMapping);\n      toneMappingName = \"Linear\";\n  }\n  return \"vec3 \" + functionName + \"( vec3 color ) { return \" + toneMappingName + \"ToneMapping( color ); }\";\n}\nvar _v0$1 = /* @__PURE__ */ new Vector3();\nfunction getLuminanceFunction() {\n  ColorManagement.getLuminanceCoefficients(_v0$1);\n  const r = _v0$1.x.toFixed(4);\n  const g = _v0$1.y.toFixed(4);\n  const b = _v0$1.z.toFixed(4);\n  return [\n    \"float luminance( const in vec3 rgb ) {\",\n    `\tconst vec3 weights = vec3( ${r}, ${g}, ${b} );`,\n    \"\treturn dot( weights, rgb );\",\n    \"}\"\n  ].join(\"\\n\");\n}\nfunction generateVertexExtensions(parameters) {\n  const chunks = [\n    parameters.extensionClipCullDistance ? \"#extension GL_ANGLE_clip_cull_distance : require\" : \"\",\n    parameters.extensionMultiDraw ? \"#extension GL_ANGLE_multi_draw : require\" : \"\"\n  ];\n  return chunks.filter(filterEmptyLine).join(\"\\n\");\n}\nfunction generateDefines(defines) {\n  const chunks = [];\n  for (const name in defines) {\n    const value = defines[name];\n    if (value === false) continue;\n    chunks.push(\"#define \" + name + \" \" + value);\n  }\n  return chunks.join(\"\\n\");\n}\nfunction fetchAttributeLocations(gl, program) {\n  const attributes = {};\n  const n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n  for (let i = 0; i < n; i++) {\n    const info = gl.getActiveAttrib(program, i);\n    const name = info.name;\n    let locationSize = 1;\n    if (info.type === gl.FLOAT_MAT2) locationSize = 2;\n    if (info.type === gl.FLOAT_MAT3) locationSize = 3;\n    if (info.type === gl.FLOAT_MAT4) locationSize = 4;\n    attributes[name] = {\n      type: info.type,\n      location: gl.getAttribLocation(program, name),\n      locationSize\n    };\n  }\n  return attributes;\n}\nfunction filterEmptyLine(string) {\n  return string !== \"\";\n}\nfunction replaceLightNums(string, parameters) {\n  const numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n  return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\n}\nfunction replaceClippingPlaneNums(string, parameters) {\n  return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\n}\nvar includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\nfunction resolveIncludes(string) {\n  return string.replace(includePattern, includeReplacer);\n}\nvar shaderChunkMap = /* @__PURE__ */ new Map();\nfunction includeReplacer(match, include) {\n  let string = ShaderChunk[include];\n  if (string === void 0) {\n    const newInclude = shaderChunkMap.get(include);\n    if (newInclude !== void 0) {\n      string = ShaderChunk[newInclude];\n      console.warn('THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude);\n    } else {\n      throw new Error(\"Can not resolve #include <\" + include + \">\");\n    }\n  }\n  return resolveIncludes(string);\n}\nvar unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\nfunction unrollLoops(string) {\n  return string.replace(unrollLoopPattern, loopReplacer);\n}\nfunction loopReplacer(match, start, end, snippet) {\n  let string = \"\";\n  for (let i = parseInt(start); i < parseInt(end); i++) {\n    string += snippet.replace(/\\[\\s*i\\s*\\]/g, \"[ \" + i + \" ]\").replace(/UNROLLED_LOOP_INDEX/g, i);\n  }\n  return string;\n}\nfunction generatePrecision(parameters) {\n  let precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n  if (parameters.precision === \"highp\") {\n    precisionstring += \"\\n#define HIGH_PRECISION\";\n  } else if (parameters.precision === \"mediump\") {\n    precisionstring += \"\\n#define MEDIUM_PRECISION\";\n  } else if (parameters.precision === \"lowp\") {\n    precisionstring += \"\\n#define LOW_PRECISION\";\n  }\n  return precisionstring;\n}\nfunction generateShadowMapTypeDefine(parameters) {\n  let shadowMapTypeDefine = \"SHADOWMAP_TYPE_BASIC\";\n  if (parameters.shadowMapType === PCFShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_PCF\";\n  } else if (parameters.shadowMapType === PCFSoftShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_PCF_SOFT\";\n  } else if (parameters.shadowMapType === VSMShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_VSM\";\n  }\n  return shadowMapTypeDefine;\n}\nfunction generateEnvMapTypeDefine(parameters) {\n  let envMapTypeDefine = \"ENVMAP_TYPE_CUBE\";\n  if (parameters.envMap) {\n    switch (parameters.envMapMode) {\n      case CubeReflectionMapping:\n      case CubeRefractionMapping:\n        envMapTypeDefine = \"ENVMAP_TYPE_CUBE\";\n        break;\n      case CubeUVReflectionMapping:\n        envMapTypeDefine = \"ENVMAP_TYPE_CUBE_UV\";\n        break;\n    }\n  }\n  return envMapTypeDefine;\n}\nfunction generateEnvMapModeDefine(parameters) {\n  let envMapModeDefine = \"ENVMAP_MODE_REFLECTION\";\n  if (parameters.envMap) {\n    switch (parameters.envMapMode) {\n      case CubeRefractionMapping:\n        envMapModeDefine = \"ENVMAP_MODE_REFRACTION\";\n        break;\n    }\n  }\n  return envMapModeDefine;\n}\nfunction generateEnvMapBlendingDefine(parameters) {\n  let envMapBlendingDefine = \"ENVMAP_BLENDING_NONE\";\n  if (parameters.envMap) {\n    switch (parameters.combine) {\n      case MultiplyOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_MULTIPLY\";\n        break;\n      case MixOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_MIX\";\n        break;\n      case AddOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_ADD\";\n        break;\n    }\n  }\n  return envMapBlendingDefine;\n}\nfunction generateCubeUVSize(parameters) {\n  const imageHeight = parameters.envMapCubeUVHeight;\n  if (imageHeight === null) return null;\n  const maxMip = Math.log2(imageHeight) - 2;\n  const texelHeight = 1 / imageHeight;\n  const texelWidth = 1 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16));\n  return { texelWidth, texelHeight, maxMip };\n}\nfunction WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\n  const gl = renderer.getContext();\n  const defines = parameters.defines;\n  let vertexShader = parameters.vertexShader;\n  let fragmentShader = parameters.fragmentShader;\n  const shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\n  const envMapTypeDefine = generateEnvMapTypeDefine(parameters);\n  const envMapModeDefine = generateEnvMapModeDefine(parameters);\n  const envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\n  const envMapCubeUVSize = generateCubeUVSize(parameters);\n  const customVertexExtensions = generateVertexExtensions(parameters);\n  const customDefines = generateDefines(defines);\n  const program = gl.createProgram();\n  let prefixVertex, prefixFragment;\n  let versionString = parameters.glslVersion ? \"#version \" + parameters.glslVersion + \"\\n\" : \"\";\n  if (parameters.isRawShaderMaterial) {\n    prefixVertex = [\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines\n    ].filter(filterEmptyLine).join(\"\\n\");\n    if (prefixVertex.length > 0) {\n      prefixVertex += \"\\n\";\n    }\n    prefixFragment = [\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines\n    ].filter(filterEmptyLine).join(\"\\n\");\n    if (prefixFragment.length > 0) {\n      prefixFragment += \"\\n\";\n    }\n  } else {\n    prefixVertex = [\n      generatePrecision(parameters),\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines,\n      parameters.extensionClipCullDistance ? \"#define USE_CLIP_DISTANCE\" : \"\",\n      parameters.batching ? \"#define USE_BATCHING\" : \"\",\n      parameters.batchingColor ? \"#define USE_BATCHING_COLOR\" : \"\",\n      parameters.instancing ? \"#define USE_INSTANCING\" : \"\",\n      parameters.instancingColor ? \"#define USE_INSTANCING_COLOR\" : \"\",\n      parameters.instancingMorph ? \"#define USE_INSTANCING_MORPH\" : \"\",\n      parameters.useFog && parameters.fog ? \"#define USE_FOG\" : \"\",\n      parameters.useFog && parameters.fogExp2 ? \"#define FOG_EXP2\" : \"\",\n      parameters.map ? \"#define USE_MAP\" : \"\",\n      parameters.envMap ? \"#define USE_ENVMAP\" : \"\",\n      parameters.envMap ? \"#define \" + envMapModeDefine : \"\",\n      parameters.lightMap ? \"#define USE_LIGHTMAP\" : \"\",\n      parameters.aoMap ? \"#define USE_AOMAP\" : \"\",\n      parameters.bumpMap ? \"#define USE_BUMPMAP\" : \"\",\n      parameters.normalMap ? \"#define USE_NORMALMAP\" : \"\",\n      parameters.normalMapObjectSpace ? \"#define USE_NORMALMAP_OBJECTSPACE\" : \"\",\n      parameters.normalMapTangentSpace ? \"#define USE_NORMALMAP_TANGENTSPACE\" : \"\",\n      parameters.displacementMap ? \"#define USE_DISPLACEMENTMAP\" : \"\",\n      parameters.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\",\n      parameters.anisotropy ? \"#define USE_ANISOTROPY\" : \"\",\n      parameters.anisotropyMap ? \"#define USE_ANISOTROPYMAP\" : \"\",\n      parameters.clearcoatMap ? \"#define USE_CLEARCOATMAP\" : \"\",\n      parameters.clearcoatRoughnessMap ? \"#define USE_CLEARCOAT_ROUGHNESSMAP\" : \"\",\n      parameters.clearcoatNormalMap ? \"#define USE_CLEARCOAT_NORMALMAP\" : \"\",\n      parameters.iridescenceMap ? \"#define USE_IRIDESCENCEMAP\" : \"\",\n      parameters.iridescenceThicknessMap ? \"#define USE_IRIDESCENCE_THICKNESSMAP\" : \"\",\n      parameters.specularMap ? \"#define USE_SPECULARMAP\" : \"\",\n      parameters.specularColorMap ? \"#define USE_SPECULAR_COLORMAP\" : \"\",\n      parameters.specularIntensityMap ? \"#define USE_SPECULAR_INTENSITYMAP\" : \"\",\n      parameters.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\",\n      parameters.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\",\n      parameters.alphaMap ? \"#define USE_ALPHAMAP\" : \"\",\n      parameters.alphaHash ? \"#define USE_ALPHAHASH\" : \"\",\n      parameters.transmission ? \"#define USE_TRANSMISSION\" : \"\",\n      parameters.transmissionMap ? \"#define USE_TRANSMISSIONMAP\" : \"\",\n      parameters.thicknessMap ? \"#define USE_THICKNESSMAP\" : \"\",\n      parameters.sheenColorMap ? \"#define USE_SHEEN_COLORMAP\" : \"\",\n      parameters.sheenRoughnessMap ? \"#define USE_SHEEN_ROUGHNESSMAP\" : \"\",\n      //\n      parameters.mapUv ? \"#define MAP_UV \" + parameters.mapUv : \"\",\n      parameters.alphaMapUv ? \"#define ALPHAMAP_UV \" + parameters.alphaMapUv : \"\",\n      parameters.lightMapUv ? \"#define LIGHTMAP_UV \" + parameters.lightMapUv : \"\",\n      parameters.aoMapUv ? \"#define AOMAP_UV \" + parameters.aoMapUv : \"\",\n      parameters.emissiveMapUv ? \"#define EMISSIVEMAP_UV \" + parameters.emissiveMapUv : \"\",\n      parameters.bumpMapUv ? \"#define BUMPMAP_UV \" + parameters.bumpMapUv : \"\",\n      parameters.normalMapUv ? \"#define NORMALMAP_UV \" + parameters.normalMapUv : \"\",\n      parameters.displacementMapUv ? \"#define DISPLACEMENTMAP_UV \" + parameters.displacementMapUv : \"\",\n      parameters.metalnessMapUv ? \"#define METALNESSMAP_UV \" + parameters.metalnessMapUv : \"\",\n      parameters.roughnessMapUv ? \"#define ROUGHNESSMAP_UV \" + parameters.roughnessMapUv : \"\",\n      parameters.anisotropyMapUv ? \"#define ANISOTROPYMAP_UV \" + parameters.anisotropyMapUv : \"\",\n      parameters.clearcoatMapUv ? \"#define CLEARCOATMAP_UV \" + parameters.clearcoatMapUv : \"\",\n      parameters.clearcoatNormalMapUv ? \"#define CLEARCOAT_NORMALMAP_UV \" + parameters.clearcoatNormalMapUv : \"\",\n      parameters.clearcoatRoughnessMapUv ? \"#define CLEARCOAT_ROUGHNESSMAP_UV \" + parameters.clearcoatRoughnessMapUv : \"\",\n      parameters.iridescenceMapUv ? \"#define IRIDESCENCEMAP_UV \" + parameters.iridescenceMapUv : \"\",\n      parameters.iridescenceThicknessMapUv ? \"#define IRIDESCENCE_THICKNESSMAP_UV \" + parameters.iridescenceThicknessMapUv : \"\",\n      parameters.sheenColorMapUv ? \"#define SHEEN_COLORMAP_UV \" + parameters.sheenColorMapUv : \"\",\n      parameters.sheenRoughnessMapUv ? \"#define SHEEN_ROUGHNESSMAP_UV \" + parameters.sheenRoughnessMapUv : \"\",\n      parameters.specularMapUv ? \"#define SPECULARMAP_UV \" + parameters.specularMapUv : \"\",\n      parameters.specularColorMapUv ? \"#define SPECULAR_COLORMAP_UV \" + parameters.specularColorMapUv : \"\",\n      parameters.specularIntensityMapUv ? \"#define SPECULAR_INTENSITYMAP_UV \" + parameters.specularIntensityMapUv : \"\",\n      parameters.transmissionMapUv ? \"#define TRANSMISSIONMAP_UV \" + parameters.transmissionMapUv : \"\",\n      parameters.thicknessMapUv ? \"#define THICKNESSMAP_UV \" + parameters.thicknessMapUv : \"\",\n      //\n      parameters.vertexTangents && parameters.flatShading === false ? \"#define USE_TANGENT\" : \"\",\n      parameters.vertexColors ? \"#define USE_COLOR\" : \"\",\n      parameters.vertexAlphas ? \"#define USE_COLOR_ALPHA\" : \"\",\n      parameters.vertexUv1s ? \"#define USE_UV1\" : \"\",\n      parameters.vertexUv2s ? \"#define USE_UV2\" : \"\",\n      parameters.vertexUv3s ? \"#define USE_UV3\" : \"\",\n      parameters.pointsUvs ? \"#define USE_POINTS_UV\" : \"\",\n      parameters.flatShading ? \"#define FLAT_SHADED\" : \"\",\n      parameters.skinning ? \"#define USE_SKINNING\" : \"\",\n      parameters.morphTargets ? \"#define USE_MORPHTARGETS\" : \"\",\n      parameters.morphNormals && parameters.flatShading === false ? \"#define USE_MORPHNORMALS\" : \"\",\n      parameters.morphColors ? \"#define USE_MORPHCOLORS\" : \"\",\n      parameters.morphTargetsCount > 0 ? \"#define MORPHTARGETS_TEXTURE_STRIDE \" + parameters.morphTextureStride : \"\",\n      parameters.morphTargetsCount > 0 ? \"#define MORPHTARGETS_COUNT \" + parameters.morphTargetsCount : \"\",\n      parameters.doubleSided ? \"#define DOUBLE_SIDED\" : \"\",\n      parameters.flipSided ? \"#define FLIP_SIDED\" : \"\",\n      parameters.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\",\n      parameters.shadowMapEnabled ? \"#define \" + shadowMapTypeDefine : \"\",\n      parameters.sizeAttenuation ? \"#define USE_SIZEATTENUATION\" : \"\",\n      parameters.numLightProbes > 0 ? \"#define USE_LIGHT_PROBES\" : \"\",\n      parameters.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\",\n      parameters.reverseDepthBuffer ? \"#define USE_REVERSEDEPTHBUF\" : \"\",\n      \"uniform mat4 modelMatrix;\",\n      \"uniform mat4 modelViewMatrix;\",\n      \"uniform mat4 projectionMatrix;\",\n      \"uniform mat4 viewMatrix;\",\n      \"uniform mat3 normalMatrix;\",\n      \"uniform vec3 cameraPosition;\",\n      \"uniform bool isOrthographic;\",\n      \"#ifdef USE_INSTANCING\",\n      \"\tattribute mat4 instanceMatrix;\",\n      \"#endif\",\n      \"#ifdef USE_INSTANCING_COLOR\",\n      \"\tattribute vec3 instanceColor;\",\n      \"#endif\",\n      \"#ifdef USE_INSTANCING_MORPH\",\n      \"\tuniform sampler2D morphTexture;\",\n      \"#endif\",\n      \"attribute vec3 position;\",\n      \"attribute vec3 normal;\",\n      \"attribute vec2 uv;\",\n      \"#ifdef USE_UV1\",\n      \"\tattribute vec2 uv1;\",\n      \"#endif\",\n      \"#ifdef USE_UV2\",\n      \"\tattribute vec2 uv2;\",\n      \"#endif\",\n      \"#ifdef USE_UV3\",\n      \"\tattribute vec2 uv3;\",\n      \"#endif\",\n      \"#ifdef USE_TANGENT\",\n      \"\tattribute vec4 tangent;\",\n      \"#endif\",\n      \"#if defined( USE_COLOR_ALPHA )\",\n      \"\tattribute vec4 color;\",\n      \"#elif defined( USE_COLOR )\",\n      \"\tattribute vec3 color;\",\n      \"#endif\",\n      \"#ifdef USE_SKINNING\",\n      \"\tattribute vec4 skinIndex;\",\n      \"\tattribute vec4 skinWeight;\",\n      \"#endif\",\n      \"\\n\"\n    ].filter(filterEmptyLine).join(\"\\n\");\n    prefixFragment = [\n      generatePrecision(parameters),\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines,\n      parameters.useFog && parameters.fog ? \"#define USE_FOG\" : \"\",\n      parameters.useFog && parameters.fogExp2 ? \"#define FOG_EXP2\" : \"\",\n      parameters.alphaToCoverage ? \"#define ALPHA_TO_COVERAGE\" : \"\",\n      parameters.map ? \"#define USE_MAP\" : \"\",\n      parameters.matcap ? \"#define USE_MATCAP\" : \"\",\n      parameters.envMap ? \"#define USE_ENVMAP\" : \"\",\n      parameters.envMap ? \"#define \" + envMapTypeDefine : \"\",\n      parameters.envMap ? \"#define \" + envMapModeDefine : \"\",\n      parameters.envMap ? \"#define \" + envMapBlendingDefine : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_TEXEL_WIDTH \" + envMapCubeUVSize.texelWidth : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_TEXEL_HEIGHT \" + envMapCubeUVSize.texelHeight : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_MAX_MIP \" + envMapCubeUVSize.maxMip + \".0\" : \"\",\n      parameters.lightMap ? \"#define USE_LIGHTMAP\" : \"\",\n      parameters.aoMap ? \"#define USE_AOMAP\" : \"\",\n      parameters.bumpMap ? \"#define USE_BUMPMAP\" : \"\",\n      parameters.normalMap ? \"#define USE_NORMALMAP\" : \"\",\n      parameters.normalMapObjectSpace ? \"#define USE_NORMALMAP_OBJECTSPACE\" : \"\",\n      parameters.normalMapTangentSpace ? \"#define USE_NORMALMAP_TANGENTSPACE\" : \"\",\n      parameters.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\",\n      parameters.anisotropy ? \"#define USE_ANISOTROPY\" : \"\",\n      parameters.anisotropyMap ? \"#define USE_ANISOTROPYMAP\" : \"\",\n      parameters.clearcoat ? \"#define USE_CLEARCOAT\" : \"\",\n      parameters.clearcoatMap ? \"#define USE_CLEARCOATMAP\" : \"\",\n      parameters.clearcoatRoughnessMap ? \"#define USE_CLEARCOAT_ROUGHNESSMAP\" : \"\",\n      parameters.clearcoatNormalMap ? \"#define USE_CLEARCOAT_NORMALMAP\" : \"\",\n      parameters.dispersion ? \"#define USE_DISPERSION\" : \"\",\n      parameters.iridescence ? \"#define USE_IRIDESCENCE\" : \"\",\n      parameters.iridescenceMap ? \"#define USE_IRIDESCENCEMAP\" : \"\",\n      parameters.iridescenceThicknessMap ? \"#define USE_IRIDESCENCE_THICKNESSMAP\" : \"\",\n      parameters.specularMap ? \"#define USE_SPECULARMAP\" : \"\",\n      parameters.specularColorMap ? \"#define USE_SPECULAR_COLORMAP\" : \"\",\n      parameters.specularIntensityMap ? \"#define USE_SPECULAR_INTENSITYMAP\" : \"\",\n      parameters.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\",\n      parameters.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\",\n      parameters.alphaMap ? \"#define USE_ALPHAMAP\" : \"\",\n      parameters.alphaTest ? \"#define USE_ALPHATEST\" : \"\",\n      parameters.alphaHash ? \"#define USE_ALPHAHASH\" : \"\",\n      parameters.sheen ? \"#define USE_SHEEN\" : \"\",\n      parameters.sheenColorMap ? \"#define USE_SHEEN_COLORMAP\" : \"\",\n      parameters.sheenRoughnessMap ? \"#define USE_SHEEN_ROUGHNESSMAP\" : \"\",\n      parameters.transmission ? \"#define USE_TRANSMISSION\" : \"\",\n      parameters.transmissionMap ? \"#define USE_TRANSMISSIONMAP\" : \"\",\n      parameters.thicknessMap ? \"#define USE_THICKNESSMAP\" : \"\",\n      parameters.vertexTangents && parameters.flatShading === false ? \"#define USE_TANGENT\" : \"\",\n      parameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? \"#define USE_COLOR\" : \"\",\n      parameters.vertexAlphas ? \"#define USE_COLOR_ALPHA\" : \"\",\n      parameters.vertexUv1s ? \"#define USE_UV1\" : \"\",\n      parameters.vertexUv2s ? \"#define USE_UV2\" : \"\",\n      parameters.vertexUv3s ? \"#define USE_UV3\" : \"\",\n      parameters.pointsUvs ? \"#define USE_POINTS_UV\" : \"\",\n      parameters.gradientMap ? \"#define USE_GRADIENTMAP\" : \"\",\n      parameters.flatShading ? \"#define FLAT_SHADED\" : \"\",\n      parameters.doubleSided ? \"#define DOUBLE_SIDED\" : \"\",\n      parameters.flipSided ? \"#define FLIP_SIDED\" : \"\",\n      parameters.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\",\n      parameters.shadowMapEnabled ? \"#define \" + shadowMapTypeDefine : \"\",\n      parameters.premultipliedAlpha ? \"#define PREMULTIPLIED_ALPHA\" : \"\",\n      parameters.numLightProbes > 0 ? \"#define USE_LIGHT_PROBES\" : \"\",\n      parameters.decodeVideoTexture ? \"#define DECODE_VIDEO_TEXTURE\" : \"\",\n      parameters.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\",\n      parameters.reverseDepthBuffer ? \"#define USE_REVERSEDEPTHBUF\" : \"\",\n      \"uniform mat4 viewMatrix;\",\n      \"uniform vec3 cameraPosition;\",\n      \"uniform bool isOrthographic;\",\n      parameters.toneMapping !== NoToneMapping ? \"#define TONE_MAPPING\" : \"\",\n      parameters.toneMapping !== NoToneMapping ? ShaderChunk[\"tonemapping_pars_fragment\"] : \"\",\n      // this code is required here because it is used by the toneMapping() function defined below\n      parameters.toneMapping !== NoToneMapping ? getToneMappingFunction(\"toneMapping\", parameters.toneMapping) : \"\",\n      parameters.dithering ? \"#define DITHERING\" : \"\",\n      parameters.opaque ? \"#define OPAQUE\" : \"\",\n      ShaderChunk[\"colorspace_pars_fragment\"],\n      // this code is required here because it is used by the various encoding/decoding function defined below\n      getTexelEncodingFunction(\"linearToOutputTexel\", parameters.outputColorSpace),\n      getLuminanceFunction(),\n      parameters.useDepthPacking ? \"#define DEPTH_PACKING \" + parameters.depthPacking : \"\",\n      \"\\n\"\n    ].filter(filterEmptyLine).join(\"\\n\");\n  }\n  vertexShader = resolveIncludes(vertexShader);\n  vertexShader = replaceLightNums(vertexShader, parameters);\n  vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\n  fragmentShader = resolveIncludes(fragmentShader);\n  fragmentShader = replaceLightNums(fragmentShader, parameters);\n  fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\n  vertexShader = unrollLoops(vertexShader);\n  fragmentShader = unrollLoops(fragmentShader);\n  if (parameters.isRawShaderMaterial !== true) {\n    versionString = \"#version 300 es\\n\";\n    prefixVertex = [\n      customVertexExtensions,\n      \"#define attribute in\",\n      \"#define varying out\",\n      \"#define texture2D texture\"\n    ].join(\"\\n\") + \"\\n\" + prefixVertex;\n    prefixFragment = [\n      \"#define varying in\",\n      parameters.glslVersion === GLSL3 ? \"\" : \"layout(location = 0) out highp vec4 pc_fragColor;\",\n      parameters.glslVersion === GLSL3 ? \"\" : \"#define gl_FragColor pc_fragColor\",\n      \"#define gl_FragDepthEXT gl_FragDepth\",\n      \"#define texture2D texture\",\n      \"#define textureCube texture\",\n      \"#define texture2DProj textureProj\",\n      \"#define texture2DLodEXT textureLod\",\n      \"#define texture2DProjLodEXT textureProjLod\",\n      \"#define textureCubeLodEXT textureLod\",\n      \"#define texture2DGradEXT textureGrad\",\n      \"#define texture2DProjGradEXT textureProjGrad\",\n      \"#define textureCubeGradEXT textureGrad\"\n    ].join(\"\\n\") + \"\\n\" + prefixFragment;\n  }\n  const vertexGlsl = versionString + prefixVertex + vertexShader;\n  const fragmentGlsl = versionString + prefixFragment + fragmentShader;\n  const glVertexShader = WebGLShader(gl, gl.VERTEX_SHADER, vertexGlsl);\n  const glFragmentShader = WebGLShader(gl, gl.FRAGMENT_SHADER, fragmentGlsl);\n  gl.attachShader(program, glVertexShader);\n  gl.attachShader(program, glFragmentShader);\n  if (parameters.index0AttributeName !== void 0) {\n    gl.bindAttribLocation(program, 0, parameters.index0AttributeName);\n  } else if (parameters.morphTargets === true) {\n    gl.bindAttribLocation(program, 0, \"position\");\n  }\n  gl.linkProgram(program);\n  function onFirstUse(self2) {\n    if (renderer.debug.checkShaderErrors) {\n      const programLog = gl.getProgramInfoLog(program).trim();\n      const vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\n      const fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\n      let runnable = true;\n      let haveDiagnostics = true;\n      if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {\n        runnable = false;\n        if (typeof renderer.debug.onShaderError === \"function\") {\n          renderer.debug.onShaderError(gl, program, glVertexShader, glFragmentShader);\n        } else {\n          const vertexErrors = getShaderErrors(gl, glVertexShader, \"vertex\");\n          const fragmentErrors = getShaderErrors(gl, glFragmentShader, \"fragment\");\n          console.error(\n            \"THREE.WebGLProgram: Shader Error \" + gl.getError() + \" - VALIDATE_STATUS \" + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + \"\\n\\nMaterial Name: \" + self2.name + \"\\nMaterial Type: \" + self2.type + \"\\n\\nProgram Info Log: \" + programLog + \"\\n\" + vertexErrors + \"\\n\" + fragmentErrors\n          );\n        }\n      } else if (programLog !== \"\") {\n        console.warn(\"THREE.WebGLProgram: Program Info Log:\", programLog);\n      } else if (vertexLog === \"\" || fragmentLog === \"\") {\n        haveDiagnostics = false;\n      }\n      if (haveDiagnostics) {\n        self2.diagnostics = {\n          runnable,\n          programLog,\n          vertexShader: {\n            log: vertexLog,\n            prefix: prefixVertex\n          },\n          fragmentShader: {\n            log: fragmentLog,\n            prefix: prefixFragment\n          }\n        };\n      }\n    }\n    gl.deleteShader(glVertexShader);\n    gl.deleteShader(glFragmentShader);\n    cachedUniforms = new WebGLUniforms(gl, program);\n    cachedAttributes = fetchAttributeLocations(gl, program);\n  }\n  let cachedUniforms;\n  this.getUniforms = function() {\n    if (cachedUniforms === void 0) {\n      onFirstUse(this);\n    }\n    return cachedUniforms;\n  };\n  let cachedAttributes;\n  this.getAttributes = function() {\n    if (cachedAttributes === void 0) {\n      onFirstUse(this);\n    }\n    return cachedAttributes;\n  };\n  let programReady = parameters.rendererExtensionParallelShaderCompile === false;\n  this.isReady = function() {\n    if (programReady === false) {\n      programReady = gl.getProgramParameter(program, COMPLETION_STATUS_KHR);\n    }\n    return programReady;\n  };\n  this.destroy = function() {\n    bindingStates.releaseStatesOfProgram(this);\n    gl.deleteProgram(program);\n    this.program = void 0;\n  };\n  this.type = parameters.shaderType;\n  this.name = parameters.shaderName;\n  this.id = programIdCount++;\n  this.cacheKey = cacheKey;\n  this.usedTimes = 1;\n  this.program = program;\n  this.vertexShader = glVertexShader;\n  this.fragmentShader = glFragmentShader;\n  return this;\n}\nvar _id$1 = 0;\nvar WebGLShaderCache = class {\n  constructor() {\n    this.shaderCache = /* @__PURE__ */ new Map();\n    this.materialCache = /* @__PURE__ */ new Map();\n  }\n  update(material) {\n    const vertexShader = material.vertexShader;\n    const fragmentShader = material.fragmentShader;\n    const vertexShaderStage = this._getShaderStage(vertexShader);\n    const fragmentShaderStage = this._getShaderStage(fragmentShader);\n    const materialShaders = this._getShaderCacheForMaterial(material);\n    if (materialShaders.has(vertexShaderStage) === false) {\n      materialShaders.add(vertexShaderStage);\n      vertexShaderStage.usedTimes++;\n    }\n    if (materialShaders.has(fragmentShaderStage) === false) {\n      materialShaders.add(fragmentShaderStage);\n      fragmentShaderStage.usedTimes++;\n    }\n    return this;\n  }\n  remove(material) {\n    const materialShaders = this.materialCache.get(material);\n    for (const shaderStage of materialShaders) {\n      shaderStage.usedTimes--;\n      if (shaderStage.usedTimes === 0) this.shaderCache.delete(shaderStage.code);\n    }\n    this.materialCache.delete(material);\n    return this;\n  }\n  getVertexShaderID(material) {\n    return this._getShaderStage(material.vertexShader).id;\n  }\n  getFragmentShaderID(material) {\n    return this._getShaderStage(material.fragmentShader).id;\n  }\n  dispose() {\n    this.shaderCache.clear();\n    this.materialCache.clear();\n  }\n  _getShaderCacheForMaterial(material) {\n    const cache = this.materialCache;\n    let set = cache.get(material);\n    if (set === void 0) {\n      set = /* @__PURE__ */ new Set();\n      cache.set(material, set);\n    }\n    return set;\n  }\n  _getShaderStage(code) {\n    const cache = this.shaderCache;\n    let stage = cache.get(code);\n    if (stage === void 0) {\n      stage = new WebGLShaderStage(code);\n      cache.set(code, stage);\n    }\n    return stage;\n  }\n};\nvar WebGLShaderStage = class {\n  constructor(code) {\n    this.id = _id$1++;\n    this.code = code;\n    this.usedTimes = 0;\n  }\n};\nfunction WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) {\n  const _programLayers = new Layers();\n  const _customShaders = new WebGLShaderCache();\n  const _activeChannels = /* @__PURE__ */ new Set();\n  const programs = [];\n  const logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n  const reverseDepthBuffer = capabilities.reverseDepthBuffer;\n  const SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n  let precision = capabilities.precision;\n  const shaderIDs = {\n    MeshDepthMaterial: \"depth\",\n    MeshDistanceMaterial: \"distanceRGBA\",\n    MeshNormalMaterial: \"normal\",\n    MeshBasicMaterial: \"basic\",\n    MeshLambertMaterial: \"lambert\",\n    MeshPhongMaterial: \"phong\",\n    MeshToonMaterial: \"toon\",\n    MeshStandardMaterial: \"physical\",\n    MeshPhysicalMaterial: \"physical\",\n    MeshMatcapMaterial: \"matcap\",\n    LineBasicMaterial: \"basic\",\n    LineDashedMaterial: \"dashed\",\n    PointsMaterial: \"points\",\n    ShadowMaterial: \"shadow\",\n    SpriteMaterial: \"sprite\"\n  };\n  function getChannel(value) {\n    _activeChannels.add(value);\n    if (value === 0) return \"uv\";\n    return `uv${value}`;\n  }\n  function getParameters(material, lights, shadows, scene, object) {\n    const fog = scene.fog;\n    const geometry = object.geometry;\n    const environment = material.isMeshStandardMaterial ? scene.environment : null;\n    const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n    const envMapCubeUVHeight = !!envMap && envMap.mapping === CubeUVReflectionMapping ? envMap.image.height : null;\n    const shaderID = shaderIDs[material.type];\n    if (material.precision !== null) {\n      precision = capabilities.getMaxPrecision(material.precision);\n      if (precision !== material.precision) {\n        console.warn(\"THREE.WebGLProgram.getParameters:\", material.precision, \"not supported, using\", precision, \"instead.\");\n      }\n    }\n    const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n    const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n    let morphTextureStride = 0;\n    if (geometry.morphAttributes.position !== void 0) morphTextureStride = 1;\n    if (geometry.morphAttributes.normal !== void 0) morphTextureStride = 2;\n    if (geometry.morphAttributes.color !== void 0) morphTextureStride = 3;\n    let vertexShader, fragmentShader;\n    let customVertexShaderID, customFragmentShaderID;\n    if (shaderID) {\n      const shader = ShaderLib[shaderID];\n      vertexShader = shader.vertexShader;\n      fragmentShader = shader.fragmentShader;\n    } else {\n      vertexShader = material.vertexShader;\n      fragmentShader = material.fragmentShader;\n      _customShaders.update(material);\n      customVertexShaderID = _customShaders.getVertexShaderID(material);\n      customFragmentShaderID = _customShaders.getFragmentShaderID(material);\n    }\n    const currentRenderTarget = renderer.getRenderTarget();\n    const IS_INSTANCEDMESH = object.isInstancedMesh === true;\n    const IS_BATCHEDMESH = object.isBatchedMesh === true;\n    const HAS_MAP = !!material.map;\n    const HAS_MATCAP = !!material.matcap;\n    const HAS_ENVMAP = !!envMap;\n    const HAS_AOMAP = !!material.aoMap;\n    const HAS_LIGHTMAP = !!material.lightMap;\n    const HAS_BUMPMAP = !!material.bumpMap;\n    const HAS_NORMALMAP = !!material.normalMap;\n    const HAS_DISPLACEMENTMAP = !!material.displacementMap;\n    const HAS_EMISSIVEMAP = !!material.emissiveMap;\n    const HAS_METALNESSMAP = !!material.metalnessMap;\n    const HAS_ROUGHNESSMAP = !!material.roughnessMap;\n    const HAS_ANISOTROPY = material.anisotropy > 0;\n    const HAS_CLEARCOAT = material.clearcoat > 0;\n    const HAS_DISPERSION = material.dispersion > 0;\n    const HAS_IRIDESCENCE = material.iridescence > 0;\n    const HAS_SHEEN = material.sheen > 0;\n    const HAS_TRANSMISSION = material.transmission > 0;\n    const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !!material.anisotropyMap;\n    const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !!material.clearcoatMap;\n    const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !!material.clearcoatNormalMap;\n    const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !!material.clearcoatRoughnessMap;\n    const HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !!material.iridescenceMap;\n    const HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !!material.iridescenceThicknessMap;\n    const HAS_SHEEN_COLORMAP = HAS_SHEEN && !!material.sheenColorMap;\n    const HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !!material.sheenRoughnessMap;\n    const HAS_SPECULARMAP = !!material.specularMap;\n    const HAS_SPECULAR_COLORMAP = !!material.specularColorMap;\n    const HAS_SPECULAR_INTENSITYMAP = !!material.specularIntensityMap;\n    const HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !!material.transmissionMap;\n    const HAS_THICKNESSMAP = HAS_TRANSMISSION && !!material.thicknessMap;\n    const HAS_GRADIENTMAP = !!material.gradientMap;\n    const HAS_ALPHAMAP = !!material.alphaMap;\n    const HAS_ALPHATEST = material.alphaTest > 0;\n    const HAS_ALPHAHASH = !!material.alphaHash;\n    const HAS_EXTENSIONS = !!material.extensions;\n    let toneMapping = NoToneMapping;\n    if (material.toneMapped) {\n      if (currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true) {\n        toneMapping = renderer.toneMapping;\n      }\n    }\n    const parameters = {\n      shaderID,\n      shaderType: material.type,\n      shaderName: material.name,\n      vertexShader,\n      fragmentShader,\n      defines: material.defines,\n      customVertexShaderID,\n      customFragmentShaderID,\n      isRawShaderMaterial: material.isRawShaderMaterial === true,\n      glslVersion: material.glslVersion,\n      precision,\n      batching: IS_BATCHEDMESH,\n      batchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n      instancing: IS_INSTANCEDMESH,\n      instancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n      instancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n      supportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n      outputColorSpace: currentRenderTarget === null ? renderer.outputColorSpace : currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace,\n      alphaToCoverage: !!material.alphaToCoverage,\n      map: HAS_MAP,\n      matcap: HAS_MATCAP,\n      envMap: HAS_ENVMAP,\n      envMapMode: HAS_ENVMAP && envMap.mapping,\n      envMapCubeUVHeight,\n      aoMap: HAS_AOMAP,\n      lightMap: HAS_LIGHTMAP,\n      bumpMap: HAS_BUMPMAP,\n      normalMap: HAS_NORMALMAP,\n      displacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n      emissiveMap: HAS_EMISSIVEMAP,\n      normalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n      normalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n      metalnessMap: HAS_METALNESSMAP,\n      roughnessMap: HAS_ROUGHNESSMAP,\n      anisotropy: HAS_ANISOTROPY,\n      anisotropyMap: HAS_ANISOTROPYMAP,\n      clearcoat: HAS_CLEARCOAT,\n      clearcoatMap: HAS_CLEARCOATMAP,\n      clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n      clearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n      dispersion: HAS_DISPERSION,\n      iridescence: HAS_IRIDESCENCE,\n      iridescenceMap: HAS_IRIDESCENCEMAP,\n      iridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n      sheen: HAS_SHEEN,\n      sheenColorMap: HAS_SHEEN_COLORMAP,\n      sheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n      specularMap: HAS_SPECULARMAP,\n      specularColorMap: HAS_SPECULAR_COLORMAP,\n      specularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n      transmission: HAS_TRANSMISSION,\n      transmissionMap: HAS_TRANSMISSIONMAP,\n      thicknessMap: HAS_THICKNESSMAP,\n      gradientMap: HAS_GRADIENTMAP,\n      opaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n      alphaMap: HAS_ALPHAMAP,\n      alphaTest: HAS_ALPHATEST,\n      alphaHash: HAS_ALPHAHASH,\n      combine: material.combine,\n      //\n      mapUv: HAS_MAP && getChannel(material.map.channel),\n      aoMapUv: HAS_AOMAP && getChannel(material.aoMap.channel),\n      lightMapUv: HAS_LIGHTMAP && getChannel(material.lightMap.channel),\n      bumpMapUv: HAS_BUMPMAP && getChannel(material.bumpMap.channel),\n      normalMapUv: HAS_NORMALMAP && getChannel(material.normalMap.channel),\n      displacementMapUv: HAS_DISPLACEMENTMAP && getChannel(material.displacementMap.channel),\n      emissiveMapUv: HAS_EMISSIVEMAP && getChannel(material.emissiveMap.channel),\n      metalnessMapUv: HAS_METALNESSMAP && getChannel(material.metalnessMap.channel),\n      roughnessMapUv: HAS_ROUGHNESSMAP && getChannel(material.roughnessMap.channel),\n      anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel(material.anisotropyMap.channel),\n      clearcoatMapUv: HAS_CLEARCOATMAP && getChannel(material.clearcoatMap.channel),\n      clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel(material.clearcoatNormalMap.channel),\n      clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel(material.clearcoatRoughnessMap.channel),\n      iridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel(material.iridescenceMap.channel),\n      iridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel(material.iridescenceThicknessMap.channel),\n      sheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel(material.sheenColorMap.channel),\n      sheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel(material.sheenRoughnessMap.channel),\n      specularMapUv: HAS_SPECULARMAP && getChannel(material.specularMap.channel),\n      specularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel(material.specularColorMap.channel),\n      specularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel(material.specularIntensityMap.channel),\n      transmissionMapUv: HAS_TRANSMISSIONMAP && getChannel(material.transmissionMap.channel),\n      thicknessMapUv: HAS_THICKNESSMAP && getChannel(material.thicknessMap.channel),\n      alphaMapUv: HAS_ALPHAMAP && getChannel(material.alphaMap.channel),\n      //\n      vertexTangents: !!geometry.attributes.tangent && (HAS_NORMALMAP || HAS_ANISOTROPY),\n      vertexColors: material.vertexColors,\n      vertexAlphas: material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n      pointsUvs: object.isPoints === true && !!geometry.attributes.uv && (HAS_MAP || HAS_ALPHAMAP),\n      fog: !!fog,\n      useFog: material.fog === true,\n      fogExp2: !!fog && fog.isFogExp2,\n      flatShading: material.flatShading === true,\n      sizeAttenuation: material.sizeAttenuation === true,\n      logarithmicDepthBuffer,\n      reverseDepthBuffer,\n      skinning: object.isSkinnedMesh === true,\n      morphTargets: geometry.morphAttributes.position !== void 0,\n      morphNormals: geometry.morphAttributes.normal !== void 0,\n      morphColors: geometry.morphAttributes.color !== void 0,\n      morphTargetsCount,\n      morphTextureStride,\n      numDirLights: lights.directional.length,\n      numPointLights: lights.point.length,\n      numSpotLights: lights.spot.length,\n      numSpotLightMaps: lights.spotLightMap.length,\n      numRectAreaLights: lights.rectArea.length,\n      numHemiLights: lights.hemi.length,\n      numDirLightShadows: lights.directionalShadowMap.length,\n      numPointLightShadows: lights.pointShadowMap.length,\n      numSpotLightShadows: lights.spotShadowMap.length,\n      numSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n      numLightProbes: lights.numLightProbes,\n      numClippingPlanes: clipping.numPlanes,\n      numClipIntersection: clipping.numIntersection,\n      dithering: material.dithering,\n      shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n      shadowMapType: renderer.shadowMap.type,\n      toneMapping,\n      decodeVideoTexture: HAS_MAP && material.map.isVideoTexture === true && ColorManagement.getTransfer(material.map.colorSpace) === SRGBTransfer,\n      premultipliedAlpha: material.premultipliedAlpha,\n      doubleSided: material.side === DoubleSide,\n      flipSided: material.side === BackSide,\n      useDepthPacking: material.depthPacking >= 0,\n      depthPacking: material.depthPacking || 0,\n      index0AttributeName: material.index0AttributeName,\n      extensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has(\"WEBGL_clip_cull_distance\"),\n      extensionMultiDraw: (HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH) && extensions.has(\"WEBGL_multi_draw\"),\n      rendererExtensionParallelShaderCompile: extensions.has(\"KHR_parallel_shader_compile\"),\n      customProgramCacheKey: material.customProgramCacheKey()\n    };\n    parameters.vertexUv1s = _activeChannels.has(1);\n    parameters.vertexUv2s = _activeChannels.has(2);\n    parameters.vertexUv3s = _activeChannels.has(3);\n    _activeChannels.clear();\n    return parameters;\n  }\n  function getProgramCacheKey(parameters) {\n    const array = [];\n    if (parameters.shaderID) {\n      array.push(parameters.shaderID);\n    } else {\n      array.push(parameters.customVertexShaderID);\n      array.push(parameters.customFragmentShaderID);\n    }\n    if (parameters.defines !== void 0) {\n      for (const name in parameters.defines) {\n        array.push(name);\n        array.push(parameters.defines[name]);\n      }\n    }\n    if (parameters.isRawShaderMaterial === false) {\n      getProgramCacheKeyParameters(array, parameters);\n      getProgramCacheKeyBooleans(array, parameters);\n      array.push(renderer.outputColorSpace);\n    }\n    array.push(parameters.customProgramCacheKey);\n    return array.join();\n  }\n  function getProgramCacheKeyParameters(array, parameters) {\n    array.push(parameters.precision);\n    array.push(parameters.outputColorSpace);\n    array.push(parameters.envMapMode);\n    array.push(parameters.envMapCubeUVHeight);\n    array.push(parameters.mapUv);\n    array.push(parameters.alphaMapUv);\n    array.push(parameters.lightMapUv);\n    array.push(parameters.aoMapUv);\n    array.push(parameters.bumpMapUv);\n    array.push(parameters.normalMapUv);\n    array.push(parameters.displacementMapUv);\n    array.push(parameters.emissiveMapUv);\n    array.push(parameters.metalnessMapUv);\n    array.push(parameters.roughnessMapUv);\n    array.push(parameters.anisotropyMapUv);\n    array.push(parameters.clearcoatMapUv);\n    array.push(parameters.clearcoatNormalMapUv);\n    array.push(parameters.clearcoatRoughnessMapUv);\n    array.push(parameters.iridescenceMapUv);\n    array.push(parameters.iridescenceThicknessMapUv);\n    array.push(parameters.sheenColorMapUv);\n    array.push(parameters.sheenRoughnessMapUv);\n    array.push(parameters.specularMapUv);\n    array.push(parameters.specularColorMapUv);\n    array.push(parameters.specularIntensityMapUv);\n    array.push(parameters.transmissionMapUv);\n    array.push(parameters.thicknessMapUv);\n    array.push(parameters.combine);\n    array.push(parameters.fogExp2);\n    array.push(parameters.sizeAttenuation);\n    array.push(parameters.morphTargetsCount);\n    array.push(parameters.morphAttributeCount);\n    array.push(parameters.numDirLights);\n    array.push(parameters.numPointLights);\n    array.push(parameters.numSpotLights);\n    array.push(parameters.numSpotLightMaps);\n    array.push(parameters.numHemiLights);\n    array.push(parameters.numRectAreaLights);\n    array.push(parameters.numDirLightShadows);\n    array.push(parameters.numPointLightShadows);\n    array.push(parameters.numSpotLightShadows);\n    array.push(parameters.numSpotLightShadowsWithMaps);\n    array.push(parameters.numLightProbes);\n    array.push(parameters.shadowMapType);\n    array.push(parameters.toneMapping);\n    array.push(parameters.numClippingPlanes);\n    array.push(parameters.numClipIntersection);\n    array.push(parameters.depthPacking);\n  }\n  function getProgramCacheKeyBooleans(array, parameters) {\n    _programLayers.disableAll();\n    if (parameters.supportsVertexTextures)\n      _programLayers.enable(0);\n    if (parameters.instancing)\n      _programLayers.enable(1);\n    if (parameters.instancingColor)\n      _programLayers.enable(2);\n    if (parameters.instancingMorph)\n      _programLayers.enable(3);\n    if (parameters.matcap)\n      _programLayers.enable(4);\n    if (parameters.envMap)\n      _programLayers.enable(5);\n    if (parameters.normalMapObjectSpace)\n      _programLayers.enable(6);\n    if (parameters.normalMapTangentSpace)\n      _programLayers.enable(7);\n    if (parameters.clearcoat)\n      _programLayers.enable(8);\n    if (parameters.iridescence)\n      _programLayers.enable(9);\n    if (parameters.alphaTest)\n      _programLayers.enable(10);\n    if (parameters.vertexColors)\n      _programLayers.enable(11);\n    if (parameters.vertexAlphas)\n      _programLayers.enable(12);\n    if (parameters.vertexUv1s)\n      _programLayers.enable(13);\n    if (parameters.vertexUv2s)\n      _programLayers.enable(14);\n    if (parameters.vertexUv3s)\n      _programLayers.enable(15);\n    if (parameters.vertexTangents)\n      _programLayers.enable(16);\n    if (parameters.anisotropy)\n      _programLayers.enable(17);\n    if (parameters.alphaHash)\n      _programLayers.enable(18);\n    if (parameters.batching)\n      _programLayers.enable(19);\n    if (parameters.dispersion)\n      _programLayers.enable(20);\n    if (parameters.batchingColor)\n      _programLayers.enable(21);\n    array.push(_programLayers.mask);\n    _programLayers.disableAll();\n    if (parameters.fog)\n      _programLayers.enable(0);\n    if (parameters.useFog)\n      _programLayers.enable(1);\n    if (parameters.flatShading)\n      _programLayers.enable(2);\n    if (parameters.logarithmicDepthBuffer)\n      _programLayers.enable(3);\n    if (parameters.reverseDepthBuffer)\n      _programLayers.enable(4);\n    if (parameters.skinning)\n      _programLayers.enable(5);\n    if (parameters.morphTargets)\n      _programLayers.enable(6);\n    if (parameters.morphNormals)\n      _programLayers.enable(7);\n    if (parameters.morphColors)\n      _programLayers.enable(8);\n    if (parameters.premultipliedAlpha)\n      _programLayers.enable(9);\n    if (parameters.shadowMapEnabled)\n      _programLayers.enable(10);\n    if (parameters.doubleSided)\n      _programLayers.enable(11);\n    if (parameters.flipSided)\n      _programLayers.enable(12);\n    if (parameters.useDepthPacking)\n      _programLayers.enable(13);\n    if (parameters.dithering)\n      _programLayers.enable(14);\n    if (parameters.transmission)\n      _programLayers.enable(15);\n    if (parameters.sheen)\n      _programLayers.enable(16);\n    if (parameters.opaque)\n      _programLayers.enable(17);\n    if (parameters.pointsUvs)\n      _programLayers.enable(18);\n    if (parameters.decodeVideoTexture)\n      _programLayers.enable(19);\n    if (parameters.alphaToCoverage)\n      _programLayers.enable(20);\n    array.push(_programLayers.mask);\n  }\n  function getUniforms(material) {\n    const shaderID = shaderIDs[material.type];\n    let uniforms;\n    if (shaderID) {\n      const shader = ShaderLib[shaderID];\n      uniforms = UniformsUtils.clone(shader.uniforms);\n    } else {\n      uniforms = material.uniforms;\n    }\n    return uniforms;\n  }\n  function acquireProgram(parameters, cacheKey) {\n    let program;\n    for (let p = 0, pl = programs.length; p < pl; p++) {\n      const preexistingProgram = programs[p];\n      if (preexistingProgram.cacheKey === cacheKey) {\n        program = preexistingProgram;\n        ++program.usedTimes;\n        break;\n      }\n    }\n    if (program === void 0) {\n      program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);\n      programs.push(program);\n    }\n    return program;\n  }\n  function releaseProgram(program) {\n    if (--program.usedTimes === 0) {\n      const i = programs.indexOf(program);\n      programs[i] = programs[programs.length - 1];\n      programs.pop();\n      program.destroy();\n    }\n  }\n  function releaseShaderCache(material) {\n    _customShaders.remove(material);\n  }\n  function dispose() {\n    _customShaders.dispose();\n  }\n  return {\n    getParameters,\n    getProgramCacheKey,\n    getUniforms,\n    acquireProgram,\n    releaseProgram,\n    releaseShaderCache,\n    // Exposed for resource monitoring & error feedback via renderer.info:\n    programs,\n    dispose\n  };\n}\nfunction WebGLProperties() {\n  let properties = /* @__PURE__ */ new WeakMap();\n  function has(object) {\n    return properties.has(object);\n  }\n  function get(object) {\n    let map = properties.get(object);\n    if (map === void 0) {\n      map = {};\n      properties.set(object, map);\n    }\n    return map;\n  }\n  function remove(object) {\n    properties.delete(object);\n  }\n  function update(object, key, value) {\n    properties.get(object)[key] = value;\n  }\n  function dispose() {\n    properties = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    has,\n    get,\n    remove,\n    update,\n    dispose\n  };\n}\nfunction painterSortStable(a, b) {\n  if (a.groupOrder !== b.groupOrder) {\n    return a.groupOrder - b.groupOrder;\n  } else if (a.renderOrder !== b.renderOrder) {\n    return a.renderOrder - b.renderOrder;\n  } else if (a.material.id !== b.material.id) {\n    return a.material.id - b.material.id;\n  } else if (a.z !== b.z) {\n    return a.z - b.z;\n  } else {\n    return a.id - b.id;\n  }\n}\nfunction reversePainterSortStable(a, b) {\n  if (a.groupOrder !== b.groupOrder) {\n    return a.groupOrder - b.groupOrder;\n  } else if (a.renderOrder !== b.renderOrder) {\n    return a.renderOrder - b.renderOrder;\n  } else if (a.z !== b.z) {\n    return b.z - a.z;\n  } else {\n    return a.id - b.id;\n  }\n}\nfunction WebGLRenderList() {\n  const renderItems = [];\n  let renderItemsIndex = 0;\n  const opaque = [];\n  const transmissive = [];\n  const transparent = [];\n  function init() {\n    renderItemsIndex = 0;\n    opaque.length = 0;\n    transmissive.length = 0;\n    transparent.length = 0;\n  }\n  function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\n    let renderItem = renderItems[renderItemsIndex];\n    if (renderItem === void 0) {\n      renderItem = {\n        id: object.id,\n        object,\n        geometry,\n        material,\n        groupOrder,\n        renderOrder: object.renderOrder,\n        z,\n        group\n      };\n      renderItems[renderItemsIndex] = renderItem;\n    } else {\n      renderItem.id = object.id;\n      renderItem.object = object;\n      renderItem.geometry = geometry;\n      renderItem.material = material;\n      renderItem.groupOrder = groupOrder;\n      renderItem.renderOrder = object.renderOrder;\n      renderItem.z = z;\n      renderItem.group = group;\n    }\n    renderItemsIndex++;\n    return renderItem;\n  }\n  function push(object, geometry, material, groupOrder, z, group) {\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n    if (material.transmission > 0) {\n      transmissive.push(renderItem);\n    } else if (material.transparent === true) {\n      transparent.push(renderItem);\n    } else {\n      opaque.push(renderItem);\n    }\n  }\n  function unshift(object, geometry, material, groupOrder, z, group) {\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n    if (material.transmission > 0) {\n      transmissive.unshift(renderItem);\n    } else if (material.transparent === true) {\n      transparent.unshift(renderItem);\n    } else {\n      opaque.unshift(renderItem);\n    }\n  }\n  function sort(customOpaqueSort, customTransparentSort) {\n    if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable);\n    if (transmissive.length > 1) transmissive.sort(customTransparentSort || reversePainterSortStable);\n    if (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable);\n  }\n  function finish() {\n    for (let i = renderItemsIndex, il = renderItems.length; i < il; i++) {\n      const renderItem = renderItems[i];\n      if (renderItem.id === null) break;\n      renderItem.id = null;\n      renderItem.object = null;\n      renderItem.geometry = null;\n      renderItem.material = null;\n      renderItem.group = null;\n    }\n  }\n  return {\n    opaque,\n    transmissive,\n    transparent,\n    init,\n    push,\n    unshift,\n    finish,\n    sort\n  };\n}\nfunction WebGLRenderLists() {\n  let lists = /* @__PURE__ */ new WeakMap();\n  function get(scene, renderCallDepth) {\n    const listArray = lists.get(scene);\n    let list;\n    if (listArray === void 0) {\n      list = new WebGLRenderList();\n      lists.set(scene, [list]);\n    } else {\n      if (renderCallDepth >= listArray.length) {\n        list = new WebGLRenderList();\n        listArray.push(list);\n      } else {\n        list = listArray[renderCallDepth];\n      }\n    }\n    return list;\n  }\n  function dispose() {\n    lists = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nfunction UniformsCache() {\n  const lights = {};\n  return {\n    get: function(light) {\n      if (lights[light.id] !== void 0) {\n        return lights[light.id];\n      }\n      let uniforms;\n      switch (light.type) {\n        case \"DirectionalLight\":\n          uniforms = {\n            direction: new Vector3(),\n            color: new Color()\n          };\n          break;\n        case \"SpotLight\":\n          uniforms = {\n            position: new Vector3(),\n            direction: new Vector3(),\n            color: new Color(),\n            distance: 0,\n            coneCos: 0,\n            penumbraCos: 0,\n            decay: 0\n          };\n          break;\n        case \"PointLight\":\n          uniforms = {\n            position: new Vector3(),\n            color: new Color(),\n            distance: 0,\n            decay: 0\n          };\n          break;\n        case \"HemisphereLight\":\n          uniforms = {\n            direction: new Vector3(),\n            skyColor: new Color(),\n            groundColor: new Color()\n          };\n          break;\n        case \"RectAreaLight\":\n          uniforms = {\n            color: new Color(),\n            position: new Vector3(),\n            halfWidth: new Vector3(),\n            halfHeight: new Vector3()\n          };\n          break;\n      }\n      lights[light.id] = uniforms;\n      return uniforms;\n    }\n  };\n}\nfunction ShadowUniformsCache() {\n  const lights = {};\n  return {\n    get: function(light) {\n      if (lights[light.id] !== void 0) {\n        return lights[light.id];\n      }\n      let uniforms;\n      switch (light.type) {\n        case \"DirectionalLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2()\n          };\n          break;\n        case \"SpotLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2()\n          };\n          break;\n        case \"PointLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2(),\n            shadowCameraNear: 1,\n            shadowCameraFar: 1e3\n          };\n          break;\n      }\n      lights[light.id] = uniforms;\n      return uniforms;\n    }\n  };\n}\nvar nextVersion = 0;\nfunction shadowCastingAndTexturingLightsFirst(lightA, lightB) {\n  return (lightB.castShadow ? 2 : 0) - (lightA.castShadow ? 2 : 0) + (lightB.map ? 1 : 0) - (lightA.map ? 1 : 0);\n}\nfunction WebGLLights(extensions) {\n  const cache = new UniformsCache();\n  const shadowCache = ShadowUniformsCache();\n  const state = {\n    version: 0,\n    hash: {\n      directionalLength: -1,\n      pointLength: -1,\n      spotLength: -1,\n      rectAreaLength: -1,\n      hemiLength: -1,\n      numDirectionalShadows: -1,\n      numPointShadows: -1,\n      numSpotShadows: -1,\n      numSpotMaps: -1,\n      numLightProbes: -1\n    },\n    ambient: [0, 0, 0],\n    probe: [],\n    directional: [],\n    directionalShadow: [],\n    directionalShadowMap: [],\n    directionalShadowMatrix: [],\n    spot: [],\n    spotLightMap: [],\n    spotShadow: [],\n    spotShadowMap: [],\n    spotLightMatrix: [],\n    rectArea: [],\n    rectAreaLTC1: null,\n    rectAreaLTC2: null,\n    point: [],\n    pointShadow: [],\n    pointShadowMap: [],\n    pointShadowMatrix: [],\n    hemi: [],\n    numSpotLightShadowsWithMaps: 0,\n    numLightProbes: 0\n  };\n  for (let i = 0; i < 9; i++) state.probe.push(new Vector3());\n  const vector3 = new Vector3();\n  const matrix4 = new Matrix4();\n  const matrix42 = new Matrix4();\n  function setup(lights) {\n    let r = 0, g = 0, b = 0;\n    for (let i = 0; i < 9; i++) state.probe[i].set(0, 0, 0);\n    let directionalLength = 0;\n    let pointLength = 0;\n    let spotLength = 0;\n    let rectAreaLength = 0;\n    let hemiLength = 0;\n    let numDirectionalShadows = 0;\n    let numPointShadows = 0;\n    let numSpotShadows = 0;\n    let numSpotMaps = 0;\n    let numSpotShadowsWithMaps = 0;\n    let numLightProbes = 0;\n    lights.sort(shadowCastingAndTexturingLightsFirst);\n    for (let i = 0, l = lights.length; i < l; i++) {\n      const light = lights[i];\n      const color = light.color;\n      const intensity = light.intensity;\n      const distance = light.distance;\n      const shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\n      if (light.isAmbientLight) {\n        r += color.r * intensity;\n        g += color.g * intensity;\n        b += color.b * intensity;\n      } else if (light.isLightProbe) {\n        for (let j = 0; j < 9; j++) {\n          state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\n        }\n        numLightProbes++;\n      } else if (light.isDirectionalLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n        if (light.castShadow) {\n          const shadow = light.shadow;\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          state.directionalShadow[directionalLength] = shadowUniforms;\n          state.directionalShadowMap[directionalLength] = shadowMap;\n          state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\n          numDirectionalShadows++;\n        }\n        state.directional[directionalLength] = uniforms;\n        directionalLength++;\n      } else if (light.isSpotLight) {\n        const uniforms = cache.get(light);\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.color.copy(color).multiplyScalar(intensity);\n        uniforms.distance = distance;\n        uniforms.coneCos = Math.cos(light.angle);\n        uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\n        uniforms.decay = light.decay;\n        state.spot[spotLength] = uniforms;\n        const shadow = light.shadow;\n        if (light.map) {\n          state.spotLightMap[numSpotMaps] = light.map;\n          numSpotMaps++;\n          shadow.updateMatrices(light);\n          if (light.castShadow) numSpotShadowsWithMaps++;\n        }\n        state.spotLightMatrix[spotLength] = shadow.matrix;\n        if (light.castShadow) {\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          state.spotShadow[spotLength] = shadowUniforms;\n          state.spotShadowMap[spotLength] = shadowMap;\n          numSpotShadows++;\n        }\n        spotLength++;\n      } else if (light.isRectAreaLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(color).multiplyScalar(intensity);\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\n        state.rectArea[rectAreaLength] = uniforms;\n        rectAreaLength++;\n      } else if (light.isPointLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n        uniforms.distance = light.distance;\n        uniforms.decay = light.decay;\n        if (light.castShadow) {\n          const shadow = light.shadow;\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          shadowUniforms.shadowCameraNear = shadow.camera.near;\n          shadowUniforms.shadowCameraFar = shadow.camera.far;\n          state.pointShadow[pointLength] = shadowUniforms;\n          state.pointShadowMap[pointLength] = shadowMap;\n          state.pointShadowMatrix[pointLength] = light.shadow.matrix;\n          numPointShadows++;\n        }\n        state.point[pointLength] = uniforms;\n        pointLength++;\n      } else if (light.isHemisphereLight) {\n        const uniforms = cache.get(light);\n        uniforms.skyColor.copy(light.color).multiplyScalar(intensity);\n        uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity);\n        state.hemi[hemiLength] = uniforms;\n        hemiLength++;\n      }\n    }\n    if (rectAreaLength > 0) {\n      if (extensions.has(\"OES_texture_float_linear\") === true) {\n        state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n        state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n      } else {\n        state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n        state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n      }\n    }\n    state.ambient[0] = r;\n    state.ambient[1] = g;\n    state.ambient[2] = b;\n    const hash = state.hash;\n    if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows || hash.numSpotMaps !== numSpotMaps || hash.numLightProbes !== numLightProbes) {\n      state.directional.length = directionalLength;\n      state.spot.length = spotLength;\n      state.rectArea.length = rectAreaLength;\n      state.point.length = pointLength;\n      state.hemi.length = hemiLength;\n      state.directionalShadow.length = numDirectionalShadows;\n      state.directionalShadowMap.length = numDirectionalShadows;\n      state.pointShadow.length = numPointShadows;\n      state.pointShadowMap.length = numPointShadows;\n      state.spotShadow.length = numSpotShadows;\n      state.spotShadowMap.length = numSpotShadows;\n      state.directionalShadowMatrix.length = numDirectionalShadows;\n      state.pointShadowMatrix.length = numPointShadows;\n      state.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n      state.spotLightMap.length = numSpotMaps;\n      state.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n      state.numLightProbes = numLightProbes;\n      hash.directionalLength = directionalLength;\n      hash.pointLength = pointLength;\n      hash.spotLength = spotLength;\n      hash.rectAreaLength = rectAreaLength;\n      hash.hemiLength = hemiLength;\n      hash.numDirectionalShadows = numDirectionalShadows;\n      hash.numPointShadows = numPointShadows;\n      hash.numSpotShadows = numSpotShadows;\n      hash.numSpotMaps = numSpotMaps;\n      hash.numLightProbes = numLightProbes;\n      state.version = nextVersion++;\n    }\n  }\n  function setupView(lights, camera) {\n    let directionalLength = 0;\n    let pointLength = 0;\n    let spotLength = 0;\n    let rectAreaLength = 0;\n    let hemiLength = 0;\n    const viewMatrix = camera.matrixWorldInverse;\n    for (let i = 0, l = lights.length; i < l; i++) {\n      const light = lights[i];\n      if (light.isDirectionalLight) {\n        const uniforms = state.directional[directionalLength];\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\n        uniforms.direction.sub(vector3);\n        uniforms.direction.transformDirection(viewMatrix);\n        directionalLength++;\n      } else if (light.isSpotLight) {\n        const uniforms = state.spot[spotLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\n        uniforms.direction.sub(vector3);\n        uniforms.direction.transformDirection(viewMatrix);\n        spotLength++;\n      } else if (light.isRectAreaLight) {\n        const uniforms = state.rectArea[rectAreaLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        matrix42.identity();\n        matrix4.copy(light.matrixWorld);\n        matrix4.premultiply(viewMatrix);\n        matrix42.extractRotation(matrix4);\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\n        uniforms.halfWidth.applyMatrix4(matrix42);\n        uniforms.halfHeight.applyMatrix4(matrix42);\n        rectAreaLength++;\n      } else if (light.isPointLight) {\n        const uniforms = state.point[pointLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        pointLength++;\n      } else if (light.isHemisphereLight) {\n        const uniforms = state.hemi[hemiLength];\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        uniforms.direction.transformDirection(viewMatrix);\n        hemiLength++;\n      }\n    }\n  }\n  return {\n    setup,\n    setupView,\n    state\n  };\n}\nfunction WebGLRenderState(extensions) {\n  const lights = new WebGLLights(extensions);\n  const lightsArray = [];\n  const shadowsArray = [];\n  function init(camera) {\n    state.camera = camera;\n    lightsArray.length = 0;\n    shadowsArray.length = 0;\n  }\n  function pushLight(light) {\n    lightsArray.push(light);\n  }\n  function pushShadow(shadowLight) {\n    shadowsArray.push(shadowLight);\n  }\n  function setupLights() {\n    lights.setup(lightsArray);\n  }\n  function setupLightsView(camera) {\n    lights.setupView(lightsArray, camera);\n  }\n  const state = {\n    lightsArray,\n    shadowsArray,\n    camera: null,\n    lights,\n    transmissionRenderTarget: {}\n  };\n  return {\n    init,\n    state,\n    setupLights,\n    setupLightsView,\n    pushLight,\n    pushShadow\n  };\n}\nfunction WebGLRenderStates(extensions) {\n  let renderStates = /* @__PURE__ */ new WeakMap();\n  function get(scene, renderCallDepth = 0) {\n    const renderStateArray = renderStates.get(scene);\n    let renderState;\n    if (renderStateArray === void 0) {\n      renderState = new WebGLRenderState(extensions);\n      renderStates.set(scene, [renderState]);\n    } else {\n      if (renderCallDepth >= renderStateArray.length) {\n        renderState = new WebGLRenderState(extensions);\n        renderStateArray.push(renderState);\n      } else {\n        renderState = renderStateArray[renderCallDepth];\n      }\n    }\n    return renderState;\n  }\n  function dispose() {\n    renderStates = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nvar MeshDepthMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshDepthMaterial = true;\n    this.type = \"MeshDepthMaterial\";\n    this.depthPacking = BasicDepthPacking;\n    this.map = null;\n    this.alphaMap = null;\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.depthPacking = source.depthPacking;\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    return this;\n  }\n};\nvar MeshDistanceMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshDistanceMaterial = true;\n    this.type = \"MeshDistanceMaterial\";\n    this.map = null;\n    this.alphaMap = null;\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    return this;\n  }\n};\nvar vertex = \"void main() {\\n\tgl_Position = vec4( position, 1.0 );\\n}\";\nvar fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\tconst float samples = float( VSM_SAMPLES );\\n\tfloat mean = 0.0;\\n\tfloat squared_mean = 0.0;\\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\t\tfloat uvOffset = uvStart + i * uvStride;\\n\t\t#ifdef HORIZONTAL_PASS\\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\t\t\tmean += distribution.x;\\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\t\t#else\\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\t\t\tmean += depth;\\n\t\t\tsquared_mean += depth * depth;\\n\t\t#endif\\n\t}\\n\tmean = mean / samples;\\n\tsquared_mean = squared_mean / samples;\\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\nfunction WebGLShadowMap(renderer, objects, capabilities) {\n  let _frustum2 = new Frustum();\n  const _shadowMapSize = new Vector2(), _viewportSize = new Vector2(), _viewport = new Vector4(), _depthMaterial = new MeshDepthMaterial({ depthPacking: RGBADepthPacking }), _distanceMaterial = new MeshDistanceMaterial(), _materialCache = {}, _maxTextureSize = capabilities.maxTextureSize;\n  const shadowSide = { [FrontSide]: BackSide, [BackSide]: FrontSide, [DoubleSide]: DoubleSide };\n  const shadowMaterialVertical = new ShaderMaterial({\n    defines: {\n      VSM_SAMPLES: 8\n    },\n    uniforms: {\n      shadow_pass: { value: null },\n      resolution: { value: new Vector2() },\n      radius: { value: 4 }\n    },\n    vertexShader: vertex,\n    fragmentShader: fragment\n  });\n  const shadowMaterialHorizontal = shadowMaterialVertical.clone();\n  shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n  const fullScreenTri = new BufferGeometry();\n  fullScreenTri.setAttribute(\n    \"position\",\n    new BufferAttribute(\n      new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]),\n      3\n    )\n  );\n  const fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\n  const scope = this;\n  this.enabled = false;\n  this.autoUpdate = true;\n  this.needsUpdate = false;\n  this.type = PCFShadowMap;\n  let _previousType = this.type;\n  this.render = function(lights, scene, camera) {\n    if (scope.enabled === false) return;\n    if (scope.autoUpdate === false && scope.needsUpdate === false) return;\n    if (lights.length === 0) return;\n    const currentRenderTarget = renderer.getRenderTarget();\n    const activeCubeFace = renderer.getActiveCubeFace();\n    const activeMipmapLevel = renderer.getActiveMipmapLevel();\n    const _state = renderer.state;\n    _state.setBlending(NoBlending);\n    _state.buffers.color.setClear(1, 1, 1, 1);\n    _state.buffers.depth.setTest(true);\n    _state.setScissorTest(false);\n    const toVSM = _previousType !== VSMShadowMap && this.type === VSMShadowMap;\n    const fromVSM = _previousType === VSMShadowMap && this.type !== VSMShadowMap;\n    for (let i = 0, il = lights.length; i < il; i++) {\n      const light = lights[i];\n      const shadow = light.shadow;\n      if (shadow === void 0) {\n        console.warn(\"THREE.WebGLShadowMap:\", light, \"has no shadow.\");\n        continue;\n      }\n      if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue;\n      _shadowMapSize.copy(shadow.mapSize);\n      const shadowFrameExtents = shadow.getFrameExtents();\n      _shadowMapSize.multiply(shadowFrameExtents);\n      _viewportSize.copy(shadow.mapSize);\n      if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) {\n        if (_shadowMapSize.x > _maxTextureSize) {\n          _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x);\n          _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n          shadow.mapSize.x = _viewportSize.x;\n        }\n        if (_shadowMapSize.y > _maxTextureSize) {\n          _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y);\n          _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n          shadow.mapSize.y = _viewportSize.y;\n        }\n      }\n      if (shadow.map === null || toVSM === true || fromVSM === true) {\n        const pars = this.type !== VSMShadowMap ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n        if (shadow.map !== null) {\n          shadow.map.dispose();\n        }\n        shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n        shadow.map.texture.name = light.name + \".shadowMap\";\n        shadow.camera.updateProjectionMatrix();\n      }\n      renderer.setRenderTarget(shadow.map);\n      renderer.clear();\n      const viewportCount = shadow.getViewportCount();\n      for (let vp = 0; vp < viewportCount; vp++) {\n        const viewport = shadow.getViewport(vp);\n        _viewport.set(\n          _viewportSize.x * viewport.x,\n          _viewportSize.y * viewport.y,\n          _viewportSize.x * viewport.z,\n          _viewportSize.y * viewport.w\n        );\n        _state.viewport(_viewport);\n        shadow.updateMatrices(light, vp);\n        _frustum2 = shadow.getFrustum();\n        renderObject(scene, camera, shadow.camera, light, this.type);\n      }\n      if (shadow.isPointLightShadow !== true && this.type === VSMShadowMap) {\n        VSMPass(shadow, camera);\n      }\n      shadow.needsUpdate = false;\n    }\n    _previousType = this.type;\n    scope.needsUpdate = false;\n    renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\n  };\n  function VSMPass(shadow, camera) {\n    const geometry = objects.update(fullScreenMesh);\n    if (shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples) {\n      shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n      shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n      shadowMaterialVertical.needsUpdate = true;\n      shadowMaterialHorizontal.needsUpdate = true;\n    }\n    if (shadow.mapPass === null) {\n      shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y);\n    }\n    shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n    shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n    shadowMaterialVertical.uniforms.radius.value = shadow.radius;\n    renderer.setRenderTarget(shadow.mapPass);\n    renderer.clear();\n    renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null);\n    shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n    shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n    shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n    renderer.setRenderTarget(shadow.map);\n    renderer.clear();\n    renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null);\n  }\n  function getDepthMaterial(object, material, light, type) {\n    let result = null;\n    const customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial;\n    if (customMaterial !== void 0) {\n      result = customMaterial;\n    } else {\n      result = light.isPointLight === true ? _distanceMaterial : _depthMaterial;\n      if (renderer.localClippingEnabled && material.clipShadows === true && Array.isArray(material.clippingPlanes) && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0 || material.map && material.alphaTest > 0) {\n        const keyA = result.uuid, keyB = material.uuid;\n        let materialsForVariant = _materialCache[keyA];\n        if (materialsForVariant === void 0) {\n          materialsForVariant = {};\n          _materialCache[keyA] = materialsForVariant;\n        }\n        let cachedMaterial = materialsForVariant[keyB];\n        if (cachedMaterial === void 0) {\n          cachedMaterial = result.clone();\n          materialsForVariant[keyB] = cachedMaterial;\n          material.addEventListener(\"dispose\", onMaterialDispose);\n        }\n        result = cachedMaterial;\n      }\n    }\n    result.visible = material.visible;\n    result.wireframe = material.wireframe;\n    if (type === VSMShadowMap) {\n      result.side = material.shadowSide !== null ? material.shadowSide : material.side;\n    } else {\n      result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\n    }\n    result.alphaMap = material.alphaMap;\n    result.alphaTest = material.alphaTest;\n    result.map = material.map;\n    result.clipShadows = material.clipShadows;\n    result.clippingPlanes = material.clippingPlanes;\n    result.clipIntersection = material.clipIntersection;\n    result.displacementMap = material.displacementMap;\n    result.displacementScale = material.displacementScale;\n    result.displacementBias = material.displacementBias;\n    result.wireframeLinewidth = material.wireframeLinewidth;\n    result.linewidth = material.linewidth;\n    if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\n      const materialProperties = renderer.properties.get(result);\n      materialProperties.light = light;\n    }\n    return result;\n  }\n  function renderObject(object, camera, shadowCamera, light, type) {\n    if (object.visible === false) return;\n    const visible = object.layers.test(camera.layers);\n    if (visible && (object.isMesh || object.isLine || object.isPoints)) {\n      if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum2.intersectsObject(object))) {\n        object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\n        const geometry = objects.update(object);\n        const material = object.material;\n        if (Array.isArray(material)) {\n          const groups = geometry.groups;\n          for (let k = 0, kl = groups.length; k < kl; k++) {\n            const group = groups[k];\n            const groupMaterial = material[group.materialIndex];\n            if (groupMaterial && groupMaterial.visible) {\n              const depthMaterial = getDepthMaterial(object, groupMaterial, light, type);\n              object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group);\n              renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\n              object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group);\n            }\n          }\n        } else if (material.visible) {\n          const depthMaterial = getDepthMaterial(object, material, light, type);\n          object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null);\n          renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, null);\n          object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null);\n        }\n      }\n    }\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      renderObject(children[i], camera, shadowCamera, light, type);\n    }\n  }\n  function onMaterialDispose(event) {\n    const material = event.target;\n    material.removeEventListener(\"dispose\", onMaterialDispose);\n    for (const id in _materialCache) {\n      const cache = _materialCache[id];\n      const uuid = event.target.uuid;\n      if (uuid in cache) {\n        const shadowMaterial = cache[uuid];\n        shadowMaterial.dispose();\n        delete cache[uuid];\n      }\n    }\n  }\n}\nvar reversedFuncs = {\n  [NeverDepth]: AlwaysDepth,\n  [LessDepth]: GreaterDepth,\n  [EqualDepth]: NotEqualDepth,\n  [LessEqualDepth]: GreaterEqualDepth,\n  [AlwaysDepth]: NeverDepth,\n  [GreaterDepth]: LessDepth,\n  [NotEqualDepth]: EqualDepth,\n  [GreaterEqualDepth]: LessEqualDepth\n};\nfunction WebGLState(gl) {\n  function ColorBuffer() {\n    let locked = false;\n    const color = new Vector4();\n    let currentColorMask = null;\n    const currentColorClear = new Vector4(0, 0, 0, 0);\n    return {\n      setMask: function(colorMask) {\n        if (currentColorMask !== colorMask && !locked) {\n          gl.colorMask(colorMask, colorMask, colorMask, colorMask);\n          currentColorMask = colorMask;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(r, g, b, a, premultipliedAlpha) {\n        if (premultipliedAlpha === true) {\n          r *= a;\n          g *= a;\n          b *= a;\n        }\n        color.set(r, g, b, a);\n        if (currentColorClear.equals(color) === false) {\n          gl.clearColor(r, g, b, a);\n          currentColorClear.copy(color);\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentColorMask = null;\n        currentColorClear.set(-1, 0, 0, 0);\n      }\n    };\n  }\n  function DepthBuffer() {\n    let locked = false;\n    let reversed = false;\n    let currentDepthMask = null;\n    let currentDepthFunc = null;\n    let currentDepthClear = null;\n    return {\n      setReversed: function(value) {\n        reversed = value;\n      },\n      setTest: function(depthTest) {\n        if (depthTest) {\n          enable(gl.DEPTH_TEST);\n        } else {\n          disable(gl.DEPTH_TEST);\n        }\n      },\n      setMask: function(depthMask) {\n        if (currentDepthMask !== depthMask && !locked) {\n          gl.depthMask(depthMask);\n          currentDepthMask = depthMask;\n        }\n      },\n      setFunc: function(depthFunc) {\n        if (reversed) depthFunc = reversedFuncs[depthFunc];\n        if (currentDepthFunc !== depthFunc) {\n          switch (depthFunc) {\n            case NeverDepth:\n              gl.depthFunc(gl.NEVER);\n              break;\n            case AlwaysDepth:\n              gl.depthFunc(gl.ALWAYS);\n              break;\n            case LessDepth:\n              gl.depthFunc(gl.LESS);\n              break;\n            case LessEqualDepth:\n              gl.depthFunc(gl.LEQUAL);\n              break;\n            case EqualDepth:\n              gl.depthFunc(gl.EQUAL);\n              break;\n            case GreaterEqualDepth:\n              gl.depthFunc(gl.GEQUAL);\n              break;\n            case GreaterDepth:\n              gl.depthFunc(gl.GREATER);\n              break;\n            case NotEqualDepth:\n              gl.depthFunc(gl.NOTEQUAL);\n              break;\n            default:\n              gl.depthFunc(gl.LEQUAL);\n          }\n          currentDepthFunc = depthFunc;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(depth) {\n        if (currentDepthClear !== depth) {\n          gl.clearDepth(depth);\n          currentDepthClear = depth;\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentDepthMask = null;\n        currentDepthFunc = null;\n        currentDepthClear = null;\n      }\n    };\n  }\n  function StencilBuffer() {\n    let locked = false;\n    let currentStencilMask = null;\n    let currentStencilFunc = null;\n    let currentStencilRef = null;\n    let currentStencilFuncMask = null;\n    let currentStencilFail = null;\n    let currentStencilZFail = null;\n    let currentStencilZPass = null;\n    let currentStencilClear = null;\n    return {\n      setTest: function(stencilTest) {\n        if (!locked) {\n          if (stencilTest) {\n            enable(gl.STENCIL_TEST);\n          } else {\n            disable(gl.STENCIL_TEST);\n          }\n        }\n      },\n      setMask: function(stencilMask) {\n        if (currentStencilMask !== stencilMask && !locked) {\n          gl.stencilMask(stencilMask);\n          currentStencilMask = stencilMask;\n        }\n      },\n      setFunc: function(stencilFunc, stencilRef, stencilMask) {\n        if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\n          gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\n          currentStencilFunc = stencilFunc;\n          currentStencilRef = stencilRef;\n          currentStencilFuncMask = stencilMask;\n        }\n      },\n      setOp: function(stencilFail, stencilZFail, stencilZPass) {\n        if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\n          gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\n          currentStencilFail = stencilFail;\n          currentStencilZFail = stencilZFail;\n          currentStencilZPass = stencilZPass;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(stencil) {\n        if (currentStencilClear !== stencil) {\n          gl.clearStencil(stencil);\n          currentStencilClear = stencil;\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentStencilMask = null;\n        currentStencilFunc = null;\n        currentStencilRef = null;\n        currentStencilFuncMask = null;\n        currentStencilFail = null;\n        currentStencilZFail = null;\n        currentStencilZPass = null;\n        currentStencilClear = null;\n      }\n    };\n  }\n  const colorBuffer = new ColorBuffer();\n  const depthBuffer = new DepthBuffer();\n  const stencilBuffer = new StencilBuffer();\n  const uboBindings = /* @__PURE__ */ new WeakMap();\n  const uboProgramMap = /* @__PURE__ */ new WeakMap();\n  let enabledCapabilities = {};\n  let currentBoundFramebuffers = {};\n  let currentDrawbuffers = /* @__PURE__ */ new WeakMap();\n  let defaultDrawbuffers = [];\n  let currentProgram = null;\n  let currentBlendingEnabled = false;\n  let currentBlending = null;\n  let currentBlendEquation = null;\n  let currentBlendSrc = null;\n  let currentBlendDst = null;\n  let currentBlendEquationAlpha = null;\n  let currentBlendSrcAlpha = null;\n  let currentBlendDstAlpha = null;\n  let currentBlendColor = new Color(0, 0, 0);\n  let currentBlendAlpha = 0;\n  let currentPremultipledAlpha = false;\n  let currentFlipSided = null;\n  let currentCullFace = null;\n  let currentLineWidth = null;\n  let currentPolygonOffsetFactor = null;\n  let currentPolygonOffsetUnits = null;\n  const maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n  let lineWidthAvailable = false;\n  let version = 0;\n  const glVersion = gl.getParameter(gl.VERSION);\n  if (glVersion.indexOf(\"WebGL\") !== -1) {\n    version = parseFloat(/^WebGL (\\d)/.exec(glVersion)[1]);\n    lineWidthAvailable = version >= 1;\n  } else if (glVersion.indexOf(\"OpenGL ES\") !== -1) {\n    version = parseFloat(/^OpenGL ES (\\d)/.exec(glVersion)[1]);\n    lineWidthAvailable = version >= 2;\n  }\n  let currentTextureSlot = null;\n  let currentBoundTextures = {};\n  const scissorParam = gl.getParameter(gl.SCISSOR_BOX);\n  const viewportParam = gl.getParameter(gl.VIEWPORT);\n  const currentScissor = new Vector4().fromArray(scissorParam);\n  const currentViewport = new Vector4().fromArray(viewportParam);\n  function createTexture(type, target, count, dimensions) {\n    const data = new Uint8Array(4);\n    const texture = gl.createTexture();\n    gl.bindTexture(type, texture);\n    gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n    gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n    for (let i = 0; i < count; i++) {\n      if (type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY) {\n        gl.texImage3D(target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n      } else {\n        gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n      }\n    }\n    return texture;\n  }\n  const emptyTextures = {};\n  emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1);\n  emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6);\n  emptyTextures[gl.TEXTURE_2D_ARRAY] = createTexture(gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1);\n  emptyTextures[gl.TEXTURE_3D] = createTexture(gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1);\n  colorBuffer.setClear(0, 0, 0, 1);\n  depthBuffer.setClear(1);\n  stencilBuffer.setClear(0);\n  enable(gl.DEPTH_TEST);\n  depthBuffer.setFunc(LessEqualDepth);\n  setFlipSided(false);\n  setCullFace(CullFaceBack);\n  enable(gl.CULL_FACE);\n  setBlending(NoBlending);\n  function enable(id) {\n    if (enabledCapabilities[id] !== true) {\n      gl.enable(id);\n      enabledCapabilities[id] = true;\n    }\n  }\n  function disable(id) {\n    if (enabledCapabilities[id] !== false) {\n      gl.disable(id);\n      enabledCapabilities[id] = false;\n    }\n  }\n  function bindFramebuffer(target, framebuffer) {\n    if (currentBoundFramebuffers[target] !== framebuffer) {\n      gl.bindFramebuffer(target, framebuffer);\n      currentBoundFramebuffers[target] = framebuffer;\n      if (target === gl.DRAW_FRAMEBUFFER) {\n        currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer;\n      }\n      if (target === gl.FRAMEBUFFER) {\n        currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer;\n      }\n      return true;\n    }\n    return false;\n  }\n  function drawBuffers(renderTarget, framebuffer) {\n    let drawBuffers2 = defaultDrawbuffers;\n    let needsUpdate = false;\n    if (renderTarget) {\n      drawBuffers2 = currentDrawbuffers.get(framebuffer);\n      if (drawBuffers2 === void 0) {\n        drawBuffers2 = [];\n        currentDrawbuffers.set(framebuffer, drawBuffers2);\n      }\n      const textures = renderTarget.textures;\n      if (drawBuffers2.length !== textures.length || drawBuffers2[0] !== gl.COLOR_ATTACHMENT0) {\n        for (let i = 0, il = textures.length; i < il; i++) {\n          drawBuffers2[i] = gl.COLOR_ATTACHMENT0 + i;\n        }\n        drawBuffers2.length = textures.length;\n        needsUpdate = true;\n      }\n    } else {\n      if (drawBuffers2[0] !== gl.BACK) {\n        drawBuffers2[0] = gl.BACK;\n        needsUpdate = true;\n      }\n    }\n    if (needsUpdate) {\n      gl.drawBuffers(drawBuffers2);\n    }\n  }\n  function useProgram(program) {\n    if (currentProgram !== program) {\n      gl.useProgram(program);\n      currentProgram = program;\n      return true;\n    }\n    return false;\n  }\n  const equationToGL = {\n    [AddEquation]: gl.FUNC_ADD,\n    [SubtractEquation]: gl.FUNC_SUBTRACT,\n    [ReverseSubtractEquation]: gl.FUNC_REVERSE_SUBTRACT\n  };\n  equationToGL[MinEquation] = gl.MIN;\n  equationToGL[MaxEquation] = gl.MAX;\n  const factorToGL = {\n    [ZeroFactor]: gl.ZERO,\n    [OneFactor]: gl.ONE,\n    [SrcColorFactor]: gl.SRC_COLOR,\n    [SrcAlphaFactor]: gl.SRC_ALPHA,\n    [SrcAlphaSaturateFactor]: gl.SRC_ALPHA_SATURATE,\n    [DstColorFactor]: gl.DST_COLOR,\n    [DstAlphaFactor]: gl.DST_ALPHA,\n    [OneMinusSrcColorFactor]: gl.ONE_MINUS_SRC_COLOR,\n    [OneMinusSrcAlphaFactor]: gl.ONE_MINUS_SRC_ALPHA,\n    [OneMinusDstColorFactor]: gl.ONE_MINUS_DST_COLOR,\n    [OneMinusDstAlphaFactor]: gl.ONE_MINUS_DST_ALPHA,\n    [ConstantColorFactor]: gl.CONSTANT_COLOR,\n    [OneMinusConstantColorFactor]: gl.ONE_MINUS_CONSTANT_COLOR,\n    [ConstantAlphaFactor]: gl.CONSTANT_ALPHA,\n    [OneMinusConstantAlphaFactor]: gl.ONE_MINUS_CONSTANT_ALPHA\n  };\n  function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha) {\n    if (blending === NoBlending) {\n      if (currentBlendingEnabled === true) {\n        disable(gl.BLEND);\n        currentBlendingEnabled = false;\n      }\n      return;\n    }\n    if (currentBlendingEnabled === false) {\n      enable(gl.BLEND);\n      currentBlendingEnabled = true;\n    }\n    if (blending !== CustomBlending) {\n      if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\n        if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\n          gl.blendEquation(gl.FUNC_ADD);\n          currentBlendEquation = AddEquation;\n          currentBlendEquationAlpha = AddEquation;\n        }\n        if (premultipliedAlpha) {\n          switch (blending) {\n            case NormalBlending:\n              gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n              break;\n            case AdditiveBlending:\n              gl.blendFunc(gl.ONE, gl.ONE);\n              break;\n            case SubtractiveBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n              break;\n            case MultiplyBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA);\n              break;\n            default:\n              console.error(\"THREE.WebGLState: Invalid blending: \", blending);\n              break;\n          }\n        } else {\n          switch (blending) {\n            case NormalBlending:\n              gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n              break;\n            case AdditiveBlending:\n              gl.blendFunc(gl.SRC_ALPHA, gl.ONE);\n              break;\n            case SubtractiveBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n              break;\n            case MultiplyBlending:\n              gl.blendFunc(gl.ZERO, gl.SRC_COLOR);\n              break;\n            default:\n              console.error(\"THREE.WebGLState: Invalid blending: \", blending);\n              break;\n          }\n        }\n        currentBlendSrc = null;\n        currentBlendDst = null;\n        currentBlendSrcAlpha = null;\n        currentBlendDstAlpha = null;\n        currentBlendColor.set(0, 0, 0);\n        currentBlendAlpha = 0;\n        currentBlending = blending;\n        currentPremultipledAlpha = premultipliedAlpha;\n      }\n      return;\n    }\n    blendEquationAlpha = blendEquationAlpha || blendEquation;\n    blendSrcAlpha = blendSrcAlpha || blendSrc;\n    blendDstAlpha = blendDstAlpha || blendDst;\n    if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\n      gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\n      currentBlendEquation = blendEquation;\n      currentBlendEquationAlpha = blendEquationAlpha;\n    }\n    if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\n      gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\n      currentBlendSrc = blendSrc;\n      currentBlendDst = blendDst;\n      currentBlendSrcAlpha = blendSrcAlpha;\n      currentBlendDstAlpha = blendDstAlpha;\n    }\n    if (blendColor.equals(currentBlendColor) === false || blendAlpha !== currentBlendAlpha) {\n      gl.blendColor(blendColor.r, blendColor.g, blendColor.b, blendAlpha);\n      currentBlendColor.copy(blendColor);\n      currentBlendAlpha = blendAlpha;\n    }\n    currentBlending = blending;\n    currentPremultipledAlpha = false;\n  }\n  function setMaterial(material, frontFaceCW) {\n    material.side === DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE);\n    let flipSided = material.side === BackSide;\n    if (frontFaceCW) flipSided = !flipSided;\n    setFlipSided(flipSided);\n    material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha);\n    depthBuffer.setFunc(material.depthFunc);\n    depthBuffer.setTest(material.depthTest);\n    depthBuffer.setMask(material.depthWrite);\n    colorBuffer.setMask(material.colorWrite);\n    const stencilWrite = material.stencilWrite;\n    stencilBuffer.setTest(stencilWrite);\n    if (stencilWrite) {\n      stencilBuffer.setMask(material.stencilWriteMask);\n      stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\n      stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\n    }\n    setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\n    material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n  }\n  function setFlipSided(flipSided) {\n    if (currentFlipSided !== flipSided) {\n      if (flipSided) {\n        gl.frontFace(gl.CW);\n      } else {\n        gl.frontFace(gl.CCW);\n      }\n      currentFlipSided = flipSided;\n    }\n  }\n  function setCullFace(cullFace) {\n    if (cullFace !== CullFaceNone) {\n      enable(gl.CULL_FACE);\n      if (cullFace !== currentCullFace) {\n        if (cullFace === CullFaceBack) {\n          gl.cullFace(gl.BACK);\n        } else if (cullFace === CullFaceFront) {\n          gl.cullFace(gl.FRONT);\n        } else {\n          gl.cullFace(gl.FRONT_AND_BACK);\n        }\n      }\n    } else {\n      disable(gl.CULL_FACE);\n    }\n    currentCullFace = cullFace;\n  }\n  function setLineWidth(width) {\n    if (width !== currentLineWidth) {\n      if (lineWidthAvailable) gl.lineWidth(width);\n      currentLineWidth = width;\n    }\n  }\n  function setPolygonOffset(polygonOffset, factor, units) {\n    if (polygonOffset) {\n      enable(gl.POLYGON_OFFSET_FILL);\n      if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\n        gl.polygonOffset(factor, units);\n        currentPolygonOffsetFactor = factor;\n        currentPolygonOffsetUnits = units;\n      }\n    } else {\n      disable(gl.POLYGON_OFFSET_FILL);\n    }\n  }\n  function setScissorTest(scissorTest) {\n    if (scissorTest) {\n      enable(gl.SCISSOR_TEST);\n    } else {\n      disable(gl.SCISSOR_TEST);\n    }\n  }\n  function activeTexture(webglSlot) {\n    if (webglSlot === void 0) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n    if (currentTextureSlot !== webglSlot) {\n      gl.activeTexture(webglSlot);\n      currentTextureSlot = webglSlot;\n    }\n  }\n  function bindTexture(webglType, webglTexture, webglSlot) {\n    if (webglSlot === void 0) {\n      if (currentTextureSlot === null) {\n        webglSlot = gl.TEXTURE0 + maxTextures - 1;\n      } else {\n        webglSlot = currentTextureSlot;\n      }\n    }\n    let boundTexture = currentBoundTextures[webglSlot];\n    if (boundTexture === void 0) {\n      boundTexture = { type: void 0, texture: void 0 };\n      currentBoundTextures[webglSlot] = boundTexture;\n    }\n    if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\n      if (currentTextureSlot !== webglSlot) {\n        gl.activeTexture(webglSlot);\n        currentTextureSlot = webglSlot;\n      }\n      gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\n      boundTexture.type = webglType;\n      boundTexture.texture = webglTexture;\n    }\n  }\n  function unbindTexture() {\n    const boundTexture = currentBoundTextures[currentTextureSlot];\n    if (boundTexture !== void 0 && boundTexture.type !== void 0) {\n      gl.bindTexture(boundTexture.type, null);\n      boundTexture.type = void 0;\n      boundTexture.texture = void 0;\n    }\n  }\n  function compressedTexImage2D() {\n    try {\n      gl.compressedTexImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexImage3D() {\n    try {\n      gl.compressedTexImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texSubImage2D() {\n    try {\n      gl.texSubImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texSubImage3D() {\n    try {\n      gl.texSubImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexSubImage2D() {\n    try {\n      gl.compressedTexSubImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexSubImage3D() {\n    try {\n      gl.compressedTexSubImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texStorage2D() {\n    try {\n      gl.texStorage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texStorage3D() {\n    try {\n      gl.texStorage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texImage2D() {\n    try {\n      gl.texImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texImage3D() {\n    try {\n      gl.texImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function scissor(scissor2) {\n    if (currentScissor.equals(scissor2) === false) {\n      gl.scissor(scissor2.x, scissor2.y, scissor2.z, scissor2.w);\n      currentScissor.copy(scissor2);\n    }\n  }\n  function viewport(viewport2) {\n    if (currentViewport.equals(viewport2) === false) {\n      gl.viewport(viewport2.x, viewport2.y, viewport2.z, viewport2.w);\n      currentViewport.copy(viewport2);\n    }\n  }\n  function updateUBOMapping(uniformsGroup, program) {\n    let mapping = uboProgramMap.get(program);\n    if (mapping === void 0) {\n      mapping = /* @__PURE__ */ new WeakMap();\n      uboProgramMap.set(program, mapping);\n    }\n    let blockIndex = mapping.get(uniformsGroup);\n    if (blockIndex === void 0) {\n      blockIndex = gl.getUniformBlockIndex(program, uniformsGroup.name);\n      mapping.set(uniformsGroup, blockIndex);\n    }\n  }\n  function uniformBlockBinding(uniformsGroup, program) {\n    const mapping = uboProgramMap.get(program);\n    const blockIndex = mapping.get(uniformsGroup);\n    if (uboBindings.get(program) !== blockIndex) {\n      gl.uniformBlockBinding(program, blockIndex, uniformsGroup.__bindingPointIndex);\n      uboBindings.set(program, blockIndex);\n    }\n  }\n  function reset() {\n    gl.disable(gl.BLEND);\n    gl.disable(gl.CULL_FACE);\n    gl.disable(gl.DEPTH_TEST);\n    gl.disable(gl.POLYGON_OFFSET_FILL);\n    gl.disable(gl.SCISSOR_TEST);\n    gl.disable(gl.STENCIL_TEST);\n    gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n    gl.blendEquation(gl.FUNC_ADD);\n    gl.blendFunc(gl.ONE, gl.ZERO);\n    gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO);\n    gl.blendColor(0, 0, 0, 0);\n    gl.colorMask(true, true, true, true);\n    gl.clearColor(0, 0, 0, 0);\n    gl.depthMask(true);\n    gl.depthFunc(gl.LESS);\n    gl.clearDepth(1);\n    gl.stencilMask(4294967295);\n    gl.stencilFunc(gl.ALWAYS, 0, 4294967295);\n    gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n    gl.clearStencil(0);\n    gl.cullFace(gl.BACK);\n    gl.frontFace(gl.CCW);\n    gl.polygonOffset(0, 0);\n    gl.activeTexture(gl.TEXTURE0);\n    gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n    gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\n    gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n    gl.useProgram(null);\n    gl.lineWidth(1);\n    gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);\n    gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);\n    enabledCapabilities = {};\n    currentTextureSlot = null;\n    currentBoundTextures = {};\n    currentBoundFramebuffers = {};\n    currentDrawbuffers = /* @__PURE__ */ new WeakMap();\n    defaultDrawbuffers = [];\n    currentProgram = null;\n    currentBlendingEnabled = false;\n    currentBlending = null;\n    currentBlendEquation = null;\n    currentBlendSrc = null;\n    currentBlendDst = null;\n    currentBlendEquationAlpha = null;\n    currentBlendSrcAlpha = null;\n    currentBlendDstAlpha = null;\n    currentBlendColor = new Color(0, 0, 0);\n    currentBlendAlpha = 0;\n    currentPremultipledAlpha = false;\n    currentFlipSided = null;\n    currentCullFace = null;\n    currentLineWidth = null;\n    currentPolygonOffsetFactor = null;\n    currentPolygonOffsetUnits = null;\n    currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height);\n    currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height);\n    colorBuffer.reset();\n    depthBuffer.reset();\n    stencilBuffer.reset();\n  }\n  return {\n    buffers: {\n      color: colorBuffer,\n      depth: depthBuffer,\n      stencil: stencilBuffer\n    },\n    enable,\n    disable,\n    bindFramebuffer,\n    drawBuffers,\n    useProgram,\n    setBlending,\n    setMaterial,\n    setFlipSided,\n    setCullFace,\n    setLineWidth,\n    setPolygonOffset,\n    setScissorTest,\n    activeTexture,\n    bindTexture,\n    unbindTexture,\n    compressedTexImage2D,\n    compressedTexImage3D,\n    texImage2D,\n    texImage3D,\n    updateUBOMapping,\n    uniformBlockBinding,\n    texStorage2D,\n    texStorage3D,\n    texSubImage2D,\n    texSubImage3D,\n    compressedTexSubImage2D,\n    compressedTexSubImage3D,\n    scissor,\n    viewport,\n    reset\n  };\n}\nfunction contain(texture, aspect2) {\n  const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1;\n  if (imageAspect > aspect2) {\n    texture.repeat.x = 1;\n    texture.repeat.y = imageAspect / aspect2;\n    texture.offset.x = 0;\n    texture.offset.y = (1 - texture.repeat.y) / 2;\n  } else {\n    texture.repeat.x = aspect2 / imageAspect;\n    texture.repeat.y = 1;\n    texture.offset.x = (1 - texture.repeat.x) / 2;\n    texture.offset.y = 0;\n  }\n  return texture;\n}\nfunction cover(texture, aspect2) {\n  const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1;\n  if (imageAspect > aspect2) {\n    texture.repeat.x = aspect2 / imageAspect;\n    texture.repeat.y = 1;\n    texture.offset.x = (1 - texture.repeat.x) / 2;\n    texture.offset.y = 0;\n  } else {\n    texture.repeat.x = 1;\n    texture.repeat.y = imageAspect / aspect2;\n    texture.offset.x = 0;\n    texture.offset.y = (1 - texture.repeat.y) / 2;\n  }\n  return texture;\n}\nfunction fill(texture) {\n  texture.repeat.x = 1;\n  texture.repeat.y = 1;\n  texture.offset.x = 0;\n  texture.offset.y = 0;\n  return texture;\n}\nfunction getByteLength(width, height, format, type) {\n  const typeByteLength = getTextureTypeByteLength(type);\n  switch (format) {\n    // https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n    case AlphaFormat:\n      return width * height;\n    case LuminanceFormat:\n      return width * height;\n    case LuminanceAlphaFormat:\n      return width * height * 2;\n    case RedFormat:\n      return width * height / typeByteLength.components * typeByteLength.byteLength;\n    case RedIntegerFormat:\n      return width * height / typeByteLength.components * typeByteLength.byteLength;\n    case RGFormat:\n      return width * height * 2 / typeByteLength.components * typeByteLength.byteLength;\n    case RGIntegerFormat:\n      return width * height * 2 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBFormat:\n      return width * height * 3 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBAFormat:\n      return width * height * 4 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBAIntegerFormat:\n      return width * height * 4 / typeByteLength.components * typeByteLength.byteLength;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n    case RGB_S3TC_DXT1_Format:\n    case RGBA_S3TC_DXT1_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n    case RGBA_S3TC_DXT3_Format:\n    case RGBA_S3TC_DXT5_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n    case RGB_PVRTC_2BPPV1_Format:\n    case RGBA_PVRTC_2BPPV1_Format:\n      return Math.max(width, 16) * Math.max(height, 8) / 4;\n    case RGB_PVRTC_4BPPV1_Format:\n    case RGBA_PVRTC_4BPPV1_Format:\n      return Math.max(width, 8) * Math.max(height, 8) / 2;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n    case RGB_ETC1_Format:\n    case RGB_ETC2_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n    case RGBA_ETC2_EAC_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n    case RGBA_ASTC_4x4_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    case RGBA_ASTC_5x4_Format:\n      return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n    case RGBA_ASTC_5x5_Format:\n      return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_6x5_Format:\n      return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_6x6_Format:\n      return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_8x5_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_8x6_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_8x8_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n    case RGBA_ASTC_10x5_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_10x6_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_10x8_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n    case RGBA_ASTC_10x10_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n    case RGBA_ASTC_12x10_Format:\n      return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n    case RGBA_ASTC_12x12_Format:\n      return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n    // https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n    case RGBA_BPTC_Format:\n    case RGB_BPTC_SIGNED_Format:\n    case RGB_BPTC_UNSIGNED_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n    case RED_RGTC1_Format:\n    case SIGNED_RED_RGTC1_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 8;\n    case RED_GREEN_RGTC2_Format:\n    case SIGNED_RED_GREEN_RGTC2_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 16;\n  }\n  throw new Error(\n    `Unable to determine texture byte length for ${format} format.`\n  );\n}\nfunction getTextureTypeByteLength(type) {\n  switch (type) {\n    case UnsignedByteType:\n    case ByteType:\n      return { byteLength: 1, components: 1 };\n    case UnsignedShortType:\n    case ShortType:\n    case HalfFloatType:\n      return { byteLength: 2, components: 1 };\n    case UnsignedShort4444Type:\n    case UnsignedShort5551Type:\n      return { byteLength: 2, components: 4 };\n    case UnsignedIntType:\n    case IntType:\n    case FloatType:\n      return { byteLength: 4, components: 1 };\n    case UnsignedInt5999Type:\n      return { byteLength: 4, components: 3 };\n  }\n  throw new Error(`Unknown texture type ${type}.`);\n}\nvar TextureUtils = {\n  contain,\n  cover,\n  fill,\n  getByteLength\n};\nfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\n  const multisampledRTTExt = extensions.has(\"WEBGL_multisampled_render_to_texture\") ? extensions.get(\"WEBGL_multisampled_render_to_texture\") : null;\n  const supportsInvalidateFramebuffer = typeof navigator === \"undefined\" ? false : /OculusBrowser/g.test(navigator.userAgent);\n  const _imageDimensions = new Vector2();\n  const _videoTextures = /* @__PURE__ */ new WeakMap();\n  let _canvas2;\n  const _sources = /* @__PURE__ */ new WeakMap();\n  let useOffscreenCanvas = false;\n  try {\n    useOffscreenCanvas = typeof OffscreenCanvas !== \"undefined\" && new OffscreenCanvas(1, 1).getContext(\"2d\") !== null;\n  } catch (err) {\n  }\n  function createCanvas(width, height) {\n    return useOffscreenCanvas ? (\n      // eslint-disable-next-line compat/compat\n      new OffscreenCanvas(width, height)\n    ) : createElementNS(\"canvas\");\n  }\n  function resizeImage(image, needsNewCanvas, maxSize) {\n    let scale = 1;\n    const dimensions = getDimensions(image);\n    if (dimensions.width > maxSize || dimensions.height > maxSize) {\n      scale = maxSize / Math.max(dimensions.width, dimensions.height);\n    }\n    if (scale < 1) {\n      if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap || typeof VideoFrame !== \"undefined\" && image instanceof VideoFrame) {\n        const width = Math.floor(scale * dimensions.width);\n        const height = Math.floor(scale * dimensions.height);\n        if (_canvas2 === void 0) _canvas2 = createCanvas(width, height);\n        const canvas = needsNewCanvas ? createCanvas(width, height) : _canvas2;\n        canvas.width = width;\n        canvas.height = height;\n        const context = canvas.getContext(\"2d\");\n        context.drawImage(image, 0, 0, width, height);\n        console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\" + dimensions.width + \"x\" + dimensions.height + \") to (\" + width + \"x\" + height + \").\");\n        return canvas;\n      } else {\n        if (\"data\" in image) {\n          console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\" + dimensions.width + \"x\" + dimensions.height + \").\");\n        }\n        return image;\n      }\n    }\n    return image;\n  }\n  function textureNeedsGenerateMipmaps(texture) {\n    return texture.generateMipmaps && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n  }\n  function generateMipmap(target) {\n    _gl.generateMipmap(target);\n  }\n  function getInternalFormat(internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false) {\n    if (internalFormatName !== null) {\n      if (_gl[internalFormatName] !== void 0) return _gl[internalFormatName];\n      console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\" + internalFormatName + \"'\");\n    }\n    let internalFormat = glFormat;\n    if (glFormat === _gl.RED) {\n      if (glType === _gl.FLOAT) internalFormat = _gl.R32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.R16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8;\n    }\n    if (glFormat === _gl.RED_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.R16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.R32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.R8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.R16I;\n      if (glType === _gl.INT) internalFormat = _gl.R32I;\n    }\n    if (glFormat === _gl.RG) {\n      if (glType === _gl.FLOAT) internalFormat = _gl.RG32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RG16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8;\n    }\n    if (glFormat === _gl.RG_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RG16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RG32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RG8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RG16I;\n      if (glType === _gl.INT) internalFormat = _gl.RG32I;\n    }\n    if (glFormat === _gl.RGB_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGB8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGB16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGB32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RGB8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RGB16I;\n      if (glType === _gl.INT) internalFormat = _gl.RGB32I;\n    }\n    if (glFormat === _gl.RGBA_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGBA8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGBA16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGBA32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RGBA8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RGBA16I;\n      if (glType === _gl.INT) internalFormat = _gl.RGBA32I;\n    }\n    if (glFormat === _gl.RGB) {\n      if (glType === _gl.UNSIGNED_INT_5_9_9_9_REV) internalFormat = _gl.RGB9_E5;\n    }\n    if (glFormat === _gl.RGBA) {\n      const transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer(colorSpace);\n      if (glType === _gl.FLOAT) internalFormat = _gl.RGBA32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RGBA16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = transfer === SRGBTransfer ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n      if (glType === _gl.UNSIGNED_SHORT_4_4_4_4) internalFormat = _gl.RGBA4;\n      if (glType === _gl.UNSIGNED_SHORT_5_5_5_1) internalFormat = _gl.RGB5_A1;\n    }\n    if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RG16F || internalFormat === _gl.RG32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) {\n      extensions.get(\"EXT_color_buffer_float\");\n    }\n    return internalFormat;\n  }\n  function getInternalDepthFormat(useStencil, depthType) {\n    let glInternalFormat;\n    if (useStencil) {\n      if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) {\n        glInternalFormat = _gl.DEPTH24_STENCIL8;\n      } else if (depthType === FloatType) {\n        glInternalFormat = _gl.DEPTH32F_STENCIL8;\n      } else if (depthType === UnsignedShortType) {\n        glInternalFormat = _gl.DEPTH24_STENCIL8;\n        console.warn(\"DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.\");\n      }\n    } else {\n      if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) {\n        glInternalFormat = _gl.DEPTH_COMPONENT24;\n      } else if (depthType === FloatType) {\n        glInternalFormat = _gl.DEPTH_COMPONENT32F;\n      } else if (depthType === UnsignedShortType) {\n        glInternalFormat = _gl.DEPTH_COMPONENT16;\n      }\n    }\n    return glInternalFormat;\n  }\n  function getMipLevels(texture, image) {\n    if (textureNeedsGenerateMipmaps(texture) === true || texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\n      return Math.log2(Math.max(image.width, image.height)) + 1;\n    } else if (texture.mipmaps !== void 0 && texture.mipmaps.length > 0) {\n      return texture.mipmaps.length;\n    } else if (texture.isCompressedTexture && Array.isArray(texture.image)) {\n      return image.mipmaps.length;\n    } else {\n      return 1;\n    }\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    deallocateTexture(texture);\n    if (texture.isVideoTexture) {\n      _videoTextures.delete(texture);\n    }\n  }\n  function onRenderTargetDispose(event) {\n    const renderTarget = event.target;\n    renderTarget.removeEventListener(\"dispose\", onRenderTargetDispose);\n    deallocateRenderTarget(renderTarget);\n  }\n  function deallocateTexture(texture) {\n    const textureProperties = properties.get(texture);\n    if (textureProperties.__webglInit === void 0) return;\n    const source = texture.source;\n    const webglTextures = _sources.get(source);\n    if (webglTextures) {\n      const webglTexture = webglTextures[textureProperties.__cacheKey];\n      webglTexture.usedTimes--;\n      if (webglTexture.usedTimes === 0) {\n        deleteTexture(texture);\n      }\n      if (Object.keys(webglTextures).length === 0) {\n        _sources.delete(source);\n      }\n    }\n    properties.remove(texture);\n  }\n  function deleteTexture(texture) {\n    const textureProperties = properties.get(texture);\n    _gl.deleteTexture(textureProperties.__webglTexture);\n    const source = texture.source;\n    const webglTextures = _sources.get(source);\n    delete webglTextures[textureProperties.__cacheKey];\n    info.memory.textures--;\n  }\n  function deallocateRenderTarget(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    if (renderTarget.depthTexture) {\n      renderTarget.depthTexture.dispose();\n    }\n    if (renderTarget.isWebGLCubeRenderTarget) {\n      for (let i = 0; i < 6; i++) {\n        if (Array.isArray(renderTargetProperties.__webglFramebuffer[i])) {\n          for (let level = 0; level < renderTargetProperties.__webglFramebuffer[i].length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i][level]);\n        } else {\n          _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\n        }\n        if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\n      }\n    } else {\n      if (Array.isArray(renderTargetProperties.__webglFramebuffer)) {\n        for (let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[level]);\n      } else {\n        _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\n      }\n      if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\n      if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\n      if (renderTargetProperties.__webglColorRenderbuffer) {\n        for (let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i++) {\n          if (renderTargetProperties.__webglColorRenderbuffer[i]) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[i]);\n        }\n      }\n      if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\n    }\n    const textures = renderTarget.textures;\n    for (let i = 0, il = textures.length; i < il; i++) {\n      const attachmentProperties = properties.get(textures[i]);\n      if (attachmentProperties.__webglTexture) {\n        _gl.deleteTexture(attachmentProperties.__webglTexture);\n        info.memory.textures--;\n      }\n      properties.remove(textures[i]);\n    }\n    properties.remove(renderTarget);\n  }\n  let textureUnits = 0;\n  function resetTextureUnits() {\n    textureUnits = 0;\n  }\n  function allocateTextureUnit() {\n    const textureUnit = textureUnits;\n    if (textureUnit >= capabilities.maxTextures) {\n      console.warn(\"THREE.WebGLTextures: Trying to use \" + textureUnit + \" texture units while this GPU supports only \" + capabilities.maxTextures);\n    }\n    textureUnits += 1;\n    return textureUnit;\n  }\n  function getTextureCacheKey(texture) {\n    const array = [];\n    array.push(texture.wrapS);\n    array.push(texture.wrapT);\n    array.push(texture.wrapR || 0);\n    array.push(texture.magFilter);\n    array.push(texture.minFilter);\n    array.push(texture.anisotropy);\n    array.push(texture.internalFormat);\n    array.push(texture.format);\n    array.push(texture.type);\n    array.push(texture.generateMipmaps);\n    array.push(texture.premultiplyAlpha);\n    array.push(texture.flipY);\n    array.push(texture.unpackAlignment);\n    array.push(texture.colorSpace);\n    return array.join();\n  }\n  function setTexture2D(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.isVideoTexture) updateVideoTexture(texture);\n    if (texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version) {\n      const image = texture.image;\n      if (image === null) {\n        console.warn(\"THREE.WebGLRenderer: Texture marked for update but no image data found.\");\n      } else if (image.complete === false) {\n        console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\");\n      } else {\n        uploadTexture(textureProperties, texture, slot);\n        return;\n      }\n    }\n    state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTexture2DArray(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTexture3D(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTextureCube(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadCubeTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  const wrappingToGL = {\n    [RepeatWrapping]: _gl.REPEAT,\n    [ClampToEdgeWrapping]: _gl.CLAMP_TO_EDGE,\n    [MirroredRepeatWrapping]: _gl.MIRRORED_REPEAT\n  };\n  const filterToGL = {\n    [NearestFilter]: _gl.NEAREST,\n    [NearestMipmapNearestFilter]: _gl.NEAREST_MIPMAP_NEAREST,\n    [NearestMipmapLinearFilter]: _gl.NEAREST_MIPMAP_LINEAR,\n    [LinearFilter]: _gl.LINEAR,\n    [LinearMipmapNearestFilter]: _gl.LINEAR_MIPMAP_NEAREST,\n    [LinearMipmapLinearFilter]: _gl.LINEAR_MIPMAP_LINEAR\n  };\n  const compareToGL = {\n    [NeverCompare]: _gl.NEVER,\n    [AlwaysCompare]: _gl.ALWAYS,\n    [LessCompare]: _gl.LESS,\n    [LessEqualCompare]: _gl.LEQUAL,\n    [EqualCompare]: _gl.EQUAL,\n    [GreaterEqualCompare]: _gl.GEQUAL,\n    [GreaterCompare]: _gl.GREATER,\n    [NotEqualCompare]: _gl.NOTEQUAL\n  };\n  function setTextureParameters(textureType, texture) {\n    if (texture.type === FloatType && extensions.has(\"OES_texture_float_linear\") === false && (texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter || texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter)) {\n      console.warn(\"THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.\");\n    }\n    _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]);\n    _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]);\n    if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]);\n    }\n    _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]);\n    _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]);\n    if (texture.compareFunction) {\n      _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE);\n      _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[texture.compareFunction]);\n    }\n    if (extensions.has(\"EXT_texture_filter_anisotropic\") === true) {\n      if (texture.magFilter === NearestFilter) return;\n      if (texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter) return;\n      if (texture.type === FloatType && extensions.has(\"OES_texture_float_linear\") === false) return;\n      if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\n        const extension = extensions.get(\"EXT_texture_filter_anisotropic\");\n        _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\n        properties.get(texture).__currentAnisotropy = texture.anisotropy;\n      }\n    }\n  }\n  function initTexture(textureProperties, texture) {\n    let forceUpload = false;\n    if (textureProperties.__webglInit === void 0) {\n      textureProperties.__webglInit = true;\n      texture.addEventListener(\"dispose\", onTextureDispose);\n    }\n    const source = texture.source;\n    let webglTextures = _sources.get(source);\n    if (webglTextures === void 0) {\n      webglTextures = {};\n      _sources.set(source, webglTextures);\n    }\n    const textureCacheKey = getTextureCacheKey(texture);\n    if (textureCacheKey !== textureProperties.__cacheKey) {\n      if (webglTextures[textureCacheKey] === void 0) {\n        webglTextures[textureCacheKey] = {\n          texture: _gl.createTexture(),\n          usedTimes: 0\n        };\n        info.memory.textures++;\n        forceUpload = true;\n      }\n      webglTextures[textureCacheKey].usedTimes++;\n      const webglTexture = webglTextures[textureProperties.__cacheKey];\n      if (webglTexture !== void 0) {\n        webglTextures[textureProperties.__cacheKey].usedTimes--;\n        if (webglTexture.usedTimes === 0) {\n          deleteTexture(texture);\n        }\n      }\n      textureProperties.__cacheKey = textureCacheKey;\n      textureProperties.__webglTexture = webglTextures[textureCacheKey].texture;\n    }\n    return forceUpload;\n  }\n  function uploadTexture(textureProperties, texture, slot) {\n    let textureType = _gl.TEXTURE_2D;\n    if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) textureType = _gl.TEXTURE_2D_ARRAY;\n    if (texture.isData3DTexture) textureType = _gl.TEXTURE_3D;\n    const forceUpload = initTexture(textureProperties, texture);\n    const source = texture.source;\n    state.bindTexture(textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n    const sourceProperties = properties.get(source);\n    if (source.version !== sourceProperties.__version || forceUpload === true) {\n      state.activeTexture(_gl.TEXTURE0 + slot);\n      const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n      const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace);\n      const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n      _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion);\n      let image = resizeImage(texture.image, false, capabilities.maxTextureSize);\n      image = verifyColorSpace(texture, image);\n      const glFormat = utils.convert(texture.format, texture.colorSpace);\n      const glType = utils.convert(texture.type);\n      let glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture);\n      setTextureParameters(textureType, texture);\n      let mipmap;\n      const mipmaps = texture.mipmaps;\n      const useTexStorage = texture.isVideoTexture !== true;\n      const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true;\n      const dataReady = source.dataReady;\n      const levels = getMipLevels(texture, image);\n      if (texture.isDepthTexture) {\n        glInternalFormat = getInternalDepthFormat(texture.format === DepthStencilFormat, texture.type);\n        if (allocateMemory) {\n          if (useTexStorage) {\n            state.texStorage2D(_gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height);\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\n          }\n        }\n      } else if (texture.isDataTexture) {\n        if (mipmaps.length > 0) {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n            }\n          }\n          texture.generateMipmaps = false;\n        } else {\n          if (useTexStorage) {\n            if (allocateMemory) {\n              state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n            }\n            if (dataReady) {\n              state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data);\n            }\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\n          }\n        }\n      } else if (texture.isCompressedTexture) {\n        if (texture.isCompressedArrayTexture) {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height, image.depth);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    if (texture.layerUpdates.size > 0) {\n                      const layerByteLength = getByteLength(mipmap.width, mipmap.height, texture.format, texture.type);\n                      for (const layerIndex of texture.layerUpdates) {\n                        const layerData = mipmap.data.subarray(\n                          layerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n                          (layerIndex + 1) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n                        );\n                        state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData, 0, 0);\n                      }\n                      texture.clearLayerUpdates();\n                    } else {\n                      state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data, 0, 0);\n                    }\n                  }\n                } else {\n                  state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        } else {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    state.compressedTexSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n                  }\n                } else {\n                  state.compressedTexImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        }\n      } else if (texture.isDataArrayTexture) {\n        if (useTexStorage) {\n          if (allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth);\n          }\n          if (dataReady) {\n            if (texture.layerUpdates.size > 0) {\n              const layerByteLength = getByteLength(image.width, image.height, texture.format, texture.type);\n              for (const layerIndex of texture.layerUpdates) {\n                const layerData = image.data.subarray(\n                  layerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n                  (layerIndex + 1) * layerByteLength / image.data.BYTES_PER_ELEMENT\n                );\n                state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData);\n              }\n              texture.clearLayerUpdates();\n            } else {\n              state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n            }\n          }\n        } else {\n          state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n        }\n      } else if (texture.isData3DTexture) {\n        if (useTexStorage) {\n          if (allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth);\n          }\n          if (dataReady) {\n            state.texSubImage3D(_gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n          }\n        } else {\n          state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n        }\n      } else if (texture.isFramebufferTexture) {\n        if (allocateMemory) {\n          if (useTexStorage) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n          } else {\n            let width = image.width, height = image.height;\n            for (let i = 0; i < levels; i++) {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null);\n              width >>= 1;\n              height >>= 1;\n            }\n          }\n        }\n      } else {\n        if (mipmaps.length > 0) {\n          if (useTexStorage && allocateMemory) {\n            const dimensions = getDimensions(mipmaps[0]);\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap);\n            }\n          }\n          texture.generateMipmaps = false;\n        } else {\n          if (useTexStorage) {\n            if (allocateMemory) {\n              const dimensions = getDimensions(image);\n              state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height);\n            }\n            if (dataReady) {\n              state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image);\n            }\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image);\n          }\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(textureType);\n      }\n      sourceProperties.__version = source.version;\n      if (texture.onUpdate) texture.onUpdate(texture);\n    }\n    textureProperties.__version = texture.version;\n  }\n  function uploadCubeTexture(textureProperties, texture, slot) {\n    if (texture.image.length !== 6) return;\n    const forceUpload = initTexture(textureProperties, texture);\n    const source = texture.source;\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n    const sourceProperties = properties.get(source);\n    if (source.version !== sourceProperties.__version || forceUpload === true) {\n      state.activeTexture(_gl.TEXTURE0 + slot);\n      const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n      const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace);\n      const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n      _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion);\n      const isCompressed = texture.isCompressedTexture || texture.image[0].isCompressedTexture;\n      const isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\n      const cubeImage = [];\n      for (let i = 0; i < 6; i++) {\n        if (!isCompressed && !isDataTexture) {\n          cubeImage[i] = resizeImage(texture.image[i], true, capabilities.maxCubemapSize);\n        } else {\n          cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\n        }\n        cubeImage[i] = verifyColorSpace(texture, cubeImage[i]);\n      }\n      const image = cubeImage[0], glFormat = utils.convert(texture.format, texture.colorSpace), glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n      const useTexStorage = texture.isVideoTexture !== true;\n      const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true;\n      const dataReady = source.dataReady;\n      let levels = getMipLevels(texture, image);\n      setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture);\n      let mipmaps;\n      if (isCompressed) {\n        if (useTexStorage && allocateMemory) {\n          state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height);\n        }\n        for (let i = 0; i < 6; i++) {\n          mipmaps = cubeImage[i].mipmaps;\n          for (let j = 0; j < mipmaps.length; j++) {\n            const mipmap = mipmaps[j];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n                  }\n                } else {\n                  state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        }\n      } else {\n        mipmaps = texture.mipmaps;\n        if (useTexStorage && allocateMemory) {\n          if (mipmaps.length > 0) levels++;\n          const dimensions = getDimensions(cubeImage[0]);\n          state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height);\n        }\n        for (let i = 0; i < 6; i++) {\n          if (isDataTexture) {\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[i].width, cubeImage[i].height, glFormat, glType, cubeImage[i].data);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[i].width, cubeImage[i].height, 0, glFormat, glType, cubeImage[i].data);\n            }\n            for (let j = 0; j < mipmaps.length; j++) {\n              const mipmap = mipmaps[j];\n              const mipmapImage = mipmap.image[i].image;\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\n              }\n            }\n          } else {\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[i]);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[i]);\n            }\n            for (let j = 0; j < mipmaps.length; j++) {\n              const mipmap = mipmaps[j];\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[i]);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[i]);\n              }\n            }\n          }\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(_gl.TEXTURE_CUBE_MAP);\n      }\n      sourceProperties.__version = source.version;\n      if (texture.onUpdate) texture.onUpdate(texture);\n    }\n    textureProperties.__version = texture.version;\n  }\n  function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget, level) {\n    const glFormat = utils.convert(texture.format, texture.colorSpace);\n    const glType = utils.convert(texture.type);\n    const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n    const renderTargetProperties = properties.get(renderTarget);\n    if (!renderTargetProperties.__hasExternalTextures) {\n      const width = Math.max(1, renderTarget.width >> level);\n      const height = Math.max(1, renderTarget.height >> level);\n      if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) {\n        state.texImage3D(textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null);\n      } else {\n        state.texImage2D(textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null);\n      }\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n    if (useMultisampledRTT(renderTarget)) {\n      multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0, getRenderTargetSamples(renderTarget));\n    } else if (textureTarget === _gl.TEXTURE_2D || textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z) {\n      _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, level);\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n  }\n  function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n    if (renderTarget.depthBuffer) {\n      const depthTexture = renderTarget.depthTexture;\n      const depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n      const glInternalFormat = getInternalDepthFormat(renderTarget.stencilBuffer, depthType);\n      const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n      const samples = getRenderTargetSamples(renderTarget);\n      const isUseMultisampledRTT = useMultisampledRTT(renderTarget);\n      if (isUseMultisampledRTT) {\n        multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n      } else if (isMultisample) {\n        _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n      } else {\n        _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n      }\n      _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n    } else {\n      const textures = renderTarget.textures;\n      for (let i = 0; i < textures.length; i++) {\n        const texture = textures[i];\n        const glFormat = utils.convert(texture.format, texture.colorSpace);\n        const glType = utils.convert(texture.type);\n        const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n        const samples = getRenderTargetSamples(renderTarget);\n        if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n          _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n        } else if (useMultisampledRTT(renderTarget)) {\n          multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n        } else {\n          _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n        }\n      }\n    }\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n  }\n  function setupDepthTexture(framebuffer, renderTarget) {\n    const isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\n    if (isCube) throw new Error(\"Depth Texture with cube render targets is not supported\");\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n    if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\n      throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");\n    }\n    if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\n      renderTarget.depthTexture.image.width = renderTarget.width;\n      renderTarget.depthTexture.image.height = renderTarget.height;\n      renderTarget.depthTexture.needsUpdate = true;\n    }\n    setTexture2D(renderTarget.depthTexture, 0);\n    const webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\n    const samples = getRenderTargetSamples(renderTarget);\n    if (renderTarget.depthTexture.format === DepthFormat) {\n      if (useMultisampledRTT(renderTarget)) {\n        multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n      } else {\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n      }\n    } else if (renderTarget.depthTexture.format === DepthStencilFormat) {\n      if (useMultisampledRTT(renderTarget)) {\n        multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n      } else {\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n      }\n    } else {\n      throw new Error(\"Unknown depthTexture format\");\n    }\n  }\n  function setupDepthRenderbuffer(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\n    if (renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture) {\n      const depthTexture = renderTarget.depthTexture;\n      if (renderTargetProperties.__depthDisposeCallback) {\n        renderTargetProperties.__depthDisposeCallback();\n      }\n      if (depthTexture) {\n        const disposeEvent = () => {\n          delete renderTargetProperties.__boundDepthTexture;\n          delete renderTargetProperties.__depthDisposeCallback;\n          depthTexture.removeEventListener(\"dispose\", disposeEvent);\n        };\n        depthTexture.addEventListener(\"dispose\", disposeEvent);\n        renderTargetProperties.__depthDisposeCallback = disposeEvent;\n      }\n      renderTargetProperties.__boundDepthTexture = depthTexture;\n    }\n    if (renderTarget.depthTexture && !renderTargetProperties.__autoAllocateDepthBuffer) {\n      if (isCube) throw new Error(\"target.depthTexture not supported in Cube render targets\");\n      setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\n    } else {\n      if (isCube) {\n        renderTargetProperties.__webglDepthbuffer = [];\n        for (let i = 0; i < 6; i++) {\n          state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]);\n          if (renderTargetProperties.__webglDepthbuffer[i] === void 0) {\n            renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\n            setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\n          } else {\n            const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n            const renderbuffer = renderTargetProperties.__webglDepthbuffer[i];\n            _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n          }\n        }\n      } else {\n        state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n        if (renderTargetProperties.__webglDepthbuffer === void 0) {\n          renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n          setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\n        } else {\n          const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n          const renderbuffer = renderTargetProperties.__webglDepthbuffer;\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n          _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n        }\n      }\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n  }\n  function rebindTextures(renderTarget, colorTexture, depthTexture) {\n    const renderTargetProperties = properties.get(renderTarget);\n    if (colorTexture !== void 0) {\n      setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0);\n    }\n    if (depthTexture !== void 0) {\n      setupDepthRenderbuffer(renderTarget);\n    }\n  }\n  function setupRenderTarget(renderTarget) {\n    const texture = renderTarget.texture;\n    const renderTargetProperties = properties.get(renderTarget);\n    const textureProperties = properties.get(texture);\n    renderTarget.addEventListener(\"dispose\", onRenderTargetDispose);\n    const textures = renderTarget.textures;\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\n    const isMultipleRenderTargets = textures.length > 1;\n    if (!isMultipleRenderTargets) {\n      if (textureProperties.__webglTexture === void 0) {\n        textureProperties.__webglTexture = _gl.createTexture();\n      }\n      textureProperties.__version = texture.version;\n      info.memory.textures++;\n    }\n    if (isCube) {\n      renderTargetProperties.__webglFramebuffer = [];\n      for (let i = 0; i < 6; i++) {\n        if (texture.mipmaps && texture.mipmaps.length > 0) {\n          renderTargetProperties.__webglFramebuffer[i] = [];\n          for (let level = 0; level < texture.mipmaps.length; level++) {\n            renderTargetProperties.__webglFramebuffer[i][level] = _gl.createFramebuffer();\n          }\n        } else {\n          renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\n        }\n      }\n    } else {\n      if (texture.mipmaps && texture.mipmaps.length > 0) {\n        renderTargetProperties.__webglFramebuffer = [];\n        for (let level = 0; level < texture.mipmaps.length; level++) {\n          renderTargetProperties.__webglFramebuffer[level] = _gl.createFramebuffer();\n        }\n      } else {\n        renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n      }\n      if (isMultipleRenderTargets) {\n        for (let i = 0, il = textures.length; i < il; i++) {\n          const attachmentProperties = properties.get(textures[i]);\n          if (attachmentProperties.__webglTexture === void 0) {\n            attachmentProperties.__webglTexture = _gl.createTexture();\n            info.memory.textures++;\n          }\n        }\n      }\n      if (renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n        renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n        renderTargetProperties.__webglColorRenderbuffer = [];\n        state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n        for (let i = 0; i < textures.length; i++) {\n          const texture2 = textures[i];\n          renderTargetProperties.__webglColorRenderbuffer[i] = _gl.createRenderbuffer();\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n          const glFormat = utils.convert(texture2.format, texture2.colorSpace);\n          const glType = utils.convert(texture2.type);\n          const glInternalFormat = getInternalFormat(texture2.internalFormat, glFormat, glType, texture2.colorSpace, renderTarget.isXRRenderTarget === true);\n          const samples = getRenderTargetSamples(renderTarget);\n          _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n          _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n        }\n        _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n        if (renderTarget.depthBuffer) {\n          renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n          setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\n        }\n        state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n      }\n    }\n    if (isCube) {\n      state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\n      setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture);\n      for (let i = 0; i < 6; i++) {\n        if (texture.mipmaps && texture.mipmaps.length > 0) {\n          for (let level = 0; level < texture.mipmaps.length; level++) {\n            setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i][level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level);\n          }\n        } else {\n          setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0);\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(_gl.TEXTURE_CUBE_MAP);\n      }\n      state.unbindTexture();\n    } else if (isMultipleRenderTargets) {\n      for (let i = 0, il = textures.length; i < il; i++) {\n        const attachment = textures[i];\n        const attachmentProperties = properties.get(attachment);\n        state.bindTexture(_gl.TEXTURE_2D, attachmentProperties.__webglTexture);\n        setTextureParameters(_gl.TEXTURE_2D, attachment);\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0);\n        if (textureNeedsGenerateMipmaps(attachment)) {\n          generateMipmap(_gl.TEXTURE_2D);\n        }\n      }\n      state.unbindTexture();\n    } else {\n      let glTextureType = _gl.TEXTURE_2D;\n      if (renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget) {\n        glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n      }\n      state.bindTexture(glTextureType, textureProperties.__webglTexture);\n      setTextureParameters(glTextureType, texture);\n      if (texture.mipmaps && texture.mipmaps.length > 0) {\n        for (let level = 0; level < texture.mipmaps.length; level++) {\n          setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level);\n        }\n      } else {\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0);\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(glTextureType);\n      }\n      state.unbindTexture();\n    }\n    if (renderTarget.depthBuffer) {\n      setupDepthRenderbuffer(renderTarget);\n    }\n  }\n  function updateRenderTargetMipmap(renderTarget) {\n    const textures = renderTarget.textures;\n    for (let i = 0, il = textures.length; i < il; i++) {\n      const texture = textures[i];\n      if (textureNeedsGenerateMipmaps(texture)) {\n        const target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\n        const webglTexture = properties.get(texture).__webglTexture;\n        state.bindTexture(target, webglTexture);\n        generateMipmap(target);\n        state.unbindTexture();\n      }\n    }\n  }\n  const invalidationArrayRead = [];\n  const invalidationArrayDraw = [];\n  function updateMultisampleRenderTarget(renderTarget) {\n    if (renderTarget.samples > 0) {\n      if (useMultisampledRTT(renderTarget) === false) {\n        const textures = renderTarget.textures;\n        const width = renderTarget.width;\n        const height = renderTarget.height;\n        let mask = _gl.COLOR_BUFFER_BIT;\n        const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n        const renderTargetProperties = properties.get(renderTarget);\n        const isMultipleRenderTargets = textures.length > 1;\n        if (isMultipleRenderTargets) {\n          for (let i = 0; i < textures.length; i++) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null);\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0);\n          }\n        }\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n        for (let i = 0; i < textures.length; i++) {\n          if (renderTarget.resolveDepthBuffer) {\n            if (renderTarget.depthBuffer) mask |= _gl.DEPTH_BUFFER_BIT;\n            if (renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer) mask |= _gl.STENCIL_BUFFER_BIT;\n          }\n          if (isMultipleRenderTargets) {\n            _gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n            const webglTexture = properties.get(textures[i]).__webglTexture;\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0);\n          }\n          _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST);\n          if (supportsInvalidateFramebuffer === true) {\n            invalidationArrayRead.length = 0;\n            invalidationArrayDraw.length = 0;\n            invalidationArrayRead.push(_gl.COLOR_ATTACHMENT0 + i);\n            if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false) {\n              invalidationArrayRead.push(depthStyle);\n              invalidationArrayDraw.push(depthStyle);\n              _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, invalidationArrayDraw);\n            }\n            _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, invalidationArrayRead);\n          }\n        }\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null);\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null);\n        if (isMultipleRenderTargets) {\n          for (let i = 0; i < textures.length; i++) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n            const webglTexture = properties.get(textures[i]).__webglTexture;\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0);\n          }\n        }\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n      } else {\n        if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer) {\n          const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n          _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, [depthStyle]);\n        }\n      }\n    }\n  }\n  function getRenderTargetSamples(renderTarget) {\n    return Math.min(capabilities.maxSamples, renderTarget.samples);\n  }\n  function useMultisampledRTT(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    return renderTarget.samples > 0 && extensions.has(\"WEBGL_multisampled_render_to_texture\") === true && renderTargetProperties.__useRenderToTexture !== false;\n  }\n  function updateVideoTexture(texture) {\n    const frame = info.render.frame;\n    if (_videoTextures.get(texture) !== frame) {\n      _videoTextures.set(texture, frame);\n      texture.update();\n    }\n  }\n  function verifyColorSpace(texture, image) {\n    const colorSpace = texture.colorSpace;\n    const format = texture.format;\n    const type = texture.type;\n    if (texture.isCompressedTexture === true || texture.isVideoTexture === true) return image;\n    if (colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace) {\n      if (ColorManagement.getTransfer(colorSpace) === SRGBTransfer) {\n        if (format !== RGBAFormat || type !== UnsignedByteType) {\n          console.warn(\"THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.\");\n        }\n      } else {\n        console.error(\"THREE.WebGLTextures: Unsupported texture color space:\", colorSpace);\n      }\n    }\n    return image;\n  }\n  function getDimensions(image) {\n    if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement) {\n      _imageDimensions.width = image.naturalWidth || image.width;\n      _imageDimensions.height = image.naturalHeight || image.height;\n    } else if (typeof VideoFrame !== \"undefined\" && image instanceof VideoFrame) {\n      _imageDimensions.width = image.displayWidth;\n      _imageDimensions.height = image.displayHeight;\n    } else {\n      _imageDimensions.width = image.width;\n      _imageDimensions.height = image.height;\n    }\n    return _imageDimensions;\n  }\n  this.allocateTextureUnit = allocateTextureUnit;\n  this.resetTextureUnits = resetTextureUnits;\n  this.setTexture2D = setTexture2D;\n  this.setTexture2DArray = setTexture2DArray;\n  this.setTexture3D = setTexture3D;\n  this.setTextureCube = setTextureCube;\n  this.rebindTextures = rebindTextures;\n  this.setupRenderTarget = setupRenderTarget;\n  this.updateRenderTargetMipmap = updateRenderTargetMipmap;\n  this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n  this.setupDepthRenderbuffer = setupDepthRenderbuffer;\n  this.setupFrameBufferTexture = setupFrameBufferTexture;\n  this.useMultisampledRTT = useMultisampledRTT;\n}\nfunction WebGLUtils(gl, extensions) {\n  function convert(p, colorSpace = NoColorSpace) {\n    let extension;\n    const transfer = ColorManagement.getTransfer(colorSpace);\n    if (p === UnsignedByteType) return gl.UNSIGNED_BYTE;\n    if (p === UnsignedShort4444Type) return gl.UNSIGNED_SHORT_4_4_4_4;\n    if (p === UnsignedShort5551Type) return gl.UNSIGNED_SHORT_5_5_5_1;\n    if (p === UnsignedInt5999Type) return gl.UNSIGNED_INT_5_9_9_9_REV;\n    if (p === ByteType) return gl.BYTE;\n    if (p === ShortType) return gl.SHORT;\n    if (p === UnsignedShortType) return gl.UNSIGNED_SHORT;\n    if (p === IntType) return gl.INT;\n    if (p === UnsignedIntType) return gl.UNSIGNED_INT;\n    if (p === FloatType) return gl.FLOAT;\n    if (p === HalfFloatType) return gl.HALF_FLOAT;\n    if (p === AlphaFormat) return gl.ALPHA;\n    if (p === RGBFormat) return gl.RGB;\n    if (p === RGBAFormat) return gl.RGBA;\n    if (p === LuminanceFormat) return gl.LUMINANCE;\n    if (p === LuminanceAlphaFormat) return gl.LUMINANCE_ALPHA;\n    if (p === DepthFormat) return gl.DEPTH_COMPONENT;\n    if (p === DepthStencilFormat) return gl.DEPTH_STENCIL;\n    if (p === RedFormat) return gl.RED;\n    if (p === RedIntegerFormat) return gl.RED_INTEGER;\n    if (p === RGFormat) return gl.RG;\n    if (p === RGIntegerFormat) return gl.RG_INTEGER;\n    if (p === RGBAIntegerFormat) return gl.RGBA_INTEGER;\n    if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\n      if (transfer === SRGBTransfer) {\n        extension = extensions.get(\"WEBGL_compressed_texture_s3tc_srgb\");\n        if (extension !== null) {\n          if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n          if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n        } else {\n          return null;\n        }\n      } else {\n        extension = extensions.get(\"WEBGL_compressed_texture_s3tc\");\n        if (extension !== null) {\n          if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n          if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n        } else {\n          return null;\n        }\n      }\n    }\n    if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_pvrtc\");\n      if (extension !== null) {\n        if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n        if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n        if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n        if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_etc\");\n      if (extension !== null) {\n        if (p === RGB_ETC1_Format || p === RGB_ETC2_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n        if (p === RGBA_ETC2_EAC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_astc\");\n      if (extension !== null) {\n        if (p === RGBA_ASTC_4x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n        if (p === RGBA_ASTC_5x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n        if (p === RGBA_ASTC_5x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n        if (p === RGBA_ASTC_6x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n        if (p === RGBA_ASTC_6x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n        if (p === RGBA_ASTC_8x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n        if (p === RGBA_ASTC_8x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n        if (p === RGBA_ASTC_8x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n        if (p === RGBA_ASTC_10x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n        if (p === RGBA_ASTC_10x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n        if (p === RGBA_ASTC_10x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n        if (p === RGBA_ASTC_10x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n        if (p === RGBA_ASTC_12x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n        if (p === RGBA_ASTC_12x12_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format) {\n      extension = extensions.get(\"EXT_texture_compression_bptc\");\n      if (extension !== null) {\n        if (p === RGBA_BPTC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n        if (p === RGB_BPTC_SIGNED_Format) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n        if (p === RGB_BPTC_UNSIGNED_Format) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n      } else {\n        return null;\n      }\n    }\n    if (p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format) {\n      extension = extensions.get(\"EXT_texture_compression_rgtc\");\n      if (extension !== null) {\n        if (p === RGBA_BPTC_Format) return extension.COMPRESSED_RED_RGTC1_EXT;\n        if (p === SIGNED_RED_RGTC1_Format) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n        if (p === RED_GREEN_RGTC2_Format) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n        if (p === SIGNED_RED_GREEN_RGTC2_Format) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n      } else {\n        return null;\n      }\n    }\n    if (p === UnsignedInt248Type) return gl.UNSIGNED_INT_24_8;\n    return gl[p] !== void 0 ? gl[p] : null;\n  }\n  return { convert };\n}\nvar ArrayCamera = class extends PerspectiveCamera {\n  constructor(array = []) {\n    super();\n    this.isArrayCamera = true;\n    this.cameras = array;\n  }\n};\nvar Group = class extends Object3D {\n  constructor() {\n    super();\n    this.isGroup = true;\n    this.type = \"Group\";\n  }\n};\nvar _moveEvent = { type: \"move\" };\nvar WebXRController = class {\n  constructor() {\n    this._targetRay = null;\n    this._grip = null;\n    this._hand = null;\n  }\n  getHandSpace() {\n    if (this._hand === null) {\n      this._hand = new Group();\n      this._hand.matrixAutoUpdate = false;\n      this._hand.visible = false;\n      this._hand.joints = {};\n      this._hand.inputState = { pinching: false };\n    }\n    return this._hand;\n  }\n  getTargetRaySpace() {\n    if (this._targetRay === null) {\n      this._targetRay = new Group();\n      this._targetRay.matrixAutoUpdate = false;\n      this._targetRay.visible = false;\n      this._targetRay.hasLinearVelocity = false;\n      this._targetRay.linearVelocity = new Vector3();\n      this._targetRay.hasAngularVelocity = false;\n      this._targetRay.angularVelocity = new Vector3();\n    }\n    return this._targetRay;\n  }\n  getGripSpace() {\n    if (this._grip === null) {\n      this._grip = new Group();\n      this._grip.matrixAutoUpdate = false;\n      this._grip.visible = false;\n      this._grip.hasLinearVelocity = false;\n      this._grip.linearVelocity = new Vector3();\n      this._grip.hasAngularVelocity = false;\n      this._grip.angularVelocity = new Vector3();\n    }\n    return this._grip;\n  }\n  dispatchEvent(event) {\n    if (this._targetRay !== null) {\n      this._targetRay.dispatchEvent(event);\n    }\n    if (this._grip !== null) {\n      this._grip.dispatchEvent(event);\n    }\n    if (this._hand !== null) {\n      this._hand.dispatchEvent(event);\n    }\n    return this;\n  }\n  connect(inputSource) {\n    if (inputSource && inputSource.hand) {\n      const hand = this._hand;\n      if (hand) {\n        for (const inputjoint of inputSource.hand.values()) {\n          this._getHandJoint(hand, inputjoint);\n        }\n      }\n    }\n    this.dispatchEvent({ type: \"connected\", data: inputSource });\n    return this;\n  }\n  disconnect(inputSource) {\n    this.dispatchEvent({ type: \"disconnected\", data: inputSource });\n    if (this._targetRay !== null) {\n      this._targetRay.visible = false;\n    }\n    if (this._grip !== null) {\n      this._grip.visible = false;\n    }\n    if (this._hand !== null) {\n      this._hand.visible = false;\n    }\n    return this;\n  }\n  update(inputSource, frame, referenceSpace) {\n    let inputPose = null;\n    let gripPose = null;\n    let handPose = null;\n    const targetRay = this._targetRay;\n    const grip = this._grip;\n    const hand = this._hand;\n    if (inputSource && frame.session.visibilityState !== \"visible-blurred\") {\n      if (hand && inputSource.hand) {\n        handPose = true;\n        for (const inputjoint of inputSource.hand.values()) {\n          const jointPose = frame.getJointPose(inputjoint, referenceSpace);\n          const joint = this._getHandJoint(hand, inputjoint);\n          if (jointPose !== null) {\n            joint.matrix.fromArray(jointPose.transform.matrix);\n            joint.matrix.decompose(joint.position, joint.rotation, joint.scale);\n            joint.matrixWorldNeedsUpdate = true;\n            joint.jointRadius = jointPose.radius;\n          }\n          joint.visible = jointPose !== null;\n        }\n        const indexTip = hand.joints[\"index-finger-tip\"];\n        const thumbTip = hand.joints[\"thumb-tip\"];\n        const distance = indexTip.position.distanceTo(thumbTip.position);\n        const distanceToPinch = 0.02;\n        const threshold = 5e-3;\n        if (hand.inputState.pinching && distance > distanceToPinch + threshold) {\n          hand.inputState.pinching = false;\n          this.dispatchEvent({\n            type: \"pinchend\",\n            handedness: inputSource.handedness,\n            target: this\n          });\n        } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\n          hand.inputState.pinching = true;\n          this.dispatchEvent({\n            type: \"pinchstart\",\n            handedness: inputSource.handedness,\n            target: this\n          });\n        }\n      } else {\n        if (grip !== null && inputSource.gripSpace) {\n          gripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\n          if (gripPose !== null) {\n            grip.matrix.fromArray(gripPose.transform.matrix);\n            grip.matrix.decompose(grip.position, grip.rotation, grip.scale);\n            grip.matrixWorldNeedsUpdate = true;\n            if (gripPose.linearVelocity) {\n              grip.hasLinearVelocity = true;\n              grip.linearVelocity.copy(gripPose.linearVelocity);\n            } else {\n              grip.hasLinearVelocity = false;\n            }\n            if (gripPose.angularVelocity) {\n              grip.hasAngularVelocity = true;\n              grip.angularVelocity.copy(gripPose.angularVelocity);\n            } else {\n              grip.hasAngularVelocity = false;\n            }\n          }\n        }\n      }\n      if (targetRay !== null) {\n        inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\n        if (inputPose === null && gripPose !== null) {\n          inputPose = gripPose;\n        }\n        if (inputPose !== null) {\n          targetRay.matrix.fromArray(inputPose.transform.matrix);\n          targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\n          targetRay.matrixWorldNeedsUpdate = true;\n          if (inputPose.linearVelocity) {\n            targetRay.hasLinearVelocity = true;\n            targetRay.linearVelocity.copy(inputPose.linearVelocity);\n          } else {\n            targetRay.hasLinearVelocity = false;\n          }\n          if (inputPose.angularVelocity) {\n            targetRay.hasAngularVelocity = true;\n            targetRay.angularVelocity.copy(inputPose.angularVelocity);\n          } else {\n            targetRay.hasAngularVelocity = false;\n          }\n          this.dispatchEvent(_moveEvent);\n        }\n      }\n    }\n    if (targetRay !== null) {\n      targetRay.visible = inputPose !== null;\n    }\n    if (grip !== null) {\n      grip.visible = gripPose !== null;\n    }\n    if (hand !== null) {\n      hand.visible = handPose !== null;\n    }\n    return this;\n  }\n  // private method\n  _getHandJoint(hand, inputjoint) {\n    if (hand.joints[inputjoint.jointName] === void 0) {\n      const joint = new Group();\n      joint.matrixAutoUpdate = false;\n      joint.visible = false;\n      hand.joints[inputjoint.jointName] = joint;\n      hand.add(joint);\n    }\n    return hand.joints[inputjoint.jointName];\n  }\n};\nvar _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\nvar _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\nvar WebXRDepthSensing = class {\n  constructor() {\n    this.texture = null;\n    this.mesh = null;\n    this.depthNear = 0;\n    this.depthFar = 0;\n  }\n  init(renderer, depthData, renderState) {\n    if (this.texture === null) {\n      const texture = new Texture();\n      const texProps = renderer.properties.get(texture);\n      texProps.__webglTexture = depthData.texture;\n      if (depthData.depthNear != renderState.depthNear || depthData.depthFar != renderState.depthFar) {\n        this.depthNear = depthData.depthNear;\n        this.depthFar = depthData.depthFar;\n      }\n      this.texture = texture;\n    }\n  }\n  getMesh(cameraXR) {\n    if (this.texture !== null) {\n      if (this.mesh === null) {\n        const viewport = cameraXR.cameras[0].viewport;\n        const material = new ShaderMaterial({\n          vertexShader: _occlusion_vertex,\n          fragmentShader: _occlusion_fragment,\n          uniforms: {\n            depthColor: { value: this.texture },\n            depthWidth: { value: viewport.z },\n            depthHeight: { value: viewport.w }\n          }\n        });\n        this.mesh = new Mesh(new PlaneGeometry(20, 20), material);\n      }\n    }\n    return this.mesh;\n  }\n  reset() {\n    this.texture = null;\n    this.mesh = null;\n  }\n  getDepthTexture() {\n    return this.texture;\n  }\n};\nvar WebXRManager = class extends EventDispatcher {\n  constructor(renderer, gl) {\n    super();\n    const scope = this;\n    let session = null;\n    let framebufferScaleFactor = 1;\n    let referenceSpace = null;\n    let referenceSpaceType = \"local-floor\";\n    let foveation = 1;\n    let customReferenceSpace = null;\n    let pose = null;\n    let glBinding = null;\n    let glProjLayer = null;\n    let glBaseLayer = null;\n    let xrFrame = null;\n    const depthSensing = new WebXRDepthSensing();\n    const attributes = gl.getContextAttributes();\n    let initialRenderTarget = null;\n    let newRenderTarget = null;\n    const controllers = [];\n    const controllerInputSources = [];\n    const currentSize = new Vector2();\n    let currentPixelRatio = null;\n    const cameraL = new PerspectiveCamera();\n    cameraL.layers.enable(1);\n    cameraL.viewport = new Vector4();\n    const cameraR = new PerspectiveCamera();\n    cameraR.layers.enable(2);\n    cameraR.viewport = new Vector4();\n    const cameras = [cameraL, cameraR];\n    const cameraXR = new ArrayCamera();\n    cameraXR.layers.enable(1);\n    cameraXR.layers.enable(2);\n    let _currentDepthNear = null;\n    let _currentDepthFar = null;\n    this.cameraAutoUpdate = true;\n    this.enabled = false;\n    this.isPresenting = false;\n    this.getController = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getTargetRaySpace();\n    };\n    this.getControllerGrip = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getGripSpace();\n    };\n    this.getHand = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getHandSpace();\n    };\n    function onSessionEvent(event) {\n      const controllerIndex = controllerInputSources.indexOf(event.inputSource);\n      if (controllerIndex === -1) {\n        return;\n      }\n      const controller = controllers[controllerIndex];\n      if (controller !== void 0) {\n        controller.update(event.inputSource, event.frame, customReferenceSpace || referenceSpace);\n        controller.dispatchEvent({ type: event.type, data: event.inputSource });\n      }\n    }\n    function onSessionEnd() {\n      session.removeEventListener(\"select\", onSessionEvent);\n      session.removeEventListener(\"selectstart\", onSessionEvent);\n      session.removeEventListener(\"selectend\", onSessionEvent);\n      session.removeEventListener(\"squeeze\", onSessionEvent);\n      session.removeEventListener(\"squeezestart\", onSessionEvent);\n      session.removeEventListener(\"squeezeend\", onSessionEvent);\n      session.removeEventListener(\"end\", onSessionEnd);\n      session.removeEventListener(\"inputsourceschange\", onInputSourcesChange);\n      for (let i = 0; i < controllers.length; i++) {\n        const inputSource = controllerInputSources[i];\n        if (inputSource === null) continue;\n        controllerInputSources[i] = null;\n        controllers[i].disconnect(inputSource);\n      }\n      _currentDepthNear = null;\n      _currentDepthFar = null;\n      depthSensing.reset();\n      renderer.setRenderTarget(initialRenderTarget);\n      glBaseLayer = null;\n      glProjLayer = null;\n      glBinding = null;\n      session = null;\n      newRenderTarget = null;\n      animation.stop();\n      scope.isPresenting = false;\n      renderer.setPixelRatio(currentPixelRatio);\n      renderer.setSize(currentSize.width, currentSize.height, false);\n      scope.dispatchEvent({ type: \"sessionend\" });\n    }\n    this.setFramebufferScaleFactor = function(value) {\n      framebufferScaleFactor = value;\n      if (scope.isPresenting === true) {\n        console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\");\n      }\n    };\n    this.setReferenceSpaceType = function(value) {\n      referenceSpaceType = value;\n      if (scope.isPresenting === true) {\n        console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\");\n      }\n    };\n    this.getReferenceSpace = function() {\n      return customReferenceSpace || referenceSpace;\n    };\n    this.setReferenceSpace = function(space) {\n      customReferenceSpace = space;\n    };\n    this.getBaseLayer = function() {\n      return glProjLayer !== null ? glProjLayer : glBaseLayer;\n    };\n    this.getBinding = function() {\n      return glBinding;\n    };\n    this.getFrame = function() {\n      return xrFrame;\n    };\n    this.getSession = function() {\n      return session;\n    };\n    this.setSession = function(value) {\n      return __async(this, null, function* () {\n        session = value;\n        if (session !== null) {\n          initialRenderTarget = renderer.getRenderTarget();\n          session.addEventListener(\"select\", onSessionEvent);\n          session.addEventListener(\"selectstart\", onSessionEvent);\n          session.addEventListener(\"selectend\", onSessionEvent);\n          session.addEventListener(\"squeeze\", onSessionEvent);\n          session.addEventListener(\"squeezestart\", onSessionEvent);\n          session.addEventListener(\"squeezeend\", onSessionEvent);\n          session.addEventListener(\"end\", onSessionEnd);\n          session.addEventListener(\"inputsourceschange\", onInputSourcesChange);\n          if (attributes.xrCompatible !== true) {\n            yield gl.makeXRCompatible();\n          }\n          currentPixelRatio = renderer.getPixelRatio();\n          renderer.getSize(currentSize);\n          if (session.renderState.layers === void 0) {\n            const layerInit = {\n              antialias: attributes.antialias,\n              alpha: true,\n              depth: attributes.depth,\n              stencil: attributes.stencil,\n              framebufferScaleFactor\n            };\n            glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\n            session.updateRenderState({ baseLayer: glBaseLayer });\n            renderer.setPixelRatio(1);\n            renderer.setSize(glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false);\n            newRenderTarget = new WebGLRenderTarget(\n              glBaseLayer.framebufferWidth,\n              glBaseLayer.framebufferHeight,\n              {\n                format: RGBAFormat,\n                type: UnsignedByteType,\n                colorSpace: renderer.outputColorSpace,\n                stencilBuffer: attributes.stencil\n              }\n            );\n          } else {\n            let depthFormat = null;\n            let depthType = null;\n            let glDepthFormat = null;\n            if (attributes.depth) {\n              glDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n              depthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n              depthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n            }\n            const projectionlayerInit = {\n              colorFormat: gl.RGBA8,\n              depthFormat: glDepthFormat,\n              scaleFactor: framebufferScaleFactor\n            };\n            glBinding = new XRWebGLBinding(session, gl);\n            glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);\n            session.updateRenderState({ layers: [glProjLayer] });\n            renderer.setPixelRatio(1);\n            renderer.setSize(glProjLayer.textureWidth, glProjLayer.textureHeight, false);\n            newRenderTarget = new WebGLRenderTarget(\n              glProjLayer.textureWidth,\n              glProjLayer.textureHeight,\n              {\n                format: RGBAFormat,\n                type: UnsignedByteType,\n                depthTexture: new DepthTexture(glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, void 0, void 0, void 0, void 0, void 0, void 0, depthFormat),\n                stencilBuffer: attributes.stencil,\n                colorSpace: renderer.outputColorSpace,\n                samples: attributes.antialias ? 4 : 0,\n                resolveDepthBuffer: glProjLayer.ignoreDepthValues === false\n              }\n            );\n          }\n          newRenderTarget.isXRRenderTarget = true;\n          this.setFoveation(foveation);\n          customReferenceSpace = null;\n          referenceSpace = yield session.requestReferenceSpace(referenceSpaceType);\n          animation.setContext(session);\n          animation.start();\n          scope.isPresenting = true;\n          scope.dispatchEvent({ type: \"sessionstart\" });\n        }\n      });\n    };\n    this.getEnvironmentBlendMode = function() {\n      if (session !== null) {\n        return session.environmentBlendMode;\n      }\n    };\n    this.getDepthTexture = function() {\n      return depthSensing.getDepthTexture();\n    };\n    function onInputSourcesChange(event) {\n      for (let i = 0; i < event.removed.length; i++) {\n        const inputSource = event.removed[i];\n        const index = controllerInputSources.indexOf(inputSource);\n        if (index >= 0) {\n          controllerInputSources[index] = null;\n          controllers[index].disconnect(inputSource);\n        }\n      }\n      for (let i = 0; i < event.added.length; i++) {\n        const inputSource = event.added[i];\n        let controllerIndex = controllerInputSources.indexOf(inputSource);\n        if (controllerIndex === -1) {\n          for (let i2 = 0; i2 < controllers.length; i2++) {\n            if (i2 >= controllerInputSources.length) {\n              controllerInputSources.push(inputSource);\n              controllerIndex = i2;\n              break;\n            } else if (controllerInputSources[i2] === null) {\n              controllerInputSources[i2] = inputSource;\n              controllerIndex = i2;\n              break;\n            }\n          }\n          if (controllerIndex === -1) break;\n        }\n        const controller = controllers[controllerIndex];\n        if (controller) {\n          controller.connect(inputSource);\n        }\n      }\n    }\n    const cameraLPos = new Vector3();\n    const cameraRPos = new Vector3();\n    function setProjectionFromUnion(camera, cameraL2, cameraR2) {\n      cameraLPos.setFromMatrixPosition(cameraL2.matrixWorld);\n      cameraRPos.setFromMatrixPosition(cameraR2.matrixWorld);\n      const ipd = cameraLPos.distanceTo(cameraRPos);\n      const projL = cameraL2.projectionMatrix.elements;\n      const projR = cameraR2.projectionMatrix.elements;\n      const near = projL[14] / (projL[10] - 1);\n      const far = projL[14] / (projL[10] + 1);\n      const topFov = (projL[9] + 1) / projL[5];\n      const bottomFov = (projL[9] - 1) / projL[5];\n      const leftFov = (projL[8] - 1) / projL[0];\n      const rightFov = (projR[8] + 1) / projR[0];\n      const left = near * leftFov;\n      const right = near * rightFov;\n      const zOffset = ipd / (-leftFov + rightFov);\n      const xOffset = zOffset * -leftFov;\n      cameraL2.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\n      camera.translateX(xOffset);\n      camera.translateZ(zOffset);\n      camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n      if (projL[10] === -1) {\n        camera.projectionMatrix.copy(cameraL2.projectionMatrix);\n        camera.projectionMatrixInverse.copy(cameraL2.projectionMatrixInverse);\n      } else {\n        const near2 = near + zOffset;\n        const far2 = far + zOffset;\n        const left2 = left - xOffset;\n        const right2 = right + (ipd - xOffset);\n        const top2 = topFov * far / far2 * near2;\n        const bottom2 = bottomFov * far / far2 * near2;\n        camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\n        camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n      }\n    }\n    function updateCamera(camera, parent) {\n      if (parent === null) {\n        camera.matrixWorld.copy(camera.matrix);\n      } else {\n        camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\n      }\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n    }\n    this.updateCamera = function(camera) {\n      if (session === null) return;\n      let depthNear = camera.near;\n      let depthFar = camera.far;\n      if (depthSensing.texture !== null) {\n        if (depthSensing.depthNear > 0) depthNear = depthSensing.depthNear;\n        if (depthSensing.depthFar > 0) depthFar = depthSensing.depthFar;\n      }\n      cameraXR.near = cameraR.near = cameraL.near = depthNear;\n      cameraXR.far = cameraR.far = cameraL.far = depthFar;\n      if (_currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far) {\n        session.updateRenderState({\n          depthNear: cameraXR.near,\n          depthFar: cameraXR.far\n        });\n        _currentDepthNear = cameraXR.near;\n        _currentDepthFar = cameraXR.far;\n      }\n      const parent = camera.parent;\n      const cameras2 = cameraXR.cameras;\n      updateCamera(cameraXR, parent);\n      for (let i = 0; i < cameras2.length; i++) {\n        updateCamera(cameras2[i], parent);\n      }\n      if (cameras2.length === 2) {\n        setProjectionFromUnion(cameraXR, cameraL, cameraR);\n      } else {\n        cameraXR.projectionMatrix.copy(cameraL.projectionMatrix);\n      }\n      updateUserCamera(camera, cameraXR, parent);\n    };\n    function updateUserCamera(camera, cameraXR2, parent) {\n      if (parent === null) {\n        camera.matrix.copy(cameraXR2.matrixWorld);\n      } else {\n        camera.matrix.copy(parent.matrixWorld);\n        camera.matrix.invert();\n        camera.matrix.multiply(cameraXR2.matrixWorld);\n      }\n      camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n      camera.updateMatrixWorld(true);\n      camera.projectionMatrix.copy(cameraXR2.projectionMatrix);\n      camera.projectionMatrixInverse.copy(cameraXR2.projectionMatrixInverse);\n      if (camera.isPerspectiveCamera) {\n        camera.fov = RAD2DEG * 2 * Math.atan(1 / camera.projectionMatrix.elements[5]);\n        camera.zoom = 1;\n      }\n    }\n    this.getCamera = function() {\n      return cameraXR;\n    };\n    this.getFoveation = function() {\n      if (glProjLayer === null && glBaseLayer === null) {\n        return void 0;\n      }\n      return foveation;\n    };\n    this.setFoveation = function(value) {\n      foveation = value;\n      if (glProjLayer !== null) {\n        glProjLayer.fixedFoveation = value;\n      }\n      if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== void 0) {\n        glBaseLayer.fixedFoveation = value;\n      }\n    };\n    this.hasDepthSensing = function() {\n      return depthSensing.texture !== null;\n    };\n    this.getDepthSensingMesh = function() {\n      return depthSensing.getMesh(cameraXR);\n    };\n    let onAnimationFrameCallback = null;\n    function onAnimationFrame(time, frame) {\n      pose = frame.getViewerPose(customReferenceSpace || referenceSpace);\n      xrFrame = frame;\n      if (pose !== null) {\n        const views = pose.views;\n        if (glBaseLayer !== null) {\n          renderer.setRenderTargetFramebuffer(newRenderTarget, glBaseLayer.framebuffer);\n          renderer.setRenderTarget(newRenderTarget);\n        }\n        let cameraXRNeedsUpdate = false;\n        if (views.length !== cameraXR.cameras.length) {\n          cameraXR.cameras.length = 0;\n          cameraXRNeedsUpdate = true;\n        }\n        for (let i = 0; i < views.length; i++) {\n          const view = views[i];\n          let viewport = null;\n          if (glBaseLayer !== null) {\n            viewport = glBaseLayer.getViewport(view);\n          } else {\n            const glSubImage = glBinding.getViewSubImage(glProjLayer, view);\n            viewport = glSubImage.viewport;\n            if (i === 0) {\n              renderer.setRenderTargetTextures(\n                newRenderTarget,\n                glSubImage.colorTexture,\n                glProjLayer.ignoreDepthValues ? void 0 : glSubImage.depthStencilTexture\n              );\n              renderer.setRenderTarget(newRenderTarget);\n            }\n          }\n          let camera = cameras[i];\n          if (camera === void 0) {\n            camera = new PerspectiveCamera();\n            camera.layers.enable(i);\n            camera.viewport = new Vector4();\n            cameras[i] = camera;\n          }\n          camera.matrix.fromArray(view.transform.matrix);\n          camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n          camera.projectionMatrix.fromArray(view.projectionMatrix);\n          camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n          camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\n          if (i === 0) {\n            cameraXR.matrix.copy(camera.matrix);\n            cameraXR.matrix.decompose(cameraXR.position, cameraXR.quaternion, cameraXR.scale);\n          }\n          if (cameraXRNeedsUpdate === true) {\n            cameraXR.cameras.push(camera);\n          }\n        }\n        const enabledFeatures = session.enabledFeatures;\n        if (enabledFeatures && enabledFeatures.includes(\"depth-sensing\")) {\n          const depthData = glBinding.getDepthInformation(views[0]);\n          if (depthData && depthData.isValid && depthData.texture) {\n            depthSensing.init(renderer, depthData, session.renderState);\n          }\n        }\n      }\n      for (let i = 0; i < controllers.length; i++) {\n        const inputSource = controllerInputSources[i];\n        const controller = controllers[i];\n        if (inputSource !== null && controller !== void 0) {\n          controller.update(inputSource, frame, customReferenceSpace || referenceSpace);\n        }\n      }\n      if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame);\n      if (frame.detectedPlanes) {\n        scope.dispatchEvent({ type: \"planesdetected\", data: frame });\n      }\n      xrFrame = null;\n    }\n    const animation = new WebGLAnimation();\n    animation.setAnimationLoop(onAnimationFrame);\n    this.setAnimationLoop = function(callback) {\n      onAnimationFrameCallback = callback;\n    };\n    this.dispose = function() {\n    };\n  }\n};\nvar _e1 = /* @__PURE__ */ new Euler();\nvar _m1 = /* @__PURE__ */ new Matrix4();\nfunction WebGLMaterials(renderer, properties) {\n  function refreshTransformUniform(map, uniform) {\n    if (map.matrixAutoUpdate === true) {\n      map.updateMatrix();\n    }\n    uniform.value.copy(map.matrix);\n  }\n  function refreshFogUniforms(uniforms, fog) {\n    fog.color.getRGB(uniforms.fogColor.value, getUnlitUniformColorSpace(renderer));\n    if (fog.isFog) {\n      uniforms.fogNear.value = fog.near;\n      uniforms.fogFar.value = fog.far;\n    } else if (fog.isFogExp2) {\n      uniforms.fogDensity.value = fog.density;\n    }\n  }\n  function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget) {\n    if (material.isMeshBasicMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshLambertMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshToonMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsToon(uniforms, material);\n    } else if (material.isMeshPhongMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsPhong(uniforms, material);\n    } else if (material.isMeshStandardMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsStandard(uniforms, material);\n      if (material.isMeshPhysicalMaterial) {\n        refreshUniformsPhysical(uniforms, material, transmissionRenderTarget);\n      }\n    } else if (material.isMeshMatcapMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsMatcap(uniforms, material);\n    } else if (material.isMeshDepthMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshDistanceMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsDistance(uniforms, material);\n    } else if (material.isMeshNormalMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isLineBasicMaterial) {\n      refreshUniformsLine(uniforms, material);\n      if (material.isLineDashedMaterial) {\n        refreshUniformsDash(uniforms, material);\n      }\n    } else if (material.isPointsMaterial) {\n      refreshUniformsPoints(uniforms, material, pixelRatio, height);\n    } else if (material.isSpriteMaterial) {\n      refreshUniformsSprites(uniforms, material);\n    } else if (material.isShadowMaterial) {\n      uniforms.color.value.copy(material.color);\n      uniforms.opacity.value = material.opacity;\n    } else if (material.isShaderMaterial) {\n      material.uniformsNeedUpdate = false;\n    }\n  }\n  function refreshUniformsCommon(uniforms, material) {\n    uniforms.opacity.value = material.opacity;\n    if (material.color) {\n      uniforms.diffuse.value.copy(material.color);\n    }\n    if (material.emissive) {\n      uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\n    }\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.bumpMap) {\n      uniforms.bumpMap.value = material.bumpMap;\n      refreshTransformUniform(material.bumpMap, uniforms.bumpMapTransform);\n      uniforms.bumpScale.value = material.bumpScale;\n      if (material.side === BackSide) {\n        uniforms.bumpScale.value *= -1;\n      }\n    }\n    if (material.normalMap) {\n      uniforms.normalMap.value = material.normalMap;\n      refreshTransformUniform(material.normalMap, uniforms.normalMapTransform);\n      uniforms.normalScale.value.copy(material.normalScale);\n      if (material.side === BackSide) {\n        uniforms.normalScale.value.negate();\n      }\n    }\n    if (material.displacementMap) {\n      uniforms.displacementMap.value = material.displacementMap;\n      refreshTransformUniform(material.displacementMap, uniforms.displacementMapTransform);\n      uniforms.displacementScale.value = material.displacementScale;\n      uniforms.displacementBias.value = material.displacementBias;\n    }\n    if (material.emissiveMap) {\n      uniforms.emissiveMap.value = material.emissiveMap;\n      refreshTransformUniform(material.emissiveMap, uniforms.emissiveMapTransform);\n    }\n    if (material.specularMap) {\n      uniforms.specularMap.value = material.specularMap;\n      refreshTransformUniform(material.specularMap, uniforms.specularMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n    const materialProperties = properties.get(material);\n    const envMap = materialProperties.envMap;\n    const envMapRotation = materialProperties.envMapRotation;\n    if (envMap) {\n      uniforms.envMap.value = envMap;\n      _e1.copy(envMapRotation);\n      _e1.x *= -1;\n      _e1.y *= -1;\n      _e1.z *= -1;\n      if (envMap.isCubeTexture && envMap.isRenderTargetTexture === false) {\n        _e1.y *= -1;\n        _e1.z *= -1;\n      }\n      uniforms.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1));\n      uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n      uniforms.reflectivity.value = material.reflectivity;\n      uniforms.ior.value = material.ior;\n      uniforms.refractionRatio.value = material.refractionRatio;\n    }\n    if (material.lightMap) {\n      uniforms.lightMap.value = material.lightMap;\n      uniforms.lightMapIntensity.value = material.lightMapIntensity;\n      refreshTransformUniform(material.lightMap, uniforms.lightMapTransform);\n    }\n    if (material.aoMap) {\n      uniforms.aoMap.value = material.aoMap;\n      uniforms.aoMapIntensity.value = material.aoMapIntensity;\n      refreshTransformUniform(material.aoMap, uniforms.aoMapTransform);\n    }\n  }\n  function refreshUniformsLine(uniforms, material) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n  }\n  function refreshUniformsDash(uniforms, material) {\n    uniforms.dashSize.value = material.dashSize;\n    uniforms.totalSize.value = material.dashSize + material.gapSize;\n    uniforms.scale.value = material.scale;\n  }\n  function refreshUniformsPoints(uniforms, material, pixelRatio, height) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    uniforms.size.value = material.size * pixelRatio;\n    uniforms.scale.value = height * 0.5;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.uvTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n  }\n  function refreshUniformsSprites(uniforms, material) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    uniforms.rotation.value = material.rotation;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n  }\n  function refreshUniformsPhong(uniforms, material) {\n    uniforms.specular.value.copy(material.specular);\n    uniforms.shininess.value = Math.max(material.shininess, 1e-4);\n  }\n  function refreshUniformsToon(uniforms, material) {\n    if (material.gradientMap) {\n      uniforms.gradientMap.value = material.gradientMap;\n    }\n  }\n  function refreshUniformsStandard(uniforms, material) {\n    uniforms.metalness.value = material.metalness;\n    if (material.metalnessMap) {\n      uniforms.metalnessMap.value = material.metalnessMap;\n      refreshTransformUniform(material.metalnessMap, uniforms.metalnessMapTransform);\n    }\n    uniforms.roughness.value = material.roughness;\n    if (material.roughnessMap) {\n      uniforms.roughnessMap.value = material.roughnessMap;\n      refreshTransformUniform(material.roughnessMap, uniforms.roughnessMapTransform);\n    }\n    if (material.envMap) {\n      uniforms.envMapIntensity.value = material.envMapIntensity;\n    }\n  }\n  function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget) {\n    uniforms.ior.value = material.ior;\n    if (material.sheen > 0) {\n      uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);\n      uniforms.sheenRoughness.value = material.sheenRoughness;\n      if (material.sheenColorMap) {\n        uniforms.sheenColorMap.value = material.sheenColorMap;\n        refreshTransformUniform(material.sheenColorMap, uniforms.sheenColorMapTransform);\n      }\n      if (material.sheenRoughnessMap) {\n        uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n        refreshTransformUniform(material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform);\n      }\n    }\n    if (material.clearcoat > 0) {\n      uniforms.clearcoat.value = material.clearcoat;\n      uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n      if (material.clearcoatMap) {\n        uniforms.clearcoatMap.value = material.clearcoatMap;\n        refreshTransformUniform(material.clearcoatMap, uniforms.clearcoatMapTransform);\n      }\n      if (material.clearcoatRoughnessMap) {\n        uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n        refreshTransformUniform(material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform);\n      }\n      if (material.clearcoatNormalMap) {\n        uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n        refreshTransformUniform(material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform);\n        uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\n        if (material.side === BackSide) {\n          uniforms.clearcoatNormalScale.value.negate();\n        }\n      }\n    }\n    if (material.dispersion > 0) {\n      uniforms.dispersion.value = material.dispersion;\n    }\n    if (material.iridescence > 0) {\n      uniforms.iridescence.value = material.iridescence;\n      uniforms.iridescenceIOR.value = material.iridescenceIOR;\n      uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[0];\n      uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[1];\n      if (material.iridescenceMap) {\n        uniforms.iridescenceMap.value = material.iridescenceMap;\n        refreshTransformUniform(material.iridescenceMap, uniforms.iridescenceMapTransform);\n      }\n      if (material.iridescenceThicknessMap) {\n        uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n        refreshTransformUniform(material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform);\n      }\n    }\n    if (material.transmission > 0) {\n      uniforms.transmission.value = material.transmission;\n      uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n      uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height);\n      if (material.transmissionMap) {\n        uniforms.transmissionMap.value = material.transmissionMap;\n        refreshTransformUniform(material.transmissionMap, uniforms.transmissionMapTransform);\n      }\n      uniforms.thickness.value = material.thickness;\n      if (material.thicknessMap) {\n        uniforms.thicknessMap.value = material.thicknessMap;\n        refreshTransformUniform(material.thicknessMap, uniforms.thicknessMapTransform);\n      }\n      uniforms.attenuationDistance.value = material.attenuationDistance;\n      uniforms.attenuationColor.value.copy(material.attenuationColor);\n    }\n    if (material.anisotropy > 0) {\n      uniforms.anisotropyVector.value.set(material.anisotropy * Math.cos(material.anisotropyRotation), material.anisotropy * Math.sin(material.anisotropyRotation));\n      if (material.anisotropyMap) {\n        uniforms.anisotropyMap.value = material.anisotropyMap;\n        refreshTransformUniform(material.anisotropyMap, uniforms.anisotropyMapTransform);\n      }\n    }\n    uniforms.specularIntensity.value = material.specularIntensity;\n    uniforms.specularColor.value.copy(material.specularColor);\n    if (material.specularColorMap) {\n      uniforms.specularColorMap.value = material.specularColorMap;\n      refreshTransformUniform(material.specularColorMap, uniforms.specularColorMapTransform);\n    }\n    if (material.specularIntensityMap) {\n      uniforms.specularIntensityMap.value = material.specularIntensityMap;\n      refreshTransformUniform(material.specularIntensityMap, uniforms.specularIntensityMapTransform);\n    }\n  }\n  function refreshUniformsMatcap(uniforms, material) {\n    if (material.matcap) {\n      uniforms.matcap.value = material.matcap;\n    }\n  }\n  function refreshUniformsDistance(uniforms, material) {\n    const light = properties.get(material).light;\n    uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld);\n    uniforms.nearDistance.value = light.shadow.camera.near;\n    uniforms.farDistance.value = light.shadow.camera.far;\n  }\n  return {\n    refreshFogUniforms,\n    refreshMaterialUniforms\n  };\n}\nfunction WebGLUniformsGroups(gl, info, capabilities, state) {\n  let buffers = {};\n  let updateList = {};\n  let allocatedBindingPoints = [];\n  const maxBindingPoints = gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS);\n  function bind(uniformsGroup, program) {\n    const webglProgram = program.program;\n    state.uniformBlockBinding(uniformsGroup, webglProgram);\n  }\n  function update(uniformsGroup, program) {\n    let buffer = buffers[uniformsGroup.id];\n    if (buffer === void 0) {\n      prepareUniformsGroup(uniformsGroup);\n      buffer = createBuffer(uniformsGroup);\n      buffers[uniformsGroup.id] = buffer;\n      uniformsGroup.addEventListener(\"dispose\", onUniformsGroupsDispose);\n    }\n    const webglProgram = program.program;\n    state.updateUBOMapping(uniformsGroup, webglProgram);\n    const frame = info.render.frame;\n    if (updateList[uniformsGroup.id] !== frame) {\n      updateBufferData(uniformsGroup);\n      updateList[uniformsGroup.id] = frame;\n    }\n  }\n  function createBuffer(uniformsGroup) {\n    const bindingPointIndex = allocateBindingPointIndex();\n    uniformsGroup.__bindingPointIndex = bindingPointIndex;\n    const buffer = gl.createBuffer();\n    const size = uniformsGroup.__size;\n    const usage = uniformsGroup.usage;\n    gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n    gl.bufferData(gl.UNIFORM_BUFFER, size, usage);\n    gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n    gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPointIndex, buffer);\n    return buffer;\n  }\n  function allocateBindingPointIndex() {\n    for (let i = 0; i < maxBindingPoints; i++) {\n      if (allocatedBindingPoints.indexOf(i) === -1) {\n        allocatedBindingPoints.push(i);\n        return i;\n      }\n    }\n    console.error(\"THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.\");\n    return 0;\n  }\n  function updateBufferData(uniformsGroup) {\n    const buffer = buffers[uniformsGroup.id];\n    const uniforms = uniformsGroup.uniforms;\n    const cache = uniformsGroup.__cache;\n    gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n    for (let i = 0, il = uniforms.length; i < il; i++) {\n      const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]];\n      for (let j = 0, jl = uniformArray.length; j < jl; j++) {\n        const uniform = uniformArray[j];\n        if (hasUniformChanged(uniform, i, j, cache) === true) {\n          const offset = uniform.__offset;\n          const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n          let arrayOffset = 0;\n          for (let k = 0; k < values.length; k++) {\n            const value = values[k];\n            const info2 = getUniformSize(value);\n            if (typeof value === \"number\" || typeof value === \"boolean\") {\n              uniform.__data[0] = value;\n              gl.bufferSubData(gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data);\n            } else if (value.isMatrix3) {\n              uniform.__data[0] = value.elements[0];\n              uniform.__data[1] = value.elements[1];\n              uniform.__data[2] = value.elements[2];\n              uniform.__data[3] = 0;\n              uniform.__data[4] = value.elements[3];\n              uniform.__data[5] = value.elements[4];\n              uniform.__data[6] = value.elements[5];\n              uniform.__data[7] = 0;\n              uniform.__data[8] = value.elements[6];\n              uniform.__data[9] = value.elements[7];\n              uniform.__data[10] = value.elements[8];\n              uniform.__data[11] = 0;\n            } else {\n              value.toArray(uniform.__data, arrayOffset);\n              arrayOffset += info2.storage / Float32Array.BYTES_PER_ELEMENT;\n            }\n          }\n          gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data);\n        }\n      }\n    }\n    gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n  }\n  function hasUniformChanged(uniform, index, indexArray, cache) {\n    const value = uniform.value;\n    const indexString = index + \"_\" + indexArray;\n    if (cache[indexString] === void 0) {\n      if (typeof value === \"number\" || typeof value === \"boolean\") {\n        cache[indexString] = value;\n      } else {\n        cache[indexString] = value.clone();\n      }\n      return true;\n    } else {\n      const cachedObject = cache[indexString];\n      if (typeof value === \"number\" || typeof value === \"boolean\") {\n        if (cachedObject !== value) {\n          cache[indexString] = value;\n          return true;\n        }\n      } else {\n        if (cachedObject.equals(value) === false) {\n          cachedObject.copy(value);\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function prepareUniformsGroup(uniformsGroup) {\n    const uniforms = uniformsGroup.uniforms;\n    let offset = 0;\n    const chunkSize = 16;\n    for (let i = 0, l = uniforms.length; i < l; i++) {\n      const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]];\n      for (let j = 0, jl = uniformArray.length; j < jl; j++) {\n        const uniform = uniformArray[j];\n        const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n        for (let k = 0, kl = values.length; k < kl; k++) {\n          const value = values[k];\n          const info2 = getUniformSize(value);\n          const chunkOffset2 = offset % chunkSize;\n          const chunkPadding = chunkOffset2 % info2.boundary;\n          const chunkStart = chunkOffset2 + chunkPadding;\n          offset += chunkPadding;\n          if (chunkStart !== 0 && chunkSize - chunkStart < info2.storage) {\n            offset += chunkSize - chunkStart;\n          }\n          uniform.__data = new Float32Array(info2.storage / Float32Array.BYTES_PER_ELEMENT);\n          uniform.__offset = offset;\n          offset += info2.storage;\n        }\n      }\n    }\n    const chunkOffset = offset % chunkSize;\n    if (chunkOffset > 0) offset += chunkSize - chunkOffset;\n    uniformsGroup.__size = offset;\n    uniformsGroup.__cache = {};\n    return this;\n  }\n  function getUniformSize(value) {\n    const info2 = {\n      boundary: 0,\n      // bytes\n      storage: 0\n      // bytes\n    };\n    if (typeof value === \"number\" || typeof value === \"boolean\") {\n      info2.boundary = 4;\n      info2.storage = 4;\n    } else if (value.isVector2) {\n      info2.boundary = 8;\n      info2.storage = 8;\n    } else if (value.isVector3 || value.isColor) {\n      info2.boundary = 16;\n      info2.storage = 12;\n    } else if (value.isVector4) {\n      info2.boundary = 16;\n      info2.storage = 16;\n    } else if (value.isMatrix3) {\n      info2.boundary = 48;\n      info2.storage = 48;\n    } else if (value.isMatrix4) {\n      info2.boundary = 64;\n      info2.storage = 64;\n    } else if (value.isTexture) {\n      console.warn(\"THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.\");\n    } else {\n      console.warn(\"THREE.WebGLRenderer: Unsupported uniform value type.\", value);\n    }\n    return info2;\n  }\n  function onUniformsGroupsDispose(event) {\n    const uniformsGroup = event.target;\n    uniformsGroup.removeEventListener(\"dispose\", onUniformsGroupsDispose);\n    const index = allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);\n    allocatedBindingPoints.splice(index, 1);\n    gl.deleteBuffer(buffers[uniformsGroup.id]);\n    delete buffers[uniformsGroup.id];\n    delete updateList[uniformsGroup.id];\n  }\n  function dispose() {\n    for (const id in buffers) {\n      gl.deleteBuffer(buffers[id]);\n    }\n    allocatedBindingPoints = [];\n    buffers = {};\n    updateList = {};\n  }\n  return {\n    bind,\n    update,\n    dispose\n  };\n}\nvar WebGLRenderer = class {\n  constructor(parameters = {}) {\n    const {\n      canvas = createCanvasElement(),\n      context = null,\n      depth = true,\n      stencil = false,\n      alpha = false,\n      antialias = false,\n      premultipliedAlpha = true,\n      preserveDrawingBuffer = false,\n      powerPreference = \"default\",\n      failIfMajorPerformanceCaveat = false\n    } = parameters;\n    this.isWebGLRenderer = true;\n    let _alpha;\n    if (context !== null) {\n      if (typeof WebGLRenderingContext !== \"undefined\" && context instanceof WebGLRenderingContext) {\n        throw new Error(\"THREE.WebGLRenderer: WebGL 1 is not supported since r163.\");\n      }\n      _alpha = context.getContextAttributes().alpha;\n    } else {\n      _alpha = alpha;\n    }\n    const uintClearColor = new Uint32Array(4);\n    const intClearColor = new Int32Array(4);\n    let currentRenderList = null;\n    let currentRenderState = null;\n    const renderListStack = [];\n    const renderStateStack = [];\n    this.domElement = canvas;\n    this.debug = {\n      /**\n       * Enables error checking and reporting when shader programs are being compiled\n       * @type {boolean}\n       */\n      checkShaderErrors: true,\n      /**\n       * Callback for custom error reporting.\n       * @type {?Function}\n       */\n      onShaderError: null\n    };\n    this.autoClear = true;\n    this.autoClearColor = true;\n    this.autoClearDepth = true;\n    this.autoClearStencil = true;\n    this.sortObjects = true;\n    this.clippingPlanes = [];\n    this.localClippingEnabled = false;\n    this._outputColorSpace = SRGBColorSpace;\n    this.toneMapping = NoToneMapping;\n    this.toneMappingExposure = 1;\n    const _this = this;\n    let _isContextLost = false;\n    let _currentActiveCubeFace = 0;\n    let _currentActiveMipmapLevel = 0;\n    let _currentRenderTarget = null;\n    let _currentMaterialId = -1;\n    let _currentCamera = null;\n    const _currentViewport = new Vector4();\n    const _currentScissor = new Vector4();\n    let _currentScissorTest = null;\n    const _currentClearColor = new Color(0);\n    let _currentClearAlpha = 0;\n    let _width = canvas.width;\n    let _height = canvas.height;\n    let _pixelRatio = 1;\n    let _opaqueSort = null;\n    let _transparentSort = null;\n    const _viewport = new Vector4(0, 0, _width, _height);\n    const _scissor = new Vector4(0, 0, _width, _height);\n    let _scissorTest = false;\n    const _frustum2 = new Frustum();\n    let _clippingEnabled = false;\n    let _localClippingEnabled = false;\n    const _currentProjectionMatrix = new Matrix4();\n    const _projScreenMatrix2 = new Matrix4();\n    const _vector32 = new Vector3();\n    const _vector4 = new Vector4();\n    const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n    let _renderBackground = false;\n    function getTargetPixelRatio() {\n      return _currentRenderTarget === null ? _pixelRatio : 1;\n    }\n    let _gl = context;\n    function getContext(contextName, contextAttributes) {\n      return canvas.getContext(contextName, contextAttributes);\n    }\n    try {\n      const contextAttributes = {\n        alpha: true,\n        depth,\n        stencil,\n        antialias,\n        premultipliedAlpha,\n        preserveDrawingBuffer,\n        powerPreference,\n        failIfMajorPerformanceCaveat\n      };\n      if (\"setAttribute\" in canvas) canvas.setAttribute(\"data-engine\", `three.js r${REVISION}`);\n      canvas.addEventListener(\"webglcontextlost\", onContextLost, false);\n      canvas.addEventListener(\"webglcontextrestored\", onContextRestore, false);\n      canvas.addEventListener(\"webglcontextcreationerror\", onContextCreationError, false);\n      if (_gl === null) {\n        const contextName = \"webgl2\";\n        _gl = getContext(contextName, contextAttributes);\n        if (_gl === null) {\n          if (getContext(contextName)) {\n            throw new Error(\"Error creating WebGL context with your selected attributes.\");\n          } else {\n            throw new Error(\"Error creating WebGL context.\");\n          }\n        }\n      }\n    } catch (error) {\n      console.error(\"THREE.WebGLRenderer: \" + error.message);\n      throw error;\n    }\n    let extensions, capabilities, state, info;\n    let properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n    let programCache, materials, renderLists, renderStates, clipping, shadowMap;\n    let background, morphtargets, bufferRenderer, indexedBufferRenderer;\n    let utils, bindingStates, uniformsGroups;\n    function initGLContext() {\n      extensions = new WebGLExtensions(_gl);\n      extensions.init();\n      utils = new WebGLUtils(_gl, extensions);\n      capabilities = new WebGLCapabilities(_gl, extensions, parameters, utils);\n      state = new WebGLState(_gl);\n      if (capabilities.reverseDepthBuffer) state.buffers.depth.setReversed(true);\n      info = new WebGLInfo(_gl);\n      properties = new WebGLProperties();\n      textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\n      cubemaps = new WebGLCubeMaps(_this);\n      cubeuvmaps = new WebGLCubeUVMaps(_this);\n      attributes = new WebGLAttributes(_gl);\n      bindingStates = new WebGLBindingStates(_gl, attributes);\n      geometries = new WebGLGeometries(_gl, attributes, info, bindingStates);\n      objects = new WebGLObjects(_gl, geometries, attributes, info);\n      morphtargets = new WebGLMorphtargets(_gl, capabilities, textures);\n      clipping = new WebGLClipping(properties);\n      programCache = new WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping);\n      materials = new WebGLMaterials(_this, properties);\n      renderLists = new WebGLRenderLists();\n      renderStates = new WebGLRenderStates(extensions);\n      background = new WebGLBackground(_this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha);\n      shadowMap = new WebGLShadowMap(_this, objects, capabilities);\n      uniformsGroups = new WebGLUniformsGroups(_gl, info, capabilities, state);\n      bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info);\n      indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info);\n      info.programs = programCache.programs;\n      _this.capabilities = capabilities;\n      _this.extensions = extensions;\n      _this.properties = properties;\n      _this.renderLists = renderLists;\n      _this.shadowMap = shadowMap;\n      _this.state = state;\n      _this.info = info;\n    }\n    initGLContext();\n    const xr = new WebXRManager(_this, _gl);\n    this.xr = xr;\n    this.getContext = function() {\n      return _gl;\n    };\n    this.getContextAttributes = function() {\n      return _gl.getContextAttributes();\n    };\n    this.forceContextLoss = function() {\n      const extension = extensions.get(\"WEBGL_lose_context\");\n      if (extension) extension.loseContext();\n    };\n    this.forceContextRestore = function() {\n      const extension = extensions.get(\"WEBGL_lose_context\");\n      if (extension) extension.restoreContext();\n    };\n    this.getPixelRatio = function() {\n      return _pixelRatio;\n    };\n    this.setPixelRatio = function(value) {\n      if (value === void 0) return;\n      _pixelRatio = value;\n      this.setSize(_width, _height, false);\n    };\n    this.getSize = function(target) {\n      return target.set(_width, _height);\n    };\n    this.setSize = function(width, height, updateStyle = true) {\n      if (xr.isPresenting) {\n        console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");\n        return;\n      }\n      _width = width;\n      _height = height;\n      canvas.width = Math.floor(width * _pixelRatio);\n      canvas.height = Math.floor(height * _pixelRatio);\n      if (updateStyle === true) {\n        canvas.style.width = width + \"px\";\n        canvas.style.height = height + \"px\";\n      }\n      this.setViewport(0, 0, width, height);\n    };\n    this.getDrawingBufferSize = function(target) {\n      return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\n    };\n    this.setDrawingBufferSize = function(width, height, pixelRatio) {\n      _width = width;\n      _height = height;\n      _pixelRatio = pixelRatio;\n      canvas.width = Math.floor(width * pixelRatio);\n      canvas.height = Math.floor(height * pixelRatio);\n      this.setViewport(0, 0, width, height);\n    };\n    this.getCurrentViewport = function(target) {\n      return target.copy(_currentViewport);\n    };\n    this.getViewport = function(target) {\n      return target.copy(_viewport);\n    };\n    this.setViewport = function(x, y, width, height) {\n      if (x.isVector4) {\n        _viewport.set(x.x, x.y, x.z, x.w);\n      } else {\n        _viewport.set(x, y, width, height);\n      }\n      state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).round());\n    };\n    this.getScissor = function(target) {\n      return target.copy(_scissor);\n    };\n    this.setScissor = function(x, y, width, height) {\n      if (x.isVector4) {\n        _scissor.set(x.x, x.y, x.z, x.w);\n      } else {\n        _scissor.set(x, y, width, height);\n      }\n      state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).round());\n    };\n    this.getScissorTest = function() {\n      return _scissorTest;\n    };\n    this.setScissorTest = function(boolean) {\n      state.setScissorTest(_scissorTest = boolean);\n    };\n    this.setOpaqueSort = function(method) {\n      _opaqueSort = method;\n    };\n    this.setTransparentSort = function(method) {\n      _transparentSort = method;\n    };\n    this.getClearColor = function(target) {\n      return target.copy(background.getClearColor());\n    };\n    this.setClearColor = function() {\n      background.setClearColor.apply(background, arguments);\n    };\n    this.getClearAlpha = function() {\n      return background.getClearAlpha();\n    };\n    this.setClearAlpha = function() {\n      background.setClearAlpha.apply(background, arguments);\n    };\n    this.clear = function(color = true, depth2 = true, stencil2 = true) {\n      let bits = 0;\n      if (color) {\n        let isIntegerFormat = false;\n        if (_currentRenderTarget !== null) {\n          const targetFormat = _currentRenderTarget.texture.format;\n          isIntegerFormat = targetFormat === RGBAIntegerFormat || targetFormat === RGIntegerFormat || targetFormat === RedIntegerFormat;\n        }\n        if (isIntegerFormat) {\n          const targetType = _currentRenderTarget.texture.type;\n          const isUnsignedType = targetType === UnsignedByteType || targetType === UnsignedIntType || targetType === UnsignedShortType || targetType === UnsignedInt248Type || targetType === UnsignedShort4444Type || targetType === UnsignedShort5551Type;\n          const clearColor = background.getClearColor();\n          const a = background.getClearAlpha();\n          const r = clearColor.r;\n          const g = clearColor.g;\n          const b = clearColor.b;\n          if (isUnsignedType) {\n            uintClearColor[0] = r;\n            uintClearColor[1] = g;\n            uintClearColor[2] = b;\n            uintClearColor[3] = a;\n            _gl.clearBufferuiv(_gl.COLOR, 0, uintClearColor);\n          } else {\n            intClearColor[0] = r;\n            intClearColor[1] = g;\n            intClearColor[2] = b;\n            intClearColor[3] = a;\n            _gl.clearBufferiv(_gl.COLOR, 0, intClearColor);\n          }\n        } else {\n          bits |= _gl.COLOR_BUFFER_BIT;\n        }\n      }\n      if (depth2) {\n        bits |= _gl.DEPTH_BUFFER_BIT;\n        _gl.clearDepth(this.capabilities.reverseDepthBuffer ? 0 : 1);\n      }\n      if (stencil2) {\n        bits |= _gl.STENCIL_BUFFER_BIT;\n        this.state.buffers.stencil.setMask(4294967295);\n      }\n      _gl.clear(bits);\n    };\n    this.clearColor = function() {\n      this.clear(true, false, false);\n    };\n    this.clearDepth = function() {\n      this.clear(false, true, false);\n    };\n    this.clearStencil = function() {\n      this.clear(false, false, true);\n    };\n    this.dispose = function() {\n      canvas.removeEventListener(\"webglcontextlost\", onContextLost, false);\n      canvas.removeEventListener(\"webglcontextrestored\", onContextRestore, false);\n      canvas.removeEventListener(\"webglcontextcreationerror\", onContextCreationError, false);\n      renderLists.dispose();\n      renderStates.dispose();\n      properties.dispose();\n      cubemaps.dispose();\n      cubeuvmaps.dispose();\n      objects.dispose();\n      bindingStates.dispose();\n      uniformsGroups.dispose();\n      programCache.dispose();\n      xr.dispose();\n      xr.removeEventListener(\"sessionstart\", onXRSessionStart);\n      xr.removeEventListener(\"sessionend\", onXRSessionEnd);\n      animation.stop();\n    };\n    function onContextLost(event) {\n      event.preventDefault();\n      console.log(\"THREE.WebGLRenderer: Context Lost.\");\n      _isContextLost = true;\n    }\n    function onContextRestore() {\n      console.log(\"THREE.WebGLRenderer: Context Restored.\");\n      _isContextLost = false;\n      const infoAutoReset = info.autoReset;\n      const shadowMapEnabled = shadowMap.enabled;\n      const shadowMapAutoUpdate = shadowMap.autoUpdate;\n      const shadowMapNeedsUpdate = shadowMap.needsUpdate;\n      const shadowMapType = shadowMap.type;\n      initGLContext();\n      info.autoReset = infoAutoReset;\n      shadowMap.enabled = shadowMapEnabled;\n      shadowMap.autoUpdate = shadowMapAutoUpdate;\n      shadowMap.needsUpdate = shadowMapNeedsUpdate;\n      shadowMap.type = shadowMapType;\n    }\n    function onContextCreationError(event) {\n      console.error(\"THREE.WebGLRenderer: A WebGL context could not be created. Reason: \", event.statusMessage);\n    }\n    function onMaterialDispose(event) {\n      const material = event.target;\n      material.removeEventListener(\"dispose\", onMaterialDispose);\n      deallocateMaterial(material);\n    }\n    function deallocateMaterial(material) {\n      releaseMaterialProgramReferences(material);\n      properties.remove(material);\n    }\n    function releaseMaterialProgramReferences(material) {\n      const programs = properties.get(material).programs;\n      if (programs !== void 0) {\n        programs.forEach(function(program) {\n          programCache.releaseProgram(program);\n        });\n        if (material.isShaderMaterial) {\n          programCache.releaseShaderCache(material);\n        }\n      }\n    }\n    this.renderBufferDirect = function(camera, scene, geometry, material, object, group) {\n      if (scene === null) scene = _emptyScene;\n      const frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\n      const program = setProgram(camera, scene, geometry, material, object);\n      state.setMaterial(material, frontFaceCW);\n      let index = geometry.index;\n      let rangeFactor = 1;\n      if (material.wireframe === true) {\n        index = geometries.getWireframeAttribute(geometry);\n        if (index === void 0) return;\n        rangeFactor = 2;\n      }\n      const drawRange = geometry.drawRange;\n      const position = geometry.attributes.position;\n      let drawStart = drawRange.start * rangeFactor;\n      let drawEnd = (drawRange.start + drawRange.count) * rangeFactor;\n      if (group !== null) {\n        drawStart = Math.max(drawStart, group.start * rangeFactor);\n        drawEnd = Math.min(drawEnd, (group.start + group.count) * rangeFactor);\n      }\n      if (index !== null) {\n        drawStart = Math.max(drawStart, 0);\n        drawEnd = Math.min(drawEnd, index.count);\n      } else if (position !== void 0 && position !== null) {\n        drawStart = Math.max(drawStart, 0);\n        drawEnd = Math.min(drawEnd, position.count);\n      }\n      const drawCount = drawEnd - drawStart;\n      if (drawCount < 0 || drawCount === Infinity) return;\n      bindingStates.setup(object, material, program, geometry, index);\n      let attribute;\n      let renderer = bufferRenderer;\n      if (index !== null) {\n        attribute = attributes.get(index);\n        renderer = indexedBufferRenderer;\n        renderer.setIndex(attribute);\n      }\n      if (object.isMesh) {\n        if (material.wireframe === true) {\n          state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\n          renderer.setMode(_gl.LINES);\n        } else {\n          renderer.setMode(_gl.TRIANGLES);\n        }\n      } else if (object.isLine) {\n        let lineWidth = material.linewidth;\n        if (lineWidth === void 0) lineWidth = 1;\n        state.setLineWidth(lineWidth * getTargetPixelRatio());\n        if (object.isLineSegments) {\n          renderer.setMode(_gl.LINES);\n        } else if (object.isLineLoop) {\n          renderer.setMode(_gl.LINE_LOOP);\n        } else {\n          renderer.setMode(_gl.LINE_STRIP);\n        }\n      } else if (object.isPoints) {\n        renderer.setMode(_gl.POINTS);\n      } else if (object.isSprite) {\n        renderer.setMode(_gl.TRIANGLES);\n      }\n      if (object.isBatchedMesh) {\n        if (object._multiDrawInstances !== null) {\n          renderer.renderMultiDrawInstances(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances);\n        } else {\n          if (!extensions.get(\"WEBGL_multi_draw\")) {\n            const starts = object._multiDrawStarts;\n            const counts = object._multiDrawCounts;\n            const drawCount2 = object._multiDrawCount;\n            const bytesPerElement = index ? attributes.get(index).bytesPerElement : 1;\n            const uniforms = properties.get(material).currentProgram.getUniforms();\n            for (let i = 0; i < drawCount2; i++) {\n              uniforms.setValue(_gl, \"_gl_DrawID\", i);\n              renderer.render(starts[i] / bytesPerElement, counts[i]);\n            }\n          } else {\n            renderer.renderMultiDraw(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount);\n          }\n        }\n      } else if (object.isInstancedMesh) {\n        renderer.renderInstances(drawStart, drawCount, object.count);\n      } else if (geometry.isInstancedBufferGeometry) {\n        const maxInstanceCount = geometry._maxInstanceCount !== void 0 ? geometry._maxInstanceCount : Infinity;\n        const instanceCount = Math.min(geometry.instanceCount, maxInstanceCount);\n        renderer.renderInstances(drawStart, drawCount, instanceCount);\n      } else {\n        renderer.render(drawStart, drawCount);\n      }\n    };\n    function prepareMaterial(material, scene, object) {\n      if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n        material.side = BackSide;\n        material.needsUpdate = true;\n        getProgram(material, scene, object);\n        material.side = FrontSide;\n        material.needsUpdate = true;\n        getProgram(material, scene, object);\n        material.side = DoubleSide;\n      } else {\n        getProgram(material, scene, object);\n      }\n    }\n    this.compile = function(scene, camera, targetScene = null) {\n      if (targetScene === null) targetScene = scene;\n      currentRenderState = renderStates.get(targetScene);\n      currentRenderState.init(camera);\n      renderStateStack.push(currentRenderState);\n      targetScene.traverseVisible(function(object) {\n        if (object.isLight && object.layers.test(camera.layers)) {\n          currentRenderState.pushLight(object);\n          if (object.castShadow) {\n            currentRenderState.pushShadow(object);\n          }\n        }\n      });\n      if (scene !== targetScene) {\n        scene.traverseVisible(function(object) {\n          if (object.isLight && object.layers.test(camera.layers)) {\n            currentRenderState.pushLight(object);\n            if (object.castShadow) {\n              currentRenderState.pushShadow(object);\n            }\n          }\n        });\n      }\n      currentRenderState.setupLights();\n      const materials2 = /* @__PURE__ */ new Set();\n      scene.traverse(function(object) {\n        if (!(object.isMesh || object.isPoints || object.isLine || object.isSprite)) {\n          return;\n        }\n        const material = object.material;\n        if (material) {\n          if (Array.isArray(material)) {\n            for (let i = 0; i < material.length; i++) {\n              const material2 = material[i];\n              prepareMaterial(material2, targetScene, object);\n              materials2.add(material2);\n            }\n          } else {\n            prepareMaterial(material, targetScene, object);\n            materials2.add(material);\n          }\n        }\n      });\n      renderStateStack.pop();\n      currentRenderState = null;\n      return materials2;\n    };\n    this.compileAsync = function(scene, camera, targetScene = null) {\n      const materials2 = this.compile(scene, camera, targetScene);\n      return new Promise((resolve) => {\n        function checkMaterialsReady() {\n          materials2.forEach(function(material) {\n            const materialProperties = properties.get(material);\n            const program = materialProperties.currentProgram;\n            if (program.isReady()) {\n              materials2.delete(material);\n            }\n          });\n          if (materials2.size === 0) {\n            resolve(scene);\n            return;\n          }\n          setTimeout(checkMaterialsReady, 10);\n        }\n        if (extensions.get(\"KHR_parallel_shader_compile\") !== null) {\n          checkMaterialsReady();\n        } else {\n          setTimeout(checkMaterialsReady, 10);\n        }\n      });\n    };\n    let onAnimationFrameCallback = null;\n    function onAnimationFrame(time) {\n      if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n    }\n    function onXRSessionStart() {\n      animation.stop();\n    }\n    function onXRSessionEnd() {\n      animation.start();\n    }\n    const animation = new WebGLAnimation();\n    animation.setAnimationLoop(onAnimationFrame);\n    if (typeof self !== \"undefined\") animation.setContext(self);\n    this.setAnimationLoop = function(callback) {\n      onAnimationFrameCallback = callback;\n      xr.setAnimationLoop(callback);\n      callback === null ? animation.stop() : animation.start();\n    };\n    xr.addEventListener(\"sessionstart\", onXRSessionStart);\n    xr.addEventListener(\"sessionend\", onXRSessionEnd);\n    this.render = function(scene, camera) {\n      if (camera !== void 0 && camera.isCamera !== true) {\n        console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");\n        return;\n      }\n      if (_isContextLost === true) return;\n      if (scene.matrixWorldAutoUpdate === true) scene.updateMatrixWorld();\n      if (camera.parent === null && camera.matrixWorldAutoUpdate === true) camera.updateMatrixWorld();\n      if (xr.enabled === true && xr.isPresenting === true) {\n        if (xr.cameraAutoUpdate === true) xr.updateCamera(camera);\n        camera = xr.getCamera();\n      }\n      if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, _currentRenderTarget);\n      currentRenderState = renderStates.get(scene, renderStateStack.length);\n      currentRenderState.init(camera);\n      renderStateStack.push(currentRenderState);\n      _projScreenMatrix2.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n      _frustum2.setFromProjectionMatrix(_projScreenMatrix2);\n      _localClippingEnabled = this.localClippingEnabled;\n      _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled);\n      currentRenderList = renderLists.get(scene, renderListStack.length);\n      currentRenderList.init();\n      renderListStack.push(currentRenderList);\n      if (xr.enabled === true && xr.isPresenting === true) {\n        const depthSensingMesh = _this.xr.getDepthSensingMesh();\n        if (depthSensingMesh !== null) {\n          projectObject(depthSensingMesh, camera, -Infinity, _this.sortObjects);\n        }\n      }\n      projectObject(scene, camera, 0, _this.sortObjects);\n      currentRenderList.finish();\n      if (_this.sortObjects === true) {\n        currentRenderList.sort(_opaqueSort, _transparentSort);\n      }\n      _renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n      if (_renderBackground) {\n        background.addToRenderList(currentRenderList, scene);\n      }\n      this.info.render.frame++;\n      if (_clippingEnabled === true) clipping.beginShadows();\n      const shadowsArray = currentRenderState.state.shadowsArray;\n      shadowMap.render(shadowsArray, scene, camera);\n      if (_clippingEnabled === true) clipping.endShadows();\n      if (this.info.autoReset === true) this.info.reset();\n      const opaqueObjects = currentRenderList.opaque;\n      const transmissiveObjects = currentRenderList.transmissive;\n      currentRenderState.setupLights();\n      if (camera.isArrayCamera) {\n        const cameras = camera.cameras;\n        if (transmissiveObjects.length > 0) {\n          for (let i = 0, l = cameras.length; i < l; i++) {\n            const camera2 = cameras[i];\n            renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera2);\n          }\n        }\n        if (_renderBackground) background.render(scene);\n        for (let i = 0, l = cameras.length; i < l; i++) {\n          const camera2 = cameras[i];\n          renderScene(currentRenderList, scene, camera2, camera2.viewport);\n        }\n      } else {\n        if (transmissiveObjects.length > 0) renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera);\n        if (_renderBackground) background.render(scene);\n        renderScene(currentRenderList, scene, camera);\n      }\n      if (_currentRenderTarget !== null) {\n        textures.updateMultisampleRenderTarget(_currentRenderTarget);\n        textures.updateRenderTargetMipmap(_currentRenderTarget);\n      }\n      if (scene.isScene === true) scene.onAfterRender(_this, scene, camera);\n      bindingStates.resetDefaultState();\n      _currentMaterialId = -1;\n      _currentCamera = null;\n      renderStateStack.pop();\n      if (renderStateStack.length > 0) {\n        currentRenderState = renderStateStack[renderStateStack.length - 1];\n        if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, currentRenderState.state.camera);\n      } else {\n        currentRenderState = null;\n      }\n      renderListStack.pop();\n      if (renderListStack.length > 0) {\n        currentRenderList = renderListStack[renderListStack.length - 1];\n      } else {\n        currentRenderList = null;\n      }\n    };\n    function projectObject(object, camera, groupOrder, sortObjects) {\n      if (object.visible === false) return;\n      const visible = object.layers.test(camera.layers);\n      if (visible) {\n        if (object.isGroup) {\n          groupOrder = object.renderOrder;\n        } else if (object.isLOD) {\n          if (object.autoUpdate === true) object.update(camera);\n        } else if (object.isLight) {\n          currentRenderState.pushLight(object);\n          if (object.castShadow) {\n            currentRenderState.pushShadow(object);\n          }\n        } else if (object.isSprite) {\n          if (!object.frustumCulled || _frustum2.intersectsSprite(object)) {\n            if (sortObjects) {\n              _vector4.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix2);\n            }\n            const geometry = objects.update(object);\n            const material = object.material;\n            if (material.visible) {\n              currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null);\n            }\n          }\n        } else if (object.isMesh || object.isLine || object.isPoints) {\n          if (!object.frustumCulled || _frustum2.intersectsObject(object)) {\n            const geometry = objects.update(object);\n            const material = object.material;\n            if (sortObjects) {\n              if (object.boundingSphere !== void 0) {\n                if (object.boundingSphere === null) object.computeBoundingSphere();\n                _vector4.copy(object.boundingSphere.center);\n              } else {\n                if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n                _vector4.copy(geometry.boundingSphere.center);\n              }\n              _vector4.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix2);\n            }\n            if (Array.isArray(material)) {\n              const groups = geometry.groups;\n              for (let i = 0, l = groups.length; i < l; i++) {\n                const group = groups[i];\n                const groupMaterial = material[group.materialIndex];\n                if (groupMaterial && groupMaterial.visible) {\n                  currentRenderList.push(object, geometry, groupMaterial, groupOrder, _vector4.z, group);\n                }\n              }\n            } else if (material.visible) {\n              currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null);\n            }\n          }\n        }\n      }\n      const children = object.children;\n      for (let i = 0, l = children.length; i < l; i++) {\n        projectObject(children[i], camera, groupOrder, sortObjects);\n      }\n    }\n    function renderScene(currentRenderList2, scene, camera, viewport) {\n      const opaqueObjects = currentRenderList2.opaque;\n      const transmissiveObjects = currentRenderList2.transmissive;\n      const transparentObjects = currentRenderList2.transparent;\n      currentRenderState.setupLightsView(camera);\n      if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera);\n      if (viewport) state.viewport(_currentViewport.copy(viewport));\n      if (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera);\n      if (transmissiveObjects.length > 0) renderObjects(transmissiveObjects, scene, camera);\n      if (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera);\n      state.buffers.depth.setTest(true);\n      state.buffers.depth.setMask(true);\n      state.buffers.color.setMask(true);\n      state.setPolygonOffset(false);\n    }\n    function renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera) {\n      const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n      if (overrideMaterial !== null) {\n        return;\n      }\n      if (currentRenderState.state.transmissionRenderTarget[camera.id] === void 0) {\n        currentRenderState.state.transmissionRenderTarget[camera.id] = new WebGLRenderTarget(1, 1, {\n          generateMipmaps: true,\n          type: extensions.has(\"EXT_color_buffer_half_float\") || extensions.has(\"EXT_color_buffer_float\") ? HalfFloatType : UnsignedByteType,\n          minFilter: LinearMipmapLinearFilter,\n          samples: 4,\n          stencilBuffer: stencil,\n          resolveDepthBuffer: false,\n          resolveStencilBuffer: false,\n          colorSpace: ColorManagement.workingColorSpace\n        });\n      }\n      const transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[camera.id];\n      const activeViewport = camera.viewport || _currentViewport;\n      transmissionRenderTarget.setSize(activeViewport.z, activeViewport.w);\n      const currentRenderTarget = _this.getRenderTarget();\n      _this.setRenderTarget(transmissionRenderTarget);\n      _this.getClearColor(_currentClearColor);\n      _currentClearAlpha = _this.getClearAlpha();\n      if (_currentClearAlpha < 1) _this.setClearColor(16777215, 0.5);\n      _this.clear();\n      if (_renderBackground) background.render(scene);\n      const currentToneMapping = _this.toneMapping;\n      _this.toneMapping = NoToneMapping;\n      const currentCameraViewport = camera.viewport;\n      if (camera.viewport !== void 0) camera.viewport = void 0;\n      currentRenderState.setupLightsView(camera);\n      if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera);\n      renderObjects(opaqueObjects, scene, camera);\n      textures.updateMultisampleRenderTarget(transmissionRenderTarget);\n      textures.updateRenderTargetMipmap(transmissionRenderTarget);\n      if (extensions.has(\"WEBGL_multisampled_render_to_texture\") === false) {\n        let renderTargetNeedsUpdate = false;\n        for (let i = 0, l = transmissiveObjects.length; i < l; i++) {\n          const renderItem = transmissiveObjects[i];\n          const object = renderItem.object;\n          const geometry = renderItem.geometry;\n          const material = renderItem.material;\n          const group = renderItem.group;\n          if (material.side === DoubleSide && object.layers.test(camera.layers)) {\n            const currentSide = material.side;\n            material.side = BackSide;\n            material.needsUpdate = true;\n            renderObject(object, scene, camera, geometry, material, group);\n            material.side = currentSide;\n            material.needsUpdate = true;\n            renderTargetNeedsUpdate = true;\n          }\n        }\n        if (renderTargetNeedsUpdate === true) {\n          textures.updateMultisampleRenderTarget(transmissionRenderTarget);\n          textures.updateRenderTargetMipmap(transmissionRenderTarget);\n        }\n      }\n      _this.setRenderTarget(currentRenderTarget);\n      _this.setClearColor(_currentClearColor, _currentClearAlpha);\n      if (currentCameraViewport !== void 0) camera.viewport = currentCameraViewport;\n      _this.toneMapping = currentToneMapping;\n    }\n    function renderObjects(renderList, scene, camera) {\n      const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n      for (let i = 0, l = renderList.length; i < l; i++) {\n        const renderItem = renderList[i];\n        const object = renderItem.object;\n        const geometry = renderItem.geometry;\n        const material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n        const group = renderItem.group;\n        if (object.layers.test(camera.layers)) {\n          renderObject(object, scene, camera, geometry, material, group);\n        }\n      }\n    }\n    function renderObject(object, scene, camera, geometry, material, group) {\n      object.onBeforeRender(_this, scene, camera, geometry, material, group);\n      object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\n      object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\n      material.onBeforeRender(_this, scene, camera, geometry, object, group);\n      if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n        material.side = BackSide;\n        material.needsUpdate = true;\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n        material.side = FrontSide;\n        material.needsUpdate = true;\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n        material.side = DoubleSide;\n      } else {\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n      }\n      object.onAfterRender(_this, scene, camera, geometry, material, group);\n    }\n    function getProgram(material, scene, object) {\n      if (scene.isScene !== true) scene = _emptyScene;\n      const materialProperties = properties.get(material);\n      const lights = currentRenderState.state.lights;\n      const shadowsArray = currentRenderState.state.shadowsArray;\n      const lightsStateVersion = lights.state.version;\n      const parameters2 = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\n      const programCacheKey = programCache.getProgramCacheKey(parameters2);\n      let programs = materialProperties.programs;\n      materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n      materialProperties.fog = scene.fog;\n      materialProperties.envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || materialProperties.environment);\n      materialProperties.envMapRotation = materialProperties.environment !== null && material.envMap === null ? scene.environmentRotation : material.envMapRotation;\n      if (programs === void 0) {\n        material.addEventListener(\"dispose\", onMaterialDispose);\n        programs = /* @__PURE__ */ new Map();\n        materialProperties.programs = programs;\n      }\n      let program = programs.get(programCacheKey);\n      if (program !== void 0) {\n        if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) {\n          updateCommonMaterialProperties(material, parameters2);\n          return program;\n        }\n      } else {\n        parameters2.uniforms = programCache.getUniforms(material);\n        material.onBeforeCompile(parameters2, _this);\n        program = programCache.acquireProgram(parameters2, programCacheKey);\n        programs.set(programCacheKey, program);\n        materialProperties.uniforms = parameters2.uniforms;\n      }\n      const uniforms = materialProperties.uniforms;\n      if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\n        uniforms.clippingPlanes = clipping.uniform;\n      }\n      updateCommonMaterialProperties(material, parameters2);\n      materialProperties.needsLights = materialNeedsLights(material);\n      materialProperties.lightsStateVersion = lightsStateVersion;\n      if (materialProperties.needsLights) {\n        uniforms.ambientLightColor.value = lights.state.ambient;\n        uniforms.lightProbe.value = lights.state.probe;\n        uniforms.directionalLights.value = lights.state.directional;\n        uniforms.directionalLightShadows.value = lights.state.directionalShadow;\n        uniforms.spotLights.value = lights.state.spot;\n        uniforms.spotLightShadows.value = lights.state.spotShadow;\n        uniforms.rectAreaLights.value = lights.state.rectArea;\n        uniforms.ltc_1.value = lights.state.rectAreaLTC1;\n        uniforms.ltc_2.value = lights.state.rectAreaLTC2;\n        uniforms.pointLights.value = lights.state.point;\n        uniforms.pointLightShadows.value = lights.state.pointShadow;\n        uniforms.hemisphereLights.value = lights.state.hemi;\n        uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n        uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n        uniforms.spotShadowMap.value = lights.state.spotShadowMap;\n        uniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n        uniforms.spotLightMap.value = lights.state.spotLightMap;\n        uniforms.pointShadowMap.value = lights.state.pointShadowMap;\n        uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n      }\n      materialProperties.currentProgram = program;\n      materialProperties.uniformsList = null;\n      return program;\n    }\n    function getUniformList(materialProperties) {\n      if (materialProperties.uniformsList === null) {\n        const progUniforms = materialProperties.currentProgram.getUniforms();\n        materialProperties.uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, materialProperties.uniforms);\n      }\n      return materialProperties.uniformsList;\n    }\n    function updateCommonMaterialProperties(material, parameters2) {\n      const materialProperties = properties.get(material);\n      materialProperties.outputColorSpace = parameters2.outputColorSpace;\n      materialProperties.batching = parameters2.batching;\n      materialProperties.batchingColor = parameters2.batchingColor;\n      materialProperties.instancing = parameters2.instancing;\n      materialProperties.instancingColor = parameters2.instancingColor;\n      materialProperties.instancingMorph = parameters2.instancingMorph;\n      materialProperties.skinning = parameters2.skinning;\n      materialProperties.morphTargets = parameters2.morphTargets;\n      materialProperties.morphNormals = parameters2.morphNormals;\n      materialProperties.morphColors = parameters2.morphColors;\n      materialProperties.morphTargetsCount = parameters2.morphTargetsCount;\n      materialProperties.numClippingPlanes = parameters2.numClippingPlanes;\n      materialProperties.numIntersection = parameters2.numClipIntersection;\n      materialProperties.vertexAlphas = parameters2.vertexAlphas;\n      materialProperties.vertexTangents = parameters2.vertexTangents;\n      materialProperties.toneMapping = parameters2.toneMapping;\n    }\n    function setProgram(camera, scene, geometry, material, object) {\n      if (scene.isScene !== true) scene = _emptyScene;\n      textures.resetTextureUnits();\n      const fog = scene.fog;\n      const environment = material.isMeshStandardMaterial ? scene.environment : null;\n      const colorSpace = _currentRenderTarget === null ? _this.outputColorSpace : _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace;\n      const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n      const vertexAlphas = material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n      const vertexTangents = !!geometry.attributes.tangent && (!!material.normalMap || material.anisotropy > 0);\n      const morphTargets = !!geometry.morphAttributes.position;\n      const morphNormals = !!geometry.morphAttributes.normal;\n      const morphColors = !!geometry.morphAttributes.color;\n      let toneMapping = NoToneMapping;\n      if (material.toneMapped) {\n        if (_currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true) {\n          toneMapping = _this.toneMapping;\n        }\n      }\n      const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n      const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n      const materialProperties = properties.get(material);\n      const lights = currentRenderState.state.lights;\n      if (_clippingEnabled === true) {\n        if (_localClippingEnabled === true || camera !== _currentCamera) {\n          const useCache = camera === _currentCamera && material.id === _currentMaterialId;\n          clipping.setState(material, camera, useCache);\n        }\n      }\n      let needsProgramChange = false;\n      if (material.version === materialProperties.__version) {\n        if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\n          needsProgramChange = true;\n        } else if (materialProperties.outputColorSpace !== colorSpace) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batching === false) {\n          needsProgramChange = true;\n        } else if (!object.isBatchedMesh && materialProperties.batching === true) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancing === false) {\n          needsProgramChange = true;\n        } else if (!object.isInstancedMesh && materialProperties.instancing === true) {\n          needsProgramChange = true;\n        } else if (object.isSkinnedMesh && materialProperties.skinning === false) {\n          needsProgramChange = true;\n        } else if (!object.isSkinnedMesh && materialProperties.skinning === true) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null) {\n          needsProgramChange = true;\n        } else if (materialProperties.envMap !== envMap) {\n          needsProgramChange = true;\n        } else if (material.fog === true && materialProperties.fog !== fog) {\n          needsProgramChange = true;\n        } else if (materialProperties.numClippingPlanes !== void 0 && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\n          needsProgramChange = true;\n        } else if (materialProperties.vertexAlphas !== vertexAlphas) {\n          needsProgramChange = true;\n        } else if (materialProperties.vertexTangents !== vertexTangents) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphTargets !== morphTargets) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphNormals !== morphNormals) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphColors !== morphColors) {\n          needsProgramChange = true;\n        } else if (materialProperties.toneMapping !== toneMapping) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphTargetsCount !== morphTargetsCount) {\n          needsProgramChange = true;\n        }\n      } else {\n        needsProgramChange = true;\n        materialProperties.__version = material.version;\n      }\n      let program = materialProperties.currentProgram;\n      if (needsProgramChange === true) {\n        program = getProgram(material, scene, object);\n      }\n      let refreshProgram = false;\n      let refreshMaterial = false;\n      let refreshLights = false;\n      const p_uniforms = program.getUniforms(), m_uniforms = materialProperties.uniforms;\n      if (state.useProgram(program.program)) {\n        refreshProgram = true;\n        refreshMaterial = true;\n        refreshLights = true;\n      }\n      if (material.id !== _currentMaterialId) {\n        _currentMaterialId = material.id;\n        refreshMaterial = true;\n      }\n      if (refreshProgram || _currentCamera !== camera) {\n        if (capabilities.reverseDepthBuffer) {\n          _currentProjectionMatrix.copy(camera.projectionMatrix);\n          toNormalizedProjectionMatrix(_currentProjectionMatrix);\n          toReversedProjectionMatrix(_currentProjectionMatrix);\n          p_uniforms.setValue(_gl, \"projectionMatrix\", _currentProjectionMatrix);\n        } else {\n          p_uniforms.setValue(_gl, \"projectionMatrix\", camera.projectionMatrix);\n        }\n        p_uniforms.setValue(_gl, \"viewMatrix\", camera.matrixWorldInverse);\n        const uCamPos = p_uniforms.map.cameraPosition;\n        if (uCamPos !== void 0) {\n          uCamPos.setValue(_gl, _vector32.setFromMatrixPosition(camera.matrixWorld));\n        }\n        if (capabilities.logarithmicDepthBuffer) {\n          p_uniforms.setValue(\n            _gl,\n            \"logDepthBufFC\",\n            2 / (Math.log(camera.far + 1) / Math.LN2)\n          );\n        }\n        if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\n          p_uniforms.setValue(_gl, \"isOrthographic\", camera.isOrthographicCamera === true);\n        }\n        if (_currentCamera !== camera) {\n          _currentCamera = camera;\n          refreshMaterial = true;\n          refreshLights = true;\n        }\n      }\n      if (object.isSkinnedMesh) {\n        p_uniforms.setOptional(_gl, object, \"bindMatrix\");\n        p_uniforms.setOptional(_gl, object, \"bindMatrixInverse\");\n        const skeleton = object.skeleton;\n        if (skeleton) {\n          if (skeleton.boneTexture === null) skeleton.computeBoneTexture();\n          p_uniforms.setValue(_gl, \"boneTexture\", skeleton.boneTexture, textures);\n        }\n      }\n      if (object.isBatchedMesh) {\n        p_uniforms.setOptional(_gl, object, \"batchingTexture\");\n        p_uniforms.setValue(_gl, \"batchingTexture\", object._matricesTexture, textures);\n        p_uniforms.setOptional(_gl, object, \"batchingIdTexture\");\n        p_uniforms.setValue(_gl, \"batchingIdTexture\", object._indirectTexture, textures);\n        p_uniforms.setOptional(_gl, object, \"batchingColorTexture\");\n        if (object._colorsTexture !== null) {\n          p_uniforms.setValue(_gl, \"batchingColorTexture\", object._colorsTexture, textures);\n        }\n      }\n      const morphAttributes = geometry.morphAttributes;\n      if (morphAttributes.position !== void 0 || morphAttributes.normal !== void 0 || morphAttributes.color !== void 0) {\n        morphtargets.update(object, geometry, program);\n      }\n      if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\n        materialProperties.receiveShadow = object.receiveShadow;\n        p_uniforms.setValue(_gl, \"receiveShadow\", object.receiveShadow);\n      }\n      if (material.isMeshGouraudMaterial && material.envMap !== null) {\n        m_uniforms.envMap.value = envMap;\n        m_uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n      }\n      if (material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null) {\n        m_uniforms.envMapIntensity.value = scene.environmentIntensity;\n      }\n      if (refreshMaterial) {\n        p_uniforms.setValue(_gl, \"toneMappingExposure\", _this.toneMappingExposure);\n        if (materialProperties.needsLights) {\n          markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\n        }\n        if (fog && material.fog === true) {\n          materials.refreshFogUniforms(m_uniforms, fog);\n        }\n        materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[camera.id]);\n        WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures);\n      }\n      if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\n        WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures);\n        material.uniformsNeedUpdate = false;\n      }\n      if (material.isSpriteMaterial) {\n        p_uniforms.setValue(_gl, \"center\", object.center);\n      }\n      p_uniforms.setValue(_gl, \"modelViewMatrix\", object.modelViewMatrix);\n      p_uniforms.setValue(_gl, \"normalMatrix\", object.normalMatrix);\n      p_uniforms.setValue(_gl, \"modelMatrix\", object.matrixWorld);\n      if (material.isShaderMaterial || material.isRawShaderMaterial) {\n        const groups = material.uniformsGroups;\n        for (let i = 0, l = groups.length; i < l; i++) {\n          const group = groups[i];\n          uniformsGroups.update(group, program);\n          uniformsGroups.bind(group, program);\n        }\n      }\n      return program;\n    }\n    function markUniformsLightsNeedsUpdate(uniforms, value) {\n      uniforms.ambientLightColor.needsUpdate = value;\n      uniforms.lightProbe.needsUpdate = value;\n      uniforms.directionalLights.needsUpdate = value;\n      uniforms.directionalLightShadows.needsUpdate = value;\n      uniforms.pointLights.needsUpdate = value;\n      uniforms.pointLightShadows.needsUpdate = value;\n      uniforms.spotLights.needsUpdate = value;\n      uniforms.spotLightShadows.needsUpdate = value;\n      uniforms.rectAreaLights.needsUpdate = value;\n      uniforms.hemisphereLights.needsUpdate = value;\n    }\n    function materialNeedsLights(material) {\n      return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\n    }\n    this.getActiveCubeFace = function() {\n      return _currentActiveCubeFace;\n    };\n    this.getActiveMipmapLevel = function() {\n      return _currentActiveMipmapLevel;\n    };\n    this.getRenderTarget = function() {\n      return _currentRenderTarget;\n    };\n    this.setRenderTargetTextures = function(renderTarget, colorTexture, depthTexture) {\n      properties.get(renderTarget.texture).__webglTexture = colorTexture;\n      properties.get(renderTarget.depthTexture).__webglTexture = depthTexture;\n      const renderTargetProperties = properties.get(renderTarget);\n      renderTargetProperties.__hasExternalTextures = true;\n      renderTargetProperties.__autoAllocateDepthBuffer = depthTexture === void 0;\n      if (!renderTargetProperties.__autoAllocateDepthBuffer) {\n        if (extensions.has(\"WEBGL_multisampled_render_to_texture\") === true) {\n          console.warn(\"THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided\");\n          renderTargetProperties.__useRenderToTexture = false;\n        }\n      }\n    };\n    this.setRenderTargetFramebuffer = function(renderTarget, defaultFramebuffer) {\n      const renderTargetProperties = properties.get(renderTarget);\n      renderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n      renderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === void 0;\n    };\n    this.setRenderTarget = function(renderTarget, activeCubeFace = 0, activeMipmapLevel = 0) {\n      _currentRenderTarget = renderTarget;\n      _currentActiveCubeFace = activeCubeFace;\n      _currentActiveMipmapLevel = activeMipmapLevel;\n      let useDefaultFramebuffer = true;\n      let framebuffer = null;\n      let isCube = false;\n      let isRenderTarget3D = false;\n      if (renderTarget) {\n        const renderTargetProperties = properties.get(renderTarget);\n        if (renderTargetProperties.__useDefaultFramebuffer !== void 0) {\n          state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n          useDefaultFramebuffer = false;\n        } else if (renderTargetProperties.__webglFramebuffer === void 0) {\n          textures.setupRenderTarget(renderTarget);\n        } else if (renderTargetProperties.__hasExternalTextures) {\n          textures.rebindTextures(renderTarget, properties.get(renderTarget.texture).__webglTexture, properties.get(renderTarget.depthTexture).__webglTexture);\n        } else if (renderTarget.depthBuffer) {\n          const depthTexture = renderTarget.depthTexture;\n          if (renderTargetProperties.__boundDepthTexture !== depthTexture) {\n            if (depthTexture !== null && properties.has(depthTexture) && (renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height)) {\n              throw new Error(\"WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.\");\n            }\n            textures.setupDepthRenderbuffer(renderTarget);\n          }\n        }\n        const texture = renderTarget.texture;\n        if (texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n          isRenderTarget3D = true;\n        }\n        const __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\n        if (renderTarget.isWebGLCubeRenderTarget) {\n          if (Array.isArray(__webglFramebuffer[activeCubeFace])) {\n            framebuffer = __webglFramebuffer[activeCubeFace][activeMipmapLevel];\n          } else {\n            framebuffer = __webglFramebuffer[activeCubeFace];\n          }\n          isCube = true;\n        } else if (renderTarget.samples > 0 && textures.useMultisampledRTT(renderTarget) === false) {\n          framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\n        } else {\n          if (Array.isArray(__webglFramebuffer)) {\n            framebuffer = __webglFramebuffer[activeMipmapLevel];\n          } else {\n            framebuffer = __webglFramebuffer;\n          }\n        }\n        _currentViewport.copy(renderTarget.viewport);\n        _currentScissor.copy(renderTarget.scissor);\n        _currentScissorTest = renderTarget.scissorTest;\n      } else {\n        _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\n        _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\n        _currentScissorTest = _scissorTest;\n      }\n      const framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n      if (framebufferBound && useDefaultFramebuffer) {\n        state.drawBuffers(renderTarget, framebuffer);\n      }\n      state.viewport(_currentViewport);\n      state.scissor(_currentScissor);\n      state.setScissorTest(_currentScissorTest);\n      if (isCube) {\n        const textureProperties = properties.get(renderTarget.texture);\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\n      } else if (isRenderTarget3D) {\n        const textureProperties = properties.get(renderTarget.texture);\n        const layer = activeCubeFace || 0;\n        _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer);\n      }\n      _currentMaterialId = -1;\n    };\n    this.readRenderTargetPixels = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n      if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n        console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");\n        return;\n      }\n      let framebuffer = properties.get(renderTarget).__webglFramebuffer;\n      if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) {\n        framebuffer = framebuffer[activeCubeFaceIndex];\n      }\n      if (framebuffer) {\n        state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n        try {\n          const texture = renderTarget.texture;\n          const textureFormat = texture.format;\n          const textureType = texture.type;\n          if (!capabilities.textureFormatReadable(textureFormat)) {\n            console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");\n            return;\n          }\n          if (!capabilities.textureTypeReadable(textureType)) {\n            console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");\n            return;\n          }\n          if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) {\n            _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\n          }\n        } finally {\n          const framebuffer2 = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n          state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer2);\n        }\n      }\n    };\n    this.readRenderTargetPixelsAsync = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n      return __async(this, null, function* () {\n        if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n          throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");\n        }\n        let framebuffer = properties.get(renderTarget).__webglFramebuffer;\n        if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) {\n          framebuffer = framebuffer[activeCubeFaceIndex];\n        }\n        if (framebuffer) {\n          const texture = renderTarget.texture;\n          const textureFormat = texture.format;\n          const textureType = texture.type;\n          if (!capabilities.textureFormatReadable(textureFormat)) {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.\");\n          }\n          if (!capabilities.textureTypeReadable(textureType)) {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.\");\n          }\n          if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n            const glBuffer = _gl.createBuffer();\n            _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer);\n            _gl.bufferData(_gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ);\n            _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), 0);\n            const currFramebuffer = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n            state.bindFramebuffer(_gl.FRAMEBUFFER, currFramebuffer);\n            const sync = _gl.fenceSync(_gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n            _gl.flush();\n            yield probeAsync(_gl, sync, 4);\n            _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer);\n            _gl.getBufferSubData(_gl.PIXEL_PACK_BUFFER, 0, buffer);\n            _gl.deleteBuffer(glBuffer);\n            _gl.deleteSync(sync);\n            return buffer;\n          } else {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.\");\n          }\n        }\n      });\n    };\n    this.copyFramebufferToTexture = function(texture, position = null, level = 0) {\n      if (texture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyFramebufferToTexture function signature has changed.\");\n        position = arguments[0] || null;\n        texture = arguments[1];\n      }\n      const levelScale = Math.pow(2, -level);\n      const width = Math.floor(texture.image.width * levelScale);\n      const height = Math.floor(texture.image.height * levelScale);\n      const x = position !== null ? position.x : 0;\n      const y = position !== null ? position.y : 0;\n      textures.setTexture2D(texture, 0);\n      _gl.copyTexSubImage2D(_gl.TEXTURE_2D, level, 0, 0, x, y, width, height);\n      state.unbindTexture();\n    };\n    this.copyTextureToTexture = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) {\n      if (srcTexture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyTextureToTexture function signature has changed.\");\n        dstPosition = arguments[0] || null;\n        srcTexture = arguments[1];\n        dstTexture = arguments[2];\n        level = arguments[3] || 0;\n        srcRegion = null;\n      }\n      let width, height, minX, minY;\n      let dstX, dstY;\n      if (srcRegion !== null) {\n        width = srcRegion.max.x - srcRegion.min.x;\n        height = srcRegion.max.y - srcRegion.min.y;\n        minX = srcRegion.min.x;\n        minY = srcRegion.min.y;\n      } else {\n        width = srcTexture.image.width;\n        height = srcTexture.image.height;\n        minX = 0;\n        minY = 0;\n      }\n      if (dstPosition !== null) {\n        dstX = dstPosition.x;\n        dstY = dstPosition.y;\n      } else {\n        dstX = 0;\n        dstY = 0;\n      }\n      const glFormat = utils.convert(dstTexture.format);\n      const glType = utils.convert(dstTexture.type);\n      textures.setTexture2D(dstTexture, 0);\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n      const currentUnpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n      const currentUnpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n      const currentUnpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n      const currentUnpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n      const currentUnpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n      const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[level] : srcTexture.image;\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, minX);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, minY);\n      if (srcTexture.isDataTexture) {\n        _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data);\n      } else {\n        if (srcTexture.isCompressedTexture) {\n          _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data);\n        } else {\n          _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image);\n        }\n      }\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, currentUnpackRowLen);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages);\n      if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(_gl.TEXTURE_2D);\n      state.unbindTexture();\n    };\n    this.copyTextureToTexture3D = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) {\n      if (srcTexture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyTextureToTexture3D function signature has changed.\");\n        srcRegion = arguments[0] || null;\n        dstPosition = arguments[1] || null;\n        srcTexture = arguments[2];\n        dstTexture = arguments[3];\n        level = arguments[4] || 0;\n      }\n      let width, height, depth2, minX, minY, minZ;\n      let dstX, dstY, dstZ;\n      const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[level] : srcTexture.image;\n      if (srcRegion !== null) {\n        width = srcRegion.max.x - srcRegion.min.x;\n        height = srcRegion.max.y - srcRegion.min.y;\n        depth2 = srcRegion.max.z - srcRegion.min.z;\n        minX = srcRegion.min.x;\n        minY = srcRegion.min.y;\n        minZ = srcRegion.min.z;\n      } else {\n        width = image.width;\n        height = image.height;\n        depth2 = image.depth;\n        minX = 0;\n        minY = 0;\n        minZ = 0;\n      }\n      if (dstPosition !== null) {\n        dstX = dstPosition.x;\n        dstY = dstPosition.y;\n        dstZ = dstPosition.z;\n      } else {\n        dstX = 0;\n        dstY = 0;\n        dstZ = 0;\n      }\n      const glFormat = utils.convert(dstTexture.format);\n      const glType = utils.convert(dstTexture.type);\n      let glTarget;\n      if (dstTexture.isData3DTexture) {\n        textures.setTexture3D(dstTexture, 0);\n        glTarget = _gl.TEXTURE_3D;\n      } else if (dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture) {\n        textures.setTexture2DArray(dstTexture, 0);\n        glTarget = _gl.TEXTURE_2D_ARRAY;\n      } else {\n        console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");\n        return;\n      }\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n      const currentUnpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n      const currentUnpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n      const currentUnpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n      const currentUnpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n      const currentUnpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, minX);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, minY);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, minZ);\n      if (srcTexture.isDataTexture || srcTexture.isData3DTexture) {\n        _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image.data);\n      } else {\n        if (dstTexture.isCompressedArrayTexture) {\n          _gl.compressedTexSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, image.data);\n        } else {\n          _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image);\n        }\n      }\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, currentUnpackRowLen);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages);\n      if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(glTarget);\n      state.unbindTexture();\n    };\n    this.initRenderTarget = function(target) {\n      if (properties.get(target).__webglFramebuffer === void 0) {\n        textures.setupRenderTarget(target);\n      }\n    };\n    this.initTexture = function(texture) {\n      if (texture.isCubeTexture) {\n        textures.setTextureCube(texture, 0);\n      } else if (texture.isData3DTexture) {\n        textures.setTexture3D(texture, 0);\n      } else if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n        textures.setTexture2DArray(texture, 0);\n      } else {\n        textures.setTexture2D(texture, 0);\n      }\n      state.unbindTexture();\n    };\n    this.resetState = function() {\n      _currentActiveCubeFace = 0;\n      _currentActiveMipmapLevel = 0;\n      _currentRenderTarget = null;\n      state.reset();\n      bindingStates.reset();\n    };\n    if (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n      __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\", { detail: this }));\n    }\n  }\n  get coordinateSystem() {\n    return WebGLCoordinateSystem;\n  }\n  get outputColorSpace() {\n    return this._outputColorSpace;\n  }\n  set outputColorSpace(colorSpace) {\n    this._outputColorSpace = colorSpace;\n    const gl = this.getContext();\n    gl.drawingBufferColorSpace = colorSpace === DisplayP3ColorSpace ? \"display-p3\" : \"srgb\";\n    gl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? \"display-p3\" : \"srgb\";\n  }\n};\nvar FogExp2 = class _FogExp2 {\n  constructor(color, density = 25e-5) {\n    this.isFogExp2 = true;\n    this.name = \"\";\n    this.color = new Color(color);\n    this.density = density;\n  }\n  clone() {\n    return new _FogExp2(this.color, this.density);\n  }\n  toJSON() {\n    return {\n      type: \"FogExp2\",\n      name: this.name,\n      color: this.color.getHex(),\n      density: this.density\n    };\n  }\n};\nvar Fog = class _Fog {\n  constructor(color, near = 1, far = 1e3) {\n    this.isFog = true;\n    this.name = \"\";\n    this.color = new Color(color);\n    this.near = near;\n    this.far = far;\n  }\n  clone() {\n    return new _Fog(this.color, this.near, this.far);\n  }\n  toJSON() {\n    return {\n      type: \"Fog\",\n      name: this.name,\n      color: this.color.getHex(),\n      near: this.near,\n      far: this.far\n    };\n  }\n};\nvar Scene = class extends Object3D {\n  constructor() {\n    super();\n    this.isScene = true;\n    this.type = \"Scene\";\n    this.background = null;\n    this.environment = null;\n    this.fog = null;\n    this.backgroundBlurriness = 0;\n    this.backgroundIntensity = 1;\n    this.backgroundRotation = new Euler();\n    this.environmentIntensity = 1;\n    this.environmentRotation = new Euler();\n    this.overrideMaterial = null;\n    if (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n      __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\", { detail: this }));\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.background !== null) this.background = source.background.clone();\n    if (source.environment !== null) this.environment = source.environment.clone();\n    if (source.fog !== null) this.fog = source.fog.clone();\n    this.backgroundBlurriness = source.backgroundBlurriness;\n    this.backgroundIntensity = source.backgroundIntensity;\n    this.backgroundRotation.copy(source.backgroundRotation);\n    this.environmentIntensity = source.environmentIntensity;\n    this.environmentRotation.copy(source.environmentRotation);\n    if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.fog !== null) data.object.fog = this.fog.toJSON();\n    if (this.backgroundBlurriness > 0) data.object.backgroundBlurriness = this.backgroundBlurriness;\n    if (this.backgroundIntensity !== 1) data.object.backgroundIntensity = this.backgroundIntensity;\n    data.object.backgroundRotation = this.backgroundRotation.toArray();\n    if (this.environmentIntensity !== 1) data.object.environmentIntensity = this.environmentIntensity;\n    data.object.environmentRotation = this.environmentRotation.toArray();\n    return data;\n  }\n};\nvar InterleavedBuffer = class {\n  constructor(array, stride) {\n    this.isInterleavedBuffer = true;\n    this.array = array;\n    this.stride = stride;\n    this.count = array !== void 0 ? array.length / stride : 0;\n    this.usage = StaticDrawUsage;\n    this.updateRanges = [];\n    this.version = 0;\n    this.uuid = generateUUID();\n  }\n  onUploadCallback() {\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  addUpdateRange(start, count) {\n    this.updateRanges.push({ start, count });\n  }\n  clearUpdateRanges() {\n    this.updateRanges.length = 0;\n  }\n  copy(source) {\n    this.array = new source.array.constructor(source.array);\n    this.count = source.count;\n    this.stride = source.stride;\n    this.usage = source.usage;\n    return this;\n  }\n  copyAt(index1, attribute, index2) {\n    index1 *= this.stride;\n    index2 *= attribute.stride;\n    for (let i = 0, l = this.stride; i < l; i++) {\n      this.array[index1 + i] = attribute.array[index2 + i];\n    }\n    return this;\n  }\n  set(value, offset = 0) {\n    this.array.set(value, offset);\n    return this;\n  }\n  clone(data) {\n    if (data.arrayBuffers === void 0) {\n      data.arrayBuffers = {};\n    }\n    if (this.array.buffer._uuid === void 0) {\n      this.array.buffer._uuid = generateUUID();\n    }\n    if (data.arrayBuffers[this.array.buffer._uuid] === void 0) {\n      data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer;\n    }\n    const array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);\n    const ib = new this.constructor(array, this.stride);\n    ib.setUsage(this.usage);\n    return ib;\n  }\n  onUpload(callback) {\n    this.onUploadCallback = callback;\n    return this;\n  }\n  toJSON(data) {\n    if (data.arrayBuffers === void 0) {\n      data.arrayBuffers = {};\n    }\n    if (this.array.buffer._uuid === void 0) {\n      this.array.buffer._uuid = generateUUID();\n    }\n    if (data.arrayBuffers[this.array.buffer._uuid] === void 0) {\n      data.arrayBuffers[this.array.buffer._uuid] = Array.from(new Uint32Array(this.array.buffer));\n    }\n    return {\n      uuid: this.uuid,\n      buffer: this.array.buffer._uuid,\n      type: this.array.constructor.name,\n      stride: this.stride\n    };\n  }\n};\nvar _vector$6 = /* @__PURE__ */ new Vector3();\nvar InterleavedBufferAttribute = class _InterleavedBufferAttribute {\n  constructor(interleavedBuffer, itemSize, offset, normalized = false) {\n    this.isInterleavedBufferAttribute = true;\n    this.name = \"\";\n    this.data = interleavedBuffer;\n    this.itemSize = itemSize;\n    this.offset = offset;\n    this.normalized = normalized;\n  }\n  get count() {\n    return this.data.count;\n  }\n  get array() {\n    return this.data.array;\n  }\n  set needsUpdate(value) {\n    this.data.needsUpdate = value;\n  }\n  applyMatrix4(m) {\n    for (let i = 0, l = this.data.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.applyMatrix4(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  applyNormalMatrix(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.applyNormalMatrix(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  transformDirection(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.transformDirection(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  getComponent(index, component) {\n    let value = this.array[index * this.data.stride + this.offset + component];\n    if (this.normalized) value = denormalize(value, this.array);\n    return value;\n  }\n  setComponent(index, component, value) {\n    if (this.normalized) value = normalize(value, this.array);\n    this.data.array[index * this.data.stride + this.offset + component] = value;\n    return this;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.data.array[index * this.data.stride + this.offset] = x;\n    return this;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.data.array[index * this.data.stride + this.offset + 1] = y;\n    return this;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.data.array[index * this.data.stride + this.offset + 2] = z;\n    return this;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.data.array[index * this.data.stride + this.offset + 3] = w;\n    return this;\n  }\n  getX(index) {\n    let x = this.data.array[index * this.data.stride + this.offset];\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  getY(index) {\n    let y = this.data.array[index * this.data.stride + this.offset + 1];\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  getZ(index) {\n    let z = this.data.array[index * this.data.stride + this.offset + 2];\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  getW(index) {\n    let w = this.data.array[index * this.data.stride + this.offset + 3];\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setXY(index, x, y) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    this.data.array[index + 2] = z;\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    this.data.array[index + 2] = z;\n    this.data.array[index + 3] = w;\n    return this;\n  }\n  clone(data) {\n    if (data === void 0) {\n      console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.\");\n      const array = [];\n      for (let i = 0; i < this.count; i++) {\n        const index = i * this.data.stride + this.offset;\n        for (let j = 0; j < this.itemSize; j++) {\n          array.push(this.data.array[index + j]);\n        }\n      }\n      return new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized);\n    } else {\n      if (data.interleavedBuffers === void 0) {\n        data.interleavedBuffers = {};\n      }\n      if (data.interleavedBuffers[this.data.uuid] === void 0) {\n        data.interleavedBuffers[this.data.uuid] = this.data.clone(data);\n      }\n      return new _InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized);\n    }\n  }\n  toJSON(data) {\n    if (data === void 0) {\n      console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.\");\n      const array = [];\n      for (let i = 0; i < this.count; i++) {\n        const index = i * this.data.stride + this.offset;\n        for (let j = 0; j < this.itemSize; j++) {\n          array.push(this.data.array[index + j]);\n        }\n      }\n      return {\n        itemSize: this.itemSize,\n        type: this.array.constructor.name,\n        array,\n        normalized: this.normalized\n      };\n    } else {\n      if (data.interleavedBuffers === void 0) {\n        data.interleavedBuffers = {};\n      }\n      if (data.interleavedBuffers[this.data.uuid] === void 0) {\n        data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data);\n      }\n      return {\n        isInterleavedBufferAttribute: true,\n        itemSize: this.itemSize,\n        data: this.data.uuid,\n        offset: this.offset,\n        normalized: this.normalized\n      };\n    }\n  }\n};\nvar SpriteMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isSpriteMaterial = true;\n    this.type = \"SpriteMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.alphaMap = null;\n    this.rotation = 0;\n    this.sizeAttenuation = true;\n    this.transparent = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.rotation = source.rotation;\n    this.sizeAttenuation = source.sizeAttenuation;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _geometry;\nvar _intersectPoint = /* @__PURE__ */ new Vector3();\nvar _worldScale = /* @__PURE__ */ new Vector3();\nvar _mvPosition = /* @__PURE__ */ new Vector3();\nvar _alignedPosition = /* @__PURE__ */ new Vector2();\nvar _rotatedPosition = /* @__PURE__ */ new Vector2();\nvar _viewWorldMatrix = /* @__PURE__ */ new Matrix4();\nvar _vA = /* @__PURE__ */ new Vector3();\nvar _vB = /* @__PURE__ */ new Vector3();\nvar _vC = /* @__PURE__ */ new Vector3();\nvar _uvA = /* @__PURE__ */ new Vector2();\nvar _uvB = /* @__PURE__ */ new Vector2();\nvar _uvC = /* @__PURE__ */ new Vector2();\nvar Sprite = class extends Object3D {\n  constructor(material = new SpriteMaterial()) {\n    super();\n    this.isSprite = true;\n    this.type = \"Sprite\";\n    if (_geometry === void 0) {\n      _geometry = new BufferGeometry();\n      const float32Array = new Float32Array([\n        -0.5,\n        -0.5,\n        0,\n        0,\n        0,\n        0.5,\n        -0.5,\n        0,\n        1,\n        0,\n        0.5,\n        0.5,\n        0,\n        1,\n        1,\n        -0.5,\n        0.5,\n        0,\n        0,\n        1\n      ]);\n      const interleavedBuffer = new InterleavedBuffer(float32Array, 5);\n      _geometry.setIndex([0, 1, 2, 0, 2, 3]);\n      _geometry.setAttribute(\"position\", new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n      _geometry.setAttribute(\"uv\", new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n    }\n    this.geometry = _geometry;\n    this.material = material;\n    this.center = new Vector2(0.5, 0.5);\n  }\n  raycast(raycaster, intersects2) {\n    if (raycaster.camera === null) {\n      console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\n    }\n    _worldScale.setFromMatrixScale(this.matrixWorld);\n    _viewWorldMatrix.copy(raycaster.camera.matrixWorld);\n    this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\n    _mvPosition.setFromMatrixPosition(this.modelViewMatrix);\n    if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\n      _worldScale.multiplyScalar(-_mvPosition.z);\n    }\n    const rotation = this.material.rotation;\n    let sin, cos;\n    if (rotation !== 0) {\n      cos = Math.cos(rotation);\n      sin = Math.sin(rotation);\n    }\n    const center = this.center;\n    transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    _uvA.set(0, 0);\n    _uvB.set(1, 0);\n    _uvC.set(1, 1);\n    let intersect2 = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint);\n    if (intersect2 === null) {\n      transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n      _uvB.set(0, 1);\n      intersect2 = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint);\n      if (intersect2 === null) {\n        return;\n      }\n    }\n    const distance = raycaster.ray.origin.distanceTo(_intersectPoint);\n    if (distance < raycaster.near || distance > raycaster.far) return;\n    intersects2.push({\n      distance,\n      point: _intersectPoint.clone(),\n      uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n      face: null,\n      object: this\n    });\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.center !== void 0) this.center.copy(source.center);\n    this.material = source.material;\n    return this;\n  }\n};\nfunction transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\n  _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale);\n  if (sin !== void 0) {\n    _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\n    _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\n  } else {\n    _rotatedPosition.copy(_alignedPosition);\n  }\n  vertexPosition.copy(mvPosition);\n  vertexPosition.x += _rotatedPosition.x;\n  vertexPosition.y += _rotatedPosition.y;\n  vertexPosition.applyMatrix4(_viewWorldMatrix);\n}\nvar _v1$2 = /* @__PURE__ */ new Vector3();\nvar _v2$1 = /* @__PURE__ */ new Vector3();\nvar LOD = class extends Object3D {\n  constructor() {\n    super();\n    this._currentLevel = 0;\n    this.type = \"LOD\";\n    Object.defineProperties(this, {\n      levels: {\n        enumerable: true,\n        value: []\n      },\n      isLOD: {\n        value: true\n      }\n    });\n    this.autoUpdate = true;\n  }\n  copy(source) {\n    super.copy(source, false);\n    const levels = source.levels;\n    for (let i = 0, l = levels.length; i < l; i++) {\n      const level = levels[i];\n      this.addLevel(level.object.clone(), level.distance, level.hysteresis);\n    }\n    this.autoUpdate = source.autoUpdate;\n    return this;\n  }\n  addLevel(object, distance = 0, hysteresis = 0) {\n    distance = Math.abs(distance);\n    const levels = this.levels;\n    let l;\n    for (l = 0; l < levels.length; l++) {\n      if (distance < levels[l].distance) {\n        break;\n      }\n    }\n    levels.splice(l, 0, { distance, hysteresis, object });\n    this.add(object);\n    return this;\n  }\n  removeLevel(distance) {\n    const levels = this.levels;\n    for (let i = 0; i < levels.length; i++) {\n      if (levels[i].distance === distance) {\n        const removedElements = levels.splice(i, 1);\n        this.remove(removedElements[0].object);\n        return true;\n      }\n    }\n    return false;\n  }\n  getCurrentLevel() {\n    return this._currentLevel;\n  }\n  getObjectForDistance(distance) {\n    const levels = this.levels;\n    if (levels.length > 0) {\n      let i, l;\n      for (i = 1, l = levels.length; i < l; i++) {\n        let levelDistance = levels[i].distance;\n        if (levels[i].object.visible) {\n          levelDistance -= levelDistance * levels[i].hysteresis;\n        }\n        if (distance < levelDistance) {\n          break;\n        }\n      }\n      return levels[i - 1].object;\n    }\n    return null;\n  }\n  raycast(raycaster, intersects2) {\n    const levels = this.levels;\n    if (levels.length > 0) {\n      _v1$2.setFromMatrixPosition(this.matrixWorld);\n      const distance = raycaster.ray.origin.distanceTo(_v1$2);\n      this.getObjectForDistance(distance).raycast(raycaster, intersects2);\n    }\n  }\n  update(camera) {\n    const levels = this.levels;\n    if (levels.length > 1) {\n      _v1$2.setFromMatrixPosition(camera.matrixWorld);\n      _v2$1.setFromMatrixPosition(this.matrixWorld);\n      const distance = _v1$2.distanceTo(_v2$1) / camera.zoom;\n      levels[0].object.visible = true;\n      let i, l;\n      for (i = 1, l = levels.length; i < l; i++) {\n        let levelDistance = levels[i].distance;\n        if (levels[i].object.visible) {\n          levelDistance -= levelDistance * levels[i].hysteresis;\n        }\n        if (distance >= levelDistance) {\n          levels[i - 1].object.visible = false;\n          levels[i].object.visible = true;\n        } else {\n          break;\n        }\n      }\n      this._currentLevel = i - 1;\n      for (; i < l; i++) {\n        levels[i].object.visible = false;\n      }\n    }\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.autoUpdate === false) data.object.autoUpdate = false;\n    data.object.levels = [];\n    const levels = this.levels;\n    for (let i = 0, l = levels.length; i < l; i++) {\n      const level = levels[i];\n      data.object.levels.push({\n        object: level.object.uuid,\n        distance: level.distance,\n        hysteresis: level.hysteresis\n      });\n    }\n    return data;\n  }\n};\nvar _basePosition = /* @__PURE__ */ new Vector3();\nvar _skinIndex = /* @__PURE__ */ new Vector4();\nvar _skinWeight = /* @__PURE__ */ new Vector4();\nvar _vector3 = /* @__PURE__ */ new Vector3();\nvar _matrix4 = /* @__PURE__ */ new Matrix4();\nvar _vertex = /* @__PURE__ */ new Vector3();\nvar _sphere$4 = /* @__PURE__ */ new Sphere();\nvar _inverseMatrix$2 = /* @__PURE__ */ new Matrix4();\nvar _ray$2 = /* @__PURE__ */ new Ray();\nvar SkinnedMesh = class extends Mesh {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isSkinnedMesh = true;\n    this.type = \"SkinnedMesh\";\n    this.bindMode = AttachedBindMode;\n    this.bindMatrix = new Matrix4();\n    this.bindMatrixInverse = new Matrix4();\n    this.boundingBox = null;\n    this.boundingSphere = null;\n  }\n  computeBoundingBox() {\n    const geometry = this.geometry;\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    this.boundingBox.makeEmpty();\n    const positionAttribute = geometry.getAttribute(\"position\");\n    for (let i = 0; i < positionAttribute.count; i++) {\n      this.getVertexPosition(i, _vertex);\n      this.boundingBox.expandByPoint(_vertex);\n    }\n  }\n  computeBoundingSphere() {\n    const geometry = this.geometry;\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    this.boundingSphere.makeEmpty();\n    const positionAttribute = geometry.getAttribute(\"position\");\n    for (let i = 0; i < positionAttribute.count; i++) {\n      this.getVertexPosition(i, _vertex);\n      this.boundingSphere.expandByPoint(_vertex);\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.bindMode = source.bindMode;\n    this.bindMatrix.copy(source.bindMatrix);\n    this.bindMatrixInverse.copy(source.bindMatrixInverse);\n    this.skeleton = source.skeleton;\n    if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone();\n    if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone();\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const material = this.material;\n    const matrixWorld = this.matrixWorld;\n    if (material === void 0) return;\n    if (this.boundingSphere === null) this.computeBoundingSphere();\n    _sphere$4.copy(this.boundingSphere);\n    _sphere$4.applyMatrix4(matrixWorld);\n    if (raycaster.ray.intersectsSphere(_sphere$4) === false) return;\n    _inverseMatrix$2.copy(matrixWorld).invert();\n    _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2);\n    if (this.boundingBox !== null) {\n      if (_ray$2.intersectsBox(this.boundingBox) === false) return;\n    }\n    this._computeIntersections(raycaster, intersects2, _ray$2);\n  }\n  getVertexPosition(index, target) {\n    super.getVertexPosition(index, target);\n    this.applyBoneTransform(index, target);\n    return target;\n  }\n  bind(skeleton, bindMatrix) {\n    this.skeleton = skeleton;\n    if (bindMatrix === void 0) {\n      this.updateMatrixWorld(true);\n      this.skeleton.calculateInverses();\n      bindMatrix = this.matrixWorld;\n    }\n    this.bindMatrix.copy(bindMatrix);\n    this.bindMatrixInverse.copy(bindMatrix).invert();\n  }\n  pose() {\n    this.skeleton.pose();\n  }\n  normalizeSkinWeights() {\n    const vector = new Vector4();\n    const skinWeight = this.geometry.attributes.skinWeight;\n    for (let i = 0, l = skinWeight.count; i < l; i++) {\n      vector.fromBufferAttribute(skinWeight, i);\n      const scale = 1 / vector.manhattanLength();\n      if (scale !== Infinity) {\n        vector.multiplyScalar(scale);\n      } else {\n        vector.set(1, 0, 0, 0);\n      }\n      skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\n    }\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    if (this.bindMode === AttachedBindMode) {\n      this.bindMatrixInverse.copy(this.matrixWorld).invert();\n    } else if (this.bindMode === DetachedBindMode) {\n      this.bindMatrixInverse.copy(this.bindMatrix).invert();\n    } else {\n      console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \" + this.bindMode);\n    }\n  }\n  applyBoneTransform(index, vector) {\n    const skeleton = this.skeleton;\n    const geometry = this.geometry;\n    _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\n    _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\n    _basePosition.copy(vector).applyMatrix4(this.bindMatrix);\n    vector.set(0, 0, 0);\n    for (let i = 0; i < 4; i++) {\n      const weight = _skinWeight.getComponent(i);\n      if (weight !== 0) {\n        const boneIndex = _skinIndex.getComponent(i);\n        _matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\n        vector.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4), weight);\n      }\n    }\n    return vector.applyMatrix4(this.bindMatrixInverse);\n  }\n};\nvar Bone = class extends Object3D {\n  constructor() {\n    super();\n    this.isBone = true;\n    this.type = \"Bone\";\n  }\n};\nvar DataTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace) {\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isDataTexture = true;\n    this.image = { data, width, height };\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n  }\n};\nvar _offsetMatrix = /* @__PURE__ */ new Matrix4();\nvar _identityMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar Skeleton = class _Skeleton {\n  constructor(bones = [], boneInverses = []) {\n    this.uuid = generateUUID();\n    this.bones = bones.slice(0);\n    this.boneInverses = boneInverses;\n    this.boneMatrices = null;\n    this.boneTexture = null;\n    this.init();\n  }\n  init() {\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    this.boneMatrices = new Float32Array(bones.length * 16);\n    if (boneInverses.length === 0) {\n      this.calculateInverses();\n    } else {\n      if (bones.length !== boneInverses.length) {\n        console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\");\n        this.boneInverses = [];\n        for (let i = 0, il = this.bones.length; i < il; i++) {\n          this.boneInverses.push(new Matrix4());\n        }\n      }\n    }\n  }\n  calculateInverses() {\n    this.boneInverses.length = 0;\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const inverse = new Matrix4();\n      if (this.bones[i]) {\n        inverse.copy(this.bones[i].matrixWorld).invert();\n      }\n      this.boneInverses.push(inverse);\n    }\n  }\n  pose() {\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone) {\n        bone.matrixWorld.copy(this.boneInverses[i]).invert();\n      }\n    }\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone) {\n        if (bone.parent && bone.parent.isBone) {\n          bone.matrix.copy(bone.parent.matrixWorld).invert();\n          bone.matrix.multiply(bone.matrixWorld);\n        } else {\n          bone.matrix.copy(bone.matrixWorld);\n        }\n        bone.matrix.decompose(bone.position, bone.quaternion, bone.scale);\n      }\n    }\n  }\n  update() {\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    const boneMatrices = this.boneMatrices;\n    const boneTexture = this.boneTexture;\n    for (let i = 0, il = bones.length; i < il; i++) {\n      const matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix$1;\n      _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\n      _offsetMatrix.toArray(boneMatrices, i * 16);\n    }\n    if (boneTexture !== null) {\n      boneTexture.needsUpdate = true;\n    }\n  }\n  clone() {\n    return new _Skeleton(this.bones, this.boneInverses);\n  }\n  computeBoneTexture() {\n    let size = Math.sqrt(this.bones.length * 4);\n    size = Math.ceil(size / 4) * 4;\n    size = Math.max(size, 4);\n    const boneMatrices = new Float32Array(size * size * 4);\n    boneMatrices.set(this.boneMatrices);\n    const boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType);\n    boneTexture.needsUpdate = true;\n    this.boneMatrices = boneMatrices;\n    this.boneTexture = boneTexture;\n    return this;\n  }\n  getBoneByName(name) {\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone.name === name) {\n        return bone;\n      }\n    }\n    return void 0;\n  }\n  dispose() {\n    if (this.boneTexture !== null) {\n      this.boneTexture.dispose();\n      this.boneTexture = null;\n    }\n  }\n  fromJSON(json, bones) {\n    this.uuid = json.uuid;\n    for (let i = 0, l = json.bones.length; i < l; i++) {\n      const uuid = json.bones[i];\n      let bone = bones[uuid];\n      if (bone === void 0) {\n        console.warn(\"THREE.Skeleton: No bone found with UUID:\", uuid);\n        bone = new Bone();\n      }\n      this.bones.push(bone);\n      this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i]));\n    }\n    this.init();\n    return this;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Skeleton\",\n        generator: \"Skeleton.toJSON\"\n      },\n      bones: [],\n      boneInverses: []\n    };\n    data.uuid = this.uuid;\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    for (let i = 0, l = bones.length; i < l; i++) {\n      const bone = bones[i];\n      data.bones.push(bone.uuid);\n      const boneInverse = boneInverses[i];\n      data.boneInverses.push(boneInverse.toArray());\n    }\n    return data;\n  }\n};\nvar InstancedBufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized, meshPerAttribute = 1) {\n    super(array, itemSize, normalized);\n    this.isInstancedBufferAttribute = true;\n    this.meshPerAttribute = meshPerAttribute;\n  }\n  copy(source) {\n    super.copy(source);\n    this.meshPerAttribute = source.meshPerAttribute;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.meshPerAttribute = this.meshPerAttribute;\n    data.isInstancedBufferAttribute = true;\n    return data;\n  }\n};\nvar _instanceLocalMatrix = /* @__PURE__ */ new Matrix4();\nvar _instanceWorldMatrix = /* @__PURE__ */ new Matrix4();\nvar _instanceIntersects = [];\nvar _box3 = /* @__PURE__ */ new Box3();\nvar _identity = /* @__PURE__ */ new Matrix4();\nvar _mesh$1 = /* @__PURE__ */ new Mesh();\nvar _sphere$3 = /* @__PURE__ */ new Sphere();\nvar InstancedMesh = class extends Mesh {\n  constructor(geometry, material, count) {\n    super(geometry, material);\n    this.isInstancedMesh = true;\n    this.instanceMatrix = new InstancedBufferAttribute(new Float32Array(count * 16), 16);\n    this.instanceColor = null;\n    this.morphTexture = null;\n    this.count = count;\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    for (let i = 0; i < count; i++) {\n      this.setMatrixAt(i, _identity);\n    }\n  }\n  computeBoundingBox() {\n    const geometry = this.geometry;\n    const count = this.count;\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    if (geometry.boundingBox === null) {\n      geometry.computeBoundingBox();\n    }\n    this.boundingBox.makeEmpty();\n    for (let i = 0; i < count; i++) {\n      this.getMatrixAt(i, _instanceLocalMatrix);\n      _box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix);\n      this.boundingBox.union(_box3);\n    }\n  }\n  computeBoundingSphere() {\n    const geometry = this.geometry;\n    const count = this.count;\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    if (geometry.boundingSphere === null) {\n      geometry.computeBoundingSphere();\n    }\n    this.boundingSphere.makeEmpty();\n    for (let i = 0; i < count; i++) {\n      this.getMatrixAt(i, _instanceLocalMatrix);\n      _sphere$3.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix);\n      this.boundingSphere.union(_sphere$3);\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.instanceMatrix.copy(source.instanceMatrix);\n    if (source.morphTexture !== null) this.morphTexture = source.morphTexture.clone();\n    if (source.instanceColor !== null) this.instanceColor = source.instanceColor.clone();\n    this.count = source.count;\n    if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone();\n    if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone();\n    return this;\n  }\n  getColorAt(index, color) {\n    color.fromArray(this.instanceColor.array, index * 3);\n  }\n  getMatrixAt(index, matrix) {\n    matrix.fromArray(this.instanceMatrix.array, index * 16);\n  }\n  getMorphAt(index, object) {\n    const objectInfluences = object.morphTargetInfluences;\n    const array = this.morphTexture.source.data.data;\n    const len = objectInfluences.length + 1;\n    const dataIndex = index * len + 1;\n    for (let i = 0; i < objectInfluences.length; i++) {\n      objectInfluences[i] = array[dataIndex + i];\n    }\n  }\n  raycast(raycaster, intersects2) {\n    const matrixWorld = this.matrixWorld;\n    const raycastTimes = this.count;\n    _mesh$1.geometry = this.geometry;\n    _mesh$1.material = this.material;\n    if (_mesh$1.material === void 0) return;\n    if (this.boundingSphere === null) this.computeBoundingSphere();\n    _sphere$3.copy(this.boundingSphere);\n    _sphere$3.applyMatrix4(matrixWorld);\n    if (raycaster.ray.intersectsSphere(_sphere$3) === false) return;\n    for (let instanceId = 0; instanceId < raycastTimes; instanceId++) {\n      this.getMatrixAt(instanceId, _instanceLocalMatrix);\n      _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n      _mesh$1.matrixWorld = _instanceWorldMatrix;\n      _mesh$1.raycast(raycaster, _instanceIntersects);\n      for (let i = 0, l = _instanceIntersects.length; i < l; i++) {\n        const intersect2 = _instanceIntersects[i];\n        intersect2.instanceId = instanceId;\n        intersect2.object = this;\n        intersects2.push(intersect2);\n      }\n      _instanceIntersects.length = 0;\n    }\n  }\n  setColorAt(index, color) {\n    if (this.instanceColor === null) {\n      this.instanceColor = new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count * 3).fill(1), 3);\n    }\n    color.toArray(this.instanceColor.array, index * 3);\n  }\n  setMatrixAt(index, matrix) {\n    matrix.toArray(this.instanceMatrix.array, index * 16);\n  }\n  setMorphAt(index, object) {\n    const objectInfluences = object.morphTargetInfluences;\n    const len = objectInfluences.length + 1;\n    if (this.morphTexture === null) {\n      this.morphTexture = new DataTexture(new Float32Array(len * this.count), len, this.count, RedFormat, FloatType);\n    }\n    const array = this.morphTexture.source.data.data;\n    let morphInfluencesSum = 0;\n    for (let i = 0; i < objectInfluences.length; i++) {\n      morphInfluencesSum += objectInfluences[i];\n    }\n    const morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n    const dataIndex = len * index;\n    array[dataIndex] = morphBaseInfluence;\n    array.set(objectInfluences, dataIndex + 1);\n  }\n  updateMorphTargets() {\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n    if (this.morphTexture !== null) {\n      this.morphTexture.dispose();\n      this.morphTexture = null;\n    }\n    return this;\n  }\n};\nfunction sortOpaque(a, b) {\n  return a.z - b.z;\n}\nfunction sortTransparent(a, b) {\n  return b.z - a.z;\n}\nvar MultiDrawRenderList = class {\n  constructor() {\n    this.index = 0;\n    this.pool = [];\n    this.list = [];\n  }\n  push(drawRange, z, index) {\n    const pool = this.pool;\n    const list = this.list;\n    if (this.index >= pool.length) {\n      pool.push({\n        start: -1,\n        count: -1,\n        z: -1,\n        index: -1\n      });\n    }\n    const item = pool[this.index];\n    list.push(item);\n    this.index++;\n    item.start = drawRange.start;\n    item.count = drawRange.count;\n    item.z = z;\n    item.index = index;\n  }\n  reset() {\n    this.list.length = 0;\n    this.index = 0;\n  }\n};\nvar _matrix$1 = /* @__PURE__ */ new Matrix4();\nvar _invMatrixWorld = /* @__PURE__ */ new Matrix4();\nvar _identityMatrix = /* @__PURE__ */ new Matrix4();\nvar _whiteColor = /* @__PURE__ */ new Color(1, 1, 1);\nvar _projScreenMatrix$2 = /* @__PURE__ */ new Matrix4();\nvar _frustum = /* @__PURE__ */ new Frustum();\nvar _box$1 = /* @__PURE__ */ new Box3();\nvar _sphere$2 = /* @__PURE__ */ new Sphere();\nvar _vector$5 = /* @__PURE__ */ new Vector3();\nvar _forward = /* @__PURE__ */ new Vector3();\nvar _temp = /* @__PURE__ */ new Vector3();\nvar _renderList = /* @__PURE__ */ new MultiDrawRenderList();\nvar _mesh = /* @__PURE__ */ new Mesh();\nvar _batchIntersects = [];\nfunction copyAttributeData(src, target, targetOffset = 0) {\n  const itemSize = target.itemSize;\n  if (src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor) {\n    const vertexCount = src.count;\n    for (let i = 0; i < vertexCount; i++) {\n      for (let c = 0; c < itemSize; c++) {\n        target.setComponent(i + targetOffset, c, src.getComponent(i, c));\n      }\n    }\n  } else {\n    target.array.set(src.array, targetOffset * itemSize);\n  }\n  target.needsUpdate = true;\n}\nvar BatchedMesh = class extends Mesh {\n  get maxInstanceCount() {\n    return this._maxInstanceCount;\n  }\n  constructor(maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material) {\n    super(new BufferGeometry(), material);\n    this.isBatchedMesh = true;\n    this.perObjectFrustumCulled = true;\n    this.sortObjects = true;\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    this.customSort = null;\n    this._drawInfo = [];\n    this._availableInstanceIds = [];\n    this._drawRanges = [];\n    this._reservedRanges = [];\n    this._bounds = [];\n    this._maxInstanceCount = maxInstanceCount;\n    this._maxVertexCount = maxVertexCount;\n    this._maxIndexCount = maxIndexCount;\n    this._geometryInitialized = false;\n    this._geometryCount = 0;\n    this._multiDrawCounts = new Int32Array(maxInstanceCount);\n    this._multiDrawStarts = new Int32Array(maxInstanceCount);\n    this._multiDrawCount = 0;\n    this._multiDrawInstances = null;\n    this._visibilityChanged = true;\n    this._matricesTexture = null;\n    this._indirectTexture = null;\n    this._colorsTexture = null;\n    this._initMatricesTexture();\n    this._initIndirectTexture();\n  }\n  _initMatricesTexture() {\n    let size = Math.sqrt(this._maxInstanceCount * 4);\n    size = Math.ceil(size / 4) * 4;\n    size = Math.max(size, 4);\n    const matricesArray = new Float32Array(size * size * 4);\n    const matricesTexture = new DataTexture(matricesArray, size, size, RGBAFormat, FloatType);\n    this._matricesTexture = matricesTexture;\n  }\n  _initIndirectTexture() {\n    let size = Math.sqrt(this._maxInstanceCount);\n    size = Math.ceil(size);\n    const indirectArray = new Uint32Array(size * size);\n    const indirectTexture = new DataTexture(indirectArray, size, size, RedIntegerFormat, UnsignedIntType);\n    this._indirectTexture = indirectTexture;\n  }\n  _initColorsTexture() {\n    let size = Math.sqrt(this._maxInstanceCount);\n    size = Math.ceil(size);\n    const colorsArray = new Float32Array(size * size * 4).fill(1);\n    const colorsTexture = new DataTexture(colorsArray, size, size, RGBAFormat, FloatType);\n    colorsTexture.colorSpace = ColorManagement.workingColorSpace;\n    this._colorsTexture = colorsTexture;\n  }\n  _initializeGeometry(reference) {\n    const geometry = this.geometry;\n    const maxVertexCount = this._maxVertexCount;\n    const maxIndexCount = this._maxIndexCount;\n    if (this._geometryInitialized === false) {\n      for (const attributeName in reference.attributes) {\n        const srcAttribute = reference.getAttribute(attributeName);\n        const { array, itemSize, normalized } = srcAttribute;\n        const dstArray = new array.constructor(maxVertexCount * itemSize);\n        const dstAttribute = new BufferAttribute(dstArray, itemSize, normalized);\n        geometry.setAttribute(attributeName, dstAttribute);\n      }\n      if (reference.getIndex() !== null) {\n        const indexArray = maxVertexCount > 65535 ? new Uint32Array(maxIndexCount) : new Uint16Array(maxIndexCount);\n        geometry.setIndex(new BufferAttribute(indexArray, 1));\n      }\n      this._geometryInitialized = true;\n    }\n  }\n  // Make sure the geometry is compatible with the existing combined geometry attributes\n  _validateGeometry(geometry) {\n    const batchGeometry = this.geometry;\n    if (Boolean(geometry.getIndex()) !== Boolean(batchGeometry.getIndex())) {\n      throw new Error('BatchedMesh: All geometries must consistently have \"index\".');\n    }\n    for (const attributeName in batchGeometry.attributes) {\n      if (!geometry.hasAttribute(attributeName)) {\n        throw new Error(`BatchedMesh: Added geometry missing \"${attributeName}\". All geometries must have consistent attributes.`);\n      }\n      const srcAttribute = geometry.getAttribute(attributeName);\n      const dstAttribute = batchGeometry.getAttribute(attributeName);\n      if (srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized) {\n        throw new Error(\"BatchedMesh: All attributes must have a consistent itemSize and normalized value.\");\n      }\n    }\n  }\n  setCustomSort(func) {\n    this.customSort = func;\n    return this;\n  }\n  computeBoundingBox() {\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    const boundingBox = this.boundingBox;\n    const drawInfo = this._drawInfo;\n    boundingBox.makeEmpty();\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (drawInfo[i].active === false) continue;\n      const geometryId = drawInfo[i].geometryIndex;\n      this.getMatrixAt(i, _matrix$1);\n      this.getBoundingBoxAt(geometryId, _box$1).applyMatrix4(_matrix$1);\n      boundingBox.union(_box$1);\n    }\n  }\n  computeBoundingSphere() {\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    const boundingSphere = this.boundingSphere;\n    const drawInfo = this._drawInfo;\n    boundingSphere.makeEmpty();\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (drawInfo[i].active === false) continue;\n      const geometryId = drawInfo[i].geometryIndex;\n      this.getMatrixAt(i, _matrix$1);\n      this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n      boundingSphere.union(_sphere$2);\n    }\n  }\n  addInstance(geometryId) {\n    const atCapacity = this._drawInfo.length >= this.maxInstanceCount;\n    if (atCapacity && this._availableInstanceIds.length === 0) {\n      throw new Error(\"BatchedMesh: Maximum item count reached.\");\n    }\n    const instanceDrawInfo = {\n      visible: true,\n      active: true,\n      geometryIndex: geometryId\n    };\n    let drawId = null;\n    if (this._availableInstanceIds.length > 0) {\n      drawId = this._availableInstanceIds.pop();\n      this._drawInfo[drawId] = instanceDrawInfo;\n    } else {\n      drawId = this._drawInfo.length;\n      this._drawInfo.push(instanceDrawInfo);\n    }\n    const matricesTexture = this._matricesTexture;\n    const matricesArray = matricesTexture.image.data;\n    _identityMatrix.toArray(matricesArray, drawId * 16);\n    matricesTexture.needsUpdate = true;\n    const colorsTexture = this._colorsTexture;\n    if (colorsTexture) {\n      _whiteColor.toArray(colorsTexture.image.data, drawId * 4);\n      colorsTexture.needsUpdate = true;\n    }\n    return drawId;\n  }\n  addGeometry(geometry, vertexCount = -1, indexCount = -1) {\n    this._initializeGeometry(geometry);\n    this._validateGeometry(geometry);\n    if (this._drawInfo.length >= this._maxInstanceCount) {\n      throw new Error(\"BatchedMesh: Maximum item count reached.\");\n    }\n    const reservedRange = {\n      vertexStart: -1,\n      vertexCount: -1,\n      indexStart: -1,\n      indexCount: -1\n    };\n    let lastRange = null;\n    const reservedRanges = this._reservedRanges;\n    const drawRanges = this._drawRanges;\n    const bounds = this._bounds;\n    if (this._geometryCount !== 0) {\n      lastRange = reservedRanges[reservedRanges.length - 1];\n    }\n    if (vertexCount === -1) {\n      reservedRange.vertexCount = geometry.getAttribute(\"position\").count;\n    } else {\n      reservedRange.vertexCount = vertexCount;\n    }\n    if (lastRange === null) {\n      reservedRange.vertexStart = 0;\n    } else {\n      reservedRange.vertexStart = lastRange.vertexStart + lastRange.vertexCount;\n    }\n    const index = geometry.getIndex();\n    const hasIndex = index !== null;\n    if (hasIndex) {\n      if (indexCount === -1) {\n        reservedRange.indexCount = index.count;\n      } else {\n        reservedRange.indexCount = indexCount;\n      }\n      if (lastRange === null) {\n        reservedRange.indexStart = 0;\n      } else {\n        reservedRange.indexStart = lastRange.indexStart + lastRange.indexCount;\n      }\n    }\n    if (reservedRange.indexStart !== -1 && reservedRange.indexStart + reservedRange.indexCount > this._maxIndexCount || reservedRange.vertexStart + reservedRange.vertexCount > this._maxVertexCount) {\n      throw new Error(\"BatchedMesh: Reserved space request exceeds the maximum buffer size.\");\n    }\n    const geometryId = this._geometryCount;\n    this._geometryCount++;\n    reservedRanges.push(reservedRange);\n    drawRanges.push({\n      start: hasIndex ? reservedRange.indexStart : reservedRange.vertexStart,\n      count: -1\n    });\n    bounds.push({\n      boxInitialized: false,\n      box: new Box3(),\n      sphereInitialized: false,\n      sphere: new Sphere()\n    });\n    this.setGeometryAt(geometryId, geometry);\n    return geometryId;\n  }\n  setGeometryAt(geometryId, geometry) {\n    if (geometryId >= this._geometryCount) {\n      throw new Error(\"BatchedMesh: Maximum geometry count reached.\");\n    }\n    this._validateGeometry(geometry);\n    const batchGeometry = this.geometry;\n    const hasIndex = batchGeometry.getIndex() !== null;\n    const dstIndex = batchGeometry.getIndex();\n    const srcIndex = geometry.getIndex();\n    const reservedRange = this._reservedRanges[geometryId];\n    if (hasIndex && srcIndex.count > reservedRange.indexCount || geometry.attributes.position.count > reservedRange.vertexCount) {\n      throw new Error(\"BatchedMesh: Reserved space not large enough for provided geometry.\");\n    }\n    const vertexStart = reservedRange.vertexStart;\n    const vertexCount = reservedRange.vertexCount;\n    for (const attributeName in batchGeometry.attributes) {\n      const srcAttribute = geometry.getAttribute(attributeName);\n      const dstAttribute = batchGeometry.getAttribute(attributeName);\n      copyAttributeData(srcAttribute, dstAttribute, vertexStart);\n      const itemSize = srcAttribute.itemSize;\n      for (let i = srcAttribute.count, l = vertexCount; i < l; i++) {\n        const index = vertexStart + i;\n        for (let c = 0; c < itemSize; c++) {\n          dstAttribute.setComponent(index, c, 0);\n        }\n      }\n      dstAttribute.needsUpdate = true;\n      dstAttribute.addUpdateRange(vertexStart * itemSize, vertexCount * itemSize);\n    }\n    if (hasIndex) {\n      const indexStart = reservedRange.indexStart;\n      for (let i = 0; i < srcIndex.count; i++) {\n        dstIndex.setX(indexStart + i, vertexStart + srcIndex.getX(i));\n      }\n      for (let i = srcIndex.count, l = reservedRange.indexCount; i < l; i++) {\n        dstIndex.setX(indexStart + i, vertexStart);\n      }\n      dstIndex.needsUpdate = true;\n      dstIndex.addUpdateRange(indexStart, reservedRange.indexCount);\n    }\n    const bound = this._bounds[geometryId];\n    if (geometry.boundingBox !== null) {\n      bound.box.copy(geometry.boundingBox);\n      bound.boxInitialized = true;\n    } else {\n      bound.boxInitialized = false;\n    }\n    if (geometry.boundingSphere !== null) {\n      bound.sphere.copy(geometry.boundingSphere);\n      bound.sphereInitialized = true;\n    } else {\n      bound.sphereInitialized = false;\n    }\n    const drawRange = this._drawRanges[geometryId];\n    const posAttr = geometry.getAttribute(\"position\");\n    drawRange.count = hasIndex ? srcIndex.count : posAttr.count;\n    this._visibilityChanged = true;\n    return geometryId;\n  }\n  /*\n  \tdeleteGeometry( geometryId ) {\n  \n  \t\t// TODO: delete geometry and associated instances\n  \n  \t}\n  \t*/\n  deleteInstance(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    drawInfo[instanceId].active = false;\n    this._availableInstanceIds.push(instanceId);\n    this._visibilityChanged = true;\n    return this;\n  }\n  // get bounding box and compute it if it doesn't exist\n  getBoundingBoxAt(geometryId, target) {\n    if (geometryId >= this._geometryCount) {\n      return null;\n    }\n    const bound = this._bounds[geometryId];\n    const box = bound.box;\n    const geometry = this.geometry;\n    if (bound.boxInitialized === false) {\n      box.makeEmpty();\n      const index = geometry.index;\n      const position = geometry.attributes.position;\n      const drawRange = this._drawRanges[geometryId];\n      for (let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i++) {\n        let iv = i;\n        if (index) {\n          iv = index.getX(iv);\n        }\n        box.expandByPoint(_vector$5.fromBufferAttribute(position, iv));\n      }\n      bound.boxInitialized = true;\n    }\n    target.copy(box);\n    return target;\n  }\n  // get bounding sphere and compute it if it doesn't exist\n  getBoundingSphereAt(geometryId, target) {\n    if (geometryId >= this._geometryCount) {\n      return null;\n    }\n    const bound = this._bounds[geometryId];\n    const sphere = bound.sphere;\n    const geometry = this.geometry;\n    if (bound.sphereInitialized === false) {\n      sphere.makeEmpty();\n      this.getBoundingBoxAt(geometryId, _box$1);\n      _box$1.getCenter(sphere.center);\n      const index = geometry.index;\n      const position = geometry.attributes.position;\n      const drawRange = this._drawRanges[geometryId];\n      let maxRadiusSq = 0;\n      for (let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i++) {\n        let iv = i;\n        if (index) {\n          iv = index.getX(iv);\n        }\n        _vector$5.fromBufferAttribute(position, iv);\n        maxRadiusSq = Math.max(maxRadiusSq, sphere.center.distanceToSquared(_vector$5));\n      }\n      sphere.radius = Math.sqrt(maxRadiusSq);\n      bound.sphereInitialized = true;\n    }\n    target.copy(sphere);\n    return target;\n  }\n  setMatrixAt(instanceId, matrix) {\n    const drawInfo = this._drawInfo;\n    const matricesTexture = this._matricesTexture;\n    const matricesArray = this._matricesTexture.image.data;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    matrix.toArray(matricesArray, instanceId * 16);\n    matricesTexture.needsUpdate = true;\n    return this;\n  }\n  getMatrixAt(instanceId, matrix) {\n    const drawInfo = this._drawInfo;\n    const matricesArray = this._matricesTexture.image.data;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    return matrix.fromArray(matricesArray, instanceId * 16);\n  }\n  setColorAt(instanceId, color) {\n    if (this._colorsTexture === null) {\n      this._initColorsTexture();\n    }\n    const colorsTexture = this._colorsTexture;\n    const colorsArray = this._colorsTexture.image.data;\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    color.toArray(colorsArray, instanceId * 4);\n    colorsTexture.needsUpdate = true;\n    return this;\n  }\n  getColorAt(instanceId, color) {\n    const colorsArray = this._colorsTexture.image.data;\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    return color.fromArray(colorsArray, instanceId * 4);\n  }\n  setVisibleAt(instanceId, value) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false || drawInfo[instanceId].visible === value) {\n      return this;\n    }\n    drawInfo[instanceId].visible = value;\n    this._visibilityChanged = true;\n    return this;\n  }\n  getVisibleAt(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return false;\n    }\n    return drawInfo[instanceId].visible;\n  }\n  setGeometryIdAt(instanceId, geometryId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    if (geometryId < 0 || geometryId >= this._geometryCount) {\n      return null;\n    }\n    drawInfo[instanceId].geometryIndex = geometryId;\n    return this;\n  }\n  getGeometryIdAt(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return -1;\n    }\n    return drawInfo[instanceId].geometryIndex;\n  }\n  getGeometryRangeAt(geometryId, target = {}) {\n    if (geometryId < 0 || geometryId >= this._geometryCount) {\n      return null;\n    }\n    const drawRange = this._drawRanges[geometryId];\n    target.start = drawRange.start;\n    target.count = drawRange.count;\n    return target;\n  }\n  raycast(raycaster, intersects2) {\n    const drawInfo = this._drawInfo;\n    const drawRanges = this._drawRanges;\n    const matrixWorld = this.matrixWorld;\n    const batchGeometry = this.geometry;\n    _mesh.material = this.material;\n    _mesh.geometry.index = batchGeometry.index;\n    _mesh.geometry.attributes = batchGeometry.attributes;\n    if (_mesh.geometry.boundingBox === null) {\n      _mesh.geometry.boundingBox = new Box3();\n    }\n    if (_mesh.geometry.boundingSphere === null) {\n      _mesh.geometry.boundingSphere = new Sphere();\n    }\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (!drawInfo[i].visible || !drawInfo[i].active) {\n        continue;\n      }\n      const geometryId = drawInfo[i].geometryIndex;\n      const drawRange = drawRanges[geometryId];\n      _mesh.geometry.setDrawRange(drawRange.start, drawRange.count);\n      this.getMatrixAt(i, _mesh.matrixWorld).premultiply(matrixWorld);\n      this.getBoundingBoxAt(geometryId, _mesh.geometry.boundingBox);\n      this.getBoundingSphereAt(geometryId, _mesh.geometry.boundingSphere);\n      _mesh.raycast(raycaster, _batchIntersects);\n      for (let j = 0, l2 = _batchIntersects.length; j < l2; j++) {\n        const intersect2 = _batchIntersects[j];\n        intersect2.object = this;\n        intersect2.batchId = i;\n        intersects2.push(intersect2);\n      }\n      _batchIntersects.length = 0;\n    }\n    _mesh.material = null;\n    _mesh.geometry.index = null;\n    _mesh.geometry.attributes = {};\n    _mesh.geometry.setDrawRange(0, Infinity);\n  }\n  copy(source) {\n    super.copy(source);\n    this.geometry = source.geometry.clone();\n    this.perObjectFrustumCulled = source.perObjectFrustumCulled;\n    this.sortObjects = source.sortObjects;\n    this.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n    this.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n    this._drawRanges = source._drawRanges.map((range) => __spreadValues({}, range));\n    this._reservedRanges = source._reservedRanges.map((range) => __spreadValues({}, range));\n    this._drawInfo = source._drawInfo.map((inf) => __spreadValues({}, inf));\n    this._bounds = source._bounds.map((bound) => ({\n      boxInitialized: bound.boxInitialized,\n      box: bound.box.clone(),\n      sphereInitialized: bound.sphereInitialized,\n      sphere: bound.sphere.clone()\n    }));\n    this._maxInstanceCount = source._maxInstanceCount;\n    this._maxVertexCount = source._maxVertexCount;\n    this._maxIndexCount = source._maxIndexCount;\n    this._geometryInitialized = source._geometryInitialized;\n    this._geometryCount = source._geometryCount;\n    this._multiDrawCounts = source._multiDrawCounts.slice();\n    this._multiDrawStarts = source._multiDrawStarts.slice();\n    this._matricesTexture = source._matricesTexture.clone();\n    this._matricesTexture.image.data = this._matricesTexture.image.data.slice();\n    if (this._colorsTexture !== null) {\n      this._colorsTexture = source._colorsTexture.clone();\n      this._colorsTexture.image.data = this._colorsTexture.image.data.slice();\n    }\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this._matricesTexture.dispose();\n    this._matricesTexture = null;\n    this._indirectTexture.dispose();\n    this._indirectTexture = null;\n    if (this._colorsTexture !== null) {\n      this._colorsTexture.dispose();\n      this._colorsTexture = null;\n    }\n    return this;\n  }\n  onBeforeRender(renderer, scene, camera, geometry, material) {\n    if (!this._visibilityChanged && !this.perObjectFrustumCulled && !this.sortObjects) {\n      return;\n    }\n    const index = geometry.getIndex();\n    const bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n    const drawInfo = this._drawInfo;\n    const multiDrawStarts = this._multiDrawStarts;\n    const multiDrawCounts = this._multiDrawCounts;\n    const drawRanges = this._drawRanges;\n    const perObjectFrustumCulled = this.perObjectFrustumCulled;\n    const indirectTexture = this._indirectTexture;\n    const indirectArray = indirectTexture.image.data;\n    if (perObjectFrustumCulled) {\n      _projScreenMatrix$2.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse).multiply(this.matrixWorld);\n      _frustum.setFromProjectionMatrix(\n        _projScreenMatrix$2,\n        renderer.coordinateSystem\n      );\n    }\n    let count = 0;\n    if (this.sortObjects) {\n      _invMatrixWorld.copy(this.matrixWorld).invert();\n      _vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_invMatrixWorld);\n      _forward.set(0, 0, -1).transformDirection(camera.matrixWorld).transformDirection(_invMatrixWorld);\n      for (let i = 0, l = drawInfo.length; i < l; i++) {\n        if (drawInfo[i].visible && drawInfo[i].active) {\n          const geometryId = drawInfo[i].geometryIndex;\n          this.getMatrixAt(i, _matrix$1);\n          this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n          let culled = false;\n          if (perObjectFrustumCulled) {\n            culled = !_frustum.intersectsSphere(_sphere$2);\n          }\n          if (!culled) {\n            const z = _temp.subVectors(_sphere$2.center, _vector$5).dot(_forward);\n            _renderList.push(drawRanges[geometryId], z, i);\n          }\n        }\n      }\n      const list = _renderList.list;\n      const customSort = this.customSort;\n      if (customSort === null) {\n        list.sort(material.transparent ? sortTransparent : sortOpaque);\n      } else {\n        customSort.call(this, list, camera);\n      }\n      for (let i = 0, l = list.length; i < l; i++) {\n        const item = list[i];\n        multiDrawStarts[count] = item.start * bytesPerElement;\n        multiDrawCounts[count] = item.count;\n        indirectArray[count] = item.index;\n        count++;\n      }\n      _renderList.reset();\n    } else {\n      for (let i = 0, l = drawInfo.length; i < l; i++) {\n        if (drawInfo[i].visible && drawInfo[i].active) {\n          const geometryId = drawInfo[i].geometryIndex;\n          let culled = false;\n          if (perObjectFrustumCulled) {\n            this.getMatrixAt(i, _matrix$1);\n            this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n            culled = !_frustum.intersectsSphere(_sphere$2);\n          }\n          if (!culled) {\n            const range = drawRanges[geometryId];\n            multiDrawStarts[count] = range.start * bytesPerElement;\n            multiDrawCounts[count] = range.count;\n            indirectArray[count] = i;\n            count++;\n          }\n        }\n      }\n    }\n    indirectTexture.needsUpdate = true;\n    this._multiDrawCount = count;\n    this._visibilityChanged = false;\n  }\n  onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial) {\n    this.onBeforeRender(renderer, null, shadowCamera, geometry, depthMaterial);\n  }\n};\nvar LineBasicMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isLineBasicMaterial = true;\n    this.type = \"LineBasicMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.linewidth = 1;\n    this.linecap = \"round\";\n    this.linejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.linewidth = source.linewidth;\n    this.linecap = source.linecap;\n    this.linejoin = source.linejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _vStart = /* @__PURE__ */ new Vector3();\nvar _vEnd = /* @__PURE__ */ new Vector3();\nvar _inverseMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar _ray$1 = /* @__PURE__ */ new Ray();\nvar _sphere$1 = /* @__PURE__ */ new Sphere();\nvar _intersectPointOnRay = /* @__PURE__ */ new Vector3();\nvar _intersectPointOnSegment = /* @__PURE__ */ new Vector3();\nvar Line = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new LineBasicMaterial()) {\n    super();\n    this.isLine = true;\n    this.type = \"Line\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  computeLineDistances() {\n    const geometry = this.geometry;\n    if (geometry.index === null) {\n      const positionAttribute = geometry.attributes.position;\n      const lineDistances = [0];\n      for (let i = 1, l = positionAttribute.count; i < l; i++) {\n        _vStart.fromBufferAttribute(positionAttribute, i - 1);\n        _vEnd.fromBufferAttribute(positionAttribute, i);\n        lineDistances[i] = lineDistances[i - 1];\n        lineDistances[i] += _vStart.distanceTo(_vEnd);\n      }\n      geometry.setAttribute(\"lineDistance\", new Float32BufferAttribute(lineDistances, 1));\n    } else {\n      console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");\n    }\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const matrixWorld = this.matrixWorld;\n    const threshold = raycaster.params.Line.threshold;\n    const drawRange = geometry.drawRange;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere$1.copy(geometry.boundingSphere);\n    _sphere$1.applyMatrix4(matrixWorld);\n    _sphere$1.radius += threshold;\n    if (raycaster.ray.intersectsSphere(_sphere$1) === false) return;\n    _inverseMatrix$1.copy(matrixWorld).invert();\n    _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n    const localThresholdSq = localThreshold * localThreshold;\n    const step = this.isLineSegments ? 2 : 1;\n    const index = geometry.index;\n    const attributes = geometry.attributes;\n    const positionAttribute = attributes.position;\n    if (index !== null) {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(index.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end - 1; i < l; i += step) {\n        const a = index.getX(i);\n        const b = index.getX(i + 1);\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n      if (this.isLineLoop) {\n        const a = index.getX(end - 1);\n        const b = index.getX(start);\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n    } else {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end - 1; i < l; i += step) {\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, i, i + 1);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n      if (this.isLineLoop) {\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, end - 1, start);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n    }\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n};\nfunction checkIntersection(object, raycaster, ray, thresholdSq, a, b) {\n  const positionAttribute = object.geometry.attributes.position;\n  _vStart.fromBufferAttribute(positionAttribute, a);\n  _vEnd.fromBufferAttribute(positionAttribute, b);\n  const distSq = ray.distanceSqToSegment(_vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment);\n  if (distSq > thresholdSq) return;\n  _intersectPointOnRay.applyMatrix4(object.matrixWorld);\n  const distance = raycaster.ray.origin.distanceTo(_intersectPointOnRay);\n  if (distance < raycaster.near || distance > raycaster.far) return;\n  return {\n    distance,\n    // What do we want? intersection point on the ray or on the segment??\n    // point: raycaster.ray.at( distance ),\n    point: _intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld),\n    index: a,\n    face: null,\n    faceIndex: null,\n    barycoord: null,\n    object\n  };\n}\nvar _start = /* @__PURE__ */ new Vector3();\nvar _end = /* @__PURE__ */ new Vector3();\nvar LineSegments = class extends Line {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isLineSegments = true;\n    this.type = \"LineSegments\";\n  }\n  computeLineDistances() {\n    const geometry = this.geometry;\n    if (geometry.index === null) {\n      const positionAttribute = geometry.attributes.position;\n      const lineDistances = [];\n      for (let i = 0, l = positionAttribute.count; i < l; i += 2) {\n        _start.fromBufferAttribute(positionAttribute, i);\n        _end.fromBufferAttribute(positionAttribute, i + 1);\n        lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n        lineDistances[i + 1] = lineDistances[i] + _start.distanceTo(_end);\n      }\n      geometry.setAttribute(\"lineDistance\", new Float32BufferAttribute(lineDistances, 1));\n    } else {\n      console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");\n    }\n    return this;\n  }\n};\nvar LineLoop = class extends Line {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isLineLoop = true;\n    this.type = \"LineLoop\";\n  }\n};\nvar PointsMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isPointsMaterial = true;\n    this.type = \"PointsMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.alphaMap = null;\n    this.size = 1;\n    this.sizeAttenuation = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.size = source.size;\n    this.sizeAttenuation = source.sizeAttenuation;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _inverseMatrix = /* @__PURE__ */ new Matrix4();\nvar _ray = /* @__PURE__ */ new Ray();\nvar _sphere = /* @__PURE__ */ new Sphere();\nvar _position$2 = /* @__PURE__ */ new Vector3();\nvar Points = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new PointsMaterial()) {\n    super();\n    this.isPoints = true;\n    this.type = \"Points\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const matrixWorld = this.matrixWorld;\n    const threshold = raycaster.params.Points.threshold;\n    const drawRange = geometry.drawRange;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere.copy(geometry.boundingSphere);\n    _sphere.applyMatrix4(matrixWorld);\n    _sphere.radius += threshold;\n    if (raycaster.ray.intersectsSphere(_sphere) === false) return;\n    _inverseMatrix.copy(matrixWorld).invert();\n    _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n    const localThresholdSq = localThreshold * localThreshold;\n    const index = geometry.index;\n    const attributes = geometry.attributes;\n    const positionAttribute = attributes.position;\n    if (index !== null) {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(index.count, drawRange.start + drawRange.count);\n      for (let i = start, il = end; i < il; i++) {\n        const a = index.getX(i);\n        _position$2.fromBufferAttribute(positionAttribute, a);\n        testPoint(_position$2, a, localThresholdSq, matrixWorld, raycaster, intersects2, this);\n      }\n    } else {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end; i < l; i++) {\n        _position$2.fromBufferAttribute(positionAttribute, i);\n        testPoint(_position$2, i, localThresholdSq, matrixWorld, raycaster, intersects2, this);\n      }\n    }\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n};\nfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects2, object) {\n  const rayPointDistanceSq = _ray.distanceSqToPoint(point);\n  if (rayPointDistanceSq < localThresholdSq) {\n    const intersectPoint = new Vector3();\n    _ray.closestPointToPoint(point, intersectPoint);\n    intersectPoint.applyMatrix4(matrixWorld);\n    const distance = raycaster.ray.origin.distanceTo(intersectPoint);\n    if (distance < raycaster.near || distance > raycaster.far) return;\n    intersects2.push({\n      distance,\n      distanceToRay: Math.sqrt(rayPointDistanceSq),\n      point: intersectPoint,\n      index,\n      face: null,\n      faceIndex: null,\n      barycoord: null,\n      object\n    });\n  }\n}\nvar VideoTexture = class extends Texture {\n  constructor(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n    super(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isVideoTexture = true;\n    this.minFilter = minFilter !== void 0 ? minFilter : LinearFilter;\n    this.magFilter = magFilter !== void 0 ? magFilter : LinearFilter;\n    this.generateMipmaps = false;\n    const scope = this;\n    function updateVideo() {\n      scope.needsUpdate = true;\n      video.requestVideoFrameCallback(updateVideo);\n    }\n    if (\"requestVideoFrameCallback\" in video) {\n      video.requestVideoFrameCallback(updateVideo);\n    }\n  }\n  clone() {\n    return new this.constructor(this.image).copy(this);\n  }\n  update() {\n    const video = this.image;\n    const hasVideoFrameCallback = \"requestVideoFrameCallback\" in video;\n    if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) {\n      this.needsUpdate = true;\n    }\n  }\n};\nvar FramebufferTexture = class extends Texture {\n  constructor(width, height) {\n    super({ width, height });\n    this.isFramebufferTexture = true;\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.generateMipmaps = false;\n    this.needsUpdate = true;\n  }\n};\nvar CompressedTexture = class extends Texture {\n  constructor(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace) {\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isCompressedTexture = true;\n    this.image = { width, height };\n    this.mipmaps = mipmaps;\n    this.flipY = false;\n    this.generateMipmaps = false;\n  }\n};\nvar CompressedArrayTexture = class extends CompressedTexture {\n  constructor(mipmaps, width, height, depth, format, type) {\n    super(mipmaps, width, height, format, type);\n    this.isCompressedArrayTexture = true;\n    this.image.depth = depth;\n    this.wrapR = ClampToEdgeWrapping;\n    this.layerUpdates = /* @__PURE__ */ new Set();\n  }\n  addLayerUpdate(layerIndex) {\n    this.layerUpdates.add(layerIndex);\n  }\n  clearLayerUpdates() {\n    this.layerUpdates.clear();\n  }\n};\nvar CompressedCubeTexture = class extends CompressedTexture {\n  constructor(images, format, type) {\n    super(void 0, images[0].width, images[0].height, format, type, CubeReflectionMapping);\n    this.isCompressedCubeTexture = true;\n    this.isCubeTexture = true;\n    this.image = images;\n  }\n};\nvar CanvasTexture = class extends Texture {\n  constructor(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n    super(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isCanvasTexture = true;\n    this.needsUpdate = true;\n  }\n};\nvar Curve = class {\n  constructor() {\n    this.type = \"Curve\";\n    this.arcLengthDivisions = 200;\n  }\n  // Virtual base class method to overwrite and implement in subclasses\n  //\t- t [0 .. 1]\n  getPoint() {\n    console.warn(\"THREE.Curve: .getPoint() not implemented.\");\n    return null;\n  }\n  // Get point at relative position in curve according to arc length\n  // - u [0 .. 1]\n  getPointAt(u, optionalTarget) {\n    const t = this.getUtoTmapping(u);\n    return this.getPoint(t, optionalTarget);\n  }\n  // Get sequence of points using getPoint( t )\n  getPoints(divisions = 5) {\n    const points = [];\n    for (let d = 0; d <= divisions; d++) {\n      points.push(this.getPoint(d / divisions));\n    }\n    return points;\n  }\n  // Get sequence of points using getPointAt( u )\n  getSpacedPoints(divisions = 5) {\n    const points = [];\n    for (let d = 0; d <= divisions; d++) {\n      points.push(this.getPointAt(d / divisions));\n    }\n    return points;\n  }\n  // Get total curve arc length\n  getLength() {\n    const lengths = this.getLengths();\n    return lengths[lengths.length - 1];\n  }\n  // Get list of cumulative segment lengths\n  getLengths(divisions = this.arcLengthDivisions) {\n    if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\n      return this.cacheArcLengths;\n    }\n    this.needsUpdate = false;\n    const cache = [];\n    let current, last = this.getPoint(0);\n    let sum = 0;\n    cache.push(0);\n    for (let p = 1; p <= divisions; p++) {\n      current = this.getPoint(p / divisions);\n      sum += current.distanceTo(last);\n      cache.push(sum);\n      last = current;\n    }\n    this.cacheArcLengths = cache;\n    return cache;\n  }\n  updateArcLengths() {\n    this.needsUpdate = true;\n    this.getLengths();\n  }\n  // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n  getUtoTmapping(u, distance) {\n    const arcLengths = this.getLengths();\n    let i = 0;\n    const il = arcLengths.length;\n    let targetArcLength;\n    if (distance) {\n      targetArcLength = distance;\n    } else {\n      targetArcLength = u * arcLengths[il - 1];\n    }\n    let low = 0, high = il - 1, comparison;\n    while (low <= high) {\n      i = Math.floor(low + (high - low) / 2);\n      comparison = arcLengths[i] - targetArcLength;\n      if (comparison < 0) {\n        low = i + 1;\n      } else if (comparison > 0) {\n        high = i - 1;\n      } else {\n        high = i;\n        break;\n      }\n    }\n    i = high;\n    if (arcLengths[i] === targetArcLength) {\n      return i / (il - 1);\n    }\n    const lengthBefore = arcLengths[i];\n    const lengthAfter = arcLengths[i + 1];\n    const segmentLength = lengthAfter - lengthBefore;\n    const segmentFraction = (targetArcLength - lengthBefore) / segmentLength;\n    const t = (i + segmentFraction) / (il - 1);\n    return t;\n  }\n  // Returns a unit vector tangent at t\n  // In case any sub curve does not implement its tangent derivation,\n  // 2 points a small delta apart will be used to find its gradient\n  // which seems to give a reasonable approximation\n  getTangent(t, optionalTarget) {\n    const delta = 1e-4;\n    let t1 = t - delta;\n    let t2 = t + delta;\n    if (t1 < 0) t1 = 0;\n    if (t2 > 1) t2 = 1;\n    const pt1 = this.getPoint(t1);\n    const pt2 = this.getPoint(t2);\n    const tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3());\n    tangent.copy(pt2).sub(pt1).normalize();\n    return tangent;\n  }\n  getTangentAt(u, optionalTarget) {\n    const t = this.getUtoTmapping(u);\n    return this.getTangent(t, optionalTarget);\n  }\n  computeFrenetFrames(segments, closed) {\n    const normal = new Vector3();\n    const tangents = [];\n    const normals = [];\n    const binormals = [];\n    const vec = new Vector3();\n    const mat = new Matrix4();\n    for (let i = 0; i <= segments; i++) {\n      const u = i / segments;\n      tangents[i] = this.getTangentAt(u, new Vector3());\n    }\n    normals[0] = new Vector3();\n    binormals[0] = new Vector3();\n    let min = Number.MAX_VALUE;\n    const tx = Math.abs(tangents[0].x);\n    const ty = Math.abs(tangents[0].y);\n    const tz = Math.abs(tangents[0].z);\n    if (tx <= min) {\n      min = tx;\n      normal.set(1, 0, 0);\n    }\n    if (ty <= min) {\n      min = ty;\n      normal.set(0, 1, 0);\n    }\n    if (tz <= min) {\n      normal.set(0, 0, 1);\n    }\n    vec.crossVectors(tangents[0], normal).normalize();\n    normals[0].crossVectors(tangents[0], vec);\n    binormals[0].crossVectors(tangents[0], normals[0]);\n    for (let i = 1; i <= segments; i++) {\n      normals[i] = normals[i - 1].clone();\n      binormals[i] = binormals[i - 1].clone();\n      vec.crossVectors(tangents[i - 1], tangents[i]);\n      if (vec.length() > Number.EPSILON) {\n        vec.normalize();\n        const theta = Math.acos(clamp(tangents[i - 1].dot(tangents[i]), -1, 1));\n        normals[i].applyMatrix4(mat.makeRotationAxis(vec, theta));\n      }\n      binormals[i].crossVectors(tangents[i], normals[i]);\n    }\n    if (closed === true) {\n      let theta = Math.acos(clamp(normals[0].dot(normals[segments]), -1, 1));\n      theta /= segments;\n      if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\n        theta = -theta;\n      }\n      for (let i = 1; i <= segments; i++) {\n        normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i], theta * i));\n        binormals[i].crossVectors(tangents[i], normals[i]);\n      }\n    }\n    return {\n      tangents,\n      normals,\n      binormals\n    };\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.arcLengthDivisions = source.arcLengthDivisions;\n    return this;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Curve\",\n        generator: \"Curve.toJSON\"\n      }\n    };\n    data.arcLengthDivisions = this.arcLengthDivisions;\n    data.type = this.type;\n    return data;\n  }\n  fromJSON(json) {\n    this.arcLengthDivisions = json.arcLengthDivisions;\n    return this;\n  }\n};\nvar EllipseCurve = class extends Curve {\n  constructor(aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0) {\n    super();\n    this.isEllipseCurve = true;\n    this.type = \"EllipseCurve\";\n    this.aX = aX;\n    this.aY = aY;\n    this.xRadius = xRadius;\n    this.yRadius = yRadius;\n    this.aStartAngle = aStartAngle;\n    this.aEndAngle = aEndAngle;\n    this.aClockwise = aClockwise;\n    this.aRotation = aRotation;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const twoPi = Math.PI * 2;\n    let deltaAngle = this.aEndAngle - this.aStartAngle;\n    const samePoints = Math.abs(deltaAngle) < Number.EPSILON;\n    while (deltaAngle < 0) deltaAngle += twoPi;\n    while (deltaAngle > twoPi) deltaAngle -= twoPi;\n    if (deltaAngle < Number.EPSILON) {\n      if (samePoints) {\n        deltaAngle = 0;\n      } else {\n        deltaAngle = twoPi;\n      }\n    }\n    if (this.aClockwise === true && !samePoints) {\n      if (deltaAngle === twoPi) {\n        deltaAngle = -twoPi;\n      } else {\n        deltaAngle = deltaAngle - twoPi;\n      }\n    }\n    const angle = this.aStartAngle + t * deltaAngle;\n    let x = this.aX + this.xRadius * Math.cos(angle);\n    let y = this.aY + this.yRadius * Math.sin(angle);\n    if (this.aRotation !== 0) {\n      const cos = Math.cos(this.aRotation);\n      const sin = Math.sin(this.aRotation);\n      const tx = x - this.aX;\n      const ty = y - this.aY;\n      x = tx * cos - ty * sin + this.aX;\n      y = tx * sin + ty * cos + this.aY;\n    }\n    return point.set(x, y);\n  }\n  copy(source) {\n    super.copy(source);\n    this.aX = source.aX;\n    this.aY = source.aY;\n    this.xRadius = source.xRadius;\n    this.yRadius = source.yRadius;\n    this.aStartAngle = source.aStartAngle;\n    this.aEndAngle = source.aEndAngle;\n    this.aClockwise = source.aClockwise;\n    this.aRotation = source.aRotation;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.aX = this.aX;\n    data.aY = this.aY;\n    data.xRadius = this.xRadius;\n    data.yRadius = this.yRadius;\n    data.aStartAngle = this.aStartAngle;\n    data.aEndAngle = this.aEndAngle;\n    data.aClockwise = this.aClockwise;\n    data.aRotation = this.aRotation;\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.aX = json.aX;\n    this.aY = json.aY;\n    this.xRadius = json.xRadius;\n    this.yRadius = json.yRadius;\n    this.aStartAngle = json.aStartAngle;\n    this.aEndAngle = json.aEndAngle;\n    this.aClockwise = json.aClockwise;\n    this.aRotation = json.aRotation;\n    return this;\n  }\n};\nvar ArcCurve = class extends EllipseCurve {\n  constructor(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    super(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n    this.isArcCurve = true;\n    this.type = \"ArcCurve\";\n  }\n};\nfunction CubicPoly() {\n  let c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n  function init(x0, x1, t0, t1) {\n    c0 = x0;\n    c1 = t0;\n    c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\n    c3 = 2 * x0 - 2 * x1 + t0 + t1;\n  }\n  return {\n    initCatmullRom: function(x0, x1, x2, x3, tension) {\n      init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\n    },\n    initNonuniformCatmullRom: function(x0, x1, x2, x3, dt0, dt1, dt2) {\n      let t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\n      let t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2;\n      t1 *= dt1;\n      t2 *= dt1;\n      init(x1, x2, t1, t2);\n    },\n    calc: function(t) {\n      const t2 = t * t;\n      const t3 = t2 * t;\n      return c0 + c1 * t + c2 * t2 + c3 * t3;\n    }\n  };\n}\nvar tmp = /* @__PURE__ */ new Vector3();\nvar px = /* @__PURE__ */ new CubicPoly();\nvar py = /* @__PURE__ */ new CubicPoly();\nvar pz = /* @__PURE__ */ new CubicPoly();\nvar CatmullRomCurve3 = class extends Curve {\n  constructor(points = [], closed = false, curveType = \"centripetal\", tension = 0.5) {\n    super();\n    this.isCatmullRomCurve3 = true;\n    this.type = \"CatmullRomCurve3\";\n    this.points = points;\n    this.closed = closed;\n    this.curveType = curveType;\n    this.tension = tension;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const points = this.points;\n    const l = points.length;\n    const p = (l - (this.closed ? 0 : 1)) * t;\n    let intPoint = Math.floor(p);\n    let weight = p - intPoint;\n    if (this.closed) {\n      intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\n    } else if (weight === 0 && intPoint === l - 1) {\n      intPoint = l - 2;\n      weight = 1;\n    }\n    let p0, p3;\n    if (this.closed || intPoint > 0) {\n      p0 = points[(intPoint - 1) % l];\n    } else {\n      tmp.subVectors(points[0], points[1]).add(points[0]);\n      p0 = tmp;\n    }\n    const p1 = points[intPoint % l];\n    const p2 = points[(intPoint + 1) % l];\n    if (this.closed || intPoint + 2 < l) {\n      p3 = points[(intPoint + 2) % l];\n    } else {\n      tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\n      p3 = tmp;\n    }\n    if (this.curveType === \"centripetal\" || this.curveType === \"chordal\") {\n      const pow = this.curveType === \"chordal\" ? 0.5 : 0.25;\n      let dt0 = Math.pow(p0.distanceToSquared(p1), pow);\n      let dt1 = Math.pow(p1.distanceToSquared(p2), pow);\n      let dt2 = Math.pow(p2.distanceToSquared(p3), pow);\n      if (dt1 < 1e-4) dt1 = 1;\n      if (dt0 < 1e-4) dt0 = dt1;\n      if (dt2 < 1e-4) dt2 = dt1;\n      px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\n      py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\n      pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\n    } else if (this.curveType === \"catmullrom\") {\n      px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\n      py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\n      pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\n    }\n    point.set(\n      px.calc(weight),\n      py.calc(weight),\n      pz.calc(weight)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.points = [];\n    for (let i = 0, l = source.points.length; i < l; i++) {\n      const point = source.points[i];\n      this.points.push(point.clone());\n    }\n    this.closed = source.closed;\n    this.curveType = source.curveType;\n    this.tension = source.tension;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.points = [];\n    for (let i = 0, l = this.points.length; i < l; i++) {\n      const point = this.points[i];\n      data.points.push(point.toArray());\n    }\n    data.closed = this.closed;\n    data.curveType = this.curveType;\n    data.tension = this.tension;\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.points = [];\n    for (let i = 0, l = json.points.length; i < l; i++) {\n      const point = json.points[i];\n      this.points.push(new Vector3().fromArray(point));\n    }\n    this.closed = json.closed;\n    this.curveType = json.curveType;\n    this.tension = json.tension;\n    return this;\n  }\n};\nfunction CatmullRom(t, p0, p1, p2, p3) {\n  const v0 = (p2 - p0) * 0.5;\n  const v1 = (p3 - p1) * 0.5;\n  const t2 = t * t;\n  const t3 = t * t2;\n  return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\nfunction QuadraticBezierP0(t, p) {\n  const k = 1 - t;\n  return k * k * p;\n}\nfunction QuadraticBezierP1(t, p) {\n  return 2 * (1 - t) * t * p;\n}\nfunction QuadraticBezierP2(t, p) {\n  return t * t * p;\n}\nfunction QuadraticBezier(t, p0, p1, p2) {\n  return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\n}\nfunction CubicBezierP0(t, p) {\n  const k = 1 - t;\n  return k * k * k * p;\n}\nfunction CubicBezierP1(t, p) {\n  const k = 1 - t;\n  return 3 * k * k * t * p;\n}\nfunction CubicBezierP2(t, p) {\n  return 3 * (1 - t) * t * t * p;\n}\nfunction CubicBezierP3(t, p) {\n  return t * t * t * p;\n}\nfunction CubicBezier(t, p0, p1, p2, p3) {\n  return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\n}\nvar CubicBezierCurve = class extends Curve {\n  constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2()) {\n    super();\n    this.isCubicBezierCurve = true;\n    this.type = \"CubicBezierCurve\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n    this.v3 = v3;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n    point.set(\n      CubicBezier(t, v0.x, v1.x, v2.x, v3.x),\n      CubicBezier(t, v0.y, v1.y, v2.y, v3.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    this.v3.copy(source.v3);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    data.v3 = this.v3.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    this.v3.fromArray(json.v3);\n    return this;\n  }\n};\nvar CubicBezierCurve3 = class extends Curve {\n  constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3()) {\n    super();\n    this.isCubicBezierCurve3 = true;\n    this.type = \"CubicBezierCurve3\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n    this.v3 = v3;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n    point.set(\n      CubicBezier(t, v0.x, v1.x, v2.x, v3.x),\n      CubicBezier(t, v0.y, v1.y, v2.y, v3.y),\n      CubicBezier(t, v0.z, v1.z, v2.z, v3.z)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    this.v3.copy(source.v3);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    data.v3 = this.v3.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    this.v3.fromArray(json.v3);\n    return this;\n  }\n};\nvar LineCurve = class extends Curve {\n  constructor(v1 = new Vector2(), v2 = new Vector2()) {\n    super();\n    this.isLineCurve = true;\n    this.type = \"LineCurve\";\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    if (t === 1) {\n      point.copy(this.v2);\n    } else {\n      point.copy(this.v2).sub(this.v1);\n      point.multiplyScalar(t).add(this.v1);\n    }\n    return point;\n  }\n  // Line curve is linear, so we can overwrite default getPointAt\n  getPointAt(u, optionalTarget) {\n    return this.getPoint(u, optionalTarget);\n  }\n  getTangent(t, optionalTarget = new Vector2()) {\n    return optionalTarget.subVectors(this.v2, this.v1).normalize();\n  }\n  getTangentAt(u, optionalTarget) {\n    return this.getTangent(u, optionalTarget);\n  }\n  copy(source) {\n    super.copy(source);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar LineCurve3 = class extends Curve {\n  constructor(v1 = new Vector3(), v2 = new Vector3()) {\n    super();\n    this.isLineCurve3 = true;\n    this.type = \"LineCurve3\";\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    if (t === 1) {\n      point.copy(this.v2);\n    } else {\n      point.copy(this.v2).sub(this.v1);\n      point.multiplyScalar(t).add(this.v1);\n    }\n    return point;\n  }\n  // Line curve is linear, so we can overwrite default getPointAt\n  getPointAt(u, optionalTarget) {\n    return this.getPoint(u, optionalTarget);\n  }\n  getTangent(t, optionalTarget = new Vector3()) {\n    return optionalTarget.subVectors(this.v2, this.v1).normalize();\n  }\n  getTangentAt(u, optionalTarget) {\n    return this.getTangent(u, optionalTarget);\n  }\n  copy(source) {\n    super.copy(source);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar QuadraticBezierCurve = class extends Curve {\n  constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2()) {\n    super();\n    this.isQuadraticBezierCurve = true;\n    this.type = \"QuadraticBezierCurve\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2;\n    point.set(\n      QuadraticBezier(t, v0.x, v1.x, v2.x),\n      QuadraticBezier(t, v0.y, v1.y, v2.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar QuadraticBezierCurve3 = class extends Curve {\n  constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3()) {\n    super();\n    this.isQuadraticBezierCurve3 = true;\n    this.type = \"QuadraticBezierCurve3\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2;\n    point.set(\n      QuadraticBezier(t, v0.x, v1.x, v2.x),\n      QuadraticBezier(t, v0.y, v1.y, v2.y),\n      QuadraticBezier(t, v0.z, v1.z, v2.z)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar SplineCurve = class extends Curve {\n  constructor(points = []) {\n    super();\n    this.isSplineCurve = true;\n    this.type = \"SplineCurve\";\n    this.points = points;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const points = this.points;\n    const p = (points.length - 1) * t;\n    const intPoint = Math.floor(p);\n    const weight = p - intPoint;\n    const p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\n    const p1 = points[intPoint];\n    const p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\n    const p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\n    point.set(\n      CatmullRom(weight, p0.x, p1.x, p2.x, p3.x),\n      CatmullRom(weight, p0.y, p1.y, p2.y, p3.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.points = [];\n    for (let i = 0, l = source.points.length; i < l; i++) {\n      const point = source.points[i];\n      this.points.push(point.clone());\n    }\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.points = [];\n    for (let i = 0, l = this.points.length; i < l; i++) {\n      const point = this.points[i];\n      data.points.push(point.toArray());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.points = [];\n    for (let i = 0, l = json.points.length; i < l; i++) {\n      const point = json.points[i];\n      this.points.push(new Vector2().fromArray(point));\n    }\n    return this;\n  }\n};\nvar Curves = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  ArcCurve,\n  CatmullRomCurve3,\n  CubicBezierCurve,\n  CubicBezierCurve3,\n  EllipseCurve,\n  LineCurve,\n  LineCurve3,\n  QuadraticBezierCurve,\n  QuadraticBezierCurve3,\n  SplineCurve\n});\nvar CurvePath = class extends Curve {\n  constructor() {\n    super();\n    this.type = \"CurvePath\";\n    this.curves = [];\n    this.autoClose = false;\n  }\n  add(curve) {\n    this.curves.push(curve);\n  }\n  closePath() {\n    const startPoint = this.curves[0].getPoint(0);\n    const endPoint = this.curves[this.curves.length - 1].getPoint(1);\n    if (!startPoint.equals(endPoint)) {\n      const lineType = startPoint.isVector2 === true ? \"LineCurve\" : \"LineCurve3\";\n      this.curves.push(new Curves[lineType](endPoint, startPoint));\n    }\n    return this;\n  }\n  // To get accurate point with reference to\n  // entire path distance at time t,\n  // following has to be done:\n  // 1. Length of each sub path have to be known\n  // 2. Locate and identify type of curve\n  // 3. Get t for the curve\n  // 4. Return curve.getPointAt(t')\n  getPoint(t, optionalTarget) {\n    const d = t * this.getLength();\n    const curveLengths = this.getCurveLengths();\n    let i = 0;\n    while (i < curveLengths.length) {\n      if (curveLengths[i] >= d) {\n        const diff = curveLengths[i] - d;\n        const curve = this.curves[i];\n        const segmentLength = curve.getLength();\n        const u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n        return curve.getPointAt(u, optionalTarget);\n      }\n      i++;\n    }\n    return null;\n  }\n  // We cannot use the default THREE.Curve getPoint() with getLength() because in\n  // THREE.Curve, getLength() depends on getPoint() but in THREE.CurvePath\n  // getPoint() depends on getLength\n  getLength() {\n    const lens = this.getCurveLengths();\n    return lens[lens.length - 1];\n  }\n  // cacheLengths must be recalculated.\n  updateArcLengths() {\n    this.needsUpdate = true;\n    this.cacheLengths = null;\n    this.getCurveLengths();\n  }\n  // Compute lengths and cache them\n  // We cannot overwrite getLengths() because UtoT mapping uses it.\n  getCurveLengths() {\n    if (this.cacheLengths && this.cacheLengths.length === this.curves.length) {\n      return this.cacheLengths;\n    }\n    const lengths = [];\n    let sums = 0;\n    for (let i = 0, l = this.curves.length; i < l; i++) {\n      sums += this.curves[i].getLength();\n      lengths.push(sums);\n    }\n    this.cacheLengths = lengths;\n    return lengths;\n  }\n  getSpacedPoints(divisions = 40) {\n    const points = [];\n    for (let i = 0; i <= divisions; i++) {\n      points.push(this.getPoint(i / divisions));\n    }\n    if (this.autoClose) {\n      points.push(points[0]);\n    }\n    return points;\n  }\n  getPoints(divisions = 12) {\n    const points = [];\n    let last;\n    for (let i = 0, curves = this.curves; i < curves.length; i++) {\n      const curve = curves[i];\n      const resolution = curve.isEllipseCurve ? divisions * 2 : curve.isLineCurve || curve.isLineCurve3 ? 1 : curve.isSplineCurve ? divisions * curve.points.length : divisions;\n      const pts = curve.getPoints(resolution);\n      for (let j = 0; j < pts.length; j++) {\n        const point = pts[j];\n        if (last && last.equals(point)) continue;\n        points.push(point);\n        last = point;\n      }\n    }\n    if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0])) {\n      points.push(points[0]);\n    }\n    return points;\n  }\n  copy(source) {\n    super.copy(source);\n    this.curves = [];\n    for (let i = 0, l = source.curves.length; i < l; i++) {\n      const curve = source.curves[i];\n      this.curves.push(curve.clone());\n    }\n    this.autoClose = source.autoClose;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.autoClose = this.autoClose;\n    data.curves = [];\n    for (let i = 0, l = this.curves.length; i < l; i++) {\n      const curve = this.curves[i];\n      data.curves.push(curve.toJSON());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.autoClose = json.autoClose;\n    this.curves = [];\n    for (let i = 0, l = json.curves.length; i < l; i++) {\n      const curve = json.curves[i];\n      this.curves.push(new Curves[curve.type]().fromJSON(curve));\n    }\n    return this;\n  }\n};\nvar Path = class extends CurvePath {\n  constructor(points) {\n    super();\n    this.type = \"Path\";\n    this.currentPoint = new Vector2();\n    if (points) {\n      this.setFromPoints(points);\n    }\n  }\n  setFromPoints(points) {\n    this.moveTo(points[0].x, points[0].y);\n    for (let i = 1, l = points.length; i < l; i++) {\n      this.lineTo(points[i].x, points[i].y);\n    }\n    return this;\n  }\n  moveTo(x, y) {\n    this.currentPoint.set(x, y);\n    return this;\n  }\n  lineTo(x, y) {\n    const curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y));\n    this.curves.push(curve);\n    this.currentPoint.set(x, y);\n    return this;\n  }\n  quadraticCurveTo(aCPx, aCPy, aX, aY) {\n    const curve = new QuadraticBezierCurve(\n      this.currentPoint.clone(),\n      new Vector2(aCPx, aCPy),\n      new Vector2(aX, aY)\n    );\n    this.curves.push(curve);\n    this.currentPoint.set(aX, aY);\n    return this;\n  }\n  bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n    const curve = new CubicBezierCurve(\n      this.currentPoint.clone(),\n      new Vector2(aCP1x, aCP1y),\n      new Vector2(aCP2x, aCP2y),\n      new Vector2(aX, aY)\n    );\n    this.curves.push(curve);\n    this.currentPoint.set(aX, aY);\n    return this;\n  }\n  splineThru(pts) {\n    const npts = [this.currentPoint.clone()].concat(pts);\n    const curve = new SplineCurve(npts);\n    this.curves.push(curve);\n    this.currentPoint.copy(pts[pts.length - 1]);\n    return this;\n  }\n  arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    const x0 = this.currentPoint.x;\n    const y0 = this.currentPoint.y;\n    this.absarc(\n      aX + x0,\n      aY + y0,\n      aRadius,\n      aStartAngle,\n      aEndAngle,\n      aClockwise\n    );\n    return this;\n  }\n  absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n    return this;\n  }\n  ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n    const x0 = this.currentPoint.x;\n    const y0 = this.currentPoint.y;\n    this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n    return this;\n  }\n  absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n    const curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n    if (this.curves.length > 0) {\n      const firstPoint = curve.getPoint(0);\n      if (!firstPoint.equals(this.currentPoint)) {\n        this.lineTo(firstPoint.x, firstPoint.y);\n      }\n    }\n    this.curves.push(curve);\n    const lastPoint = curve.getPoint(1);\n    this.currentPoint.copy(lastPoint);\n    return this;\n  }\n  copy(source) {\n    super.copy(source);\n    this.currentPoint.copy(source.currentPoint);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.currentPoint = this.currentPoint.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.currentPoint.fromArray(json.currentPoint);\n    return this;\n  }\n};\nvar LatheGeometry = class _LatheGeometry extends BufferGeometry {\n  constructor(points = [new Vector2(0, -0.5), new Vector2(0.5, 0), new Vector2(0, 0.5)], segments = 12, phiStart = 0, phiLength = Math.PI * 2) {\n    super();\n    this.type = \"LatheGeometry\";\n    this.parameters = {\n      points,\n      segments,\n      phiStart,\n      phiLength\n    };\n    segments = Math.floor(segments);\n    phiLength = clamp(phiLength, 0, Math.PI * 2);\n    const indices = [];\n    const vertices = [];\n    const uvs = [];\n    const initNormals = [];\n    const normals = [];\n    const inverseSegments = 1 / segments;\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    const normal = new Vector3();\n    const curNormal = new Vector3();\n    const prevNormal = new Vector3();\n    let dx = 0;\n    let dy = 0;\n    for (let j = 0; j <= points.length - 1; j++) {\n      switch (j) {\n        case 0:\n          dx = points[j + 1].x - points[j].x;\n          dy = points[j + 1].y - points[j].y;\n          normal.x = dy * 1;\n          normal.y = -dx;\n          normal.z = dy * 0;\n          prevNormal.copy(normal);\n          normal.normalize();\n          initNormals.push(normal.x, normal.y, normal.z);\n          break;\n        case points.length - 1:\n          initNormals.push(prevNormal.x, prevNormal.y, prevNormal.z);\n          break;\n        default:\n          dx = points[j + 1].x - points[j].x;\n          dy = points[j + 1].y - points[j].y;\n          normal.x = dy * 1;\n          normal.y = -dx;\n          normal.z = dy * 0;\n          curNormal.copy(normal);\n          normal.x += prevNormal.x;\n          normal.y += prevNormal.y;\n          normal.z += prevNormal.z;\n          normal.normalize();\n          initNormals.push(normal.x, normal.y, normal.z);\n          prevNormal.copy(curNormal);\n      }\n    }\n    for (let i = 0; i <= segments; i++) {\n      const phi = phiStart + i * inverseSegments * phiLength;\n      const sin = Math.sin(phi);\n      const cos = Math.cos(phi);\n      for (let j = 0; j <= points.length - 1; j++) {\n        vertex2.x = points[j].x * sin;\n        vertex2.y = points[j].y;\n        vertex2.z = points[j].x * cos;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        uv.x = i / segments;\n        uv.y = j / (points.length - 1);\n        uvs.push(uv.x, uv.y);\n        const x = initNormals[3 * j + 0] * sin;\n        const y = initNormals[3 * j + 1];\n        const z = initNormals[3 * j + 0] * cos;\n        normals.push(x, y, z);\n      }\n    }\n    for (let i = 0; i < segments; i++) {\n      for (let j = 0; j < points.length - 1; j++) {\n        const base = j + i * points.length;\n        const a = base;\n        const b = base + points.length;\n        const c = base + points.length + 1;\n        const d = base + 1;\n        indices.push(a, b, d);\n        indices.push(c, d, b);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _LatheGeometry(data.points, data.segments, data.phiStart, data.phiLength);\n  }\n};\nvar CapsuleGeometry = class _CapsuleGeometry extends LatheGeometry {\n  constructor(radius = 1, length = 1, capSegments = 4, radialSegments = 8) {\n    const path = new Path();\n    path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);\n    path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);\n    super(path.getPoints(capSegments), radialSegments);\n    this.type = \"CapsuleGeometry\";\n    this.parameters = {\n      radius,\n      length,\n      capSegments,\n      radialSegments\n    };\n  }\n  static fromJSON(data) {\n    return new _CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);\n  }\n};\nvar CircleGeometry = class _CircleGeometry extends BufferGeometry {\n  constructor(radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"CircleGeometry\";\n    this.parameters = {\n      radius,\n      segments,\n      thetaStart,\n      thetaLength\n    };\n    segments = Math.max(3, segments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    vertices.push(0, 0, 0);\n    normals.push(0, 0, 1);\n    uvs.push(0.5, 0.5);\n    for (let s = 0, i = 3; s <= segments; s++, i += 3) {\n      const segment = thetaStart + s / segments * thetaLength;\n      vertex2.x = radius * Math.cos(segment);\n      vertex2.y = radius * Math.sin(segment);\n      vertices.push(vertex2.x, vertex2.y, vertex2.z);\n      normals.push(0, 0, 1);\n      uv.x = (vertices[i] / radius + 1) / 2;\n      uv.y = (vertices[i + 1] / radius + 1) / 2;\n      uvs.push(uv.x, uv.y);\n    }\n    for (let i = 1; i <= segments; i++) {\n      indices.push(i, i + 1, 0);\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _CircleGeometry(data.radius, data.segments, data.thetaStart, data.thetaLength);\n  }\n};\nvar CylinderGeometry = class _CylinderGeometry extends BufferGeometry {\n  constructor(radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"CylinderGeometry\";\n    this.parameters = {\n      radiusTop,\n      radiusBottom,\n      height,\n      radialSegments,\n      heightSegments,\n      openEnded,\n      thetaStart,\n      thetaLength\n    };\n    const scope = this;\n    radialSegments = Math.floor(radialSegments);\n    heightSegments = Math.floor(heightSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let index = 0;\n    const indexArray = [];\n    const halfHeight = height / 2;\n    let groupStart = 0;\n    generateTorso();\n    if (openEnded === false) {\n      if (radiusTop > 0) generateCap(true);\n      if (radiusBottom > 0) generateCap(false);\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function generateTorso() {\n      const normal = new Vector3();\n      const vertex2 = new Vector3();\n      let groupCount = 0;\n      const slope = (radiusBottom - radiusTop) / height;\n      for (let y = 0; y <= heightSegments; y++) {\n        const indexRow = [];\n        const v = y / heightSegments;\n        const radius = v * (radiusBottom - radiusTop) + radiusTop;\n        for (let x = 0; x <= radialSegments; x++) {\n          const u = x / radialSegments;\n          const theta = u * thetaLength + thetaStart;\n          const sinTheta = Math.sin(theta);\n          const cosTheta = Math.cos(theta);\n          vertex2.x = radius * sinTheta;\n          vertex2.y = -v * height + halfHeight;\n          vertex2.z = radius * cosTheta;\n          vertices.push(vertex2.x, vertex2.y, vertex2.z);\n          normal.set(sinTheta, slope, cosTheta).normalize();\n          normals.push(normal.x, normal.y, normal.z);\n          uvs.push(u, 1 - v);\n          indexRow.push(index++);\n        }\n        indexArray.push(indexRow);\n      }\n      for (let x = 0; x < radialSegments; x++) {\n        for (let y = 0; y < heightSegments; y++) {\n          const a = indexArray[y][x];\n          const b = indexArray[y + 1][x];\n          const c = indexArray[y + 1][x + 1];\n          const d = indexArray[y][x + 1];\n          if (radiusTop > 0) {\n            indices.push(a, b, d);\n            groupCount += 3;\n          }\n          if (radiusBottom > 0) {\n            indices.push(b, c, d);\n            groupCount += 3;\n          }\n        }\n      }\n      scope.addGroup(groupStart, groupCount, 0);\n      groupStart += groupCount;\n    }\n    function generateCap(top) {\n      const centerIndexStart = index;\n      const uv = new Vector2();\n      const vertex2 = new Vector3();\n      let groupCount = 0;\n      const radius = top === true ? radiusTop : radiusBottom;\n      const sign2 = top === true ? 1 : -1;\n      for (let x = 1; x <= radialSegments; x++) {\n        vertices.push(0, halfHeight * sign2, 0);\n        normals.push(0, sign2, 0);\n        uvs.push(0.5, 0.5);\n        index++;\n      }\n      const centerIndexEnd = index;\n      for (let x = 0; x <= radialSegments; x++) {\n        const u = x / radialSegments;\n        const theta = u * thetaLength + thetaStart;\n        const cosTheta = Math.cos(theta);\n        const sinTheta = Math.sin(theta);\n        vertex2.x = radius * sinTheta;\n        vertex2.y = halfHeight * sign2;\n        vertex2.z = radius * cosTheta;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normals.push(0, sign2, 0);\n        uv.x = cosTheta * 0.5 + 0.5;\n        uv.y = sinTheta * 0.5 * sign2 + 0.5;\n        uvs.push(uv.x, uv.y);\n        index++;\n      }\n      for (let x = 0; x < radialSegments; x++) {\n        const c = centerIndexStart + x;\n        const i = centerIndexEnd + x;\n        if (top === true) {\n          indices.push(i, i + 1, c);\n        } else {\n          indices.push(i + 1, i, c);\n        }\n        groupCount += 3;\n      }\n      scope.addGroup(groupStart, groupCount, top === true ? 1 : 2);\n      groupStart += groupCount;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _CylinderGeometry(data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n  }\n};\nvar ConeGeometry = class _ConeGeometry extends CylinderGeometry {\n  constructor(radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super(0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n    this.type = \"ConeGeometry\";\n    this.parameters = {\n      radius,\n      height,\n      radialSegments,\n      heightSegments,\n      openEnded,\n      thetaStart,\n      thetaLength\n    };\n  }\n  static fromJSON(data) {\n    return new _ConeGeometry(data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n  }\n};\nvar PolyhedronGeometry = class _PolyhedronGeometry extends BufferGeometry {\n  constructor(vertices = [], indices = [], radius = 1, detail = 0) {\n    super();\n    this.type = \"PolyhedronGeometry\";\n    this.parameters = {\n      vertices,\n      indices,\n      radius,\n      detail\n    };\n    const vertexBuffer = [];\n    const uvBuffer = [];\n    subdivide(detail);\n    applyRadius(radius);\n    generateUVs();\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertexBuffer, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(vertexBuffer.slice(), 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvBuffer, 2));\n    if (detail === 0) {\n      this.computeVertexNormals();\n    } else {\n      this.normalizeNormals();\n    }\n    function subdivide(detail2) {\n      const a = new Vector3();\n      const b = new Vector3();\n      const c = new Vector3();\n      for (let i = 0; i < indices.length; i += 3) {\n        getVertexByIndex(indices[i + 0], a);\n        getVertexByIndex(indices[i + 1], b);\n        getVertexByIndex(indices[i + 2], c);\n        subdivideFace(a, b, c, detail2);\n      }\n    }\n    function subdivideFace(a, b, c, detail2) {\n      const cols = detail2 + 1;\n      const v = [];\n      for (let i = 0; i <= cols; i++) {\n        v[i] = [];\n        const aj = a.clone().lerp(c, i / cols);\n        const bj = b.clone().lerp(c, i / cols);\n        const rows = cols - i;\n        for (let j = 0; j <= rows; j++) {\n          if (j === 0 && i === cols) {\n            v[i][j] = aj;\n          } else {\n            v[i][j] = aj.clone().lerp(bj, j / rows);\n          }\n        }\n      }\n      for (let i = 0; i < cols; i++) {\n        for (let j = 0; j < 2 * (cols - i) - 1; j++) {\n          const k = Math.floor(j / 2);\n          if (j % 2 === 0) {\n            pushVertex(v[i][k + 1]);\n            pushVertex(v[i + 1][k]);\n            pushVertex(v[i][k]);\n          } else {\n            pushVertex(v[i][k + 1]);\n            pushVertex(v[i + 1][k + 1]);\n            pushVertex(v[i + 1][k]);\n          }\n        }\n      }\n    }\n    function applyRadius(radius2) {\n      const vertex2 = new Vector3();\n      for (let i = 0; i < vertexBuffer.length; i += 3) {\n        vertex2.x = vertexBuffer[i + 0];\n        vertex2.y = vertexBuffer[i + 1];\n        vertex2.z = vertexBuffer[i + 2];\n        vertex2.normalize().multiplyScalar(radius2);\n        vertexBuffer[i + 0] = vertex2.x;\n        vertexBuffer[i + 1] = vertex2.y;\n        vertexBuffer[i + 2] = vertex2.z;\n      }\n    }\n    function generateUVs() {\n      const vertex2 = new Vector3();\n      for (let i = 0; i < vertexBuffer.length; i += 3) {\n        vertex2.x = vertexBuffer[i + 0];\n        vertex2.y = vertexBuffer[i + 1];\n        vertex2.z = vertexBuffer[i + 2];\n        const u = azimuth(vertex2) / 2 / Math.PI + 0.5;\n        const v = inclination(vertex2) / Math.PI + 0.5;\n        uvBuffer.push(u, 1 - v);\n      }\n      correctUVs();\n      correctSeam();\n    }\n    function correctSeam() {\n      for (let i = 0; i < uvBuffer.length; i += 6) {\n        const x0 = uvBuffer[i + 0];\n        const x1 = uvBuffer[i + 2];\n        const x2 = uvBuffer[i + 4];\n        const max = Math.max(x0, x1, x2);\n        const min = Math.min(x0, x1, x2);\n        if (max > 0.9 && min < 0.1) {\n          if (x0 < 0.2) uvBuffer[i + 0] += 1;\n          if (x1 < 0.2) uvBuffer[i + 2] += 1;\n          if (x2 < 0.2) uvBuffer[i + 4] += 1;\n        }\n      }\n    }\n    function pushVertex(vertex2) {\n      vertexBuffer.push(vertex2.x, vertex2.y, vertex2.z);\n    }\n    function getVertexByIndex(index, vertex2) {\n      const stride = index * 3;\n      vertex2.x = vertices[stride + 0];\n      vertex2.y = vertices[stride + 1];\n      vertex2.z = vertices[stride + 2];\n    }\n    function correctUVs() {\n      const a = new Vector3();\n      const b = new Vector3();\n      const c = new Vector3();\n      const centroid = new Vector3();\n      const uvA = new Vector2();\n      const uvB = new Vector2();\n      const uvC = new Vector2();\n      for (let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\n        a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\n        b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\n        c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\n        uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\n        uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\n        uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\n        centroid.copy(a).add(b).add(c).divideScalar(3);\n        const azi = azimuth(centroid);\n        correctUV(uvA, j + 0, a, azi);\n        correctUV(uvB, j + 2, b, azi);\n        correctUV(uvC, j + 4, c, azi);\n      }\n    }\n    function correctUV(uv, stride, vector, azimuth2) {\n      if (azimuth2 < 0 && uv.x === 1) {\n        uvBuffer[stride] = uv.x - 1;\n      }\n      if (vector.x === 0 && vector.z === 0) {\n        uvBuffer[stride] = azimuth2 / 2 / Math.PI + 0.5;\n      }\n    }\n    function azimuth(vector) {\n      return Math.atan2(vector.z, -vector.x);\n    }\n    function inclination(vector) {\n      return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _PolyhedronGeometry(data.vertices, data.indices, data.radius, data.details);\n  }\n};\nvar DodecahedronGeometry = class _DodecahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const t = (1 + Math.sqrt(5)) / 2;\n    const r = 1 / t;\n    const vertices = [\n      // (±1, ±1, ±1)\n      -1,\n      -1,\n      -1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      -1,\n      1,\n      1,\n      1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      1,\n      1,\n      -1,\n      1,\n      1,\n      1,\n      // (0, ±1/φ, ±φ)\n      0,\n      -r,\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      r,\n      -t,\n      0,\n      r,\n      t,\n      // (±1/φ, ±φ, 0)\n      -r,\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      r,\n      -t,\n      0,\n      r,\n      t,\n      0,\n      // (±φ, 0, ±1/φ)\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      -r,\n      -t,\n      0,\n      r,\n      t,\n      0,\n      r\n    ];\n    const indices = [\n      3,\n      11,\n      7,\n      3,\n      7,\n      15,\n      3,\n      15,\n      13,\n      7,\n      19,\n      17,\n      7,\n      17,\n      6,\n      7,\n      6,\n      15,\n      17,\n      4,\n      8,\n      17,\n      8,\n      10,\n      17,\n      10,\n      6,\n      8,\n      0,\n      16,\n      8,\n      16,\n      2,\n      8,\n      2,\n      10,\n      0,\n      12,\n      1,\n      0,\n      1,\n      18,\n      0,\n      18,\n      16,\n      6,\n      10,\n      2,\n      6,\n      2,\n      13,\n      6,\n      13,\n      15,\n      2,\n      16,\n      18,\n      2,\n      18,\n      3,\n      2,\n      3,\n      13,\n      18,\n      1,\n      9,\n      18,\n      9,\n      11,\n      18,\n      11,\n      3,\n      4,\n      14,\n      12,\n      4,\n      12,\n      0,\n      4,\n      0,\n      8,\n      11,\n      9,\n      5,\n      11,\n      5,\n      19,\n      11,\n      19,\n      7,\n      19,\n      5,\n      14,\n      19,\n      14,\n      4,\n      19,\n      4,\n      17,\n      1,\n      12,\n      14,\n      1,\n      14,\n      5,\n      1,\n      5,\n      9\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"DodecahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _DodecahedronGeometry(data.radius, data.detail);\n  }\n};\nvar _v0 = /* @__PURE__ */ new Vector3();\nvar _v1$1 = /* @__PURE__ */ new Vector3();\nvar _normal = /* @__PURE__ */ new Vector3();\nvar _triangle = /* @__PURE__ */ new Triangle();\nvar EdgesGeometry = class extends BufferGeometry {\n  constructor(geometry = null, thresholdAngle = 1) {\n    super();\n    this.type = \"EdgesGeometry\";\n    this.parameters = {\n      geometry,\n      thresholdAngle\n    };\n    if (geometry !== null) {\n      const precisionPoints = 4;\n      const precision = Math.pow(10, precisionPoints);\n      const thresholdDot = Math.cos(DEG2RAD * thresholdAngle);\n      const indexAttr = geometry.getIndex();\n      const positionAttr = geometry.getAttribute(\"position\");\n      const indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n      const indexArr = [0, 0, 0];\n      const vertKeys = [\"a\", \"b\", \"c\"];\n      const hashes = new Array(3);\n      const edgeData = {};\n      const vertices = [];\n      for (let i = 0; i < indexCount; i += 3) {\n        if (indexAttr) {\n          indexArr[0] = indexAttr.getX(i);\n          indexArr[1] = indexAttr.getX(i + 1);\n          indexArr[2] = indexAttr.getX(i + 2);\n        } else {\n          indexArr[0] = i;\n          indexArr[1] = i + 1;\n          indexArr[2] = i + 2;\n        }\n        const { a, b, c } = _triangle;\n        a.fromBufferAttribute(positionAttr, indexArr[0]);\n        b.fromBufferAttribute(positionAttr, indexArr[1]);\n        c.fromBufferAttribute(positionAttr, indexArr[2]);\n        _triangle.getNormal(_normal);\n        hashes[0] = `${Math.round(a.x * precision)},${Math.round(a.y * precision)},${Math.round(a.z * precision)}`;\n        hashes[1] = `${Math.round(b.x * precision)},${Math.round(b.y * precision)},${Math.round(b.z * precision)}`;\n        hashes[2] = `${Math.round(c.x * precision)},${Math.round(c.y * precision)},${Math.round(c.z * precision)}`;\n        if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) {\n          continue;\n        }\n        for (let j = 0; j < 3; j++) {\n          const jNext = (j + 1) % 3;\n          const vecHash0 = hashes[j];\n          const vecHash1 = hashes[jNext];\n          const v0 = _triangle[vertKeys[j]];\n          const v1 = _triangle[vertKeys[jNext]];\n          const hash = `${vecHash0}_${vecHash1}`;\n          const reverseHash = `${vecHash1}_${vecHash0}`;\n          if (reverseHash in edgeData && edgeData[reverseHash]) {\n            if (_normal.dot(edgeData[reverseHash].normal) <= thresholdDot) {\n              vertices.push(v0.x, v0.y, v0.z);\n              vertices.push(v1.x, v1.y, v1.z);\n            }\n            edgeData[reverseHash] = null;\n          } else if (!(hash in edgeData)) {\n            edgeData[hash] = {\n              index0: indexArr[j],\n              index1: indexArr[jNext],\n              normal: _normal.clone()\n            };\n          }\n        }\n      }\n      for (const key in edgeData) {\n        if (edgeData[key]) {\n          const { index0, index1 } = edgeData[key];\n          _v0.fromBufferAttribute(positionAttr, index0);\n          _v1$1.fromBufferAttribute(positionAttr, index1);\n          vertices.push(_v0.x, _v0.y, _v0.z);\n          vertices.push(_v1$1.x, _v1$1.y, _v1$1.z);\n        }\n      }\n      this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n};\nvar Shape = class extends Path {\n  constructor(points) {\n    super(points);\n    this.uuid = generateUUID();\n    this.type = \"Shape\";\n    this.holes = [];\n  }\n  getPointsHoles(divisions) {\n    const holesPts = [];\n    for (let i = 0, l = this.holes.length; i < l; i++) {\n      holesPts[i] = this.holes[i].getPoints(divisions);\n    }\n    return holesPts;\n  }\n  // get points of shape and holes (keypoints based on segments parameter)\n  extractPoints(divisions) {\n    return {\n      shape: this.getPoints(divisions),\n      holes: this.getPointsHoles(divisions)\n    };\n  }\n  copy(source) {\n    super.copy(source);\n    this.holes = [];\n    for (let i = 0, l = source.holes.length; i < l; i++) {\n      const hole = source.holes[i];\n      this.holes.push(hole.clone());\n    }\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.uuid = this.uuid;\n    data.holes = [];\n    for (let i = 0, l = this.holes.length; i < l; i++) {\n      const hole = this.holes[i];\n      data.holes.push(hole.toJSON());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.uuid = json.uuid;\n    this.holes = [];\n    for (let i = 0, l = json.holes.length; i < l; i++) {\n      const hole = json.holes[i];\n      this.holes.push(new Path().fromJSON(hole));\n    }\n    return this;\n  }\n};\nvar Earcut = {\n  triangulate: function(data, holeIndices, dim = 2) {\n    const hasHoles = holeIndices && holeIndices.length;\n    const outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n    let outerNode = linkedList(data, 0, outerLen, dim, true);\n    const triangles = [];\n    if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n    let minX, minY, maxX, maxY, x, y, invSize;\n    if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n    if (data.length > 80 * dim) {\n      minX = maxX = data[0];\n      minY = maxY = data[1];\n      for (let i = dim; i < outerLen; i += dim) {\n        x = data[i];\n        y = data[i + 1];\n        if (x < minX) minX = x;\n        if (y < minY) minY = y;\n        if (x > maxX) maxX = x;\n        if (y > maxY) maxY = y;\n      }\n      invSize = Math.max(maxX - minX, maxY - minY);\n      invSize = invSize !== 0 ? 32767 / invSize : 0;\n    }\n    earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n    return triangles;\n  }\n};\nfunction linkedList(data, start, end, dim, clockwise) {\n  let i, last;\n  if (clockwise === signedArea(data, start, end, dim) > 0) {\n    for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n  } else {\n    for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n  }\n  if (last && equals(last, last.next)) {\n    removeNode(last);\n    last = last.next;\n  }\n  return last;\n}\nfunction filterPoints(start, end) {\n  if (!start) return start;\n  if (!end) end = start;\n  let p = start, again;\n  do {\n    again = false;\n    if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n      removeNode(p);\n      p = end = p.prev;\n      if (p === p.next) break;\n      again = true;\n    } else {\n      p = p.next;\n    }\n  } while (again || p !== end);\n  return end;\n}\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n  if (!ear) return;\n  if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n  let stop = ear, prev, next;\n  while (ear.prev !== ear.next) {\n    prev = ear.prev;\n    next = ear.next;\n    if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n      triangles.push(prev.i / dim | 0);\n      triangles.push(ear.i / dim | 0);\n      triangles.push(next.i / dim | 0);\n      removeNode(ear);\n      ear = next.next;\n      stop = next.next;\n      continue;\n    }\n    ear = next;\n    if (ear === stop) {\n      if (!pass) {\n        earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n      } else if (pass === 1) {\n        ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n        earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n      } else if (pass === 2) {\n        splitEarcut(ear, triangles, dim, minX, minY, invSize);\n      }\n      break;\n    }\n  }\n}\nfunction isEar(ear) {\n  const a = ear.prev, b = ear, c = ear.next;\n  if (area(a, b, c) >= 0) return false;\n  const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n  const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n  let p = c.next;\n  while (p !== a) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.next;\n  }\n  return true;\n}\nfunction isEarHashed(ear, minX, minY, invSize) {\n  const a = ear.prev, b = ear, c = ear.next;\n  if (area(a, b, c) >= 0) return false;\n  const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n  const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n  const minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize);\n  let p = ear.prevZ, n = ear.nextZ;\n  while (p && p.z >= minZ && n && n.z <= maxZ) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.prevZ;\n    if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n    n = n.nextZ;\n  }\n  while (p && p.z >= minZ) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.prevZ;\n  }\n  while (n && n.z <= maxZ) {\n    if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n    n = n.nextZ;\n  }\n  return true;\n}\nfunction cureLocalIntersections(start, triangles, dim) {\n  let p = start;\n  do {\n    const a = p.prev, b = p.next.next;\n    if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n      triangles.push(a.i / dim | 0);\n      triangles.push(p.i / dim | 0);\n      triangles.push(b.i / dim | 0);\n      removeNode(p);\n      removeNode(p.next);\n      p = start = b;\n    }\n    p = p.next;\n  } while (p !== start);\n  return filterPoints(p);\n}\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n  let a = start;\n  do {\n    let b = a.next.next;\n    while (b !== a.prev) {\n      if (a.i !== b.i && isValidDiagonal(a, b)) {\n        let c = splitPolygon(a, b);\n        a = filterPoints(a, a.next);\n        c = filterPoints(c, c.next);\n        earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n        earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n        return;\n      }\n      b = b.next;\n    }\n    a = a.next;\n  } while (a !== start);\n}\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n  const queue = [];\n  let i, len, start, end, list;\n  for (i = 0, len = holeIndices.length; i < len; i++) {\n    start = holeIndices[i] * dim;\n    end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n    list = linkedList(data, start, end, dim, false);\n    if (list === list.next) list.steiner = true;\n    queue.push(getLeftmost(list));\n  }\n  queue.sort(compareX);\n  for (i = 0; i < queue.length; i++) {\n    outerNode = eliminateHole(queue[i], outerNode);\n  }\n  return outerNode;\n}\nfunction compareX(a, b) {\n  return a.x - b.x;\n}\nfunction eliminateHole(hole, outerNode) {\n  const bridge = findHoleBridge(hole, outerNode);\n  if (!bridge) {\n    return outerNode;\n  }\n  const bridgeReverse = splitPolygon(bridge, hole);\n  filterPoints(bridgeReverse, bridgeReverse.next);\n  return filterPoints(bridge, bridge.next);\n}\nfunction findHoleBridge(hole, outerNode) {\n  let p = outerNode, qx = -Infinity, m;\n  const hx = hole.x, hy = hole.y;\n  do {\n    if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n      const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n      if (x <= hx && x > qx) {\n        qx = x;\n        m = p.x < p.next.x ? p : p.next;\n        if (x === hx) return m;\n      }\n    }\n    p = p.next;\n  } while (p !== outerNode);\n  if (!m) return null;\n  const stop = m, mx = m.x, my = m.y;\n  let tanMin = Infinity, tan;\n  p = m;\n  do {\n    if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n      tan = Math.abs(hy - p.y) / (hx - p.x);\n      if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n        m = p;\n        tanMin = tan;\n      }\n    }\n    p = p.next;\n  } while (p !== stop);\n  return m;\n}\nfunction sectorContainsSector(m, p) {\n  return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\nfunction indexCurve(start, minX, minY, invSize) {\n  let p = start;\n  do {\n    if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n    p.prevZ = p.prev;\n    p.nextZ = p.next;\n    p = p.next;\n  } while (p !== start);\n  p.prevZ.nextZ = null;\n  p.prevZ = null;\n  sortLinked(p);\n}\nfunction sortLinked(list) {\n  let i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n  do {\n    p = list;\n    list = null;\n    tail = null;\n    numMerges = 0;\n    while (p) {\n      numMerges++;\n      q = p;\n      pSize = 0;\n      for (i = 0; i < inSize; i++) {\n        pSize++;\n        q = q.nextZ;\n        if (!q) break;\n      }\n      qSize = inSize;\n      while (pSize > 0 || qSize > 0 && q) {\n        if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n          e = p;\n          p = p.nextZ;\n          pSize--;\n        } else {\n          e = q;\n          q = q.nextZ;\n          qSize--;\n        }\n        if (tail) tail.nextZ = e;\n        else list = e;\n        e.prevZ = tail;\n        tail = e;\n      }\n      p = q;\n    }\n    tail.nextZ = null;\n    inSize *= 2;\n  } while (numMerges > 1);\n  return list;\n}\nfunction zOrder(x, y, minX, minY, invSize) {\n  x = (x - minX) * invSize | 0;\n  y = (y - minY) * invSize | 0;\n  x = (x | x << 8) & 16711935;\n  x = (x | x << 4) & 252645135;\n  x = (x | x << 2) & 858993459;\n  x = (x | x << 1) & 1431655765;\n  y = (y | y << 8) & 16711935;\n  y = (y | y << 4) & 252645135;\n  y = (y | y << 2) & 858993459;\n  y = (y | y << 1) & 1431655765;\n  return x | y << 1;\n}\nfunction getLeftmost(start) {\n  let p = start, leftmost = start;\n  do {\n    if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n    p = p.next;\n  } while (p !== start);\n  return leftmost;\n}\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px2, py2) {\n  return (cx - px2) * (ay - py2) >= (ax - px2) * (cy - py2) && (ax - px2) * (by - py2) >= (bx - px2) * (ay - py2) && (bx - px2) * (cy - py2) >= (cx - px2) * (by - py2);\n}\nfunction isValidDiagonal(a, b) {\n  return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n  (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n  (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n  equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n}\nfunction area(p, q, r) {\n  return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\nfunction equals(p1, p2) {\n  return p1.x === p2.x && p1.y === p2.y;\n}\nfunction intersects(p1, q1, p2, q2) {\n  const o1 = sign(area(p1, q1, p2));\n  const o2 = sign(area(p1, q1, q2));\n  const o3 = sign(area(p2, q2, p1));\n  const o4 = sign(area(p2, q2, q1));\n  if (o1 !== o2 && o3 !== o4) return true;\n  if (o1 === 0 && onSegment(p1, p2, q1)) return true;\n  if (o2 === 0 && onSegment(p1, q2, q1)) return true;\n  if (o3 === 0 && onSegment(p2, p1, q2)) return true;\n  if (o4 === 0 && onSegment(p2, q1, q2)) return true;\n  return false;\n}\nfunction onSegment(p, q, r) {\n  return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\nfunction sign(num) {\n  return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\nfunction intersectsPolygon(a, b) {\n  let p = a;\n  do {\n    if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n    p = p.next;\n  } while (p !== a);\n  return false;\n}\nfunction locallyInside(a, b) {\n  return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\nfunction middleInside(a, b) {\n  let p = a, inside = false;\n  const px2 = (a.x + b.x) / 2, py2 = (a.y + b.y) / 2;\n  do {\n    if (p.y > py2 !== p.next.y > py2 && p.next.y !== p.y && px2 < (p.next.x - p.x) * (py2 - p.y) / (p.next.y - p.y) + p.x)\n      inside = !inside;\n    p = p.next;\n  } while (p !== a);\n  return inside;\n}\nfunction splitPolygon(a, b) {\n  const a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n  a.next = b;\n  b.prev = a;\n  a2.next = an;\n  an.prev = a2;\n  b2.next = a2;\n  a2.prev = b2;\n  bp.next = b2;\n  b2.prev = bp;\n  return b2;\n}\nfunction insertNode(i, x, y, last) {\n  const p = new Node(i, x, y);\n  if (!last) {\n    p.prev = p;\n    p.next = p;\n  } else {\n    p.next = last.next;\n    p.prev = last;\n    last.next.prev = p;\n    last.next = p;\n  }\n  return p;\n}\nfunction removeNode(p) {\n  p.next.prev = p.prev;\n  p.prev.next = p.next;\n  if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n  if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\nfunction Node(i, x, y) {\n  this.i = i;\n  this.x = x;\n  this.y = y;\n  this.prev = null;\n  this.next = null;\n  this.z = 0;\n  this.prevZ = null;\n  this.nextZ = null;\n  this.steiner = false;\n}\nfunction signedArea(data, start, end, dim) {\n  let sum = 0;\n  for (let i = start, j = end - dim; i < end; i += dim) {\n    sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n    j = i;\n  }\n  return sum;\n}\nvar ShapeUtils = class _ShapeUtils {\n  // calculate area of the contour polygon\n  static area(contour) {\n    const n = contour.length;\n    let a = 0;\n    for (let p = n - 1, q = 0; q < n; p = q++) {\n      a += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\n    }\n    return a * 0.5;\n  }\n  static isClockWise(pts) {\n    return _ShapeUtils.area(pts) < 0;\n  }\n  static triangulateShape(contour, holes) {\n    const vertices = [];\n    const holeIndices = [];\n    const faces = [];\n    removeDupEndPts(contour);\n    addContour(vertices, contour);\n    let holeIndex = contour.length;\n    holes.forEach(removeDupEndPts);\n    for (let i = 0; i < holes.length; i++) {\n      holeIndices.push(holeIndex);\n      holeIndex += holes[i].length;\n      addContour(vertices, holes[i]);\n    }\n    const triangles = Earcut.triangulate(vertices, holeIndices);\n    for (let i = 0; i < triangles.length; i += 3) {\n      faces.push(triangles.slice(i, i + 3));\n    }\n    return faces;\n  }\n};\nfunction removeDupEndPts(points) {\n  const l = points.length;\n  if (l > 2 && points[l - 1].equals(points[0])) {\n    points.pop();\n  }\n}\nfunction addContour(vertices, contour) {\n  for (let i = 0; i < contour.length; i++) {\n    vertices.push(contour[i].x);\n    vertices.push(contour[i].y);\n  }\n}\nvar ExtrudeGeometry = class _ExtrudeGeometry extends BufferGeometry {\n  constructor(shapes = new Shape([new Vector2(0.5, 0.5), new Vector2(-0.5, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), options = {}) {\n    super();\n    this.type = \"ExtrudeGeometry\";\n    this.parameters = {\n      shapes,\n      options\n    };\n    shapes = Array.isArray(shapes) ? shapes : [shapes];\n    const scope = this;\n    const verticesArray = [];\n    const uvArray = [];\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      addShape(shape);\n    }\n    this.setAttribute(\"position\", new Float32BufferAttribute(verticesArray, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvArray, 2));\n    this.computeVertexNormals();\n    function addShape(shape) {\n      const placeholder = [];\n      const curveSegments = options.curveSegments !== void 0 ? options.curveSegments : 12;\n      const steps = options.steps !== void 0 ? options.steps : 1;\n      const depth = options.depth !== void 0 ? options.depth : 1;\n      let bevelEnabled = options.bevelEnabled !== void 0 ? options.bevelEnabled : true;\n      let bevelThickness = options.bevelThickness !== void 0 ? options.bevelThickness : 0.2;\n      let bevelSize = options.bevelSize !== void 0 ? options.bevelSize : bevelThickness - 0.1;\n      let bevelOffset = options.bevelOffset !== void 0 ? options.bevelOffset : 0;\n      let bevelSegments = options.bevelSegments !== void 0 ? options.bevelSegments : 3;\n      const extrudePath = options.extrudePath;\n      const uvgen = options.UVGenerator !== void 0 ? options.UVGenerator : WorldUVGenerator;\n      let extrudePts, extrudeByPath = false;\n      let splineTube, binormal, normal, position2;\n      if (extrudePath) {\n        extrudePts = extrudePath.getSpacedPoints(steps);\n        extrudeByPath = true;\n        bevelEnabled = false;\n        splineTube = extrudePath.computeFrenetFrames(steps, false);\n        binormal = new Vector3();\n        normal = new Vector3();\n        position2 = new Vector3();\n      }\n      if (!bevelEnabled) {\n        bevelSegments = 0;\n        bevelThickness = 0;\n        bevelSize = 0;\n        bevelOffset = 0;\n      }\n      const shapePoints = shape.extractPoints(curveSegments);\n      let vertices = shapePoints.shape;\n      const holes = shapePoints.holes;\n      const reverse = !ShapeUtils.isClockWise(vertices);\n      if (reverse) {\n        vertices = vertices.reverse();\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          if (ShapeUtils.isClockWise(ahole)) {\n            holes[h] = ahole.reverse();\n          }\n        }\n      }\n      const faces = ShapeUtils.triangulateShape(vertices, holes);\n      const contour = vertices;\n      for (let h = 0, hl = holes.length; h < hl; h++) {\n        const ahole = holes[h];\n        vertices = vertices.concat(ahole);\n      }\n      function scalePt2(pt, vec, size) {\n        if (!vec) console.error(\"THREE.ExtrudeGeometry: vec does not exist\");\n        return pt.clone().addScaledVector(vec, size);\n      }\n      const vlen = vertices.length, flen = faces.length;\n      function getBevelVec(inPt, inPrev, inNext) {\n        let v_trans_x, v_trans_y, shrink_by;\n        const v_prev_x = inPt.x - inPrev.x, v_prev_y = inPt.y - inPrev.y;\n        const v_next_x = inNext.x - inPt.x, v_next_y = inNext.y - inPt.y;\n        const v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y;\n        const collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\n        if (Math.abs(collinear0) > Number.EPSILON) {\n          const v_prev_len = Math.sqrt(v_prev_lensq);\n          const v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y);\n          const ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\n          const ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\n          const ptNextShift_x = inNext.x - v_next_y / v_next_len;\n          const ptNextShift_y = inNext.y + v_next_x / v_next_len;\n          const sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x);\n          v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\n          v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y;\n          const v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\n          if (v_trans_lensq <= 2) {\n            return new Vector2(v_trans_x, v_trans_y);\n          } else {\n            shrink_by = Math.sqrt(v_trans_lensq / 2);\n          }\n        } else {\n          let direction_eq = false;\n          if (v_prev_x > Number.EPSILON) {\n            if (v_next_x > Number.EPSILON) {\n              direction_eq = true;\n            }\n          } else {\n            if (v_prev_x < -Number.EPSILON) {\n              if (v_next_x < -Number.EPSILON) {\n                direction_eq = true;\n              }\n            } else {\n              if (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\n                direction_eq = true;\n              }\n            }\n          }\n          if (direction_eq) {\n            v_trans_x = -v_prev_y;\n            v_trans_y = v_prev_x;\n            shrink_by = Math.sqrt(v_prev_lensq);\n          } else {\n            v_trans_x = v_prev_x;\n            v_trans_y = v_prev_y;\n            shrink_by = Math.sqrt(v_prev_lensq / 2);\n          }\n        }\n        return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\n      }\n      const contourMovements = [];\n      for (let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n        if (j === il) j = 0;\n        if (k === il) k = 0;\n        contourMovements[i] = getBevelVec(contour[i], contour[j], contour[k]);\n      }\n      const holesMovements = [];\n      let oneHoleMovements, verticesMovements = contourMovements.concat();\n      for (let h = 0, hl = holes.length; h < hl; h++) {\n        const ahole = holes[h];\n        oneHoleMovements = [];\n        for (let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n          if (j === il) j = 0;\n          if (k === il) k = 0;\n          oneHoleMovements[i] = getBevelVec(ahole[i], ahole[j], ahole[k]);\n        }\n        holesMovements.push(oneHoleMovements);\n        verticesMovements = verticesMovements.concat(oneHoleMovements);\n      }\n      for (let b = 0; b < bevelSegments; b++) {\n        const t = b / bevelSegments;\n        const z = bevelThickness * Math.cos(t * Math.PI / 2);\n        const bs2 = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset;\n        for (let i = 0, il = contour.length; i < il; i++) {\n          const vert = scalePt2(contour[i], contourMovements[i], bs2);\n          v(vert.x, vert.y, -z);\n        }\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          oneHoleMovements = holesMovements[h];\n          for (let i = 0, il = ahole.length; i < il; i++) {\n            const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2);\n            v(vert.x, vert.y, -z);\n          }\n        }\n      }\n      const bs = bevelSize + bevelOffset;\n      for (let i = 0; i < vlen; i++) {\n        const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n        if (!extrudeByPath) {\n          v(vert.x, vert.y, 0);\n        } else {\n          normal.copy(splineTube.normals[0]).multiplyScalar(vert.x);\n          binormal.copy(splineTube.binormals[0]).multiplyScalar(vert.y);\n          position2.copy(extrudePts[0]).add(normal).add(binormal);\n          v(position2.x, position2.y, position2.z);\n        }\n      }\n      for (let s = 1; s <= steps; s++) {\n        for (let i = 0; i < vlen; i++) {\n          const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n          if (!extrudeByPath) {\n            v(vert.x, vert.y, depth / steps * s);\n          } else {\n            normal.copy(splineTube.normals[s]).multiplyScalar(vert.x);\n            binormal.copy(splineTube.binormals[s]).multiplyScalar(vert.y);\n            position2.copy(extrudePts[s]).add(normal).add(binormal);\n            v(position2.x, position2.y, position2.z);\n          }\n        }\n      }\n      for (let b = bevelSegments - 1; b >= 0; b--) {\n        const t = b / bevelSegments;\n        const z = bevelThickness * Math.cos(t * Math.PI / 2);\n        const bs2 = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset;\n        for (let i = 0, il = contour.length; i < il; i++) {\n          const vert = scalePt2(contour[i], contourMovements[i], bs2);\n          v(vert.x, vert.y, depth + z);\n        }\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          oneHoleMovements = holesMovements[h];\n          for (let i = 0, il = ahole.length; i < il; i++) {\n            const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2);\n            if (!extrudeByPath) {\n              v(vert.x, vert.y, depth + z);\n            } else {\n              v(vert.x, vert.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + z);\n            }\n          }\n        }\n      }\n      buildLidFaces();\n      buildSideFaces();\n      function buildLidFaces() {\n        const start = verticesArray.length / 3;\n        if (bevelEnabled) {\n          let layer = 0;\n          let offset = vlen * layer;\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[2] + offset, face[1] + offset, face[0] + offset);\n          }\n          layer = steps + bevelSegments * 2;\n          offset = vlen * layer;\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[0] + offset, face[1] + offset, face[2] + offset);\n          }\n        } else {\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[2], face[1], face[0]);\n          }\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[0] + vlen * steps, face[1] + vlen * steps, face[2] + vlen * steps);\n          }\n        }\n        scope.addGroup(start, verticesArray.length / 3 - start, 0);\n      }\n      function buildSideFaces() {\n        const start = verticesArray.length / 3;\n        let layeroffset = 0;\n        sidewalls(contour, layeroffset);\n        layeroffset += contour.length;\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          sidewalls(ahole, layeroffset);\n          layeroffset += ahole.length;\n        }\n        scope.addGroup(start, verticesArray.length / 3 - start, 1);\n      }\n      function sidewalls(contour2, layeroffset) {\n        let i = contour2.length;\n        while (--i >= 0) {\n          const j = i;\n          let k = i - 1;\n          if (k < 0) k = contour2.length - 1;\n          for (let s = 0, sl = steps + bevelSegments * 2; s < sl; s++) {\n            const slen1 = vlen * s;\n            const slen2 = vlen * (s + 1);\n            const a = layeroffset + j + slen1, b = layeroffset + k + slen1, c = layeroffset + k + slen2, d = layeroffset + j + slen2;\n            f4(a, b, c, d);\n          }\n        }\n      }\n      function v(x, y, z) {\n        placeholder.push(x);\n        placeholder.push(y);\n        placeholder.push(z);\n      }\n      function f3(a, b, c) {\n        addVertex(a);\n        addVertex(b);\n        addVertex(c);\n        const nextIndex = verticesArray.length / 3;\n        const uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n        addUV(uvs[0]);\n        addUV(uvs[1]);\n        addUV(uvs[2]);\n      }\n      function f4(a, b, c, d) {\n        addVertex(a);\n        addVertex(b);\n        addVertex(d);\n        addVertex(b);\n        addVertex(c);\n        addVertex(d);\n        const nextIndex = verticesArray.length / 3;\n        const uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n        addUV(uvs[0]);\n        addUV(uvs[1]);\n        addUV(uvs[3]);\n        addUV(uvs[1]);\n        addUV(uvs[2]);\n        addUV(uvs[3]);\n      }\n      function addVertex(index) {\n        verticesArray.push(placeholder[index * 3 + 0]);\n        verticesArray.push(placeholder[index * 3 + 1]);\n        verticesArray.push(placeholder[index * 3 + 2]);\n      }\n      function addUV(vector2) {\n        uvArray.push(vector2.x);\n        uvArray.push(vector2.y);\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    const shapes = this.parameters.shapes;\n    const options = this.parameters.options;\n    return toJSON$1(shapes, options, data);\n  }\n  static fromJSON(data, shapes) {\n    const geometryShapes = [];\n    for (let j = 0, jl = data.shapes.length; j < jl; j++) {\n      const shape = shapes[data.shapes[j]];\n      geometryShapes.push(shape);\n    }\n    const extrudePath = data.options.extrudePath;\n    if (extrudePath !== void 0) {\n      data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\n    }\n    return new _ExtrudeGeometry(geometryShapes, data.options);\n  }\n};\nvar WorldUVGenerator = {\n  generateTopUV: function(geometry, vertices, indexA, indexB, indexC) {\n    const a_x = vertices[indexA * 3];\n    const a_y = vertices[indexA * 3 + 1];\n    const b_x = vertices[indexB * 3];\n    const b_y = vertices[indexB * 3 + 1];\n    const c_x = vertices[indexC * 3];\n    const c_y = vertices[indexC * 3 + 1];\n    return [\n      new Vector2(a_x, a_y),\n      new Vector2(b_x, b_y),\n      new Vector2(c_x, c_y)\n    ];\n  },\n  generateSideWallUV: function(geometry, vertices, indexA, indexB, indexC, indexD) {\n    const a_x = vertices[indexA * 3];\n    const a_y = vertices[indexA * 3 + 1];\n    const a_z = vertices[indexA * 3 + 2];\n    const b_x = vertices[indexB * 3];\n    const b_y = vertices[indexB * 3 + 1];\n    const b_z = vertices[indexB * 3 + 2];\n    const c_x = vertices[indexC * 3];\n    const c_y = vertices[indexC * 3 + 1];\n    const c_z = vertices[indexC * 3 + 2];\n    const d_x = vertices[indexD * 3];\n    const d_y = vertices[indexD * 3 + 1];\n    const d_z = vertices[indexD * 3 + 2];\n    if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) {\n      return [\n        new Vector2(a_x, 1 - a_z),\n        new Vector2(b_x, 1 - b_z),\n        new Vector2(c_x, 1 - c_z),\n        new Vector2(d_x, 1 - d_z)\n      ];\n    } else {\n      return [\n        new Vector2(a_y, 1 - a_z),\n        new Vector2(b_y, 1 - b_z),\n        new Vector2(c_y, 1 - c_z),\n        new Vector2(d_y, 1 - d_z)\n      ];\n    }\n  }\n};\nfunction toJSON$1(shapes, options, data) {\n  data.shapes = [];\n  if (Array.isArray(shapes)) {\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      data.shapes.push(shape.uuid);\n    }\n  } else {\n    data.shapes.push(shapes.uuid);\n  }\n  data.options = Object.assign({}, options);\n  if (options.extrudePath !== void 0) data.options.extrudePath = options.extrudePath.toJSON();\n  return data;\n}\nvar IcosahedronGeometry = class _IcosahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const t = (1 + Math.sqrt(5)) / 2;\n    const vertices = [\n      -1,\n      t,\n      0,\n      1,\n      t,\n      0,\n      -1,\n      -t,\n      0,\n      1,\n      -t,\n      0,\n      0,\n      -1,\n      t,\n      0,\n      1,\n      t,\n      0,\n      -1,\n      -t,\n      0,\n      1,\n      -t,\n      t,\n      0,\n      -1,\n      t,\n      0,\n      1,\n      -t,\n      0,\n      -1,\n      -t,\n      0,\n      1\n    ];\n    const indices = [\n      0,\n      11,\n      5,\n      0,\n      5,\n      1,\n      0,\n      1,\n      7,\n      0,\n      7,\n      10,\n      0,\n      10,\n      11,\n      1,\n      5,\n      9,\n      5,\n      11,\n      4,\n      11,\n      10,\n      2,\n      10,\n      7,\n      6,\n      7,\n      1,\n      8,\n      3,\n      9,\n      4,\n      3,\n      4,\n      2,\n      3,\n      2,\n      6,\n      3,\n      6,\n      8,\n      3,\n      8,\n      9,\n      4,\n      9,\n      5,\n      2,\n      4,\n      11,\n      6,\n      2,\n      10,\n      8,\n      6,\n      7,\n      9,\n      8,\n      1\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"IcosahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _IcosahedronGeometry(data.radius, data.detail);\n  }\n};\nvar OctahedronGeometry = class _OctahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const vertices = [\n      1,\n      0,\n      0,\n      -1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -1\n    ];\n    const indices = [\n      0,\n      2,\n      4,\n      0,\n      4,\n      3,\n      0,\n      3,\n      5,\n      0,\n      5,\n      2,\n      1,\n      2,\n      5,\n      1,\n      5,\n      3,\n      1,\n      3,\n      4,\n      1,\n      4,\n      2\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"OctahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _OctahedronGeometry(data.radius, data.detail);\n  }\n};\nvar RingGeometry = class _RingGeometry extends BufferGeometry {\n  constructor(innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"RingGeometry\";\n    this.parameters = {\n      innerRadius,\n      outerRadius,\n      thetaSegments,\n      phiSegments,\n      thetaStart,\n      thetaLength\n    };\n    thetaSegments = Math.max(3, thetaSegments);\n    phiSegments = Math.max(1, phiSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let radius = innerRadius;\n    const radiusStep = (outerRadius - innerRadius) / phiSegments;\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    for (let j = 0; j <= phiSegments; j++) {\n      for (let i = 0; i <= thetaSegments; i++) {\n        const segment = thetaStart + i / thetaSegments * thetaLength;\n        vertex2.x = radius * Math.cos(segment);\n        vertex2.y = radius * Math.sin(segment);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normals.push(0, 0, 1);\n        uv.x = (vertex2.x / outerRadius + 1) / 2;\n        uv.y = (vertex2.y / outerRadius + 1) / 2;\n        uvs.push(uv.x, uv.y);\n      }\n      radius += radiusStep;\n    }\n    for (let j = 0; j < phiSegments; j++) {\n      const thetaSegmentLevel = j * (thetaSegments + 1);\n      for (let i = 0; i < thetaSegments; i++) {\n        const segment = i + thetaSegmentLevel;\n        const a = segment;\n        const b = segment + thetaSegments + 1;\n        const c = segment + thetaSegments + 2;\n        const d = segment + 1;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _RingGeometry(data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\n  }\n};\nvar ShapeGeometry = class _ShapeGeometry extends BufferGeometry {\n  constructor(shapes = new Shape([new Vector2(0, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), curveSegments = 12) {\n    super();\n    this.type = \"ShapeGeometry\";\n    this.parameters = {\n      shapes,\n      curveSegments\n    };\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let groupStart = 0;\n    let groupCount = 0;\n    if (Array.isArray(shapes) === false) {\n      addShape(shapes);\n    } else {\n      for (let i = 0; i < shapes.length; i++) {\n        addShape(shapes[i]);\n        this.addGroup(groupStart, groupCount, i);\n        groupStart += groupCount;\n        groupCount = 0;\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function addShape(shape) {\n      const indexOffset = vertices.length / 3;\n      const points = shape.extractPoints(curveSegments);\n      let shapeVertices = points.shape;\n      const shapeHoles = points.holes;\n      if (ShapeUtils.isClockWise(shapeVertices) === false) {\n        shapeVertices = shapeVertices.reverse();\n      }\n      for (let i = 0, l = shapeHoles.length; i < l; i++) {\n        const shapeHole = shapeHoles[i];\n        if (ShapeUtils.isClockWise(shapeHole) === true) {\n          shapeHoles[i] = shapeHole.reverse();\n        }\n      }\n      const faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles);\n      for (let i = 0, l = shapeHoles.length; i < l; i++) {\n        const shapeHole = shapeHoles[i];\n        shapeVertices = shapeVertices.concat(shapeHole);\n      }\n      for (let i = 0, l = shapeVertices.length; i < l; i++) {\n        const vertex2 = shapeVertices[i];\n        vertices.push(vertex2.x, vertex2.y, 0);\n        normals.push(0, 0, 1);\n        uvs.push(vertex2.x, vertex2.y);\n      }\n      for (let i = 0, l = faces.length; i < l; i++) {\n        const face = faces[i];\n        const a = face[0] + indexOffset;\n        const b = face[1] + indexOffset;\n        const c = face[2] + indexOffset;\n        indices.push(a, b, c);\n        groupCount += 3;\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    const shapes = this.parameters.shapes;\n    return toJSON(shapes, data);\n  }\n  static fromJSON(data, shapes) {\n    const geometryShapes = [];\n    for (let j = 0, jl = data.shapes.length; j < jl; j++) {\n      const shape = shapes[data.shapes[j]];\n      geometryShapes.push(shape);\n    }\n    return new _ShapeGeometry(geometryShapes, data.curveSegments);\n  }\n};\nfunction toJSON(shapes, data) {\n  data.shapes = [];\n  if (Array.isArray(shapes)) {\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      data.shapes.push(shape.uuid);\n    }\n  } else {\n    data.shapes.push(shapes.uuid);\n  }\n  return data;\n}\nvar SphereGeometry = class _SphereGeometry extends BufferGeometry {\n  constructor(radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI) {\n    super();\n    this.type = \"SphereGeometry\";\n    this.parameters = {\n      radius,\n      widthSegments,\n      heightSegments,\n      phiStart,\n      phiLength,\n      thetaStart,\n      thetaLength\n    };\n    widthSegments = Math.max(3, Math.floor(widthSegments));\n    heightSegments = Math.max(2, Math.floor(heightSegments));\n    const thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\n    let index = 0;\n    const grid = [];\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    for (let iy = 0; iy <= heightSegments; iy++) {\n      const verticesRow = [];\n      const v = iy / heightSegments;\n      let uOffset = 0;\n      if (iy === 0 && thetaStart === 0) {\n        uOffset = 0.5 / widthSegments;\n      } else if (iy === heightSegments && thetaEnd === Math.PI) {\n        uOffset = -0.5 / widthSegments;\n      }\n      for (let ix = 0; ix <= widthSegments; ix++) {\n        const u = ix / widthSegments;\n        vertex2.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n        vertex2.y = radius * Math.cos(thetaStart + v * thetaLength);\n        vertex2.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normal.copy(vertex2).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(u + uOffset, 1 - v);\n        verticesRow.push(index++);\n      }\n      grid.push(verticesRow);\n    }\n    for (let iy = 0; iy < heightSegments; iy++) {\n      for (let ix = 0; ix < widthSegments; ix++) {\n        const a = grid[iy][ix + 1];\n        const b = grid[iy][ix];\n        const c = grid[iy + 1][ix];\n        const d = grid[iy + 1][ix + 1];\n        if (iy !== 0 || thetaStart > 0) indices.push(a, b, d);\n        if (iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _SphereGeometry(data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\n  }\n};\nvar TetrahedronGeometry = class _TetrahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const vertices = [\n      1,\n      1,\n      1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      -1\n    ];\n    const indices = [\n      2,\n      1,\n      0,\n      0,\n      3,\n      2,\n      1,\n      3,\n      0,\n      2,\n      3,\n      1\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"TetrahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _TetrahedronGeometry(data.radius, data.detail);\n  }\n};\nvar TorusGeometry = class _TorusGeometry extends BufferGeometry {\n  constructor(radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2) {\n    super();\n    this.type = \"TorusGeometry\";\n    this.parameters = {\n      radius,\n      tube,\n      radialSegments,\n      tubularSegments,\n      arc\n    };\n    radialSegments = Math.floor(radialSegments);\n    tubularSegments = Math.floor(tubularSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const center = new Vector3();\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    for (let j = 0; j <= radialSegments; j++) {\n      for (let i = 0; i <= tubularSegments; i++) {\n        const u = i / tubularSegments * arc;\n        const v = j / radialSegments * Math.PI * 2;\n        vertex2.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n        vertex2.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n        vertex2.z = tube * Math.sin(v);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        center.x = radius * Math.cos(u);\n        center.y = radius * Math.sin(u);\n        normal.subVectors(vertex2, center).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(i / tubularSegments);\n        uvs.push(j / radialSegments);\n      }\n    }\n    for (let j = 1; j <= radialSegments; j++) {\n      for (let i = 1; i <= tubularSegments; i++) {\n        const a = (tubularSegments + 1) * j + i - 1;\n        const b = (tubularSegments + 1) * (j - 1) + i - 1;\n        const c = (tubularSegments + 1) * (j - 1) + i;\n        const d = (tubularSegments + 1) * j + i;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _TorusGeometry(data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\n  }\n};\nvar TorusKnotGeometry = class _TorusKnotGeometry extends BufferGeometry {\n  constructor(radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3) {\n    super();\n    this.type = \"TorusKnotGeometry\";\n    this.parameters = {\n      radius,\n      tube,\n      tubularSegments,\n      radialSegments,\n      p,\n      q\n    };\n    tubularSegments = Math.floor(tubularSegments);\n    radialSegments = Math.floor(radialSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const P1 = new Vector3();\n    const P2 = new Vector3();\n    const B = new Vector3();\n    const T = new Vector3();\n    const N = new Vector3();\n    for (let i = 0; i <= tubularSegments; ++i) {\n      const u = i / tubularSegments * p * Math.PI * 2;\n      calculatePositionOnCurve(u, p, q, radius, P1);\n      calculatePositionOnCurve(u + 0.01, p, q, radius, P2);\n      T.subVectors(P2, P1);\n      N.addVectors(P2, P1);\n      B.crossVectors(T, N);\n      N.crossVectors(B, T);\n      B.normalize();\n      N.normalize();\n      for (let j = 0; j <= radialSegments; ++j) {\n        const v = j / radialSegments * Math.PI * 2;\n        const cx = -tube * Math.cos(v);\n        const cy = tube * Math.sin(v);\n        vertex2.x = P1.x + (cx * N.x + cy * B.x);\n        vertex2.y = P1.y + (cx * N.y + cy * B.y);\n        vertex2.z = P1.z + (cx * N.z + cy * B.z);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normal.subVectors(vertex2, P1).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(i / tubularSegments);\n        uvs.push(j / radialSegments);\n      }\n    }\n    for (let j = 1; j <= tubularSegments; j++) {\n      for (let i = 1; i <= radialSegments; i++) {\n        const a = (radialSegments + 1) * (j - 1) + (i - 1);\n        const b = (radialSegments + 1) * j + (i - 1);\n        const c = (radialSegments + 1) * j + i;\n        const d = (radialSegments + 1) * (j - 1) + i;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function calculatePositionOnCurve(u, p2, q2, radius2, position) {\n      const cu = Math.cos(u);\n      const su = Math.sin(u);\n      const quOverP = q2 / p2 * u;\n      const cs = Math.cos(quOverP);\n      position.x = radius2 * (2 + cs) * 0.5 * cu;\n      position.y = radius2 * (2 + cs) * su * 0.5;\n      position.z = radius2 * Math.sin(quOverP) * 0.5;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _TorusKnotGeometry(data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\n  }\n};\nvar TubeGeometry = class _TubeGeometry extends BufferGeometry {\n  constructor(path = new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0)), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false) {\n    super();\n    this.type = \"TubeGeometry\";\n    this.parameters = {\n      path,\n      tubularSegments,\n      radius,\n      radialSegments,\n      closed\n    };\n    const frames = path.computeFrenetFrames(tubularSegments, closed);\n    this.tangents = frames.tangents;\n    this.normals = frames.normals;\n    this.binormals = frames.binormals;\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const uv = new Vector2();\n    let P = new Vector3();\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const indices = [];\n    generateBufferData();\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function generateBufferData() {\n      for (let i = 0; i < tubularSegments; i++) {\n        generateSegment(i);\n      }\n      generateSegment(closed === false ? tubularSegments : 0);\n      generateUVs();\n      generateIndices();\n    }\n    function generateSegment(i) {\n      P = path.getPointAt(i / tubularSegments, P);\n      const N = frames.normals[i];\n      const B = frames.binormals[i];\n      for (let j = 0; j <= radialSegments; j++) {\n        const v = j / radialSegments * Math.PI * 2;\n        const sin = Math.sin(v);\n        const cos = -Math.cos(v);\n        normal.x = cos * N.x + sin * B.x;\n        normal.y = cos * N.y + sin * B.y;\n        normal.z = cos * N.z + sin * B.z;\n        normal.normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        vertex2.x = P.x + radius * normal.x;\n        vertex2.y = P.y + radius * normal.y;\n        vertex2.z = P.z + radius * normal.z;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n      }\n    }\n    function generateIndices() {\n      for (let j = 1; j <= tubularSegments; j++) {\n        for (let i = 1; i <= radialSegments; i++) {\n          const a = (radialSegments + 1) * (j - 1) + (i - 1);\n          const b = (radialSegments + 1) * j + (i - 1);\n          const c = (radialSegments + 1) * j + i;\n          const d = (radialSegments + 1) * (j - 1) + i;\n          indices.push(a, b, d);\n          indices.push(b, c, d);\n        }\n      }\n    }\n    function generateUVs() {\n      for (let i = 0; i <= tubularSegments; i++) {\n        for (let j = 0; j <= radialSegments; j++) {\n          uv.x = i / tubularSegments;\n          uv.y = j / radialSegments;\n          uvs.push(uv.x, uv.y);\n        }\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.path = this.parameters.path.toJSON();\n    return data;\n  }\n  static fromJSON(data) {\n    return new _TubeGeometry(\n      new Curves[data.path.type]().fromJSON(data.path),\n      data.tubularSegments,\n      data.radius,\n      data.radialSegments,\n      data.closed\n    );\n  }\n};\nvar WireframeGeometry = class extends BufferGeometry {\n  constructor(geometry = null) {\n    super();\n    this.type = \"WireframeGeometry\";\n    this.parameters = {\n      geometry\n    };\n    if (geometry !== null) {\n      const vertices = [];\n      const edges = /* @__PURE__ */ new Set();\n      const start = new Vector3();\n      const end = new Vector3();\n      if (geometry.index !== null) {\n        const position = geometry.attributes.position;\n        const indices = geometry.index;\n        let groups = geometry.groups;\n        if (groups.length === 0) {\n          groups = [{ start: 0, count: indices.count, materialIndex: 0 }];\n        }\n        for (let o = 0, ol = groups.length; o < ol; ++o) {\n          const group = groups[o];\n          const groupStart = group.start;\n          const groupCount = group.count;\n          for (let i = groupStart, l = groupStart + groupCount; i < l; i += 3) {\n            for (let j = 0; j < 3; j++) {\n              const index1 = indices.getX(i + j);\n              const index2 = indices.getX(i + (j + 1) % 3);\n              start.fromBufferAttribute(position, index1);\n              end.fromBufferAttribute(position, index2);\n              if (isUniqueEdge(start, end, edges) === true) {\n                vertices.push(start.x, start.y, start.z);\n                vertices.push(end.x, end.y, end.z);\n              }\n            }\n          }\n        }\n      } else {\n        const position = geometry.attributes.position;\n        for (let i = 0, l = position.count / 3; i < l; i++) {\n          for (let j = 0; j < 3; j++) {\n            const index1 = 3 * i + j;\n            const index2 = 3 * i + (j + 1) % 3;\n            start.fromBufferAttribute(position, index1);\n            end.fromBufferAttribute(position, index2);\n            if (isUniqueEdge(start, end, edges) === true) {\n              vertices.push(start.x, start.y, start.z);\n              vertices.push(end.x, end.y, end.z);\n            }\n          }\n        }\n      }\n      this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n};\nfunction isUniqueEdge(start, end, edges) {\n  const hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n  const hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`;\n  if (edges.has(hash1) === true || edges.has(hash2) === true) {\n    return false;\n  } else {\n    edges.add(hash1);\n    edges.add(hash2);\n    return true;\n  }\n}\nvar Geometries = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  BoxGeometry,\n  CapsuleGeometry,\n  CircleGeometry,\n  ConeGeometry,\n  CylinderGeometry,\n  DodecahedronGeometry,\n  EdgesGeometry,\n  ExtrudeGeometry,\n  IcosahedronGeometry,\n  LatheGeometry,\n  OctahedronGeometry,\n  PlaneGeometry,\n  PolyhedronGeometry,\n  RingGeometry,\n  ShapeGeometry,\n  SphereGeometry,\n  TetrahedronGeometry,\n  TorusGeometry,\n  TorusKnotGeometry,\n  TubeGeometry,\n  WireframeGeometry\n});\nvar ShadowMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isShadowMaterial = true;\n    this.type = \"ShadowMaterial\";\n    this.color = new Color(0);\n    this.transparent = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar RawShaderMaterial = class extends ShaderMaterial {\n  constructor(parameters) {\n    super(parameters);\n    this.isRawShaderMaterial = true;\n    this.type = \"RawShaderMaterial\";\n  }\n};\nvar MeshStandardMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshStandardMaterial = true;\n    this.defines = { \"STANDARD\": \"\" };\n    this.type = \"MeshStandardMaterial\";\n    this.color = new Color(16777215);\n    this.roughness = 1;\n    this.metalness = 0;\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.roughnessMap = null;\n    this.metalnessMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.envMapIntensity = 1;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = { \"STANDARD\": \"\" };\n    this.color.copy(source.color);\n    this.roughness = source.roughness;\n    this.metalness = source.metalness;\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.roughnessMap = source.roughnessMap;\n    this.metalnessMap = source.metalnessMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.envMapIntensity = source.envMapIntensity;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshPhysicalMaterial = class extends MeshStandardMaterial {\n  constructor(parameters) {\n    super();\n    this.isMeshPhysicalMaterial = true;\n    this.defines = {\n      \"STANDARD\": \"\",\n      \"PHYSICAL\": \"\"\n    };\n    this.type = \"MeshPhysicalMaterial\";\n    this.anisotropyRotation = 0;\n    this.anisotropyMap = null;\n    this.clearcoatMap = null;\n    this.clearcoatRoughness = 0;\n    this.clearcoatRoughnessMap = null;\n    this.clearcoatNormalScale = new Vector2(1, 1);\n    this.clearcoatNormalMap = null;\n    this.ior = 1.5;\n    Object.defineProperty(this, \"reflectivity\", {\n      get: function() {\n        return clamp(2.5 * (this.ior - 1) / (this.ior + 1), 0, 1);\n      },\n      set: function(reflectivity) {\n        this.ior = (1 + 0.4 * reflectivity) / (1 - 0.4 * reflectivity);\n      }\n    });\n    this.iridescenceMap = null;\n    this.iridescenceIOR = 1.3;\n    this.iridescenceThicknessRange = [100, 400];\n    this.iridescenceThicknessMap = null;\n    this.sheenColor = new Color(0);\n    this.sheenColorMap = null;\n    this.sheenRoughness = 1;\n    this.sheenRoughnessMap = null;\n    this.transmissionMap = null;\n    this.thickness = 0;\n    this.thicknessMap = null;\n    this.attenuationDistance = Infinity;\n    this.attenuationColor = new Color(1, 1, 1);\n    this.specularIntensity = 1;\n    this.specularIntensityMap = null;\n    this.specularColor = new Color(1, 1, 1);\n    this.specularColorMap = null;\n    this._anisotropy = 0;\n    this._clearcoat = 0;\n    this._dispersion = 0;\n    this._iridescence = 0;\n    this._sheen = 0;\n    this._transmission = 0;\n    this.setValues(parameters);\n  }\n  get anisotropy() {\n    return this._anisotropy;\n  }\n  set anisotropy(value) {\n    if (this._anisotropy > 0 !== value > 0) {\n      this.version++;\n    }\n    this._anisotropy = value;\n  }\n  get clearcoat() {\n    return this._clearcoat;\n  }\n  set clearcoat(value) {\n    if (this._clearcoat > 0 !== value > 0) {\n      this.version++;\n    }\n    this._clearcoat = value;\n  }\n  get iridescence() {\n    return this._iridescence;\n  }\n  set iridescence(value) {\n    if (this._iridescence > 0 !== value > 0) {\n      this.version++;\n    }\n    this._iridescence = value;\n  }\n  get dispersion() {\n    return this._dispersion;\n  }\n  set dispersion(value) {\n    if (this._dispersion > 0 !== value > 0) {\n      this.version++;\n    }\n    this._dispersion = value;\n  }\n  get sheen() {\n    return this._sheen;\n  }\n  set sheen(value) {\n    if (this._sheen > 0 !== value > 0) {\n      this.version++;\n    }\n    this._sheen = value;\n  }\n  get transmission() {\n    return this._transmission;\n  }\n  set transmission(value) {\n    if (this._transmission > 0 !== value > 0) {\n      this.version++;\n    }\n    this._transmission = value;\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = {\n      \"STANDARD\": \"\",\n      \"PHYSICAL\": \"\"\n    };\n    this.anisotropy = source.anisotropy;\n    this.anisotropyRotation = source.anisotropyRotation;\n    this.anisotropyMap = source.anisotropyMap;\n    this.clearcoat = source.clearcoat;\n    this.clearcoatMap = source.clearcoatMap;\n    this.clearcoatRoughness = source.clearcoatRoughness;\n    this.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n    this.clearcoatNormalMap = source.clearcoatNormalMap;\n    this.clearcoatNormalScale.copy(source.clearcoatNormalScale);\n    this.dispersion = source.dispersion;\n    this.ior = source.ior;\n    this.iridescence = source.iridescence;\n    this.iridescenceMap = source.iridescenceMap;\n    this.iridescenceIOR = source.iridescenceIOR;\n    this.iridescenceThicknessRange = [...source.iridescenceThicknessRange];\n    this.iridescenceThicknessMap = source.iridescenceThicknessMap;\n    this.sheen = source.sheen;\n    this.sheenColor.copy(source.sheenColor);\n    this.sheenColorMap = source.sheenColorMap;\n    this.sheenRoughness = source.sheenRoughness;\n    this.sheenRoughnessMap = source.sheenRoughnessMap;\n    this.transmission = source.transmission;\n    this.transmissionMap = source.transmissionMap;\n    this.thickness = source.thickness;\n    this.thicknessMap = source.thicknessMap;\n    this.attenuationDistance = source.attenuationDistance;\n    this.attenuationColor.copy(source.attenuationColor);\n    this.specularIntensity = source.specularIntensity;\n    this.specularIntensityMap = source.specularIntensityMap;\n    this.specularColor.copy(source.specularColor);\n    this.specularColorMap = source.specularColorMap;\n    return this;\n  }\n};\nvar MeshPhongMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshPhongMaterial = true;\n    this.type = \"MeshPhongMaterial\";\n    this.color = new Color(16777215);\n    this.specular = new Color(1118481);\n    this.shininess = 30;\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.specular.copy(source.specular);\n    this.shininess = source.shininess;\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshToonMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshToonMaterial = true;\n    this.defines = { \"TOON\": \"\" };\n    this.type = \"MeshToonMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.gradientMap = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.alphaMap = null;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.gradientMap = source.gradientMap;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.alphaMap = source.alphaMap;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshNormalMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshNormalMaterial = true;\n    this.type = \"MeshNormalMaterial\";\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.flatShading = false;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.flatShading = source.flatShading;\n    return this;\n  }\n};\nvar MeshLambertMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshLambertMaterial = true;\n    this.type = \"MeshLambertMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshMatcapMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshMatcapMaterial = true;\n    this.defines = { \"MATCAP\": \"\" };\n    this.type = \"MeshMatcapMaterial\";\n    this.color = new Color(16777215);\n    this.matcap = null;\n    this.map = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.alphaMap = null;\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = { \"MATCAP\": \"\" };\n    this.color.copy(source.color);\n    this.matcap = source.matcap;\n    this.map = source.map;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.alphaMap = source.alphaMap;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar LineDashedMaterial = class extends LineBasicMaterial {\n  constructor(parameters) {\n    super();\n    this.isLineDashedMaterial = true;\n    this.type = \"LineDashedMaterial\";\n    this.scale = 1;\n    this.dashSize = 3;\n    this.gapSize = 1;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.scale = source.scale;\n    this.dashSize = source.dashSize;\n    this.gapSize = source.gapSize;\n    return this;\n  }\n};\nfunction convertArray(array, type, forceClone) {\n  if (!array || // let 'undefined' and 'null' pass\n  !forceClone && array.constructor === type) return array;\n  if (typeof type.BYTES_PER_ELEMENT === \"number\") {\n    return new type(array);\n  }\n  return Array.prototype.slice.call(array);\n}\nfunction isTypedArray(object) {\n  return ArrayBuffer.isView(object) && !(object instanceof DataView);\n}\nfunction getKeyframeOrder(times) {\n  function compareTime(i, j) {\n    return times[i] - times[j];\n  }\n  const n = times.length;\n  const result = new Array(n);\n  for (let i = 0; i !== n; ++i) result[i] = i;\n  result.sort(compareTime);\n  return result;\n}\nfunction sortedArray(values, stride, order) {\n  const nValues = values.length;\n  const result = new values.constructor(nValues);\n  for (let i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\n    const srcOffset = order[i] * stride;\n    for (let j = 0; j !== stride; ++j) {\n      result[dstOffset++] = values[srcOffset + j];\n    }\n  }\n  return result;\n}\nfunction flattenJSON(jsonKeys, times, values, valuePropertyName) {\n  let i = 1, key = jsonKeys[0];\n  while (key !== void 0 && key[valuePropertyName] === void 0) {\n    key = jsonKeys[i++];\n  }\n  if (key === void 0) return;\n  let value = key[valuePropertyName];\n  if (value === void 0) return;\n  if (Array.isArray(value)) {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        values.push.apply(values, value);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  } else if (value.toArray !== void 0) {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        value.toArray(values, values.length);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  } else {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        values.push(value);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  }\n}\nfunction subclip(sourceClip, name, startFrame, endFrame, fps = 30) {\n  const clip = sourceClip.clone();\n  clip.name = name;\n  const tracks = [];\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    const track = clip.tracks[i];\n    const valueSize = track.getValueSize();\n    const times = [];\n    const values = [];\n    for (let j = 0; j < track.times.length; ++j) {\n      const frame = track.times[j] * fps;\n      if (frame < startFrame || frame >= endFrame) continue;\n      times.push(track.times[j]);\n      for (let k = 0; k < valueSize; ++k) {\n        values.push(track.values[j * valueSize + k]);\n      }\n    }\n    if (times.length === 0) continue;\n    track.times = convertArray(times, track.times.constructor);\n    track.values = convertArray(values, track.values.constructor);\n    tracks.push(track);\n  }\n  clip.tracks = tracks;\n  let minStartTime = Infinity;\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    if (minStartTime > clip.tracks[i].times[0]) {\n      minStartTime = clip.tracks[i].times[0];\n    }\n  }\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    clip.tracks[i].shift(-1 * minStartTime);\n  }\n  clip.resetDuration();\n  return clip;\n}\nfunction makeClipAdditive(targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30) {\n  if (fps <= 0) fps = 30;\n  const numTracks = referenceClip.tracks.length;\n  const referenceTime = referenceFrame / fps;\n  for (let i = 0; i < numTracks; ++i) {\n    const referenceTrack = referenceClip.tracks[i];\n    const referenceTrackType = referenceTrack.ValueTypeName;\n    if (referenceTrackType === \"bool\" || referenceTrackType === \"string\") continue;\n    const targetTrack = targetClip.tracks.find(function(track) {\n      return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType;\n    });\n    if (targetTrack === void 0) continue;\n    let referenceOffset = 0;\n    const referenceValueSize = referenceTrack.getValueSize();\n    if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n      referenceOffset = referenceValueSize / 3;\n    }\n    let targetOffset = 0;\n    const targetValueSize = targetTrack.getValueSize();\n    if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n      targetOffset = targetValueSize / 3;\n    }\n    const lastIndex = referenceTrack.times.length - 1;\n    let referenceValue;\n    if (referenceTime <= referenceTrack.times[0]) {\n      const startIndex = referenceOffset;\n      const endIndex = referenceValueSize - referenceOffset;\n      referenceValue = referenceTrack.values.slice(startIndex, endIndex);\n    } else if (referenceTime >= referenceTrack.times[lastIndex]) {\n      const startIndex = lastIndex * referenceValueSize + referenceOffset;\n      const endIndex = startIndex + referenceValueSize - referenceOffset;\n      referenceValue = referenceTrack.values.slice(startIndex, endIndex);\n    } else {\n      const interpolant = referenceTrack.createInterpolant();\n      const startIndex = referenceOffset;\n      const endIndex = referenceValueSize - referenceOffset;\n      interpolant.evaluate(referenceTime);\n      referenceValue = interpolant.resultBuffer.slice(startIndex, endIndex);\n    }\n    if (referenceTrackType === \"quaternion\") {\n      const referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate();\n      referenceQuat.toArray(referenceValue);\n    }\n    const numTimes = targetTrack.times.length;\n    for (let j = 0; j < numTimes; ++j) {\n      const valueStart = j * targetValueSize + targetOffset;\n      if (referenceTrackType === \"quaternion\") {\n        Quaternion.multiplyQuaternionsFlat(\n          targetTrack.values,\n          valueStart,\n          referenceValue,\n          0,\n          targetTrack.values,\n          valueStart\n        );\n      } else {\n        const valueEnd = targetValueSize - targetOffset * 2;\n        for (let k = 0; k < valueEnd; ++k) {\n          targetTrack.values[valueStart + k] -= referenceValue[k];\n        }\n      }\n    }\n  }\n  targetClip.blendMode = AdditiveAnimationBlendMode;\n  return targetClip;\n}\nvar AnimationUtils = {\n  convertArray,\n  isTypedArray,\n  getKeyframeOrder,\n  sortedArray,\n  flattenJSON,\n  subclip,\n  makeClipAdditive\n};\nvar Interpolant = class {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    this.parameterPositions = parameterPositions;\n    this._cachedIndex = 0;\n    this.resultBuffer = resultBuffer !== void 0 ? resultBuffer : new sampleValues.constructor(sampleSize);\n    this.sampleValues = sampleValues;\n    this.valueSize = sampleSize;\n    this.settings = null;\n    this.DefaultSettings_ = {};\n  }\n  evaluate(t) {\n    const pp = this.parameterPositions;\n    let i1 = this._cachedIndex, t1 = pp[i1], t0 = pp[i1 - 1];\n    validate_interval: {\n      seek: {\n        let right;\n        linear_scan: {\n          forward_scan: if (!(t < t1)) {\n            for (let giveUpAt = i1 + 2; ; ) {\n              if (t1 === void 0) {\n                if (t < t0) break forward_scan;\n                i1 = pp.length;\n                this._cachedIndex = i1;\n                return this.copySampleValue_(i1 - 1);\n              }\n              if (i1 === giveUpAt) break;\n              t0 = t1;\n              t1 = pp[++i1];\n              if (t < t1) {\n                break seek;\n              }\n            }\n            right = pp.length;\n            break linear_scan;\n          }\n          if (!(t >= t0)) {\n            const t1global = pp[1];\n            if (t < t1global) {\n              i1 = 2;\n              t0 = t1global;\n            }\n            for (let giveUpAt = i1 - 2; ; ) {\n              if (t0 === void 0) {\n                this._cachedIndex = 0;\n                return this.copySampleValue_(0);\n              }\n              if (i1 === giveUpAt) break;\n              t1 = t0;\n              t0 = pp[--i1 - 1];\n              if (t >= t0) {\n                break seek;\n              }\n            }\n            right = i1;\n            i1 = 0;\n            break linear_scan;\n          }\n          break validate_interval;\n        }\n        while (i1 < right) {\n          const mid = i1 + right >>> 1;\n          if (t < pp[mid]) {\n            right = mid;\n          } else {\n            i1 = mid + 1;\n          }\n        }\n        t1 = pp[i1];\n        t0 = pp[i1 - 1];\n        if (t0 === void 0) {\n          this._cachedIndex = 0;\n          return this.copySampleValue_(0);\n        }\n        if (t1 === void 0) {\n          i1 = pp.length;\n          this._cachedIndex = i1;\n          return this.copySampleValue_(i1 - 1);\n        }\n      }\n      this._cachedIndex = i1;\n      this.intervalChanged_(i1, t0, t1);\n    }\n    return this.interpolate_(i1, t0, t, t1);\n  }\n  getSettings_() {\n    return this.settings || this.DefaultSettings_;\n  }\n  copySampleValue_(index) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset = index * stride;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = values[offset + i];\n    }\n    return result;\n  }\n  // Template methods for derived classes:\n  interpolate_() {\n    throw new Error(\"call to abstract method\");\n  }\n  intervalChanged_() {\n  }\n};\nvar CubicInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n    this._weightPrev = -0;\n    this._offsetPrev = -0;\n    this._weightNext = -0;\n    this._offsetNext = -0;\n    this.DefaultSettings_ = {\n      endingStart: ZeroCurvatureEnding,\n      endingEnd: ZeroCurvatureEnding\n    };\n  }\n  intervalChanged_(i1, t0, t1) {\n    const pp = this.parameterPositions;\n    let iPrev = i1 - 2, iNext = i1 + 1, tPrev = pp[iPrev], tNext = pp[iNext];\n    if (tPrev === void 0) {\n      switch (this.getSettings_().endingStart) {\n        case ZeroSlopeEnding:\n          iPrev = i1;\n          tPrev = 2 * t0 - t1;\n          break;\n        case WrapAroundEnding:\n          iPrev = pp.length - 2;\n          tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\n          break;\n        default:\n          iPrev = i1;\n          tPrev = t1;\n      }\n    }\n    if (tNext === void 0) {\n      switch (this.getSettings_().endingEnd) {\n        case ZeroSlopeEnding:\n          iNext = i1;\n          tNext = 2 * t1 - t0;\n          break;\n        case WrapAroundEnding:\n          iNext = 1;\n          tNext = t1 + pp[1] - pp[0];\n          break;\n        default:\n          iNext = i1 - 1;\n          tNext = t0;\n      }\n    }\n    const halfDt = (t1 - t0) * 0.5, stride = this.valueSize;\n    this._weightPrev = halfDt / (t0 - tPrev);\n    this._weightNext = halfDt / (tNext - t1);\n    this._offsetPrev = iPrev * stride;\n    this._offsetNext = iNext * stride;\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, o1 = i1 * stride, o0 = o1 - stride, oP = this._offsetPrev, oN = this._offsetNext, wP = this._weightPrev, wN = this._weightNext, p = (t - t0) / (t1 - t0), pp = p * p, ppp = pp * p;\n    const sP = -wP * ppp + 2 * wP * pp - wP * p;\n    const s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\n    const s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\n    const sN = wN * ppp - wN * pp;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\n    }\n    return result;\n  }\n};\nvar LinearInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset1 = i1 * stride, offset0 = offset1 - stride, weight1 = (t - t0) / (t1 - t0), weight0 = 1 - weight1;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\n    }\n    return result;\n  }\n};\nvar DiscreteInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1) {\n    return this.copySampleValue_(i1 - 1);\n  }\n};\nvar KeyframeTrack = class {\n  constructor(name, times, values, interpolation) {\n    if (name === void 0) throw new Error(\"THREE.KeyframeTrack: track name is undefined\");\n    if (times === void 0 || times.length === 0) throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \" + name);\n    this.name = name;\n    this.times = convertArray(times, this.TimeBufferType);\n    this.values = convertArray(values, this.ValueBufferType);\n    this.setInterpolation(interpolation || this.DefaultInterpolation);\n  }\n  // Serialization (in static context, because of constructor invocation\n  // and automatic invocation of .toJSON):\n  static toJSON(track) {\n    const trackType = track.constructor;\n    let json;\n    if (trackType.toJSON !== this.toJSON) {\n      json = trackType.toJSON(track);\n    } else {\n      json = {\n        \"name\": track.name,\n        \"times\": convertArray(track.times, Array),\n        \"values\": convertArray(track.values, Array)\n      };\n      const interpolation = track.getInterpolation();\n      if (interpolation !== track.DefaultInterpolation) {\n        json.interpolation = interpolation;\n      }\n    }\n    json.type = track.ValueTypeName;\n    return json;\n  }\n  InterpolantFactoryMethodDiscrete(result) {\n    return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  InterpolantFactoryMethodLinear(result) {\n    return new LinearInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  InterpolantFactoryMethodSmooth(result) {\n    return new CubicInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  setInterpolation(interpolation) {\n    let factoryMethod;\n    switch (interpolation) {\n      case InterpolateDiscrete:\n        factoryMethod = this.InterpolantFactoryMethodDiscrete;\n        break;\n      case InterpolateLinear:\n        factoryMethod = this.InterpolantFactoryMethodLinear;\n        break;\n      case InterpolateSmooth:\n        factoryMethod = this.InterpolantFactoryMethodSmooth;\n        break;\n    }\n    if (factoryMethod === void 0) {\n      const message = \"unsupported interpolation for \" + this.ValueTypeName + \" keyframe track named \" + this.name;\n      if (this.createInterpolant === void 0) {\n        if (interpolation !== this.DefaultInterpolation) {\n          this.setInterpolation(this.DefaultInterpolation);\n        } else {\n          throw new Error(message);\n        }\n      }\n      console.warn(\"THREE.KeyframeTrack:\", message);\n      return this;\n    }\n    this.createInterpolant = factoryMethod;\n    return this;\n  }\n  getInterpolation() {\n    switch (this.createInterpolant) {\n      case this.InterpolantFactoryMethodDiscrete:\n        return InterpolateDiscrete;\n      case this.InterpolantFactoryMethodLinear:\n        return InterpolateLinear;\n      case this.InterpolantFactoryMethodSmooth:\n        return InterpolateSmooth;\n    }\n  }\n  getValueSize() {\n    return this.values.length / this.times.length;\n  }\n  // move all keyframes either forwards or backwards in time\n  shift(timeOffset) {\n    if (timeOffset !== 0) {\n      const times = this.times;\n      for (let i = 0, n = times.length; i !== n; ++i) {\n        times[i] += timeOffset;\n      }\n    }\n    return this;\n  }\n  // scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n  scale(timeScale) {\n    if (timeScale !== 1) {\n      const times = this.times;\n      for (let i = 0, n = times.length; i !== n; ++i) {\n        times[i] *= timeScale;\n      }\n    }\n    return this;\n  }\n  // removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n  // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n  trim(startTime, endTime) {\n    const times = this.times, nKeys = times.length;\n    let from = 0, to = nKeys - 1;\n    while (from !== nKeys && times[from] < startTime) {\n      ++from;\n    }\n    while (to !== -1 && times[to] > endTime) {\n      --to;\n    }\n    ++to;\n    if (from !== 0 || to !== nKeys) {\n      if (from >= to) {\n        to = Math.max(to, 1);\n        from = to - 1;\n      }\n      const stride = this.getValueSize();\n      this.times = times.slice(from, to);\n      this.values = this.values.slice(from * stride, to * stride);\n    }\n    return this;\n  }\n  // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n  validate() {\n    let valid = true;\n    const valueSize = this.getValueSize();\n    if (valueSize - Math.floor(valueSize) !== 0) {\n      console.error(\"THREE.KeyframeTrack: Invalid value size in track.\", this);\n      valid = false;\n    }\n    const times = this.times, values = this.values, nKeys = times.length;\n    if (nKeys === 0) {\n      console.error(\"THREE.KeyframeTrack: Track is empty.\", this);\n      valid = false;\n    }\n    let prevTime = null;\n    for (let i = 0; i !== nKeys; i++) {\n      const currTime = times[i];\n      if (typeof currTime === \"number\" && isNaN(currTime)) {\n        console.error(\"THREE.KeyframeTrack: Time is not a valid number.\", this, i, currTime);\n        valid = false;\n        break;\n      }\n      if (prevTime !== null && prevTime > currTime) {\n        console.error(\"THREE.KeyframeTrack: Out of order keys.\", this, i, currTime, prevTime);\n        valid = false;\n        break;\n      }\n      prevTime = currTime;\n    }\n    if (values !== void 0) {\n      if (isTypedArray(values)) {\n        for (let i = 0, n = values.length; i !== n; ++i) {\n          const value = values[i];\n          if (isNaN(value)) {\n            console.error(\"THREE.KeyframeTrack: Value is not a valid number.\", this, i, value);\n            valid = false;\n            break;\n          }\n        }\n      }\n    }\n    return valid;\n  }\n  // removes equivalent sequential keys as common in morph target sequences\n  // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n  optimize() {\n    const times = this.times.slice(), values = this.values.slice(), stride = this.getValueSize(), smoothInterpolation = this.getInterpolation() === InterpolateSmooth, lastIndex = times.length - 1;\n    let writeIndex = 1;\n    for (let i = 1; i < lastIndex; ++i) {\n      let keep = false;\n      const time = times[i];\n      const timeNext = times[i + 1];\n      if (time !== timeNext && (i !== 1 || time !== times[0])) {\n        if (!smoothInterpolation) {\n          const offset = i * stride, offsetP = offset - stride, offsetN = offset + stride;\n          for (let j = 0; j !== stride; ++j) {\n            const value = values[offset + j];\n            if (value !== values[offsetP + j] || value !== values[offsetN + j]) {\n              keep = true;\n              break;\n            }\n          }\n        } else {\n          keep = true;\n        }\n      }\n      if (keep) {\n        if (i !== writeIndex) {\n          times[writeIndex] = times[i];\n          const readOffset = i * stride, writeOffset = writeIndex * stride;\n          for (let j = 0; j !== stride; ++j) {\n            values[writeOffset + j] = values[readOffset + j];\n          }\n        }\n        ++writeIndex;\n      }\n    }\n    if (lastIndex > 0) {\n      times[writeIndex] = times[lastIndex];\n      for (let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++j) {\n        values[writeOffset + j] = values[readOffset + j];\n      }\n      ++writeIndex;\n    }\n    if (writeIndex !== times.length) {\n      this.times = times.slice(0, writeIndex);\n      this.values = values.slice(0, writeIndex * stride);\n    } else {\n      this.times = times;\n      this.values = values;\n    }\n    return this;\n  }\n  clone() {\n    const times = this.times.slice();\n    const values = this.values.slice();\n    const TypedKeyframeTrack = this.constructor;\n    const track = new TypedKeyframeTrack(this.name, times, values);\n    track.createInterpolant = this.createInterpolant;\n    return track;\n  }\n};\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\nvar BooleanKeyframeTrack = class extends KeyframeTrack {\n  // No interpolation parameter because only InterpolateDiscrete is valid.\n  constructor(name, times, values) {\n    super(name, times, values);\n  }\n};\nBooleanKeyframeTrack.prototype.ValueTypeName = \"bool\";\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar ColorKeyframeTrack = class extends KeyframeTrack {\n};\nColorKeyframeTrack.prototype.ValueTypeName = \"color\";\nvar NumberKeyframeTrack = class extends KeyframeTrack {\n};\nNumberKeyframeTrack.prototype.ValueTypeName = \"number\";\nvar QuaternionLinearInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, alpha = (t - t0) / (t1 - t0);\n    let offset = i1 * stride;\n    for (let end = offset + stride; offset !== end; offset += 4) {\n      Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\n    }\n    return result;\n  }\n};\nvar QuaternionKeyframeTrack = class extends KeyframeTrack {\n  InterpolantFactoryMethodLinear(result) {\n    return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n};\nQuaternionKeyframeTrack.prototype.ValueTypeName = \"quaternion\";\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar StringKeyframeTrack = class extends KeyframeTrack {\n  // No interpolation parameter because only InterpolateDiscrete is valid.\n  constructor(name, times, values) {\n    super(name, times, values);\n  }\n};\nStringKeyframeTrack.prototype.ValueTypeName = \"string\";\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar VectorKeyframeTrack = class extends KeyframeTrack {\n};\nVectorKeyframeTrack.prototype.ValueTypeName = \"vector\";\nvar AnimationClip = class {\n  constructor(name = \"\", duration = -1, tracks = [], blendMode = NormalAnimationBlendMode) {\n    this.name = name;\n    this.tracks = tracks;\n    this.duration = duration;\n    this.blendMode = blendMode;\n    this.uuid = generateUUID();\n    if (this.duration < 0) {\n      this.resetDuration();\n    }\n  }\n  static parse(json) {\n    const tracks = [], jsonTracks = json.tracks, frameTime = 1 / (json.fps || 1);\n    for (let i = 0, n = jsonTracks.length; i !== n; ++i) {\n      tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\n    }\n    const clip = new this(json.name, json.duration, tracks, json.blendMode);\n    clip.uuid = json.uuid;\n    return clip;\n  }\n  static toJSON(clip) {\n    const tracks = [], clipTracks = clip.tracks;\n    const json = {\n      \"name\": clip.name,\n      \"duration\": clip.duration,\n      \"tracks\": tracks,\n      \"uuid\": clip.uuid,\n      \"blendMode\": clip.blendMode\n    };\n    for (let i = 0, n = clipTracks.length; i !== n; ++i) {\n      tracks.push(KeyframeTrack.toJSON(clipTracks[i]));\n    }\n    return json;\n  }\n  static CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\n    const numMorphTargets = morphTargetSequence.length;\n    const tracks = [];\n    for (let i = 0; i < numMorphTargets; i++) {\n      let times = [];\n      let values = [];\n      times.push(\n        (i + numMorphTargets - 1) % numMorphTargets,\n        i,\n        (i + 1) % numMorphTargets\n      );\n      values.push(0, 1, 0);\n      const order = getKeyframeOrder(times);\n      times = sortedArray(times, 1, order);\n      values = sortedArray(values, 1, order);\n      if (!noLoop && times[0] === 0) {\n        times.push(numMorphTargets);\n        values.push(values[0]);\n      }\n      tracks.push(\n        new NumberKeyframeTrack(\n          \".morphTargetInfluences[\" + morphTargetSequence[i].name + \"]\",\n          times,\n          values\n        ).scale(1 / fps)\n      );\n    }\n    return new this(name, -1, tracks);\n  }\n  static findByName(objectOrClipArray, name) {\n    let clipArray = objectOrClipArray;\n    if (!Array.isArray(objectOrClipArray)) {\n      const o = objectOrClipArray;\n      clipArray = o.geometry && o.geometry.animations || o.animations;\n    }\n    for (let i = 0; i < clipArray.length; i++) {\n      if (clipArray[i].name === name) {\n        return clipArray[i];\n      }\n    }\n    return null;\n  }\n  static CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\n    const animationToMorphTargets = {};\n    const pattern = /^([\\w-]*?)([\\d]+)$/;\n    for (let i = 0, il = morphTargets.length; i < il; i++) {\n      const morphTarget = morphTargets[i];\n      const parts = morphTarget.name.match(pattern);\n      if (parts && parts.length > 1) {\n        const name = parts[1];\n        let animationMorphTargets = animationToMorphTargets[name];\n        if (!animationMorphTargets) {\n          animationToMorphTargets[name] = animationMorphTargets = [];\n        }\n        animationMorphTargets.push(morphTarget);\n      }\n    }\n    const clips = [];\n    for (const name in animationToMorphTargets) {\n      clips.push(this.CreateFromMorphTargetSequence(name, animationToMorphTargets[name], fps, noLoop));\n    }\n    return clips;\n  }\n  // parse the animation.hierarchy format\n  static parseAnimation(animation, bones) {\n    if (!animation) {\n      console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\");\n      return null;\n    }\n    const addNonemptyTrack = function(trackType, trackName, animationKeys, propertyName, destTracks) {\n      if (animationKeys.length !== 0) {\n        const times = [];\n        const values = [];\n        flattenJSON(animationKeys, times, values, propertyName);\n        if (times.length !== 0) {\n          destTracks.push(new trackType(trackName, times, values));\n        }\n      }\n    };\n    const tracks = [];\n    const clipName = animation.name || \"default\";\n    const fps = animation.fps || 30;\n    const blendMode = animation.blendMode;\n    let duration = animation.length || -1;\n    const hierarchyTracks = animation.hierarchy || [];\n    for (let h = 0; h < hierarchyTracks.length; h++) {\n      const animationKeys = hierarchyTracks[h].keys;\n      if (!animationKeys || animationKeys.length === 0) continue;\n      if (animationKeys[0].morphTargets) {\n        const morphTargetNames = {};\n        let k;\n        for (k = 0; k < animationKeys.length; k++) {\n          if (animationKeys[k].morphTargets) {\n            for (let m = 0; m < animationKeys[k].morphTargets.length; m++) {\n              morphTargetNames[animationKeys[k].morphTargets[m]] = -1;\n            }\n          }\n        }\n        for (const morphTargetName in morphTargetNames) {\n          const times = [];\n          const values = [];\n          for (let m = 0; m !== animationKeys[k].morphTargets.length; ++m) {\n            const animationKey = animationKeys[k];\n            times.push(animationKey.time);\n            values.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\n          }\n          tracks.push(new NumberKeyframeTrack(\".morphTargetInfluence[\" + morphTargetName + \"]\", times, values));\n        }\n        duration = morphTargetNames.length * fps;\n      } else {\n        const boneName = \".bones[\" + bones[h].name + \"]\";\n        addNonemptyTrack(\n          VectorKeyframeTrack,\n          boneName + \".position\",\n          animationKeys,\n          \"pos\",\n          tracks\n        );\n        addNonemptyTrack(\n          QuaternionKeyframeTrack,\n          boneName + \".quaternion\",\n          animationKeys,\n          \"rot\",\n          tracks\n        );\n        addNonemptyTrack(\n          VectorKeyframeTrack,\n          boneName + \".scale\",\n          animationKeys,\n          \"scl\",\n          tracks\n        );\n      }\n    }\n    if (tracks.length === 0) {\n      return null;\n    }\n    const clip = new this(clipName, duration, tracks, blendMode);\n    return clip;\n  }\n  resetDuration() {\n    const tracks = this.tracks;\n    let duration = 0;\n    for (let i = 0, n = tracks.length; i !== n; ++i) {\n      const track = this.tracks[i];\n      duration = Math.max(duration, track.times[track.times.length - 1]);\n    }\n    this.duration = duration;\n    return this;\n  }\n  trim() {\n    for (let i = 0; i < this.tracks.length; i++) {\n      this.tracks[i].trim(0, this.duration);\n    }\n    return this;\n  }\n  validate() {\n    let valid = true;\n    for (let i = 0; i < this.tracks.length; i++) {\n      valid = valid && this.tracks[i].validate();\n    }\n    return valid;\n  }\n  optimize() {\n    for (let i = 0; i < this.tracks.length; i++) {\n      this.tracks[i].optimize();\n    }\n    return this;\n  }\n  clone() {\n    const tracks = [];\n    for (let i = 0; i < this.tracks.length; i++) {\n      tracks.push(this.tracks[i].clone());\n    }\n    return new this.constructor(this.name, this.duration, tracks, this.blendMode);\n  }\n  toJSON() {\n    return this.constructor.toJSON(this);\n  }\n};\nfunction getTrackTypeForValueTypeName(typeName) {\n  switch (typeName.toLowerCase()) {\n    case \"scalar\":\n    case \"double\":\n    case \"float\":\n    case \"number\":\n    case \"integer\":\n      return NumberKeyframeTrack;\n    case \"vector\":\n    case \"vector2\":\n    case \"vector3\":\n    case \"vector4\":\n      return VectorKeyframeTrack;\n    case \"color\":\n      return ColorKeyframeTrack;\n    case \"quaternion\":\n      return QuaternionKeyframeTrack;\n    case \"bool\":\n    case \"boolean\":\n      return BooleanKeyframeTrack;\n    case \"string\":\n      return StringKeyframeTrack;\n  }\n  throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \" + typeName);\n}\nfunction parseKeyframeTrack(json) {\n  if (json.type === void 0) {\n    throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");\n  }\n  const trackType = getTrackTypeForValueTypeName(json.type);\n  if (json.times === void 0) {\n    const times = [], values = [];\n    flattenJSON(json.keys, times, values, \"value\");\n    json.times = times;\n    json.values = values;\n  }\n  if (trackType.parse !== void 0) {\n    return trackType.parse(json);\n  } else {\n    return new trackType(json.name, json.times, json.values, json.interpolation);\n  }\n}\nvar Cache = {\n  enabled: false,\n  files: {},\n  add: function(key, file) {\n    if (this.enabled === false) return;\n    this.files[key] = file;\n  },\n  get: function(key) {\n    if (this.enabled === false) return;\n    return this.files[key];\n  },\n  remove: function(key) {\n    delete this.files[key];\n  },\n  clear: function() {\n    this.files = {};\n  }\n};\nvar LoadingManager = class {\n  constructor(onLoad, onProgress, onError) {\n    const scope = this;\n    let isLoading = false;\n    let itemsLoaded = 0;\n    let itemsTotal = 0;\n    let urlModifier = void 0;\n    const handlers = [];\n    this.onStart = void 0;\n    this.onLoad = onLoad;\n    this.onProgress = onProgress;\n    this.onError = onError;\n    this.itemStart = function(url) {\n      itemsTotal++;\n      if (isLoading === false) {\n        if (scope.onStart !== void 0) {\n          scope.onStart(url, itemsLoaded, itemsTotal);\n        }\n      }\n      isLoading = true;\n    };\n    this.itemEnd = function(url) {\n      itemsLoaded++;\n      if (scope.onProgress !== void 0) {\n        scope.onProgress(url, itemsLoaded, itemsTotal);\n      }\n      if (itemsLoaded === itemsTotal) {\n        isLoading = false;\n        if (scope.onLoad !== void 0) {\n          scope.onLoad();\n        }\n      }\n    };\n    this.itemError = function(url) {\n      if (scope.onError !== void 0) {\n        scope.onError(url);\n      }\n    };\n    this.resolveURL = function(url) {\n      if (urlModifier) {\n        return urlModifier(url);\n      }\n      return url;\n    };\n    this.setURLModifier = function(transform) {\n      urlModifier = transform;\n      return this;\n    };\n    this.addHandler = function(regex, loader) {\n      handlers.push(regex, loader);\n      return this;\n    };\n    this.removeHandler = function(regex) {\n      const index = handlers.indexOf(regex);\n      if (index !== -1) {\n        handlers.splice(index, 2);\n      }\n      return this;\n    };\n    this.getHandler = function(file) {\n      for (let i = 0, l = handlers.length; i < l; i += 2) {\n        const regex = handlers[i];\n        const loader = handlers[i + 1];\n        if (regex.global) regex.lastIndex = 0;\n        if (regex.test(file)) {\n          return loader;\n        }\n      }\n      return null;\n    };\n  }\n};\nvar DefaultLoadingManager = /* @__PURE__ */ new LoadingManager();\nvar Loader = class {\n  constructor(manager) {\n    this.manager = manager !== void 0 ? manager : DefaultLoadingManager;\n    this.crossOrigin = \"anonymous\";\n    this.withCredentials = false;\n    this.path = \"\";\n    this.resourcePath = \"\";\n    this.requestHeader = {};\n  }\n  load() {\n  }\n  loadAsync(url, onProgress) {\n    const scope = this;\n    return new Promise(function(resolve, reject) {\n      scope.load(url, resolve, onProgress, reject);\n    });\n  }\n  parse() {\n  }\n  setCrossOrigin(crossOrigin) {\n    this.crossOrigin = crossOrigin;\n    return this;\n  }\n  setWithCredentials(value) {\n    this.withCredentials = value;\n    return this;\n  }\n  setPath(path) {\n    this.path = path;\n    return this;\n  }\n  setResourcePath(resourcePath) {\n    this.resourcePath = resourcePath;\n    return this;\n  }\n  setRequestHeader(requestHeader) {\n    this.requestHeader = requestHeader;\n    return this;\n  }\n};\nLoader.DEFAULT_MATERIAL_NAME = \"__DEFAULT\";\nvar loading = {};\nvar HttpError = class extends Error {\n  constructor(message, response) {\n    super(message);\n    this.response = response;\n  }\n};\nvar FileLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (url === void 0) url = \"\";\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      this.manager.itemStart(url);\n      setTimeout(() => {\n        if (onLoad) onLoad(cached);\n        this.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    if (loading[url] !== void 0) {\n      loading[url].push({\n        onLoad,\n        onProgress,\n        onError\n      });\n      return;\n    }\n    loading[url] = [];\n    loading[url].push({\n      onLoad,\n      onProgress,\n      onError\n    });\n    const req = new Request(url, {\n      headers: new Headers(this.requestHeader),\n      credentials: this.withCredentials ? \"include\" : \"same-origin\"\n      // An abort controller could be added within a future PR\n    });\n    const mimeType = this.mimeType;\n    const responseType = this.responseType;\n    fetch(req).then((response) => {\n      if (response.status === 200 || response.status === 0) {\n        if (response.status === 0) {\n          console.warn(\"THREE.FileLoader: HTTP Status 0 received.\");\n        }\n        if (typeof ReadableStream === \"undefined\" || response.body === void 0 || response.body.getReader === void 0) {\n          return response;\n        }\n        const callbacks = loading[url];\n        const reader = response.body.getReader();\n        const contentLength = response.headers.get(\"X-File-Size\") || response.headers.get(\"Content-Length\");\n        const total = contentLength ? parseInt(contentLength) : 0;\n        const lengthComputable = total !== 0;\n        let loaded = 0;\n        const stream = new ReadableStream({\n          start(controller) {\n            readData();\n            function readData() {\n              reader.read().then(({ done, value }) => {\n                if (done) {\n                  controller.close();\n                } else {\n                  loaded += value.byteLength;\n                  const event = new ProgressEvent(\"progress\", { lengthComputable, loaded, total });\n                  for (let i = 0, il = callbacks.length; i < il; i++) {\n                    const callback = callbacks[i];\n                    if (callback.onProgress) callback.onProgress(event);\n                  }\n                  controller.enqueue(value);\n                  readData();\n                }\n              }, (e) => {\n                controller.error(e);\n              });\n            }\n          }\n        });\n        return new Response(stream);\n      } else {\n        throw new HttpError(`fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response);\n      }\n    }).then((response) => {\n      switch (responseType) {\n        case \"arraybuffer\":\n          return response.arrayBuffer();\n        case \"blob\":\n          return response.blob();\n        case \"document\":\n          return response.text().then((text) => {\n            const parser = new DOMParser();\n            return parser.parseFromString(text, mimeType);\n          });\n        case \"json\":\n          return response.json();\n        default:\n          if (mimeType === void 0) {\n            return response.text();\n          } else {\n            const re = /charset=\"?([^;\"\\s]*)\"?/i;\n            const exec = re.exec(mimeType);\n            const label = exec && exec[1] ? exec[1].toLowerCase() : void 0;\n            const decoder = new TextDecoder(label);\n            return response.arrayBuffer().then((ab) => decoder.decode(ab));\n          }\n      }\n    }).then((data) => {\n      Cache.add(url, data);\n      const callbacks = loading[url];\n      delete loading[url];\n      for (let i = 0, il = callbacks.length; i < il; i++) {\n        const callback = callbacks[i];\n        if (callback.onLoad) callback.onLoad(data);\n      }\n    }).catch((err) => {\n      const callbacks = loading[url];\n      if (callbacks === void 0) {\n        this.manager.itemError(url);\n        throw err;\n      }\n      delete loading[url];\n      for (let i = 0, il = callbacks.length; i < il; i++) {\n        const callback = callbacks[i];\n        if (callback.onError) callback.onError(err);\n      }\n      this.manager.itemError(url);\n    }).finally(() => {\n      this.manager.itemEnd(url);\n    });\n    this.manager.itemStart(url);\n  }\n  setResponseType(value) {\n    this.responseType = value;\n    return this;\n  }\n  setMimeType(value) {\n    this.mimeType = value;\n    return this;\n  }\n};\nvar AnimationLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const animations = [];\n    for (let i = 0; i < json.length; i++) {\n      const clip = AnimationClip.parse(json[i]);\n      animations.push(clip);\n    }\n    return animations;\n  }\n};\nvar CompressedTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const images = [];\n    const texture = new CompressedTexture();\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    let loaded = 0;\n    function loadTexture(i) {\n      loader.load(url[i], function(buffer) {\n        const texDatas = scope.parse(buffer, true);\n        images[i] = {\n          width: texDatas.width,\n          height: texDatas.height,\n          format: texDatas.format,\n          mipmaps: texDatas.mipmaps\n        };\n        loaded += 1;\n        if (loaded === 6) {\n          if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter;\n          texture.image = images;\n          texture.format = texDatas.format;\n          texture.needsUpdate = true;\n          if (onLoad) onLoad(texture);\n        }\n      }, onProgress, onError);\n    }\n    if (Array.isArray(url)) {\n      for (let i = 0, il = url.length; i < il; ++i) {\n        loadTexture(i);\n      }\n    } else {\n      loader.load(url, function(buffer) {\n        const texDatas = scope.parse(buffer, true);\n        if (texDatas.isCubemap) {\n          const faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n          for (let f = 0; f < faces; f++) {\n            images[f] = { mipmaps: [] };\n            for (let i = 0; i < texDatas.mipmapCount; i++) {\n              images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + i]);\n              images[f].format = texDatas.format;\n              images[f].width = texDatas.width;\n              images[f].height = texDatas.height;\n            }\n          }\n          texture.image = images;\n        } else {\n          texture.image.width = texDatas.width;\n          texture.image.height = texDatas.height;\n          texture.mipmaps = texDatas.mipmaps;\n        }\n        if (texDatas.mipmapCount === 1) {\n          texture.minFilter = LinearFilter;\n        }\n        texture.format = texDatas.format;\n        texture.needsUpdate = true;\n        if (onLoad) onLoad(texture);\n      }, onProgress, onError);\n    }\n    return texture;\n  }\n};\nvar ImageLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const scope = this;\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      scope.manager.itemStart(url);\n      setTimeout(function() {\n        if (onLoad) onLoad(cached);\n        scope.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    const image = createElementNS(\"img\");\n    function onImageLoad() {\n      removeEventListeners();\n      Cache.add(url, this);\n      if (onLoad) onLoad(this);\n      scope.manager.itemEnd(url);\n    }\n    function onImageError(event) {\n      removeEventListeners();\n      if (onError) onError(event);\n      scope.manager.itemError(url);\n      scope.manager.itemEnd(url);\n    }\n    function removeEventListeners() {\n      image.removeEventListener(\"load\", onImageLoad, false);\n      image.removeEventListener(\"error\", onImageError, false);\n    }\n    image.addEventListener(\"load\", onImageLoad, false);\n    image.addEventListener(\"error\", onImageError, false);\n    if (url.slice(0, 5) !== \"data:\") {\n      if (this.crossOrigin !== void 0) image.crossOrigin = this.crossOrigin;\n    }\n    scope.manager.itemStart(url);\n    image.src = url;\n    return image;\n  }\n};\nvar CubeTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(urls, onLoad, onProgress, onError) {\n    const texture = new CubeTexture();\n    texture.colorSpace = SRGBColorSpace;\n    const loader = new ImageLoader(this.manager);\n    loader.setCrossOrigin(this.crossOrigin);\n    loader.setPath(this.path);\n    let loaded = 0;\n    function loadTexture(i) {\n      loader.load(urls[i], function(image) {\n        texture.images[i] = image;\n        loaded++;\n        if (loaded === 6) {\n          texture.needsUpdate = true;\n          if (onLoad) onLoad(texture);\n        }\n      }, void 0, onError);\n    }\n    for (let i = 0; i < urls.length; ++i) {\n      loadTexture(i);\n    }\n    return texture;\n  }\n};\nvar DataTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const texture = new DataTexture();\n    const loader = new FileLoader(this.manager);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setRequestHeader(this.requestHeader);\n    loader.setPath(this.path);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(buffer) {\n      let texData;\n      try {\n        texData = scope.parse(buffer);\n      } catch (error) {\n        if (onError !== void 0) {\n          onError(error);\n        } else {\n          console.error(error);\n          return;\n        }\n      }\n      if (texData.image !== void 0) {\n        texture.image = texData.image;\n      } else if (texData.data !== void 0) {\n        texture.image.width = texData.width;\n        texture.image.height = texData.height;\n        texture.image.data = texData.data;\n      }\n      texture.wrapS = texData.wrapS !== void 0 ? texData.wrapS : ClampToEdgeWrapping;\n      texture.wrapT = texData.wrapT !== void 0 ? texData.wrapT : ClampToEdgeWrapping;\n      texture.magFilter = texData.magFilter !== void 0 ? texData.magFilter : LinearFilter;\n      texture.minFilter = texData.minFilter !== void 0 ? texData.minFilter : LinearFilter;\n      texture.anisotropy = texData.anisotropy !== void 0 ? texData.anisotropy : 1;\n      if (texData.colorSpace !== void 0) {\n        texture.colorSpace = texData.colorSpace;\n      }\n      if (texData.flipY !== void 0) {\n        texture.flipY = texData.flipY;\n      }\n      if (texData.format !== void 0) {\n        texture.format = texData.format;\n      }\n      if (texData.type !== void 0) {\n        texture.type = texData.type;\n      }\n      if (texData.mipmaps !== void 0) {\n        texture.mipmaps = texData.mipmaps;\n        texture.minFilter = LinearMipmapLinearFilter;\n      }\n      if (texData.mipmapCount === 1) {\n        texture.minFilter = LinearFilter;\n      }\n      if (texData.generateMipmaps !== void 0) {\n        texture.generateMipmaps = texData.generateMipmaps;\n      }\n      texture.needsUpdate = true;\n      if (onLoad) onLoad(texture, texData);\n    }, onProgress, onError);\n    return texture;\n  }\n};\nvar TextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const texture = new Texture();\n    const loader = new ImageLoader(this.manager);\n    loader.setCrossOrigin(this.crossOrigin);\n    loader.setPath(this.path);\n    loader.load(url, function(image) {\n      texture.image = image;\n      texture.needsUpdate = true;\n      if (onLoad !== void 0) {\n        onLoad(texture);\n      }\n    }, onProgress, onError);\n    return texture;\n  }\n};\nvar Light = class extends Object3D {\n  constructor(color, intensity = 1) {\n    super();\n    this.isLight = true;\n    this.type = \"Light\";\n    this.color = new Color(color);\n    this.intensity = intensity;\n  }\n  dispose() {\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.color.copy(source.color);\n    this.intensity = source.intensity;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.color = this.color.getHex();\n    data.object.intensity = this.intensity;\n    if (this.groundColor !== void 0) data.object.groundColor = this.groundColor.getHex();\n    if (this.distance !== void 0) data.object.distance = this.distance;\n    if (this.angle !== void 0) data.object.angle = this.angle;\n    if (this.decay !== void 0) data.object.decay = this.decay;\n    if (this.penumbra !== void 0) data.object.penumbra = this.penumbra;\n    if (this.shadow !== void 0) data.object.shadow = this.shadow.toJSON();\n    if (this.target !== void 0) data.object.target = this.target.uuid;\n    return data;\n  }\n};\nvar HemisphereLight = class extends Light {\n  constructor(skyColor, groundColor, intensity) {\n    super(skyColor, intensity);\n    this.isHemisphereLight = true;\n    this.type = \"HemisphereLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.groundColor = new Color(groundColor);\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.groundColor.copy(source.groundColor);\n    return this;\n  }\n};\nvar _projScreenMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar _lightPositionWorld$1 = /* @__PURE__ */ new Vector3();\nvar _lookTarget$1 = /* @__PURE__ */ new Vector3();\nvar LightShadow = class {\n  constructor(camera) {\n    this.camera = camera;\n    this.intensity = 1;\n    this.bias = 0;\n    this.normalBias = 0;\n    this.radius = 1;\n    this.blurSamples = 8;\n    this.mapSize = new Vector2(512, 512);\n    this.map = null;\n    this.mapPass = null;\n    this.matrix = new Matrix4();\n    this.autoUpdate = true;\n    this.needsUpdate = false;\n    this._frustum = new Frustum();\n    this._frameExtents = new Vector2(1, 1);\n    this._viewportCount = 1;\n    this._viewports = [\n      new Vector4(0, 0, 1, 1)\n    ];\n  }\n  getViewportCount() {\n    return this._viewportCount;\n  }\n  getFrustum() {\n    return this._frustum;\n  }\n  updateMatrices(light) {\n    const shadowCamera = this.camera;\n    const shadowMatrix = this.matrix;\n    _lightPositionWorld$1.setFromMatrixPosition(light.matrixWorld);\n    shadowCamera.position.copy(_lightPositionWorld$1);\n    _lookTarget$1.setFromMatrixPosition(light.target.matrixWorld);\n    shadowCamera.lookAt(_lookTarget$1);\n    shadowCamera.updateMatrixWorld();\n    _projScreenMatrix$1.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\n    this._frustum.setFromProjectionMatrix(_projScreenMatrix$1);\n    shadowMatrix.set(\n      0.5,\n      0,\n      0,\n      0.5,\n      0,\n      0.5,\n      0,\n      0.5,\n      0,\n      0,\n      0.5,\n      0.5,\n      0,\n      0,\n      0,\n      1\n    );\n    shadowMatrix.multiply(_projScreenMatrix$1);\n  }\n  getViewport(viewportIndex) {\n    return this._viewports[viewportIndex];\n  }\n  getFrameExtents() {\n    return this._frameExtents;\n  }\n  dispose() {\n    if (this.map) {\n      this.map.dispose();\n    }\n    if (this.mapPass) {\n      this.mapPass.dispose();\n    }\n  }\n  copy(source) {\n    this.camera = source.camera.clone();\n    this.intensity = source.intensity;\n    this.bias = source.bias;\n    this.radius = source.radius;\n    this.mapSize.copy(source.mapSize);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  toJSON() {\n    const object = {};\n    if (this.intensity !== 1) object.intensity = this.intensity;\n    if (this.bias !== 0) object.bias = this.bias;\n    if (this.normalBias !== 0) object.normalBias = this.normalBias;\n    if (this.radius !== 1) object.radius = this.radius;\n    if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\n    object.camera = this.camera.toJSON(false).object;\n    delete object.camera.matrix;\n    return object;\n  }\n};\nvar SpotLightShadow = class extends LightShadow {\n  constructor() {\n    super(new PerspectiveCamera(50, 1, 0.5, 500));\n    this.isSpotLightShadow = true;\n    this.focus = 1;\n  }\n  updateMatrices(light) {\n    const camera = this.camera;\n    const fov2 = RAD2DEG * 2 * light.angle * this.focus;\n    const aspect2 = this.mapSize.width / this.mapSize.height;\n    const far = light.distance || camera.far;\n    if (fov2 !== camera.fov || aspect2 !== camera.aspect || far !== camera.far) {\n      camera.fov = fov2;\n      camera.aspect = aspect2;\n      camera.far = far;\n      camera.updateProjectionMatrix();\n    }\n    super.updateMatrices(light);\n  }\n  copy(source) {\n    super.copy(source);\n    this.focus = source.focus;\n    return this;\n  }\n};\nvar SpotLight = class extends Light {\n  constructor(color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2) {\n    super(color, intensity);\n    this.isSpotLight = true;\n    this.type = \"SpotLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.target = new Object3D();\n    this.distance = distance;\n    this.angle = angle;\n    this.penumbra = penumbra;\n    this.decay = decay;\n    this.map = null;\n    this.shadow = new SpotLightShadow();\n  }\n  get power() {\n    return this.intensity * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / Math.PI;\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.distance = source.distance;\n    this.angle = source.angle;\n    this.penumbra = source.penumbra;\n    this.decay = source.decay;\n    this.target = source.target.clone();\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar _projScreenMatrix = /* @__PURE__ */ new Matrix4();\nvar _lightPositionWorld = /* @__PURE__ */ new Vector3();\nvar _lookTarget = /* @__PURE__ */ new Vector3();\nvar PointLightShadow = class extends LightShadow {\n  constructor() {\n    super(new PerspectiveCamera(90, 1, 0.5, 500));\n    this.isPointLightShadow = true;\n    this._frameExtents = new Vector2(4, 2);\n    this._viewportCount = 6;\n    this._viewports = [\n      // These viewports map a cube-map onto a 2D texture with the\n      // following orientation:\n      //\n      //  xzXZ\n      //   y Y\n      //\n      // X - Positive x direction\n      // x - Negative x direction\n      // Y - Positive y direction\n      // y - Negative y direction\n      // Z - Positive z direction\n      // z - Negative z direction\n      // positive X\n      new Vector4(2, 1, 1, 1),\n      // negative X\n      new Vector4(0, 1, 1, 1),\n      // positive Z\n      new Vector4(3, 1, 1, 1),\n      // negative Z\n      new Vector4(1, 1, 1, 1),\n      // positive Y\n      new Vector4(3, 0, 1, 1),\n      // negative Y\n      new Vector4(1, 0, 1, 1)\n    ];\n    this._cubeDirections = [\n      new Vector3(1, 0, 0),\n      new Vector3(-1, 0, 0),\n      new Vector3(0, 0, 1),\n      new Vector3(0, 0, -1),\n      new Vector3(0, 1, 0),\n      new Vector3(0, -1, 0)\n    ];\n    this._cubeUps = [\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 0, 1),\n      new Vector3(0, 0, -1)\n    ];\n  }\n  updateMatrices(light, viewportIndex = 0) {\n    const camera = this.camera;\n    const shadowMatrix = this.matrix;\n    const far = light.distance || camera.far;\n    if (far !== camera.far) {\n      camera.far = far;\n      camera.updateProjectionMatrix();\n    }\n    _lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n    camera.position.copy(_lightPositionWorld);\n    _lookTarget.copy(camera.position);\n    _lookTarget.add(this._cubeDirections[viewportIndex]);\n    camera.up.copy(this._cubeUps[viewportIndex]);\n    camera.lookAt(_lookTarget);\n    camera.updateMatrixWorld();\n    shadowMatrix.makeTranslation(-_lightPositionWorld.x, -_lightPositionWorld.y, -_lightPositionWorld.z);\n    _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n    this._frustum.setFromProjectionMatrix(_projScreenMatrix);\n  }\n};\nvar PointLight = class extends Light {\n  constructor(color, intensity, distance = 0, decay = 2) {\n    super(color, intensity);\n    this.isPointLight = true;\n    this.type = \"PointLight\";\n    this.distance = distance;\n    this.decay = decay;\n    this.shadow = new PointLightShadow();\n  }\n  get power() {\n    return this.intensity * 4 * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / (4 * Math.PI);\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.distance = source.distance;\n    this.decay = source.decay;\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar DirectionalLightShadow = class extends LightShadow {\n  constructor() {\n    super(new OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\n    this.isDirectionalLightShadow = true;\n  }\n};\nvar DirectionalLight = class extends Light {\n  constructor(color, intensity) {\n    super(color, intensity);\n    this.isDirectionalLight = true;\n    this.type = \"DirectionalLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.target = new Object3D();\n    this.shadow = new DirectionalLightShadow();\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source) {\n    super.copy(source);\n    this.target = source.target.clone();\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar AmbientLight = class extends Light {\n  constructor(color, intensity) {\n    super(color, intensity);\n    this.isAmbientLight = true;\n    this.type = \"AmbientLight\";\n  }\n};\nvar RectAreaLight = class extends Light {\n  constructor(color, intensity, width = 10, height = 10) {\n    super(color, intensity);\n    this.isRectAreaLight = true;\n    this.type = \"RectAreaLight\";\n    this.width = width;\n    this.height = height;\n  }\n  get power() {\n    return this.intensity * this.width * this.height * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / (this.width * this.height * Math.PI);\n  }\n  copy(source) {\n    super.copy(source);\n    this.width = source.width;\n    this.height = source.height;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.width = this.width;\n    data.object.height = this.height;\n    return data;\n  }\n};\nvar SphericalHarmonics3 = class {\n  constructor() {\n    this.isSphericalHarmonics3 = true;\n    this.coefficients = [];\n    for (let i = 0; i < 9; i++) {\n      this.coefficients.push(new Vector3());\n    }\n  }\n  set(coefficients) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].copy(coefficients[i]);\n    }\n    return this;\n  }\n  zero() {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].set(0, 0, 0);\n    }\n    return this;\n  }\n  // get the radiance in the direction of the normal\n  // target is a Vector3\n  getAt(normal, target) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    const coeff = this.coefficients;\n    target.copy(coeff[0]).multiplyScalar(0.282095);\n    target.addScaledVector(coeff[1], 0.488603 * y);\n    target.addScaledVector(coeff[2], 0.488603 * z);\n    target.addScaledVector(coeff[3], 0.488603 * x);\n    target.addScaledVector(coeff[4], 1.092548 * (x * y));\n    target.addScaledVector(coeff[5], 1.092548 * (y * z));\n    target.addScaledVector(coeff[6], 0.315392 * (3 * z * z - 1));\n    target.addScaledVector(coeff[7], 1.092548 * (x * z));\n    target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y));\n    return target;\n  }\n  // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n  // target is a Vector3\n  // https://graphics.stanford.edu/papers/envmap/envmap.pdf\n  getIrradianceAt(normal, target) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    const coeff = this.coefficients;\n    target.copy(coeff[0]).multiplyScalar(0.886227);\n    target.addScaledVector(coeff[1], 2 * 0.511664 * y);\n    target.addScaledVector(coeff[2], 2 * 0.511664 * z);\n    target.addScaledVector(coeff[3], 2 * 0.511664 * x);\n    target.addScaledVector(coeff[4], 2 * 0.429043 * x * y);\n    target.addScaledVector(coeff[5], 2 * 0.429043 * y * z);\n    target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708);\n    target.addScaledVector(coeff[7], 2 * 0.429043 * x * z);\n    target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y));\n    return target;\n  }\n  add(sh) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].add(sh.coefficients[i]);\n    }\n    return this;\n  }\n  addScaledSH(sh, s) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].addScaledVector(sh.coefficients[i], s);\n    }\n    return this;\n  }\n  scale(s) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].multiplyScalar(s);\n    }\n    return this;\n  }\n  lerp(sh, alpha) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].lerp(sh.coefficients[i], alpha);\n    }\n    return this;\n  }\n  equals(sh) {\n    for (let i = 0; i < 9; i++) {\n      if (!this.coefficients[i].equals(sh.coefficients[i])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  copy(sh) {\n    return this.set(sh.coefficients);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  fromArray(array, offset = 0) {\n    const coefficients = this.coefficients;\n    for (let i = 0; i < 9; i++) {\n      coefficients[i].fromArray(array, offset + i * 3);\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const coefficients = this.coefficients;\n    for (let i = 0; i < 9; i++) {\n      coefficients[i].toArray(array, offset + i * 3);\n    }\n    return array;\n  }\n  // evaluate the basis functions\n  // shBasis is an Array[ 9 ]\n  static getBasisAt(normal, shBasis) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    shBasis[0] = 0.282095;\n    shBasis[1] = 0.488603 * y;\n    shBasis[2] = 0.488603 * z;\n    shBasis[3] = 0.488603 * x;\n    shBasis[4] = 1.092548 * x * y;\n    shBasis[5] = 1.092548 * y * z;\n    shBasis[6] = 0.315392 * (3 * z * z - 1);\n    shBasis[7] = 1.092548 * x * z;\n    shBasis[8] = 0.546274 * (x * x - y * y);\n  }\n};\nvar LightProbe = class extends Light {\n  constructor(sh = new SphericalHarmonics3(), intensity = 1) {\n    super(void 0, intensity);\n    this.isLightProbe = true;\n    this.sh = sh;\n  }\n  copy(source) {\n    super.copy(source);\n    this.sh.copy(source.sh);\n    return this;\n  }\n  fromJSON(json) {\n    this.intensity = json.intensity;\n    this.sh.fromArray(json.sh);\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.sh = this.sh.toArray();\n    return data;\n  }\n};\nvar MaterialLoader = class _MaterialLoader extends Loader {\n  constructor(manager) {\n    super(manager);\n    this.textures = {};\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(scope.manager);\n    loader.setPath(scope.path);\n    loader.setRequestHeader(scope.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const textures = this.textures;\n    function getTexture(name) {\n      if (textures[name] === void 0) {\n        console.warn(\"THREE.MaterialLoader: Undefined texture\", name);\n      }\n      return textures[name];\n    }\n    const material = this.createMaterialFromType(json.type);\n    if (json.uuid !== void 0) material.uuid = json.uuid;\n    if (json.name !== void 0) material.name = json.name;\n    if (json.color !== void 0 && material.color !== void 0) material.color.setHex(json.color);\n    if (json.roughness !== void 0) material.roughness = json.roughness;\n    if (json.metalness !== void 0) material.metalness = json.metalness;\n    if (json.sheen !== void 0) material.sheen = json.sheen;\n    if (json.sheenColor !== void 0) material.sheenColor = new Color().setHex(json.sheenColor);\n    if (json.sheenRoughness !== void 0) material.sheenRoughness = json.sheenRoughness;\n    if (json.emissive !== void 0 && material.emissive !== void 0) material.emissive.setHex(json.emissive);\n    if (json.specular !== void 0 && material.specular !== void 0) material.specular.setHex(json.specular);\n    if (json.specularIntensity !== void 0) material.specularIntensity = json.specularIntensity;\n    if (json.specularColor !== void 0 && material.specularColor !== void 0) material.specularColor.setHex(json.specularColor);\n    if (json.shininess !== void 0) material.shininess = json.shininess;\n    if (json.clearcoat !== void 0) material.clearcoat = json.clearcoat;\n    if (json.clearcoatRoughness !== void 0) material.clearcoatRoughness = json.clearcoatRoughness;\n    if (json.dispersion !== void 0) material.dispersion = json.dispersion;\n    if (json.iridescence !== void 0) material.iridescence = json.iridescence;\n    if (json.iridescenceIOR !== void 0) material.iridescenceIOR = json.iridescenceIOR;\n    if (json.iridescenceThicknessRange !== void 0) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n    if (json.transmission !== void 0) material.transmission = json.transmission;\n    if (json.thickness !== void 0) material.thickness = json.thickness;\n    if (json.attenuationDistance !== void 0) material.attenuationDistance = json.attenuationDistance;\n    if (json.attenuationColor !== void 0 && material.attenuationColor !== void 0) material.attenuationColor.setHex(json.attenuationColor);\n    if (json.anisotropy !== void 0) material.anisotropy = json.anisotropy;\n    if (json.anisotropyRotation !== void 0) material.anisotropyRotation = json.anisotropyRotation;\n    if (json.fog !== void 0) material.fog = json.fog;\n    if (json.flatShading !== void 0) material.flatShading = json.flatShading;\n    if (json.blending !== void 0) material.blending = json.blending;\n    if (json.combine !== void 0) material.combine = json.combine;\n    if (json.side !== void 0) material.side = json.side;\n    if (json.shadowSide !== void 0) material.shadowSide = json.shadowSide;\n    if (json.opacity !== void 0) material.opacity = json.opacity;\n    if (json.transparent !== void 0) material.transparent = json.transparent;\n    if (json.alphaTest !== void 0) material.alphaTest = json.alphaTest;\n    if (json.alphaHash !== void 0) material.alphaHash = json.alphaHash;\n    if (json.depthFunc !== void 0) material.depthFunc = json.depthFunc;\n    if (json.depthTest !== void 0) material.depthTest = json.depthTest;\n    if (json.depthWrite !== void 0) material.depthWrite = json.depthWrite;\n    if (json.colorWrite !== void 0) material.colorWrite = json.colorWrite;\n    if (json.blendSrc !== void 0) material.blendSrc = json.blendSrc;\n    if (json.blendDst !== void 0) material.blendDst = json.blendDst;\n    if (json.blendEquation !== void 0) material.blendEquation = json.blendEquation;\n    if (json.blendSrcAlpha !== void 0) material.blendSrcAlpha = json.blendSrcAlpha;\n    if (json.blendDstAlpha !== void 0) material.blendDstAlpha = json.blendDstAlpha;\n    if (json.blendEquationAlpha !== void 0) material.blendEquationAlpha = json.blendEquationAlpha;\n    if (json.blendColor !== void 0 && material.blendColor !== void 0) material.blendColor.setHex(json.blendColor);\n    if (json.blendAlpha !== void 0) material.blendAlpha = json.blendAlpha;\n    if (json.stencilWriteMask !== void 0) material.stencilWriteMask = json.stencilWriteMask;\n    if (json.stencilFunc !== void 0) material.stencilFunc = json.stencilFunc;\n    if (json.stencilRef !== void 0) material.stencilRef = json.stencilRef;\n    if (json.stencilFuncMask !== void 0) material.stencilFuncMask = json.stencilFuncMask;\n    if (json.stencilFail !== void 0) material.stencilFail = json.stencilFail;\n    if (json.stencilZFail !== void 0) material.stencilZFail = json.stencilZFail;\n    if (json.stencilZPass !== void 0) material.stencilZPass = json.stencilZPass;\n    if (json.stencilWrite !== void 0) material.stencilWrite = json.stencilWrite;\n    if (json.wireframe !== void 0) material.wireframe = json.wireframe;\n    if (json.wireframeLinewidth !== void 0) material.wireframeLinewidth = json.wireframeLinewidth;\n    if (json.wireframeLinecap !== void 0) material.wireframeLinecap = json.wireframeLinecap;\n    if (json.wireframeLinejoin !== void 0) material.wireframeLinejoin = json.wireframeLinejoin;\n    if (json.rotation !== void 0) material.rotation = json.rotation;\n    if (json.linewidth !== void 0) material.linewidth = json.linewidth;\n    if (json.dashSize !== void 0) material.dashSize = json.dashSize;\n    if (json.gapSize !== void 0) material.gapSize = json.gapSize;\n    if (json.scale !== void 0) material.scale = json.scale;\n    if (json.polygonOffset !== void 0) material.polygonOffset = json.polygonOffset;\n    if (json.polygonOffsetFactor !== void 0) material.polygonOffsetFactor = json.polygonOffsetFactor;\n    if (json.polygonOffsetUnits !== void 0) material.polygonOffsetUnits = json.polygonOffsetUnits;\n    if (json.dithering !== void 0) material.dithering = json.dithering;\n    if (json.alphaToCoverage !== void 0) material.alphaToCoverage = json.alphaToCoverage;\n    if (json.premultipliedAlpha !== void 0) material.premultipliedAlpha = json.premultipliedAlpha;\n    if (json.forceSinglePass !== void 0) material.forceSinglePass = json.forceSinglePass;\n    if (json.visible !== void 0) material.visible = json.visible;\n    if (json.toneMapped !== void 0) material.toneMapped = json.toneMapped;\n    if (json.userData !== void 0) material.userData = json.userData;\n    if (json.vertexColors !== void 0) {\n      if (typeof json.vertexColors === \"number\") {\n        material.vertexColors = json.vertexColors > 0 ? true : false;\n      } else {\n        material.vertexColors = json.vertexColors;\n      }\n    }\n    if (json.uniforms !== void 0) {\n      for (const name in json.uniforms) {\n        const uniform = json.uniforms[name];\n        material.uniforms[name] = {};\n        switch (uniform.type) {\n          case \"t\":\n            material.uniforms[name].value = getTexture(uniform.value);\n            break;\n          case \"c\":\n            material.uniforms[name].value = new Color().setHex(uniform.value);\n            break;\n          case \"v2\":\n            material.uniforms[name].value = new Vector2().fromArray(uniform.value);\n            break;\n          case \"v3\":\n            material.uniforms[name].value = new Vector3().fromArray(uniform.value);\n            break;\n          case \"v4\":\n            material.uniforms[name].value = new Vector4().fromArray(uniform.value);\n            break;\n          case \"m3\":\n            material.uniforms[name].value = new Matrix3().fromArray(uniform.value);\n            break;\n          case \"m4\":\n            material.uniforms[name].value = new Matrix4().fromArray(uniform.value);\n            break;\n          default:\n            material.uniforms[name].value = uniform.value;\n        }\n      }\n    }\n    if (json.defines !== void 0) material.defines = json.defines;\n    if (json.vertexShader !== void 0) material.vertexShader = json.vertexShader;\n    if (json.fragmentShader !== void 0) material.fragmentShader = json.fragmentShader;\n    if (json.glslVersion !== void 0) material.glslVersion = json.glslVersion;\n    if (json.extensions !== void 0) {\n      for (const key in json.extensions) {\n        material.extensions[key] = json.extensions[key];\n      }\n    }\n    if (json.lights !== void 0) material.lights = json.lights;\n    if (json.clipping !== void 0) material.clipping = json.clipping;\n    if (json.size !== void 0) material.size = json.size;\n    if (json.sizeAttenuation !== void 0) material.sizeAttenuation = json.sizeAttenuation;\n    if (json.map !== void 0) material.map = getTexture(json.map);\n    if (json.matcap !== void 0) material.matcap = getTexture(json.matcap);\n    if (json.alphaMap !== void 0) material.alphaMap = getTexture(json.alphaMap);\n    if (json.bumpMap !== void 0) material.bumpMap = getTexture(json.bumpMap);\n    if (json.bumpScale !== void 0) material.bumpScale = json.bumpScale;\n    if (json.normalMap !== void 0) material.normalMap = getTexture(json.normalMap);\n    if (json.normalMapType !== void 0) material.normalMapType = json.normalMapType;\n    if (json.normalScale !== void 0) {\n      let normalScale = json.normalScale;\n      if (Array.isArray(normalScale) === false) {\n        normalScale = [normalScale, normalScale];\n      }\n      material.normalScale = new Vector2().fromArray(normalScale);\n    }\n    if (json.displacementMap !== void 0) material.displacementMap = getTexture(json.displacementMap);\n    if (json.displacementScale !== void 0) material.displacementScale = json.displacementScale;\n    if (json.displacementBias !== void 0) material.displacementBias = json.displacementBias;\n    if (json.roughnessMap !== void 0) material.roughnessMap = getTexture(json.roughnessMap);\n    if (json.metalnessMap !== void 0) material.metalnessMap = getTexture(json.metalnessMap);\n    if (json.emissiveMap !== void 0) material.emissiveMap = getTexture(json.emissiveMap);\n    if (json.emissiveIntensity !== void 0) material.emissiveIntensity = json.emissiveIntensity;\n    if (json.specularMap !== void 0) material.specularMap = getTexture(json.specularMap);\n    if (json.specularIntensityMap !== void 0) material.specularIntensityMap = getTexture(json.specularIntensityMap);\n    if (json.specularColorMap !== void 0) material.specularColorMap = getTexture(json.specularColorMap);\n    if (json.envMap !== void 0) material.envMap = getTexture(json.envMap);\n    if (json.envMapRotation !== void 0) material.envMapRotation.fromArray(json.envMapRotation);\n    if (json.envMapIntensity !== void 0) material.envMapIntensity = json.envMapIntensity;\n    if (json.reflectivity !== void 0) material.reflectivity = json.reflectivity;\n    if (json.refractionRatio !== void 0) material.refractionRatio = json.refractionRatio;\n    if (json.lightMap !== void 0) material.lightMap = getTexture(json.lightMap);\n    if (json.lightMapIntensity !== void 0) material.lightMapIntensity = json.lightMapIntensity;\n    if (json.aoMap !== void 0) material.aoMap = getTexture(json.aoMap);\n    if (json.aoMapIntensity !== void 0) material.aoMapIntensity = json.aoMapIntensity;\n    if (json.gradientMap !== void 0) material.gradientMap = getTexture(json.gradientMap);\n    if (json.clearcoatMap !== void 0) material.clearcoatMap = getTexture(json.clearcoatMap);\n    if (json.clearcoatRoughnessMap !== void 0) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap);\n    if (json.clearcoatNormalMap !== void 0) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\n    if (json.clearcoatNormalScale !== void 0) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale);\n    if (json.iridescenceMap !== void 0) material.iridescenceMap = getTexture(json.iridescenceMap);\n    if (json.iridescenceThicknessMap !== void 0) material.iridescenceThicknessMap = getTexture(json.iridescenceThicknessMap);\n    if (json.transmissionMap !== void 0) material.transmissionMap = getTexture(json.transmissionMap);\n    if (json.thicknessMap !== void 0) material.thicknessMap = getTexture(json.thicknessMap);\n    if (json.anisotropyMap !== void 0) material.anisotropyMap = getTexture(json.anisotropyMap);\n    if (json.sheenColorMap !== void 0) material.sheenColorMap = getTexture(json.sheenColorMap);\n    if (json.sheenRoughnessMap !== void 0) material.sheenRoughnessMap = getTexture(json.sheenRoughnessMap);\n    return material;\n  }\n  setTextures(value) {\n    this.textures = value;\n    return this;\n  }\n  createMaterialFromType(type) {\n    return _MaterialLoader.createMaterialFromType(type);\n  }\n  static createMaterialFromType(type) {\n    const materialLib = {\n      ShadowMaterial,\n      SpriteMaterial,\n      RawShaderMaterial,\n      ShaderMaterial,\n      PointsMaterial,\n      MeshPhysicalMaterial,\n      MeshStandardMaterial,\n      MeshPhongMaterial,\n      MeshToonMaterial,\n      MeshNormalMaterial,\n      MeshLambertMaterial,\n      MeshDepthMaterial,\n      MeshDistanceMaterial,\n      MeshBasicMaterial,\n      MeshMatcapMaterial,\n      LineDashedMaterial,\n      LineBasicMaterial,\n      Material\n    };\n    return new materialLib[type]();\n  }\n};\nvar LoaderUtils = class {\n  static decodeText(array) {\n    console.warn(\"THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.\");\n    if (typeof TextDecoder !== \"undefined\") {\n      return new TextDecoder().decode(array);\n    }\n    let s = \"\";\n    for (let i = 0, il = array.length; i < il; i++) {\n      s += String.fromCharCode(array[i]);\n    }\n    try {\n      return decodeURIComponent(escape(s));\n    } catch (e) {\n      return s;\n    }\n  }\n  static extractUrlBase(url) {\n    const index = url.lastIndexOf(\"/\");\n    if (index === -1) return \"./\";\n    return url.slice(0, index + 1);\n  }\n  static resolveURL(url, path) {\n    if (typeof url !== \"string\" || url === \"\") return \"\";\n    if (/^https?:\\/\\//i.test(path) && /^\\//.test(url)) {\n      path = path.replace(/(^https?:\\/\\/[^\\/]+).*/i, \"$1\");\n    }\n    if (/^(https?:)?\\/\\//i.test(url)) return url;\n    if (/^data:.*,.*$/i.test(url)) return url;\n    if (/^blob:.*$/i.test(url)) return url;\n    return path + url;\n  }\n};\nvar InstancedBufferGeometry = class extends BufferGeometry {\n  constructor() {\n    super();\n    this.isInstancedBufferGeometry = true;\n    this.type = \"InstancedBufferGeometry\";\n    this.instanceCount = Infinity;\n  }\n  copy(source) {\n    super.copy(source);\n    this.instanceCount = source.instanceCount;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.instanceCount = this.instanceCount;\n    data.isInstancedBufferGeometry = true;\n    return data;\n  }\n};\nvar BufferGeometryLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(scope.manager);\n    loader.setPath(scope.path);\n    loader.setRequestHeader(scope.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const interleavedBufferMap = {};\n    const arrayBufferMap = {};\n    function getInterleavedBuffer(json2, uuid) {\n      if (interleavedBufferMap[uuid] !== void 0) return interleavedBufferMap[uuid];\n      const interleavedBuffers = json2.interleavedBuffers;\n      const interleavedBuffer = interleavedBuffers[uuid];\n      const buffer = getArrayBuffer(json2, interleavedBuffer.buffer);\n      const array = getTypedArray(interleavedBuffer.type, buffer);\n      const ib = new InterleavedBuffer(array, interleavedBuffer.stride);\n      ib.uuid = interleavedBuffer.uuid;\n      interleavedBufferMap[uuid] = ib;\n      return ib;\n    }\n    function getArrayBuffer(json2, uuid) {\n      if (arrayBufferMap[uuid] !== void 0) return arrayBufferMap[uuid];\n      const arrayBuffers = json2.arrayBuffers;\n      const arrayBuffer = arrayBuffers[uuid];\n      const ab = new Uint32Array(arrayBuffer).buffer;\n      arrayBufferMap[uuid] = ab;\n      return ab;\n    }\n    const geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n    const index = json.data.index;\n    if (index !== void 0) {\n      const typedArray = getTypedArray(index.type, index.array);\n      geometry.setIndex(new BufferAttribute(typedArray, 1));\n    }\n    const attributes = json.data.attributes;\n    for (const key in attributes) {\n      const attribute = attributes[key];\n      let bufferAttribute;\n      if (attribute.isInterleavedBufferAttribute) {\n        const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n        bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n      } else {\n        const typedArray = getTypedArray(attribute.type, attribute.array);\n        const bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n        bufferAttribute = new bufferAttributeConstr(typedArray, attribute.itemSize, attribute.normalized);\n      }\n      if (attribute.name !== void 0) bufferAttribute.name = attribute.name;\n      if (attribute.usage !== void 0) bufferAttribute.setUsage(attribute.usage);\n      geometry.setAttribute(key, bufferAttribute);\n    }\n    const morphAttributes = json.data.morphAttributes;\n    if (morphAttributes) {\n      for (const key in morphAttributes) {\n        const attributeArray = morphAttributes[key];\n        const array = [];\n        for (let i = 0, il = attributeArray.length; i < il; i++) {\n          const attribute = attributeArray[i];\n          let bufferAttribute;\n          if (attribute.isInterleavedBufferAttribute) {\n            const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n            bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n          } else {\n            const typedArray = getTypedArray(attribute.type, attribute.array);\n            bufferAttribute = new BufferAttribute(typedArray, attribute.itemSize, attribute.normalized);\n          }\n          if (attribute.name !== void 0) bufferAttribute.name = attribute.name;\n          array.push(bufferAttribute);\n        }\n        geometry.morphAttributes[key] = array;\n      }\n    }\n    const morphTargetsRelative = json.data.morphTargetsRelative;\n    if (morphTargetsRelative) {\n      geometry.morphTargetsRelative = true;\n    }\n    const groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n    if (groups !== void 0) {\n      for (let i = 0, n = groups.length; i !== n; ++i) {\n        const group = groups[i];\n        geometry.addGroup(group.start, group.count, group.materialIndex);\n      }\n    }\n    const boundingSphere = json.data.boundingSphere;\n    if (boundingSphere !== void 0) {\n      const center = new Vector3();\n      if (boundingSphere.center !== void 0) {\n        center.fromArray(boundingSphere.center);\n      }\n      geometry.boundingSphere = new Sphere(center, boundingSphere.radius);\n    }\n    if (json.name) geometry.name = json.name;\n    if (json.userData) geometry.userData = json.userData;\n    return geometry;\n  }\n};\nvar ObjectLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const path = this.path === \"\" ? LoaderUtils.extractUrlBase(url) : this.path;\n    this.resourcePath = this.resourcePath || path;\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(text) {\n      let json = null;\n      try {\n        json = JSON.parse(text);\n      } catch (error) {\n        if (onError !== void 0) onError(error);\n        console.error(\"THREE:ObjectLoader: Can't parse \" + url + \".\", error.message);\n        return;\n      }\n      const metadata = json.metadata;\n      if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === \"geometry\") {\n        if (onError !== void 0) onError(new Error(\"THREE.ObjectLoader: Can't load \" + url));\n        console.error(\"THREE.ObjectLoader: Can't load \" + url);\n        return;\n      }\n      scope.parse(json, onLoad);\n    }, onProgress, onError);\n  }\n  loadAsync(url, onProgress) {\n    return __async(this, null, function* () {\n      const scope = this;\n      const path = this.path === \"\" ? LoaderUtils.extractUrlBase(url) : this.path;\n      this.resourcePath = this.resourcePath || path;\n      const loader = new FileLoader(this.manager);\n      loader.setPath(this.path);\n      loader.setRequestHeader(this.requestHeader);\n      loader.setWithCredentials(this.withCredentials);\n      const text = yield loader.loadAsync(url, onProgress);\n      const json = JSON.parse(text);\n      const metadata = json.metadata;\n      if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === \"geometry\") {\n        throw new Error(\"THREE.ObjectLoader: Can't load \" + url);\n      }\n      return yield scope.parseAsync(json);\n    });\n  }\n  parse(json, onLoad) {\n    const animations = this.parseAnimations(json.animations);\n    const shapes = this.parseShapes(json.shapes);\n    const geometries = this.parseGeometries(json.geometries, shapes);\n    const images = this.parseImages(json.images, function() {\n      if (onLoad !== void 0) onLoad(object);\n    });\n    const textures = this.parseTextures(json.textures, images);\n    const materials = this.parseMaterials(json.materials, textures);\n    const object = this.parseObject(json.object, geometries, materials, textures, animations);\n    const skeletons = this.parseSkeletons(json.skeletons, object);\n    this.bindSkeletons(object, skeletons);\n    this.bindLightTargets(object);\n    if (onLoad !== void 0) {\n      let hasImages = false;\n      for (const uuid in images) {\n        if (images[uuid].data instanceof HTMLImageElement) {\n          hasImages = true;\n          break;\n        }\n      }\n      if (hasImages === false) onLoad(object);\n    }\n    return object;\n  }\n  parseAsync(json) {\n    return __async(this, null, function* () {\n      const animations = this.parseAnimations(json.animations);\n      const shapes = this.parseShapes(json.shapes);\n      const geometries = this.parseGeometries(json.geometries, shapes);\n      const images = yield this.parseImagesAsync(json.images);\n      const textures = this.parseTextures(json.textures, images);\n      const materials = this.parseMaterials(json.materials, textures);\n      const object = this.parseObject(json.object, geometries, materials, textures, animations);\n      const skeletons = this.parseSkeletons(json.skeletons, object);\n      this.bindSkeletons(object, skeletons);\n      this.bindLightTargets(object);\n      return object;\n    });\n  }\n  parseShapes(json) {\n    const shapes = {};\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const shape = new Shape().fromJSON(json[i]);\n        shapes[shape.uuid] = shape;\n      }\n    }\n    return shapes;\n  }\n  parseSkeletons(json, object) {\n    const skeletons = {};\n    const bones = {};\n    object.traverse(function(child) {\n      if (child.isBone) bones[child.uuid] = child;\n    });\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const skeleton = new Skeleton().fromJSON(json[i], bones);\n        skeletons[skeleton.uuid] = skeleton;\n      }\n    }\n    return skeletons;\n  }\n  parseGeometries(json, shapes) {\n    const geometries = {};\n    if (json !== void 0) {\n      const bufferGeometryLoader = new BufferGeometryLoader();\n      for (let i = 0, l = json.length; i < l; i++) {\n        let geometry;\n        const data = json[i];\n        switch (data.type) {\n          case \"BufferGeometry\":\n          case \"InstancedBufferGeometry\":\n            geometry = bufferGeometryLoader.parse(data);\n            break;\n          default:\n            if (data.type in Geometries) {\n              geometry = Geometries[data.type].fromJSON(data, shapes);\n            } else {\n              console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${data.type}\"`);\n            }\n        }\n        geometry.uuid = data.uuid;\n        if (data.name !== void 0) geometry.name = data.name;\n        if (data.userData !== void 0) geometry.userData = data.userData;\n        geometries[data.uuid] = geometry;\n      }\n    }\n    return geometries;\n  }\n  parseMaterials(json, textures) {\n    const cache = {};\n    const materials = {};\n    if (json !== void 0) {\n      const loader = new MaterialLoader();\n      loader.setTextures(textures);\n      for (let i = 0, l = json.length; i < l; i++) {\n        const data = json[i];\n        if (cache[data.uuid] === void 0) {\n          cache[data.uuid] = loader.parse(data);\n        }\n        materials[data.uuid] = cache[data.uuid];\n      }\n    }\n    return materials;\n  }\n  parseAnimations(json) {\n    const animations = {};\n    if (json !== void 0) {\n      for (let i = 0; i < json.length; i++) {\n        const data = json[i];\n        const clip = AnimationClip.parse(data);\n        animations[clip.uuid] = clip;\n      }\n    }\n    return animations;\n  }\n  parseImages(json, onLoad) {\n    const scope = this;\n    const images = {};\n    let loader;\n    function loadImage(url) {\n      scope.manager.itemStart(url);\n      return loader.load(url, function() {\n        scope.manager.itemEnd(url);\n      }, void 0, function() {\n        scope.manager.itemError(url);\n        scope.manager.itemEnd(url);\n      });\n    }\n    function deserializeImage(image) {\n      if (typeof image === \"string\") {\n        const url = image;\n        const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n        return loadImage(path);\n      } else {\n        if (image.data) {\n          return {\n            data: getTypedArray(image.type, image.data),\n            width: image.width,\n            height: image.height\n          };\n        } else {\n          return null;\n        }\n      }\n    }\n    if (json !== void 0 && json.length > 0) {\n      const manager = new LoadingManager(onLoad);\n      loader = new ImageLoader(manager);\n      loader.setCrossOrigin(this.crossOrigin);\n      for (let i = 0, il = json.length; i < il; i++) {\n        const image = json[i];\n        const url = image.url;\n        if (Array.isArray(url)) {\n          const imageArray = [];\n          for (let j = 0, jl = url.length; j < jl; j++) {\n            const currentUrl = url[j];\n            const deserializedImage = deserializeImage(currentUrl);\n            if (deserializedImage !== null) {\n              if (deserializedImage instanceof HTMLImageElement) {\n                imageArray.push(deserializedImage);\n              } else {\n                imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n              }\n            }\n          }\n          images[image.uuid] = new Source(imageArray);\n        } else {\n          const deserializedImage = deserializeImage(image.url);\n          images[image.uuid] = new Source(deserializedImage);\n        }\n      }\n    }\n    return images;\n  }\n  parseImagesAsync(json) {\n    return __async(this, null, function* () {\n      const scope = this;\n      const images = {};\n      let loader;\n      function deserializeImage(image) {\n        return __async(this, null, function* () {\n          if (typeof image === \"string\") {\n            const url = image;\n            const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n            return yield loader.loadAsync(path);\n          } else {\n            if (image.data) {\n              return {\n                data: getTypedArray(image.type, image.data),\n                width: image.width,\n                height: image.height\n              };\n            } else {\n              return null;\n            }\n          }\n        });\n      }\n      if (json !== void 0 && json.length > 0) {\n        loader = new ImageLoader(this.manager);\n        loader.setCrossOrigin(this.crossOrigin);\n        for (let i = 0, il = json.length; i < il; i++) {\n          const image = json[i];\n          const url = image.url;\n          if (Array.isArray(url)) {\n            const imageArray = [];\n            for (let j = 0, jl = url.length; j < jl; j++) {\n              const currentUrl = url[j];\n              const deserializedImage = yield deserializeImage(currentUrl);\n              if (deserializedImage !== null) {\n                if (deserializedImage instanceof HTMLImageElement) {\n                  imageArray.push(deserializedImage);\n                } else {\n                  imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n                }\n              }\n            }\n            images[image.uuid] = new Source(imageArray);\n          } else {\n            const deserializedImage = yield deserializeImage(image.url);\n            images[image.uuid] = new Source(deserializedImage);\n          }\n        }\n      }\n      return images;\n    });\n  }\n  parseTextures(json, images) {\n    function parseConstant(value, type) {\n      if (typeof value === \"number\") return value;\n      console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\", value);\n      return type[value];\n    }\n    const textures = {};\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const data = json[i];\n        if (data.image === void 0) {\n          console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n        }\n        if (images[data.image] === void 0) {\n          console.warn(\"THREE.ObjectLoader: Undefined image\", data.image);\n        }\n        const source = images[data.image];\n        const image = source.data;\n        let texture;\n        if (Array.isArray(image)) {\n          texture = new CubeTexture();\n          if (image.length === 6) texture.needsUpdate = true;\n        } else {\n          if (image && image.data) {\n            texture = new DataTexture();\n          } else {\n            texture = new Texture();\n          }\n          if (image) texture.needsUpdate = true;\n        }\n        texture.source = source;\n        texture.uuid = data.uuid;\n        if (data.name !== void 0) texture.name = data.name;\n        if (data.mapping !== void 0) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n        if (data.channel !== void 0) texture.channel = data.channel;\n        if (data.offset !== void 0) texture.offset.fromArray(data.offset);\n        if (data.repeat !== void 0) texture.repeat.fromArray(data.repeat);\n        if (data.center !== void 0) texture.center.fromArray(data.center);\n        if (data.rotation !== void 0) texture.rotation = data.rotation;\n        if (data.wrap !== void 0) {\n          texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n          texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n        }\n        if (data.format !== void 0) texture.format = data.format;\n        if (data.internalFormat !== void 0) texture.internalFormat = data.internalFormat;\n        if (data.type !== void 0) texture.type = data.type;\n        if (data.colorSpace !== void 0) texture.colorSpace = data.colorSpace;\n        if (data.minFilter !== void 0) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n        if (data.magFilter !== void 0) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n        if (data.anisotropy !== void 0) texture.anisotropy = data.anisotropy;\n        if (data.flipY !== void 0) texture.flipY = data.flipY;\n        if (data.generateMipmaps !== void 0) texture.generateMipmaps = data.generateMipmaps;\n        if (data.premultiplyAlpha !== void 0) texture.premultiplyAlpha = data.premultiplyAlpha;\n        if (data.unpackAlignment !== void 0) texture.unpackAlignment = data.unpackAlignment;\n        if (data.compareFunction !== void 0) texture.compareFunction = data.compareFunction;\n        if (data.userData !== void 0) texture.userData = data.userData;\n        textures[data.uuid] = texture;\n      }\n    }\n    return textures;\n  }\n  parseObject(data, geometries, materials, textures, animations) {\n    let object;\n    function getGeometry(name) {\n      if (geometries[name] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined geometry\", name);\n      }\n      return geometries[name];\n    }\n    function getMaterial(name) {\n      if (name === void 0) return void 0;\n      if (Array.isArray(name)) {\n        const array = [];\n        for (let i = 0, l = name.length; i < l; i++) {\n          const uuid = name[i];\n          if (materials[uuid] === void 0) {\n            console.warn(\"THREE.ObjectLoader: Undefined material\", uuid);\n          }\n          array.push(materials[uuid]);\n        }\n        return array;\n      }\n      if (materials[name] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined material\", name);\n      }\n      return materials[name];\n    }\n    function getTexture(uuid) {\n      if (textures[uuid] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined texture\", uuid);\n      }\n      return textures[uuid];\n    }\n    let geometry, material;\n    switch (data.type) {\n      case \"Scene\":\n        object = new Scene();\n        if (data.background !== void 0) {\n          if (Number.isInteger(data.background)) {\n            object.background = new Color(data.background);\n          } else {\n            object.background = getTexture(data.background);\n          }\n        }\n        if (data.environment !== void 0) {\n          object.environment = getTexture(data.environment);\n        }\n        if (data.fog !== void 0) {\n          if (data.fog.type === \"Fog\") {\n            object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far);\n          } else if (data.fog.type === \"FogExp2\") {\n            object.fog = new FogExp2(data.fog.color, data.fog.density);\n          }\n          if (data.fog.name !== \"\") {\n            object.fog.name = data.fog.name;\n          }\n        }\n        if (data.backgroundBlurriness !== void 0) object.backgroundBlurriness = data.backgroundBlurriness;\n        if (data.backgroundIntensity !== void 0) object.backgroundIntensity = data.backgroundIntensity;\n        if (data.backgroundRotation !== void 0) object.backgroundRotation.fromArray(data.backgroundRotation);\n        if (data.environmentIntensity !== void 0) object.environmentIntensity = data.environmentIntensity;\n        if (data.environmentRotation !== void 0) object.environmentRotation.fromArray(data.environmentRotation);\n        break;\n      case \"PerspectiveCamera\":\n        object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n        if (data.focus !== void 0) object.focus = data.focus;\n        if (data.zoom !== void 0) object.zoom = data.zoom;\n        if (data.filmGauge !== void 0) object.filmGauge = data.filmGauge;\n        if (data.filmOffset !== void 0) object.filmOffset = data.filmOffset;\n        if (data.view !== void 0) object.view = Object.assign({}, data.view);\n        break;\n      case \"OrthographicCamera\":\n        object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n        if (data.zoom !== void 0) object.zoom = data.zoom;\n        if (data.view !== void 0) object.view = Object.assign({}, data.view);\n        break;\n      case \"AmbientLight\":\n        object = new AmbientLight(data.color, data.intensity);\n        break;\n      case \"DirectionalLight\":\n        object = new DirectionalLight(data.color, data.intensity);\n        object.target = data.target || \"\";\n        break;\n      case \"PointLight\":\n        object = new PointLight(data.color, data.intensity, data.distance, data.decay);\n        break;\n      case \"RectAreaLight\":\n        object = new RectAreaLight(data.color, data.intensity, data.width, data.height);\n        break;\n      case \"SpotLight\":\n        object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n        object.target = data.target || \"\";\n        break;\n      case \"HemisphereLight\":\n        object = new HemisphereLight(data.color, data.groundColor, data.intensity);\n        break;\n      case \"LightProbe\":\n        object = new LightProbe().fromJSON(data);\n        break;\n      case \"SkinnedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new SkinnedMesh(geometry, material);\n        if (data.bindMode !== void 0) object.bindMode = data.bindMode;\n        if (data.bindMatrix !== void 0) object.bindMatrix.fromArray(data.bindMatrix);\n        if (data.skeleton !== void 0) object.skeleton = data.skeleton;\n        break;\n      case \"Mesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new Mesh(geometry, material);\n        break;\n      case \"InstancedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        const count = data.count;\n        const instanceMatrix = data.instanceMatrix;\n        const instanceColor = data.instanceColor;\n        object = new InstancedMesh(geometry, material, count);\n        object.instanceMatrix = new InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);\n        if (instanceColor !== void 0) object.instanceColor = new InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);\n        break;\n      case \"BatchedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new BatchedMesh(data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material);\n        object.geometry = geometry;\n        object.perObjectFrustumCulled = data.perObjectFrustumCulled;\n        object.sortObjects = data.sortObjects;\n        object._drawRanges = data.drawRanges;\n        object._reservedRanges = data.reservedRanges;\n        object._visibility = data.visibility;\n        object._active = data.active;\n        object._bounds = data.bounds.map((bound) => {\n          const box = new Box3();\n          box.min.fromArray(bound.boxMin);\n          box.max.fromArray(bound.boxMax);\n          const sphere = new Sphere();\n          sphere.radius = bound.sphereRadius;\n          sphere.center.fromArray(bound.sphereCenter);\n          return {\n            boxInitialized: bound.boxInitialized,\n            box,\n            sphereInitialized: bound.sphereInitialized,\n            sphere\n          };\n        });\n        object._maxInstanceCount = data.maxInstanceCount;\n        object._maxVertexCount = data.maxVertexCount;\n        object._maxIndexCount = data.maxIndexCount;\n        object._geometryInitialized = data.geometryInitialized;\n        object._geometryCount = data.geometryCount;\n        object._matricesTexture = getTexture(data.matricesTexture.uuid);\n        if (data.colorsTexture !== void 0) object._colorsTexture = getTexture(data.colorsTexture.uuid);\n        break;\n      case \"LOD\":\n        object = new LOD();\n        break;\n      case \"Line\":\n        object = new Line(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"LineLoop\":\n        object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"LineSegments\":\n        object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"PointCloud\":\n      case \"Points\":\n        object = new Points(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"Sprite\":\n        object = new Sprite(getMaterial(data.material));\n        break;\n      case \"Group\":\n        object = new Group();\n        break;\n      case \"Bone\":\n        object = new Bone();\n        break;\n      default:\n        object = new Object3D();\n    }\n    object.uuid = data.uuid;\n    if (data.name !== void 0) object.name = data.name;\n    if (data.matrix !== void 0) {\n      object.matrix.fromArray(data.matrix);\n      if (data.matrixAutoUpdate !== void 0) object.matrixAutoUpdate = data.matrixAutoUpdate;\n      if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n    } else {\n      if (data.position !== void 0) object.position.fromArray(data.position);\n      if (data.rotation !== void 0) object.rotation.fromArray(data.rotation);\n      if (data.quaternion !== void 0) object.quaternion.fromArray(data.quaternion);\n      if (data.scale !== void 0) object.scale.fromArray(data.scale);\n    }\n    if (data.up !== void 0) object.up.fromArray(data.up);\n    if (data.castShadow !== void 0) object.castShadow = data.castShadow;\n    if (data.receiveShadow !== void 0) object.receiveShadow = data.receiveShadow;\n    if (data.shadow) {\n      if (data.shadow.intensity !== void 0) object.shadow.intensity = data.shadow.intensity;\n      if (data.shadow.bias !== void 0) object.shadow.bias = data.shadow.bias;\n      if (data.shadow.normalBias !== void 0) object.shadow.normalBias = data.shadow.normalBias;\n      if (data.shadow.radius !== void 0) object.shadow.radius = data.shadow.radius;\n      if (data.shadow.mapSize !== void 0) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n      if (data.shadow.camera !== void 0) object.shadow.camera = this.parseObject(data.shadow.camera);\n    }\n    if (data.visible !== void 0) object.visible = data.visible;\n    if (data.frustumCulled !== void 0) object.frustumCulled = data.frustumCulled;\n    if (data.renderOrder !== void 0) object.renderOrder = data.renderOrder;\n    if (data.userData !== void 0) object.userData = data.userData;\n    if (data.layers !== void 0) object.layers.mask = data.layers;\n    if (data.children !== void 0) {\n      const children = data.children;\n      for (let i = 0; i < children.length; i++) {\n        object.add(this.parseObject(children[i], geometries, materials, textures, animations));\n      }\n    }\n    if (data.animations !== void 0) {\n      const objectAnimations = data.animations;\n      for (let i = 0; i < objectAnimations.length; i++) {\n        const uuid = objectAnimations[i];\n        object.animations.push(animations[uuid]);\n      }\n    }\n    if (data.type === \"LOD\") {\n      if (data.autoUpdate !== void 0) object.autoUpdate = data.autoUpdate;\n      const levels = data.levels;\n      for (let l = 0; l < levels.length; l++) {\n        const level = levels[l];\n        const child = object.getObjectByProperty(\"uuid\", level.object);\n        if (child !== void 0) {\n          object.addLevel(child, level.distance, level.hysteresis);\n        }\n      }\n    }\n    return object;\n  }\n  bindSkeletons(object, skeletons) {\n    if (Object.keys(skeletons).length === 0) return;\n    object.traverse(function(child) {\n      if (child.isSkinnedMesh === true && child.skeleton !== void 0) {\n        const skeleton = skeletons[child.skeleton];\n        if (skeleton === void 0) {\n          console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\", child.skeleton);\n        } else {\n          child.bind(skeleton, child.bindMatrix);\n        }\n      }\n    });\n  }\n  bindLightTargets(object) {\n    object.traverse(function(child) {\n      if (child.isDirectionalLight || child.isSpotLight) {\n        const uuid = child.target;\n        const target = object.getObjectByProperty(\"uuid\", uuid);\n        if (target !== void 0) {\n          child.target = target;\n        } else {\n          child.target = new Object3D();\n        }\n      }\n    });\n  }\n};\nvar TEXTURE_MAPPING = {\n  UVMapping,\n  CubeReflectionMapping,\n  CubeRefractionMapping,\n  EquirectangularReflectionMapping,\n  EquirectangularRefractionMapping,\n  CubeUVReflectionMapping\n};\nvar TEXTURE_WRAPPING = {\n  RepeatWrapping,\n  ClampToEdgeWrapping,\n  MirroredRepeatWrapping\n};\nvar TEXTURE_FILTER = {\n  NearestFilter,\n  NearestMipmapNearestFilter,\n  NearestMipmapLinearFilter,\n  LinearFilter,\n  LinearMipmapNearestFilter,\n  LinearMipmapLinearFilter\n};\nvar ImageBitmapLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n    this.isImageBitmapLoader = true;\n    if (typeof createImageBitmap === \"undefined\") {\n      console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\");\n    }\n    if (typeof fetch === \"undefined\") {\n      console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\");\n    }\n    this.options = { premultiplyAlpha: \"none\" };\n  }\n  setOptions(options) {\n    this.options = options;\n    return this;\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (url === void 0) url = \"\";\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const scope = this;\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      scope.manager.itemStart(url);\n      if (cached.then) {\n        cached.then((imageBitmap) => {\n          if (onLoad) onLoad(imageBitmap);\n          scope.manager.itemEnd(url);\n        }).catch((e) => {\n          if (onError) onError(e);\n        });\n        return;\n      }\n      setTimeout(function() {\n        if (onLoad) onLoad(cached);\n        scope.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    const fetchOptions = {};\n    fetchOptions.credentials = this.crossOrigin === \"anonymous\" ? \"same-origin\" : \"include\";\n    fetchOptions.headers = this.requestHeader;\n    const promise = fetch(url, fetchOptions).then(function(res) {\n      return res.blob();\n    }).then(function(blob) {\n      return createImageBitmap(blob, Object.assign(scope.options, { colorSpaceConversion: \"none\" }));\n    }).then(function(imageBitmap) {\n      Cache.add(url, imageBitmap);\n      if (onLoad) onLoad(imageBitmap);\n      scope.manager.itemEnd(url);\n      return imageBitmap;\n    }).catch(function(e) {\n      if (onError) onError(e);\n      Cache.remove(url);\n      scope.manager.itemError(url);\n      scope.manager.itemEnd(url);\n    });\n    Cache.add(url, promise);\n    scope.manager.itemStart(url);\n  }\n};\nvar _context;\nvar AudioContext = class {\n  static getContext() {\n    if (_context === void 0) {\n      _context = new (window.AudioContext || window.webkitAudioContext)();\n    }\n    return _context;\n  }\n  static setContext(value) {\n    _context = value;\n  }\n};\nvar AudioLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(this.manager);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(buffer) {\n      try {\n        const bufferCopy = buffer.slice(0);\n        const context = AudioContext.getContext();\n        context.decodeAudioData(bufferCopy, function(audioBuffer) {\n          onLoad(audioBuffer);\n        }).catch(handleError);\n      } catch (e) {\n        handleError(e);\n      }\n    }, onProgress, onError);\n    function handleError(e) {\n      if (onError) {\n        onError(e);\n      } else {\n        console.error(e);\n      }\n      scope.manager.itemError(url);\n    }\n  }\n};\nvar _eyeRight = /* @__PURE__ */ new Matrix4();\nvar _eyeLeft = /* @__PURE__ */ new Matrix4();\nvar _projectionMatrix = /* @__PURE__ */ new Matrix4();\nvar StereoCamera = class {\n  constructor() {\n    this.type = \"StereoCamera\";\n    this.aspect = 1;\n    this.eyeSep = 0.064;\n    this.cameraL = new PerspectiveCamera();\n    this.cameraL.layers.enable(1);\n    this.cameraL.matrixAutoUpdate = false;\n    this.cameraR = new PerspectiveCamera();\n    this.cameraR.layers.enable(2);\n    this.cameraR.matrixAutoUpdate = false;\n    this._cache = {\n      focus: null,\n      fov: null,\n      aspect: null,\n      near: null,\n      far: null,\n      zoom: null,\n      eyeSep: null\n    };\n  }\n  update(camera) {\n    const cache = this._cache;\n    const needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n    if (needsUpdate) {\n      cache.focus = camera.focus;\n      cache.fov = camera.fov;\n      cache.aspect = camera.aspect * this.aspect;\n      cache.near = camera.near;\n      cache.far = camera.far;\n      cache.zoom = camera.zoom;\n      cache.eyeSep = this.eyeSep;\n      _projectionMatrix.copy(camera.projectionMatrix);\n      const eyeSepHalf = cache.eyeSep / 2;\n      const eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n      const ymax = cache.near * Math.tan(DEG2RAD * cache.fov * 0.5) / cache.zoom;\n      let xmin, xmax;\n      _eyeLeft.elements[12] = -eyeSepHalf;\n      _eyeRight.elements[12] = eyeSepHalf;\n      xmin = -ymax * cache.aspect + eyeSepOnProjection;\n      xmax = ymax * cache.aspect + eyeSepOnProjection;\n      _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n      _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n      this.cameraL.projectionMatrix.copy(_projectionMatrix);\n      xmin = -ymax * cache.aspect - eyeSepOnProjection;\n      xmax = ymax * cache.aspect - eyeSepOnProjection;\n      _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n      _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n      this.cameraR.projectionMatrix.copy(_projectionMatrix);\n    }\n    this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\n    this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\n  }\n};\nvar Clock = class {\n  constructor(autoStart = true) {\n    this.autoStart = autoStart;\n    this.startTime = 0;\n    this.oldTime = 0;\n    this.elapsedTime = 0;\n    this.running = false;\n  }\n  start() {\n    this.startTime = now();\n    this.oldTime = this.startTime;\n    this.elapsedTime = 0;\n    this.running = true;\n  }\n  stop() {\n    this.getElapsedTime();\n    this.running = false;\n    this.autoStart = false;\n  }\n  getElapsedTime() {\n    this.getDelta();\n    return this.elapsedTime;\n  }\n  getDelta() {\n    let diff = 0;\n    if (this.autoStart && !this.running) {\n      this.start();\n      return 0;\n    }\n    if (this.running) {\n      const newTime = now();\n      diff = (newTime - this.oldTime) / 1e3;\n      this.oldTime = newTime;\n      this.elapsedTime += diff;\n    }\n    return diff;\n  }\n};\nfunction now() {\n  return performance.now();\n}\nvar _position$1 = /* @__PURE__ */ new Vector3();\nvar _quaternion$1 = /* @__PURE__ */ new Quaternion();\nvar _scale$1 = /* @__PURE__ */ new Vector3();\nvar _orientation$1 = /* @__PURE__ */ new Vector3();\nvar AudioListener = class extends Object3D {\n  constructor() {\n    super();\n    this.type = \"AudioListener\";\n    this.context = AudioContext.getContext();\n    this.gain = this.context.createGain();\n    this.gain.connect(this.context.destination);\n    this.filter = null;\n    this.timeDelta = 0;\n    this._clock = new Clock();\n  }\n  getInput() {\n    return this.gain;\n  }\n  removeFilter() {\n    if (this.filter !== null) {\n      this.gain.disconnect(this.filter);\n      this.filter.disconnect(this.context.destination);\n      this.gain.connect(this.context.destination);\n      this.filter = null;\n    }\n    return this;\n  }\n  getFilter() {\n    return this.filter;\n  }\n  setFilter(value) {\n    if (this.filter !== null) {\n      this.gain.disconnect(this.filter);\n      this.filter.disconnect(this.context.destination);\n    } else {\n      this.gain.disconnect(this.context.destination);\n    }\n    this.filter = value;\n    this.gain.connect(this.filter);\n    this.filter.connect(this.context.destination);\n    return this;\n  }\n  getMasterVolume() {\n    return this.gain.gain.value;\n  }\n  setMasterVolume(value) {\n    this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n    return this;\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    const listener = this.context.listener;\n    const up = this.up;\n    this.timeDelta = this._clock.getDelta();\n    this.matrixWorld.decompose(_position$1, _quaternion$1, _scale$1);\n    _orientation$1.set(0, 0, -1).applyQuaternion(_quaternion$1);\n    if (listener.positionX) {\n      const endTime = this.context.currentTime + this.timeDelta;\n      listener.positionX.linearRampToValueAtTime(_position$1.x, endTime);\n      listener.positionY.linearRampToValueAtTime(_position$1.y, endTime);\n      listener.positionZ.linearRampToValueAtTime(_position$1.z, endTime);\n      listener.forwardX.linearRampToValueAtTime(_orientation$1.x, endTime);\n      listener.forwardY.linearRampToValueAtTime(_orientation$1.y, endTime);\n      listener.forwardZ.linearRampToValueAtTime(_orientation$1.z, endTime);\n      listener.upX.linearRampToValueAtTime(up.x, endTime);\n      listener.upY.linearRampToValueAtTime(up.y, endTime);\n      listener.upZ.linearRampToValueAtTime(up.z, endTime);\n    } else {\n      listener.setPosition(_position$1.x, _position$1.y, _position$1.z);\n      listener.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z);\n    }\n  }\n};\nvar Audio = class extends Object3D {\n  constructor(listener) {\n    super();\n    this.type = \"Audio\";\n    this.listener = listener;\n    this.context = listener.context;\n    this.gain = this.context.createGain();\n    this.gain.connect(listener.getInput());\n    this.autoplay = false;\n    this.buffer = null;\n    this.detune = 0;\n    this.loop = false;\n    this.loopStart = 0;\n    this.loopEnd = 0;\n    this.offset = 0;\n    this.duration = void 0;\n    this.playbackRate = 1;\n    this.isPlaying = false;\n    this.hasPlaybackControl = true;\n    this.source = null;\n    this.sourceType = \"empty\";\n    this._startedAt = 0;\n    this._progress = 0;\n    this._connected = false;\n    this.filters = [];\n  }\n  getOutput() {\n    return this.gain;\n  }\n  setNodeSource(audioNode) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"audioNode\";\n    this.source = audioNode;\n    this.connect();\n    return this;\n  }\n  setMediaElementSource(mediaElement) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"mediaNode\";\n    this.source = this.context.createMediaElementSource(mediaElement);\n    this.connect();\n    return this;\n  }\n  setMediaStreamSource(mediaStream) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"mediaStreamNode\";\n    this.source = this.context.createMediaStreamSource(mediaStream);\n    this.connect();\n    return this;\n  }\n  setBuffer(audioBuffer) {\n    this.buffer = audioBuffer;\n    this.sourceType = \"buffer\";\n    if (this.autoplay) this.play();\n    return this;\n  }\n  play(delay = 0) {\n    if (this.isPlaying === true) {\n      console.warn(\"THREE.Audio: Audio is already playing.\");\n      return;\n    }\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this._startedAt = this.context.currentTime + delay;\n    const source = this.context.createBufferSource();\n    source.buffer = this.buffer;\n    source.loop = this.loop;\n    source.loopStart = this.loopStart;\n    source.loopEnd = this.loopEnd;\n    source.onended = this.onEnded.bind(this);\n    source.start(this._startedAt, this._progress + this.offset, this.duration);\n    this.isPlaying = true;\n    this.source = source;\n    this.setDetune(this.detune);\n    this.setPlaybackRate(this.playbackRate);\n    return this.connect();\n  }\n  pause() {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    if (this.isPlaying === true) {\n      this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\n      if (this.loop === true) {\n        this._progress = this._progress % (this.duration || this.buffer.duration);\n      }\n      this.source.stop();\n      this.source.onended = null;\n      this.isPlaying = false;\n    }\n    return this;\n  }\n  stop(delay = 0) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this._progress = 0;\n    if (this.source !== null) {\n      this.source.stop(this.context.currentTime + delay);\n      this.source.onended = null;\n    }\n    this.isPlaying = false;\n    return this;\n  }\n  connect() {\n    if (this.filters.length > 0) {\n      this.source.connect(this.filters[0]);\n      for (let i = 1, l = this.filters.length; i < l; i++) {\n        this.filters[i - 1].connect(this.filters[i]);\n      }\n      this.filters[this.filters.length - 1].connect(this.getOutput());\n    } else {\n      this.source.connect(this.getOutput());\n    }\n    this._connected = true;\n    return this;\n  }\n  disconnect() {\n    if (this._connected === false) {\n      return;\n    }\n    if (this.filters.length > 0) {\n      this.source.disconnect(this.filters[0]);\n      for (let i = 1, l = this.filters.length; i < l; i++) {\n        this.filters[i - 1].disconnect(this.filters[i]);\n      }\n      this.filters[this.filters.length - 1].disconnect(this.getOutput());\n    } else {\n      this.source.disconnect(this.getOutput());\n    }\n    this._connected = false;\n    return this;\n  }\n  getFilters() {\n    return this.filters;\n  }\n  setFilters(value) {\n    if (!value) value = [];\n    if (this._connected === true) {\n      this.disconnect();\n      this.filters = value.slice();\n      this.connect();\n    } else {\n      this.filters = value.slice();\n    }\n    return this;\n  }\n  setDetune(value) {\n    this.detune = value;\n    if (this.isPlaying === true && this.source.detune !== void 0) {\n      this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\n    }\n    return this;\n  }\n  getDetune() {\n    return this.detune;\n  }\n  getFilter() {\n    return this.getFilters()[0];\n  }\n  setFilter(filter) {\n    return this.setFilters(filter ? [filter] : []);\n  }\n  setPlaybackRate(value) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this.playbackRate = value;\n    if (this.isPlaying === true) {\n      this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\n    }\n    return this;\n  }\n  getPlaybackRate() {\n    return this.playbackRate;\n  }\n  onEnded() {\n    this.isPlaying = false;\n  }\n  getLoop() {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return false;\n    }\n    return this.loop;\n  }\n  setLoop(value) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this.loop = value;\n    if (this.isPlaying === true) {\n      this.source.loop = this.loop;\n    }\n    return this;\n  }\n  setLoopStart(value) {\n    this.loopStart = value;\n    return this;\n  }\n  setLoopEnd(value) {\n    this.loopEnd = value;\n    return this;\n  }\n  getVolume() {\n    return this.gain.gain.value;\n  }\n  setVolume(value) {\n    this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n    return this;\n  }\n};\nvar _position = /* @__PURE__ */ new Vector3();\nvar _quaternion = /* @__PURE__ */ new Quaternion();\nvar _scale = /* @__PURE__ */ new Vector3();\nvar _orientation = /* @__PURE__ */ new Vector3();\nvar PositionalAudio = class extends Audio {\n  constructor(listener) {\n    super(listener);\n    this.panner = this.context.createPanner();\n    this.panner.panningModel = \"HRTF\";\n    this.panner.connect(this.gain);\n  }\n  connect() {\n    super.connect();\n    this.panner.connect(this.gain);\n  }\n  disconnect() {\n    super.disconnect();\n    this.panner.disconnect(this.gain);\n  }\n  getOutput() {\n    return this.panner;\n  }\n  getRefDistance() {\n    return this.panner.refDistance;\n  }\n  setRefDistance(value) {\n    this.panner.refDistance = value;\n    return this;\n  }\n  getRolloffFactor() {\n    return this.panner.rolloffFactor;\n  }\n  setRolloffFactor(value) {\n    this.panner.rolloffFactor = value;\n    return this;\n  }\n  getDistanceModel() {\n    return this.panner.distanceModel;\n  }\n  setDistanceModel(value) {\n    this.panner.distanceModel = value;\n    return this;\n  }\n  getMaxDistance() {\n    return this.panner.maxDistance;\n  }\n  setMaxDistance(value) {\n    this.panner.maxDistance = value;\n    return this;\n  }\n  setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\n    this.panner.coneInnerAngle = coneInnerAngle;\n    this.panner.coneOuterAngle = coneOuterAngle;\n    this.panner.coneOuterGain = coneOuterGain;\n    return this;\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    if (this.hasPlaybackControl === true && this.isPlaying === false) return;\n    this.matrixWorld.decompose(_position, _quaternion, _scale);\n    _orientation.set(0, 0, 1).applyQuaternion(_quaternion);\n    const panner = this.panner;\n    if (panner.positionX) {\n      const endTime = this.context.currentTime + this.listener.timeDelta;\n      panner.positionX.linearRampToValueAtTime(_position.x, endTime);\n      panner.positionY.linearRampToValueAtTime(_position.y, endTime);\n      panner.positionZ.linearRampToValueAtTime(_position.z, endTime);\n      panner.orientationX.linearRampToValueAtTime(_orientation.x, endTime);\n      panner.orientationY.linearRampToValueAtTime(_orientation.y, endTime);\n      panner.orientationZ.linearRampToValueAtTime(_orientation.z, endTime);\n    } else {\n      panner.setPosition(_position.x, _position.y, _position.z);\n      panner.setOrientation(_orientation.x, _orientation.y, _orientation.z);\n    }\n  }\n};\nvar AudioAnalyser = class {\n  constructor(audio, fftSize = 2048) {\n    this.analyser = audio.context.createAnalyser();\n    this.analyser.fftSize = fftSize;\n    this.data = new Uint8Array(this.analyser.frequencyBinCount);\n    audio.getOutput().connect(this.analyser);\n  }\n  getFrequencyData() {\n    this.analyser.getByteFrequencyData(this.data);\n    return this.data;\n  }\n  getAverageFrequency() {\n    let value = 0;\n    const data = this.getFrequencyData();\n    for (let i = 0; i < data.length; i++) {\n      value += data[i];\n    }\n    return value / data.length;\n  }\n};\nvar PropertyMixer = class {\n  constructor(binding, typeName, valueSize) {\n    this.binding = binding;\n    this.valueSize = valueSize;\n    let mixFunction, mixFunctionAdditive, setIdentity;\n    switch (typeName) {\n      case \"quaternion\":\n        mixFunction = this._slerp;\n        mixFunctionAdditive = this._slerpAdditive;\n        setIdentity = this._setAdditiveIdentityQuaternion;\n        this.buffer = new Float64Array(valueSize * 6);\n        this._workIndex = 5;\n        break;\n      case \"string\":\n      case \"bool\":\n        mixFunction = this._select;\n        mixFunctionAdditive = this._select;\n        setIdentity = this._setAdditiveIdentityOther;\n        this.buffer = new Array(valueSize * 5);\n        break;\n      default:\n        mixFunction = this._lerp;\n        mixFunctionAdditive = this._lerpAdditive;\n        setIdentity = this._setAdditiveIdentityNumeric;\n        this.buffer = new Float64Array(valueSize * 5);\n    }\n    this._mixBufferRegion = mixFunction;\n    this._mixBufferRegionAdditive = mixFunctionAdditive;\n    this._setIdentity = setIdentity;\n    this._origIndex = 3;\n    this._addIndex = 4;\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n    this.useCount = 0;\n    this.referenceCount = 0;\n  }\n  // accumulate data in the 'incoming' region into 'accu<i>'\n  accumulate(accuIndex, weight) {\n    const buffer = this.buffer, stride = this.valueSize, offset = accuIndex * stride + stride;\n    let currentWeight = this.cumulativeWeight;\n    if (currentWeight === 0) {\n      for (let i = 0; i !== stride; ++i) {\n        buffer[offset + i] = buffer[i];\n      }\n      currentWeight = weight;\n    } else {\n      currentWeight += weight;\n      const mix = weight / currentWeight;\n      this._mixBufferRegion(buffer, offset, 0, mix, stride);\n    }\n    this.cumulativeWeight = currentWeight;\n  }\n  // accumulate data in the 'incoming' region into 'add'\n  accumulateAdditive(weight) {\n    const buffer = this.buffer, stride = this.valueSize, offset = stride * this._addIndex;\n    if (this.cumulativeWeightAdditive === 0) {\n      this._setIdentity();\n    }\n    this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride);\n    this.cumulativeWeightAdditive += weight;\n  }\n  // apply the state of 'accu<i>' to the binding when accus differ\n  apply(accuIndex) {\n    const stride = this.valueSize, buffer = this.buffer, offset = accuIndex * stride + stride, weight = this.cumulativeWeight, weightAdditive = this.cumulativeWeightAdditive, binding = this.binding;\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n    if (weight < 1) {\n      const originalValueOffset = stride * this._origIndex;\n      this._mixBufferRegion(\n        buffer,\n        offset,\n        originalValueOffset,\n        1 - weight,\n        stride\n      );\n    }\n    if (weightAdditive > 0) {\n      this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride);\n    }\n    for (let i = stride, e = stride + stride; i !== e; ++i) {\n      if (buffer[i] !== buffer[i + stride]) {\n        binding.setValue(buffer, offset);\n        break;\n      }\n    }\n  }\n  // remember the state of the bound property and copy it to both accus\n  saveOriginalState() {\n    const binding = this.binding;\n    const buffer = this.buffer, stride = this.valueSize, originalValueOffset = stride * this._origIndex;\n    binding.getValue(buffer, originalValueOffset);\n    for (let i = stride, e = originalValueOffset; i !== e; ++i) {\n      buffer[i] = buffer[originalValueOffset + i % stride];\n    }\n    this._setIdentity();\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n  }\n  // apply the state previously taken via 'saveOriginalState' to the binding\n  restoreOriginalState() {\n    const originalValueOffset = this.valueSize * 3;\n    this.binding.setValue(this.buffer, originalValueOffset);\n  }\n  _setAdditiveIdentityNumeric() {\n    const startIndex = this._addIndex * this.valueSize;\n    const endIndex = startIndex + this.valueSize;\n    for (let i = startIndex; i < endIndex; i++) {\n      this.buffer[i] = 0;\n    }\n  }\n  _setAdditiveIdentityQuaternion() {\n    this._setAdditiveIdentityNumeric();\n    this.buffer[this._addIndex * this.valueSize + 3] = 1;\n  }\n  _setAdditiveIdentityOther() {\n    const startIndex = this._origIndex * this.valueSize;\n    const targetIndex = this._addIndex * this.valueSize;\n    for (let i = 0; i < this.valueSize; i++) {\n      this.buffer[targetIndex + i] = this.buffer[startIndex + i];\n    }\n  }\n  // mix functions\n  _select(buffer, dstOffset, srcOffset, t, stride) {\n    if (t >= 0.5) {\n      for (let i = 0; i !== stride; ++i) {\n        buffer[dstOffset + i] = buffer[srcOffset + i];\n      }\n    }\n  }\n  _slerp(buffer, dstOffset, srcOffset, t) {\n    Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\n  }\n  _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n    const workOffset = this._workIndex * stride;\n    Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset);\n    Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t);\n  }\n  _lerp(buffer, dstOffset, srcOffset, t, stride) {\n    const s = 1 - t;\n    for (let i = 0; i !== stride; ++i) {\n      const j = dstOffset + i;\n      buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\n    }\n  }\n  _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n    for (let i = 0; i !== stride; ++i) {\n      const j = dstOffset + i;\n      buffer[j] = buffer[j] + buffer[srcOffset + i] * t;\n    }\n  }\n};\nvar _RESERVED_CHARS_RE = \"\\\\[\\\\]\\\\.:\\\\/\";\nvar _reservedRe = new RegExp(\"[\" + _RESERVED_CHARS_RE + \"]\", \"g\");\nvar _wordChar = \"[^\" + _RESERVED_CHARS_RE + \"]\";\nvar _wordCharOrDot = \"[^\" + _RESERVED_CHARS_RE.replace(\"\\\\.\", \"\") + \"]\";\nvar _directoryRe = /* @__PURE__ */ /((?:WC+[\\/:])*)/.source.replace(\"WC\", _wordChar);\nvar _nodeRe = /* @__PURE__ */ /(WCOD+)?/.source.replace(\"WCOD\", _wordCharOrDot);\nvar _objectRe = /* @__PURE__ */ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\", _wordChar);\nvar _propertyRe = /* @__PURE__ */ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\", _wordChar);\nvar _trackRe = new RegExp(\n  \"^\" + _directoryRe + _nodeRe + _objectRe + _propertyRe + \"$\"\n);\nvar _supportedObjectNames = [\"material\", \"materials\", \"bones\", \"map\"];\nvar Composite = class {\n  constructor(targetGroup, path, optionalParsedPath) {\n    const parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\n    this._targetGroup = targetGroup;\n    this._bindings = targetGroup.subscribe_(path, parsedPath);\n  }\n  getValue(array, offset) {\n    this.bind();\n    const firstValidIndex = this._targetGroup.nCachedObjects_, binding = this._bindings[firstValidIndex];\n    if (binding !== void 0) binding.getValue(array, offset);\n  }\n  setValue(array, offset) {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].setValue(array, offset);\n    }\n  }\n  bind() {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].bind();\n    }\n  }\n  unbind() {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].unbind();\n    }\n  }\n};\nvar PropertyBinding = class _PropertyBinding {\n  constructor(rootNode, path, parsedPath) {\n    this.path = path;\n    this.parsedPath = parsedPath || _PropertyBinding.parseTrackName(path);\n    this.node = _PropertyBinding.findNode(rootNode, this.parsedPath.nodeName);\n    this.rootNode = rootNode;\n    this.getValue = this._getValue_unbound;\n    this.setValue = this._setValue_unbound;\n  }\n  static create(root, path, parsedPath) {\n    if (!(root && root.isAnimationObjectGroup)) {\n      return new _PropertyBinding(root, path, parsedPath);\n    } else {\n      return new _PropertyBinding.Composite(root, path, parsedPath);\n    }\n  }\n  /**\n   * Replaces spaces with underscores and removes unsupported characters from\n   * node names, to ensure compatibility with parseTrackName().\n   *\n   * @param {string} name Node name to be sanitized.\n   * @return {string}\n   */\n  static sanitizeNodeName(name) {\n    return name.replace(/\\s/g, \"_\").replace(_reservedRe, \"\");\n  }\n  static parseTrackName(trackName) {\n    const matches = _trackRe.exec(trackName);\n    if (matches === null) {\n      throw new Error(\"PropertyBinding: Cannot parse trackName: \" + trackName);\n    }\n    const results = {\n      // directoryName: matches[ 1 ], // (tschw) currently unused\n      nodeName: matches[2],\n      objectName: matches[3],\n      objectIndex: matches[4],\n      propertyName: matches[5],\n      // required\n      propertyIndex: matches[6]\n    };\n    const lastDot = results.nodeName && results.nodeName.lastIndexOf(\".\");\n    if (lastDot !== void 0 && lastDot !== -1) {\n      const objectName = results.nodeName.substring(lastDot + 1);\n      if (_supportedObjectNames.indexOf(objectName) !== -1) {\n        results.nodeName = results.nodeName.substring(0, lastDot);\n        results.objectName = objectName;\n      }\n    }\n    if (results.propertyName === null || results.propertyName.length === 0) {\n      throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \" + trackName);\n    }\n    return results;\n  }\n  static findNode(root, nodeName) {\n    if (nodeName === void 0 || nodeName === \"\" || nodeName === \".\" || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\n      return root;\n    }\n    if (root.skeleton) {\n      const bone = root.skeleton.getBoneByName(nodeName);\n      if (bone !== void 0) {\n        return bone;\n      }\n    }\n    if (root.children) {\n      const searchNodeSubtree = function(children) {\n        for (let i = 0; i < children.length; i++) {\n          const childNode = children[i];\n          if (childNode.name === nodeName || childNode.uuid === nodeName) {\n            return childNode;\n          }\n          const result = searchNodeSubtree(childNode.children);\n          if (result) return result;\n        }\n        return null;\n      };\n      const subTreeNode = searchNodeSubtree(root.children);\n      if (subTreeNode) {\n        return subTreeNode;\n      }\n    }\n    return null;\n  }\n  // these are used to \"bind\" a nonexistent property\n  _getValue_unavailable() {\n  }\n  _setValue_unavailable() {\n  }\n  // Getters\n  _getValue_direct(buffer, offset) {\n    buffer[offset] = this.targetObject[this.propertyName];\n  }\n  _getValue_array(buffer, offset) {\n    const source = this.resolvedProperty;\n    for (let i = 0, n = source.length; i !== n; ++i) {\n      buffer[offset++] = source[i];\n    }\n  }\n  _getValue_arrayElement(buffer, offset) {\n    buffer[offset] = this.resolvedProperty[this.propertyIndex];\n  }\n  _getValue_toArray(buffer, offset) {\n    this.resolvedProperty.toArray(buffer, offset);\n  }\n  // Direct\n  _setValue_direct(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n  }\n  _setValue_direct_setNeedsUpdate(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // EntireArray\n  _setValue_array(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n  }\n  _setValue_array_setNeedsUpdate(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // ArrayElement\n  _setValue_arrayElement(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n  }\n  _setValue_arrayElement_setNeedsUpdate(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // HasToFromArray\n  _setValue_fromArray(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n  }\n  _setValue_fromArray_setNeedsUpdate(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  _getValue_unbound(targetArray, offset) {\n    this.bind();\n    this.getValue(targetArray, offset);\n  }\n  _setValue_unbound(sourceArray, offset) {\n    this.bind();\n    this.setValue(sourceArray, offset);\n  }\n  // create getter / setter pair for a property in the scene graph\n  bind() {\n    let targetObject = this.node;\n    const parsedPath = this.parsedPath;\n    const objectName = parsedPath.objectName;\n    const propertyName = parsedPath.propertyName;\n    let propertyIndex = parsedPath.propertyIndex;\n    if (!targetObject) {\n      targetObject = _PropertyBinding.findNode(this.rootNode, parsedPath.nodeName);\n      this.node = targetObject;\n    }\n    this.getValue = this._getValue_unavailable;\n    this.setValue = this._setValue_unavailable;\n    if (!targetObject) {\n      console.warn(\"THREE.PropertyBinding: No target node found for track: \" + this.path + \".\");\n      return;\n    }\n    if (objectName) {\n      let objectIndex = parsedPath.objectIndex;\n      switch (objectName) {\n        case \"materials\":\n          if (!targetObject.material) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\", this);\n            return;\n          }\n          if (!targetObject.material.materials) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\", this);\n            return;\n          }\n          targetObject = targetObject.material.materials;\n          break;\n        case \"bones\":\n          if (!targetObject.skeleton) {\n            console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\", this);\n            return;\n          }\n          targetObject = targetObject.skeleton.bones;\n          for (let i = 0; i < targetObject.length; i++) {\n            if (targetObject[i].name === objectIndex) {\n              objectIndex = i;\n              break;\n            }\n          }\n          break;\n        case \"map\":\n          if (\"map\" in targetObject) {\n            targetObject = targetObject.map;\n            break;\n          }\n          if (!targetObject.material) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\", this);\n            return;\n          }\n          if (!targetObject.material.map) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.\", this);\n            return;\n          }\n          targetObject = targetObject.material.map;\n          break;\n        default:\n          if (targetObject[objectName] === void 0) {\n            console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\", this);\n            return;\n          }\n          targetObject = targetObject[objectName];\n      }\n      if (objectIndex !== void 0) {\n        if (targetObject[objectIndex] === void 0) {\n          console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\", this, targetObject);\n          return;\n        }\n        targetObject = targetObject[objectIndex];\n      }\n    }\n    const nodeProperty = targetObject[propertyName];\n    if (nodeProperty === void 0) {\n      const nodeName = parsedPath.nodeName;\n      console.error(\"THREE.PropertyBinding: Trying to update property for track: \" + nodeName + \".\" + propertyName + \" but it wasn't found.\", targetObject);\n      return;\n    }\n    let versioning = this.Versioning.None;\n    this.targetObject = targetObject;\n    if (targetObject.needsUpdate !== void 0) {\n      versioning = this.Versioning.NeedsUpdate;\n    } else if (targetObject.matrixWorldNeedsUpdate !== void 0) {\n      versioning = this.Versioning.MatrixWorldNeedsUpdate;\n    }\n    let bindingType = this.BindingType.Direct;\n    if (propertyIndex !== void 0) {\n      if (propertyName === \"morphTargetInfluences\") {\n        if (!targetObject.geometry) {\n          console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\", this);\n          return;\n        }\n        if (!targetObject.geometry.morphAttributes) {\n          console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\", this);\n          return;\n        }\n        if (targetObject.morphTargetDictionary[propertyIndex] !== void 0) {\n          propertyIndex = targetObject.morphTargetDictionary[propertyIndex];\n        }\n      }\n      bindingType = this.BindingType.ArrayElement;\n      this.resolvedProperty = nodeProperty;\n      this.propertyIndex = propertyIndex;\n    } else if (nodeProperty.fromArray !== void 0 && nodeProperty.toArray !== void 0) {\n      bindingType = this.BindingType.HasFromToArray;\n      this.resolvedProperty = nodeProperty;\n    } else if (Array.isArray(nodeProperty)) {\n      bindingType = this.BindingType.EntireArray;\n      this.resolvedProperty = nodeProperty;\n    } else {\n      this.propertyName = propertyName;\n    }\n    this.getValue = this.GetterByBindingType[bindingType];\n    this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\n  }\n  unbind() {\n    this.node = null;\n    this.getValue = this._getValue_unbound;\n    this.setValue = this._setValue_unbound;\n  }\n};\nPropertyBinding.Composite = Composite;\nPropertyBinding.prototype.BindingType = {\n  Direct: 0,\n  EntireArray: 1,\n  ArrayElement: 2,\n  HasFromToArray: 3\n};\nPropertyBinding.prototype.Versioning = {\n  None: 0,\n  NeedsUpdate: 1,\n  MatrixWorldNeedsUpdate: 2\n};\nPropertyBinding.prototype.GetterByBindingType = [\n  PropertyBinding.prototype._getValue_direct,\n  PropertyBinding.prototype._getValue_array,\n  PropertyBinding.prototype._getValue_arrayElement,\n  PropertyBinding.prototype._getValue_toArray\n];\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n  [\n    // Direct\n    PropertyBinding.prototype._setValue_direct,\n    PropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // EntireArray\n    PropertyBinding.prototype._setValue_array,\n    PropertyBinding.prototype._setValue_array_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // ArrayElement\n    PropertyBinding.prototype._setValue_arrayElement,\n    PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // HasToFromArray\n    PropertyBinding.prototype._setValue_fromArray,\n    PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate\n  ]\n];\nvar AnimationObjectGroup = class {\n  constructor() {\n    this.isAnimationObjectGroup = true;\n    this.uuid = generateUUID();\n    this._objects = Array.prototype.slice.call(arguments);\n    this.nCachedObjects_ = 0;\n    const indices = {};\n    this._indicesByUUID = indices;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      indices[arguments[i].uuid] = i;\n    }\n    this._paths = [];\n    this._parsedPaths = [];\n    this._bindings = [];\n    this._bindingsIndicesByPath = {};\n    const scope = this;\n    this.stats = {\n      objects: {\n        get total() {\n          return scope._objects.length;\n        },\n        get inUse() {\n          return this.total - scope.nCachedObjects_;\n        }\n      },\n      get bindingsPerObject() {\n        return scope._bindings.length;\n      }\n    };\n  }\n  add() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, nBindings = bindings.length;\n    let knownObject = void 0, nObjects = objects.length, nCachedObjects = this.nCachedObjects_;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid;\n      let index = indicesByUUID[uuid];\n      if (index === void 0) {\n        index = nObjects++;\n        indicesByUUID[uuid] = index;\n        objects.push(object);\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));\n        }\n      } else if (index < nCachedObjects) {\n        knownObject = objects[index];\n        const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex];\n        indicesByUUID[lastCachedObject.uuid] = index;\n        objects[index] = lastCachedObject;\n        indicesByUUID[uuid] = firstActiveIndex;\n        objects[firstActiveIndex] = object;\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex];\n          let binding = bindingsForPath[index];\n          bindingsForPath[index] = lastCached;\n          if (binding === void 0) {\n            binding = new PropertyBinding(object, paths[j], parsedPaths[j]);\n          }\n          bindingsForPath[firstActiveIndex] = binding;\n        }\n      } else if (objects[index] !== knownObject) {\n        console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\");\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  remove() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length;\n    let nCachedObjects = this.nCachedObjects_;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid];\n      if (index !== void 0 && index >= nCachedObjects) {\n        const lastCachedIndex = nCachedObjects++, firstActiveObject = objects[lastCachedIndex];\n        indicesByUUID[firstActiveObject.uuid] = index;\n        objects[index] = firstActiveObject;\n        indicesByUUID[uuid] = lastCachedIndex;\n        objects[lastCachedIndex] = object;\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          const bindingsForPath = bindings[j], firstActive = bindingsForPath[lastCachedIndex], binding = bindingsForPath[index];\n          bindingsForPath[index] = firstActive;\n          bindingsForPath[lastCachedIndex] = binding;\n        }\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  // remove & forget\n  uncache() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length;\n    let nCachedObjects = this.nCachedObjects_, nObjects = objects.length;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid];\n      if (index !== void 0) {\n        delete indicesByUUID[uuid];\n        if (index < nCachedObjects) {\n          const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex], lastIndex = --nObjects, lastObject = objects[lastIndex];\n          indicesByUUID[lastCachedObject.uuid] = index;\n          objects[index] = lastCachedObject;\n          indicesByUUID[lastObject.uuid] = firstActiveIndex;\n          objects[firstActiveIndex] = lastObject;\n          objects.pop();\n          for (let j = 0, m = nBindings; j !== m; ++j) {\n            const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex], last = bindingsForPath[lastIndex];\n            bindingsForPath[index] = lastCached;\n            bindingsForPath[firstActiveIndex] = last;\n            bindingsForPath.pop();\n          }\n        } else {\n          const lastIndex = --nObjects, lastObject = objects[lastIndex];\n          if (lastIndex > 0) {\n            indicesByUUID[lastObject.uuid] = index;\n          }\n          objects[index] = lastObject;\n          objects.pop();\n          for (let j = 0, m = nBindings; j !== m; ++j) {\n            const bindingsForPath = bindings[j];\n            bindingsForPath[index] = bindingsForPath[lastIndex];\n            bindingsForPath.pop();\n          }\n        }\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  // Internal interface used by befriended PropertyBinding.Composite:\n  subscribe_(path, parsedPath) {\n    const indicesByPath = this._bindingsIndicesByPath;\n    let index = indicesByPath[path];\n    const bindings = this._bindings;\n    if (index !== void 0) return bindings[index];\n    const paths = this._paths, parsedPaths = this._parsedPaths, objects = this._objects, nObjects = objects.length, nCachedObjects = this.nCachedObjects_, bindingsForPath = new Array(nObjects);\n    index = bindings.length;\n    indicesByPath[path] = index;\n    paths.push(path);\n    parsedPaths.push(parsedPath);\n    bindings.push(bindingsForPath);\n    for (let i = nCachedObjects, n = objects.length; i !== n; ++i) {\n      const object = objects[i];\n      bindingsForPath[i] = new PropertyBinding(object, path, parsedPath);\n    }\n    return bindingsForPath;\n  }\n  unsubscribe_(path) {\n    const indicesByPath = this._bindingsIndicesByPath, index = indicesByPath[path];\n    if (index !== void 0) {\n      const paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, lastBindingsIndex = bindings.length - 1, lastBindings = bindings[lastBindingsIndex], lastBindingsPath = path[lastBindingsIndex];\n      indicesByPath[lastBindingsPath] = index;\n      bindings[index] = lastBindings;\n      bindings.pop();\n      parsedPaths[index] = parsedPaths[lastBindingsIndex];\n      parsedPaths.pop();\n      paths[index] = paths[lastBindingsIndex];\n      paths.pop();\n    }\n  }\n};\nvar AnimationAction = class {\n  constructor(mixer, clip, localRoot = null, blendMode = clip.blendMode) {\n    this._mixer = mixer;\n    this._clip = clip;\n    this._localRoot = localRoot;\n    this.blendMode = blendMode;\n    const tracks = clip.tracks, nTracks = tracks.length, interpolants = new Array(nTracks);\n    const interpolantSettings = {\n      endingStart: ZeroCurvatureEnding,\n      endingEnd: ZeroCurvatureEnding\n    };\n    for (let i = 0; i !== nTracks; ++i) {\n      const interpolant = tracks[i].createInterpolant(null);\n      interpolants[i] = interpolant;\n      interpolant.settings = interpolantSettings;\n    }\n    this._interpolantSettings = interpolantSettings;\n    this._interpolants = interpolants;\n    this._propertyBindings = new Array(nTracks);\n    this._cacheIndex = null;\n    this._byClipCacheIndex = null;\n    this._timeScaleInterpolant = null;\n    this._weightInterpolant = null;\n    this.loop = LoopRepeat;\n    this._loopCount = -1;\n    this._startTime = null;\n    this.time = 0;\n    this.timeScale = 1;\n    this._effectiveTimeScale = 1;\n    this.weight = 1;\n    this._effectiveWeight = 1;\n    this.repetitions = Infinity;\n    this.paused = false;\n    this.enabled = true;\n    this.clampWhenFinished = false;\n    this.zeroSlopeAtStart = true;\n    this.zeroSlopeAtEnd = true;\n  }\n  // State & Scheduling\n  play() {\n    this._mixer._activateAction(this);\n    return this;\n  }\n  stop() {\n    this._mixer._deactivateAction(this);\n    return this.reset();\n  }\n  reset() {\n    this.paused = false;\n    this.enabled = true;\n    this.time = 0;\n    this._loopCount = -1;\n    this._startTime = null;\n    return this.stopFading().stopWarping();\n  }\n  isRunning() {\n    return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\n  }\n  // return true when play has been called\n  isScheduled() {\n    return this._mixer._isActiveAction(this);\n  }\n  startAt(time) {\n    this._startTime = time;\n    return this;\n  }\n  setLoop(mode, repetitions) {\n    this.loop = mode;\n    this.repetitions = repetitions;\n    return this;\n  }\n  // Weight\n  // set the weight stopping any scheduled fading\n  // although .enabled = false yields an effective weight of zero, this\n  // method does *not* change .enabled, because it would be confusing\n  setEffectiveWeight(weight) {\n    this.weight = weight;\n    this._effectiveWeight = this.enabled ? weight : 0;\n    return this.stopFading();\n  }\n  // return the weight considering fading and .enabled\n  getEffectiveWeight() {\n    return this._effectiveWeight;\n  }\n  fadeIn(duration) {\n    return this._scheduleFading(duration, 0, 1);\n  }\n  fadeOut(duration) {\n    return this._scheduleFading(duration, 1, 0);\n  }\n  crossFadeFrom(fadeOutAction, duration, warp) {\n    fadeOutAction.fadeOut(duration);\n    this.fadeIn(duration);\n    if (warp) {\n      const fadeInDuration = this._clip.duration, fadeOutDuration = fadeOutAction._clip.duration, startEndRatio = fadeOutDuration / fadeInDuration, endStartRatio = fadeInDuration / fadeOutDuration;\n      fadeOutAction.warp(1, startEndRatio, duration);\n      this.warp(endStartRatio, 1, duration);\n    }\n    return this;\n  }\n  crossFadeTo(fadeInAction, duration, warp) {\n    return fadeInAction.crossFadeFrom(this, duration, warp);\n  }\n  stopFading() {\n    const weightInterpolant = this._weightInterpolant;\n    if (weightInterpolant !== null) {\n      this._weightInterpolant = null;\n      this._mixer._takeBackControlInterpolant(weightInterpolant);\n    }\n    return this;\n  }\n  // Time Scale Control\n  // set the time scale stopping any scheduled warping\n  // although .paused = true yields an effective time scale of zero, this\n  // method does *not* change .paused, because it would be confusing\n  setEffectiveTimeScale(timeScale) {\n    this.timeScale = timeScale;\n    this._effectiveTimeScale = this.paused ? 0 : timeScale;\n    return this.stopWarping();\n  }\n  // return the time scale considering warping and .paused\n  getEffectiveTimeScale() {\n    return this._effectiveTimeScale;\n  }\n  setDuration(duration) {\n    this.timeScale = this._clip.duration / duration;\n    return this.stopWarping();\n  }\n  syncWith(action) {\n    this.time = action.time;\n    this.timeScale = action.timeScale;\n    return this.stopWarping();\n  }\n  halt(duration) {\n    return this.warp(this._effectiveTimeScale, 0, duration);\n  }\n  warp(startTimeScale, endTimeScale, duration) {\n    const mixer = this._mixer, now2 = mixer.time, timeScale = this.timeScale;\n    let interpolant = this._timeScaleInterpolant;\n    if (interpolant === null) {\n      interpolant = mixer._lendControlInterpolant();\n      this._timeScaleInterpolant = interpolant;\n    }\n    const times = interpolant.parameterPositions, values = interpolant.sampleValues;\n    times[0] = now2;\n    times[1] = now2 + duration;\n    values[0] = startTimeScale / timeScale;\n    values[1] = endTimeScale / timeScale;\n    return this;\n  }\n  stopWarping() {\n    const timeScaleInterpolant = this._timeScaleInterpolant;\n    if (timeScaleInterpolant !== null) {\n      this._timeScaleInterpolant = null;\n      this._mixer._takeBackControlInterpolant(timeScaleInterpolant);\n    }\n    return this;\n  }\n  // Object Accessors\n  getMixer() {\n    return this._mixer;\n  }\n  getClip() {\n    return this._clip;\n  }\n  getRoot() {\n    return this._localRoot || this._mixer._root;\n  }\n  // Interna\n  _update(time, deltaTime, timeDirection, accuIndex) {\n    if (!this.enabled) {\n      this._updateWeight(time);\n      return;\n    }\n    const startTime = this._startTime;\n    if (startTime !== null) {\n      const timeRunning = (time - startTime) * timeDirection;\n      if (timeRunning < 0 || timeDirection === 0) {\n        deltaTime = 0;\n      } else {\n        this._startTime = null;\n        deltaTime = timeDirection * timeRunning;\n      }\n    }\n    deltaTime *= this._updateTimeScale(time);\n    const clipTime = this._updateTime(deltaTime);\n    const weight = this._updateWeight(time);\n    if (weight > 0) {\n      const interpolants = this._interpolants;\n      const propertyMixers = this._propertyBindings;\n      switch (this.blendMode) {\n        case AdditiveAnimationBlendMode:\n          for (let j = 0, m = interpolants.length; j !== m; ++j) {\n            interpolants[j].evaluate(clipTime);\n            propertyMixers[j].accumulateAdditive(weight);\n          }\n          break;\n        case NormalAnimationBlendMode:\n        default:\n          for (let j = 0, m = interpolants.length; j !== m; ++j) {\n            interpolants[j].evaluate(clipTime);\n            propertyMixers[j].accumulate(accuIndex, weight);\n          }\n      }\n    }\n  }\n  _updateWeight(time) {\n    let weight = 0;\n    if (this.enabled) {\n      weight = this.weight;\n      const interpolant = this._weightInterpolant;\n      if (interpolant !== null) {\n        const interpolantValue = interpolant.evaluate(time)[0];\n        weight *= interpolantValue;\n        if (time > interpolant.parameterPositions[1]) {\n          this.stopFading();\n          if (interpolantValue === 0) {\n            this.enabled = false;\n          }\n        }\n      }\n    }\n    this._effectiveWeight = weight;\n    return weight;\n  }\n  _updateTimeScale(time) {\n    let timeScale = 0;\n    if (!this.paused) {\n      timeScale = this.timeScale;\n      const interpolant = this._timeScaleInterpolant;\n      if (interpolant !== null) {\n        const interpolantValue = interpolant.evaluate(time)[0];\n        timeScale *= interpolantValue;\n        if (time > interpolant.parameterPositions[1]) {\n          this.stopWarping();\n          if (timeScale === 0) {\n            this.paused = true;\n          } else {\n            this.timeScale = timeScale;\n          }\n        }\n      }\n    }\n    this._effectiveTimeScale = timeScale;\n    return timeScale;\n  }\n  _updateTime(deltaTime) {\n    const duration = this._clip.duration;\n    const loop = this.loop;\n    let time = this.time + deltaTime;\n    let loopCount = this._loopCount;\n    const pingPong = loop === LoopPingPong;\n    if (deltaTime === 0) {\n      if (loopCount === -1) return time;\n      return pingPong && (loopCount & 1) === 1 ? duration - time : time;\n    }\n    if (loop === LoopOnce) {\n      if (loopCount === -1) {\n        this._loopCount = 0;\n        this._setEndings(true, true, false);\n      }\n      handle_stop: {\n        if (time >= duration) {\n          time = duration;\n        } else if (time < 0) {\n          time = 0;\n        } else {\n          this.time = time;\n          break handle_stop;\n        }\n        if (this.clampWhenFinished) this.paused = true;\n        else this.enabled = false;\n        this.time = time;\n        this._mixer.dispatchEvent({\n          type: \"finished\",\n          action: this,\n          direction: deltaTime < 0 ? -1 : 1\n        });\n      }\n    } else {\n      if (loopCount === -1) {\n        if (deltaTime >= 0) {\n          loopCount = 0;\n          this._setEndings(true, this.repetitions === 0, pingPong);\n        } else {\n          this._setEndings(this.repetitions === 0, true, pingPong);\n        }\n      }\n      if (time >= duration || time < 0) {\n        const loopDelta = Math.floor(time / duration);\n        time -= duration * loopDelta;\n        loopCount += Math.abs(loopDelta);\n        const pending = this.repetitions - loopCount;\n        if (pending <= 0) {\n          if (this.clampWhenFinished) this.paused = true;\n          else this.enabled = false;\n          time = deltaTime > 0 ? duration : 0;\n          this.time = time;\n          this._mixer.dispatchEvent({\n            type: \"finished\",\n            action: this,\n            direction: deltaTime > 0 ? 1 : -1\n          });\n        } else {\n          if (pending === 1) {\n            const atStart = deltaTime < 0;\n            this._setEndings(atStart, !atStart, pingPong);\n          } else {\n            this._setEndings(false, false, pingPong);\n          }\n          this._loopCount = loopCount;\n          this.time = time;\n          this._mixer.dispatchEvent({\n            type: \"loop\",\n            action: this,\n            loopDelta\n          });\n        }\n      } else {\n        this.time = time;\n      }\n      if (pingPong && (loopCount & 1) === 1) {\n        return duration - time;\n      }\n    }\n    return time;\n  }\n  _setEndings(atStart, atEnd, pingPong) {\n    const settings = this._interpolantSettings;\n    if (pingPong) {\n      settings.endingStart = ZeroSlopeEnding;\n      settings.endingEnd = ZeroSlopeEnding;\n    } else {\n      if (atStart) {\n        settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n      } else {\n        settings.endingStart = WrapAroundEnding;\n      }\n      if (atEnd) {\n        settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n      } else {\n        settings.endingEnd = WrapAroundEnding;\n      }\n    }\n  }\n  _scheduleFading(duration, weightNow, weightThen) {\n    const mixer = this._mixer, now2 = mixer.time;\n    let interpolant = this._weightInterpolant;\n    if (interpolant === null) {\n      interpolant = mixer._lendControlInterpolant();\n      this._weightInterpolant = interpolant;\n    }\n    const times = interpolant.parameterPositions, values = interpolant.sampleValues;\n    times[0] = now2;\n    values[0] = weightNow;\n    times[1] = now2 + duration;\n    values[1] = weightThen;\n    return this;\n  }\n};\nvar _controlInterpolantsResultBuffer = new Float32Array(1);\nvar AnimationMixer = class extends EventDispatcher {\n  constructor(root) {\n    super();\n    this._root = root;\n    this._initMemoryManager();\n    this._accuIndex = 0;\n    this.time = 0;\n    this.timeScale = 1;\n  }\n  _bindAction(action, prototypeAction) {\n    const root = action._localRoot || this._root, tracks = action._clip.tracks, nTracks = tracks.length, bindings = action._propertyBindings, interpolants = action._interpolants, rootUuid = root.uuid, bindingsByRoot = this._bindingsByRootAndName;\n    let bindingsByName = bindingsByRoot[rootUuid];\n    if (bindingsByName === void 0) {\n      bindingsByName = {};\n      bindingsByRoot[rootUuid] = bindingsByName;\n    }\n    for (let i = 0; i !== nTracks; ++i) {\n      const track = tracks[i], trackName = track.name;\n      let binding = bindingsByName[trackName];\n      if (binding !== void 0) {\n        ++binding.referenceCount;\n        bindings[i] = binding;\n      } else {\n        binding = bindings[i];\n        if (binding !== void 0) {\n          if (binding._cacheIndex === null) {\n            ++binding.referenceCount;\n            this._addInactiveBinding(binding, rootUuid, trackName);\n          }\n          continue;\n        }\n        const path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\n        binding = new PropertyMixer(\n          PropertyBinding.create(root, trackName, path),\n          track.ValueTypeName,\n          track.getValueSize()\n        );\n        ++binding.referenceCount;\n        this._addInactiveBinding(binding, rootUuid, trackName);\n        bindings[i] = binding;\n      }\n      interpolants[i].resultBuffer = binding.buffer;\n    }\n  }\n  _activateAction(action) {\n    if (!this._isActiveAction(action)) {\n      if (action._cacheIndex === null) {\n        const rootUuid = (action._localRoot || this._root).uuid, clipUuid = action._clip.uuid, actionsForClip = this._actionsByClip[clipUuid];\n        this._bindAction(\n          action,\n          actionsForClip && actionsForClip.knownActions[0]\n        );\n        this._addInactiveAction(action, clipUuid, rootUuid);\n      }\n      const bindings = action._propertyBindings;\n      for (let i = 0, n = bindings.length; i !== n; ++i) {\n        const binding = bindings[i];\n        if (binding.useCount++ === 0) {\n          this._lendBinding(binding);\n          binding.saveOriginalState();\n        }\n      }\n      this._lendAction(action);\n    }\n  }\n  _deactivateAction(action) {\n    if (this._isActiveAction(action)) {\n      const bindings = action._propertyBindings;\n      for (let i = 0, n = bindings.length; i !== n; ++i) {\n        const binding = bindings[i];\n        if (--binding.useCount === 0) {\n          binding.restoreOriginalState();\n          this._takeBackBinding(binding);\n        }\n      }\n      this._takeBackAction(action);\n    }\n  }\n  // Memory manager\n  _initMemoryManager() {\n    this._actions = [];\n    this._nActiveActions = 0;\n    this._actionsByClip = {};\n    this._bindings = [];\n    this._nActiveBindings = 0;\n    this._bindingsByRootAndName = {};\n    this._controlInterpolants = [];\n    this._nActiveControlInterpolants = 0;\n    const scope = this;\n    this.stats = {\n      actions: {\n        get total() {\n          return scope._actions.length;\n        },\n        get inUse() {\n          return scope._nActiveActions;\n        }\n      },\n      bindings: {\n        get total() {\n          return scope._bindings.length;\n        },\n        get inUse() {\n          return scope._nActiveBindings;\n        }\n      },\n      controlInterpolants: {\n        get total() {\n          return scope._controlInterpolants.length;\n        },\n        get inUse() {\n          return scope._nActiveControlInterpolants;\n        }\n      }\n    };\n  }\n  // Memory management for AnimationAction objects\n  _isActiveAction(action) {\n    const index = action._cacheIndex;\n    return index !== null && index < this._nActiveActions;\n  }\n  _addInactiveAction(action, clipUuid, rootUuid) {\n    const actions = this._actions, actionsByClip = this._actionsByClip;\n    let actionsForClip = actionsByClip[clipUuid];\n    if (actionsForClip === void 0) {\n      actionsForClip = {\n        knownActions: [action],\n        actionByRoot: {}\n      };\n      action._byClipCacheIndex = 0;\n      actionsByClip[clipUuid] = actionsForClip;\n    } else {\n      const knownActions = actionsForClip.knownActions;\n      action._byClipCacheIndex = knownActions.length;\n      knownActions.push(action);\n    }\n    action._cacheIndex = actions.length;\n    actions.push(action);\n    actionsForClip.actionByRoot[rootUuid] = action;\n  }\n  _removeInactiveAction(action) {\n    const actions = this._actions, lastInactiveAction = actions[actions.length - 1], cacheIndex = action._cacheIndex;\n    lastInactiveAction._cacheIndex = cacheIndex;\n    actions[cacheIndex] = lastInactiveAction;\n    actions.pop();\n    action._cacheIndex = null;\n    const clipUuid = action._clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid], knownActionsForClip = actionsForClip.knownActions, lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1], byClipCacheIndex = action._byClipCacheIndex;\n    lastKnownAction._byClipCacheIndex = byClipCacheIndex;\n    knownActionsForClip[byClipCacheIndex] = lastKnownAction;\n    knownActionsForClip.pop();\n    action._byClipCacheIndex = null;\n    const actionByRoot = actionsForClip.actionByRoot, rootUuid = (action._localRoot || this._root).uuid;\n    delete actionByRoot[rootUuid];\n    if (knownActionsForClip.length === 0) {\n      delete actionsByClip[clipUuid];\n    }\n    this._removeInactiveBindingsForAction(action);\n  }\n  _removeInactiveBindingsForAction(action) {\n    const bindings = action._propertyBindings;\n    for (let i = 0, n = bindings.length; i !== n; ++i) {\n      const binding = bindings[i];\n      if (--binding.referenceCount === 0) {\n        this._removeInactiveBinding(binding);\n      }\n    }\n  }\n  _lendAction(action) {\n    const actions = this._actions, prevIndex = action._cacheIndex, lastActiveIndex = this._nActiveActions++, firstInactiveAction = actions[lastActiveIndex];\n    action._cacheIndex = lastActiveIndex;\n    actions[lastActiveIndex] = action;\n    firstInactiveAction._cacheIndex = prevIndex;\n    actions[prevIndex] = firstInactiveAction;\n  }\n  _takeBackAction(action) {\n    const actions = this._actions, prevIndex = action._cacheIndex, firstInactiveIndex = --this._nActiveActions, lastActiveAction = actions[firstInactiveIndex];\n    action._cacheIndex = firstInactiveIndex;\n    actions[firstInactiveIndex] = action;\n    lastActiveAction._cacheIndex = prevIndex;\n    actions[prevIndex] = lastActiveAction;\n  }\n  // Memory management for PropertyMixer objects\n  _addInactiveBinding(binding, rootUuid, trackName) {\n    const bindingsByRoot = this._bindingsByRootAndName, bindings = this._bindings;\n    let bindingByName = bindingsByRoot[rootUuid];\n    if (bindingByName === void 0) {\n      bindingByName = {};\n      bindingsByRoot[rootUuid] = bindingByName;\n    }\n    bindingByName[trackName] = binding;\n    binding._cacheIndex = bindings.length;\n    bindings.push(binding);\n  }\n  _removeInactiveBinding(binding) {\n    const bindings = this._bindings, propBinding = binding.binding, rootUuid = propBinding.rootNode.uuid, trackName = propBinding.path, bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid], lastInactiveBinding = bindings[bindings.length - 1], cacheIndex = binding._cacheIndex;\n    lastInactiveBinding._cacheIndex = cacheIndex;\n    bindings[cacheIndex] = lastInactiveBinding;\n    bindings.pop();\n    delete bindingByName[trackName];\n    if (Object.keys(bindingByName).length === 0) {\n      delete bindingsByRoot[rootUuid];\n    }\n  }\n  _lendBinding(binding) {\n    const bindings = this._bindings, prevIndex = binding._cacheIndex, lastActiveIndex = this._nActiveBindings++, firstInactiveBinding = bindings[lastActiveIndex];\n    binding._cacheIndex = lastActiveIndex;\n    bindings[lastActiveIndex] = binding;\n    firstInactiveBinding._cacheIndex = prevIndex;\n    bindings[prevIndex] = firstInactiveBinding;\n  }\n  _takeBackBinding(binding) {\n    const bindings = this._bindings, prevIndex = binding._cacheIndex, firstInactiveIndex = --this._nActiveBindings, lastActiveBinding = bindings[firstInactiveIndex];\n    binding._cacheIndex = firstInactiveIndex;\n    bindings[firstInactiveIndex] = binding;\n    lastActiveBinding._cacheIndex = prevIndex;\n    bindings[prevIndex] = lastActiveBinding;\n  }\n  // Memory management of Interpolants for weight and time scale\n  _lendControlInterpolant() {\n    const interpolants = this._controlInterpolants, lastActiveIndex = this._nActiveControlInterpolants++;\n    let interpolant = interpolants[lastActiveIndex];\n    if (interpolant === void 0) {\n      interpolant = new LinearInterpolant(\n        new Float32Array(2),\n        new Float32Array(2),\n        1,\n        _controlInterpolantsResultBuffer\n      );\n      interpolant.__cacheIndex = lastActiveIndex;\n      interpolants[lastActiveIndex] = interpolant;\n    }\n    return interpolant;\n  }\n  _takeBackControlInterpolant(interpolant) {\n    const interpolants = this._controlInterpolants, prevIndex = interpolant.__cacheIndex, firstInactiveIndex = --this._nActiveControlInterpolants, lastActiveInterpolant = interpolants[firstInactiveIndex];\n    interpolant.__cacheIndex = firstInactiveIndex;\n    interpolants[firstInactiveIndex] = interpolant;\n    lastActiveInterpolant.__cacheIndex = prevIndex;\n    interpolants[prevIndex] = lastActiveInterpolant;\n  }\n  // return an action for a clip optionally using a custom root target\n  // object (this method allocates a lot of dynamic memory in case a\n  // previously unknown clip/root combination is specified)\n  clipAction(clip, optionalRoot, blendMode) {\n    const root = optionalRoot || this._root, rootUuid = root.uuid;\n    let clipObject = typeof clip === \"string\" ? AnimationClip.findByName(root, clip) : clip;\n    const clipUuid = clipObject !== null ? clipObject.uuid : clip;\n    const actionsForClip = this._actionsByClip[clipUuid];\n    let prototypeAction = null;\n    if (blendMode === void 0) {\n      if (clipObject !== null) {\n        blendMode = clipObject.blendMode;\n      } else {\n        blendMode = NormalAnimationBlendMode;\n      }\n    }\n    if (actionsForClip !== void 0) {\n      const existingAction = actionsForClip.actionByRoot[rootUuid];\n      if (existingAction !== void 0 && existingAction.blendMode === blendMode) {\n        return existingAction;\n      }\n      prototypeAction = actionsForClip.knownActions[0];\n      if (clipObject === null)\n        clipObject = prototypeAction._clip;\n    }\n    if (clipObject === null) return null;\n    const newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode);\n    this._bindAction(newAction, prototypeAction);\n    this._addInactiveAction(newAction, clipUuid, rootUuid);\n    return newAction;\n  }\n  // get an existing action\n  existingAction(clip, optionalRoot) {\n    const root = optionalRoot || this._root, rootUuid = root.uuid, clipObject = typeof clip === \"string\" ? AnimationClip.findByName(root, clip) : clip, clipUuid = clipObject ? clipObject.uuid : clip, actionsForClip = this._actionsByClip[clipUuid];\n    if (actionsForClip !== void 0) {\n      return actionsForClip.actionByRoot[rootUuid] || null;\n    }\n    return null;\n  }\n  // deactivates all previously scheduled actions\n  stopAllAction() {\n    const actions = this._actions, nActions = this._nActiveActions;\n    for (let i = nActions - 1; i >= 0; --i) {\n      actions[i].stop();\n    }\n    return this;\n  }\n  // advance the time and update apply the animation\n  update(deltaTime) {\n    deltaTime *= this.timeScale;\n    const actions = this._actions, nActions = this._nActiveActions, time = this.time += deltaTime, timeDirection = Math.sign(deltaTime), accuIndex = this._accuIndex ^= 1;\n    for (let i = 0; i !== nActions; ++i) {\n      const action = actions[i];\n      action._update(time, deltaTime, timeDirection, accuIndex);\n    }\n    const bindings = this._bindings, nBindings = this._nActiveBindings;\n    for (let i = 0; i !== nBindings; ++i) {\n      bindings[i].apply(accuIndex);\n    }\n    return this;\n  }\n  // Allows you to seek to a specific time in an animation.\n  setTime(timeInSeconds) {\n    this.time = 0;\n    for (let i = 0; i < this._actions.length; i++) {\n      this._actions[i].time = 0;\n    }\n    return this.update(timeInSeconds);\n  }\n  // return this mixer's root target object\n  getRoot() {\n    return this._root;\n  }\n  // free all resources specific to a particular clip\n  uncacheClip(clip) {\n    const actions = this._actions, clipUuid = clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid];\n    if (actionsForClip !== void 0) {\n      const actionsToRemove = actionsForClip.knownActions;\n      for (let i = 0, n = actionsToRemove.length; i !== n; ++i) {\n        const action = actionsToRemove[i];\n        this._deactivateAction(action);\n        const cacheIndex = action._cacheIndex, lastInactiveAction = actions[actions.length - 1];\n        action._cacheIndex = null;\n        action._byClipCacheIndex = null;\n        lastInactiveAction._cacheIndex = cacheIndex;\n        actions[cacheIndex] = lastInactiveAction;\n        actions.pop();\n        this._removeInactiveBindingsForAction(action);\n      }\n      delete actionsByClip[clipUuid];\n    }\n  }\n  // free all resources specific to a particular root target object\n  uncacheRoot(root) {\n    const rootUuid = root.uuid, actionsByClip = this._actionsByClip;\n    for (const clipUuid in actionsByClip) {\n      const actionByRoot = actionsByClip[clipUuid].actionByRoot, action = actionByRoot[rootUuid];\n      if (action !== void 0) {\n        this._deactivateAction(action);\n        this._removeInactiveAction(action);\n      }\n    }\n    const bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid];\n    if (bindingByName !== void 0) {\n      for (const trackName in bindingByName) {\n        const binding = bindingByName[trackName];\n        binding.restoreOriginalState();\n        this._removeInactiveBinding(binding);\n      }\n    }\n  }\n  // remove a targeted clip from the cache\n  uncacheAction(clip, optionalRoot) {\n    const action = this.existingAction(clip, optionalRoot);\n    if (action !== null) {\n      this._deactivateAction(action);\n      this._removeInactiveAction(action);\n    }\n  }\n};\nvar Uniform = class _Uniform {\n  constructor(value) {\n    this.value = value;\n  }\n  clone() {\n    return new _Uniform(this.value.clone === void 0 ? this.value : this.value.clone());\n  }\n};\nvar _id = 0;\nvar UniformsGroup = class extends EventDispatcher {\n  constructor() {\n    super();\n    this.isUniformsGroup = true;\n    Object.defineProperty(this, \"id\", { value: _id++ });\n    this.name = \"\";\n    this.usage = StaticDrawUsage;\n    this.uniforms = [];\n  }\n  add(uniform) {\n    this.uniforms.push(uniform);\n    return this;\n  }\n  remove(uniform) {\n    const index = this.uniforms.indexOf(uniform);\n    if (index !== -1) this.uniforms.splice(index, 1);\n    return this;\n  }\n  setName(name) {\n    this.name = name;\n    return this;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n    return this;\n  }\n  copy(source) {\n    this.name = source.name;\n    this.usage = source.usage;\n    const uniformsSource = source.uniforms;\n    this.uniforms.length = 0;\n    for (let i = 0, l = uniformsSource.length; i < l; i++) {\n      const uniforms = Array.isArray(uniformsSource[i]) ? uniformsSource[i] : [uniformsSource[i]];\n      for (let j = 0; j < uniforms.length; j++) {\n        this.uniforms.push(uniforms[j].clone());\n      }\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar InstancedInterleavedBuffer = class extends InterleavedBuffer {\n  constructor(array, stride, meshPerAttribute = 1) {\n    super(array, stride);\n    this.isInstancedInterleavedBuffer = true;\n    this.meshPerAttribute = meshPerAttribute;\n  }\n  copy(source) {\n    super.copy(source);\n    this.meshPerAttribute = source.meshPerAttribute;\n    return this;\n  }\n  clone(data) {\n    const ib = super.clone(data);\n    ib.meshPerAttribute = this.meshPerAttribute;\n    return ib;\n  }\n  toJSON(data) {\n    const json = super.toJSON(data);\n    json.isInstancedInterleavedBuffer = true;\n    json.meshPerAttribute = this.meshPerAttribute;\n    return json;\n  }\n};\nvar GLBufferAttribute = class {\n  constructor(buffer, type, itemSize, elementSize, count) {\n    this.isGLBufferAttribute = true;\n    this.name = \"\";\n    this.buffer = buffer;\n    this.type = type;\n    this.itemSize = itemSize;\n    this.elementSize = elementSize;\n    this.count = count;\n    this.version = 0;\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setBuffer(buffer) {\n    this.buffer = buffer;\n    return this;\n  }\n  setType(type, elementSize) {\n    this.type = type;\n    this.elementSize = elementSize;\n    return this;\n  }\n  setItemSize(itemSize) {\n    this.itemSize = itemSize;\n    return this;\n  }\n  setCount(count) {\n    this.count = count;\n    return this;\n  }\n};\nvar _matrix = /* @__PURE__ */ new Matrix4();\nvar Raycaster = class {\n  constructor(origin, direction, near = 0, far = Infinity) {\n    this.ray = new Ray(origin, direction);\n    this.near = near;\n    this.far = far;\n    this.camera = null;\n    this.layers = new Layers();\n    this.params = {\n      Mesh: {},\n      Line: { threshold: 1 },\n      LOD: {},\n      Points: { threshold: 1 },\n      Sprite: {}\n    };\n  }\n  set(origin, direction) {\n    this.ray.set(origin, direction);\n  }\n  setFromCamera(coords, camera) {\n    if (camera.isPerspectiveCamera) {\n      this.ray.origin.setFromMatrixPosition(camera.matrixWorld);\n      this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\n      this.camera = camera;\n    } else if (camera.isOrthographicCamera) {\n      this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera);\n      this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n      this.camera = camera;\n    } else {\n      console.error(\"THREE.Raycaster: Unsupported camera type: \" + camera.type);\n    }\n  }\n  setFromXRController(controller) {\n    _matrix.identity().extractRotation(controller.matrixWorld);\n    this.ray.origin.setFromMatrixPosition(controller.matrixWorld);\n    this.ray.direction.set(0, 0, -1).applyMatrix4(_matrix);\n    return this;\n  }\n  intersectObject(object, recursive = true, intersects2 = []) {\n    intersect(object, this, intersects2, recursive);\n    intersects2.sort(ascSort);\n    return intersects2;\n  }\n  intersectObjects(objects, recursive = true, intersects2 = []) {\n    for (let i = 0, l = objects.length; i < l; i++) {\n      intersect(objects[i], this, intersects2, recursive);\n    }\n    intersects2.sort(ascSort);\n    return intersects2;\n  }\n};\nfunction ascSort(a, b) {\n  return a.distance - b.distance;\n}\nfunction intersect(object, raycaster, intersects2, recursive) {\n  let propagate = true;\n  if (object.layers.test(raycaster.layers)) {\n    const result = object.raycast(raycaster, intersects2);\n    if (result === false) propagate = false;\n  }\n  if (propagate === true && recursive === true) {\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      intersect(children[i], raycaster, intersects2, true);\n    }\n  }\n}\nvar Spherical = class {\n  constructor(radius = 1, phi = 0, theta = 0) {\n    this.radius = radius;\n    this.phi = phi;\n    this.theta = theta;\n    return this;\n  }\n  set(radius, phi, theta) {\n    this.radius = radius;\n    this.phi = phi;\n    this.theta = theta;\n    return this;\n  }\n  copy(other) {\n    this.radius = other.radius;\n    this.phi = other.phi;\n    this.theta = other.theta;\n    return this;\n  }\n  // restrict phi to be between EPS and PI-EPS\n  makeSafe() {\n    const EPS = 1e-6;\n    this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\n    return this;\n  }\n  setFromVector3(v) {\n    return this.setFromCartesianCoords(v.x, v.y, v.z);\n  }\n  setFromCartesianCoords(x, y, z) {\n    this.radius = Math.sqrt(x * x + y * y + z * z);\n    if (this.radius === 0) {\n      this.theta = 0;\n      this.phi = 0;\n    } else {\n      this.theta = Math.atan2(x, z);\n      this.phi = Math.acos(clamp(y / this.radius, -1, 1));\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Cylindrical = class {\n  constructor(radius = 1, theta = 0, y = 0) {\n    this.radius = radius;\n    this.theta = theta;\n    this.y = y;\n    return this;\n  }\n  set(radius, theta, y) {\n    this.radius = radius;\n    this.theta = theta;\n    this.y = y;\n    return this;\n  }\n  copy(other) {\n    this.radius = other.radius;\n    this.theta = other.theta;\n    this.y = other.y;\n    return this;\n  }\n  setFromVector3(v) {\n    return this.setFromCartesianCoords(v.x, v.y, v.z);\n  }\n  setFromCartesianCoords(x, y, z) {\n    this.radius = Math.sqrt(x * x + z * z);\n    this.theta = Math.atan2(x, z);\n    this.y = y;\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Matrix2 = class _Matrix2 {\n  constructor(n11, n12, n21, n22) {\n    _Matrix2.prototype.isMatrix2 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n21, n22);\n    }\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 4; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  set(n11, n12, n21, n22) {\n    const te = this.elements;\n    te[0] = n11;\n    te[2] = n12;\n    te[1] = n21;\n    te[3] = n22;\n    return this;\n  }\n};\nvar _vector$4 = /* @__PURE__ */ new Vector2();\nvar Box2 = class {\n  constructor(min = new Vector2(Infinity, Infinity), max = new Vector2(-Infinity, -Infinity)) {\n    this.isBox2 = true;\n    this.min = min;\n    this.max = max;\n  }\n  set(min, max) {\n    this.min.copy(min);\n    this.max.copy(max);\n    return this;\n  }\n  setFromPoints(points) {\n    this.makeEmpty();\n    for (let i = 0, il = points.length; i < il; i++) {\n      this.expandByPoint(points[i]);\n    }\n    return this;\n  }\n  setFromCenterAndSize(center, size) {\n    const halfSize = _vector$4.copy(size).multiplyScalar(0.5);\n    this.min.copy(center).sub(halfSize);\n    this.max.copy(center).add(halfSize);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(box) {\n    this.min.copy(box.min);\n    this.max.copy(box.max);\n    return this;\n  }\n  makeEmpty() {\n    this.min.x = this.min.y = Infinity;\n    this.max.x = this.max.y = -Infinity;\n    return this;\n  }\n  isEmpty() {\n    return this.max.x < this.min.x || this.max.y < this.min.y;\n  }\n  getCenter(target) {\n    return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n  }\n  getSize(target) {\n    return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\n  }\n  expandByPoint(point) {\n    this.min.min(point);\n    this.max.max(point);\n    return this;\n  }\n  expandByVector(vector) {\n    this.min.sub(vector);\n    this.max.add(vector);\n    return this;\n  }\n  expandByScalar(scalar) {\n    this.min.addScalar(-scalar);\n    this.max.addScalar(scalar);\n    return this;\n  }\n  containsPoint(point) {\n    return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y;\n  }\n  containsBox(box) {\n    return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\n  }\n  getParameter(point, target) {\n    return target.set(\n      (point.x - this.min.x) / (this.max.x - this.min.x),\n      (point.y - this.min.y) / (this.max.y - this.min.y)\n    );\n  }\n  intersectsBox(box) {\n    return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y;\n  }\n  clampPoint(point, target) {\n    return target.copy(point).clamp(this.min, this.max);\n  }\n  distanceToPoint(point) {\n    return this.clampPoint(point, _vector$4).distanceTo(point);\n  }\n  intersect(box) {\n    this.min.max(box.min);\n    this.max.min(box.max);\n    if (this.isEmpty()) this.makeEmpty();\n    return this;\n  }\n  union(box) {\n    this.min.min(box.min);\n    this.max.max(box.max);\n    return this;\n  }\n  translate(offset) {\n    this.min.add(offset);\n    this.max.add(offset);\n    return this;\n  }\n  equals(box) {\n    return box.min.equals(this.min) && box.max.equals(this.max);\n  }\n};\nvar _startP = /* @__PURE__ */ new Vector3();\nvar _startEnd = /* @__PURE__ */ new Vector3();\nvar Line3 = class {\n  constructor(start = new Vector3(), end = new Vector3()) {\n    this.start = start;\n    this.end = end;\n  }\n  set(start, end) {\n    this.start.copy(start);\n    this.end.copy(end);\n    return this;\n  }\n  copy(line) {\n    this.start.copy(line.start);\n    this.end.copy(line.end);\n    return this;\n  }\n  getCenter(target) {\n    return target.addVectors(this.start, this.end).multiplyScalar(0.5);\n  }\n  delta(target) {\n    return target.subVectors(this.end, this.start);\n  }\n  distanceSq() {\n    return this.start.distanceToSquared(this.end);\n  }\n  distance() {\n    return this.start.distanceTo(this.end);\n  }\n  at(t, target) {\n    return this.delta(target).multiplyScalar(t).add(this.start);\n  }\n  closestPointToPointParameter(point, clampToLine) {\n    _startP.subVectors(point, this.start);\n    _startEnd.subVectors(this.end, this.start);\n    const startEnd2 = _startEnd.dot(_startEnd);\n    const startEnd_startP = _startEnd.dot(_startP);\n    let t = startEnd_startP / startEnd2;\n    if (clampToLine) {\n      t = clamp(t, 0, 1);\n    }\n    return t;\n  }\n  closestPointToPoint(point, clampToLine, target) {\n    const t = this.closestPointToPointParameter(point, clampToLine);\n    return this.delta(target).multiplyScalar(t).add(this.start);\n  }\n  applyMatrix4(matrix) {\n    this.start.applyMatrix4(matrix);\n    this.end.applyMatrix4(matrix);\n    return this;\n  }\n  equals(line) {\n    return line.start.equals(this.start) && line.end.equals(this.end);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _vector$3 = /* @__PURE__ */ new Vector3();\nvar SpotLightHelper = class extends Object3D {\n  constructor(light, color) {\n    super();\n    this.light = light;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"SpotLightHelper\";\n    const geometry = new BufferGeometry();\n    const positions = [\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      1,\n      0,\n      0,\n      0,\n      -1,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      1,\n      0,\n      0,\n      0,\n      0,\n      -1,\n      1\n    ];\n    for (let i = 0, j = 1, l = 32; i < l; i++, j++) {\n      const p1 = i / l * Math.PI * 2;\n      const p2 = j / l * Math.PI * 2;\n      positions.push(\n        Math.cos(p1),\n        Math.sin(p1),\n        1,\n        Math.cos(p2),\n        Math.sin(p2),\n        1\n      );\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    const material = new LineBasicMaterial({ fog: false, toneMapped: false });\n    this.cone = new LineSegments(geometry, material);\n    this.add(this.cone);\n    this.update();\n  }\n  dispose() {\n    this.cone.geometry.dispose();\n    this.cone.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    this.light.target.updateWorldMatrix(true, false);\n    if (this.parent) {\n      this.parent.updateWorldMatrix(true);\n      this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld);\n    } else {\n      this.matrix.copy(this.light.matrixWorld);\n    }\n    this.matrixWorld.copy(this.light.matrixWorld);\n    const coneLength = this.light.distance ? this.light.distance : 1e3;\n    const coneWidth = coneLength * Math.tan(this.light.angle);\n    this.cone.scale.set(coneWidth, coneWidth, coneLength);\n    _vector$3.setFromMatrixPosition(this.light.target.matrixWorld);\n    this.cone.lookAt(_vector$3);\n    if (this.color !== void 0) {\n      this.cone.material.color.set(this.color);\n    } else {\n      this.cone.material.color.copy(this.light.color);\n    }\n  }\n};\nvar _vector$2 = /* @__PURE__ */ new Vector3();\nvar _boneMatrix = /* @__PURE__ */ new Matrix4();\nvar _matrixWorldInv = /* @__PURE__ */ new Matrix4();\nvar SkeletonHelper = class extends LineSegments {\n  constructor(object) {\n    const bones = getBoneList(object);\n    const geometry = new BufferGeometry();\n    const vertices = [];\n    const colors = [];\n    const color1 = new Color(0, 0, 1);\n    const color2 = new Color(0, 1, 0);\n    for (let i = 0; i < bones.length; i++) {\n      const bone = bones[i];\n      if (bone.parent && bone.parent.isBone) {\n        vertices.push(0, 0, 0);\n        vertices.push(0, 0, 0);\n        colors.push(color1.r, color1.g, color1.b);\n        colors.push(color2.r, color2.g, color2.b);\n      }\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true });\n    super(geometry, material);\n    this.isSkeletonHelper = true;\n    this.type = \"SkeletonHelper\";\n    this.root = object;\n    this.bones = bones;\n    this.matrix = object.matrixWorld;\n    this.matrixAutoUpdate = false;\n  }\n  updateMatrixWorld(force) {\n    const bones = this.bones;\n    const geometry = this.geometry;\n    const position = geometry.getAttribute(\"position\");\n    _matrixWorldInv.copy(this.root.matrixWorld).invert();\n    for (let i = 0, j = 0; i < bones.length; i++) {\n      const bone = bones[i];\n      if (bone.parent && bone.parent.isBone) {\n        _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\n        _vector$2.setFromMatrixPosition(_boneMatrix);\n        position.setXYZ(j, _vector$2.x, _vector$2.y, _vector$2.z);\n        _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\n        _vector$2.setFromMatrixPosition(_boneMatrix);\n        position.setXYZ(j + 1, _vector$2.x, _vector$2.y, _vector$2.z);\n        j += 2;\n      }\n    }\n    geometry.getAttribute(\"position\").needsUpdate = true;\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nfunction getBoneList(object) {\n  const boneList = [];\n  if (object.isBone === true) {\n    boneList.push(object);\n  }\n  for (let i = 0; i < object.children.length; i++) {\n    boneList.push.apply(boneList, getBoneList(object.children[i]));\n  }\n  return boneList;\n}\nvar PointLightHelper = class extends Mesh {\n  constructor(light, sphereSize, color) {\n    const geometry = new SphereGeometry(sphereSize, 4, 2);\n    const material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false });\n    super(geometry, material);\n    this.light = light;\n    this.color = color;\n    this.type = \"PointLightHelper\";\n    this.matrix = this.light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.update();\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    if (this.color !== void 0) {\n      this.material.color.set(this.color);\n    } else {\n      this.material.color.copy(this.light.color);\n    }\n  }\n};\nvar _vector$1 = /* @__PURE__ */ new Vector3();\nvar _color1 = /* @__PURE__ */ new Color();\nvar _color2 = /* @__PURE__ */ new Color();\nvar HemisphereLightHelper = class extends Object3D {\n  constructor(light, size, color) {\n    super();\n    this.light = light;\n    this.matrix = light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"HemisphereLightHelper\";\n    const geometry = new OctahedronGeometry(size);\n    geometry.rotateY(Math.PI * 0.5);\n    this.material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false });\n    if (this.color === void 0) this.material.vertexColors = true;\n    const position = geometry.getAttribute(\"position\");\n    const colors = new Float32Array(position.count * 3);\n    geometry.setAttribute(\"color\", new BufferAttribute(colors, 3));\n    this.add(new Mesh(geometry, this.material));\n    this.update();\n  }\n  dispose() {\n    this.children[0].geometry.dispose();\n    this.children[0].material.dispose();\n  }\n  update() {\n    const mesh = this.children[0];\n    if (this.color !== void 0) {\n      this.material.color.set(this.color);\n    } else {\n      const colors = mesh.geometry.getAttribute(\"color\");\n      _color1.copy(this.light.color);\n      _color2.copy(this.light.groundColor);\n      for (let i = 0, l = colors.count; i < l; i++) {\n        const color = i < l / 2 ? _color1 : _color2;\n        colors.setXYZ(i, color.r, color.g, color.b);\n      }\n      colors.needsUpdate = true;\n    }\n    this.light.updateWorldMatrix(true, false);\n    mesh.lookAt(_vector$1.setFromMatrixPosition(this.light.matrixWorld).negate());\n  }\n};\nvar GridHelper = class extends LineSegments {\n  constructor(size = 10, divisions = 10, color1 = 4473924, color2 = 8947848) {\n    color1 = new Color(color1);\n    color2 = new Color(color2);\n    const center = divisions / 2;\n    const step = size / divisions;\n    const halfSize = size / 2;\n    const vertices = [], colors = [];\n    for (let i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n      vertices.push(-halfSize, 0, k, halfSize, 0, k);\n      vertices.push(k, 0, -halfSize, k, 0, halfSize);\n      const color = i === center ? color1 : color2;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n    }\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"GridHelper\";\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar PolarGridHelper = class extends LineSegments {\n  constructor(radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 4473924, color2 = 8947848) {\n    color1 = new Color(color1);\n    color2 = new Color(color2);\n    const vertices = [];\n    const colors = [];\n    if (sectors > 1) {\n      for (let i = 0; i < sectors; i++) {\n        const v = i / sectors * (Math.PI * 2);\n        const x = Math.sin(v) * radius;\n        const z = Math.cos(v) * radius;\n        vertices.push(0, 0, 0);\n        vertices.push(x, 0, z);\n        const color = i & 1 ? color1 : color2;\n        colors.push(color.r, color.g, color.b);\n        colors.push(color.r, color.g, color.b);\n      }\n    }\n    for (let i = 0; i < rings; i++) {\n      const color = i & 1 ? color1 : color2;\n      const r = radius - radius / rings * i;\n      for (let j = 0; j < divisions; j++) {\n        let v = j / divisions * (Math.PI * 2);\n        let x = Math.sin(v) * r;\n        let z = Math.cos(v) * r;\n        vertices.push(x, 0, z);\n        colors.push(color.r, color.g, color.b);\n        v = (j + 1) / divisions * (Math.PI * 2);\n        x = Math.sin(v) * r;\n        z = Math.cos(v) * r;\n        vertices.push(x, 0, z);\n        colors.push(color.r, color.g, color.b);\n      }\n    }\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"PolarGridHelper\";\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar _v1 = /* @__PURE__ */ new Vector3();\nvar _v2 = /* @__PURE__ */ new Vector3();\nvar _v3 = /* @__PURE__ */ new Vector3();\nvar DirectionalLightHelper = class extends Object3D {\n  constructor(light, size, color) {\n    super();\n    this.light = light;\n    this.matrix = light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"DirectionalLightHelper\";\n    if (size === void 0) size = 1;\n    let geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute([\n      -size,\n      size,\n      0,\n      size,\n      size,\n      0,\n      size,\n      -size,\n      0,\n      -size,\n      -size,\n      0,\n      -size,\n      size,\n      0\n    ], 3));\n    const material = new LineBasicMaterial({ fog: false, toneMapped: false });\n    this.lightPlane = new Line(geometry, material);\n    this.add(this.lightPlane);\n    geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\n    this.targetLine = new Line(geometry, material);\n    this.add(this.targetLine);\n    this.update();\n  }\n  dispose() {\n    this.lightPlane.geometry.dispose();\n    this.lightPlane.material.dispose();\n    this.targetLine.geometry.dispose();\n    this.targetLine.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    this.light.target.updateWorldMatrix(true, false);\n    _v1.setFromMatrixPosition(this.light.matrixWorld);\n    _v2.setFromMatrixPosition(this.light.target.matrixWorld);\n    _v3.subVectors(_v2, _v1);\n    this.lightPlane.lookAt(_v2);\n    if (this.color !== void 0) {\n      this.lightPlane.material.color.set(this.color);\n      this.targetLine.material.color.set(this.color);\n    } else {\n      this.lightPlane.material.color.copy(this.light.color);\n      this.targetLine.material.color.copy(this.light.color);\n    }\n    this.targetLine.lookAt(_v2);\n    this.targetLine.scale.z = _v3.length();\n  }\n};\nvar _vector = /* @__PURE__ */ new Vector3();\nvar _camera = /* @__PURE__ */ new Camera();\nvar CameraHelper = class extends LineSegments {\n  constructor(camera) {\n    const geometry = new BufferGeometry();\n    const material = new LineBasicMaterial({ color: 16777215, vertexColors: true, toneMapped: false });\n    const vertices = [];\n    const colors = [];\n    const pointMap = {};\n    addLine(\"n1\", \"n2\");\n    addLine(\"n2\", \"n4\");\n    addLine(\"n4\", \"n3\");\n    addLine(\"n3\", \"n1\");\n    addLine(\"f1\", \"f2\");\n    addLine(\"f2\", \"f4\");\n    addLine(\"f4\", \"f3\");\n    addLine(\"f3\", \"f1\");\n    addLine(\"n1\", \"f1\");\n    addLine(\"n2\", \"f2\");\n    addLine(\"n3\", \"f3\");\n    addLine(\"n4\", \"f4\");\n    addLine(\"p\", \"n1\");\n    addLine(\"p\", \"n2\");\n    addLine(\"p\", \"n3\");\n    addLine(\"p\", \"n4\");\n    addLine(\"u1\", \"u2\");\n    addLine(\"u2\", \"u3\");\n    addLine(\"u3\", \"u1\");\n    addLine(\"c\", \"t\");\n    addLine(\"p\", \"c\");\n    addLine(\"cn1\", \"cn2\");\n    addLine(\"cn3\", \"cn4\");\n    addLine(\"cf1\", \"cf2\");\n    addLine(\"cf3\", \"cf4\");\n    function addLine(a, b) {\n      addPoint(a);\n      addPoint(b);\n    }\n    function addPoint(id) {\n      vertices.push(0, 0, 0);\n      colors.push(0, 0, 0);\n      if (pointMap[id] === void 0) {\n        pointMap[id] = [];\n      }\n      pointMap[id].push(vertices.length / 3 - 1);\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    super(geometry, material);\n    this.type = \"CameraHelper\";\n    this.camera = camera;\n    if (this.camera.updateProjectionMatrix) this.camera.updateProjectionMatrix();\n    this.matrix = camera.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.pointMap = pointMap;\n    this.update();\n    const colorFrustum = new Color(16755200);\n    const colorCone = new Color(16711680);\n    const colorUp = new Color(43775);\n    const colorTarget = new Color(16777215);\n    const colorCross = new Color(3355443);\n    this.setColors(colorFrustum, colorCone, colorUp, colorTarget, colorCross);\n  }\n  setColors(frustum, cone, up, target, cross) {\n    const geometry = this.geometry;\n    const colorAttribute = geometry.getAttribute(\"color\");\n    colorAttribute.setXYZ(0, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(1, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(2, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(3, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(4, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(5, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(6, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(7, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(8, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(9, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(10, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(11, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(12, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(13, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(14, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(15, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(16, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(17, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(18, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(19, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(20, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(21, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(22, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(23, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(24, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(25, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(26, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(27, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(28, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(29, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(30, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(31, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(32, up.r, up.g, up.b);\n    colorAttribute.setXYZ(33, up.r, up.g, up.b);\n    colorAttribute.setXYZ(34, up.r, up.g, up.b);\n    colorAttribute.setXYZ(35, up.r, up.g, up.b);\n    colorAttribute.setXYZ(36, up.r, up.g, up.b);\n    colorAttribute.setXYZ(37, up.r, up.g, up.b);\n    colorAttribute.setXYZ(38, target.r, target.g, target.b);\n    colorAttribute.setXYZ(39, target.r, target.g, target.b);\n    colorAttribute.setXYZ(40, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(41, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(42, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(43, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(44, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(45, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(46, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(47, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(48, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(49, cross.r, cross.g, cross.b);\n    colorAttribute.needsUpdate = true;\n  }\n  update() {\n    const geometry = this.geometry;\n    const pointMap = this.pointMap;\n    const w = 1, h = 1;\n    _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);\n    setPoint(\"c\", pointMap, geometry, _camera, 0, 0, -1);\n    setPoint(\"t\", pointMap, geometry, _camera, 0, 0, 1);\n    setPoint(\"n1\", pointMap, geometry, _camera, -w, -h, -1);\n    setPoint(\"n2\", pointMap, geometry, _camera, w, -h, -1);\n    setPoint(\"n3\", pointMap, geometry, _camera, -w, h, -1);\n    setPoint(\"n4\", pointMap, geometry, _camera, w, h, -1);\n    setPoint(\"f1\", pointMap, geometry, _camera, -w, -h, 1);\n    setPoint(\"f2\", pointMap, geometry, _camera, w, -h, 1);\n    setPoint(\"f3\", pointMap, geometry, _camera, -w, h, 1);\n    setPoint(\"f4\", pointMap, geometry, _camera, w, h, 1);\n    setPoint(\"u1\", pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\n    setPoint(\"u2\", pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\n    setPoint(\"u3\", pointMap, geometry, _camera, 0, h * 2, -1);\n    setPoint(\"cf1\", pointMap, geometry, _camera, -w, 0, 1);\n    setPoint(\"cf2\", pointMap, geometry, _camera, w, 0, 1);\n    setPoint(\"cf3\", pointMap, geometry, _camera, 0, -h, 1);\n    setPoint(\"cf4\", pointMap, geometry, _camera, 0, h, 1);\n    setPoint(\"cn1\", pointMap, geometry, _camera, -w, 0, -1);\n    setPoint(\"cn2\", pointMap, geometry, _camera, w, 0, -1);\n    setPoint(\"cn3\", pointMap, geometry, _camera, 0, -h, -1);\n    setPoint(\"cn4\", pointMap, geometry, _camera, 0, h, -1);\n    geometry.getAttribute(\"position\").needsUpdate = true;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nfunction setPoint(point, pointMap, geometry, camera, x, y, z) {\n  _vector.set(x, y, z).unproject(camera);\n  const points = pointMap[point];\n  if (points !== void 0) {\n    const position = geometry.getAttribute(\"position\");\n    for (let i = 0, l = points.length; i < l; i++) {\n      position.setXYZ(points[i], _vector.x, _vector.y, _vector.z);\n    }\n  }\n}\nvar _box = /* @__PURE__ */ new Box3();\nvar BoxHelper = class extends LineSegments {\n  constructor(object, color = 16776960) {\n    const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n    const positions = new Float32Array(8 * 3);\n    const geometry = new BufferGeometry();\n    geometry.setIndex(new BufferAttribute(indices, 1));\n    geometry.setAttribute(\"position\", new BufferAttribute(positions, 3));\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.object = object;\n    this.type = \"BoxHelper\";\n    this.matrixAutoUpdate = false;\n    this.update();\n  }\n  update(object) {\n    if (object !== void 0) {\n      console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\");\n    }\n    if (this.object !== void 0) {\n      _box.setFromObject(this.object);\n    }\n    if (_box.isEmpty()) return;\n    const min = _box.min;\n    const max = _box.max;\n    const position = this.geometry.attributes.position;\n    const array = position.array;\n    array[0] = max.x;\n    array[1] = max.y;\n    array[2] = max.z;\n    array[3] = min.x;\n    array[4] = max.y;\n    array[5] = max.z;\n    array[6] = min.x;\n    array[7] = min.y;\n    array[8] = max.z;\n    array[9] = max.x;\n    array[10] = min.y;\n    array[11] = max.z;\n    array[12] = max.x;\n    array[13] = max.y;\n    array[14] = min.z;\n    array[15] = min.x;\n    array[16] = max.y;\n    array[17] = min.z;\n    array[18] = min.x;\n    array[19] = min.y;\n    array[20] = min.z;\n    array[21] = max.x;\n    array[22] = min.y;\n    array[23] = min.z;\n    position.needsUpdate = true;\n    this.geometry.computeBoundingSphere();\n  }\n  setFromObject(object) {\n    this.object = object;\n    this.update();\n    return this;\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.object = source.object;\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar Box3Helper = class extends LineSegments {\n  constructor(box, color = 16776960) {\n    const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n    const positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\n    const geometry = new BufferGeometry();\n    geometry.setIndex(new BufferAttribute(indices, 1));\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.box = box;\n    this.type = \"Box3Helper\";\n    this.geometry.computeBoundingSphere();\n  }\n  updateMatrixWorld(force) {\n    const box = this.box;\n    if (box.isEmpty()) return;\n    box.getCenter(this.position);\n    box.getSize(this.scale);\n    this.scale.multiplyScalar(0.5);\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar PlaneHelper = class extends Line {\n  constructor(plane, size = 1, hex = 16776960) {\n    const color = hex;\n    const positions = [1, -1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0];\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    geometry.computeBoundingSphere();\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.type = \"PlaneHelper\";\n    this.plane = plane;\n    this.size = size;\n    const positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0];\n    const geometry2 = new BufferGeometry();\n    geometry2.setAttribute(\"position\", new Float32BufferAttribute(positions2, 3));\n    geometry2.computeBoundingSphere();\n    this.add(new Mesh(geometry2, new MeshBasicMaterial({ color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false })));\n  }\n  updateMatrixWorld(force) {\n    this.position.set(0, 0, 0);\n    this.scale.set(0.5 * this.size, 0.5 * this.size, 1);\n    this.lookAt(this.plane.normal);\n    this.translateZ(-this.plane.constant);\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n    this.children[0].geometry.dispose();\n    this.children[0].material.dispose();\n  }\n};\nvar _axis = /* @__PURE__ */ new Vector3();\nvar _lineGeometry;\nvar _coneGeometry;\nvar ArrowHelper = class extends Object3D {\n  // dir is assumed to be normalized\n  constructor(dir = new Vector3(0, 0, 1), origin = new Vector3(0, 0, 0), length = 1, color = 16776960, headLength = length * 0.2, headWidth = headLength * 0.2) {\n    super();\n    this.type = \"ArrowHelper\";\n    if (_lineGeometry === void 0) {\n      _lineGeometry = new BufferGeometry();\n      _lineGeometry.setAttribute(\"position\", new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\n      _coneGeometry = new CylinderGeometry(0, 0.5, 1, 5, 1);\n      _coneGeometry.translate(0, -0.5, 0);\n    }\n    this.position.copy(origin);\n    this.line = new Line(_lineGeometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.line.matrixAutoUpdate = false;\n    this.add(this.line);\n    this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({ color, toneMapped: false }));\n    this.cone.matrixAutoUpdate = false;\n    this.add(this.cone);\n    this.setDirection(dir);\n    this.setLength(length, headLength, headWidth);\n  }\n  setDirection(dir) {\n    if (dir.y > 0.99999) {\n      this.quaternion.set(0, 0, 0, 1);\n    } else if (dir.y < -0.99999) {\n      this.quaternion.set(1, 0, 0, 0);\n    } else {\n      _axis.set(dir.z, 0, -dir.x).normalize();\n      const radians = Math.acos(dir.y);\n      this.quaternion.setFromAxisAngle(_axis, radians);\n    }\n  }\n  setLength(length, headLength = length * 0.2, headWidth = headLength * 0.2) {\n    this.line.scale.set(1, Math.max(1e-4, length - headLength), 1);\n    this.line.updateMatrix();\n    this.cone.scale.set(headWidth, headLength, headWidth);\n    this.cone.position.y = length;\n    this.cone.updateMatrix();\n  }\n  setColor(color) {\n    this.line.material.color.set(color);\n    this.cone.material.color.set(color);\n  }\n  copy(source) {\n    super.copy(source, false);\n    this.line.copy(source.line);\n    this.cone.copy(source.cone);\n    return this;\n  }\n  dispose() {\n    this.line.geometry.dispose();\n    this.line.material.dispose();\n    this.cone.geometry.dispose();\n    this.cone.material.dispose();\n  }\n};\nvar AxesHelper = class extends LineSegments {\n  constructor(size = 1) {\n    const vertices = [\n      0,\n      0,\n      0,\n      size,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      size,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      size\n    ];\n    const colors = [\n      1,\n      0,\n      0,\n      1,\n      0.6,\n      0,\n      0,\n      1,\n      0,\n      0.6,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0.6,\n      1\n    ];\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"AxesHelper\";\n  }\n  setColors(xAxisColor, yAxisColor, zAxisColor) {\n    const color = new Color();\n    const array = this.geometry.attributes.color.array;\n    color.set(xAxisColor);\n    color.toArray(array, 0);\n    color.toArray(array, 3);\n    color.set(yAxisColor);\n    color.toArray(array, 6);\n    color.toArray(array, 9);\n    color.set(zAxisColor);\n    color.toArray(array, 12);\n    color.toArray(array, 15);\n    this.geometry.attributes.color.needsUpdate = true;\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar ShapePath = class {\n  constructor() {\n    this.type = \"ShapePath\";\n    this.color = new Color();\n    this.subPaths = [];\n    this.currentPath = null;\n  }\n  moveTo(x, y) {\n    this.currentPath = new Path();\n    this.subPaths.push(this.currentPath);\n    this.currentPath.moveTo(x, y);\n    return this;\n  }\n  lineTo(x, y) {\n    this.currentPath.lineTo(x, y);\n    return this;\n  }\n  quadraticCurveTo(aCPx, aCPy, aX, aY) {\n    this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\n    return this;\n  }\n  bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n    this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\n    return this;\n  }\n  splineThru(pts) {\n    this.currentPath.splineThru(pts);\n    return this;\n  }\n  toShapes(isCCW) {\n    function toShapesNoHoles(inSubpaths) {\n      const shapes2 = [];\n      for (let i = 0, l = inSubpaths.length; i < l; i++) {\n        const tmpPath2 = inSubpaths[i];\n        const tmpShape2 = new Shape();\n        tmpShape2.curves = tmpPath2.curves;\n        shapes2.push(tmpShape2);\n      }\n      return shapes2;\n    }\n    function isPointInsidePolygon(inPt, inPolygon) {\n      const polyLen = inPolygon.length;\n      let inside = false;\n      for (let p = polyLen - 1, q = 0; q < polyLen; p = q++) {\n        let edgeLowPt = inPolygon[p];\n        let edgeHighPt = inPolygon[q];\n        let edgeDx = edgeHighPt.x - edgeLowPt.x;\n        let edgeDy = edgeHighPt.y - edgeLowPt.y;\n        if (Math.abs(edgeDy) > Number.EPSILON) {\n          if (edgeDy < 0) {\n            edgeLowPt = inPolygon[q];\n            edgeDx = -edgeDx;\n            edgeHighPt = inPolygon[p];\n            edgeDy = -edgeDy;\n          }\n          if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\n          if (inPt.y === edgeLowPt.y) {\n            if (inPt.x === edgeLowPt.x) return true;\n          } else {\n            const perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\n            if (perpEdge === 0) return true;\n            if (perpEdge < 0) continue;\n            inside = !inside;\n          }\n        } else {\n          if (inPt.y !== edgeLowPt.y) continue;\n          if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true;\n        }\n      }\n      return inside;\n    }\n    const isClockWise = ShapeUtils.isClockWise;\n    const subPaths = this.subPaths;\n    if (subPaths.length === 0) return [];\n    let solid, tmpPath, tmpShape;\n    const shapes = [];\n    if (subPaths.length === 1) {\n      tmpPath = subPaths[0];\n      tmpShape = new Shape();\n      tmpShape.curves = tmpPath.curves;\n      shapes.push(tmpShape);\n      return shapes;\n    }\n    let holesFirst = !isClockWise(subPaths[0].getPoints());\n    holesFirst = isCCW ? !holesFirst : holesFirst;\n    const betterShapeHoles = [];\n    const newShapes = [];\n    let newShapeHoles = [];\n    let mainIdx = 0;\n    let tmpPoints;\n    newShapes[mainIdx] = void 0;\n    newShapeHoles[mainIdx] = [];\n    for (let i = 0, l = subPaths.length; i < l; i++) {\n      tmpPath = subPaths[i];\n      tmpPoints = tmpPath.getPoints();\n      solid = isClockWise(tmpPoints);\n      solid = isCCW ? !solid : solid;\n      if (solid) {\n        if (!holesFirst && newShapes[mainIdx]) mainIdx++;\n        newShapes[mainIdx] = { s: new Shape(), p: tmpPoints };\n        newShapes[mainIdx].s.curves = tmpPath.curves;\n        if (holesFirst) mainIdx++;\n        newShapeHoles[mainIdx] = [];\n      } else {\n        newShapeHoles[mainIdx].push({ h: tmpPath, p: tmpPoints[0] });\n      }\n    }\n    if (!newShapes[0]) return toShapesNoHoles(subPaths);\n    if (newShapes.length > 1) {\n      let ambiguous = false;\n      let toChange = 0;\n      for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n        betterShapeHoles[sIdx] = [];\n      }\n      for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n        const sho = newShapeHoles[sIdx];\n        for (let hIdx = 0; hIdx < sho.length; hIdx++) {\n          const ho = sho[hIdx];\n          let hole_unassigned = true;\n          for (let s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\n            if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\n              if (sIdx !== s2Idx) toChange++;\n              if (hole_unassigned) {\n                hole_unassigned = false;\n                betterShapeHoles[s2Idx].push(ho);\n              } else {\n                ambiguous = true;\n              }\n            }\n          }\n          if (hole_unassigned) {\n            betterShapeHoles[sIdx].push(ho);\n          }\n        }\n      }\n      if (toChange > 0 && ambiguous === false) {\n        newShapeHoles = betterShapeHoles;\n      }\n    }\n    let tmpHoles;\n    for (let i = 0, il = newShapes.length; i < il; i++) {\n      tmpShape = newShapes[i].s;\n      shapes.push(tmpShape);\n      tmpHoles = newShapeHoles[i];\n      for (let j = 0, jl = tmpHoles.length; j < jl; j++) {\n        tmpShape.holes.push(tmpHoles[j].h);\n      }\n    }\n    return shapes;\n  }\n};\nvar Controls = class extends EventDispatcher {\n  constructor(object, domElement = null) {\n    super();\n    this.object = object;\n    this.domElement = domElement;\n    this.enabled = true;\n    this.state = -1;\n    this.keys = {};\n    this.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n    this.touches = { ONE: null, TWO: null };\n  }\n  connect() {\n  }\n  disconnect() {\n  }\n  dispose() {\n  }\n  update() {\n  }\n};\nvar WebGLMultipleRenderTargets = class extends WebGLRenderTarget {\n  // @deprecated, r162\n  constructor(width = 1, height = 1, count = 1, options = {}) {\n    console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.');\n    super(width, height, __spreadProps(__spreadValues({}, options), { count }));\n    this.isWebGLMultipleRenderTargets = true;\n  }\n  get texture() {\n    return this.textures;\n  }\n};\nif (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n  __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\", { detail: {\n    revision: REVISION\n  } }));\n}\nif (typeof window !== \"undefined\") {\n  if (window.__THREE__) {\n    console.warn(\"WARNING: Multiple instances of Three.js being imported.\");\n  } else {\n    window.__THREE__ = REVISION;\n  }\n}\n\nexport {\n  BasicShadowMap,\n  PCFShadowMap,\n  PCFSoftShadowMap,\n  VSMShadowMap,\n  DoubleSide,\n  NoToneMapping,\n  ACESFilmicToneMapping,\n  EquirectangularReflectionMapping,\n  LinearFilter,\n  UnsignedByteType,\n  FloatType,\n  HalfFloatType,\n  RGBAFormat,\n  EventDispatcher,\n  Vector2,\n  WebGLRenderTarget,\n  Vector3,\n  Layers,\n  Color,\n  DataUtils,\n  Float32BufferAttribute,\n  BufferGeometry,\n  Mesh,\n  UniformsUtils,\n  ShaderMaterial,\n  Camera,\n  PerspectiveCamera,\n  ShaderChunk,\n  OrthographicCamera,\n  WebGLRenderer,\n  Scene,\n  MeshPhysicalMaterial,\n  DataTextureLoader,\n  Clock,\n  Uniform,\n  Raycaster,\n  three_module_exports\n};\n/*! Bundled license information:\n\nthree/build/three.module.js:\n  (**\n   * @license\n   * Copyright 2010-2024 Three.js Authors\n   * SPDX-License-Identifier: MIT\n   *)\n*/\n","var t={};t.ConcurrentRoot=1;t.ContinuousEventPriority=4;t.DefaultEventPriority=16;t.DiscreteEventPriority=1;t.IdleEventPriority=536870912;t.LegacyRoot=0;const o=t.ConcurrentRoot,r=t.ContinuousEventPriority,e=t.DefaultEventPriority,i=t.DiscreteEventPriority,n=t.IdleEventPriority,y=t.LegacyRoot;export{o as ConcurrentRoot,r as ContinuousEventPriority,e as DefaultEventPriority,i as DiscreteEventPriority,n as IdleEventPriority,y as LegacyRoot,t as default};\n//# sourceMappingURL=constants.js.map\n","import*as t from\"react\";import*as a from\"scheduler\";var u=t;try{\"default\"in t&&(u=t.default)}catch(t){}var i=a;try{\"default\"in a&&(i=a.default)}catch(t){}var o=typeof globalThis!==\"undefined\"?globalThis:typeof self!==\"undefined\"?self:global;var s={};\n/**\n * @license React\n * react-reconciler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */s=function $$$reconciler(t){var a={};\"use strict\";var s=u,y=i,S=Object.assign;function n(t){for(var a=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+t,u=1;u<arguments.length;u++)a+=\"&args[]=\"+encodeURIComponent(arguments[u]);return\"Minified React error #\"+t+\"; visit \"+a+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var x=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,z=Symbol.for(\"react.element\"),N=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),C=Symbol.for(\"react.strict_mode\"),I=Symbol.for(\"react.profiler\"),_=Symbol.for(\"react.provider\"),L=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),R=Symbol.for(\"react.suspense\"),F=Symbol.for(\"react.suspense_list\"),D=Symbol.for(\"react.memo\"),H=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");var W=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var j=Symbol.iterator;function ta(t){if(null===t||\"object\"!==typeof t)return null;t=j&&t[j]||t[\"@@iterator\"];return\"function\"===typeof t?t:null}function ua(t){if(null==t)return null;if(\"function\"===typeof t)return t.displayName||t.name||null;if(\"string\"===typeof t)return t;switch(t){case E:return\"Fragment\";case N:return\"Portal\";case I:return\"Profiler\";case C:return\"StrictMode\";case R:return\"Suspense\";case F:return\"SuspenseList\"}if(\"object\"===typeof t)switch(t.$$typeof){case L:return(t.displayName||\"Context\")+\".Consumer\";case _:return(t._context.displayName||\"Context\")+\".Provider\";case T:var a=t.render;t=t.displayName;t||(t=a.displayName||a.name||\"\",t=\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");return t;case D:return a=t.displayName||null,null!==a?a:ua(t.type)||\"Memo\";case H:a=t._payload;t=t._init;try{return ua(t(a))}catch(t){}}return null}function va(t){var a=t.type;switch(t.tag){case 24:return\"Cache\";case 9:return(a.displayName||\"Context\")+\".Consumer\";case 10:return(a._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return t=a.render,t=t.displayName||t.name||\"\",a.displayName||(\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return a;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return ua(a);case 8:return a===C?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a}return null}function wa(t){var a=t,u=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do{a=t,0!==(a.flags&4098)&&(u=a.return),t=a.return}while(t)}return 3===a.tag?u:null}function xa(t){if(wa(t)!==t)throw Error(n(188))}function za(t){var a=t.alternate;if(!a){a=wa(t);if(null===a)throw Error(n(188));return a!==t?null:t}for(var u=t,i=a;;){var o=u.return;if(null===o)break;var s=o.alternate;if(null===s){i=o.return;if(null!==i){u=i;continue}break}if(o.child===s.child){for(s=o.child;s;){if(s===u)return xa(o),t;if(s===i)return xa(o),a;s=s.sibling}throw Error(n(188))}if(u.return!==i.return)u=o,i=s;else{for(var y=!1,S=o.child;S;){if(S===u){y=!0;u=o;i=s;break}if(S===i){y=!0;i=o;u=s;break}S=S.sibling}if(!y){for(S=s.child;S;){if(S===u){y=!0;u=s;i=o;break}if(S===i){y=!0;i=s;u=o;break}S=S.sibling}if(!y)throw Error(n(189))}}if(u.alternate!==i)throw Error(n(190))}if(3!==u.tag)throw Error(n(188));return u.stateNode.current===u?t:a}function Aa(t){t=za(t);return null!==t?Ba(t):null}function Ba(t){if(5===t.tag||6===t.tag)return t;for(t=t.child;null!==t;){var a=Ba(t);if(null!==a)return a;t=t.sibling}return null}function Ca(t){if(5===t.tag||6===t.tag)return t;for(t=t.child;null!==t;){if(4!==t.tag){var a=Ca(t);if(null!==a)return a}t=t.sibling}return null}var $,V=Array.isArray,Z=t.getPublicInstance,J=t.getRootHostContext,K=t.getChildHostContext,G=t.prepareForCommit,X=t.resetAfterCommit,ne=t.createInstance,le=t.appendInitialChild,oe=t.finalizeInitialChildren,de=t.prepareUpdate,pe=t.shouldSetTextContent,xe=t.createTextInstance,ze=t.scheduleTimeout,Ee=t.cancelTimeout,Ce=t.noTimeout,Ie=t.isPrimaryRenderer,_e=t.supportsMutation,Le=t.supportsPersistence,Fe=t.supportsHydration,De=t.getInstanceFromNode,Be=t.preparePortalMount,Ae=t.getCurrentEventPriority,qe=t.detachDeletedInstance,Je=t.supportsMicrotasks,Ke=t.scheduleMicrotask,en=t.supportsTestSelectors,nn=t.findFiberRoot,tn=t.getBoundingRect,rn=t.getTextContent,ln=t.isHiddenSubtree,an=t.matchAccessibilityRole,un=t.setFocusIfFocusable,on=t.setupIntersectionObserver,sn=t.appendChild,cn=t.appendChildToContainer,fn=t.commitTextUpdate,dn=t.commitMount,hn=t.commitUpdate,gn=t.insertBefore,pn=t.insertInContainerBefore,mn=t.removeChild,vn=t.removeChildFromContainer,yn=t.resetTextContent,bn=t.hideInstance,Sn=t.hideTextInstance,kn=t.unhideInstance,xn=t.unhideTextInstance,wn=t.clearContainer,zn=t.cloneInstance,Nn=t.createContainerChildSet,Pn=t.appendChildToContainerChildSet,En=t.finalizeContainerChildren,Cn=t.replaceContainerChildren,In=t.cloneHiddenInstance,_n=t.cloneHiddenTextInstance,Un=t.canHydrateInstance,Ln=t.canHydrateTextInstance,Tn=t.canHydrateSuspenseInstance,Rn=t.isSuspenseInstancePending,Mn=t.isSuspenseInstanceFallback,Fn=t.getSuspenseInstanceFallbackErrorDetails,Qn=t.registerSuspenseInstanceRetry,Dn=t.getNextHydratableSibling,Hn=t.getFirstHydratableChild,Wn=t.getFirstHydratableChildWithinContainer,Bn=t.getFirstHydratableChildWithinSuspenseInstance,On=t.hydrateInstance,An=t.hydrateTextInstance,qn=t.hydrateSuspenseInstance,jn=t.getNextHydratableInstanceAfterSuspenseInstance,$n=t.commitHydratedContainer,Vn=t.commitHydratedSuspenseInstance,Zn=t.clearSuspenseBoundary,Yn=t.clearSuspenseBoundaryFromContainer,Jn=t.shouldDeleteUnhydratedTailInstances,Kn=t.didNotMatchHydratedContainerTextInstance,Gn=t.didNotMatchHydratedTextInstance;function cc(t){if(void 0===$)try{throw Error()}catch(t){var a=t.stack.trim().match(/\\n( *(at )?)/);$=a&&a[1]||\"\"}return\"\\n\"+$+t}var Xn=!1;function ec(t,a){if(!t||Xn)return\"\";Xn=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,\"props\",{set:function(){throw Error()}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(a,[])}catch(t){var i=t}Reflect.construct(t,[],a)}else{try{a.call()}catch(t){i=t}t.call(a.prototype)}else{try{throw Error()}catch(t){i=t}t()}}catch(a){if(a&&i&&\"string\"===typeof a.stack){for(var o=a.stack.split(\"\\n\"),s=i.stack.split(\"\\n\"),y=o.length-1,S=s.length-1;1<=y&&0<=S&&o[y]!==s[S];)S--;for(;1<=y&&0<=S;y--,S--)if(o[y]!==s[S]){if(1!==y||1!==S)do{if(y--,S--,0>S||o[y]!==s[S]){var x=\"\\n\"+o[y].replace(\" at new \",\" at \");t.displayName&&x.includes(\"<anonymous>\")&&(x=x.replace(\"<anonymous>\",t.displayName));return x}}while(1<=y&&0<=S);break}}}finally{Xn=!1,Error.prepareStackTrace=u}return(t=t?t.displayName||t.name:\"\")?cc(t):\"\"}var et=Object.prototype.hasOwnProperty,nt=[],tt=-1;function ic(t){return{current:t}}function q(t){0>tt||(t.current=nt[tt],nt[tt]=null,tt--)}function v(t,a){tt++;nt[tt]=t.current;t.current=a}var rt={},lt=ic(rt),at=ic(!1),ut=rt;function mc(t,a){var u=t.type.contextTypes;if(!u)return rt;var i=t.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===a)return i.__reactInternalMemoizedMaskedChildContext;var o,s={};for(o in u)s[o]=a[o];i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=a,t.__reactInternalMemoizedMaskedChildContext=s);return s}function A(t){t=t.childContextTypes;return null!==t&&void 0!==t}function nc(){q(at);q(lt)}function oc(t,a,u){if(lt.current!==rt)throw Error(n(168));v(lt,a);v(at,u)}function pc(t,a,u){var i=t.stateNode;a=a.childContextTypes;if(\"function\"!==typeof i.getChildContext)return u;i=i.getChildContext();for(var o in i)if(!(o in a))throw Error(n(108,va(t)||\"Unknown\",o));return S({},u,i)}function qc(t){t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||rt;ut=lt.current;v(lt,t);v(at,at.current);return!0}function rc(t,a,u){var i=t.stateNode;if(!i)throw Error(n(169));u?(t=pc(t,a,ut),i.__reactInternalMemoizedMergedChildContext=t,q(at),q(lt),v(lt,t)):q(at);v(at,u)}var it=Math.clz32?Math.clz32:sc,ot=Math.log,st=Math.LN2;function sc(t){t>>>=0;return 0===t?32:31-(ot(t)/st|0)|0}var ct=64,ft=4194304;function yc(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function zc(t,a){var u=t.pendingLanes;if(0===u)return 0;var i=0,o=t.suspendedLanes,s=t.pingedLanes,y=u&268435455;if(0!==y){var S=y&~o;0!==S?i=yc(S):(s&=y,0!==s&&(i=yc(s)))}else y=u&~o,0!==y?i=yc(y):0!==s&&(i=yc(s));if(0===i)return 0;if(0!==a&&a!==i&&0===(a&o)&&(o=i&-i,s=a&-a,o>=s||16===o&&0!==(s&4194240)))return a;0!==(i&4)&&(i|=u&16);a=t.entangledLanes;if(0!==a)for(t=t.entanglements,a&=i;0<a;)u=31-it(a),o=1<<u,i|=t[u],a&=~o;return i}function Ac(t,a){switch(t){case 1:case 2:case 4:return a+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bc(t,a){for(var u=t.suspendedLanes,i=t.pingedLanes,o=t.expirationTimes,s=t.pendingLanes;0<s;){var y=31-it(s),S=1<<y,x=o[y];-1===x?0!==(S&u)&&0===(S&i)||(o[y]=Ac(S,a)):x<=a&&(t.expiredLanes|=S);s&=~S}}function Cc(t){t=t.pendingLanes&-1073741825;return 0!==t?t:t&1073741824?1073741824:0}function Dc(){var t=ct;ct<<=1;0===(ct&4194240)&&(ct=64);return t}function Ec(t){for(var a=[],u=0;31>u;u++)a.push(t);return a}function Fc(t,a,u){t.pendingLanes|=a;536870912!==a&&(t.suspendedLanes=0,t.pingedLanes=0);t=t.eventTimes;a=31-it(a);t[a]=u}function Gc(t,a){var u=t.pendingLanes&~a;t.pendingLanes=a;t.suspendedLanes=0;t.pingedLanes=0;t.expiredLanes&=a;t.mutableReadLanes&=a;t.entangledLanes&=a;a=t.entanglements;var i=t.eventTimes;for(t=t.expirationTimes;0<u;){var o=31-it(u),s=1<<o;a[o]=0;i[o]=-1;t[o]=-1;u&=~s}}function Hc(t,a){var u=t.entangledLanes|=a;for(t=t.entanglements;u;){var i=31-it(u),o=1<<i;o&a|t[i]&a&&(t[i]|=a);u&=~o}}var dt=0;function Ic(t){t&=-t;return 1<t?4<t?0!==(t&268435455)?16:536870912:4:1}var ht=y.unstable_scheduleCallback,gt=y.unstable_cancelCallback,pt=y.unstable_shouldYield,mt=y.unstable_requestPaint,vt=y.unstable_now,yt=y.unstable_ImmediatePriority,bt=y.unstable_UserBlockingPriority,St=y.unstable_NormalPriority,kt=y.unstable_IdlePriority,xt=null,wt=null;function Tc(t){if(wt&&\"function\"===typeof wt.onCommitFiberRoot)try{wt.onCommitFiberRoot(xt,t,void 0,128===(t.current.flags&128))}catch(t){}}function Uc(t,a){return t===a&&(0!==t||1/t===1/a)||t!==t&&a!==a}var zt=\"function\"===typeof Object.is?Object.is:Uc,Nt=null,Pt=!1,Et=!1;function Zc(t){null===Nt?Nt=[t]:Nt.push(t)}function $c(t){Pt=!0;Zc(t)}function ad(){if(!Et&&null!==Nt){Et=!0;var t=0,a=dt;try{var u=Nt;for(dt=1;t<u.length;t++){var i=u[t];do{i=i(!0)}while(null!==i)}Nt=null;Pt=!1}catch(a){throw null!==Nt&&(Nt=Nt.slice(t+1)),ht(yt,ad),a}finally{dt=a,Et=!1}}return null}var Ct=[],It=0,_t=null,Ut=0,Lt=[],Tt=0,Rt=null,Mt=1,Ft=\"\";function kd(t,a){Ct[It++]=Ut;Ct[It++]=_t;_t=t;Ut=a}function ld(t,a,u){Lt[Tt++]=Mt;Lt[Tt++]=Ft;Lt[Tt++]=Rt;Rt=t;var i=Mt;t=Ft;var o=32-it(i)-1;i&=~(1<<o);u+=1;var s=32-it(a)+o;if(30<s){var y=o-o%5;s=(i&(1<<y)-1).toString(32);i>>=y;o-=y;Mt=1<<32-it(a)+o|u<<o|i;Ft=s+t}else Mt=1<<s|u<<o|i,Ft=t}function md(t){null!==t.return&&(kd(t,1),ld(t,1,0))}function nd(t){for(;t===_t;)_t=Ct[--It],Ct[It]=null,Ut=Ct[--It],Ct[It]=null;for(;t===Rt;)Rt=Lt[--Tt],Lt[Tt]=null,Ft=Lt[--Tt],Lt[Tt]=null,Mt=Lt[--Tt],Lt[Tt]=null}var Qt=null,Dt=null,Ht=!1,Wt=!1,Bt=null;function sd(t,a){var u=td(5,null,null,0);u.elementType=\"DELETED\";u.stateNode=a;u.return=t;a=t.deletions;null===a?(t.deletions=[u],t.flags|=16):a.push(u)}function ud(t,a){switch(t.tag){case 5:return a=Un(a,t.type,t.pendingProps),null!==a&&(t.stateNode=a,Qt=t,Dt=Hn(a),!0);case 6:return a=Ln(a,t.pendingProps),null!==a&&(t.stateNode=a,Qt=t,Dt=null,!0);case 13:a=Tn(a);if(null!==a){var u=null!==Rt?{id:Mt,overflow:Ft}:null;t.memoizedState={dehydrated:a,treeContext:u,retryLane:1073741824};u=td(18,null,null,0);u.stateNode=a;u.return=t;t.child=u;Qt=t;Dt=null;return!0}return!1;default:return!1}}function vd(t){return 0!==(t.mode&1)&&0===(t.flags&128)}function wd(t){if(Ht){var a=Dt;if(a){var u=a;if(!ud(t,a)){if(vd(t))throw Error(n(418));a=Dn(u);var i=Qt;a&&ud(t,a)?sd(i,u):(t.flags=t.flags&-4097|2,Ht=!1,Qt=t)}}else{if(vd(t))throw Error(n(418));t.flags=t.flags&-4097|2;Ht=!1;Qt=t}}}function xd(t){for(t=t.return;null!==t&&5!==t.tag&&3!==t.tag&&13!==t.tag;)t=t.return;Qt=t}function yd(t){if(!Fe||t!==Qt)return!1;if(!Ht)return xd(t),Ht=!0,!1;if(3!==t.tag&&(5!==t.tag||Jn(t.type)&&!pe(t.type,t.memoizedProps))){var a=Dt;if(a){if(vd(t))throw zd(),Error(n(418));for(;a;)sd(t,a),a=Dn(a)}}xd(t);if(13===t.tag){if(!Fe)throw Error(n(316));t=t.memoizedState;t=null!==t?t.dehydrated:null;if(!t)throw Error(n(317));Dt=jn(t)}else Dt=Qt?Dn(t.stateNode):null;return!0}function zd(){for(var t=Dt;t;)t=Dn(t)}function Ad(){Fe&&(Dt=Qt=null,Wt=Ht=!1)}function Bd(t){null===Bt?Bt=[t]:Bt.push(t)}var Ot=x.ReactCurrentBatchConfig;function Dd(t,a){if(zt(t,a))return!0;if(\"object\"!==typeof t||null===t||\"object\"!==typeof a||null===a)return!1;var u=Object.keys(t),i=Object.keys(a);if(u.length!==i.length)return!1;for(i=0;i<u.length;i++){var o=u[i];if(!et.call(a,o)||!zt(t[o],a[o]))return!1}return!0}function Ed(t){switch(t.tag){case 5:return cc(t.type);case 16:return cc(\"Lazy\");case 13:return cc(\"Suspense\");case 19:return cc(\"SuspenseList\");case 0:case 2:case 15:return t=ec(t.type,!1),t;case 11:return t=ec(t.type.render,!1),t;case 1:return t=ec(t.type,!0),t;default:return\"\"}}function Fd(t,a,u){t=u.ref;if(null!==t&&\"function\"!==typeof t&&\"object\"!==typeof t){if(u._owner){u=u._owner;if(u){if(1!==u.tag)throw Error(n(309));var i=u.stateNode}if(!i)throw Error(n(147,t));var o=i,s=\"\"+t;if(null!==a&&null!==a.ref&&\"function\"===typeof a.ref&&a.ref._stringRef===s)return a.ref;a=function(t){var a=o.refs;null===t?delete a[s]:a[s]=t};a._stringRef=s;return a}if(\"string\"!==typeof t)throw Error(n(284));if(!u._owner)throw Error(n(290,t))}return t}function Gd(t,a){t=Object.prototype.toString.call(a);throw Error(n(31,\"[object Object]\"===t?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":t))}function Hd(t){var a=t._init;return a(t._payload)}function Id(t){function b(a,u){if(t){var i=a.deletions;null===i?(a.deletions=[u],a.flags|=16):i.push(u)}}function c(a,u){if(!t)return null;for(;null!==u;)b(a,u),u=u.sibling;return null}function d(t,a){for(t=new Map;null!==a;)null!==a.key?t.set(a.key,a):t.set(a.index,a),a=a.sibling;return t}function e(t,a){t=Jd(t,a);t.index=0;t.sibling=null;return t}function f(a,u,i){a.index=i;if(!t)return a.flags|=1048576,u;i=a.alternate;if(null!==i)return i=i.index,i<u?(a.flags|=2,u):i;a.flags|=2;return u}function g(a){t&&null===a.alternate&&(a.flags|=2);return a}function h(t,a,u,i){if(null===a||6!==a.tag)return a=Kd(u,t.mode,i),a.return=t,a;a=e(a,u);a.return=t;return a}function k(t,a,u,i){var o=u.type;if(o===E)return m(t,a,u.props.children,i,u.key);if(null!==a&&(a.elementType===o||\"object\"===typeof o&&null!==o&&o.$$typeof===H&&Hd(o)===a.type))return i=e(a,u.props),i.ref=Fd(t,a,u),i.return=t,i;i=Ld(u.type,u.key,u.props,null,t.mode,i);i.ref=Fd(t,a,u);i.return=t;return i}function l(t,a,u,i){if(null===a||4!==a.tag||a.stateNode.containerInfo!==u.containerInfo||a.stateNode.implementation!==u.implementation)return a=Md(u,t.mode,i),a.return=t,a;a=e(a,u.children||[]);a.return=t;return a}function m(t,a,u,i,o){if(null===a||7!==a.tag)return a=Nd(u,t.mode,i,o),a.return=t,a;a=e(a,u);a.return=t;return a}function r(t,a,u){if(\"string\"===typeof a&&\"\"!==a||\"number\"===typeof a)return a=Kd(\"\"+a,t.mode,u),a.return=t,a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case z:return u=Ld(a.type,a.key,a.props,null,t.mode,u),u.ref=Fd(t,null,a),u.return=t,u;case N:return a=Md(a,t.mode,u),a.return=t,a;case H:var i=a._init;return r(t,i(a._payload),u)}if(V(a)||ta(a))return a=Nd(a,t.mode,u,null),a.return=t,a;Gd(t,a)}return null}function p(t,a,u,i){var o=null!==a?a.key:null;if(\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u)return null!==o?null:h(t,a,\"\"+u,i);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case z:return u.key===o?k(t,a,u,i):null;case N:return u.key===o?l(t,a,u,i):null;case H:return o=u._init,p(t,a,o(u._payload),i)}if(V(u)||ta(u))return null!==o?null:m(t,a,u,i,null);Gd(t,u)}return null}function B(t,a,u,i,o){if(\"string\"===typeof i&&\"\"!==i||\"number\"===typeof i)return t=t.get(u)||null,h(a,t,\"\"+i,o);if(\"object\"===typeof i&&null!==i){switch(i.$$typeof){case z:return t=t.get(null===i.key?u:i.key)||null,k(a,t,i,o);case N:return t=t.get(null===i.key?u:i.key)||null,l(a,t,i,o);case H:var s=i._init;return B(t,a,u,s(i._payload),o)}if(V(i)||ta(i))return t=t.get(u)||null,m(a,t,i,o,null);Gd(a,i)}return null}function w(a,u,i,o){for(var s=null,y=null,S=u,x=u=0,z=null;null!==S&&x<i.length;x++){S.index>x?(z=S,S=null):z=S.sibling;var N=p(a,S,i[x],o);if(null===N){null===S&&(S=z);break}t&&S&&null===N.alternate&&b(a,S);u=f(N,u,x);null===y?s=N:y.sibling=N;y=N;S=z}if(x===i.length)return c(a,S),Ht&&kd(a,x),s;if(null===S){for(;x<i.length;x++)S=r(a,i[x],o),null!==S&&(u=f(S,u,x),null===y?s=S:y.sibling=S,y=S);Ht&&kd(a,x);return s}for(S=d(a,S);x<i.length;x++)z=B(S,a,x,i[x],o),null!==z&&(t&&null!==z.alternate&&S.delete(null===z.key?x:z.key),u=f(z,u,x),null===y?s=z:y.sibling=z,y=z);t&&S.forEach((function(t){return b(a,t)}));Ht&&kd(a,x);return s}function Y(a,u,i,o){var s=ta(i);if(\"function\"!==typeof s)throw Error(n(150));i=s.call(i);if(null==i)throw Error(n(151));for(var y=s=null,S=u,x=u=0,z=null,N=i.next();null!==S&&!N.done;x++,N=i.next()){S.index>x?(z=S,S=null):z=S.sibling;var E=p(a,S,N.value,o);if(null===E){null===S&&(S=z);break}t&&S&&null===E.alternate&&b(a,S);u=f(E,u,x);null===y?s=E:y.sibling=E;y=E;S=z}if(N.done)return c(a,S),Ht&&kd(a,x),s;if(null===S){for(;!N.done;x++,N=i.next())N=r(a,N.value,o),null!==N&&(u=f(N,u,x),null===y?s=N:y.sibling=N,y=N);Ht&&kd(a,x);return s}for(S=d(a,S);!N.done;x++,N=i.next())N=B(S,a,x,N.value,o),null!==N&&(t&&null!==N.alternate&&S.delete(null===N.key?x:N.key),u=f(N,u,x),null===y?s=N:y.sibling=N,y=N);t&&S.forEach((function(t){return b(a,t)}));Ht&&kd(a,x);return s}function ya(t,a,u,i){\"object\"===typeof u&&null!==u&&u.type===E&&null===u.key&&(u=u.props.children);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case z:e:{for(var o=u.key,s=a;null!==s;){if(s.key===o){o=u.type;if(o===E){if(7===s.tag){c(t,s.sibling);a=e(s,u.props.children);a.return=t;t=a;break e}}else if(s.elementType===o||\"object\"===typeof o&&null!==o&&o.$$typeof===H&&Hd(o)===s.type){c(t,s.sibling);a=e(s,u.props);a.ref=Fd(t,s,u);a.return=t;t=a;break e}c(t,s);break}b(t,s);s=s.sibling}u.type===E?(a=Nd(u.props.children,t.mode,i,u.key),a.return=t,t=a):(i=Ld(u.type,u.key,u.props,null,t.mode,i),i.ref=Fd(t,a,u),i.return=t,t=i)}return g(t);case N:e:{for(s=u.key;null!==a;){if(a.key===s){if(4===a.tag&&a.stateNode.containerInfo===u.containerInfo&&a.stateNode.implementation===u.implementation){c(t,a.sibling);a=e(a,u.children||[]);a.return=t;t=a;break e}c(t,a);break}b(t,a);a=a.sibling}a=Md(u,t.mode,i);a.return=t;t=a}return g(t);case H:return s=u._init,ya(t,a,s(u._payload),i)}if(V(u))return w(t,a,u,i);if(ta(u))return Y(t,a,u,i);Gd(t,u)}return\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u?(u=\"\"+u,null!==a&&6===a.tag?(c(t,a.sibling),a=e(a,u),a.return=t,t=a):(c(t,a),a=Kd(u,t.mode,i),a.return=t,t=a),g(t)):c(t,a)}return ya}var At=Id(!0),qt=Id(!1),jt=ic(null),$t=null,Vt=null,Zt=null;function Ud(){Zt=Vt=$t=null}function Vd(t,a,u){Ie?(v(jt,a._currentValue),a._currentValue=u):(v(jt,a._currentValue2),a._currentValue2=u)}function Wd(t){var a=jt.current;q(jt);Ie?t._currentValue=a:t._currentValue2=a}function Xd(t,a,u){for(;null!==t;){var i=t.alternate;(t.childLanes&a)!==a?(t.childLanes|=a,null!==i&&(i.childLanes|=a)):null!==i&&(i.childLanes&a)!==a&&(i.childLanes|=a);if(t===u)break;t=t.return}}function Yd(t,a){$t=t;Zt=Vt=null;t=t.dependencies;null!==t&&null!==t.firstContext&&(0!==(t.lanes&a)&&(Sr=!0),t.firstContext=null)}function Zd(t){var a=Ie?t._currentValue:t._currentValue2;if(Zt!==t)if(t={context:t,memoizedValue:a,next:null},null===Vt){if(null===$t)throw Error(n(308));Vt=t;$t.dependencies={lanes:0,firstContext:t}}else Vt=Vt.next=t;return a}var Yt=null;function ae(t){null===Yt?Yt=[t]:Yt.push(t)}function be(t,a,u,i){var o=a.interleaved;null===o?(u.next=u,ae(a)):(u.next=o.next,o.next=u);a.interleaved=u;return ce(t,i)}function ce(t,a){t.lanes|=a;var u=t.alternate;null!==u&&(u.lanes|=a);u=t;for(t=t.return;null!==t;)t.childLanes|=a,u=t.alternate,null!==u&&(u.childLanes|=a),u=t,t=t.return;return 3===u.tag?u.stateNode:null}var Jt=!1;function ee(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fe(t,a){t=t.updateQueue;a.updateQueue===t&&(a.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function ge(t,a){return{eventTime:t,lane:a,tag:0,payload:null,callback:null,next:null}}function he(t,a,u){var i=t.updateQueue;if(null===i)return null;i=i.shared;if(0!==(Ar&2)){var o=i.pending;null===o?a.next=a:(a.next=o.next,o.next=a);i.pending=a;return ce(t,u)}o=i.interleaved;null===o?(a.next=a,ae(i)):(a.next=o.next,o.next=a);i.interleaved=a;return ce(t,u)}function ie(t,a,u){a=a.updateQueue;if(null!==a&&(a=a.shared,0!==(u&4194240))){var i=a.lanes;i&=t.pendingLanes;u|=i;a.lanes=u;Hc(t,u)}}function je(t,a){var u=t.updateQueue,i=t.alternate;if(null===i||(i=i.updateQueue,u!==i)){t=u.lastBaseUpdate;null===t?u.firstBaseUpdate=a:t.next=a;u.lastBaseUpdate=a}else{var o=null,s=null;u=u.firstBaseUpdate;if(null!==u){do{var y={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};null===s?o=s=y:s=s.next=y;u=u.next}while(null!==u);null===s?o=s=a:s=s.next=a}else o=s=a;u={baseState:i.baseState,firstBaseUpdate:o,lastBaseUpdate:s,shared:i.shared,effects:i.effects};t.updateQueue=u}}function ke(t,a,u,i){var o=t.updateQueue;Jt=!1;var s=o.firstBaseUpdate,y=o.lastBaseUpdate,x=o.shared.pending;if(null!==x){o.shared.pending=null;var z=x,N=z.next;z.next=null;null===y?s=N:y.next=N;y=z;var E=t.alternate;null!==E&&(E=E.updateQueue,x=E.lastBaseUpdate,x!==y&&(null===x?E.firstBaseUpdate=N:x.next=N,E.lastBaseUpdate=z))}if(null!==s){var C=o.baseState;y=0;E=N=z=null;x=s;do{var I=x.lane,_=x.eventTime;if((i&I)===I){null!==E&&(E=E.next={eventTime:_,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var L=t,T=x;I=a;_=u;switch(T.tag){case 1:L=T.payload;if(\"function\"===typeof L){C=L.call(_,C,I);break e}C=L;break e;case 3:L.flags=L.flags&-65537|128;case 0:L=T.payload;I=\"function\"===typeof L?L.call(_,C,I):L;if(null===I||void 0===I)break e;C=S({},C,I);break e;case 2:Jt=!0}}null!==x.callback&&0!==x.lane&&(t.flags|=64,I=o.effects,null===I?o.effects=[x]:I.push(x))}else _={eventTime:_,lane:I,tag:x.tag,payload:x.payload,callback:x.callback,next:null},null===E?(N=E=_,z=C):E=E.next=_,y|=I;x=x.next;if(null===x){if(x=o.shared.pending,null===x)break;I=x,x=I.next,I.next=null,o.lastBaseUpdate=I,o.shared.pending=null}}while(1);null===E&&(z=C);o.baseState=z;o.firstBaseUpdate=N;o.lastBaseUpdate=E;a=o.shared.interleaved;if(null!==a){o=a;do{y|=o.lane,o=o.next}while(o!==a)}else null===s&&(o.shared.lanes=0);Kr|=y;t.lanes=y;t.memoizedState=C}}function me(t,a,u){t=a.effects;a.effects=null;if(null!==t)for(a=0;a<t.length;a++){var i=t[a],o=i.callback;if(null!==o){i.callback=null;i=u;if(\"function\"!==typeof o)throw Error(n(191,o));o.call(i)}}}var Kt={},Gt=ic(Kt),Xt=ic(Kt),er=ic(Kt);function re(t){if(t===Kt)throw Error(n(174));return t}function se(t,a){v(er,a);v(Xt,t);v(Gt,Kt);t=J(a);q(Gt);v(Gt,t)}function te(){q(Gt);q(Xt);q(er)}function ue(t){var a=re(er.current),u=re(Gt.current);a=K(u,t.type,a);u!==a&&(v(Xt,t),v(Gt,a))}function ve(t){Xt.current===t&&(q(Gt),q(Xt))}var nr=ic(0);function we(t){for(var a=t;null!==a;){if(13===a.tag){var u=a.memoizedState;if(null!==u&&(u=u.dehydrated,null===u||Rn(u)||Mn(u)))return a}else if(19===a.tag&&void 0!==a.memoizedProps.revealOrder){if(0!==(a.flags&128))return a}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return null;a=a.return}a.sibling.return=a.return;a=a.sibling}return null}var tr=[];function ye(){for(var t=0;t<tr.length;t++){var a=tr[t];Ie?a._workInProgressVersionPrimary=null:a._workInProgressVersionSecondary=null}tr.length=0}var rr=x.ReactCurrentDispatcher,lr=x.ReactCurrentBatchConfig,ar=0,ur=null,ir=null,or=null,sr=!1,cr=!1,fr=0,dr=0;function M(){throw Error(n(321))}function Ge(t,a){if(null===a)return!1;for(var u=0;u<a.length&&u<t.length;u++)if(!zt(t[u],a[u]))return!1;return!0}function He(t,a,u,i,o,s){ar=s;ur=a;a.memoizedState=null;a.updateQueue=null;a.lanes=0;rr.current=null===t||null===t.memoizedState?gr:pr;t=u(i,o);if(cr){s=0;do{cr=!1;fr=0;if(25<=s)throw Error(n(301));s+=1;or=ir=null;a.updateQueue=null;rr.current=mr;t=u(i,o)}while(cr)}rr.current=hr;a=null!==ir&&null!==ir.next;ar=0;or=ir=ur=null;sr=!1;if(a)throw Error(n(300));return t}function Me(){var t=0!==fr;fr=0;return t}function Ne(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===or?ur.memoizedState=or=t:or=or.next=t;return or}function Oe(){if(null===ir){var t=ur.alternate;t=null!==t?t.memoizedState:null}else t=ir.next;var a=null===or?ur.memoizedState:or.next;if(null!==a)or=a,ir=t;else{if(null===t)throw Error(n(310));ir=t;t={memoizedState:ir.memoizedState,baseState:ir.baseState,baseQueue:ir.baseQueue,queue:ir.queue,next:null};null===or?ur.memoizedState=or=t:or=or.next=t}return or}function Pe(t,a){return\"function\"===typeof a?a(t):a}function Qe(t){var a=Oe(),u=a.queue;if(null===u)throw Error(n(311));u.lastRenderedReducer=t;var i=ir,o=i.baseQueue,s=u.pending;if(null!==s){if(null!==o){var y=o.next;o.next=s.next;s.next=y}i.baseQueue=o=s;u.pending=null}if(null!==o){s=o.next;i=i.baseState;var S=y=null,x=null,z=s;do{var N=z.lane;if((ar&N)===N)null!==x&&(x=x.next={lane:0,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null}),i=z.hasEagerState?z.eagerState:t(i,z.action);else{var E={lane:N,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null};null===x?(S=x=E,y=i):x=x.next=E;ur.lanes|=N;Kr|=N}z=z.next}while(null!==z&&z!==s);null===x?y=i:x.next=S;zt(i,a.memoizedState)||(Sr=!0);a.memoizedState=i;a.baseState=y;a.baseQueue=x;u.lastRenderedState=i}t=u.interleaved;if(null!==t){o=t;do{s=o.lane,ur.lanes|=s,Kr|=s,o=o.next}while(o!==t)}else null===o&&(u.lanes=0);return[a.memoizedState,u.dispatch]}function Re(t){var a=Oe(),u=a.queue;if(null===u)throw Error(n(311));u.lastRenderedReducer=t;var i=u.dispatch,o=u.pending,s=a.memoizedState;if(null!==o){u.pending=null;var y=o=o.next;do{s=t(s,y.action),y=y.next}while(y!==o);zt(s,a.memoizedState)||(Sr=!0);a.memoizedState=s;null===a.baseQueue&&(a.baseState=s);u.lastRenderedState=s}return[s,i]}function Se(){}function Te(t,a){var u=ur,i=Oe(),o=a(),s=!zt(i.memoizedState,o);s&&(i.memoizedState=o,Sr=!0);i=i.queue;Ue(Ve.bind(null,u,i,t),[t]);if(i.getSnapshot!==a||s||null!==or&&or.memoizedState.tag&1){u.flags|=2048;We(9,Xe.bind(null,u,i,o,a),void 0,null);if(null===qr)throw Error(n(349));0!==(ar&30)||Ye(u,a,o)}return o}function Ye(t,a,u){t.flags|=16384;t={getSnapshot:a,value:u};a=ur.updateQueue;null===a?(a={lastEffect:null,stores:null},ur.updateQueue=a,a.stores=[t]):(u=a.stores,null===u?a.stores=[t]:u.push(t))}function Xe(t,a,u,i){a.value=u;a.getSnapshot=i;Ze(a)&&$e(t)}function Ve(t,a,u){return u((function(){Ze(a)&&$e(t)}))}function Ze(t){var a=t.getSnapshot;t=t.value;try{var u=a();return!zt(t,u)}catch(t){return!0}}function $e(t){var a=ce(t,1);null!==a&&af(a,t,1,-1)}function bf(t){var a=Ne();\"function\"===typeof t&&(t=t());a.memoizedState=a.baseState=t;t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Pe,lastRenderedState:t};a.queue=t;t=t.dispatch=cf.bind(null,ur,t);return[a.memoizedState,t]}function We(t,a,u,i){t={tag:t,create:a,destroy:u,deps:i,next:null};a=ur.updateQueue;null===a?(a={lastEffect:null,stores:null},ur.updateQueue=a,a.lastEffect=t.next=t):(u=a.lastEffect,null===u?a.lastEffect=t.next=t:(i=u.next,u.next=t,t.next=i,a.lastEffect=t));return t}function df(){return Oe().memoizedState}function ef(t,a,u,i){var o=Ne();ur.flags|=t;o.memoizedState=We(1|a,u,void 0,void 0===i?null:i)}function ff(t,a,u,i){var o=Oe();i=void 0===i?null:i;var s=void 0;if(null!==ir){var y=ir.memoizedState;s=y.destroy;if(null!==i&&Ge(i,y.deps)){o.memoizedState=We(a,u,s,i);return}}ur.flags|=t;o.memoizedState=We(1|a,u,s,i)}function gf(t,a){return ef(8390656,8,t,a)}function Ue(t,a){return ff(2048,8,t,a)}function hf(t,a){return ff(4,2,t,a)}function jf(t,a){return ff(4,4,t,a)}function kf(t,a){return\"function\"===typeof a?(t=t(),a(t),function(){a(null)}):null!==a&&void 0!==a?(t=t(),a.current=t,function(){a.current=null}):void 0}function lf(t,a,u){u=null!==u&&void 0!==u?u.concat([t]):null;return ff(4,4,kf.bind(null,a,t),u)}function mf(){}function nf(t,a){var u=Oe();a=void 0===a?null:a;var i=u.memoizedState;if(null!==i&&null!==a&&Ge(a,i[1]))return i[0];u.memoizedState=[t,a];return t}function of(t,a){var u=Oe();a=void 0===a?null:a;var i=u.memoizedState;if(null!==i&&null!==a&&Ge(a,i[1]))return i[0];t=t();u.memoizedState=[t,a];return t}function pf(t,a,u){if(0===(ar&21))return t.baseState&&(t.baseState=!1,Sr=!0),t.memoizedState=u;zt(u,a)||(u=Dc(),ur.lanes|=u,Kr|=u,t.baseState=!0);return a}function qf(t,a){var u=dt;dt=0!==u&&4>u?u:4;t(!0);var i=lr.transition;lr.transition={};try{t(!1),a()}finally{dt=u,lr.transition=i}}function rf(){return Oe().memoizedState}function sf(t,a,u){var i=tf(t);u={lane:i,action:u,hasEagerState:!1,eagerState:null,next:null};if(uf(t))vf(a,u);else if(u=be(t,a,u,i),null!==u){var o=O();af(u,t,i,o);wf(u,a,i)}}function cf(t,a,u){var i=tf(t),o={lane:i,action:u,hasEagerState:!1,eagerState:null,next:null};if(uf(t))vf(a,o);else{var s=t.alternate;if(0===t.lanes&&(null===s||0===s.lanes)&&(s=a.lastRenderedReducer,null!==s))try{var y=a.lastRenderedState,S=s(y,u);o.hasEagerState=!0;o.eagerState=S;if(zt(S,y)){var x=a.interleaved;null===x?(o.next=o,ae(a)):(o.next=x.next,x.next=o);a.interleaved=o;return}}catch(t){}u=be(t,a,o,i);null!==u&&(o=O(),af(u,t,i,o),wf(u,a,i))}}function uf(t){var a=t.alternate;return t===ur||null!==a&&a===ur}function vf(t,a){cr=sr=!0;var u=t.pending;null===u?a.next=a:(a.next=u.next,u.next=a);t.pending=a}function wf(t,a,u){if(0!==(u&4194240)){var i=a.lanes;i&=t.pendingLanes;u|=i;a.lanes=u;Hc(t,u)}}var hr={readContext:Zd,useCallback:M,useContext:M,useEffect:M,useImperativeHandle:M,useInsertionEffect:M,useLayoutEffect:M,useMemo:M,useReducer:M,useRef:M,useState:M,useDebugValue:M,useDeferredValue:M,useTransition:M,useMutableSource:M,useSyncExternalStore:M,useId:M,unstable_isNewReconciler:!1},gr={readContext:Zd,useCallback:function(t,a){Ne().memoizedState=[t,void 0===a?null:a];return t},useContext:Zd,useEffect:gf,useImperativeHandle:function(t,a,u){u=null!==u&&void 0!==u?u.concat([t]):null;return ef(4194308,4,kf.bind(null,a,t),u)},useLayoutEffect:function(t,a){return ef(4194308,4,t,a)},useInsertionEffect:function(t,a){return ef(4,2,t,a)},useMemo:function(t,a){var u=Ne();a=void 0===a?null:a;t=t();u.memoizedState=[t,a];return t},useReducer:function(t,a,u){var i=Ne();a=void 0!==u?u(a):a;i.memoizedState=i.baseState=a;t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:a};i.queue=t;t=t.dispatch=sf.bind(null,ur,t);return[i.memoizedState,t]},useRef:function(t){var a=Ne();t={current:t};return a.memoizedState=t},useState:bf,useDebugValue:mf,useDeferredValue:function(t){return Ne().memoizedState=t},useTransition:function(){var t=bf(!1),a=t[0];t=qf.bind(null,t[1]);Ne().memoizedState=t;return[a,t]},useMutableSource:function(){},useSyncExternalStore:function(t,a,u){var i=ur,o=Ne();if(Ht){if(void 0===u)throw Error(n(407));u=u()}else{u=a();if(null===qr)throw Error(n(349));0!==(ar&30)||Ye(i,a,u)}o.memoizedState=u;var s={value:u,getSnapshot:a};o.queue=s;gf(Ve.bind(null,i,s,t),[t]);i.flags|=2048;We(9,Xe.bind(null,i,s,u,a),void 0,null);return u},useId:function(){var t=Ne(),a=qr.identifierPrefix;if(Ht){var u=Ft;var i=Mt;u=(i&~(1<<32-it(i)-1)).toString(32)+u;a=\":\"+a+\"R\"+u;u=fr++;0<u&&(a+=\"H\"+u.toString(32));a+=\":\"}else u=dr++,a=\":\"+a+\"r\"+u.toString(32)+\":\";return t.memoizedState=a},unstable_isNewReconciler:!1},pr={readContext:Zd,useCallback:nf,useContext:Zd,useEffect:Ue,useImperativeHandle:lf,useInsertionEffect:hf,useLayoutEffect:jf,useMemo:of,useReducer:Qe,useRef:df,useState:function(){return Qe(Pe)},useDebugValue:mf,useDeferredValue:function(t){var a=Oe();return pf(a,ir.memoizedState,t)},useTransition:function(){var t=Qe(Pe)[0],a=Oe().memoizedState;return[t,a]},useMutableSource:Se,useSyncExternalStore:Te,useId:rf,unstable_isNewReconciler:!1},mr={readContext:Zd,useCallback:nf,useContext:Zd,useEffect:Ue,useImperativeHandle:lf,useInsertionEffect:hf,useLayoutEffect:jf,useMemo:of,useReducer:Re,useRef:df,useState:function(){return Re(Pe)},useDebugValue:mf,useDeferredValue:function(t){var a=Oe();return null===ir?a.memoizedState=t:pf(a,ir.memoizedState,t)},useTransition:function(){var t=Re(Pe)[0],a=Oe().memoizedState;return[t,a]},useMutableSource:Se,useSyncExternalStore:Te,useId:rf,unstable_isNewReconciler:!1};function xf(t,a){if(t&&t.defaultProps){a=S({},a);t=t.defaultProps;for(var u in t)void 0===a[u]&&(a[u]=t[u]);return a}return a}function yf(t,a,u,i){a=t.memoizedState;u=u(i,a);u=null===u||void 0===u?a:S({},a,u);t.memoizedState=u;0===t.lanes&&(t.updateQueue.baseState=u)}var vr={isMounted:function(t){return!!(t=t._reactInternals)&&wa(t)===t},enqueueSetState:function(t,a,u){t=t._reactInternals;var i=O(),o=tf(t),s=ge(i,o);s.payload=a;void 0!==u&&null!==u&&(s.callback=u);a=he(t,s,o);null!==a&&(af(a,t,o,i),ie(a,t,o))},enqueueReplaceState:function(t,a,u){t=t._reactInternals;var i=O(),o=tf(t),s=ge(i,o);s.tag=1;s.payload=a;void 0!==u&&null!==u&&(s.callback=u);a=he(t,s,o);null!==a&&(af(a,t,o,i),ie(a,t,o))},enqueueForceUpdate:function(t,a){t=t._reactInternals;var u=O(),i=tf(t),o=ge(u,i);o.tag=2;void 0!==a&&null!==a&&(o.callback=a);a=he(t,o,i);null!==a&&(af(a,t,i,u),ie(a,t,i))}};function Af(t,a,u,i,o,s,y){t=t.stateNode;return\"function\"===typeof t.shouldComponentUpdate?t.shouldComponentUpdate(i,s,y):!a.prototype||!a.prototype.isPureReactComponent||(!Dd(u,i)||!Dd(o,s))}function Bf(t,a,u){var i=!1,o=rt;var s=a.contextType;\"object\"===typeof s&&null!==s?s=Zd(s):(o=A(a)?ut:lt.current,i=a.contextTypes,s=(i=null!==i&&void 0!==i)?mc(t,o):rt);a=new a(u,s);t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;a.updater=vr;t.stateNode=a;a._reactInternals=t;i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=o,t.__reactInternalMemoizedMaskedChildContext=s);return a}function Cf(t,a,u,i){t=a.state;\"function\"===typeof a.componentWillReceiveProps&&a.componentWillReceiveProps(u,i);\"function\"===typeof a.UNSAFE_componentWillReceiveProps&&a.UNSAFE_componentWillReceiveProps(u,i);a.state!==t&&vr.enqueueReplaceState(a,a.state,null)}function Df(t,a,u,i){var o=t.stateNode;o.props=u;o.state=t.memoizedState;o.refs={};ee(t);var s=a.contextType;\"object\"===typeof s&&null!==s?o.context=Zd(s):(s=A(a)?ut:lt.current,o.context=mc(t,s));o.state=t.memoizedState;s=a.getDerivedStateFromProps;\"function\"===typeof s&&(yf(t,a,s,u),o.state=t.memoizedState);\"function\"===typeof a.getDerivedStateFromProps||\"function\"===typeof o.getSnapshotBeforeUpdate||\"function\"!==typeof o.UNSAFE_componentWillMount&&\"function\"!==typeof o.componentWillMount||(a=o.state,\"function\"===typeof o.componentWillMount&&o.componentWillMount(),\"function\"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),a!==o.state&&vr.enqueueReplaceState(o,o.state,null),ke(t,u,o,i),o.state=t.memoizedState);\"function\"===typeof o.componentDidMount&&(t.flags|=4194308)}function Ef(t,a){try{var u=\"\",i=a;do{u+=Ed(i),i=i.return}while(i);var o=u}catch(t){o=\"\\nError generating stack: \"+t.message+\"\\n\"+t.stack}return{value:t,source:a,stack:o,digest:null}}function Ff(t,a,u){return{value:t,source:null,stack:null!=u?u:null,digest:null!=a?a:null}}function Gf(t,a){try{console.error(a.value)}catch(t){setTimeout((function(){throw t}))}}var yr=\"function\"===typeof WeakMap?WeakMap:Map;function If(t,a,u){u=ge(-1,u);u.tag=3;u.payload={element:null};var i=a.value;u.callback=function(){al||(al=!0,ul=i);Gf(t,a)};return u}function Lf(t,a,u){u=ge(-1,u);u.tag=3;var i=t.type.getDerivedStateFromError;if(\"function\"===typeof i){var s=a.value;u.payload=function(){return i(s)};u.callback=function(){Gf(t,a)}}var y=t.stateNode;null!==y&&\"function\"===typeof y.componentDidCatch&&(u.callback=function(){Gf(t,a);\"function\"!==typeof i&&(null===il?il=new Set([this||o]):il.add(this||o));var u=a.stack;this.componentDidCatch(a.value,{componentStack:null!==u?u:\"\"})});return u}function Nf(t,a,u){var i=t.pingCache;if(null===i){i=t.pingCache=new yr;var o=new Set;i.set(a,o)}else o=i.get(a),void 0===o&&(o=new Set,i.set(a,o));o.has(u)||(o.add(u),t=Of.bind(null,t,a,u),a.then(t,t))}function Pf(t){do{var a;(a=13===t.tag)&&(a=t.memoizedState,a=null===a||null!==a.dehydrated);if(a)return t;t=t.return}while(null!==t);return null}function Qf(t,a,u,i,o){if(0===(t.mode&1))return t===a?t.flags|=65536:(t.flags|=128,u.flags|=131072,u.flags&=-52805,1===u.tag&&(null===u.alternate?u.tag=17:(a=ge(-1,1),a.tag=2,he(u,a,1))),u.lanes|=1),t;t.flags|=65536;t.lanes=o;return t}var br=x.ReactCurrentOwner,Sr=!1;function P(t,a,u,i){a.child=null===t?qt(a,null,u,i):At(a,t.child,u,i)}function Sf(t,a,u,i,o){u=u.render;var s=a.ref;Yd(a,o);i=He(t,a,u,i,s,o);u=Me();if(null!==t&&!Sr)return a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~o,Tf(t,a,o);Ht&&u&&md(a);a.flags|=1;P(t,a,i,o);return a.child}function Uf(t,a,u,i,o){if(null===t){var s=u.type;if(\"function\"===typeof s&&!Vf(s)&&void 0===s.defaultProps&&null===u.compare&&void 0===u.defaultProps)return a.tag=15,a.type=s,Wf(t,a,s,i,o);t=Ld(u.type,null,i,a,a.mode,o);t.ref=a.ref;t.return=a;return a.child=t}s=t.child;if(0===(t.lanes&o)){var y=s.memoizedProps;u=u.compare;u=null!==u?u:Dd;if(u(y,i)&&t.ref===a.ref)return Tf(t,a,o)}a.flags|=1;t=Jd(s,i);t.ref=a.ref;t.return=a;return a.child=t}function Wf(t,a,u,i,o){if(null!==t){var s=t.memoizedProps;if(Dd(s,i)&&t.ref===a.ref){if(Sr=!1,a.pendingProps=i=s,0===(t.lanes&o))return a.lanes=t.lanes,Tf(t,a,o);0!==(t.flags&131072)&&(Sr=!0)}}return Xf(t,a,u,i,o)}function Yf(t,a,u){var i=a.pendingProps,o=i.children,s=null!==t?t.memoizedState:null;if(\"hidden\"===i.mode)if(0===(a.mode&1))a.memoizedState={baseLanes:0,cachePool:null,transitions:null},v(Zr,Vr),Vr|=u;else{if(0===(u&1073741824))return t=null!==s?s.baseLanes|u:u,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:t,cachePool:null,transitions:null},a.updateQueue=null,v(Zr,Vr),Vr|=t,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null};i=null!==s?s.baseLanes:u;v(Zr,Vr);Vr|=i}else null!==s?(i=s.baseLanes|u,a.memoizedState=null):i=u,v(Zr,Vr),Vr|=i;P(t,a,o,u);return a.child}function ag(t,a){var u=a.ref;(null===t&&null!==u||null!==t&&t.ref!==u)&&(a.flags|=512,a.flags|=2097152)}function Xf(t,a,u,i,o){var s=A(u)?ut:lt.current;s=mc(a,s);Yd(a,o);u=He(t,a,u,i,s,o);i=Me();if(null!==t&&!Sr)return a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~o,Tf(t,a,o);Ht&&i&&md(a);a.flags|=1;P(t,a,u,o);return a.child}function bg(t,a,u,i,o){if(A(u)){var s=!0;qc(a)}else s=!1;Yd(a,o);if(null===a.stateNode)cg(t,a),Bf(a,u,i),Df(a,u,i,o),i=!0;else if(null===t){var y=a.stateNode,S=a.memoizedProps;y.props=S;var x=y.context,z=u.contextType;\"object\"===typeof z&&null!==z?z=Zd(z):(z=A(u)?ut:lt.current,z=mc(a,z));var N=u.getDerivedStateFromProps,E=\"function\"===typeof N||\"function\"===typeof y.getSnapshotBeforeUpdate;E||\"function\"!==typeof y.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof y.componentWillReceiveProps||(S!==i||x!==z)&&Cf(a,y,i,z);Jt=!1;var C=a.memoizedState;y.state=C;ke(a,i,y,o);x=a.memoizedState;S!==i||C!==x||at.current||Jt?(\"function\"===typeof N&&(yf(a,u,N,i),x=a.memoizedState),(S=Jt||Af(a,u,S,i,C,x,z))?(E||\"function\"!==typeof y.UNSAFE_componentWillMount&&\"function\"!==typeof y.componentWillMount||(\"function\"===typeof y.componentWillMount&&y.componentWillMount(),\"function\"===typeof y.UNSAFE_componentWillMount&&y.UNSAFE_componentWillMount()),\"function\"===typeof y.componentDidMount&&(a.flags|=4194308)):(\"function\"===typeof y.componentDidMount&&(a.flags|=4194308),a.memoizedProps=i,a.memoizedState=x),y.props=i,y.state=x,y.context=z,i=S):(\"function\"===typeof y.componentDidMount&&(a.flags|=4194308),i=!1)}else{y=a.stateNode;fe(t,a);S=a.memoizedProps;z=a.type===a.elementType?S:xf(a.type,S);y.props=z;E=a.pendingProps;C=y.context;x=u.contextType;\"object\"===typeof x&&null!==x?x=Zd(x):(x=A(u)?ut:lt.current,x=mc(a,x));var I=u.getDerivedStateFromProps;(N=\"function\"===typeof I||\"function\"===typeof y.getSnapshotBeforeUpdate)||\"function\"!==typeof y.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof y.componentWillReceiveProps||(S!==E||C!==x)&&Cf(a,y,i,x);Jt=!1;C=a.memoizedState;y.state=C;ke(a,i,y,o);var _=a.memoizedState;S!==E||C!==_||at.current||Jt?(\"function\"===typeof I&&(yf(a,u,I,i),_=a.memoizedState),(z=Jt||Af(a,u,z,i,C,_,x)||!1)?(N||\"function\"!==typeof y.UNSAFE_componentWillUpdate&&\"function\"!==typeof y.componentWillUpdate||(\"function\"===typeof y.componentWillUpdate&&y.componentWillUpdate(i,_,x),\"function\"===typeof y.UNSAFE_componentWillUpdate&&y.UNSAFE_componentWillUpdate(i,_,x)),\"function\"===typeof y.componentDidUpdate&&(a.flags|=4),\"function\"===typeof y.getSnapshotBeforeUpdate&&(a.flags|=1024)):(\"function\"!==typeof y.componentDidUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=4),\"function\"!==typeof y.getSnapshotBeforeUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=1024),a.memoizedProps=i,a.memoizedState=_),y.props=i,y.state=_,y.context=x,i=z):(\"function\"!==typeof y.componentDidUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=4),\"function\"!==typeof y.getSnapshotBeforeUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=1024),i=!1)}return dg(t,a,u,i,s,o)}function dg(t,a,u,i,o,s){ag(t,a);var y=0!==(a.flags&128);if(!i&&!y)return o&&rc(a,u,!1),Tf(t,a,s);i=a.stateNode;br.current=a;var S=y&&\"function\"!==typeof u.getDerivedStateFromError?null:i.render();a.flags|=1;null!==t&&y?(a.child=At(a,t.child,null,s),a.child=At(a,null,S,s)):P(t,a,S,s);a.memoizedState=i.state;o&&rc(a,u,!0);return a.child}function eg(t){var a=t.stateNode;a.pendingContext?oc(t,a.pendingContext,a.pendingContext!==a.context):a.context&&oc(t,a.context,!1);se(t,a.containerInfo)}function fg(t,a,u,i,o){Ad();Bd(o);a.flags|=256;P(t,a,u,i);return a.child}var kr={dehydrated:null,treeContext:null,retryLane:0};function hg(t){return{baseLanes:t,cachePool:null,transitions:null}}function ig(t,a,u){var i,o=a.pendingProps,s=nr.current,y=!1,S=0!==(a.flags&128);(i=S)||(i=(null===t||null!==t.memoizedState)&&0!==(s&2));i?(y=!0,a.flags&=-129):null!==t&&null===t.memoizedState||(s|=1);v(nr,s&1);if(null===t){wd(a);t=a.memoizedState;if(null!==t&&(t=t.dehydrated,null!==t))return 0===(a.mode&1)?a.lanes=1:Mn(t)?a.lanes=8:a.lanes=1073741824,null;S=o.children;t=o.fallback;return y?(o=a.mode,y=a.child,S={mode:\"hidden\",children:S},0===(o&1)&&null!==y?(y.childLanes=0,y.pendingProps=S):y=jg(S,o,0,null),t=Nd(t,o,u,null),y.return=a,t.return=a,y.sibling=t,a.child=y,a.child.memoizedState=hg(u),a.memoizedState=kr,t):kg(a,S)}s=t.memoizedState;if(null!==s&&(i=s.dehydrated,null!==i))return lg(t,a,S,o,i,s,u);if(y){y=o.fallback;S=a.mode;s=t.child;i=s.sibling;var x={mode:\"hidden\",children:o.children};0===(S&1)&&a.child!==s?(o=a.child,o.childLanes=0,o.pendingProps=x,a.deletions=null):(o=Jd(s,x),o.subtreeFlags=s.subtreeFlags&14680064);null!==i?y=Jd(i,y):(y=Nd(y,S,u,null),y.flags|=2);y.return=a;o.return=a;o.sibling=y;a.child=o;o=y;y=a.child;S=t.child.memoizedState;S=null===S?hg(u):{baseLanes:S.baseLanes|u,cachePool:null,transitions:S.transitions};y.memoizedState=S;y.childLanes=t.childLanes&~u;a.memoizedState=kr;return o}y=t.child;t=y.sibling;o=Jd(y,{mode:\"visible\",children:o.children});0===(a.mode&1)&&(o.lanes=u);o.return=a;o.sibling=null;null!==t&&(u=a.deletions,null===u?(a.deletions=[t],a.flags|=16):u.push(t));a.child=o;a.memoizedState=null;return o}function kg(t,a){a=jg({mode:\"visible\",children:a},t.mode,0,null);a.return=t;return t.child=a}function mg(t,a,u,i){null!==i&&Bd(i);At(a,t.child,null,u);t=kg(a,a.pendingProps.children);t.flags|=2;a.memoizedState=null;return t}function lg(t,a,u,i,o,s,y){if(u){if(a.flags&256)return a.flags&=-257,i=Ff(Error(n(422))),mg(t,a,y,i);if(null!==a.memoizedState)return a.child=t.child,a.flags|=128,null;s=i.fallback;o=a.mode;i=jg({mode:\"visible\",children:i.children},o,0,null);s=Nd(s,o,y,null);s.flags|=2;i.return=a;s.return=a;i.sibling=s;a.child=i;0!==(a.mode&1)&&At(a,t.child,null,y);a.child.memoizedState=hg(y);a.memoizedState=kr;return s}if(0===(a.mode&1))return mg(t,a,y,null);if(Mn(o))return i=Fn(o).digest,s=Error(n(419)),i=Ff(s,i,void 0),mg(t,a,y,i);u=0!==(y&t.childLanes);if(Sr||u){i=qr;if(null!==i){switch(y&-y){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=0!==(o&(i.suspendedLanes|y))?0:o;0!==o&&o!==s.retryLane&&(s.retryLane=o,ce(t,o),af(i,t,o,-1))}ng();i=Ff(Error(n(421)));return mg(t,a,y,i)}if(Rn(o))return a.flags|=128,a.child=t.child,a=og.bind(null,t),Qn(o,a),null;t=s.treeContext;Fe&&(Dt=Bn(o),Qt=a,Ht=!0,Bt=null,Wt=!1,null!==t&&(Lt[Tt++]=Mt,Lt[Tt++]=Ft,Lt[Tt++]=Rt,Mt=t.id,Ft=t.overflow,Rt=a));a=kg(a,i.children);a.flags|=4096;return a}function pg(t,a,u){t.lanes|=a;var i=t.alternate;null!==i&&(i.lanes|=a);Xd(t.return,a,u)}function qg(t,a,u,i,o){var s=t.memoizedState;null===s?t.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:i,tail:u,tailMode:o}:(s.isBackwards=a,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=u,s.tailMode=o)}function rg(t,a,u){var i=a.pendingProps,o=i.revealOrder,s=i.tail;P(t,a,i.children,u);i=nr.current;if(0!==(i&2))i=i&1|2,a.flags|=128;else{if(null!==t&&0!==(t.flags&128))e:for(t=a.child;null!==t;){if(13===t.tag)null!==t.memoizedState&&pg(t,u,a);else if(19===t.tag)pg(t,u,a);else if(null!==t.child){t.child.return=t;t=t.child;continue}if(t===a)break e;for(;null===t.sibling;){if(null===t.return||t.return===a)break e;t=t.return}t.sibling.return=t.return;t=t.sibling}i&=1}v(nr,i);if(0===(a.mode&1))a.memoizedState=null;else switch(o){case\"forwards\":u=a.child;for(o=null;null!==u;)t=u.alternate,null!==t&&null===we(t)&&(o=u),u=u.sibling;u=o;null===u?(o=a.child,a.child=null):(o=u.sibling,u.sibling=null);qg(a,!1,o,u,s);break;case\"backwards\":u=null;o=a.child;for(a.child=null;null!==o;){t=o.alternate;if(null!==t&&null===we(t)){a.child=o;break}t=o.sibling;o.sibling=u;u=o;o=t}qg(a,!0,u,null,s);break;case\"together\":qg(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function cg(t,a){0===(a.mode&1)&&null!==t&&(t.alternate=null,a.alternate=null,a.flags|=2)}function Tf(t,a,u){null!==t&&(a.dependencies=t.dependencies);Kr|=a.lanes;if(0===(u&a.childLanes))return null;if(null!==t&&a.child!==t.child)throw Error(n(153));if(null!==a.child){t=a.child;u=Jd(t,t.pendingProps);a.child=u;for(u.return=a;null!==t.sibling;)t=t.sibling,u=u.sibling=Jd(t,t.pendingProps),u.return=a;u.sibling=null}return a.child}function sg(t,a,u){switch(a.tag){case 3:eg(a);Ad();break;case 5:ue(a);break;case 1:A(a.type)&&qc(a);break;case 4:se(a,a.stateNode.containerInfo);break;case 10:Vd(a,a.type._context,a.memoizedProps.value);break;case 13:var i=a.memoizedState;if(null!==i){if(null!==i.dehydrated)return v(nr,nr.current&1),a.flags|=128,null;if(0!==(u&a.child.childLanes))return ig(t,a,u);v(nr,nr.current&1);t=Tf(t,a,u);return null!==t?t.sibling:null}v(nr,nr.current&1);break;case 19:i=0!==(u&a.childLanes);if(0!==(t.flags&128)){if(i)return rg(t,a,u);a.flags|=128}var o=a.memoizedState;null!==o&&(o.rendering=null,o.tail=null,o.lastEffect=null);v(nr,nr.current);if(i)break;return null;case 22:case 23:return a.lanes=0,Yf(t,a,u)}return Tf(t,a,u)}function tg(t){t.flags|=4}function ug(t,a){if(null!==t&&t.child===a.child)return!0;if(0!==(a.flags&16))return!1;for(t=a.child;null!==t;){if(0!==(t.flags&12854)||0!==(t.subtreeFlags&12854))return!1;t=t.sibling}return!0}var xr,wr,zr,Nr;if(_e)xr=function(t,a){for(var u=a.child;null!==u;){if(5===u.tag||6===u.tag)le(t,u.stateNode);else if(4!==u.tag&&null!==u.child){u.child.return=u;u=u.child;continue}if(u===a)break;for(;null===u.sibling;){if(null===u.return||u.return===a)return;u=u.return}u.sibling.return=u.return;u=u.sibling}},wr=function(){},zr=function(t,a,u,i,o){t=t.memoizedProps;if(t!==i){var s=a.stateNode,y=re(Gt.current);u=de(s,u,t,i,o,y);(a.updateQueue=u)&&tg(a)}},Nr=function(t,a,u,i){u!==i&&tg(a)};else if(Le){xr=function(t,a,u,i){for(var o=a.child;null!==o;){if(5===o.tag){var s=o.stateNode;u&&i&&(s=In(s,o.type,o.memoizedProps,o));le(t,s)}else if(6===o.tag)s=o.stateNode,u&&i&&(s=_n(s,o.memoizedProps,o)),le(t,s);else if(4!==o.tag)if(22===o.tag&&null!==o.memoizedState)s=o.child,null!==s&&(s.return=o),xr(t,o,!0,!0);else if(null!==o.child){o.child.return=o;o=o.child;continue}if(o===a)break;for(;null===o.sibling;){if(null===o.return||o.return===a)return;o=o.return}o.sibling.return=o.return;o=o.sibling}};var zg=function(t,a,u,i){for(var o=a.child;null!==o;){if(5===o.tag){var s=o.stateNode;u&&i&&(s=In(s,o.type,o.memoizedProps,o));Pn(t,s)}else if(6===o.tag)s=o.stateNode,u&&i&&(s=_n(s,o.memoizedProps,o)),Pn(t,s);else if(4!==o.tag)if(22===o.tag&&null!==o.memoizedState)s=o.child,null!==s&&(s.return=o),zg(t,o,!0,!0);else if(null!==o.child){o.child.return=o;o=o.child;continue}if(o===a)break;for(;null===o.sibling;){if(null===o.return||o.return===a)return;o=o.return}o.sibling.return=o.return;o=o.sibling}};wr=function(t,a){var u=a.stateNode;if(!ug(t,a)){t=u.containerInfo;var i=Nn(t);zg(i,a,!1,!1);u.pendingChildren=i;tg(a);En(t,i)}};zr=function(t,a,u,i,o){var s=t.stateNode,y=t.memoizedProps;if((t=ug(t,a))&&y===i)a.stateNode=s;else{var S=a.stateNode,x=re(Gt.current),z=null;y!==i&&(z=de(S,u,y,i,o,x));t&&null===z?a.stateNode=s:(s=zn(s,z,u,y,i,a,t,S),oe(s,u,i,o,x)&&tg(a),a.stateNode=s,t?tg(a):xr(s,a,!1,!1))}};Nr=function(t,a,u,i){u!==i?(t=re(er.current),u=re(Gt.current),a.stateNode=xe(i,t,u,a),tg(a)):a.stateNode=t.stateNode}}else wr=function(){},zr=function(){},Nr=function(){};function Ag(t,a){if(!Ht)switch(t.tailMode){case\"hidden\":a=t.tail;for(var u=null;null!==a;)null!==a.alternate&&(u=a),a=a.sibling;null===u?t.tail=null:u.sibling=null;break;case\"collapsed\":u=t.tail;for(var i=null;null!==u;)null!==u.alternate&&(i=u),u=u.sibling;null===i?a||null===t.tail?t.tail=null:t.tail.sibling=null:i.sibling=null}}function Q(t){var a=null!==t.alternate&&t.alternate.child===t.child,u=0,i=0;if(a)for(var o=t.child;null!==o;)u|=o.lanes|o.childLanes,i|=o.subtreeFlags&14680064,i|=o.flags&14680064,o.return=t,o=o.sibling;else for(o=t.child;null!==o;)u|=o.lanes|o.childLanes,i|=o.subtreeFlags,i|=o.flags,o.return=t,o=o.sibling;t.subtreeFlags|=i;t.childLanes=u;return a}function Bg(t,a,u){var i=a.pendingProps;nd(a);switch(a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Q(a),null;case 1:return A(a.type)&&nc(),Q(a),null;case 3:u=a.stateNode;te();q(at);q(lt);ye();u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null);null!==t&&null!==t.child||(yd(a)?tg(a):null===t||t.memoizedState.isDehydrated&&0===(a.flags&256)||(a.flags|=1024,null!==Bt&&(Cg(Bt),Bt=null)));wr(t,a);Q(a);return null;case 5:ve(a);u=re(er.current);var o=a.type;if(null!==t&&null!=a.stateNode)zr(t,a,o,i,u),t.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!i){if(null===a.stateNode)throw Error(n(166));Q(a);return null}t=re(Gt.current);if(yd(a)){if(!Fe)throw Error(n(175));t=On(a.stateNode,a.type,a.memoizedProps,u,t,a,!Wt);a.updateQueue=t;null!==t&&tg(a)}else{var s=ne(o,i,u,t,a);xr(s,a,!1,!1);a.stateNode=s;oe(s,o,i,u,t)&&tg(a)}null!==a.ref&&(a.flags|=512,a.flags|=2097152)}Q(a);return null;case 6:if(t&&null!=a.stateNode)Nr(t,a,t.memoizedProps,i);else{if(\"string\"!==typeof i&&null===a.stateNode)throw Error(n(166));t=re(er.current);u=re(Gt.current);if(yd(a)){if(!Fe)throw Error(n(176));t=a.stateNode;u=a.memoizedProps;if((i=An(t,u,a,!Wt))&&(o=Qt,null!==o))switch(o.tag){case 3:Kn(o.stateNode.containerInfo,t,u,0!==(o.mode&1));break;case 5:Gn(o.type,o.memoizedProps,o.stateNode,t,u,0!==(o.mode&1))}i&&tg(a)}else a.stateNode=xe(i,t,u,a)}Q(a);return null;case 13:q(nr);i=a.memoizedState;if(null===t||null!==t.memoizedState&&null!==t.memoizedState.dehydrated){if(Ht&&null!==Dt&&0!==(a.mode&1)&&0===(a.flags&128))zd(),Ad(),a.flags|=98560,o=!1;else if(o=yd(a),null!==i&&null!==i.dehydrated){if(null===t){if(!o)throw Error(n(318));if(!Fe)throw Error(n(344));o=a.memoizedState;o=null!==o?o.dehydrated:null;if(!o)throw Error(n(317));qn(o,a)}else Ad(),0===(a.flags&128)&&(a.memoizedState=null),a.flags|=4;Q(a);o=!1}else null!==Bt&&(Cg(Bt),Bt=null),o=!0;if(!o)return a.flags&65536?a:null}if(0!==(a.flags&128))return a.lanes=u,a;u=null!==i;u!==(null!==t&&null!==t.memoizedState)&&u&&(a.child.flags|=8192,0!==(a.mode&1)&&(null===t||0!==(nr.current&1)?0===Yr&&(Yr=3):ng()));null!==a.updateQueue&&(a.flags|=4);Q(a);return null;case 4:return te(),wr(t,a),null===t&&Be(a.stateNode.containerInfo),Q(a),null;case 10:return Wd(a.type._context),Q(a),null;case 17:return A(a.type)&&nc(),Q(a),null;case 19:q(nr);o=a.memoizedState;if(null===o)return Q(a),null;i=0!==(a.flags&128);s=o.rendering;if(null===s)if(i)Ag(o,!1);else{if(0!==Yr||null!==t&&0!==(t.flags&128))for(t=a.child;null!==t;){s=we(t);if(null!==s){a.flags|=128;Ag(o,!1);t=s.updateQueue;null!==t&&(a.updateQueue=t,a.flags|=4);a.subtreeFlags=0;t=u;for(u=a.child;null!==u;)i=u,o=t,i.flags&=14680066,s=i.alternate,null===s?(i.childLanes=0,i.lanes=o,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,o=s.dependencies,i.dependencies=null===o?null:{lanes:o.lanes,firstContext:o.firstContext}),u=u.sibling;v(nr,nr.current&1|2);return a.child}t=t.sibling}null!==o.tail&&vt()>rl&&(a.flags|=128,i=!0,Ag(o,!1),a.lanes=4194304)}else{if(!i)if(t=we(s),null!==t){if(a.flags|=128,i=!0,t=t.updateQueue,null!==t&&(a.updateQueue=t,a.flags|=4),Ag(o,!0),null===o.tail&&\"hidden\"===o.tailMode&&!s.alternate&&!Ht)return Q(a),null}else 2*vt()-o.renderingStartTime>rl&&1073741824!==u&&(a.flags|=128,i=!0,Ag(o,!1),a.lanes=4194304);o.isBackwards?(s.sibling=a.child,a.child=s):(t=o.last,null!==t?t.sibling=s:a.child=s,o.last=s)}if(null!==o.tail)return a=o.tail,o.rendering=a,o.tail=a.sibling,o.renderingStartTime=vt(),a.sibling=null,t=nr.current,v(nr,i?t&1|2:t&1),a;Q(a);return null;case 22:case 23:return Eg(),u=null!==a.memoizedState,null!==t&&null!==t.memoizedState!==u&&(a.flags|=8192),u&&0!==(a.mode&1)?0!==(Vr&1073741824)&&(Q(a),_e&&a.subtreeFlags&6&&(a.flags|=8192)):Q(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function Fg(t,a){nd(a);switch(a.tag){case 1:return A(a.type)&&nc(),t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 3:return te(),q(at),q(lt),ye(),t=a.flags,0!==(t&65536)&&0===(t&128)?(a.flags=t&-65537|128,a):null;case 5:return ve(a),null;case 13:q(nr);t=a.memoizedState;if(null!==t&&null!==t.dehydrated){if(null===a.alternate)throw Error(n(340));Ad()}t=a.flags;return t&65536?(a.flags=t&-65537|128,a):null;case 19:return q(nr),null;case 4:return te(),null;case 10:return Wd(a.type._context),null;case 22:case 23:return Eg(),null;case 24:return null;default:return null}}var Pr=!1,Er=!1,Cr=\"function\"===typeof WeakSet?WeakSet:Set,Ir=null;function Ig(t,a){var u=t.ref;if(null!==u)if(\"function\"===typeof u)try{u(null)}catch(u){U(t,a,u)}else u.current=null}function Jg(t,a,u){try{u()}catch(u){U(t,a,u)}}var _r=!1;function Lg(t,a){G(t.containerInfo);for(Ir=a;null!==Ir;)if(t=Ir,a=t.child,0!==(t.subtreeFlags&1028)&&null!==a)a.return=t,Ir=a;else for(;null!==Ir;){t=Ir;try{var u=t.alternate;if(0!==(t.flags&1024))switch(t.tag){case 0:case 11:case 15:break;case 1:if(null!==u){var i=u.memoizedProps,o=u.memoizedState,s=t.stateNode,y=s.getSnapshotBeforeUpdate(t.elementType===t.type?i:xf(t.type,i),o);s.__reactInternalSnapshotBeforeUpdate=y}break;case 3:_e&&wn(t.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(a){U(t,t.return,a)}a=t.sibling;if(null!==a){a.return=t.return;Ir=a;break}Ir=t.return}u=_r;_r=!1;return u}function Mg(t,a,u){var i=a.updateQueue;i=null!==i?i.lastEffect:null;if(null!==i){var o=i=i.next;do{if((o.tag&t)===t){var s=o.destroy;o.destroy=void 0;void 0!==s&&Jg(a,u,s)}o=o.next}while(o!==i)}}function Ng(t,a){a=a.updateQueue;a=null!==a?a.lastEffect:null;if(null!==a){var u=a=a.next;do{if((u.tag&t)===t){var i=u.create;u.destroy=i()}u=u.next}while(u!==a)}}function Og(t){var a=t.ref;if(null!==a){var u=t.stateNode;switch(t.tag){case 5:t=Z(u);break;default:t=u}\"function\"===typeof a?a(t):a.current=t}}function Pg(t){var a=t.alternate;null!==a&&(t.alternate=null,Pg(a));t.child=null;t.deletions=null;t.sibling=null;5===t.tag&&(a=t.stateNode,null!==a&&qe(a));t.stateNode=null;t.return=null;t.dependencies=null;t.memoizedProps=null;t.memoizedState=null;t.pendingProps=null;t.stateNode=null;t.updateQueue=null}function Qg(t){return 5===t.tag||3===t.tag||4===t.tag}function Rg(t){e:for(;;){for(;null===t.sibling;){if(null===t.return||Qg(t.return))return null;t=t.return}t.sibling.return=t.return;for(t=t.sibling;5!==t.tag&&6!==t.tag&&18!==t.tag;){if(t.flags&2)continue e;if(null===t.child||4===t.tag)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Sg(t,a,u){var i=t.tag;if(5===i||6===i)t=t.stateNode,a?pn(u,t,a):cn(u,t);else if(4!==i&&(t=t.child,null!==t))for(Sg(t,a,u),t=t.sibling;null!==t;)Sg(t,a,u),t=t.sibling}function Tg(t,a,u){var i=t.tag;if(5===i||6===i)t=t.stateNode,a?gn(u,t,a):sn(u,t);else if(4!==i&&(t=t.child,null!==t))for(Tg(t,a,u),t=t.sibling;null!==t;)Tg(t,a,u),t=t.sibling}var Ur=null,Lr=!1;function Vg(t,a,u){for(u=u.child;null!==u;)Wg(t,a,u),u=u.sibling}function Wg(t,a,u){if(wt&&\"function\"===typeof wt.onCommitFiberUnmount)try{wt.onCommitFiberUnmount(xt,u)}catch(t){}switch(u.tag){case 5:Er||Ig(u,a);case 6:if(_e){var i=Ur,o=Lr;Ur=null;Vg(t,a,u);Ur=i;Lr=o;null!==Ur&&(Lr?vn(Ur,u.stateNode):mn(Ur,u.stateNode))}else Vg(t,a,u);break;case 18:_e&&null!==Ur&&(Lr?Yn(Ur,u.stateNode):Zn(Ur,u.stateNode));break;case 4:_e?(i=Ur,o=Lr,Ur=u.stateNode.containerInfo,Lr=!0,Vg(t,a,u),Ur=i,Lr=o):(Le&&(i=u.stateNode.containerInfo,o=Nn(i),Cn(i,o)),Vg(t,a,u));break;case 0:case 11:case 14:case 15:if(!Er&&(i=u.updateQueue,null!==i&&(i=i.lastEffect,null!==i))){o=i=i.next;do{var s=o,y=s.destroy;s=s.tag;void 0!==y&&(0!==(s&2)||0!==(s&4))&&Jg(u,a,y);o=o.next}while(o!==i)}Vg(t,a,u);break;case 1:if(!Er&&(Ig(u,a),i=u.stateNode,\"function\"===typeof i.componentWillUnmount))try{i.props=u.memoizedProps,i.state=u.memoizedState,i.componentWillUnmount()}catch(t){U(u,a,t)}Vg(t,a,u);break;case 21:Vg(t,a,u);break;case 22:u.mode&1?(Er=(i=Er)||null!==u.memoizedState,Vg(t,a,u),Er=i):Vg(t,a,u);break;default:Vg(t,a,u)}}function Xg(t){var a=t.updateQueue;if(null!==a){t.updateQueue=null;var u=t.stateNode;null===u&&(u=t.stateNode=new Cr);a.forEach((function(a){var i=Yg.bind(null,t,a);u.has(a)||(u.add(a),a.then(i,i))}))}}function Zg(t,a){var u=a.deletions;if(null!==u)for(var i=0;i<u.length;i++){var o=u[i];try{var s=t,y=a;if(_e){var S=y;e:for(;null!==S;){switch(S.tag){case 5:Ur=S.stateNode;Lr=!1;break e;case 3:Ur=S.stateNode.containerInfo;Lr=!0;break e;case 4:Ur=S.stateNode.containerInfo;Lr=!0;break e}S=S.return}if(null===Ur)throw Error(n(160));Wg(s,y,o);Ur=null;Lr=!1}else Wg(s,y,o);var x=o.alternate;null!==x&&(x.return=null);o.return=null}catch(t){U(o,a,t)}}if(a.subtreeFlags&12854)for(a=a.child;null!==a;)$g(a,t),a=a.sibling}function $g(t,a){var u=t.alternate,i=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:Zg(a,t);ah(t);if(i&4){try{Mg(3,t,t.return),Ng(3,t)}catch(a){U(t,t.return,a)}try{Mg(5,t,t.return)}catch(a){U(t,t.return,a)}}break;case 1:Zg(a,t);ah(t);i&512&&null!==u&&Ig(u,u.return);break;case 5:Zg(a,t);ah(t);i&512&&null!==u&&Ig(u,u.return);if(_e){if(t.flags&32){var o=t.stateNode;try{yn(o)}catch(a){U(t,t.return,a)}}if(i&4&&(o=t.stateNode,null!=o)){var s=t.memoizedProps;u=null!==u?u.memoizedProps:s;i=t.type;a=t.updateQueue;t.updateQueue=null;if(null!==a)try{hn(o,a,i,u,s,t)}catch(a){U(t,t.return,a)}}}break;case 6:Zg(a,t);ah(t);if(i&4&&_e){if(null===t.stateNode)throw Error(n(162));o=t.stateNode;s=t.memoizedProps;u=null!==u?u.memoizedProps:s;try{fn(o,u,s)}catch(a){U(t,t.return,a)}}break;case 3:Zg(a,t);ah(t);if(i&4){if(_e&&Fe&&null!==u&&u.memoizedState.isDehydrated)try{$n(a.containerInfo)}catch(a){U(t,t.return,a)}if(Le){o=a.containerInfo;s=a.pendingChildren;try{Cn(o,s)}catch(a){U(t,t.return,a)}}}break;case 4:Zg(a,t);ah(t);if(i&4&&Le){s=t.stateNode;o=s.containerInfo;s=s.pendingChildren;try{Cn(o,s)}catch(a){U(t,t.return,a)}}break;case 13:Zg(a,t);ah(t);o=t.child;o.flags&8192&&(s=null!==o.memoizedState,o.stateNode.isHidden=s,!s||null!==o.alternate&&null!==o.alternate.memoizedState||(tl=vt()));i&4&&Xg(t);break;case 22:var y=null!==u&&null!==u.memoizedState;t.mode&1?(Er=(u=Er)||y,Zg(a,t),Er=u):Zg(a,t);ah(t);if(i&8192){u=null!==t.memoizedState;if((t.stateNode.isHidden=u)&&!y&&0!==(t.mode&1))for(Ir=t,i=t.child;null!==i;){for(a=Ir=i;null!==Ir;){y=Ir;var S=y.child;switch(y.tag){case 0:case 11:case 14:case 15:Mg(4,y,y.return);break;case 1:Ig(y,y.return);var x=y.stateNode;if(\"function\"===typeof x.componentWillUnmount){var z=y,N=y.return;try{var E=z;x.props=E.memoizedProps;x.state=E.memoizedState;x.componentWillUnmount()}catch(t){U(z,N,t)}}break;case 5:Ig(y,y.return);break;case 22:if(null!==y.memoizedState){ch(a);continue}}null!==S?(S.return=y,Ir=S):ch(a)}i=i.sibling}if(_e)e:if(i=null,_e)for(a=t;;){if(5===a.tag){if(null===i){i=a;try{o=a.stateNode,u?bn(o):kn(a.stateNode,a.memoizedProps)}catch(a){U(t,t.return,a)}}}else if(6===a.tag){if(null===i)try{s=a.stateNode,u?Sn(s):xn(s,a.memoizedProps)}catch(a){U(t,t.return,a)}}else if((22!==a.tag&&23!==a.tag||null===a.memoizedState||a===t)&&null!==a.child){a.child.return=a;a=a.child;continue}if(a===t)break e;for(;null===a.sibling;){if(null===a.return||a.return===t)break e;i===a&&(i=null);a=a.return}i===a&&(i=null);a.sibling.return=a.return;a=a.sibling}}break;case 19:Zg(a,t);ah(t);i&4&&Xg(t);break;case 21:break;default:Zg(a,t),ah(t)}}function ah(t){var a=t.flags;if(a&2){try{if(_e){e:{for(var u=t.return;null!==u;){if(Qg(u)){var i=u;break e}u=u.return}throw Error(n(160))}switch(i.tag){case 5:var o=i.stateNode;i.flags&32&&(yn(o),i.flags&=-33);var s=Rg(t);Tg(t,s,o);break;case 3:case 4:var y=i.stateNode.containerInfo,S=Rg(t);Sg(t,S,y);break;default:throw Error(n(161))}}}catch(a){U(t,t.return,a)}t.flags&=-3}a&4096&&(t.flags&=-4097)}function dh(t,a,u){Ir=t;eh(t,a,u)}function eh(t,a,u){for(var i=0!==(t.mode&1);null!==Ir;){var o=Ir,s=o.child;if(22===o.tag&&i){var y=null!==o.memoizedState||Pr;if(!y){var S=o.alternate,x=null!==S&&null!==S.memoizedState||Er;S=Pr;var z=Er;Pr=y;if((Er=x)&&!z)for(Ir=o;null!==Ir;)y=Ir,x=y.child,22===y.tag&&null!==y.memoizedState?fh(o):null!==x?(x.return=y,Ir=x):fh(o);for(;null!==s;)Ir=s,eh(s,a,u),s=s.sibling;Ir=o;Pr=S;Er=z}gh(t,a,u)}else 0!==(o.subtreeFlags&8772)&&null!==s?(s.return=o,Ir=s):gh(t,a,u)}}function gh(t){for(;null!==Ir;){var a=Ir;if(0!==(a.flags&8772)){var u=a.alternate;try{if(0!==(a.flags&8772))switch(a.tag){case 0:case 11:case 15:Er||Ng(5,a);break;case 1:var i=a.stateNode;if(a.flags&4&&!Er)if(null===u)i.componentDidMount();else{var o=a.elementType===a.type?u.memoizedProps:xf(a.type,u.memoizedProps);i.componentDidUpdate(o,u.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var s=a.updateQueue;null!==s&&me(a,s,i);break;case 3:var y=a.updateQueue;if(null!==y){u=null;if(null!==a.child)switch(a.child.tag){case 5:u=Z(a.child.stateNode);break;case 1:u=a.child.stateNode}me(a,y,u)}break;case 5:var S=a.stateNode;null===u&&a.flags&4&&dn(S,a.type,a.memoizedProps,a);break;case 6:break;case 4:break;case 12:break;case 13:if(Fe&&null===a.memoizedState){var x=a.alternate;if(null!==x){var z=x.memoizedState;if(null!==z){var N=z.dehydrated;null!==N&&Vn(N)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Er||a.flags&512&&Og(a)}catch(t){U(a,a.return,t)}}if(a===t){Ir=null;break}u=a.sibling;if(null!==u){u.return=a.return;Ir=u;break}Ir=a.return}}function ch(t){for(;null!==Ir;){var a=Ir;if(a===t){Ir=null;break}var u=a.sibling;if(null!==u){u.return=a.return;Ir=u;break}Ir=a.return}}function fh(t){for(;null!==Ir;){var a=Ir;try{switch(a.tag){case 0:case 11:case 15:var u=a.return;try{Ng(4,a)}catch(t){U(a,u,t)}break;case 1:var i=a.stateNode;if(\"function\"===typeof i.componentDidMount){var o=a.return;try{i.componentDidMount()}catch(t){U(a,o,t)}}var s=a.return;try{Og(a)}catch(t){U(a,s,t)}break;case 5:var y=a.return;try{Og(a)}catch(t){U(a,y,t)}}}catch(t){U(a,a.return,t)}if(a===t){Ir=null;break}var S=a.sibling;if(null!==S){S.return=a.return;Ir=S;break}Ir=a.return}}var Tr=0,Rr=1,Mr=2,Fr=3,Qr=4;if(\"function\"===typeof Symbol&&Symbol.for){var Dr=Symbol.for;Tr=Dr(\"selector.component\");Rr=Dr(\"selector.has_pseudo_class\");Mr=Dr(\"selector.role\");Fr=Dr(\"selector.test_id\");Qr=Dr(\"selector.text\")}function nh(t){var a=De(t);if(null!=a){if(\"string\"!==typeof a.memoizedProps[\"data-testname\"])throw Error(n(364));return a}t=nn(t);if(null===t)throw Error(n(362));return t.stateNode.current}function oh(t,a){switch(a.$$typeof){case Tr:if(t.type===a.value)return!0;break;case Rr:e:{a=a.value;t=[t,0];for(var u=0;u<t.length;){var i=t[u++],o=t[u++],s=a[o];if(5!==i.tag||!ln(i)){for(;null!=s&&oh(i,s);)o++,s=a[o];if(o===a.length){a=!0;break e}for(i=i.child;null!==i;)t.push(i,o),i=i.sibling}}a=!1}return a;case Mr:if(5===t.tag&&an(t.stateNode,a.value))return!0;break;case Qr:if((5===t.tag||6===t.tag)&&(t=rn(t),null!==t&&0<=t.indexOf(a.value)))return!0;break;case Fr:if(5===t.tag&&(t=t.memoizedProps[\"data-testname\"],\"string\"===typeof t&&t.toLowerCase()===a.value.toLowerCase()))return!0;break;default:throw Error(n(365))}return!1}function ph(t){switch(t.$$typeof){case Tr:return\"<\"+(ua(t.value)||\"Unknown\")+\">\";case Rr:return\":has(\"+(ph(t)||\"\")+\")\";case Mr:return'[role=\"'+t.value+'\"]';case Qr:return'\"'+t.value+'\"';case Fr:return'[data-testname=\"'+t.value+'\"]';default:throw Error(n(365))}}function qh(t,a){var u=[];t=[t,0];for(var i=0;i<t.length;){var o=t[i++],s=t[i++],y=a[s];if(5!==o.tag||!ln(o)){for(;null!=y&&oh(o,y);)s++,y=a[s];if(s===a.length)u.push(o);else for(o=o.child;null!==o;)t.push(o,s),o=o.sibling}}return u}function rh(t,a){if(!en)throw Error(n(363));t=nh(t);t=qh(t,a);a=[];t=Array.from(t);for(var u=0;u<t.length;){var i=t[u++];if(5===i.tag)ln(i)||a.push(i.stateNode);else for(i=i.child;null!==i;)t.push(i),i=i.sibling}return a}var Hr=Math.ceil,Wr=x.ReactCurrentDispatcher,Br=x.ReactCurrentOwner,Or=x.ReactCurrentBatchConfig,Ar=0,qr=null,jr=null,$r=0,Vr=0,Zr=ic(0),Yr=0,Jr=null,Kr=0,Gr=0,Xr=0,el=null,nl=null,tl=0,rl=Infinity,ll=null;function Bh(){rl=vt()+500}var al=!1,ul=null,il=null,ol=!1,sl=null,cl=0,fl=0,dl=null,hl=-1,gl=0;function O(){return 0!==(Ar&6)?vt():-1!==hl?hl:hl=vt()}function tf(t){if(0===(t.mode&1))return 1;if(0!==(Ar&2)&&0!==$r)return $r&-$r;if(null!==Ot.transition)return 0===gl&&(gl=Dc()),gl;t=dt;return 0!==t?t:Ae()}function af(t,a,u,i){if(50<fl)throw fl=0,dl=null,Error(n(185));Fc(t,u,i);0!==(Ar&2)&&t===qr||(t===qr&&(0===(Ar&2)&&(Gr|=u),4===Yr&&Jh(t,$r)),Kh(t,i),1===u&&0===Ar&&0===(a.mode&1)&&(Bh(),Pt&&ad()))}function Kh(t,a){var u=t.callbackNode;Bc(t,a);var i=zc(t,t===qr?$r:0);if(0===i)null!==u&&gt(u),t.callbackNode=null,t.callbackPriority=0;else if(a=i&-i,t.callbackPriority!==a){null!=u&&gt(u);if(1===a)0===t.tag?$c(Lh.bind(null,t)):Zc(Lh.bind(null,t)),Je?Ke((function(){0===(Ar&6)&&ad()})):ht(yt,ad),u=null;else{switch(Ic(i)){case 1:u=yt;break;case 4:u=bt;break;case 16:u=St;break;case 536870912:u=kt;break;default:u=St}u=Mh(u,Nh.bind(null,t))}t.callbackPriority=a;t.callbackNode=u}}function Nh(t,a){hl=-1;gl=0;if(0!==(Ar&6))throw Error(n(327));var u=t.callbackNode;if(Oh()&&t.callbackNode!==u)return null;var i=zc(t,t===qr?$r:0);if(0===i)return null;if(0!==(i&30)||0!==(i&t.expiredLanes)||a)a=Ph(t,i);else{a=i;var o=Ar;Ar|=2;var s=Qh();qr===t&&$r===a||(ll=null,Bh(),Rh(t,a));do{try{Sh();break}catch(a){Th(t,a)}}while(1);Ud();Wr.current=s;Ar=o;null!==jr?a=0:(qr=null,$r=0,a=Yr)}if(0!==a){2===a&&(o=Cc(t),0!==o&&(i=o,a=Uh(t,o)));if(1===a)throw u=Jr,Rh(t,0),Jh(t,i),Kh(t,vt()),u;if(6===a)Jh(t,i);else{o=t.current.alternate;if(0===(i&30)&&!Vh(o)&&(a=Ph(t,i),2===a&&(s=Cc(t),0!==s&&(i=s,a=Uh(t,s))),1===a))throw u=Jr,Rh(t,0),Jh(t,i),Kh(t,vt()),u;t.finishedWork=o;t.finishedLanes=i;switch(a){case 0:case 1:throw Error(n(345));case 2:Wh(t,nl,ll);break;case 3:Jh(t,i);if((i&130023424)===i&&(a=tl+500-vt(),10<a)){if(0!==zc(t,0))break;o=t.suspendedLanes;if((o&i)!==i){O();t.pingedLanes|=t.suspendedLanes&o;break}t.timeoutHandle=ze(Wh.bind(null,t,nl,ll),a);break}Wh(t,nl,ll);break;case 4:Jh(t,i);if((i&4194240)===i)break;a=t.eventTimes;for(o=-1;0<i;){var y=31-it(i);s=1<<y;y=a[y];y>o&&(o=y);i&=~s}i=o;i=vt()-i;i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Hr(i/1960))-i;if(10<i){t.timeoutHandle=ze(Wh.bind(null,t,nl,ll),i);break}Wh(t,nl,ll);break;case 5:Wh(t,nl,ll);break;default:throw Error(n(329))}}}Kh(t,vt());return t.callbackNode===u?Nh.bind(null,t):null}function Uh(t,a){var u=el;t.current.memoizedState.isDehydrated&&(Rh(t,a).flags|=256);t=Ph(t,a);2!==t&&(a=nl,nl=u,null!==a&&Cg(a));return t}function Cg(t){null===nl?nl=t:nl.push.apply(nl,t)}function Vh(t){for(var a=t;;){if(a.flags&16384){var u=a.updateQueue;if(null!==u&&(u=u.stores,null!==u))for(var i=0;i<u.length;i++){var o=u[i],s=o.getSnapshot;o=o.value;try{if(!zt(s(),o))return!1}catch(t){return!1}}}u=a.child;if(a.subtreeFlags&16384&&null!==u)u.return=a,a=u;else{if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return!0;a=a.return}a.sibling.return=a.return;a=a.sibling}}return!0}function Jh(t,a){a&=~Xr;a&=~Gr;t.suspendedLanes|=a;t.pingedLanes&=~a;for(t=t.expirationTimes;0<a;){var u=31-it(a),i=1<<u;t[u]=-1;a&=~i}}function Lh(t){if(0!==(Ar&6))throw Error(n(327));Oh();var a=zc(t,0);if(0===(a&1))return Kh(t,vt()),null;var u=Ph(t,a);if(0!==t.tag&&2===u){var i=Cc(t);0!==i&&(a=i,u=Uh(t,i))}if(1===u)throw u=Jr,Rh(t,0),Jh(t,a),Kh(t,vt()),u;if(6===u)throw Error(n(345));t.finishedWork=t.current.alternate;t.finishedLanes=a;Wh(t,nl,ll);Kh(t,vt());return null}function Xh(t){null!==sl&&0===sl.tag&&0===(Ar&6)&&Oh();var a=Ar;Ar|=1;var u=Or.transition,i=dt;try{if(Or.transition=null,dt=1,t)return t()}finally{dt=i,Or.transition=u,Ar=a,0===(Ar&6)&&ad()}}function Eg(){Vr=Zr.current;q(Zr)}function Rh(t,a){t.finishedWork=null;t.finishedLanes=0;var u=t.timeoutHandle;u!==Ce&&(t.timeoutHandle=Ce,Ee(u));if(null!==jr)for(u=jr.return;null!==u;){var i=u;nd(i);switch(i.tag){case 1:i=i.type.childContextTypes;null!==i&&void 0!==i&&nc();break;case 3:te();q(at);q(lt);ye();break;case 5:ve(i);break;case 4:te();break;case 13:q(nr);break;case 19:q(nr);break;case 10:Wd(i.type._context);break;case 22:case 23:Eg()}u=u.return}qr=t;jr=t=Jd(t.current,null);$r=Vr=a;Yr=0;Jr=null;Xr=Gr=Kr=0;nl=el=null;if(null!==Yt){for(a=0;a<Yt.length;a++)if(u=Yt[a],i=u.interleaved,null!==i){u.interleaved=null;var o=i.next,s=u.pending;if(null!==s){var y=s.next;s.next=o;i.next=y}u.pending=i}Yt=null}return t}function Th(t,a){do{var u=jr;try{Ud();rr.current=hr;if(sr){for(var i=ur.memoizedState;null!==i;){var o=i.queue;null!==o&&(o.pending=null);i=i.next}sr=!1}ar=0;or=ir=ur=null;cr=!1;fr=0;Br.current=null;if(null===u||null===u.return){Yr=1;Jr=a;jr=null;break}e:{var s=t,y=u.return,S=u,x=a;a=$r;S.flags|=32768;if(null!==x&&\"object\"===typeof x&&\"function\"===typeof x.then){var z=x,N=S,E=N.tag;if(0===(N.mode&1)&&(0===E||11===E||15===E)){var C=N.alternate;C?(N.updateQueue=C.updateQueue,N.memoizedState=C.memoizedState,N.lanes=C.lanes):(N.updateQueue=null,N.memoizedState=null)}var I=Pf(y);if(null!==I){I.flags&=-257;Qf(I,y,S,s,a);I.mode&1&&Nf(s,z,a);a=I;x=z;var _=a.updateQueue;if(null===_){var L=new Set;L.add(x);a.updateQueue=L}else _.add(x);break e}if(0===(a&1)){Nf(s,z,a);ng();break e}x=Error(n(426))}else if(Ht&&S.mode&1){var T=Pf(y);if(null!==T){0===(T.flags&65536)&&(T.flags|=256);Qf(T,y,S,s,a);Bd(Ef(x,S));break e}}s=x=Ef(x,S);4!==Yr&&(Yr=2);null===el?el=[s]:el.push(s);s=y;do{switch(s.tag){case 3:s.flags|=65536;a&=-a;s.lanes|=a;var R=If(s,x,a);je(s,R);break e;case 1:S=x;var F=s.type,D=s.stateNode;if(0===(s.flags&128)&&(\"function\"===typeof F.getDerivedStateFromError||null!==D&&\"function\"===typeof D.componentDidCatch&&(null===il||!il.has(D)))){s.flags|=65536;a&=-a;s.lanes|=a;var H=Lf(s,S,a);je(s,H);break e}}s=s.return}while(null!==s)}Yh(u)}catch(t){a=t;jr===u&&null!==u&&(jr=u=u.return);continue}break}while(1)}function Qh(){var t=Wr.current;Wr.current=hr;return null===t?hr:t}function ng(){0!==Yr&&3!==Yr&&2!==Yr||(Yr=4);null===qr||0===(Kr&268435455)&&0===(Gr&268435455)||Jh(qr,$r)}function Ph(t,a){var u=Ar;Ar|=2;var i=Qh();qr===t&&$r===a||(ll=null,Rh(t,a));do{try{Zh();break}catch(a){Th(t,a)}}while(1);Ud();Ar=u;Wr.current=i;if(null!==jr)throw Error(n(261));qr=null;$r=0;return Yr}function Zh(){for(;null!==jr;)$h(jr)}function Sh(){for(;null!==jr&&!pt();)$h(jr)}function $h(t){var a=pl(t.alternate,t,Vr);t.memoizedProps=t.pendingProps;null===a?Yh(t):jr=a;Br.current=null}function Yh(t){var a=t;do{var u=a.alternate;t=a.return;if(0===(a.flags&32768)){if(u=Bg(u,a,Vr),null!==u){jr=u;return}}else{u=Fg(u,a);if(null!==u){u.flags&=32767;jr=u;return}if(null===t){Yr=6;jr=null;return}t.flags|=32768,t.subtreeFlags=0,t.deletions=null}a=a.sibling;if(null!==a){jr=a;return}jr=a=t}while(null!==a);0===Yr&&(Yr=5)}function Wh(t,a,u){var i=dt,o=Or.transition;try{Or.transition=null,dt=1,bi(t,a,u,i)}finally{Or.transition=o,dt=i}return null}function bi(t,a,u,i){do{Oh()}while(null!==sl);if(0!==(Ar&6))throw Error(n(327));u=t.finishedWork;var o=t.finishedLanes;if(null===u)return null;t.finishedWork=null;t.finishedLanes=0;if(u===t.current)throw Error(n(177));t.callbackNode=null;t.callbackPriority=0;var s=u.lanes|u.childLanes;Gc(t,s);t===qr&&(jr=qr=null,$r=0);0===(u.subtreeFlags&2064)&&0===(u.flags&2064)||ol||(ol=!0,Mh(St,(function(){Oh();return null})));s=0!==(u.flags&15990);if(0!==(u.subtreeFlags&15990)||s){s=Or.transition;Or.transition=null;var y=dt;dt=1;var S=Ar;Ar|=4;Br.current=null;Lg(t,u);$g(u,t);X(t.containerInfo);t.current=u;dh(u,t,o);mt();Ar=S;dt=y;Or.transition=s}else t.current=u;ol&&(ol=!1,sl=t,cl=o);s=t.pendingLanes;0===s&&(il=null);Tc(u.stateNode,i);Kh(t,vt());if(null!==a)for(i=t.onRecoverableError,u=0;u<a.length;u++)o=a[u],i(o.value,{componentStack:o.stack,digest:o.digest});if(al)throw al=!1,t=ul,ul=null,t;0!==(cl&1)&&0!==t.tag&&Oh();s=t.pendingLanes;0!==(s&1)?t===dl?fl++:(fl=0,dl=t):fl=0;ad();return null}function Oh(){if(null!==sl){var t=Ic(cl),a=Or.transition,u=dt;try{Or.transition=null;dt=16>t?16:t;if(null===sl)var i=!1;else{t=sl;sl=null;cl=0;if(0!==(Ar&6))throw Error(n(331));var o=Ar;Ar|=4;for(Ir=t.current;null!==Ir;){var s=Ir,y=s.child;if(0!==(Ir.flags&16)){var S=s.deletions;if(null!==S){for(var x=0;x<S.length;x++){var z=S[x];for(Ir=z;null!==Ir;){var N=Ir;switch(N.tag){case 0:case 11:case 15:Mg(8,N,s)}var E=N.child;if(null!==E)E.return=N,Ir=E;else for(;null!==Ir;){N=Ir;var C=N.sibling,I=N.return;Pg(N);if(N===z){Ir=null;break}if(null!==C){C.return=I;Ir=C;break}Ir=I}}}var _=s.alternate;if(null!==_){var L=_.child;if(null!==L){_.child=null;do{var T=L.sibling;L.sibling=null;L=T}while(null!==L)}}Ir=s}}if(0!==(s.subtreeFlags&2064)&&null!==y)y.return=s,Ir=y;else e:for(;null!==Ir;){s=Ir;if(0!==(s.flags&2048))switch(s.tag){case 0:case 11:case 15:Mg(9,s,s.return)}var R=s.sibling;if(null!==R){R.return=s.return;Ir=R;break e}Ir=s.return}}var F=t.current;for(Ir=F;null!==Ir;){y=Ir;var D=y.child;if(0!==(y.subtreeFlags&2064)&&null!==D)D.return=y,Ir=D;else e:for(y=F;null!==Ir;){S=Ir;if(0!==(S.flags&2048))try{switch(S.tag){case 0:case 11:case 15:Ng(9,S)}}catch(t){U(S,S.return,t)}if(S===y){Ir=null;break e}var H=S.sibling;if(null!==H){H.return=S.return;Ir=H;break e}Ir=S.return}}Ar=o;ad();if(wt&&\"function\"===typeof wt.onPostCommitFiberRoot)try{wt.onPostCommitFiberRoot(xt,t)}catch(t){}i=!0}return i}finally{dt=u,Or.transition=a}}return!1}function ci(t,a,u){a=Ef(u,a);a=If(t,a,1);t=he(t,a,1);a=O();null!==t&&(Fc(t,1,a),Kh(t,a))}function U(t,a,u){if(3===t.tag)ci(t,t,u);else for(;null!==a;){if(3===a.tag){ci(a,t,u);break}if(1===a.tag){var i=a.stateNode;if(\"function\"===typeof a.type.getDerivedStateFromError||\"function\"===typeof i.componentDidCatch&&(null===il||!il.has(i))){t=Ef(u,t);t=Lf(a,t,1);a=he(a,t,1);t=O();null!==a&&(Fc(a,1,t),Kh(a,t));break}}a=a.return}}function Of(t,a,u){var i=t.pingCache;null!==i&&i.delete(a);a=O();t.pingedLanes|=t.suspendedLanes&u;qr===t&&($r&u)===u&&(4===Yr||3===Yr&&($r&130023424)===$r&&500>vt()-tl?Rh(t,0):Xr|=u);Kh(t,a)}function di(t,a){0===a&&(0===(t.mode&1)?a=1:(a=ft,ft<<=1,0===(ft&130023424)&&(ft=4194304)));var u=O();t=ce(t,a);null!==t&&(Fc(t,a,u),Kh(t,u))}function og(t){var a=t.memoizedState,u=0;null!==a&&(u=a.retryLane);di(t,u)}function Yg(t,a){var u=0;switch(t.tag){case 13:var i=t.stateNode;var o=t.memoizedState;null!==o&&(u=o.retryLane);break;case 19:i=t.stateNode;break;default:throw Error(n(314))}null!==i&&i.delete(a);di(t,u)}var pl;pl=function(t,a,u){if(null!==t)if(t.memoizedProps!==a.pendingProps||at.current)Sr=!0;else{if(0===(t.lanes&u)&&0===(a.flags&128))return Sr=!1,sg(t,a,u);Sr=0!==(t.flags&131072)}else Sr=!1,Ht&&0!==(a.flags&1048576)&&ld(a,Ut,a.index);a.lanes=0;switch(a.tag){case 2:var i=a.type;cg(t,a);t=a.pendingProps;var o=mc(a,lt.current);Yd(a,u);o=He(null,a,i,t,o,u);var s=Me();a.flags|=1;\"object\"===typeof o&&null!==o&&\"function\"===typeof o.render&&void 0===o.$$typeof?(a.tag=1,a.memoizedState=null,a.updateQueue=null,A(i)?(s=!0,qc(a)):s=!1,a.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ee(a),o.updater=vr,a.stateNode=o,o._reactInternals=a,Df(a,i,t,u),a=dg(null,a,i,!0,s,u)):(a.tag=0,Ht&&s&&md(a),P(null,a,o,u),a=a.child);return a;case 16:i=a.elementType;e:{cg(t,a);t=a.pendingProps;o=i._init;i=o(i._payload);a.type=i;o=a.tag=ei(i);t=xf(i,t);switch(o){case 0:a=Xf(null,a,i,t,u);break e;case 1:a=bg(null,a,i,t,u);break e;case 11:a=Sf(null,a,i,t,u);break e;case 14:a=Uf(null,a,i,xf(i.type,t),u);break e}throw Error(n(306,i,\"\"))}return a;case 0:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),Xf(t,a,i,o,u);case 1:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),bg(t,a,i,o,u);case 3:e:{eg(a);if(null===t)throw Error(n(387));i=a.pendingProps;s=a.memoizedState;o=s.element;fe(t,a);ke(a,i,null,u);var y=a.memoizedState;i=y.element;if(Fe&&s.isDehydrated){if(s={element:i,isDehydrated:!1,cache:y.cache,pendingSuspenseBoundaries:y.pendingSuspenseBoundaries,transitions:y.transitions},a.updateQueue.baseState=s,a.memoizedState=s,a.flags&256){o=Ef(Error(n(423)),a);a=fg(t,a,i,u,o);break e}if(i!==o){o=Ef(Error(n(424)),a);a=fg(t,a,i,u,o);break e}for(Fe&&(Dt=Wn(a.stateNode.containerInfo),Qt=a,Ht=!0,Bt=null,Wt=!1),u=qt(a,null,i,u),a.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling}else{Ad();if(i===o){a=Tf(t,a,u);break e}P(t,a,i,u)}a=a.child}return a;case 5:return ue(a),null===t&&wd(a),i=a.type,o=a.pendingProps,s=null!==t?t.memoizedProps:null,y=o.children,pe(i,o)?y=null:null!==s&&pe(i,s)&&(a.flags|=32),ag(t,a),P(t,a,y,u),a.child;case 6:return null===t&&wd(a),null;case 13:return ig(t,a,u);case 4:return se(a,a.stateNode.containerInfo),i=a.pendingProps,null===t?a.child=At(a,null,i,u):P(t,a,i,u),a.child;case 11:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),Sf(t,a,i,o,u);case 7:return P(t,a,a.pendingProps,u),a.child;case 8:return P(t,a,a.pendingProps.children,u),a.child;case 12:return P(t,a,a.pendingProps.children,u),a.child;case 10:e:{i=a.type._context;o=a.pendingProps;s=a.memoizedProps;y=o.value;Vd(a,i,y);if(null!==s)if(zt(s.value,y)){if(s.children===o.children&&!at.current){a=Tf(t,a,u);break e}}else for(s=a.child,null!==s&&(s.return=a);null!==s;){var S=s.dependencies;if(null!==S){y=s.child;for(var x=S.firstContext;null!==x;){if(x.context===i){if(1===s.tag){x=ge(-1,u&-u);x.tag=2;var z=s.updateQueue;if(null!==z){z=z.shared;var N=z.pending;null===N?x.next=x:(x.next=N.next,N.next=x);z.pending=x}}s.lanes|=u;x=s.alternate;null!==x&&(x.lanes|=u);Xd(s.return,u,a);S.lanes|=u;break}x=x.next}}else if(10===s.tag)y=s.type===a.type?null:s.child;else if(18===s.tag){y=s.return;if(null===y)throw Error(n(341));y.lanes|=u;S=y.alternate;null!==S&&(S.lanes|=u);Xd(y,u,a);y=s.sibling}else y=s.child;if(null!==y)y.return=s;else for(y=s;null!==y;){if(y===a){y=null;break}s=y.sibling;if(null!==s){s.return=y.return;y=s;break}y=y.return}s=y}P(t,a,o.children,u);a=a.child}return a;case 9:return o=a.type,i=a.pendingProps.children,Yd(a,u),o=Zd(o),i=i(o),a.flags|=1,P(t,a,i,u),a.child;case 14:return i=a.type,o=xf(i,a.pendingProps),o=xf(i.type,o),Uf(t,a,i,o,u);case 15:return Wf(t,a,a.type,a.pendingProps,u);case 17:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),cg(t,a),a.tag=1,A(i)?(t=!0,qc(a)):t=!1,Yd(a,u),Bf(a,i,o),Df(a,i,o,u),dg(null,a,i,!0,t,u);case 19:return rg(t,a,u);case 22:return Yf(t,a,u)}throw Error(n(156,a.tag))};function Mh(t,a){return ht(t,a)}function fi(t,a,u,i){(this||o).tag=t;(this||o).key=u;(this||o).sibling=(this||o).child=(this||o).return=(this||o).stateNode=(this||o).type=(this||o).elementType=null;(this||o).index=0;(this||o).ref=null;(this||o).pendingProps=a;(this||o).dependencies=(this||o).memoizedState=(this||o).updateQueue=(this||o).memoizedProps=null;(this||o).mode=i;(this||o).subtreeFlags=(this||o).flags=0;(this||o).deletions=null;(this||o).childLanes=(this||o).lanes=0;(this||o).alternate=null}function td(t,a,u,i){return new fi(t,a,u,i)}function Vf(t){t=t.prototype;return!(!t||!t.isReactComponent)}function ei(t){if(\"function\"===typeof t)return Vf(t)?1:0;if(void 0!==t&&null!==t){t=t.$$typeof;if(t===T)return 11;if(t===D)return 14}return 2}function Jd(t,a){var u=t.alternate;null===u?(u=td(t.tag,a,t.key,t.mode),u.elementType=t.elementType,u.type=t.type,u.stateNode=t.stateNode,u.alternate=t,t.alternate=u):(u.pendingProps=a,u.type=t.type,u.flags=0,u.subtreeFlags=0,u.deletions=null);u.flags=t.flags&14680064;u.childLanes=t.childLanes;u.lanes=t.lanes;u.child=t.child;u.memoizedProps=t.memoizedProps;u.memoizedState=t.memoizedState;u.updateQueue=t.updateQueue;a=t.dependencies;u.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext};u.sibling=t.sibling;u.index=t.index;u.ref=t.ref;return u}function Ld(t,a,u,i,o,s){var y=2;i=t;if(\"function\"===typeof t)Vf(t)&&(y=1);else if(\"string\"===typeof t)y=5;else e:switch(t){case E:return Nd(u.children,o,s,a);case C:y=8;o|=8;break;case I:return t=td(12,u,a,o|2),t.elementType=I,t.lanes=s,t;case R:return t=td(13,u,a,o),t.elementType=R,t.lanes=s,t;case F:return t=td(19,u,a,o),t.elementType=F,t.lanes=s,t;case W:return jg(u,o,s,a);default:if(\"object\"===typeof t&&null!==t)switch(t.$$typeof){case _:y=10;break e;case L:y=9;break e;case T:y=11;break e;case D:y=14;break e;case H:y=16;i=null;break e}throw Error(n(130,null==t?t:typeof t,\"\"))}a=td(y,u,a,o);a.elementType=t;a.type=i;a.lanes=s;return a}function Nd(t,a,u,i){t=td(7,t,i,a);t.lanes=u;return t}function jg(t,a,u,i){t=td(22,t,i,a);t.elementType=W;t.lanes=u;t.stateNode={isHidden:!1};return t}function Kd(t,a,u){t=td(6,t,null,a);t.lanes=u;return t}function Md(t,a,u){a=td(4,null!==t.children?t.children:[],t.key,a);a.lanes=u;a.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation};return a}function gi(t,a,u,i,s){(this||o).tag=a;(this||o).containerInfo=t;(this||o).finishedWork=(this||o).pingCache=(this||o).current=(this||o).pendingChildren=null;(this||o).timeoutHandle=Ce;(this||o).callbackNode=(this||o).pendingContext=(this||o).context=null;(this||o).callbackPriority=0;(this||o).eventTimes=Ec(0);(this||o).expirationTimes=Ec(-1);(this||o).entangledLanes=(this||o).finishedLanes=(this||o).mutableReadLanes=(this||o).expiredLanes=(this||o).pingedLanes=(this||o).suspendedLanes=(this||o).pendingLanes=0;(this||o).entanglements=Ec(0);(this||o).identifierPrefix=i;(this||o).onRecoverableError=s;Fe&&((this||o).mutableSourceEagerHydrationData=null)}function hi(t,a,u,i,o,s,y,S,x){t=new gi(t,a,u,S,x);1===a?(a=1,!0===s&&(a|=8)):a=0;s=td(3,null,null,a);t.current=s;s.stateNode=t;s.memoizedState={element:i,isDehydrated:u,cache:null,transitions:null,pendingSuspenseBoundaries:null};ee(s);return t}function ii(t){if(!t)return rt;t=t._reactInternals;e:{if(wa(t)!==t||1!==t.tag)throw Error(n(170));var a=t;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(A(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(null!==a);throw Error(n(171))}if(1===t.tag){var u=t.type;if(A(u))return pc(t,u,a)}return a}function ji(t){var a=t._reactInternals;if(void 0===a){if(\"function\"===typeof t.render)throw Error(n(188));t=Object.keys(t).join(\",\");throw Error(n(268,t))}t=Aa(a);return null===t?null:t.stateNode}function ki(t,a){t=t.memoizedState;if(null!==t&&null!==t.dehydrated){var u=t.retryLane;t.retryLane=0!==u&&u<a?u:a}}function li(t,a){ki(t,a);(t=t.alternate)&&ki(t,a)}function mi(t){t=Aa(t);return null===t?null:t.stateNode}function ni(){return null}a.attemptContinuousHydration=function(t){if(13===t.tag){var a=ce(t,134217728);if(null!==a){var u=O();af(a,t,134217728,u)}li(t,134217728)}};a.attemptDiscreteHydration=function(t){if(13===t.tag){var a=ce(t,1);if(null!==a){var u=O();af(a,t,1,u)}li(t,1)}};a.attemptHydrationAtCurrentPriority=function(t){if(13===t.tag){var a=tf(t),u=ce(t,a);if(null!==u){var i=O();af(u,t,a,i)}li(t,a)}};a.attemptSynchronousHydration=function(t){switch(t.tag){case 3:var a=t.stateNode;if(a.current.memoizedState.isDehydrated){var u=yc(a.pendingLanes);0!==u&&(Hc(a,u|1),Kh(a,vt()),0===(Ar&6)&&(Bh(),ad()))}break;case 13:Xh((function(){var a=ce(t,1);if(null!==a){var u=O();af(a,t,1,u)}})),li(t,1)}};a.batchedUpdates=function(t,a){var u=Ar;Ar|=1;try{return t(a)}finally{Ar=u,0===Ar&&(Bh(),Pt&&ad())}};a.createComponentSelector=function(t){return{$$typeof:Tr,value:t}};a.createContainer=function(t,a,u,i,o,s,y){return hi(t,a,!1,null,u,i,o,s,y)};a.createHasPseudoClassSelector=function(t){return{$$typeof:Rr,value:t}};a.createHydrationContainer=function(t,a,u,i,o,s,y,S,x){t=hi(u,i,!0,t,o,s,y,S,x);t.context=ii(null);u=t.current;i=O();o=tf(u);s=ge(i,o);s.callback=void 0!==a&&null!==a?a:null;he(u,s,o);t.current.lanes=o;Fc(t,o,i);Kh(t,i);return t};a.createPortal=function(t,a,u){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:N,key:null==i?null:\"\"+i,children:t,containerInfo:a,implementation:u}};a.createRoleSelector=function(t){return{$$typeof:Mr,value:t}};a.createTestNameSelector=function(t){return{$$typeof:Fr,value:t}};a.createTextSelector=function(t){return{$$typeof:Qr,value:t}};a.deferredUpdates=function(t){var a=dt,u=Or.transition;try{return Or.transition=null,dt=16,t()}finally{dt=a,Or.transition=u}};a.discreteUpdates=function(t,a,u,i,o){var s=dt,y=Or.transition;try{return Or.transition=null,dt=1,t(a,u,i,o)}finally{dt=s,Or.transition=y,0===Ar&&Bh()}};a.findAllNodes=rh;a.findBoundingRects=function(t,a){if(!en)throw Error(n(363));a=rh(t,a);t=[];for(var u=0;u<a.length;u++)t.push(tn(a[u]));for(a=t.length-1;0<a;a--){u=t[a];for(var i=u.x,o=i+u.width,s=u.y,y=s+u.height,S=a-1;0<=S;S--)if(a!==S){var x=t[S],z=x.x,N=z+x.width,E=x.y,C=E+x.height;if(i>=z&&s>=E&&o<=N&&y<=C){t.splice(a,1);break}if(!(i!==z||u.width!==x.width||C<s||E>y)){E>s&&(x.height+=E-s,x.y=s);C<y&&(x.height=y-E);t.splice(a,1);break}if(!(s!==E||u.height!==x.height||N<i||z>o)){z>i&&(x.width+=z-i,x.x=i);N<o&&(x.width=o-z);t.splice(a,1);break}}}return t};a.findHostInstance=ji;a.findHostInstanceWithNoPortals=function(t){t=za(t);t=null!==t?Ca(t):null;return null===t?null:t.stateNode};a.findHostInstanceWithWarning=function(t){return ji(t)};a.flushControlled=function(t){var a=Ar;Ar|=1;var u=Or.transition,i=dt;try{Or.transition=null,dt=1,t()}finally{dt=i,Or.transition=u,Ar=a,0===Ar&&(Bh(),ad())}};a.flushPassiveEffects=Oh;a.flushSync=Xh;a.focusWithin=function(t,a){if(!en)throw Error(n(363));t=nh(t);a=qh(t,a);a=Array.from(a);for(t=0;t<a.length;){var u=a[t++];if(!ln(u)){if(5===u.tag&&un(u.stateNode))return!0;for(u=u.child;null!==u;)a.push(u),u=u.sibling}}return!1};a.getCurrentUpdatePriority=function(){return dt};a.getFindAllNodesFailureDescription=function(t,a){if(!en)throw Error(n(363));var u=0,i=[];t=[nh(t),0];for(var o=0;o<t.length;){var s=t[o++],y=t[o++],S=a[y];if((5!==s.tag||!ln(s))&&(oh(s,S)&&(i.push(ph(S)),y++,y>u&&(u=y)),y<a.length))for(s=s.child;null!==s;)t.push(s,y),s=s.sibling}if(u<a.length){for(t=[];u<a.length;u++)t.push(ph(a[u]));return\"findAllNodes was able to match part of the selector:\\n  \"+i.join(\" > \")+\"\\n\\nNo matching component was found for:\\n  \"+t.join(\" > \")}return null};a.getPublicRootInstance=function(t){t=t.current;if(!t.child)return null;switch(t.child.tag){case 5:return Z(t.child.stateNode);default:return t.child.stateNode}};a.injectIntoDevTools=function(t){t={bundleType:t.bundleType,version:t.version,rendererPackageName:t.rendererPackageName,rendererConfig:t.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:mi,findFiberByHostInstance:t.findFiberByHostInstance||ni,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1\"};if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)t=!1;else{var a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(a.isDisabled||!a.supportsFiber)t=!0;else{try{xt=a.inject(t),wt=a}catch(t){}t=!!a.checkDCE}}return t};a.isAlreadyRendering=function(){return!1};a.observeVisibleRects=function(t,a,u,i){if(!en)throw Error(n(363));t=rh(t,a);var o=on(t,u,i).disconnect;return{disconnect:function(){o()}}};a.registerMutableSourceForHydration=function(t,a){var u=a._getVersion;u=u(a._source);null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[a,u]:t.mutableSourceEagerHydrationData.push(a,u)};a.runWithPriority=function(t,a){var u=dt;try{return dt=t,a()}finally{dt=u}};a.shouldError=function(){return null};a.shouldSuspend=function(){return!1};a.updateContainer=function(t,a,u,i){var o=a.current,s=O(),y=tf(o);u=ii(u);null===a.context?a.context=u:a.pendingContext=u;a=ge(s,y);a.payload={element:t};i=void 0===i?null:i;null!==i&&(a.callback=i);t=he(o,a,y);null!==t&&(af(t,o,y,s),ie(t,o,y));return y};return a};var y=s;const S=s.attemptContinuousHydration,x=s.attemptDiscreteHydration,z=s.attemptHydrationAtCurrentPriority,N=s.attemptSynchronousHydration,E=s.batchedUpdates,C=s.createComponentSelector,I=s.createContainer,_=s.createHasPseudoClassSelector,L=s.createHydrationContainer,T=s.createPortal,R=s.createRoleSelector,F=s.createTestNameSelector,D=s.createTextSelector,H=s.deferredUpdates,W=s.discreteUpdates,j=s.findAllNodes,$=s.findBoundingRects,V=s.findHostInstance,Z=s.findHostInstanceWithNoPortals,J=s.findHostInstanceWithWarning,K=s.flushControlled,G=s.flushPassiveEffects,X=s.flushSync,ne=s.focusWithin,le=s.getCurrentUpdatePriority,oe=s.getFindAllNodesFailureDescription,de=s.getPublicRootInstance,pe=s.injectIntoDevTools,xe=s.isAlreadyRendering,ze=s.observeVisibleRects,Ee=s.registerMutableSourceForHydration,Ce=s.runWithPriority,Ie=s.shouldError,_e=s.shouldSuspend,Le=s.updateContainer;export{S as attemptContinuousHydration,x as attemptDiscreteHydration,z as attemptHydrationAtCurrentPriority,N as attemptSynchronousHydration,E as batchedUpdates,C as createComponentSelector,I as createContainer,_ as createHasPseudoClassSelector,L as createHydrationContainer,T as createPortal,R as createRoleSelector,F as createTestNameSelector,D as createTextSelector,y as default,H as deferredUpdates,W as discreteUpdates,j as findAllNodes,$ as findBoundingRects,V as findHostInstance,Z as findHostInstanceWithNoPortals,J as findHostInstanceWithWarning,K as flushControlled,G as flushPassiveEffects,X as flushSync,ne as focusWithin,le as getCurrentUpdatePriority,oe as getFindAllNodesFailureDescription,de as getPublicRootInstance,pe as injectIntoDevTools,xe as isAlreadyRendering,ze as observeVisibleRects,Ee as registerMutableSourceForHydration,Ce as runWithPriority,Ie as shouldError,_e as shouldSuspend,Le as updateContainer};\n//# sourceMappingURL=react-reconciler.production.min.js.map\n","import e from\"./cjs/react-reconciler.production.min.js\";import\"react\";import\"scheduler\";const t=e.attemptContinuousHydration,r=e.attemptDiscreteHydration,o=e.attemptHydrationAtCurrentPriority,n=e.attemptSynchronousHydration,i=e.batchedUpdates,a=e.createComponentSelector,s=e.createContainer,c=e.createHasPseudoClassSelector,d=e.createHydrationContainer,l=e.createPortal,u=e.createRoleSelector,p=e.createTestNameSelector,f=e.createTextSelector,h=e.deferredUpdates,y=e.discreteUpdates,m=e.findAllNodes,H=e.findBoundingRects,C=e.findHostInstance,S=e.findHostInstanceWithNoPortals,P=e.findHostInstanceWithWarning,g=e.flushControlled,b=e.flushPassiveEffects,I=e.flushSync,R=e.focusWithin,W=e.getCurrentUpdatePriority,A=e.getFindAllNodesFailureDescription,N=e.getPublicRootInstance,U=e.injectIntoDevTools,j=e.isAlreadyRendering,v=e.observeVisibleRects,D=e.registerMutableSourceForHydration,F=e.runWithPriority,T=e.shouldError,x=e.shouldSuspend,E=e.updateContainer;export{t as attemptContinuousHydration,r as attemptDiscreteHydration,o as attemptHydrationAtCurrentPriority,n as attemptSynchronousHydration,i as batchedUpdates,a as createComponentSelector,s as createContainer,c as createHasPseudoClassSelector,d as createHydrationContainer,l as createPortal,u as createRoleSelector,p as createTestNameSelector,f as createTextSelector,e as default,h as deferredUpdates,y as discreteUpdates,m as findAllNodes,H as findBoundingRects,C as findHostInstance,S as findHostInstanceWithNoPortals,P as findHostInstanceWithWarning,g as flushControlled,b as flushPassiveEffects,I as flushSync,R as focusWithin,W as getCurrentUpdatePriority,A as getFindAllNodesFailureDescription,N as getPublicRootInstance,U as injectIntoDevTools,j as isAlreadyRendering,v as observeVisibleRects,D as registerMutableSourceForHydration,F as runWithPriority,T as shouldError,x as shouldSuspend,E as updateContainer};\n//# sourceMappingURL=index.js.map\n","import {\n  ACESFilmicToneMapping,\n  BasicShadowMap,\n  Camera,\n  Clock,\n  Layers,\n  NoToneMapping,\n  OrthographicCamera,\n  PCFShadowMap,\n  PCFSoftShadowMap,\n  PerspectiveCamera,\n  RGBAFormat,\n  Raycaster,\n  Scene,\n  UnsignedByteType,\n  VSMShadowMap,\n  Vector2,\n  Vector3,\n  WebGLRenderer,\n  three_module_exports\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __export,\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nimport * as React from \"react\";\nimport { DefaultEventPriority, ContinuousEventPriority, DiscreteEventPriority, ConcurrentRoot } from \"react-reconciler/constants\";\n\n// ../../node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/index.js\nimport { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from \"react\";\nfunction createStore(createState) {\n  let state;\n  const listeners = /* @__PURE__ */ new Set();\n  const setState = (partial, replace) => {\n    const nextState = typeof partial === \"function\" ? partial(state) : partial;\n    if (nextState !== state) {\n      const previousState = state;\n      state = replace ? nextState : Object.assign({}, state, nextState);\n      listeners.forEach((listener) => listener(state, previousState));\n    }\n  };\n  const getState = () => state;\n  const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n    console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n    let currentSlice = selector(state);\n    function listenerToAdd() {\n      const nextSlice = selector(state);\n      if (!equalityFn(currentSlice, nextSlice)) {\n        const previousSlice = currentSlice;\n        listener(currentSlice = nextSlice, previousSlice);\n      }\n    }\n    listeners.add(listenerToAdd);\n    return () => listeners.delete(listenerToAdd);\n  };\n  const subscribe = (listener, selector, equalityFn) => {\n    if (selector || equalityFn) {\n      return subscribeWithSelector(listener, selector, equalityFn);\n    }\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const destroy = () => listeners.clear();\n  const api = { setState, getState, subscribe, destroy };\n  state = createState(setState, getState, api);\n  return api;\n}\nvar isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nvar useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n  const api = typeof createState === \"function\" ? createStore(createState) : createState;\n  const useStore2 = (selector = api.getState, equalityFn = Object.is) => {\n    const [, forceUpdate] = useReducer((c) => c + 1, 0);\n    const state = api.getState();\n    const stateRef = useRef(state);\n    const selectorRef = useRef(selector);\n    const equalityFnRef = useRef(equalityFn);\n    const erroredRef = useRef(false);\n    const currentSliceRef = useRef();\n    if (currentSliceRef.current === void 0) {\n      currentSliceRef.current = selector(state);\n    }\n    let newStateSlice;\n    let hasNewStateSlice = false;\n    if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n      newStateSlice = selector(state);\n      hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n    }\n    useIsomorphicLayoutEffect(() => {\n      if (hasNewStateSlice) {\n        currentSliceRef.current = newStateSlice;\n      }\n      stateRef.current = state;\n      selectorRef.current = selector;\n      equalityFnRef.current = equalityFn;\n      erroredRef.current = false;\n    });\n    const stateBeforeSubscriptionRef = useRef(state);\n    useIsomorphicLayoutEffect(() => {\n      const listener = () => {\n        try {\n          const nextState = api.getState();\n          const nextStateSlice = selectorRef.current(nextState);\n          if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n            stateRef.current = nextState;\n            currentSliceRef.current = nextStateSlice;\n            forceUpdate();\n          }\n        } catch (error2) {\n          erroredRef.current = true;\n          forceUpdate();\n        }\n      };\n      const unsubscribe = api.subscribe(listener);\n      if (api.getState() !== stateBeforeSubscriptionRef.current) {\n        listener();\n      }\n      return unsubscribe;\n    }, []);\n    const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n    useDebugValue(sliceToReturn);\n    return sliceToReturn;\n  };\n  Object.assign(useStore2, api);\n  useStore2[Symbol.iterator] = function() {\n    console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n    const items = [useStore2, api];\n    return {\n      next() {\n        const done = items.length <= 0;\n        return { value: items.shift(), done };\n      }\n    };\n  };\n  return useStore2;\n}\n\n// ../../node_modules/.pnpm/suspend-react@0.1.3_react@18.3.1/node_modules/suspend-react/index.js\nvar isPromise = (promise) => typeof promise === \"object\" && typeof promise.then === \"function\";\nvar globalCache = [];\nfunction shallowEqualArrays(arrA, arrB, equal = (a, b) => a === b) {\n  if (arrA === arrB) return true;\n  if (!arrA || !arrB) return false;\n  const len = arrA.length;\n  if (arrB.length !== len) return false;\n  for (let i2 = 0; i2 < len; i2++) if (!equal(arrA[i2], arrB[i2])) return false;\n  return true;\n}\nfunction query(fn, keys = null, preload2 = false, config = {}) {\n  if (keys === null) keys = [fn];\n  for (const entry2 of globalCache) {\n    if (shallowEqualArrays(keys, entry2.keys, entry2.equal)) {\n      if (preload2) return void 0;\n      if (Object.prototype.hasOwnProperty.call(entry2, \"error\")) throw entry2.error;\n      if (Object.prototype.hasOwnProperty.call(entry2, \"response\")) {\n        if (config.lifespan && config.lifespan > 0) {\n          if (entry2.timeout) clearTimeout(entry2.timeout);\n          entry2.timeout = setTimeout(entry2.remove, config.lifespan);\n        }\n        return entry2.response;\n      }\n      if (!preload2) throw entry2.promise;\n    }\n  }\n  const entry = {\n    keys,\n    equal: config.equal,\n    remove: () => {\n      const index = globalCache.indexOf(entry);\n      if (index !== -1) globalCache.splice(index, 1);\n    },\n    promise: (\n      // Execute the promise\n      (isPromise(fn) ? fn : fn(...keys)).then((response) => {\n        entry.response = response;\n        if (config.lifespan && config.lifespan > 0) {\n          entry.timeout = setTimeout(entry.remove, config.lifespan);\n        }\n      }).catch((error2) => entry.error = error2)\n    )\n  };\n  globalCache.push(entry);\n  if (!preload2) throw entry.promise;\n  return void 0;\n}\nvar suspend = (fn, keys, config) => query(fn, keys, false, config);\nvar preload = (fn, keys, config) => void query(fn, keys, true, config);\nvar clear = (keys) => {\n  if (keys === void 0 || keys.length === 0) globalCache.splice(0, globalCache.length);\n  else {\n    const entry = globalCache.find((entry2) => shallowEqualArrays(keys, entry2.keys, entry2.equal));\n    if (entry) entry.remove();\n  }\n};\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nimport { jsx, Fragment } from \"react/jsx-runtime\";\nimport Reconciler from \"react-reconciler\";\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/cjs/scheduler.development.js\nvar scheduler_development_exports = {};\n__export(scheduler_development_exports, {\n  default: () => scheduler_development_default,\n  unstable_IdlePriority: () => __export1,\n  unstable_ImmediatePriority: () => __export2,\n  unstable_LowPriority: () => __export3,\n  unstable_NormalPriority: () => __export4,\n  unstable_Profiling: () => __export5,\n  unstable_UserBlockingPriority: () => __export6,\n  unstable_cancelCallback: () => __export7,\n  unstable_continueExecution: () => __export8,\n  unstable_forceFrameRate: () => __export9,\n  unstable_getCurrentPriorityLevel: () => __export10,\n  unstable_getFirstCallbackNode: () => __export11,\n  unstable_next: () => __export12,\n  unstable_now: () => __export0,\n  unstable_pauseExecution: () => __export13,\n  unstable_requestPaint: () => __export14,\n  unstable_runWithPriority: () => __export15,\n  unstable_scheduleCallback: () => __export16,\n  unstable_shouldYield: () => __export17,\n  unstable_wrapCallback: () => __export18\n});\nvar exports = {};\nvar module = {\n  get exports() {\n    return exports;\n  },\n  set exports(value) {\n    exports = value;\n  }\n};\nif (true) {\n  (function() {\n    \"use strict\";\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === \"function\") {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n    }\n    var enableSchedulerDebugging = false;\n    var enableProfiling = false;\n    var frameYieldMs = 5;\n    function push(heap, node) {\n      var index = heap.length;\n      heap.push(node);\n      siftUp(heap, node, index);\n    }\n    function peek(heap) {\n      return heap.length === 0 ? null : heap[0];\n    }\n    function pop(heap) {\n      if (heap.length === 0) {\n        return null;\n      }\n      var first = heap[0];\n      var last = heap.pop();\n      if (last !== first) {\n        heap[0] = last;\n        siftDown(heap, last, 0);\n      }\n      return first;\n    }\n    function siftUp(heap, node, i2) {\n      var index = i2;\n      while (index > 0) {\n        var parentIndex = index - 1 >>> 1;\n        var parent = heap[parentIndex];\n        if (compare(parent, node) > 0) {\n          heap[parentIndex] = node;\n          heap[index] = parent;\n          index = parentIndex;\n        } else {\n          return;\n        }\n      }\n    }\n    function siftDown(heap, node, i2) {\n      var index = i2;\n      var length = heap.length;\n      var halfLength = length >>> 1;\n      while (index < halfLength) {\n        var leftIndex = (index + 1) * 2 - 1;\n        var left = heap[leftIndex];\n        var rightIndex = leftIndex + 1;\n        var right = heap[rightIndex];\n        if (compare(left, node) < 0) {\n          if (rightIndex < length && compare(right, left) < 0) {\n            heap[index] = right;\n            heap[rightIndex] = node;\n            index = rightIndex;\n          } else {\n            heap[index] = left;\n            heap[leftIndex] = node;\n            index = leftIndex;\n          }\n        } else if (rightIndex < length && compare(right, node) < 0) {\n          heap[index] = right;\n          heap[rightIndex] = node;\n          index = rightIndex;\n        } else {\n          return;\n        }\n      }\n    }\n    function compare(a, b) {\n      var diff = a.sortIndex - b.sortIndex;\n      return diff !== 0 ? diff : a.id - b.id;\n    }\n    var ImmediatePriority = 1;\n    var UserBlockingPriority = 2;\n    var NormalPriority = 3;\n    var LowPriority = 4;\n    var IdlePriority = 5;\n    function markTaskErrored(task, ms) {\n    }\n    var hasPerformanceNow = typeof performance === \"object\" && typeof performance.now === \"function\";\n    if (hasPerformanceNow) {\n      var localPerformance = performance;\n      exports.unstable_now = function() {\n        return localPerformance.now();\n      };\n    } else {\n      var localDate = Date;\n      var initialTime = localDate.now();\n      exports.unstable_now = function() {\n        return localDate.now() - initialTime;\n      };\n    }\n    var maxSigned31BitInt = 1073741823;\n    var IMMEDIATE_PRIORITY_TIMEOUT = -1;\n    var USER_BLOCKING_PRIORITY_TIMEOUT = 250;\n    var NORMAL_PRIORITY_TIMEOUT = 5e3;\n    var LOW_PRIORITY_TIMEOUT = 1e4;\n    var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt;\n    var taskQueue = [];\n    var timerQueue = [];\n    var taskIdCounter = 1;\n    var currentTask = null;\n    var currentPriorityLevel = NormalPriority;\n    var isPerformingWork = false;\n    var isHostCallbackScheduled = false;\n    var isHostTimeoutScheduled = false;\n    var localSetTimeout = typeof setTimeout === \"function\" ? setTimeout : null;\n    var localClearTimeout = typeof clearTimeout === \"function\" ? clearTimeout : null;\n    var localSetImmediate = typeof setImmediate !== \"undefined\" ? setImmediate : null;\n    var isInputPending = typeof navigator !== \"undefined\" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null;\n    function advanceTimers(currentTime) {\n      var timer = peek(timerQueue);\n      while (timer !== null) {\n        if (timer.callback === null) {\n          pop(timerQueue);\n        } else if (timer.startTime <= currentTime) {\n          pop(timerQueue);\n          timer.sortIndex = timer.expirationTime;\n          push(taskQueue, timer);\n        } else {\n          return;\n        }\n        timer = peek(timerQueue);\n      }\n    }\n    function handleTimeout(currentTime) {\n      isHostTimeoutScheduled = false;\n      advanceTimers(currentTime);\n      if (!isHostCallbackScheduled) {\n        if (peek(taskQueue) !== null) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        } else {\n          var firstTimer = peek(timerQueue);\n          if (firstTimer !== null) {\n            requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n          }\n        }\n      }\n    }\n    function flushWork(hasTimeRemaining, initialTime2) {\n      isHostCallbackScheduled = false;\n      if (isHostTimeoutScheduled) {\n        isHostTimeoutScheduled = false;\n        cancelHostTimeout();\n      }\n      isPerformingWork = true;\n      var previousPriorityLevel = currentPriorityLevel;\n      try {\n        if (enableProfiling) {\n          try {\n            return workLoop(hasTimeRemaining, initialTime2);\n          } catch (error2) {\n            if (currentTask !== null) {\n              var currentTime = exports.unstable_now();\n              markTaskErrored(currentTask, currentTime);\n              currentTask.isQueued = false;\n            }\n            throw error2;\n          }\n        } else {\n          return workLoop(hasTimeRemaining, initialTime2);\n        }\n      } finally {\n        currentTask = null;\n        currentPriorityLevel = previousPriorityLevel;\n        isPerformingWork = false;\n      }\n    }\n    function workLoop(hasTimeRemaining, initialTime2) {\n      var currentTime = initialTime2;\n      advanceTimers(currentTime);\n      currentTask = peek(taskQueue);\n      while (currentTask !== null && !enableSchedulerDebugging) {\n        if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n          break;\n        }\n        var callback = currentTask.callback;\n        if (typeof callback === \"function\") {\n          currentTask.callback = null;\n          currentPriorityLevel = currentTask.priorityLevel;\n          var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n          var continuationCallback = callback(didUserCallbackTimeout);\n          currentTime = exports.unstable_now();\n          if (typeof continuationCallback === \"function\") {\n            currentTask.callback = continuationCallback;\n          } else {\n            if (currentTask === peek(taskQueue)) {\n              pop(taskQueue);\n            }\n          }\n          advanceTimers(currentTime);\n        } else {\n          pop(taskQueue);\n        }\n        currentTask = peek(taskQueue);\n      }\n      if (currentTask !== null) {\n        return true;\n      } else {\n        var firstTimer = peek(timerQueue);\n        if (firstTimer !== null) {\n          requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n        }\n        return false;\n      }\n    }\n    function unstable_runWithPriority(priorityLevel, eventHandler) {\n      switch (priorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n        case LowPriority:\n        case IdlePriority:\n          break;\n        default:\n          priorityLevel = NormalPriority;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_next(eventHandler) {\n      var priorityLevel;\n      switch (currentPriorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n          priorityLevel = NormalPriority;\n          break;\n        default:\n          priorityLevel = currentPriorityLevel;\n          break;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_wrapCallback(callback) {\n      var parentPriorityLevel = currentPriorityLevel;\n      return function() {\n        var previousPriorityLevel = currentPriorityLevel;\n        currentPriorityLevel = parentPriorityLevel;\n        try {\n          return callback.apply(this, arguments);\n        } finally {\n          currentPriorityLevel = previousPriorityLevel;\n        }\n      };\n    }\n    function unstable_scheduleCallback(priorityLevel, callback, options) {\n      var currentTime = exports.unstable_now();\n      var startTime2;\n      if (typeof options === \"object\" && options !== null) {\n        var delay = options.delay;\n        if (typeof delay === \"number\" && delay > 0) {\n          startTime2 = currentTime + delay;\n        } else {\n          startTime2 = currentTime;\n        }\n      } else {\n        startTime2 = currentTime;\n      }\n      var timeout;\n      switch (priorityLevel) {\n        case ImmediatePriority:\n          timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n          break;\n        case UserBlockingPriority:\n          timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n          break;\n        case IdlePriority:\n          timeout = IDLE_PRIORITY_TIMEOUT;\n          break;\n        case LowPriority:\n          timeout = LOW_PRIORITY_TIMEOUT;\n          break;\n        case NormalPriority:\n        default:\n          timeout = NORMAL_PRIORITY_TIMEOUT;\n          break;\n      }\n      var expirationTime = startTime2 + timeout;\n      var newTask = {\n        id: taskIdCounter++,\n        callback,\n        priorityLevel,\n        startTime: startTime2,\n        expirationTime,\n        sortIndex: -1\n      };\n      if (startTime2 > currentTime) {\n        newTask.sortIndex = startTime2;\n        push(timerQueue, newTask);\n        if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n          if (isHostTimeoutScheduled) {\n            cancelHostTimeout();\n          } else {\n            isHostTimeoutScheduled = true;\n          }\n          requestHostTimeout(handleTimeout, startTime2 - currentTime);\n        }\n      } else {\n        newTask.sortIndex = expirationTime;\n        push(taskQueue, newTask);\n        if (!isHostCallbackScheduled && !isPerformingWork) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        }\n      }\n      return newTask;\n    }\n    function unstable_pauseExecution() {\n    }\n    function unstable_continueExecution() {\n      if (!isHostCallbackScheduled && !isPerformingWork) {\n        isHostCallbackScheduled = true;\n        requestHostCallback(flushWork);\n      }\n    }\n    function unstable_getFirstCallbackNode() {\n      return peek(taskQueue);\n    }\n    function unstable_cancelCallback(task) {\n      task.callback = null;\n    }\n    function unstable_getCurrentPriorityLevel() {\n      return currentPriorityLevel;\n    }\n    var isMessageLoopRunning = false;\n    var scheduledHostCallback = null;\n    var taskTimeoutID = -1;\n    var frameInterval = frameYieldMs;\n    var startTime = -1;\n    function shouldYieldToHost() {\n      var timeElapsed = exports.unstable_now() - startTime;\n      if (timeElapsed < frameInterval) {\n        return false;\n      }\n      return true;\n    }\n    function requestPaint() {\n    }\n    function forceFrameRate(fps) {\n      if (fps < 0 || fps > 125) {\n        console[\"error\"](\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\");\n        return;\n      }\n      if (fps > 0) {\n        frameInterval = Math.floor(1e3 / fps);\n      } else {\n        frameInterval = frameYieldMs;\n      }\n    }\n    var performWorkUntilDeadline = function() {\n      if (scheduledHostCallback !== null) {\n        var currentTime = exports.unstable_now();\n        startTime = currentTime;\n        var hasTimeRemaining = true;\n        var hasMoreWork = true;\n        try {\n          hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n        } finally {\n          if (hasMoreWork) {\n            schedulePerformWorkUntilDeadline();\n          } else {\n            isMessageLoopRunning = false;\n            scheduledHostCallback = null;\n          }\n        }\n      } else {\n        isMessageLoopRunning = false;\n      }\n    };\n    var schedulePerformWorkUntilDeadline;\n    if (typeof localSetImmediate === \"function\") {\n      schedulePerformWorkUntilDeadline = function() {\n        localSetImmediate(performWorkUntilDeadline);\n      };\n    } else if (typeof MessageChannel !== \"undefined\") {\n      var channel = new MessageChannel();\n      var port = channel.port2;\n      channel.port1.onmessage = performWorkUntilDeadline;\n      schedulePerformWorkUntilDeadline = function() {\n        port.postMessage(null);\n      };\n    } else {\n      schedulePerformWorkUntilDeadline = function() {\n        localSetTimeout(performWorkUntilDeadline, 0);\n      };\n    }\n    function requestHostCallback(callback) {\n      scheduledHostCallback = callback;\n      if (!isMessageLoopRunning) {\n        isMessageLoopRunning = true;\n        schedulePerformWorkUntilDeadline();\n      }\n    }\n    function requestHostTimeout(callback, ms) {\n      taskTimeoutID = localSetTimeout(function() {\n        callback(exports.unstable_now());\n      }, ms);\n    }\n    function cancelHostTimeout() {\n      localClearTimeout(taskTimeoutID);\n      taskTimeoutID = -1;\n    }\n    var unstable_requestPaint = requestPaint;\n    var unstable_Profiling = null;\n    exports.unstable_IdlePriority = IdlePriority;\n    exports.unstable_ImmediatePriority = ImmediatePriority;\n    exports.unstable_LowPriority = LowPriority;\n    exports.unstable_NormalPriority = NormalPriority;\n    exports.unstable_Profiling = unstable_Profiling;\n    exports.unstable_UserBlockingPriority = UserBlockingPriority;\n    exports.unstable_cancelCallback = unstable_cancelCallback;\n    exports.unstable_continueExecution = unstable_continueExecution;\n    exports.unstable_forceFrameRate = forceFrameRate;\n    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\n    exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\n    exports.unstable_next = unstable_next;\n    exports.unstable_pauseExecution = unstable_pauseExecution;\n    exports.unstable_requestPaint = unstable_requestPaint;\n    exports.unstable_runWithPriority = unstable_runWithPriority;\n    exports.unstable_scheduleCallback = unstable_scheduleCallback;\n    exports.unstable_shouldYield = shouldYieldToHost;\n    exports.unstable_wrapCallback = unstable_wrapCallback;\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === \"function\") {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n    }\n  })();\n}\nvar __export0;\nvar __export1;\nvar __export2;\nvar __export3;\nvar __export4;\nvar __export5;\nvar __export6;\nvar __export7;\nvar __export8;\nvar __export9;\nvar __export10;\nvar __export11;\nvar __export12;\nvar __export13;\nvar __export14;\nvar __export15;\nvar __export16;\nvar __export17;\nvar __export18;\nif (Object.isExtensible(module.exports) && Object.keys(module.exports).length === 19) {\n  __export0 = module.exports[\"unstable_now\"];\n  __export1 = module.exports[\"unstable_IdlePriority\"];\n  __export2 = module.exports[\"unstable_ImmediatePriority\"];\n  __export3 = module.exports[\"unstable_LowPriority\"];\n  __export4 = module.exports[\"unstable_NormalPriority\"];\n  __export5 = module.exports[\"unstable_Profiling\"];\n  __export6 = module.exports[\"unstable_UserBlockingPriority\"];\n  __export7 = module.exports[\"unstable_cancelCallback\"];\n  __export8 = module.exports[\"unstable_continueExecution\"];\n  __export9 = module.exports[\"unstable_forceFrameRate\"];\n  __export10 = module.exports[\"unstable_getCurrentPriorityLevel\"];\n  __export11 = module.exports[\"unstable_getFirstCallbackNode\"];\n  __export12 = module.exports[\"unstable_next\"];\n  __export13 = module.exports[\"unstable_pauseExecution\"];\n  __export14 = module.exports[\"unstable_requestPaint\"];\n  __export15 = module.exports[\"unstable_runWithPriority\"];\n  __export16 = module.exports[\"unstable_scheduleCallback\"];\n  __export17 = module.exports[\"unstable_shouldYield\"];\n  __export18 = module.exports[\"unstable_wrapCallback\"];\n}\nvar scheduler_development_default = module.exports;\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/cjs/scheduler.production.min.js\nvar exports2 = {};\nvar module2 = {\n  get exports() {\n    return exports2;\n  },\n  set exports(value) {\n    exports2 = value;\n  }\n};\nfunction f(a, b) {\n  var c = a.length;\n  a.push(b);\n  a: for (; 0 < c; ) {\n    var d = c - 1 >>> 1, e = a[d];\n    if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;\n    else break a;\n  }\n}\nfunction h(a) {\n  return 0 === a.length ? null : a[0];\n}\nfunction k(a) {\n  if (0 === a.length) return null;\n  var b = a[0], c = a.pop();\n  if (c !== b) {\n    a[0] = c;\n    a: for (var d = 0, e = a.length, w = e >>> 1; d < w; ) {\n      var m = 2 * (d + 1) - 1, C = a[m], n = m + 1, x = a[n];\n      if (0 > g(C, c)) n < e && 0 > g(x, C) ? (a[d] = x, a[n] = c, d = n) : (a[d] = C, a[m] = c, d = m);\n      else if (n < e && 0 > g(x, c)) a[d] = x, a[n] = c, d = n;\n      else break a;\n    }\n  }\n  return b;\n}\nfunction g(a, b) {\n  var c = a.sortIndex - b.sortIndex;\n  return 0 !== c ? c : a.id - b.id;\n}\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n  l = performance;\n  exports2.unstable_now = function() {\n    return l.now();\n  };\n} else {\n  p2 = Date, q = p2.now();\n  exports2.unstable_now = function() {\n    return p2.now() - q;\n  };\n}\nvar l;\nvar p2;\nvar q;\nvar r = [];\nvar t = [];\nvar u = 1;\nvar v = null;\nvar y = 3;\nvar z = false;\nvar A = false;\nvar B = false;\nvar D = \"function\" === typeof setTimeout ? setTimeout : null;\nvar E = \"function\" === typeof clearTimeout ? clearTimeout : null;\nvar F = \"undefined\" !== typeof setImmediate ? setImmediate : null;\n\"undefined\" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);\nfunction G(a) {\n  for (var b = h(t); null !== b; ) {\n    if (null === b.callback) k(t);\n    else if (b.startTime <= a) k(t), b.sortIndex = b.expirationTime, f(r, b);\n    else break;\n    b = h(t);\n  }\n}\nfunction H(a) {\n  B = false;\n  G(a);\n  if (!A) if (null !== h(r)) A = true, I(J);\n  else {\n    var b = h(t);\n    null !== b && K(H, b.startTime - a);\n  }\n}\nfunction J(a, b) {\n  A = false;\n  B && (B = false, E(L), L = -1);\n  z = true;\n  var c = y;\n  try {\n    G(b);\n    for (v = h(r); null !== v && (!(v.expirationTime > b) || a && !M()); ) {\n      var d = v.callback;\n      if (\"function\" === typeof d) {\n        v.callback = null;\n        y = v.priorityLevel;\n        var e = d(v.expirationTime <= b);\n        b = exports2.unstable_now();\n        \"function\" === typeof e ? v.callback = e : v === h(r) && k(r);\n        G(b);\n      } else k(r);\n      v = h(r);\n    }\n    if (null !== v) var w = true;\n    else {\n      var m = h(t);\n      null !== m && K(H, m.startTime - b);\n      w = false;\n    }\n    return w;\n  } finally {\n    v = null, y = c, z = false;\n  }\n}\nvar N = false;\nvar O = null;\nvar L = -1;\nvar P = 5;\nvar Q = -1;\nfunction M() {\n  return exports2.unstable_now() - Q < P ? false : true;\n}\nfunction R() {\n  if (null !== O) {\n    var a = exports2.unstable_now();\n    Q = a;\n    var b = true;\n    try {\n      b = O(true, a);\n    } finally {\n      b ? S() : (N = false, O = null);\n    }\n  } else N = false;\n}\nvar S;\nif (\"function\" === typeof F) S = function() {\n  F(R);\n};\nelse if (\"undefined\" !== typeof MessageChannel) {\n  T2 = new MessageChannel(), U = T2.port2;\n  T2.port1.onmessage = R;\n  S = function() {\n    U.postMessage(null);\n  };\n} else S = function() {\n  D(R, 0);\n};\nvar T2;\nvar U;\nfunction I(a) {\n  O = a;\n  N || (N = true, S());\n}\nfunction K(a, b) {\n  L = D(function() {\n    a(exports2.unstable_now());\n  }, b);\n}\nexports2.unstable_IdlePriority = 5;\nexports2.unstable_ImmediatePriority = 1;\nexports2.unstable_LowPriority = 4;\nexports2.unstable_NormalPriority = 3;\nexports2.unstable_Profiling = null;\nexports2.unstable_UserBlockingPriority = 2;\nexports2.unstable_cancelCallback = function(a) {\n  a.callback = null;\n};\nexports2.unstable_continueExecution = function() {\n  A || z || (A = true, I(J));\n};\nexports2.unstable_forceFrameRate = function(a) {\n  0 > a || 125 < a ? console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\") : P = 0 < a ? Math.floor(1e3 / a) : 5;\n};\nexports2.unstable_getCurrentPriorityLevel = function() {\n  return y;\n};\nexports2.unstable_getFirstCallbackNode = function() {\n  return h(r);\n};\nexports2.unstable_next = function(a) {\n  switch (y) {\n    case 1:\n    case 2:\n    case 3:\n      var b = 3;\n      break;\n    default:\n      b = y;\n  }\n  var c = y;\n  y = b;\n  try {\n    return a();\n  } finally {\n    y = c;\n  }\n};\nexports2.unstable_pauseExecution = function() {\n};\nexports2.unstable_requestPaint = function() {\n};\nexports2.unstable_runWithPriority = function(a, b) {\n  switch (a) {\n    case 1:\n    case 2:\n    case 3:\n    case 4:\n    case 5:\n      break;\n    default:\n      a = 3;\n  }\n  var c = y;\n  y = a;\n  try {\n    return b();\n  } finally {\n    y = c;\n  }\n};\nexports2.unstable_scheduleCallback = function(a, b, c) {\n  var d = exports2.unstable_now();\n  \"object\" === typeof c && null !== c ? (c = c.delay, c = \"number\" === typeof c && 0 < c ? d + c : d) : c = d;\n  switch (a) {\n    case 1:\n      var e = -1;\n      break;\n    case 2:\n      e = 250;\n      break;\n    case 5:\n      e = 1073741823;\n      break;\n    case 4:\n      e = 1e4;\n      break;\n    default:\n      e = 5e3;\n  }\n  e = c + e;\n  a = { id: u++, callback: b, priorityLevel: a, startTime: c, expirationTime: e, sortIndex: -1 };\n  c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = true, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = true, I(J)));\n  return a;\n};\nexports2.unstable_shouldYield = M;\nexports2.unstable_wrapCallback = function(a) {\n  var b = y;\n  return function() {\n    var c = y;\n    y = b;\n    try {\n      return a.apply(this, arguments);\n    } finally {\n      y = c;\n    }\n  };\n};\nvar __export02;\nvar __export19;\nvar __export22;\nvar __export32;\nvar __export42;\nvar __export52;\nvar __export62;\nvar __export72;\nvar __export82;\nvar __export92;\nvar __export102;\nvar __export112;\nvar __export122;\nvar __export132;\nvar __export142;\nvar __export152;\nvar __export162;\nvar __export172;\nvar __export182;\nif (Object.isExtensible(module2.exports) && Object.keys(module2.exports).length === 19) {\n  __export02 = module2.exports[\"unstable_now\"];\n  __export19 = module2.exports[\"unstable_IdlePriority\"];\n  __export22 = module2.exports[\"unstable_ImmediatePriority\"];\n  __export32 = module2.exports[\"unstable_LowPriority\"];\n  __export42 = module2.exports[\"unstable_NormalPriority\"];\n  __export52 = module2.exports[\"unstable_Profiling\"];\n  __export62 = module2.exports[\"unstable_UserBlockingPriority\"];\n  __export72 = module2.exports[\"unstable_cancelCallback\"];\n  __export82 = module2.exports[\"unstable_continueExecution\"];\n  __export92 = module2.exports[\"unstable_forceFrameRate\"];\n  __export102 = module2.exports[\"unstable_getCurrentPriorityLevel\"];\n  __export112 = module2.exports[\"unstable_getFirstCallbackNode\"];\n  __export122 = module2.exports[\"unstable_next\"];\n  __export132 = module2.exports[\"unstable_pauseExecution\"];\n  __export142 = module2.exports[\"unstable_requestPaint\"];\n  __export152 = module2.exports[\"unstable_runWithPriority\"];\n  __export162 = module2.exports[\"unstable_scheduleCallback\"];\n  __export172 = module2.exports[\"unstable_shouldYield\"];\n  __export182 = module2.exports[\"unstable_wrapCallback\"];\n}\nvar scheduler_production_min_default = module2.exports;\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/index.js\nfunction __cjs_default__(requiredModule) {\n  var Object2 = (typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {}).Object;\n  var isEsModule = false;\n  var specifiers = Object2.create(null);\n  var hasNamedExports = false;\n  var hasDefaultExport = false;\n  Object2.defineProperty(specifiers, \"__esModule\", {\n    value: true,\n    enumerable: false,\n    configurable: true\n  });\n  if (requiredModule) {\n    var names = Object2.getOwnPropertyNames(requiredModule);\n    ;\n    names.forEach(function(k3) {\n      if (k3 === \"default\") {\n        hasDefaultExport = true;\n      } else if (!hasNamedExports && k3 != \"__esModule\") {\n        try {\n          hasNamedExports = requiredModule[k3] != null;\n        } catch (err) {\n        }\n      }\n      Object2.defineProperty(specifiers, k3, {\n        get: function() {\n          return requiredModule[k3];\n        },\n        enumerable: true,\n        configurable: false\n      });\n    });\n    if (Object2.getOwnPropertySymbols) {\n      var symbols = Object2.getOwnPropertySymbols(requiredModule);\n      symbols.forEach(function(k3) {\n        Object2.defineProperty(specifiers, k3, {\n          get: function() {\n            return requiredModule[k3];\n          },\n          enumerable: false,\n          configurable: false\n        });\n      });\n    }\n    Object2.preventExtensions(specifiers);\n    Object2.seal(specifiers);\n    if (Object2.freeze) {\n      Object2.freeze(specifiers);\n    }\n  }\n  if (hasNamedExports) {\n    return specifiers;\n  }\n  if (hasDefaultExport) {\n    if (Object2.isExtensible(specifiers.default) && !(\"default\" in specifiers.default)) {\n      Object2.defineProperty(specifiers.default, \"default\", {\n        value: specifiers.default,\n        configurable: false,\n        enumerable: false\n      });\n    }\n    return specifiers.default;\n  }\n  return specifiers;\n}\nvar global = typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {};\nvar exports3 = {};\nvar module3 = {\n  get exports() {\n    return exports3;\n  },\n  set exports(value) {\n    exports3 = value;\n  }\n};\nif (false) {\n  module3.exports = __cjs_default__(typeof scheduler_production_min_exports !== \"undefined\" ? scheduler_production_min_exports : {});\n} else {\n  module3.exports = __cjs_default__(typeof scheduler_development_exports !== \"undefined\" ? scheduler_development_exports : {});\n}\nvar scheduler_default = module3.exports;\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nvar catalogue = {};\nvar extend = (objects) => void Object.assign(catalogue, objects);\nfunction createRenderer(_roots, _getEventPriority) {\n  function createInstance(type, _a2, root) {\n    var _b2 = _a2, {\n      args = [],\n      attach: attach2\n    } = _b2, props = __objRest(_b2, [\n      \"args\",\n      \"attach\"\n    ]);\n    let name = `${type[0].toUpperCase()}${type.slice(1)}`;\n    let instance;\n    if (type === \"primitive\") {\n      if (props.object === void 0) throw new Error(\"R3F: Primitives without 'object' are invalid!\");\n      const object = props.object;\n      instance = prepare(object, {\n        type,\n        root,\n        attach: attach2,\n        primitive: true\n      });\n    } else {\n      const target = catalogue[name];\n      if (!target) {\n        throw new Error(`R3F: ${name} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);\n      }\n      if (!Array.isArray(args)) throw new Error(\"R3F: The args prop must be an array!\");\n      instance = prepare(new target(...args), {\n        type,\n        root,\n        attach: attach2,\n        // Save args in case we need to reconstruct later for HMR\n        memoizedProps: {\n          args\n        }\n      });\n    }\n    if (instance.__r3f.attach === void 0) {\n      if (instance.isBufferGeometry) instance.__r3f.attach = \"geometry\";\n      else if (instance.isMaterial) instance.__r3f.attach = \"material\";\n    }\n    if (name !== \"inject\") applyProps$1(instance, props);\n    return instance;\n  }\n  function appendChild(parentInstance, child) {\n    let added = false;\n    if (child) {\n      var _child$__r3f, _parentInstance$__r3f;\n      if ((_child$__r3f = child.__r3f) != null && _child$__r3f.attach) {\n        attach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        parentInstance.add(child);\n        added = true;\n      }\n      if (!added) (_parentInstance$__r3f = parentInstance.__r3f) == null ? void 0 : _parentInstance$__r3f.objects.push(child);\n      if (!child.__r3f) prepare(child, {});\n      child.__r3f.parent = parentInstance;\n      updateInstance(child);\n      invalidateInstance(child);\n    }\n  }\n  function insertBefore(parentInstance, child, beforeChild) {\n    let added = false;\n    if (child) {\n      var _child$__r3f2, _parentInstance$__r3f2;\n      if ((_child$__r3f2 = child.__r3f) != null && _child$__r3f2.attach) {\n        attach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        child.parent = parentInstance;\n        child.dispatchEvent({\n          type: \"added\"\n        });\n        parentInstance.dispatchEvent({\n          type: \"childadded\",\n          child\n        });\n        const restSiblings = parentInstance.children.filter((sibling) => sibling !== child);\n        const index = restSiblings.indexOf(beforeChild);\n        parentInstance.children = [...restSiblings.slice(0, index), child, ...restSiblings.slice(index)];\n        added = true;\n      }\n      if (!added) (_parentInstance$__r3f2 = parentInstance.__r3f) == null ? void 0 : _parentInstance$__r3f2.objects.push(child);\n      if (!child.__r3f) prepare(child, {});\n      child.__r3f.parent = parentInstance;\n      updateInstance(child);\n      invalidateInstance(child);\n    }\n  }\n  function removeRecursive(array, parent, dispose2 = false) {\n    if (array) [...array].forEach((child) => removeChild(parent, child, dispose2));\n  }\n  function removeChild(parentInstance, child, dispose2) {\n    if (child) {\n      var _parentInstance$__r3f3, _child$__r3f3, _child$__r3f5;\n      if (child.__r3f) child.__r3f.parent = null;\n      if ((_parentInstance$__r3f3 = parentInstance.__r3f) != null && _parentInstance$__r3f3.objects) parentInstance.__r3f.objects = parentInstance.__r3f.objects.filter((x) => x !== child);\n      if ((_child$__r3f3 = child.__r3f) != null && _child$__r3f3.attach) {\n        detach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        var _child$__r3f4;\n        parentInstance.remove(child);\n        if ((_child$__r3f4 = child.__r3f) != null && _child$__r3f4.root) {\n          removeInteractivity(findInitialRoot(child), child);\n        }\n      }\n      const isPrimitive = (_child$__r3f5 = child.__r3f) == null ? void 0 : _child$__r3f5.primitive;\n      const shouldDispose = !isPrimitive && (dispose2 === void 0 ? child.dispose !== null : dispose2);\n      if (!isPrimitive) {\n        var _child$__r3f6;\n        removeRecursive((_child$__r3f6 = child.__r3f) == null ? void 0 : _child$__r3f6.objects, child, shouldDispose);\n        removeRecursive(child.children, child, shouldDispose);\n      }\n      delete child.__r3f;\n      if (shouldDispose && child.dispose && child.type !== \"Scene\") {\n        const callback = () => {\n          try {\n            child.dispose();\n          } catch (e) {\n          }\n        };\n        if (typeof IS_REACT_ACT_ENVIRONMENT === \"undefined\") {\n          __export16(__export1, callback);\n        } else {\n          callback();\n        }\n      }\n      invalidateInstance(parentInstance);\n    }\n  }\n  function switchInstance(instance, type, newProps, fiber) {\n    var _instance$__r3f;\n    const parent = (_instance$__r3f = instance.__r3f) == null ? void 0 : _instance$__r3f.parent;\n    if (!parent) return;\n    const newInstance = createInstance(type, newProps, instance.__r3f.root);\n    if (instance.children) {\n      for (const child of instance.children) {\n        if (child.__r3f) appendChild(newInstance, child);\n      }\n      instance.children = instance.children.filter((child) => !child.__r3f);\n    }\n    instance.__r3f.objects.forEach((child) => appendChild(newInstance, child));\n    instance.__r3f.objects = [];\n    if (!instance.__r3f.autoRemovedBeforeAppend) {\n      removeChild(parent, instance);\n    }\n    if (newInstance.parent) {\n      newInstance.__r3f.autoRemovedBeforeAppend = true;\n    }\n    appendChild(parent, newInstance);\n    if (newInstance.raycast && newInstance.__r3f.eventCount) {\n      const rootState = findInitialRoot(newInstance).getState();\n      rootState.internal.interaction.push(newInstance);\n    }\n    [fiber, fiber.alternate].forEach((fiber2) => {\n      if (fiber2 !== null) {\n        fiber2.stateNode = newInstance;\n        if (fiber2.ref) {\n          if (typeof fiber2.ref === \"function\") fiber2.ref(newInstance);\n          else fiber2.ref.current = newInstance;\n        }\n      }\n    });\n  }\n  const handleTextInstance = () => {\n  };\n  const reconciler2 = Reconciler({\n    createInstance,\n    removeChild,\n    appendChild,\n    appendInitialChild: appendChild,\n    insertBefore,\n    supportsMutation: true,\n    isPrimaryRenderer: false,\n    supportsPersistence: false,\n    supportsHydration: false,\n    noTimeout: -1,\n    appendChildToContainer: (container, child) => {\n      if (!child) return;\n      const scene = container.getState().scene;\n      if (!scene.__r3f) return;\n      scene.__r3f.root = container;\n      appendChild(scene, child);\n    },\n    removeChildFromContainer: (container, child) => {\n      if (!child) return;\n      removeChild(container.getState().scene, child);\n    },\n    insertInContainerBefore: (container, child, beforeChild) => {\n      if (!child || !beforeChild) return;\n      const scene = container.getState().scene;\n      if (!scene.__r3f) return;\n      insertBefore(scene, child, beforeChild);\n    },\n    getRootHostContext: () => null,\n    getChildHostContext: (parentHostContext) => parentHostContext,\n    finalizeInitialChildren(instance) {\n      var _instance$__r3f2;\n      const localState = (_instance$__r3f2 = instance == null ? void 0 : instance.__r3f) != null ? _instance$__r3f2 : {};\n      return Boolean(localState.handlers);\n    },\n    prepareUpdate(instance, _type, oldProps, newProps) {\n      var _instance$__r3f3;\n      const localState = (_instance$__r3f3 = instance == null ? void 0 : instance.__r3f) != null ? _instance$__r3f3 : {};\n      if (localState.primitive && newProps.object && newProps.object !== instance) {\n        return [true];\n      } else {\n        const _a2 = newProps, {\n          args: argsNew = [],\n          children: cN\n        } = _a2, restNew = __objRest(_a2, [\n          \"args\",\n          \"children\"\n        ]);\n        const _b2 = oldProps, {\n          args: argsOld = [],\n          children: cO\n        } = _b2, restOld = __objRest(_b2, [\n          \"args\",\n          \"children\"\n        ]);\n        if (!Array.isArray(argsNew)) throw new Error(\"R3F: the args prop must be an array!\");\n        if (argsNew.some((value, index) => value !== argsOld[index])) return [true];\n        const diff = diffProps(instance, restNew, restOld, true);\n        if (diff.changes.length) return [false, diff];\n        return null;\n      }\n    },\n    commitUpdate(instance, [reconstruct, diff], type, _oldProps, newProps, fiber) {\n      if (reconstruct) switchInstance(instance, type, newProps, fiber);\n      else applyProps$1(instance, diff);\n    },\n    commitMount(instance, _type, _props, _int) {\n      var _instance$__r3f4;\n      const localState = (_instance$__r3f4 = instance.__r3f) != null ? _instance$__r3f4 : {};\n      if (instance.raycast && localState.handlers && localState.eventCount) {\n        findInitialRoot(instance).getState().internal.interaction.push(instance);\n      }\n    },\n    getPublicInstance: (instance) => instance,\n    prepareForCommit: () => null,\n    preparePortalMount: (container) => prepare(container.getState().scene),\n    resetAfterCommit: () => {\n    },\n    shouldSetTextContent: () => false,\n    clearContainer: () => false,\n    hideInstance(instance) {\n      var _instance$__r3f5;\n      const {\n        attach: type,\n        parent\n      } = (_instance$__r3f5 = instance.__r3f) != null ? _instance$__r3f5 : {};\n      if (type && parent) detach(parent, instance, type);\n      if (instance.isObject3D) instance.visible = false;\n      invalidateInstance(instance);\n    },\n    unhideInstance(instance, props) {\n      var _instance$__r3f6;\n      const {\n        attach: type,\n        parent\n      } = (_instance$__r3f6 = instance.__r3f) != null ? _instance$__r3f6 : {};\n      if (type && parent) attach(parent, instance, type);\n      if (instance.isObject3D && props.visible == null || props.visible) instance.visible = true;\n      invalidateInstance(instance);\n    },\n    createTextInstance: handleTextInstance,\n    hideTextInstance: handleTextInstance,\n    unhideTextInstance: handleTextInstance,\n    // https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r916356874\n    // @ts-expect-error\n    getCurrentEventPriority: () => _getEventPriority ? _getEventPriority() : DefaultEventPriority,\n    beforeActiveInstanceBlur: () => {\n    },\n    afterActiveInstanceBlur: () => {\n    },\n    detachDeletedInstance: () => {\n    },\n    now: typeof performance !== \"undefined\" && is.fun(performance.now) ? performance.now : is.fun(Date.now) ? Date.now : () => 0,\n    // https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r920883503\n    scheduleTimeout: is.fun(setTimeout) ? setTimeout : void 0,\n    cancelTimeout: is.fun(clearTimeout) ? clearTimeout : void 0\n  });\n  return {\n    reconciler: reconciler2,\n    applyProps: applyProps$1\n  };\n}\nvar _window$document;\nvar _window$navigator;\nvar hasColorSpace = (object) => \"colorSpace\" in object || \"outputColorSpace\" in object;\nvar getColorManagement = () => {\n  var _ColorManagement;\n  return (_ColorManagement = catalogue.ColorManagement) != null ? _ColorManagement : null;\n};\nvar isOrthographicCamera = (def) => def && def.isOrthographicCamera;\nvar isRef = (obj) => obj && obj.hasOwnProperty(\"current\");\nvar useIsomorphicLayoutEffect2 = typeof window !== \"undefined\" && ((_window$document = window.document) != null && _window$document.createElement || ((_window$navigator = window.navigator) == null ? void 0 : _window$navigator.product) === \"ReactNative\") ? React.useLayoutEffect : React.useEffect;\nfunction useMutableCallback(fn) {\n  const ref = React.useRef(fn);\n  useIsomorphicLayoutEffect2(() => void (ref.current = fn), [fn]);\n  return ref;\n}\nfunction Block({\n  set\n}) {\n  useIsomorphicLayoutEffect2(() => {\n    set(new Promise(() => null));\n    return () => set(false);\n  }, [set]);\n  return null;\n}\nvar ErrorBoundary = class extends React.Component {\n  constructor(...args) {\n    super(...args);\n    this.state = {\n      error: false\n    };\n  }\n  componentDidCatch(err) {\n    this.props.set(err);\n  }\n  render() {\n    return this.state.error ? null : this.props.children;\n  }\n};\nErrorBoundary.getDerivedStateFromError = () => ({\n  error: true\n});\nvar DEFAULT = \"__default\";\nvar DEFAULTS = /* @__PURE__ */ new Map();\nvar isDiffSet = (def) => def && !!def.memoized && !!def.changes;\nfunction calculateDpr(dpr) {\n  var _window$devicePixelRa;\n  const target = typeof window !== \"undefined\" ? (_window$devicePixelRa = window.devicePixelRatio) != null ? _window$devicePixelRa : 2 : 1;\n  return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;\n}\nvar getRootState = (obj) => {\n  var _r3f;\n  return (_r3f = obj.__r3f) == null ? void 0 : _r3f.root.getState();\n};\nfunction findInitialRoot(child) {\n  let root = child.__r3f.root;\n  while (root.getState().previousRoot) root = root.getState().previousRoot;\n  return root;\n}\nvar is = {\n  obj: (a) => a === Object(a) && !is.arr(a) && typeof a !== \"function\",\n  fun: (a) => typeof a === \"function\",\n  str: (a) => typeof a === \"string\",\n  num: (a) => typeof a === \"number\",\n  boo: (a) => typeof a === \"boolean\",\n  und: (a) => a === void 0,\n  arr: (a) => Array.isArray(a),\n  equ(a, b, {\n    arrays = \"shallow\",\n    objects = \"reference\",\n    strict = true\n  } = {}) {\n    if (typeof a !== typeof b || !!a !== !!b) return false;\n    if (is.str(a) || is.num(a) || is.boo(a)) return a === b;\n    const isObj = is.obj(a);\n    if (isObj && objects === \"reference\") return a === b;\n    const isArr = is.arr(a);\n    if (isArr && arrays === \"reference\") return a === b;\n    if ((isArr || isObj) && a === b) return true;\n    let i2;\n    for (i2 in a) if (!(i2 in b)) return false;\n    if (isObj && arrays === \"shallow\" && objects === \"shallow\") {\n      for (i2 in strict ? b : a) if (!is.equ(a[i2], b[i2], {\n        strict,\n        objects: \"reference\"\n      })) return false;\n    } else {\n      for (i2 in strict ? b : a) if (a[i2] !== b[i2]) return false;\n    }\n    if (is.und(i2)) {\n      if (isArr && a.length === 0 && b.length === 0) return true;\n      if (isObj && Object.keys(a).length === 0 && Object.keys(b).length === 0) return true;\n      if (a !== b) return false;\n    }\n    return true;\n  }\n};\nfunction buildGraph(object) {\n  const data = {\n    nodes: {},\n    materials: {}\n  };\n  if (object) {\n    object.traverse((obj) => {\n      if (obj.name) data.nodes[obj.name] = obj;\n      if (obj.material && !data.materials[obj.material.name]) data.materials[obj.material.name] = obj.material;\n    });\n  }\n  return data;\n}\nfunction dispose(obj) {\n  if (obj.dispose && obj.type !== \"Scene\") obj.dispose();\n  for (const p2 in obj) {\n    p2.dispose == null ? void 0 : p2.dispose();\n    delete obj[p2];\n  }\n}\nfunction prepare(object, state) {\n  const instance = object;\n  instance.__r3f = __spreadValues({\n    type: \"\",\n    root: null,\n    previousAttach: null,\n    memoizedProps: {},\n    eventCount: 0,\n    handlers: {},\n    objects: [],\n    parent: null\n  }, state);\n  return object;\n}\nfunction resolve(instance, key) {\n  let target = instance;\n  if (key.includes(\"-\")) {\n    const entries = key.split(\"-\");\n    const last = entries.pop();\n    target = entries.reduce((acc, key2) => acc[key2], instance);\n    return {\n      target,\n      key: last\n    };\n  } else return {\n    target,\n    key\n  };\n}\nvar INDEX_REGEX = /-\\d+$/;\nfunction attach(parent, child, type) {\n  if (is.str(type)) {\n    if (INDEX_REGEX.test(type)) {\n      const root = type.replace(INDEX_REGEX, \"\");\n      const {\n        target: target2,\n        key: key2\n      } = resolve(parent, root);\n      if (!Array.isArray(target2[key2])) target2[key2] = [];\n    }\n    const {\n      target,\n      key\n    } = resolve(parent, type);\n    child.__r3f.previousAttach = target[key];\n    target[key] = child;\n  } else child.__r3f.previousAttach = type(parent, child);\n}\nfunction detach(parent, child, type) {\n  var _child$__r3f, _child$__r3f2;\n  if (is.str(type)) {\n    const {\n      target,\n      key\n    } = resolve(parent, type);\n    const previous = child.__r3f.previousAttach;\n    if (previous === void 0) delete target[key];\n    else target[key] = previous;\n  } else (_child$__r3f = child.__r3f) == null ? void 0 : _child$__r3f.previousAttach == null ? void 0 : _child$__r3f.previousAttach(parent, child);\n  (_child$__r3f2 = child.__r3f) == null ? true : delete _child$__r3f2.previousAttach;\n}\nfunction diffProps(instance, _a2, _c = {}, remove = false) {\n  var _b2 = _a2, {\n    children: cN,\n    key: kN,\n    ref: rN\n  } = _b2, props = __objRest(_b2, [\n    \"children\",\n    \"key\",\n    \"ref\"\n  ]);\n  var _d = _c, {\n    children: cP,\n    key: kP,\n    ref: rP\n  } = _d, previous = __objRest(_d, [\n    \"children\",\n    \"key\",\n    \"ref\"\n  ]);\n  const localState = instance.__r3f;\n  const entries = Object.entries(props);\n  const changes = [];\n  if (remove) {\n    const previousKeys = Object.keys(previous);\n    for (let i2 = 0; i2 < previousKeys.length; i2++) {\n      if (!props.hasOwnProperty(previousKeys[i2])) entries.unshift([previousKeys[i2], DEFAULT + \"remove\"]);\n    }\n  }\n  entries.forEach(([key, value]) => {\n    var _instance$__r3f;\n    if ((_instance$__r3f = instance.__r3f) != null && _instance$__r3f.primitive && key === \"object\") return;\n    if (is.equ(value, previous[key])) return;\n    if (/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(key)) return changes.push([key, value, true, []]);\n    let entries2 = [];\n    if (key.includes(\"-\")) entries2 = key.split(\"-\");\n    changes.push([key, value, false, entries2]);\n    for (const prop in props) {\n      const value2 = props[prop];\n      if (prop.startsWith(`${key}-`)) changes.push([prop, value2, false, prop.split(\"-\")]);\n    }\n  });\n  const memoized = __spreadValues({}, props);\n  if (localState != null && localState.memoizedProps && localState != null && localState.memoizedProps.args) memoized.args = localState.memoizedProps.args;\n  if (localState != null && localState.memoizedProps && localState != null && localState.memoizedProps.attach) memoized.attach = localState.memoizedProps.attach;\n  return {\n    memoized,\n    changes\n  };\n}\nvar __DEV__ = typeof process !== \"undefined\" && true;\nfunction applyProps$1(instance, data) {\n  var _instance$__r3f2;\n  const localState = instance.__r3f;\n  const root = localState == null ? void 0 : localState.root;\n  const rootState = root == null ? void 0 : root.getState == null ? void 0 : root.getState();\n  const {\n    memoized,\n    changes\n  } = isDiffSet(data) ? data : diffProps(instance, data);\n  const prevHandlers = localState == null ? void 0 : localState.eventCount;\n  if (instance.__r3f) instance.__r3f.memoizedProps = memoized;\n  for (let i2 = 0; i2 < changes.length; i2++) {\n    let [key, value, isEvent, keys] = changes[i2];\n    if (hasColorSpace(instance)) {\n      const sRGBEncoding = 3001;\n      const SRGBColorSpace = \"srgb\";\n      const LinearSRGBColorSpace = \"srgb-linear\";\n      if (key === \"encoding\") {\n        key = \"colorSpace\";\n        value = value === sRGBEncoding ? SRGBColorSpace : LinearSRGBColorSpace;\n      } else if (key === \"outputEncoding\") {\n        key = \"outputColorSpace\";\n        value = value === sRGBEncoding ? SRGBColorSpace : LinearSRGBColorSpace;\n      }\n    }\n    let currentInstance = instance;\n    let targetProp = currentInstance[key];\n    if (keys.length) {\n      targetProp = keys.reduce((acc, key2) => acc[key2], instance);\n      if (!(targetProp && targetProp.set)) {\n        const [name, ...reverseEntries] = keys.reverse();\n        currentInstance = reverseEntries.reverse().reduce((acc, key2) => acc[key2], instance);\n        key = name;\n      }\n    }\n    if (value === DEFAULT + \"remove\") {\n      if (currentInstance.constructor) {\n        let ctor = DEFAULTS.get(currentInstance.constructor);\n        if (!ctor) {\n          ctor = new currentInstance.constructor();\n          DEFAULTS.set(currentInstance.constructor, ctor);\n        }\n        value = ctor[key];\n      } else {\n        value = 0;\n      }\n    }\n    if (isEvent && localState) {\n      if (value) localState.handlers[key] = value;\n      else delete localState.handlers[key];\n      localState.eventCount = Object.keys(localState.handlers).length;\n    } else if (targetProp && targetProp.set && (targetProp.copy || targetProp instanceof Layers)) {\n      if (Array.isArray(value)) {\n        if (targetProp.fromArray) targetProp.fromArray(value);\n        else targetProp.set(...value);\n      } else if (targetProp.copy && value && value.constructor && // Some environments may break strict identity checks by duplicating versions of three.js.\n      // Loosen to unminified names, ignoring descendents.\n      // https://github.com/pmndrs/react-three-fiber/issues/2856\n      // TODO: fix upstream and remove in v9\n      (__DEV__ ? targetProp.constructor.name === value.constructor.name : targetProp.constructor === value.constructor)) {\n        targetProp.copy(value);\n      } else if (value !== void 0) {\n        var _targetProp;\n        const isColor = (_targetProp = targetProp) == null ? void 0 : _targetProp.isColor;\n        if (!isColor && targetProp.setScalar) targetProp.setScalar(value);\n        else if (targetProp instanceof Layers && value instanceof Layers) targetProp.mask = value.mask;\n        else targetProp.set(value);\n        if (!getColorManagement() && rootState && !rootState.linear && isColor) targetProp.convertSRGBToLinear();\n      }\n    } else {\n      var _currentInstance$key;\n      currentInstance[key] = value;\n      if ((_currentInstance$key = currentInstance[key]) != null && _currentInstance$key.isTexture && // sRGB textures must be RGBA8 since r137 https://github.com/mrdoob/three.js/pull/23129\n      currentInstance[key].format === RGBAFormat && currentInstance[key].type === UnsignedByteType && rootState) {\n        const texture = currentInstance[key];\n        if (hasColorSpace(texture) && hasColorSpace(rootState.gl)) texture.colorSpace = rootState.gl.outputColorSpace;\n        else texture.encoding = rootState.gl.outputEncoding;\n      }\n    }\n    invalidateInstance(instance);\n  }\n  if (localState && localState.parent && instance.raycast && prevHandlers !== localState.eventCount) {\n    const internal = findInitialRoot(instance).getState().internal;\n    const index = internal.interaction.indexOf(instance);\n    if (index > -1) internal.interaction.splice(index, 1);\n    if (localState.eventCount) internal.interaction.push(instance);\n  }\n  const isCircular = changes.length === 1 && changes[0][0] === \"onUpdate\";\n  if (!isCircular && changes.length && (_instance$__r3f2 = instance.__r3f) != null && _instance$__r3f2.parent) updateInstance(instance);\n  return instance;\n}\nfunction invalidateInstance(instance) {\n  var _instance$__r3f3, _instance$__r3f3$root;\n  const state = (_instance$__r3f3 = instance.__r3f) == null ? void 0 : (_instance$__r3f3$root = _instance$__r3f3.root) == null ? void 0 : _instance$__r3f3$root.getState == null ? void 0 : _instance$__r3f3$root.getState();\n  if (state && state.internal.frames === 0) state.invalidate();\n}\nfunction updateInstance(instance) {\n  instance.onUpdate == null ? void 0 : instance.onUpdate(instance);\n}\nfunction updateCamera(camera, size) {\n  if (!camera.manual) {\n    if (isOrthographicCamera(camera)) {\n      camera.left = size.width / -2;\n      camera.right = size.width / 2;\n      camera.top = size.height / 2;\n      camera.bottom = size.height / -2;\n    } else {\n      camera.aspect = size.width / size.height;\n    }\n    camera.updateProjectionMatrix();\n    camera.updateMatrixWorld();\n  }\n}\nfunction makeId(event) {\n  return (event.eventObject || event.object).uuid + \"/\" + event.index + event.instanceId;\n}\nfunction getEventPriority() {\n  var _globalScope$event;\n  const globalScope = typeof self !== \"undefined\" && self || typeof window !== \"undefined\" && window;\n  if (!globalScope) return DefaultEventPriority;\n  const name = (_globalScope$event = globalScope.event) == null ? void 0 : _globalScope$event.type;\n  switch (name) {\n    case \"click\":\n    case \"contextmenu\":\n    case \"dblclick\":\n    case \"pointercancel\":\n    case \"pointerdown\":\n    case \"pointerup\":\n      return DiscreteEventPriority;\n    case \"pointermove\":\n    case \"pointerout\":\n    case \"pointerover\":\n    case \"pointerenter\":\n    case \"pointerleave\":\n    case \"wheel\":\n      return ContinuousEventPriority;\n    default:\n      return DefaultEventPriority;\n  }\n}\nfunction releaseInternalPointerCapture(capturedMap, obj, captures, pointerId) {\n  const captureData = captures.get(obj);\n  if (captureData) {\n    captures.delete(obj);\n    if (captures.size === 0) {\n      capturedMap.delete(pointerId);\n      captureData.target.releasePointerCapture(pointerId);\n    }\n  }\n}\nfunction removeInteractivity(store, object) {\n  const {\n    internal\n  } = store.getState();\n  internal.interaction = internal.interaction.filter((o) => o !== object);\n  internal.initialHits = internal.initialHits.filter((o) => o !== object);\n  internal.hovered.forEach((value, key) => {\n    if (value.eventObject === object || value.object === object) {\n      internal.hovered.delete(key);\n    }\n  });\n  internal.capturedMap.forEach((captures, pointerId) => {\n    releaseInternalPointerCapture(internal.capturedMap, object, captures, pointerId);\n  });\n}\nfunction createEvents(store) {\n  function calculateDistance(event) {\n    const {\n      internal\n    } = store.getState();\n    const dx = event.offsetX - internal.initialClick[0];\n    const dy = event.offsetY - internal.initialClick[1];\n    return Math.round(Math.sqrt(dx * dx + dy * dy));\n  }\n  function filterPointerEvents(objects) {\n    return objects.filter((obj) => [\"Move\", \"Over\", \"Enter\", \"Out\", \"Leave\"].some((name) => {\n      var _r3f;\n      return (_r3f = obj.__r3f) == null ? void 0 : _r3f.handlers[\"onPointer\" + name];\n    }));\n  }\n  function intersect(event, filter) {\n    const state = store.getState();\n    const duplicates = /* @__PURE__ */ new Set();\n    const intersections = [];\n    const eventsObjects = filter ? filter(state.internal.interaction) : state.internal.interaction;\n    for (let i2 = 0; i2 < eventsObjects.length; i2++) {\n      const state2 = getRootState(eventsObjects[i2]);\n      if (state2) {\n        state2.raycaster.camera = void 0;\n      }\n    }\n    if (!state.previousRoot) {\n      state.events.compute == null ? void 0 : state.events.compute(event, state);\n    }\n    function handleRaycast(obj) {\n      const state2 = getRootState(obj);\n      if (!state2 || !state2.events.enabled || state2.raycaster.camera === null) return [];\n      if (state2.raycaster.camera === void 0) {\n        var _state$previousRoot;\n        state2.events.compute == null ? void 0 : state2.events.compute(event, state2, (_state$previousRoot = state2.previousRoot) == null ? void 0 : _state$previousRoot.getState());\n        if (state2.raycaster.camera === void 0) state2.raycaster.camera = null;\n      }\n      return state2.raycaster.camera ? state2.raycaster.intersectObject(obj, true) : [];\n    }\n    let hits = eventsObjects.flatMap(handleRaycast).sort((a, b) => {\n      const aState = getRootState(a.object);\n      const bState = getRootState(b.object);\n      if (!aState || !bState) return a.distance - b.distance;\n      return bState.events.priority - aState.events.priority || a.distance - b.distance;\n    }).filter((item) => {\n      const id = makeId(item);\n      if (duplicates.has(id)) return false;\n      duplicates.add(id);\n      return true;\n    });\n    if (state.events.filter) hits = state.events.filter(hits, state);\n    for (const hit of hits) {\n      let eventObject = hit.object;\n      while (eventObject) {\n        var _r3f2;\n        if ((_r3f2 = eventObject.__r3f) != null && _r3f2.eventCount) intersections.push(__spreadProps(__spreadValues({}, hit), {\n          eventObject\n        }));\n        eventObject = eventObject.parent;\n      }\n    }\n    if (\"pointerId\" in event && state.internal.capturedMap.has(event.pointerId)) {\n      for (let captureData of state.internal.capturedMap.get(event.pointerId).values()) {\n        if (!duplicates.has(makeId(captureData.intersection))) intersections.push(captureData.intersection);\n      }\n    }\n    return intersections;\n  }\n  function handleIntersects(intersections, event, delta, callback) {\n    const rootState = store.getState();\n    if (intersections.length) {\n      const localState = {\n        stopped: false\n      };\n      for (const hit of intersections) {\n        const state = getRootState(hit.object) || rootState;\n        const {\n          raycaster,\n          pointer,\n          camera,\n          internal\n        } = state;\n        const unprojectedPoint = new Vector3(pointer.x, pointer.y, 0).unproject(camera);\n        const hasPointerCapture = (id) => {\n          var _internal$capturedMap, _internal$capturedMap2;\n          return (_internal$capturedMap = (_internal$capturedMap2 = internal.capturedMap.get(id)) == null ? void 0 : _internal$capturedMap2.has(hit.eventObject)) != null ? _internal$capturedMap : false;\n        };\n        const setPointerCapture = (id) => {\n          const captureData = {\n            intersection: hit,\n            target: event.target\n          };\n          if (internal.capturedMap.has(id)) {\n            internal.capturedMap.get(id).set(hit.eventObject, captureData);\n          } else {\n            internal.capturedMap.set(id, /* @__PURE__ */ new Map([[hit.eventObject, captureData]]));\n          }\n          event.target.setPointerCapture(id);\n        };\n        const releasePointerCapture = (id) => {\n          const captures = internal.capturedMap.get(id);\n          if (captures) {\n            releaseInternalPointerCapture(internal.capturedMap, hit.eventObject, captures, id);\n          }\n        };\n        let extractEventProps = {};\n        for (let prop in event) {\n          let property = event[prop];\n          if (typeof property !== \"function\") extractEventProps[prop] = property;\n        }\n        let raycastEvent = __spreadProps(__spreadValues(__spreadValues({}, hit), extractEventProps), {\n          pointer,\n          intersections,\n          stopped: localState.stopped,\n          delta,\n          unprojectedPoint,\n          ray: raycaster.ray,\n          camera,\n          // Hijack stopPropagation, which just sets a flag\n          stopPropagation() {\n            const capturesForPointer = \"pointerId\" in event && internal.capturedMap.get(event.pointerId);\n            if (\n              // ...if this pointer hasn't been captured\n              !capturesForPointer || // ... or if the hit object is capturing the pointer\n              capturesForPointer.has(hit.eventObject)\n            ) {\n              raycastEvent.stopped = localState.stopped = true;\n              if (internal.hovered.size && Array.from(internal.hovered.values()).find((i2) => i2.eventObject === hit.eventObject)) {\n                const higher = intersections.slice(0, intersections.indexOf(hit));\n                cancelPointer([...higher, hit]);\n              }\n            }\n          },\n          // there should be a distinction between target and currentTarget\n          target: {\n            hasPointerCapture,\n            setPointerCapture,\n            releasePointerCapture\n          },\n          currentTarget: {\n            hasPointerCapture,\n            setPointerCapture,\n            releasePointerCapture\n          },\n          nativeEvent: event\n        });\n        callback(raycastEvent);\n        if (localState.stopped === true) break;\n      }\n    }\n    return intersections;\n  }\n  function cancelPointer(intersections) {\n    const {\n      internal\n    } = store.getState();\n    for (const hoveredObj of internal.hovered.values()) {\n      if (!intersections.length || !intersections.find((hit) => hit.object === hoveredObj.object && hit.index === hoveredObj.index && hit.instanceId === hoveredObj.instanceId)) {\n        const eventObject = hoveredObj.eventObject;\n        const instance = eventObject.__r3f;\n        const handlers = instance == null ? void 0 : instance.handlers;\n        internal.hovered.delete(makeId(hoveredObj));\n        if (instance != null && instance.eventCount) {\n          const data = __spreadProps(__spreadValues({}, hoveredObj), {\n            intersections\n          });\n          handlers.onPointerOut == null ? void 0 : handlers.onPointerOut(data);\n          handlers.onPointerLeave == null ? void 0 : handlers.onPointerLeave(data);\n        }\n      }\n    }\n  }\n  function pointerMissed(event, objects) {\n    for (let i2 = 0; i2 < objects.length; i2++) {\n      const instance = objects[i2].__r3f;\n      instance == null ? void 0 : instance.handlers.onPointerMissed == null ? void 0 : instance.handlers.onPointerMissed(event);\n    }\n  }\n  function handlePointer(name) {\n    switch (name) {\n      case \"onPointerLeave\":\n      case \"onPointerCancel\":\n        return () => cancelPointer([]);\n      case \"onLostPointerCapture\":\n        return (event) => {\n          const {\n            internal\n          } = store.getState();\n          if (\"pointerId\" in event && internal.capturedMap.has(event.pointerId)) {\n            requestAnimationFrame(() => {\n              if (internal.capturedMap.has(event.pointerId)) {\n                internal.capturedMap.delete(event.pointerId);\n                cancelPointer([]);\n              }\n            });\n          }\n        };\n    }\n    return function handleEvent(event) {\n      const {\n        onPointerMissed,\n        internal\n      } = store.getState();\n      internal.lastEvent.current = event;\n      const isPointerMove = name === \"onPointerMove\";\n      const isClickEvent = name === \"onClick\" || name === \"onContextMenu\" || name === \"onDoubleClick\";\n      const filter = isPointerMove ? filterPointerEvents : void 0;\n      const hits = intersect(event, filter);\n      const delta = isClickEvent ? calculateDistance(event) : 0;\n      if (name === \"onPointerDown\") {\n        internal.initialClick = [event.offsetX, event.offsetY];\n        internal.initialHits = hits.map((hit) => hit.eventObject);\n      }\n      if (isClickEvent && !hits.length) {\n        if (delta <= 2) {\n          pointerMissed(event, internal.interaction);\n          if (onPointerMissed) onPointerMissed(event);\n        }\n      }\n      if (isPointerMove) cancelPointer(hits);\n      function onIntersect(data) {\n        const eventObject = data.eventObject;\n        const instance = eventObject.__r3f;\n        const handlers = instance == null ? void 0 : instance.handlers;\n        if (!(instance != null && instance.eventCount)) return;\n        if (isPointerMove) {\n          if (handlers.onPointerOver || handlers.onPointerEnter || handlers.onPointerOut || handlers.onPointerLeave) {\n            const id = makeId(data);\n            const hoveredItem = internal.hovered.get(id);\n            if (!hoveredItem) {\n              internal.hovered.set(id, data);\n              handlers.onPointerOver == null ? void 0 : handlers.onPointerOver(data);\n              handlers.onPointerEnter == null ? void 0 : handlers.onPointerEnter(data);\n            } else if (hoveredItem.stopped) {\n              data.stopPropagation();\n            }\n          }\n          handlers.onPointerMove == null ? void 0 : handlers.onPointerMove(data);\n        } else {\n          const handler = handlers[name];\n          if (handler) {\n            if (!isClickEvent || internal.initialHits.includes(eventObject)) {\n              pointerMissed(event, internal.interaction.filter((object) => !internal.initialHits.includes(object)));\n              handler(data);\n            }\n          } else {\n            if (isClickEvent && internal.initialHits.includes(eventObject)) {\n              pointerMissed(event, internal.interaction.filter((object) => !internal.initialHits.includes(object)));\n            }\n          }\n        }\n      }\n      handleIntersects(hits, event, delta, onIntersect);\n    };\n  }\n  return {\n    handlePointer\n  };\n}\nvar isRenderer = (def) => !!(def != null && def.render);\nvar context = /* @__PURE__ */ React.createContext(null);\nvar createStore2 = (invalidate2, advance2) => {\n  const rootState = create((set, get) => {\n    const position = new Vector3();\n    const defaultTarget = new Vector3();\n    const tempTarget = new Vector3();\n    function getCurrentViewport(camera = get().camera, target = defaultTarget, size = get().size) {\n      const {\n        width,\n        height,\n        top,\n        left\n      } = size;\n      const aspect = width / height;\n      if (target.isVector3) tempTarget.copy(target);\n      else tempTarget.set(...target);\n      const distance = camera.getWorldPosition(position).distanceTo(tempTarget);\n      if (isOrthographicCamera(camera)) {\n        return {\n          width: width / camera.zoom,\n          height: height / camera.zoom,\n          top,\n          left,\n          factor: 1,\n          distance,\n          aspect\n        };\n      } else {\n        const fov = camera.fov * Math.PI / 180;\n        const h2 = 2 * Math.tan(fov / 2) * distance;\n        const w = h2 * (width / height);\n        return {\n          width: w,\n          height: h2,\n          top,\n          left,\n          factor: width / w,\n          distance,\n          aspect\n        };\n      }\n    }\n    let performanceTimeout = void 0;\n    const setPerformanceCurrent = (current) => set((state2) => ({\n      performance: __spreadProps(__spreadValues({}, state2.performance), {\n        current\n      })\n    }));\n    const pointer = new Vector2();\n    const rootState2 = {\n      set,\n      get,\n      // Mock objects that have to be configured\n      gl: null,\n      camera: null,\n      raycaster: null,\n      events: {\n        priority: 1,\n        enabled: true,\n        connected: false\n      },\n      xr: null,\n      scene: null,\n      invalidate: (frames = 1) => invalidate2(get(), frames),\n      advance: (timestamp, runGlobalEffects) => advance2(timestamp, runGlobalEffects, get()),\n      legacy: false,\n      linear: false,\n      flat: false,\n      controls: null,\n      clock: new Clock(),\n      pointer,\n      mouse: pointer,\n      frameloop: \"always\",\n      onPointerMissed: void 0,\n      performance: {\n        current: 1,\n        min: 0.5,\n        max: 1,\n        debounce: 200,\n        regress: () => {\n          const state2 = get();\n          if (performanceTimeout) clearTimeout(performanceTimeout);\n          if (state2.performance.current !== state2.performance.min) setPerformanceCurrent(state2.performance.min);\n          performanceTimeout = setTimeout(() => setPerformanceCurrent(get().performance.max), state2.performance.debounce);\n        }\n      },\n      size: {\n        width: 0,\n        height: 0,\n        top: 0,\n        left: 0,\n        updateStyle: false\n      },\n      viewport: {\n        initialDpr: 0,\n        dpr: 0,\n        width: 0,\n        height: 0,\n        top: 0,\n        left: 0,\n        aspect: 0,\n        distance: 0,\n        factor: 0,\n        getCurrentViewport\n      },\n      setEvents: (events) => set((state2) => __spreadProps(__spreadValues({}, state2), {\n        events: __spreadValues(__spreadValues({}, state2.events), events)\n      })),\n      setSize: (width, height, updateStyle, top, left) => {\n        const camera = get().camera;\n        const size = {\n          width,\n          height,\n          top: top || 0,\n          left: left || 0,\n          updateStyle\n        };\n        set((state2) => ({\n          size,\n          viewport: __spreadValues(__spreadValues({}, state2.viewport), getCurrentViewport(camera, defaultTarget, size))\n        }));\n      },\n      setDpr: (dpr) => set((state2) => {\n        const resolved = calculateDpr(dpr);\n        return {\n          viewport: __spreadProps(__spreadValues({}, state2.viewport), {\n            dpr: resolved,\n            initialDpr: state2.viewport.initialDpr || resolved\n          })\n        };\n      }),\n      setFrameloop: (frameloop = \"always\") => {\n        const clock = get().clock;\n        clock.stop();\n        clock.elapsedTime = 0;\n        if (frameloop !== \"never\") {\n          clock.start();\n          clock.elapsedTime = 0;\n        }\n        set(() => ({\n          frameloop\n        }));\n      },\n      previousRoot: void 0,\n      internal: {\n        active: false,\n        priority: 0,\n        frames: 0,\n        lastEvent: /* @__PURE__ */ React.createRef(),\n        interaction: [],\n        hovered: /* @__PURE__ */ new Map(),\n        subscribers: [],\n        initialClick: [0, 0],\n        initialHits: [],\n        capturedMap: /* @__PURE__ */ new Map(),\n        subscribe: (ref, priority, store) => {\n          const internal = get().internal;\n          internal.priority = internal.priority + (priority > 0 ? 1 : 0);\n          internal.subscribers.push({\n            ref,\n            priority,\n            store\n          });\n          internal.subscribers = internal.subscribers.sort((a, b) => a.priority - b.priority);\n          return () => {\n            const internal2 = get().internal;\n            if (internal2 != null && internal2.subscribers) {\n              internal2.priority = internal2.priority - (priority > 0 ? 1 : 0);\n              internal2.subscribers = internal2.subscribers.filter((s) => s.ref !== ref);\n            }\n          };\n        }\n      }\n    };\n    return rootState2;\n  });\n  const state = rootState.getState();\n  let oldSize = state.size;\n  let oldDpr = state.viewport.dpr;\n  let oldCamera = state.camera;\n  rootState.subscribe(() => {\n    const {\n      camera,\n      size,\n      viewport,\n      gl,\n      set\n    } = rootState.getState();\n    if (size.width !== oldSize.width || size.height !== oldSize.height || viewport.dpr !== oldDpr) {\n      var _size$updateStyle;\n      oldSize = size;\n      oldDpr = viewport.dpr;\n      updateCamera(camera, size);\n      gl.setPixelRatio(viewport.dpr);\n      const updateStyle = (_size$updateStyle = size.updateStyle) != null ? _size$updateStyle : typeof HTMLCanvasElement !== \"undefined\" && gl.domElement instanceof HTMLCanvasElement;\n      gl.setSize(size.width, size.height, updateStyle);\n    }\n    if (camera !== oldCamera) {\n      oldCamera = camera;\n      set((state2) => ({\n        viewport: __spreadValues(__spreadValues({}, state2.viewport), state2.viewport.getCurrentViewport(camera))\n      }));\n    }\n  });\n  rootState.subscribe((state2) => invalidate2(state2));\n  return rootState;\n};\nvar i;\nvar globalEffects = /* @__PURE__ */ new Set();\nvar globalAfterEffects = /* @__PURE__ */ new Set();\nvar globalTailEffects = /* @__PURE__ */ new Set();\nfunction run(effects, timestamp) {\n  if (!effects.size) return;\n  for (const {\n    callback\n  } of effects.values()) {\n    callback(timestamp);\n  }\n}\nfunction flushGlobalEffects(type, timestamp) {\n  switch (type) {\n    case \"before\":\n      return run(globalEffects, timestamp);\n    case \"after\":\n      return run(globalAfterEffects, timestamp);\n    case \"tail\":\n      return run(globalTailEffects, timestamp);\n  }\n}\nvar subscribers;\nvar subscription;\nfunction render$1(timestamp, state, frame) {\n  let delta = state.clock.getDelta();\n  if (state.frameloop === \"never\" && typeof timestamp === \"number\") {\n    delta = timestamp - state.clock.elapsedTime;\n    state.clock.oldTime = state.clock.elapsedTime;\n    state.clock.elapsedTime = timestamp;\n  }\n  subscribers = state.internal.subscribers;\n  for (i = 0; i < subscribers.length; i++) {\n    subscription = subscribers[i];\n    subscription.ref.current(subscription.store.getState(), delta, frame);\n  }\n  if (!state.internal.priority && state.gl.render) state.gl.render(state.scene, state.camera);\n  state.internal.frames = Math.max(0, state.internal.frames - 1);\n  return state.frameloop === \"always\" ? 1 : state.internal.frames;\n}\nfunction createLoop(roots2) {\n  let running = false;\n  let useFrameInProgress = false;\n  let repeat;\n  let frame;\n  let state;\n  function loop(timestamp) {\n    frame = requestAnimationFrame(loop);\n    running = true;\n    repeat = 0;\n    flushGlobalEffects(\"before\", timestamp);\n    useFrameInProgress = true;\n    for (const root of roots2.values()) {\n      var _state$gl$xr;\n      state = root.store.getState();\n      if (state.internal.active && (state.frameloop === \"always\" || state.internal.frames > 0) && !((_state$gl$xr = state.gl.xr) != null && _state$gl$xr.isPresenting)) {\n        repeat += render$1(timestamp, state);\n      }\n    }\n    useFrameInProgress = false;\n    flushGlobalEffects(\"after\", timestamp);\n    if (repeat === 0) {\n      flushGlobalEffects(\"tail\", timestamp);\n      running = false;\n      return cancelAnimationFrame(frame);\n    }\n  }\n  function invalidate2(state2, frames = 1) {\n    var _state$gl$xr2;\n    if (!state2) return roots2.forEach((root) => invalidate2(root.store.getState(), frames));\n    if ((_state$gl$xr2 = state2.gl.xr) != null && _state$gl$xr2.isPresenting || !state2.internal.active || state2.frameloop === \"never\") return;\n    if (frames > 1) {\n      state2.internal.frames = Math.min(60, state2.internal.frames + frames);\n    } else {\n      if (useFrameInProgress) {\n        state2.internal.frames = 2;\n      } else {\n        state2.internal.frames = 1;\n      }\n    }\n    if (!running) {\n      running = true;\n      requestAnimationFrame(loop);\n    }\n  }\n  function advance2(timestamp, runGlobalEffects = true, state2, frame2) {\n    if (runGlobalEffects) flushGlobalEffects(\"before\", timestamp);\n    if (!state2) for (const root of roots2.values()) render$1(timestamp, root.store.getState());\n    else render$1(timestamp, state2, frame2);\n    if (runGlobalEffects) flushGlobalEffects(\"after\", timestamp);\n  }\n  return {\n    loop,\n    invalidate: invalidate2,\n    advance: advance2\n  };\n}\nfunction useStore() {\n  const store = React.useContext(context);\n  if (!store) throw new Error(\"R3F: Hooks can only be used within the Canvas component!\");\n  return store;\n}\nfunction useThree(selector = (state) => state, equalityFn) {\n  return useStore()(selector, equalityFn);\n}\nfunction useFrame(callback, renderPriority = 0) {\n  const store = useStore();\n  const subscribe = store.getState().internal.subscribe;\n  const ref = useMutableCallback(callback);\n  useIsomorphicLayoutEffect2(() => subscribe(ref, renderPriority, store), [renderPriority, subscribe, store]);\n  return null;\n}\nvar memoizedLoaders = /* @__PURE__ */ new WeakMap();\nfunction loadingFn(extensions, onProgress) {\n  return function(Proto, ...input) {\n    let loader = memoizedLoaders.get(Proto);\n    if (!loader) {\n      loader = new Proto();\n      memoizedLoaders.set(Proto, loader);\n    }\n    if (extensions) extensions(loader);\n    return Promise.all(input.map((input2) => new Promise((res, reject) => loader.load(input2, (data) => {\n      if (data.scene) Object.assign(data, buildGraph(data.scene));\n      res(data);\n    }, onProgress, (error2) => reject(new Error(`Could not load ${input2}: ${error2 == null ? void 0 : error2.message}`))))));\n  };\n}\nfunction useLoader(Proto, input, extensions, onProgress) {\n  const keys = Array.isArray(input) ? input : [input];\n  const results = suspend(loadingFn(extensions, onProgress), [Proto, ...keys], {\n    equal: is.equ\n  });\n  return Array.isArray(input) ? results : results[0];\n}\nuseLoader.preload = function(Proto, input, extensions) {\n  const keys = Array.isArray(input) ? input : [input];\n  return preload(loadingFn(extensions), [Proto, ...keys]);\n};\nuseLoader.clear = function(Proto, input) {\n  const keys = Array.isArray(input) ? input : [input];\n  return clear([Proto, ...keys]);\n};\nvar roots = /* @__PURE__ */ new Map();\nvar {\n  invalidate,\n  advance\n} = createLoop(roots);\nvar {\n  reconciler,\n  applyProps\n} = createRenderer(roots, getEventPriority);\nvar shallowLoose = {\n  objects: \"shallow\",\n  strict: false\n};\nvar createRendererInstance = (gl, canvas) => {\n  const customRenderer = typeof gl === \"function\" ? gl(canvas) : gl;\n  if (isRenderer(customRenderer)) return customRenderer;\n  else return new WebGLRenderer(__spreadValues({\n    powerPreference: \"high-performance\",\n    canvas,\n    antialias: true,\n    alpha: true\n  }, gl));\n};\nfunction computeInitialSize(canvas, defaultSize) {\n  const defaultStyle = typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement;\n  if (defaultSize) {\n    const {\n      width,\n      height,\n      top,\n      left,\n      updateStyle = defaultStyle\n    } = defaultSize;\n    return {\n      width,\n      height,\n      top,\n      left,\n      updateStyle\n    };\n  } else if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement && canvas.parentElement) {\n    const {\n      width,\n      height,\n      top,\n      left\n    } = canvas.parentElement.getBoundingClientRect();\n    return {\n      width,\n      height,\n      top,\n      left,\n      updateStyle: defaultStyle\n    };\n  } else if (typeof OffscreenCanvas !== \"undefined\" && canvas instanceof OffscreenCanvas) {\n    return {\n      width: canvas.width,\n      height: canvas.height,\n      top: 0,\n      left: 0,\n      updateStyle: defaultStyle\n    };\n  }\n  return {\n    width: 0,\n    height: 0,\n    top: 0,\n    left: 0\n  };\n}\nfunction createRoot(canvas) {\n  const prevRoot = roots.get(canvas);\n  const prevFiber = prevRoot == null ? void 0 : prevRoot.fiber;\n  const prevStore = prevRoot == null ? void 0 : prevRoot.store;\n  if (prevRoot) console.warn(\"R3F.createRoot should only be called once!\");\n  const logRecoverableError = typeof reportError === \"function\" ? (\n    // In modern browsers, reportError will dispatch an error event,\n    // emulating an uncaught JavaScript error.\n    reportError\n  ) : (\n    // In older browsers and test environments, fallback to console.error.\n    console.error\n  );\n  const store = prevStore || createStore2(invalidate, advance);\n  const fiber = prevFiber || reconciler.createContainer(store, ConcurrentRoot, null, false, null, \"\", logRecoverableError, null);\n  if (!prevRoot) roots.set(canvas, {\n    fiber,\n    store\n  });\n  let onCreated;\n  let configured = false;\n  let lastCamera;\n  return {\n    configure(props = {}) {\n      let {\n        gl: glConfig,\n        size: propsSize,\n        scene: sceneOptions,\n        events,\n        onCreated: onCreatedCallback,\n        shadows = false,\n        linear = false,\n        flat = false,\n        legacy = false,\n        orthographic = false,\n        frameloop = \"always\",\n        dpr = [1, 2],\n        performance: performance2,\n        raycaster: raycastOptions,\n        camera: cameraOptions,\n        onPointerMissed\n      } = props;\n      let state = store.getState();\n      let gl = state.gl;\n      if (!state.gl) state.set({\n        gl: gl = createRendererInstance(glConfig, canvas)\n      });\n      let raycaster = state.raycaster;\n      if (!raycaster) state.set({\n        raycaster: raycaster = new Raycaster()\n      });\n      const _a2 = raycastOptions || {}, {\n        params\n      } = _a2, options = __objRest(_a2, [\n        \"params\"\n      ]);\n      if (!is.equ(options, raycaster, shallowLoose)) applyProps(raycaster, __spreadValues({}, options));\n      if (!is.equ(params, raycaster.params, shallowLoose)) applyProps(raycaster, {\n        params: __spreadValues(__spreadValues({}, raycaster.params), params)\n      });\n      if (!state.camera || state.camera === lastCamera && !is.equ(lastCamera, cameraOptions, shallowLoose)) {\n        lastCamera = cameraOptions;\n        const isCamera = cameraOptions instanceof Camera;\n        const camera = isCamera ? cameraOptions : orthographic ? new OrthographicCamera(0, 0, 0, 0, 0.1, 1e3) : new PerspectiveCamera(75, 0, 0.1, 1e3);\n        if (!isCamera) {\n          camera.position.z = 5;\n          if (cameraOptions) {\n            applyProps(camera, cameraOptions);\n            if (\"aspect\" in cameraOptions || \"left\" in cameraOptions || \"right\" in cameraOptions || \"bottom\" in cameraOptions || \"top\" in cameraOptions) {\n              camera.manual = true;\n              camera.updateProjectionMatrix();\n            }\n          }\n          if (!state.camera && !(cameraOptions != null && cameraOptions.rotation)) camera.lookAt(0, 0, 0);\n        }\n        state.set({\n          camera\n        });\n        raycaster.camera = camera;\n      }\n      if (!state.scene) {\n        let scene;\n        if (sceneOptions != null && sceneOptions.isScene) {\n          scene = sceneOptions;\n        } else {\n          scene = new Scene();\n          if (sceneOptions) applyProps(scene, sceneOptions);\n        }\n        state.set({\n          scene: prepare(scene)\n        });\n      }\n      if (!state.xr) {\n        var _gl$xr;\n        const handleXRFrame = (timestamp, frame) => {\n          const state2 = store.getState();\n          if (state2.frameloop === \"never\") return;\n          advance(timestamp, true, state2, frame);\n        };\n        const handleSessionChange = () => {\n          const state2 = store.getState();\n          state2.gl.xr.enabled = state2.gl.xr.isPresenting;\n          state2.gl.xr.setAnimationLoop(state2.gl.xr.isPresenting ? handleXRFrame : null);\n          if (!state2.gl.xr.isPresenting) invalidate(state2);\n        };\n        const xr = {\n          connect() {\n            const gl2 = store.getState().gl;\n            gl2.xr.addEventListener(\"sessionstart\", handleSessionChange);\n            gl2.xr.addEventListener(\"sessionend\", handleSessionChange);\n          },\n          disconnect() {\n            const gl2 = store.getState().gl;\n            gl2.xr.removeEventListener(\"sessionstart\", handleSessionChange);\n            gl2.xr.removeEventListener(\"sessionend\", handleSessionChange);\n          }\n        };\n        if (typeof ((_gl$xr = gl.xr) == null ? void 0 : _gl$xr.addEventListener) === \"function\") xr.connect();\n        state.set({\n          xr\n        });\n      }\n      if (gl.shadowMap) {\n        const oldEnabled = gl.shadowMap.enabled;\n        const oldType = gl.shadowMap.type;\n        gl.shadowMap.enabled = !!shadows;\n        if (is.boo(shadows)) {\n          gl.shadowMap.type = PCFSoftShadowMap;\n        } else if (is.str(shadows)) {\n          var _types$shadows;\n          const types = {\n            basic: BasicShadowMap,\n            percentage: PCFShadowMap,\n            soft: PCFSoftShadowMap,\n            variance: VSMShadowMap\n          };\n          gl.shadowMap.type = (_types$shadows = types[shadows]) != null ? _types$shadows : PCFSoftShadowMap;\n        } else if (is.obj(shadows)) {\n          Object.assign(gl.shadowMap, shadows);\n        }\n        if (oldEnabled !== gl.shadowMap.enabled || oldType !== gl.shadowMap.type) gl.shadowMap.needsUpdate = true;\n      }\n      const ColorManagement = getColorManagement();\n      if (ColorManagement) {\n        if (\"enabled\" in ColorManagement) ColorManagement.enabled = !legacy;\n        else if (\"legacyMode\" in ColorManagement) ColorManagement.legacyMode = legacy;\n      }\n      if (!configured) {\n        const LinearEncoding = 3e3;\n        const sRGBEncoding = 3001;\n        applyProps(gl, {\n          outputEncoding: linear ? LinearEncoding : sRGBEncoding,\n          toneMapping: flat ? NoToneMapping : ACESFilmicToneMapping\n        });\n      }\n      if (state.legacy !== legacy) state.set(() => ({\n        legacy\n      }));\n      if (state.linear !== linear) state.set(() => ({\n        linear\n      }));\n      if (state.flat !== flat) state.set(() => ({\n        flat\n      }));\n      if (glConfig && !is.fun(glConfig) && !isRenderer(glConfig) && !is.equ(glConfig, gl, shallowLoose)) applyProps(gl, glConfig);\n      if (events && !state.events.handlers) state.set({\n        events: events(store)\n      });\n      const size = computeInitialSize(canvas, propsSize);\n      if (!is.equ(size, state.size, shallowLoose)) {\n        state.setSize(size.width, size.height, size.updateStyle, size.top, size.left);\n      }\n      if (dpr && state.viewport.dpr !== calculateDpr(dpr)) state.setDpr(dpr);\n      if (state.frameloop !== frameloop) state.setFrameloop(frameloop);\n      if (!state.onPointerMissed) state.set({\n        onPointerMissed\n      });\n      if (performance2 && !is.equ(performance2, state.performance, shallowLoose)) state.set((state2) => ({\n        performance: __spreadValues(__spreadValues({}, state2.performance), performance2)\n      }));\n      onCreated = onCreatedCallback;\n      configured = true;\n      return this;\n    },\n    render(children) {\n      if (!configured) this.configure();\n      reconciler.updateContainer(/* @__PURE__ */ jsx(Provider, {\n        store,\n        children,\n        onCreated,\n        rootElement: canvas\n      }), fiber, null, () => void 0);\n      return store;\n    },\n    unmount() {\n      unmountComponentAtNode(canvas);\n    }\n  };\n}\nfunction Provider({\n  store,\n  children,\n  onCreated,\n  rootElement\n}) {\n  useIsomorphicLayoutEffect2(() => {\n    const state = store.getState();\n    state.set((state2) => ({\n      internal: __spreadProps(__spreadValues({}, state2.internal), {\n        active: true\n      })\n    }));\n    if (onCreated) onCreated(state);\n    if (!store.getState().events.connected) state.events.connect == null ? void 0 : state.events.connect(rootElement);\n  }, []);\n  return /* @__PURE__ */ jsx(context.Provider, {\n    value: store,\n    children\n  });\n}\nfunction unmountComponentAtNode(canvas, callback) {\n  const root = roots.get(canvas);\n  const fiber = root == null ? void 0 : root.fiber;\n  if (fiber) {\n    const state = root == null ? void 0 : root.store.getState();\n    if (state) state.internal.active = false;\n    reconciler.updateContainer(null, fiber, null, () => {\n      if (state) {\n        setTimeout(() => {\n          try {\n            var _state$gl, _state$gl$renderLists, _state$gl2, _state$gl3;\n            state.events.disconnect == null ? void 0 : state.events.disconnect();\n            (_state$gl = state.gl) == null ? void 0 : (_state$gl$renderLists = _state$gl.renderLists) == null ? void 0 : _state$gl$renderLists.dispose == null ? void 0 : _state$gl$renderLists.dispose();\n            (_state$gl2 = state.gl) == null ? void 0 : _state$gl2.forceContextLoss == null ? void 0 : _state$gl2.forceContextLoss();\n            if ((_state$gl3 = state.gl) != null && _state$gl3.xr) state.xr.disconnect();\n            dispose(state);\n            roots.delete(canvas);\n            if (callback) callback(canvas);\n          } catch (e) {\n          }\n        }, 500);\n      }\n    });\n  }\n}\nreconciler.injectIntoDevTools({\n  bundleType: false ? 0 : 1,\n  rendererPackageName: \"@react-three/fiber\",\n  version: React.version\n});\nvar DOM_EVENTS = {\n  onClick: [\"click\", false],\n  onContextMenu: [\"contextmenu\", false],\n  onDoubleClick: [\"dblclick\", false],\n  onWheel: [\"wheel\", true],\n  onPointerDown: [\"pointerdown\", true],\n  onPointerUp: [\"pointerup\", true],\n  onPointerLeave: [\"pointerleave\", true],\n  onPointerMove: [\"pointermove\", true],\n  onPointerCancel: [\"pointercancel\", true],\n  onLostPointerCapture: [\"lostpointercapture\", true]\n};\nfunction createPointerEvents(store) {\n  const {\n    handlePointer\n  } = createEvents(store);\n  return {\n    priority: 1,\n    enabled: true,\n    compute(event, state, previous) {\n      state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);\n      state.raycaster.setFromCamera(state.pointer, state.camera);\n    },\n    connected: void 0,\n    handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => __spreadProps(__spreadValues({}, acc), {\n      [key]: handlePointer(key)\n    }), {}),\n    update: () => {\n      var _internal$lastEvent;\n      const {\n        events,\n        internal\n      } = store.getState();\n      if ((_internal$lastEvent = internal.lastEvent) != null && _internal$lastEvent.current && events.handlers) events.handlers.onPointerMove(internal.lastEvent.current);\n    },\n    connect: (target) => {\n      var _events$handlers;\n      const {\n        set,\n        events\n      } = store.getState();\n      events.disconnect == null ? void 0 : events.disconnect();\n      set((state) => ({\n        events: __spreadProps(__spreadValues({}, state.events), {\n          connected: target\n        })\n      }));\n      Object.entries((_events$handlers = events.handlers) != null ? _events$handlers : []).forEach(([name, event]) => {\n        const [eventName, passive] = DOM_EVENTS[name];\n        target.addEventListener(eventName, event, {\n          passive\n        });\n      });\n    },\n    disconnect: () => {\n      const {\n        set,\n        events\n      } = store.getState();\n      if (events.connected) {\n        var _events$handlers2;\n        Object.entries((_events$handlers2 = events.handlers) != null ? _events$handlers2 : []).forEach(([name, event]) => {\n          if (events && events.connected instanceof HTMLElement) {\n            const [eventName] = DOM_EVENTS[name];\n            events.connected.removeEventListener(eventName, event);\n          }\n        });\n        set((state) => ({\n          events: __spreadProps(__spreadValues({}, state.events), {\n            connected: void 0\n          })\n        }));\n      }\n    }\n  };\n}\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/react-three-fiber.esm.js\nimport * as React3 from \"react\";\n\n// ../../node_modules/.pnpm/react-use-measure@2.1.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use-measure/dist/index.js\nimport { useState as T, useRef as p, useEffect as u2, useMemo as M2 } from \"react\";\nfunction g2(n, t2) {\n  let o;\n  return (...i2) => {\n    window.clearTimeout(o), o = window.setTimeout(() => n(...i2), t2);\n  };\n}\nfunction j({ debounce: n, scroll: t2, polyfill: o, offsetSize: i2 } = { debounce: 0, scroll: false, offsetSize: false }) {\n  const a = o || (typeof window == \"undefined\" ? class {\n  } : window.ResizeObserver);\n  if (!a) throw new Error(\"This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills\");\n  const [c, h2] = T({ left: 0, top: 0, width: 0, height: 0, bottom: 0, right: 0, x: 0, y: 0 }), e = p({ element: null, scrollContainers: null, resizeObserver: null, lastBounds: c, orientationHandler: null }), d = n ? typeof n == \"number\" ? n : n.scroll : null, f2 = n ? typeof n == \"number\" ? n : n.resize : null, w = p(false);\n  u2(() => (w.current = true, () => void (w.current = false)));\n  const [z2, m, s] = M2(() => {\n    const r2 = () => {\n      if (!e.current.element) return;\n      const { left: y2, top: C, width: H2, height: O2, bottom: S2, right: x, x: B2, y: R2 } = e.current.element.getBoundingClientRect(), l = { left: y2, top: C, width: H2, height: O2, bottom: S2, right: x, x: B2, y: R2 };\n      e.current.element instanceof HTMLElement && i2 && (l.height = e.current.element.offsetHeight, l.width = e.current.element.offsetWidth), Object.freeze(l), w.current && !D2(e.current.lastBounds, l) && h2(e.current.lastBounds = l);\n    };\n    return [r2, f2 ? g2(r2, f2) : r2, d ? g2(r2, d) : r2];\n  }, [h2, i2, d, f2]);\n  function v2() {\n    e.current.scrollContainers && (e.current.scrollContainers.forEach((r2) => r2.removeEventListener(\"scroll\", s, true)), e.current.scrollContainers = null), e.current.resizeObserver && (e.current.resizeObserver.disconnect(), e.current.resizeObserver = null), e.current.orientationHandler && (\"orientation\" in screen && \"removeEventListener\" in screen.orientation ? screen.orientation.removeEventListener(\"change\", e.current.orientationHandler) : \"onorientationchange\" in window && window.removeEventListener(\"orientationchange\", e.current.orientationHandler));\n  }\n  function b() {\n    e.current.element && (e.current.resizeObserver = new a(s), e.current.resizeObserver.observe(e.current.element), t2 && e.current.scrollContainers && e.current.scrollContainers.forEach((r2) => r2.addEventListener(\"scroll\", s, { capture: true, passive: true })), e.current.orientationHandler = () => {\n      s();\n    }, \"orientation\" in screen && \"addEventListener\" in screen.orientation ? screen.orientation.addEventListener(\"change\", e.current.orientationHandler) : \"onorientationchange\" in window && window.addEventListener(\"orientationchange\", e.current.orientationHandler));\n  }\n  const L2 = (r2) => {\n    !r2 || r2 === e.current.element || (v2(), e.current.element = r2, e.current.scrollContainers = E2(r2), b());\n  };\n  return X(s, !!t2), W(m), u2(() => {\n    v2(), b();\n  }, [t2, s, m]), u2(() => v2, []), [L2, c, z2];\n}\nfunction W(n) {\n  u2(() => {\n    const t2 = n;\n    return window.addEventListener(\"resize\", t2), () => void window.removeEventListener(\"resize\", t2);\n  }, [n]);\n}\nfunction X(n, t2) {\n  u2(() => {\n    if (t2) {\n      const o = n;\n      return window.addEventListener(\"scroll\", o, { capture: true, passive: true }), () => void window.removeEventListener(\"scroll\", o, true);\n    }\n  }, [n, t2]);\n}\nfunction E2(n) {\n  const t2 = [];\n  if (!n || n === document.body) return t2;\n  const { overflow: o, overflowX: i2, overflowY: a } = window.getComputedStyle(n);\n  return [o, i2, a].some((c) => c === \"auto\" || c === \"scroll\") && t2.push(n), [...t2, ...E2(n.parentElement)];\n}\nvar k2 = [\"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\"];\nvar D2 = (n, t2) => k2.every((o) => n[o] === t2[o]);\n\n// ../../node_modules/.pnpm/its-fine@1.2.5_@types+react@18.3.18_react@18.3.1/node_modules/its-fine/dist/index.js\nimport * as React2 from \"react\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps2 = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar _a;\nvar _b;\nvar useIsomorphicLayoutEffect3 = typeof window !== \"undefined\" && (((_a = window.document) == null ? void 0 : _a.createElement) || ((_b = window.navigator) == null ? void 0 : _b.product) === \"ReactNative\") ? React2.useLayoutEffect : React2.useEffect;\nfunction traverseFiber(fiber, ascending, selector) {\n  if (!fiber)\n    return;\n  if (selector(fiber) === true)\n    return fiber;\n  let child = ascending ? fiber.return : fiber.child;\n  while (child) {\n    const match = traverseFiber(child, ascending, selector);\n    if (match)\n      return match;\n    child = ascending ? null : child.sibling;\n  }\n}\nfunction wrapContext(context2) {\n  try {\n    return Object.defineProperties(context2, {\n      _currentRenderer: {\n        get() {\n          return null;\n        },\n        set() {\n        }\n      },\n      _currentRenderer2: {\n        get() {\n          return null;\n        },\n        set() {\n        }\n      }\n    });\n  } catch (_) {\n    return context2;\n  }\n}\nvar error = console.error;\nconsole.error = function() {\n  const message = [...arguments].join(\"\");\n  if ((message == null ? void 0 : message.startsWith(\"Warning:\")) && message.includes(\"useContext\")) {\n    console.error = error;\n    return;\n  }\n  return error.apply(this, arguments);\n};\nvar FiberContext = wrapContext(React2.createContext(null));\nvar FiberProvider = class extends React2.Component {\n  render() {\n    return /* @__PURE__ */ React2.createElement(FiberContext.Provider, {\n      value: this._reactInternals\n    }, this.props.children);\n  }\n};\nfunction useFiber() {\n  const root = React2.useContext(FiberContext);\n  if (root === null)\n    throw new Error(\"its-fine: useFiber must be called within a <FiberProvider />!\");\n  const id = React2.useId();\n  const fiber = React2.useMemo(() => {\n    for (const maybeFiber of [root, root == null ? void 0 : root.alternate]) {\n      if (!maybeFiber)\n        continue;\n      const fiber2 = traverseFiber(maybeFiber, false, (node) => {\n        let state = node.memoizedState;\n        while (state) {\n          if (state.memoizedState === id)\n            return true;\n          state = state.next;\n        }\n      });\n      if (fiber2)\n        return fiber2;\n    }\n  }, [root, id]);\n  return fiber;\n}\nfunction useContextMap() {\n  const fiber = useFiber();\n  const [contextMap] = React2.useState(() => /* @__PURE__ */ new Map());\n  contextMap.clear();\n  let node = fiber;\n  while (node) {\n    if (node.type && typeof node.type === \"object\") {\n      const enableRenderableContext = node.type._context === void 0 && node.type.Provider === node.type;\n      const context2 = enableRenderableContext ? node.type : node.type._context;\n      if (context2 && context2 !== FiberContext && !contextMap.has(context2)) {\n        contextMap.set(context2, React2.useContext(wrapContext(context2)));\n      }\n    }\n    node = node.return;\n  }\n  return contextMap;\n}\nfunction useContextBridge() {\n  const contextMap = useContextMap();\n  return React2.useMemo(\n    () => Array.from(contextMap.keys()).reduce(\n      (Prev, context2) => (props) => /* @__PURE__ */ React2.createElement(Prev, null, /* @__PURE__ */ React2.createElement(context2.Provider, __spreadProps2(__spreadValues2({}, props), {\n        value: contextMap.get(context2)\n      }))),\n      (props) => /* @__PURE__ */ React2.createElement(FiberProvider, __spreadValues2({}, props))\n    ),\n    [contextMap]\n  );\n}\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/react-three-fiber.esm.js\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nimport \"react-reconciler/constants\";\nimport \"react-reconciler\";\nvar CanvasImpl = /* @__PURE__ */ React3.forwardRef(function Canvas(_a2, forwardedRef) {\n  var _b2 = _a2, {\n    children,\n    fallback,\n    resize,\n    style,\n    gl,\n    events = createPointerEvents,\n    eventSource,\n    eventPrefix,\n    shadows,\n    linear,\n    flat,\n    legacy,\n    orthographic,\n    frameloop,\n    dpr,\n    performance: performance2,\n    raycaster,\n    camera,\n    scene,\n    onPointerMissed,\n    onCreated\n  } = _b2, props = __objRest(_b2, [\n    \"children\",\n    \"fallback\",\n    \"resize\",\n    \"style\",\n    \"gl\",\n    \"events\",\n    \"eventSource\",\n    \"eventPrefix\",\n    \"shadows\",\n    \"linear\",\n    \"flat\",\n    \"legacy\",\n    \"orthographic\",\n    \"frameloop\",\n    \"dpr\",\n    \"performance\",\n    \"raycaster\",\n    \"camera\",\n    \"scene\",\n    \"onPointerMissed\",\n    \"onCreated\"\n  ]);\n  React3.useMemo(() => extend(three_module_exports), []);\n  const Bridge = useContextBridge();\n  const [containerRef, containerRect] = j(__spreadValues({\n    scroll: true,\n    debounce: {\n      scroll: 50,\n      resize: 0\n    }\n  }, resize));\n  const canvasRef = React3.useRef(null);\n  const divRef = React3.useRef(null);\n  React3.useImperativeHandle(forwardedRef, () => canvasRef.current);\n  const handlePointerMissed = useMutableCallback(onPointerMissed);\n  const [block, setBlock] = React3.useState(false);\n  const [error2, setError] = React3.useState(false);\n  if (block) throw block;\n  if (error2) throw error2;\n  const root = React3.useRef(null);\n  useIsomorphicLayoutEffect2(() => {\n    const canvas = canvasRef.current;\n    if (containerRect.width > 0 && containerRect.height > 0 && canvas) {\n      if (!root.current) root.current = createRoot(canvas);\n      root.current.configure({\n        gl,\n        events,\n        shadows,\n        linear,\n        flat,\n        legacy,\n        orthographic,\n        frameloop,\n        dpr,\n        performance: performance2,\n        raycaster,\n        camera,\n        scene,\n        size: containerRect,\n        // Pass mutable reference to onPointerMissed so it's free to update\n        onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),\n        onCreated: (state) => {\n          state.events.connect == null ? void 0 : state.events.connect(eventSource ? isRef(eventSource) ? eventSource.current : eventSource : divRef.current);\n          if (eventPrefix) {\n            state.setEvents({\n              compute: (event, state2) => {\n                const x = event[eventPrefix + \"X\"];\n                const y2 = event[eventPrefix + \"Y\"];\n                state2.pointer.set(x / state2.size.width * 2 - 1, -(y2 / state2.size.height) * 2 + 1);\n                state2.raycaster.setFromCamera(state2.pointer, state2.camera);\n              }\n            });\n          }\n          onCreated == null ? void 0 : onCreated(state);\n        }\n      });\n      root.current.render(/* @__PURE__ */ jsx2(Bridge, {\n        children: /* @__PURE__ */ jsx2(ErrorBoundary, {\n          set: setError,\n          children: /* @__PURE__ */ jsx2(React3.Suspense, {\n            fallback: /* @__PURE__ */ jsx2(Block, {\n              set: setBlock\n            }),\n            children\n          })\n        })\n      }));\n    }\n  });\n  React3.useEffect(() => {\n    const canvas = canvasRef.current;\n    if (canvas) return () => unmountComponentAtNode(canvas);\n  }, []);\n  const pointerEvents = eventSource ? \"none\" : \"auto\";\n  return /* @__PURE__ */ jsx2(\"div\", __spreadProps(__spreadValues({\n    ref: divRef,\n    style: __spreadValues({\n      position: \"relative\",\n      width: \"100%\",\n      height: \"100%\",\n      overflow: \"hidden\",\n      pointerEvents\n    }, style)\n  }, props), {\n    children: /* @__PURE__ */ jsx2(\"div\", {\n      ref: containerRef,\n      style: {\n        width: \"100%\",\n        height: \"100%\"\n      },\n      children: /* @__PURE__ */ jsx2(\"canvas\", {\n        ref: canvasRef,\n        style: {\n          display: \"block\"\n        },\n        children: fallback\n      })\n    })\n  }));\n});\nvar Canvas2 = /* @__PURE__ */ React3.forwardRef(function CanvasWrapper(props, ref) {\n  return /* @__PURE__ */ jsx2(FiberProvider, {\n    children: /* @__PURE__ */ jsx2(CanvasImpl, __spreadProps(__spreadValues({}, props), {\n      ref\n    }))\n  });\n});\n\nexport {\n  extend,\n  useThree,\n  useFrame,\n  useLoader,\n  Canvas2 as Canvas\n};\n/*! Bundled license information:\n\nscheduler/cjs/scheduler.development.js:\n  (**\n   * @license React\n   * scheduler.development.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n\nscheduler/cjs/scheduler.production.min.js:\n  (**\n   * @license React\n   * scheduler.production.min.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n*/\n","// src/consts.ts\nvar canvasProps = (pixelDensity, fov) => ({\n  dpr: pixelDensity,\n  //device pixel ratio - 1 default and fast, 2 detailed and slow\n  // mode: 'concurrent' as 'legacy' | 'blocking' | 'concurrent',\n  camera: { fov },\n  // could be replaced with zoom or distance?\n  linear: true,\n  //sRGBEncoding\n  flat: true,\n  //ACESFilmicToneMapping\n  gl: { preserveDrawingBuffer: true }\n  // to capture the canvas (Figma Plugin)\n});\nvar links = [\n  {\n    title: \"Figma  \\u2192\",\n    link: \"https://www.figma.com/community/plugin/958202093377483021/Mesh-Gradient\"\n  },\n  {\n    title: \"React  \\u2192\",\n    link: \"https://codesandbox.io/s/optimistic-benji-pw64i\"\n  },\n  {\n    title: \"Framer  \\u2192\",\n    link: \"https://framer.com/projects/ShaderGradient--7fmA9c0AApv3vyjCPpS3-emceg\"\n  }\n];\nvar defaultPlanesZoom = 1;\nvar defaultSphereDistance = 14;\nvar zoomOutPlanes = { zoom: 1, distance: 14 };\nvar zoomOutSphere = { zoom: 5, distance: 14 };\nvar aboutAngles = [190, 140];\nvar aboutPositions = [0, 10, 0];\nvar aboutRotations = [0, 10, 50];\nvar aboutMobilePositions = [0, 20, 0];\nvar hdrBase = \"https://ruucm.github.io/shadergradient/shadergradient@1.0.0\";\nvar mainLoading = {\n  // mesh animation\n  meshDelay: 0,\n  meshDur: 0,\n  // rotation animation\n  rotDelay: 1.7,\n  rotDur: 1,\n  // position animation\n  posDelay: 1.3,\n  posDur: 2.2,\n  logoTransition: 3.1,\n  // Timing for the logo\n  text: 2.5,\n  // Timing for the preset title appearing\n  // mesh\n  to: 1\n  // end factor (0 -> 1) for the mesh noisestrength\n};\nvar envBasePath = \"https://ruucm.github.io/shadergradient/shadergradient@1.0.0/hdr/\";\nvar STRIPE_BUY_YEARLY_URL = \"https://buy.stripe.com/00g5kV0g553QcjC9AB\";\nvar STRIPE_BUY_MONTHLY_URL = \"https://buy.stripe.com/fZe5kVd2R53QcjC7su\";\nvar STRIPE_BILLING_URL = \"https://billing.stripe.com/p/login/aEU8Audql6LagDe9AA\";\n\nexport {\n  canvasProps,\n  links,\n  defaultPlanesZoom,\n  defaultSphereDistance,\n  zoomOutPlanes,\n  zoomOutSphere,\n  aboutAngles,\n  aboutPositions,\n  aboutRotations,\n  aboutMobilePositions,\n  hdrBase,\n  mainLoading,\n  envBasePath,\n  STRIPE_BUY_YEARLY_URL,\n  STRIPE_BUY_MONTHLY_URL,\n  STRIPE_BILLING_URL\n};\n","import {\n  Canvas\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  ShaderChunk\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  canvasProps\n} from \"./chunk-SX7QUDKQ.mjs\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradientCanvas.tsx\nimport { useEffect } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction ShaderGradientCanvas({\n  children,\n  style = {},\n  pixelDensity = 1,\n  fov = 45,\n  pointerEvents,\n  className\n}) {\n  useShaderChunkFix();\n  return /* @__PURE__ */ jsx(\n    Canvas,\n    __spreadProps(__spreadValues({\n      style: __spreadProps(__spreadValues({}, style), { pointerEvents }),\n      resize: { offsetSize: true },\n      className\n    }, canvasProps(pixelDensity, fov)), {\n      children\n    })\n  );\n}\nfunction useShaderChunkFix() {\n  useEffect(() => {\n    ShaderChunk[\"uv2_pars_vertex\"] = ``;\n    ShaderChunk[\"uv2_vertex\"] = ``;\n    ShaderChunk[\"uv2_pars_fragment\"] = ``;\n    ShaderChunk[\"encodings_fragment\"] = ``;\n  }, []);\n}\n\nexport {\n  ShaderGradientCanvas\n};\n","import {\n  BufferGeometry,\n  Float32BufferAttribute,\n  Mesh,\n  OrthographicCamera\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/Pass.js\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  Pass,\n  FullScreenQuad\n};\n","import {\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/MaskPass.js\nvar MaskPass = class extends Pass {\n  constructor(scene, camera) {\n    super();\n    this.scene = scene;\n    this.camera = camera;\n    this.clear = true;\n    this.needsSwap = false;\n    this.inverse = false;\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    const context = renderer.getContext();\n    const state = renderer.state;\n    state.buffers.color.setMask(false);\n    state.buffers.depth.setMask(false);\n    state.buffers.color.setLocked(true);\n    state.buffers.depth.setLocked(true);\n    let writeValue, clearValue;\n    if (this.inverse) {\n      writeValue = 0;\n      clearValue = 1;\n    } else {\n      writeValue = 1;\n      clearValue = 0;\n    }\n    state.buffers.stencil.setTest(true);\n    state.buffers.stencil.setOp(\n      context.REPLACE,\n      context.REPLACE,\n      context.REPLACE\n    );\n    state.buffers.stencil.setFunc(context.ALWAYS, writeValue, 4294967295);\n    state.buffers.stencil.setClear(clearValue);\n    state.buffers.stencil.setLocked(true);\n    renderer.setRenderTarget(readBuffer);\n    if (this.clear) renderer.clear();\n    renderer.render(this.scene, this.camera);\n    renderer.setRenderTarget(writeBuffer);\n    if (this.clear) renderer.clear();\n    renderer.render(this.scene, this.camera);\n    state.buffers.color.setLocked(false);\n    state.buffers.depth.setLocked(false);\n    state.buffers.stencil.setLocked(false);\n    state.buffers.stencil.setFunc(context.EQUAL, 1, 4294967295);\n    state.buffers.stencil.setOp(context.KEEP, context.KEEP, context.KEEP);\n    state.buffers.stencil.setLocked(true);\n  }\n};\nvar ClearMaskPass = class extends Pass {\n  constructor() {\n    super();\n    this.needsSwap = false;\n  }\n  render(renderer) {\n    renderer.state.buffers.stencil.setLocked(false);\n    renderer.state.buffers.stencil.setTest(false);\n  }\n};\n\nexport {\n  MaskPass,\n  ClearMaskPass\n};\n","import {\n  FullScreenQuad,\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\nimport {\n  ShaderMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/ShaderPass.js\nvar ShaderPass = class extends Pass {\n  constructor(shader, textureID) {\n    super();\n    this.textureID = textureID !== void 0 ? textureID : \"tDiffuse\";\n    if (shader instanceof ShaderMaterial) {\n      this.uniforms = shader.uniforms;\n      this.material = shader;\n    } else if (shader) {\n      this.uniforms = UniformsUtils.clone(shader.uniforms);\n      this.material = new ShaderMaterial({\n        defines: Object.assign({}, shader.defines),\n        uniforms: this.uniforms,\n        vertexShader: shader.vertexShader,\n        fragmentShader: shader.fragmentShader\n      });\n    }\n    this.fsQuad = new FullScreenQuad(this.material);\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    if (this.uniforms[this.textureID]) {\n      this.uniforms[this.textureID].value = readBuffer.texture;\n    }\n    this.fsQuad.material = this.material;\n    if (this.renderToScreen) {\n      renderer.setRenderTarget(null);\n      this.fsQuad.render(renderer);\n    } else {\n      renderer.setRenderTarget(writeBuffer);\n      if (this.clear)\n        renderer.clear(\n          renderer.autoClearColor,\n          renderer.autoClearDepth,\n          renderer.autoClearStencil\n        );\n      this.fsQuad.render(renderer);\n    }\n  }\n};\n\nexport {\n  ShaderPass\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/shaders/CopyShader.js\nvar CopyShader = {\n  uniforms: {\n    tDiffuse: { value: null },\n    opacity: { value: 1 }\n  },\n  vertexShader: (\n    /* glsl */\n    `\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`\n  ),\n  fragmentShader: (\n    /* glsl */\n    `\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\t\t}`\n  )\n};\n\nexport {\n  CopyShader\n};\n","import {\n  ClearMaskPass,\n  MaskPass\n} from \"./chunk-FZIV7POA.mjs\";\nimport {\n  ShaderPass\n} from \"./chunk-YUIDVF63.mjs\";\nimport {\n  CopyShader\n} from \"./chunk-USQFKVUW.mjs\";\nimport {\n  BufferGeometry,\n  Clock,\n  Float32BufferAttribute,\n  LinearFilter,\n  Mesh,\n  OrthographicCamera,\n  RGBAFormat,\n  Vector2,\n  WebGLRenderTarget\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/EffectComposer.js\nvar EffectComposer = class {\n  constructor(renderer, renderTarget) {\n    this.renderer = renderer;\n    if (renderTarget === void 0) {\n      const parameters = {\n        minFilter: LinearFilter,\n        magFilter: LinearFilter,\n        format: RGBAFormat\n      };\n      const size = renderer.getSize(new Vector2());\n      this._pixelRatio = renderer.getPixelRatio();\n      this._width = size.width;\n      this._height = size.height;\n      renderTarget = new WebGLRenderTarget(\n        this._width * this._pixelRatio,\n        this._height * this._pixelRatio,\n        parameters\n      );\n      renderTarget.texture.name = \"EffectComposer.rt1\";\n    } else {\n      this._pixelRatio = 1;\n      this._width = renderTarget.width;\n      this._height = renderTarget.height;\n    }\n    this.renderTarget1 = renderTarget;\n    this.renderTarget2 = renderTarget.clone();\n    this.renderTarget2.texture.name = \"EffectComposer.rt2\";\n    this.writeBuffer = this.renderTarget1;\n    this.readBuffer = this.renderTarget2;\n    this.renderToScreen = true;\n    this.passes = [];\n    if (CopyShader === void 0) {\n      console.error(\"THREE.EffectComposer relies on CopyShader\");\n    }\n    if (ShaderPass === void 0) {\n      console.error(\"THREE.EffectComposer relies on ShaderPass\");\n    }\n    this.copyPass = new ShaderPass(CopyShader);\n    this.clock = new Clock();\n  }\n  swapBuffers() {\n    const tmp = this.readBuffer;\n    this.readBuffer = this.writeBuffer;\n    this.writeBuffer = tmp;\n  }\n  addPass(pass) {\n    this.passes.push(pass);\n    pass.setSize(\n      this._width * this._pixelRatio,\n      this._height * this._pixelRatio\n    );\n  }\n  insertPass(pass, index) {\n    this.passes.splice(index, 0, pass);\n    pass.setSize(\n      this._width * this._pixelRatio,\n      this._height * this._pixelRatio\n    );\n  }\n  removePass(pass) {\n    const index = this.passes.indexOf(pass);\n    if (index !== -1) {\n      this.passes.splice(index, 1);\n    }\n  }\n  isLastEnabledPass(passIndex) {\n    for (let i = passIndex + 1; i < this.passes.length; i++) {\n      if (this.passes[i].enabled) {\n        return false;\n      }\n    }\n    return true;\n  }\n  render(deltaTime) {\n    if (deltaTime === void 0) {\n      deltaTime = this.clock.getDelta();\n    }\n    const currentRenderTarget = this.renderer.getRenderTarget();\n    let maskActive = false;\n    for (let i = 0, il = this.passes.length; i < il; i++) {\n      const pass = this.passes[i];\n      if (pass.enabled === false) continue;\n      pass.renderToScreen = this.renderToScreen && this.isLastEnabledPass(i);\n      pass.render(\n        this.renderer,\n        this.writeBuffer,\n        this.readBuffer,\n        deltaTime,\n        maskActive\n      );\n      if (pass.needsSwap) {\n        if (maskActive) {\n          const context = this.renderer.getContext();\n          const stencil = this.renderer.state.buffers.stencil;\n          stencil.setFunc(context.NOTEQUAL, 1, 4294967295);\n          this.copyPass.render(\n            this.renderer,\n            this.writeBuffer,\n            this.readBuffer,\n            deltaTime\n          );\n          stencil.setFunc(context.EQUAL, 1, 4294967295);\n        }\n        this.swapBuffers();\n      }\n      if (MaskPass !== void 0) {\n        if (pass instanceof MaskPass) {\n          maskActive = true;\n        } else if (pass instanceof ClearMaskPass) {\n          maskActive = false;\n        }\n      }\n    }\n    this.renderer.setRenderTarget(currentRenderTarget);\n  }\n  reset(renderTarget) {\n    if (renderTarget === void 0) {\n      const size = this.renderer.getSize(new Vector2());\n      this._pixelRatio = this.renderer.getPixelRatio();\n      this._width = size.width;\n      this._height = size.height;\n      renderTarget = this.renderTarget1.clone();\n      renderTarget.setSize(\n        this._width * this._pixelRatio,\n        this._height * this._pixelRatio\n      );\n    }\n    this.renderTarget1.dispose();\n    this.renderTarget2.dispose();\n    this.renderTarget1 = renderTarget;\n    this.renderTarget2 = renderTarget.clone();\n    this.writeBuffer = this.renderTarget1;\n    this.readBuffer = this.renderTarget2;\n  }\n  setSize(width, height) {\n    this._width = width;\n    this._height = height;\n    const effectiveWidth = this._width * this._pixelRatio;\n    const effectiveHeight = this._height * this._pixelRatio;\n    this.renderTarget1.setSize(effectiveWidth, effectiveHeight);\n    this.renderTarget2.setSize(effectiveWidth, effectiveHeight);\n    for (let i = 0; i < this.passes.length; i++) {\n      this.passes[i].setSize(effectiveWidth, effectiveHeight);\n    }\n  }\n  setPixelRatio(pixelRatio) {\n    this._pixelRatio = pixelRatio;\n    this.setSize(this._width, this._height);\n  }\n};\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  EffectComposer,\n  Pass,\n  FullScreenQuad\n};\n","import {\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\nimport {\n  Color\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/RenderPass.js\nvar RenderPass = class extends Pass {\n  constructor(scene, camera, overrideMaterial, clearColor, clearAlpha) {\n    super();\n    this.scene = scene;\n    this.camera = camera;\n    this.overrideMaterial = overrideMaterial;\n    this.clearColor = clearColor;\n    this.clearAlpha = clearAlpha !== void 0 ? clearAlpha : 0;\n    this.clear = true;\n    this.clearDepth = false;\n    this.needsSwap = false;\n    this._oldClearColor = new Color();\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    const oldAutoClear = renderer.autoClear;\n    renderer.autoClear = false;\n    let oldClearAlpha, oldOverrideMaterial;\n    if (this.overrideMaterial !== void 0) {\n      oldOverrideMaterial = this.scene.overrideMaterial;\n      this.scene.overrideMaterial = this.overrideMaterial;\n    }\n    if (this.clearColor) {\n      renderer.getClearColor(this._oldClearColor);\n      oldClearAlpha = renderer.getClearAlpha();\n      renderer.setClearColor(this.clearColor, this.clearAlpha);\n    }\n    if (this.clearDepth) {\n      renderer.clearDepth();\n    }\n    renderer.setRenderTarget(this.renderToScreen ? null : readBuffer);\n    if (this.clear)\n      renderer.clear(\n        renderer.autoClearColor,\n        renderer.autoClearDepth,\n        renderer.autoClearStencil\n      );\n    renderer.render(this.scene, this.camera);\n    if (this.clearColor) {\n      renderer.setClearColor(this._oldClearColor, oldClearAlpha);\n    }\n    if (this.overrideMaterial !== void 0) {\n      this.scene.overrideMaterial = oldOverrideMaterial;\n    }\n    renderer.autoClear = oldAutoClear;\n  }\n};\n\nexport {\n  RenderPass\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/HalftoneShader.js\nvar HalftoneShader = {\n  uniforms: {\n    tDiffuse: { value: null },\n    shape: { value: 1 },\n    radius: { value: 2 },\n    rotateR: { value: Math.PI / 12 * 1 },\n    rotateG: { value: Math.PI / 12 * 2 },\n    rotateB: { value: Math.PI / 12 * 3 },\n    scatter: { value: 1 },\n    width: { value: 20 },\n    height: { value: 20 },\n    blending: { value: 1 },\n    blendingMode: { value: 1 },\n    greyscale: { value: false },\n    disable: { value: false }\n  },\n  vertexShader: (\n    /* glsl */\n    `\n\n\t\tvarying vec2 vUV;\n\t\tvarying vec3 vPosition;\n\n\t\tvoid main() {\n\n\t\t\tvUV = uv;\n\t\t\tvPosition = position;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n\n\t\t}`\n  ),\n  fragmentShader: (\n    /* glsl */\n    `\n\n\t\t#define SQRT2_MINUS_ONE 0.41421356\n\t\t#define SQRT2_HALF_MINUS_ONE 0.20710678\n\t\t#define PI2 6.28318531\n\t\t#define SHAPE_DOT 1\n\t\t#define SHAPE_ELLIPSE 2\n\t\t#define SHAPE_LINE 3\n\t\t#define SHAPE_SQUARE 4\n\t\t#define BLENDING_LINEAR 1\n\t\t#define BLENDING_MULTIPLY 2\n\t\t#define BLENDING_ADD 3\n\t\t#define BLENDING_LIGHTER 4\n\t\t#define BLENDING_DARKER 5\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float radius;\n\t\tuniform float rotateR;\n\t\tuniform float rotateG;\n\t\tuniform float rotateB;\n\t\tuniform float scatter;\n\t\tuniform float width;\n\t\tuniform float height;\n\t\tuniform int shape;\n\t\tuniform bool disable;\n\t\tuniform float blending;\n\t\tuniform int blendingMode;\n\t\tvarying vec2 vUV;\n\t\tvarying vec3 vPosition;\n\t\tuniform bool greyscale;\n\t\tconst int samples = 8;\n\n\t\tfloat blend( float a, float b, float t ) {\n\n\t\t// linear blend\n\t\t\treturn a * ( 1.0 - t ) + b * t;\n\n\t\t}\n\n\t\tfloat hypot( float x, float y ) {\n\n\t\t// vector magnitude\n\t\t\treturn sqrt( x * x + y * y );\n\n\t\t}\n\n\t\tfloat rand( vec2 seed ){\n\n\t\t// get pseudo-random number\n\t\t\treturn fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );\n\n\t\t}\n\n\t\tfloat distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {\n\n\t\t// apply shape-specific transforms\n\t\t\tfloat dist = hypot( coord.x - p.x, coord.y - p.y );\n\t\t\tfloat rad = channel;\n\n\t\t\tif ( shape == SHAPE_DOT ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n\t\t\t} else if ( shape == SHAPE_ELLIPSE ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n\t\t\t\tif ( dist != 0.0 ) {\n\t\t\t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );\n\t\t\t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;\n\t\t\t\t}\n\n\t\t\t} else if ( shape == SHAPE_LINE ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.5) * rad_max;\n\t\t\t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;\n\t\t\t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );\n\n\t\t\t} else if ( shape == SHAPE_SQUARE ) {\n\n\t\t\t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;\n\t\t\t\tfloat sin_t = abs( sin( theta ) );\n\t\t\t\tfloat cos_t = abs( cos( theta ) );\n\t\t\t\trad = pow( abs( rad ), 1.4 );\n\t\t\t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );\n\n\t\t\t}\n\n\t\t\treturn rad - dist;\n\n\t\t}\n\n\t\tstruct Cell {\n\n\t\t// grid sample positions\n\t\t\tvec2 normal;\n\t\t\tvec2 p1;\n\t\t\tvec2 p2;\n\t\t\tvec2 p3;\n\t\t\tvec2 p4;\n\t\t\tfloat samp2;\n\t\t\tfloat samp1;\n\t\t\tfloat samp3;\n\t\t\tfloat samp4;\n\n\t\t};\n\n\t\tvec4 getSample( vec2 point ) {\n\n\t\t// multi-sampled point\n\t\t\tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );\n\t\t\tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;\n\t\t\tfloat step = PI2 / float( samples );\n\t\t\t// float dist = radius * 0.66;\n\t\t\tfloat dist = radius * 0.0;\n\n\t\t\tfor ( int i = 0; i < samples; ++i ) {\n\n\t\t\t\tfloat r = base + step * float( i );\n\t\t\t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );\n\t\t\t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );\n\n\t\t\t}\n\n\t\t\ttex /= float( samples ) + 1.0;\n\t\t\treturn tex;\n\n\t\t}\n\n\t\tfloat getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {\n\n\t\t// get colour for given point\n\t\t\tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;\n\n\t\t\tif ( channel == 0 ) {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).r;\n\t\t\t\tc.samp2 = getSample( c.p2 ).r;\n\t\t\t\tc.samp3 = getSample( c.p3 ).r;\n\t\t\t\tc.samp4 = getSample( c.p4 ).r;\n\n\t\t\t} else if (channel == 1) {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).g;\n\t\t\t\tc.samp2 = getSample( c.p2 ).g;\n\t\t\t\tc.samp3 = getSample( c.p3 ).g;\n\t\t\t\tc.samp4 = getSample( c.p4 ).g;\n\n\t\t\t} else {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).b;\n\t\t\t\tc.samp3 = getSample( c.p3 ).b;\n\t\t\t\tc.samp2 = getSample( c.p2 ).b;\n\t\t\t\tc.samp4 = getSample( c.p4 ).b;\n\n\t\t\t}\n\n\t\t\tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );\n\t\t\tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );\n\t\t\tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );\n\t\t\tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );\n\t\t\tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\t// res = 0.0;\n\t\t\tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres = clamp( res, 0.0, 1.0 );\n\n\t\t\treturn res;\n\t\t\t// return 2\n\n\t\t}\n\n\t\tCell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {\n\n\t\t// get containing cell\n\t\t\tCell c;\n\n\t\t// calc grid\n\t\t\tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );\n\t\t\tfloat threshold = step * 0.5;\n\t\t\tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );\n\t\t\tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );\n\t\t\tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );\n\t\t\tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );\n\t\t\tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;\n\t\t\tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;\n\t\t\tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );\n\t\t\tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;\n\t\t\tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;\n\n\t\t// get closest corner\n\t\t\tc.normal = n;\n\t\t\tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;\n\t\t\tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;\n\n\t\t// scatter\n\t\t\tif ( scatter != 0.0 ) {\n\n\t\t\t\tfloat off_mag = scatter * threshold * 0.5;\n\t\t\t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;\n\t\t\t\tc.p1.x += cos( off_angle ) * off_mag;\n\t\t\t\tc.p1.y += sin( off_angle ) * off_mag;\n\n\t\t\t}\n\n\t\t// find corners\n\t\t\tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );\n\t\t\tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );\n\t\t\tc.p2.x = c.p1.x - n.x * normal_step;\n\t\t\tc.p2.y = c.p1.y - n.y * normal_step;\n\t\t\tc.p3.x = c.p1.x + n.y * line_step;\n\t\t\tc.p3.y = c.p1.y - n.x * line_step;\n\t\t\tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;\n\t\t\tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;\n\n\t\t\treturn c;\n\n\t\t}\n\n\t\tfloat blendColour( float a, float b, float t ) {\n\n\t\t// blend colours\n\t\t\tif ( blendingMode == BLENDING_LINEAR ) {\n\t\t\t\treturn blend( a, b, 1.0 - t );\n\t\t\t} else if ( blendingMode == BLENDING_ADD ) {\n\t\t\t\treturn blend( a, min( 1.0, a + b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_MULTIPLY ) {\n\t\t\t\treturn blend( a, max( 0.0, a * b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_LIGHTER ) {\n\t\t\t\treturn blend( a, max( a, b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_DARKER ) {\n\t\t\t\treturn blend( a, min( a, b ), t );\n\t\t\t} else {\n\t\t\t\treturn blend( a, b, 1.0 - t );\n\t\t\t}\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tif ( ! disable ) {\n\n\t\t// setup\n\t\t\t\tvec2 p = vec2( vUV.x * width, vUV.y * height ) - vec2(vPosition.x, vPosition.y) * 3.0; // - position values to remove black borders.\n\t\t\t\tvec2 origin = vec2( 0, 0 );\n\t\t\t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;\n\t\t\t\t// float aa = 0.0;\n\n\t\t// get channel samples\n\t\t\t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );\n\t\t\t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );\n\t\t\t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );\n\t\t\t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );\n\t\t\t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );\n\t\t\t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );\n\n\t\t// blend with original\n\t\t\t\tvec4 colour = texture2D( tDiffuse, vUV );\n\t\t\t\t\n\t\t\t\t// add masking before blendColour\n\t\t\t\tif (colour.r == 0.0) {\n\t\t\t\t\tr = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tr = blendColour( r, colour.r, blending );\n\t\t\t\t}\n\n\t\t\t\tif (colour.g == 0.0) {\n\t\t\t\t\tg = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tg = blendColour( g, colour.g, blending );\n\t\t\t\t}\n\n\t\t\t\tif (colour.b == 0.0) {\n\t\t\t\t\tb = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tb = blendColour( b, colour.b, blending );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\tif ( greyscale ) {\n\t\t\t\t\tr = g = b = (r + b + g) / 3.0;\n\t\t\t\t}\n\n\t\t\t\t// add alpha channel to each r, g, b colors\n\t\t\t\tvec4 vR;\n\t\t\t\tvec4 vG;\n\t\t\t\tvec4 vB;\n\t\n\t\t\t\t// apply transparent to outside of mesh\n\t\t\t\tif (r == 0.0 && colour.r == 0.0) {\n\t\t\t\t\tvR = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvR = vec4( r, 0, 0, 1 );\n\t\t\t\t}\n\t\n\t\t\t\tif (g == 0.0 && colour.g == 0.0) {\n\t\t\t\t\tvG = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvG = vec4( 0, g, 0, 1 );\n\t\t\t\t}\n\t\n\t\t\t\tif (b == 0.0 && colour.b == 0.0) {\n\t\t\t\t\tvB = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvB = vec4( 0, 0, b, 1 );\n\t\t\t\t}\n\n\t\t\t\t// gl_FragColor = vec4( r, g, b, 1.0 );\n\t\t\t\tgl_FragColor = vR + vG + vB;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = texture2D( tDiffuse, vUV );\n\n\t\t\t}\n\n\t\t}`\n  )\n};\n\nexport {\n  HalftoneShader\n};\n","import {\n  BufferGeometry,\n  Float32BufferAttribute,\n  Mesh,\n  OrthographicCamera\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/Pass.js\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  Pass,\n  FullScreenQuad\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/blending/BlendFunction.js\nvar BlendFunction = {\n  SKIP: 0,\n  ADD: 1,\n  ALPHA: 2,\n  AVERAGE: 3,\n  COLOR_BURN: 4,\n  COLOR_DODGE: 5,\n  DARKEN: 6,\n  DIFFERENCE: 7,\n  EXCLUSION: 8,\n  LIGHTEN: 9,\n  MULTIPLY: 10,\n  DIVIDE: 11,\n  NEGATION: 12,\n  NORMAL: 13,\n  OVERLAY: 14,\n  REFLECT: 15,\n  SCREEN: 16,\n  SOFT_LIGHT: 17,\n  SUBTRACT: 18\n};\n\nexport {\n  BlendFunction\n};\n","import {\n  BlendFunction\n} from \"./chunk-4NRCS6EB.mjs\";\nimport {\n  EventDispatcher,\n  Uniform\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/add/shader.frag\nvar shader_default = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn min(x + y, 1.0) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/alpha/shader.frag\nvar shader_default2 = \"vec3 blend(const in vec3 x, const in vec3 y, const in float opacity) {\\n\\n\treturn y * opacity + x * (1.0 - opacity);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tfloat a = min(y.a, opacity);\\n\\n\treturn vec4(blend(x.rgb, y.rgb, a), max(x.a, a));\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/average/shader.frag\nvar shader_default3 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (x + y) * 0.5 * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/color-burn/shader.frag\nvar shader_default4 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 0.0) ? y : max(1.0 - (1.0 - x) / y, 0.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/color-dodge/shader.frag\nvar shader_default5 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 1.0) ? y : min(x / (1.0 - y), 1.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/darken/shader.frag\nvar shader_default6 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn min(x, y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/difference/shader.frag\nvar shader_default7 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn abs(x - y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/divide/shader.frag\nvar shader_default8 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y > 0.0) ? min(x / y, 1.0) : 1.0;\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/exclusion/shader.frag\nvar shader_default9 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (x + y - 2.0 * x * y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/lighten/shader.frag\nvar shader_default10 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn max(x, y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/multiply/shader.frag\nvar shader_default11 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn x * y * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/negation/shader.frag\nvar shader_default12 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (1.0 - abs(1.0 - x - y)) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/normal/shader.frag\nvar shader_default13 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn y * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/overlay/shader.frag\nvar shader_default14 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (x < 0.5) ? (2.0 * x * y) : (1.0 - 2.0 * (1.0 - x) * (1.0 - y));\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/reflect/shader.frag\nvar shader_default15 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 1.0) ? y : min(x * x / (1.0 - y), 1.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/screen/shader.frag\nvar shader_default16 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (1.0 - (1.0 - x) * (1.0 - y)) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/soft-light/shader.frag\nvar shader_default17 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y < 0.5) ?\\n\t\t(2.0 * x * y + x * x * (1.0 - 2.0 * y)) :\\n\t\t(sqrt(x) * (2.0 * y - 1.0) + 2.0 * x * (1.0 - y));\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/subtract/shader.frag\nvar shader_default18 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn max(x + y - 1.0, 0.0) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/BlendMode.js\nvar blendFunctions = /* @__PURE__ */ new Map([\n  [BlendFunction.SKIP, null],\n  [BlendFunction.ADD, shader_default],\n  [BlendFunction.ALPHA, shader_default2],\n  [BlendFunction.AVERAGE, shader_default3],\n  [BlendFunction.COLOR_BURN, shader_default4],\n  [BlendFunction.COLOR_DODGE, shader_default5],\n  [BlendFunction.DARKEN, shader_default6],\n  [BlendFunction.DIFFERENCE, shader_default7],\n  [BlendFunction.EXCLUSION, shader_default9],\n  [BlendFunction.LIGHTEN, shader_default10],\n  [BlendFunction.MULTIPLY, shader_default11],\n  [BlendFunction.DIVIDE, shader_default8],\n  [BlendFunction.NEGATION, shader_default12],\n  [BlendFunction.NORMAL, shader_default13],\n  [BlendFunction.OVERLAY, shader_default14],\n  [BlendFunction.REFLECT, shader_default15],\n  [BlendFunction.SCREEN, shader_default16],\n  [BlendFunction.SOFT_LIGHT, shader_default17],\n  [BlendFunction.SUBTRACT, shader_default18]\n]);\nvar BlendMode = class extends EventDispatcher {\n  /**\n   * Constructs a new blend mode.\n   *\n   * @param {BlendFunction} blendFunction - The blend function to use.\n   * @param {Number} opacity - The opacity of the color that will be blended with the base color.\n   */\n  constructor(blendFunction, opacity = 1) {\n    super();\n    this.blendFunction = blendFunction;\n    this.opacity = new Uniform(opacity);\n  }\n  /**\n   * Returns the blend function.\n   *\n   * @return {BlendFunction} The blend function.\n   */\n  getBlendFunction() {\n    return this.blendFunction;\n  }\n  /**\n   * Sets the blend function.\n   *\n   * @param {BlendFunction} blendFunction - The blend function.\n   */\n  setBlendFunction(blendFunction) {\n    this.blendFunction = blendFunction;\n    this.dispatchEvent({ type: \"change\" });\n  }\n  /**\n   * Returns the blend function shader code.\n   *\n   * @return {String} The blend function shader code.\n   */\n  getShaderCode() {\n    return blendFunctions.get(this.blendFunction);\n  }\n};\n\nexport {\n  BlendMode\n};\n","import {\n  HalftoneShader\n} from \"./chunk-3U6A2N6D.mjs\";\nimport {\n  FullScreenQuad,\n  Pass\n} from \"./chunk-O7SDERYP.mjs\";\nimport {\n  BlendMode\n} from \"./chunk-KD5UHE3V.mjs\";\nimport {\n  BlendFunction\n} from \"./chunk-4NRCS6EB.mjs\";\nimport {\n  ShaderMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/HalftonePass.ts\nvar usePassedMeshSize = true;\nvar HalftonePass = class extends Pass {\n  constructor(width, height, params) {\n    super();\n    if (HalftoneShader === void 0) {\n      console.error(\"THREE.HalftonePass requires HalftoneShader\");\n    }\n    this.uniforms = UniformsUtils.clone(HalftoneShader.uniforms);\n    this.material = new ShaderMaterial({\n      uniforms: this.uniforms,\n      fragmentShader: HalftoneShader.fragmentShader,\n      vertexShader: HalftoneShader.vertexShader\n    });\n    if (usePassedMeshSize) {\n      this.uniforms.width.value = width;\n      this.uniforms.height.value = height;\n    }\n    this.uniforms.disable.value = params[\"disable\"];\n    this.fsQuad = new FullScreenQuad(this.material);\n    this.blendMode = new BlendMode(BlendFunction.SCREEN);\n    this.extensions = null;\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    this.material.uniforms[\"tDiffuse\"].value = readBuffer.texture;\n    if (this.renderToScreen) {\n      renderer.setRenderTarget(null);\n      this.fsQuad.render(renderer);\n    } else {\n      renderer.setRenderTarget(writeBuffer);\n      if (this.clear) renderer.clear();\n      this.fsQuad.render(renderer);\n    }\n  }\n  setSize(width, height) {\n    if (usePassedMeshSize) {\n      this.uniforms.width.value = width;\n      this.uniforms.height.value = height;\n    }\n  }\n  initialize(renderer, alpha, frameBufferType) {\n  }\n  addEventListener() {\n  }\n  getAttributes() {\n    return this.attributes;\n  }\n  getFragmentShader() {\n    return HalftoneShader.fragmentShader;\n  }\n  getVertexShader() {\n    return HalftoneShader.vertexShader;\n  }\n  update(renderer, inputBuffer, deltaTime) {\n  }\n};\n\nexport {\n  HalftonePass\n};\n","import {\n  EffectComposer\n} from \"./chunk-2S3VJM34.mjs\";\nimport {\n  RenderPass\n} from \"./chunk-IRMTC4UN.mjs\";\nimport {\n  HalftonePass\n} from \"./chunk-XLXOMSVB.mjs\";\nimport {\n  useFrame,\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\n\n// src/ShaderGradient/PostProcessing/PostProcessing.tsx\nimport { useEffect, useMemo } from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nfunction PostProcessing({ disable = false }) {\n  const { gl, scene, camera, size } = useThree();\n  const composer = useMemo(() => {\n    const effectComposer = new EffectComposer(gl);\n    effectComposer.addPass(new RenderPass(scene, camera));\n    const halftoneParams = {\n      shape: 1,\n      radius: 2,\n      rotateR: Math.PI / 12,\n      rotateB: Math.PI / 12 * 2,\n      rotateG: Math.PI / 12 * 3,\n      scatter: 1,\n      blending: 1,\n      blendingMode: 1,\n      greyscale: false,\n      disable\n    };\n    const halftonePass = new HalftonePass(\n      size.width,\n      size.height,\n      halftoneParams\n    );\n    effectComposer.addPass(halftonePass);\n    return effectComposer;\n  }, [gl, scene, camera, size, disable]);\n  useEffect(() => composer == null ? void 0 : composer.setSize(size.width, size.height), [composer, size]);\n  useFrame(\n    (_, delta) => void (gl.autoClear = true, composer.render(delta)),\n    1\n  );\n  return /* @__PURE__ */ jsx(Fragment, {});\n}\n\nexport {\n  PostProcessing\n};\n","// src/utils/index.ts\nfunction degToRad(deg) {\n  return deg * (Math.PI / 180);\n}\nfunction dToR(d) {\n  return d / 180 * Math.PI;\n}\nfunction dToRArr(degrees) {\n  return degrees.map((d) => dToR(d));\n}\nfunction formatUrlString(urlString) {\n  return urlString.replace(\"http://localhost:3001/customize\", \"\").replace(\"https://shadergradient.co/customize\", \"\").replace(\"https://www.shadergradient.co/customize\", \"\");\n}\n\nexport {\n  degToRad,\n  dToR,\n  dToRArr,\n  formatUrlString\n};\n","import {\n  dToR\n} from \"./chunk-G7COPUKV.mjs\";\nimport {\n  useFrame\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  defaultPlanesZoom,\n  defaultSphereDistance,\n  zoomOutPlanes,\n  zoomOutSphere\n} from \"./chunk-SX7QUDKQ.mjs\";\n\n// src/ShaderGradient/Controls/useCameraAnimation.ts\nimport { useEffect, useRef } from \"react\";\nfunction useCameraAnimation({\n  type,\n  cAzimuthAngle,\n  cPolarAngle,\n  cDistance,\n  cameraZoom,\n  zoomOut,\n  enableTransition = true\n}) {\n  const ref = useRef();\n  useFrame((state, delta) => ref.current.update(delta));\n  useEffect(() => {\n    const control = ref.current;\n    control == null ? void 0 : control.rotateTo(dToR(cAzimuthAngle), dToR(cPolarAngle), enableTransition);\n  }, [ref, cAzimuthAngle, cPolarAngle]);\n  useEffect(() => {\n    const control = ref.current;\n    if (zoomOut) {\n      if (type === \"sphere\") {\n        control == null ? void 0 : control.dollyTo(zoomOutSphere.distance, enableTransition);\n        control == null ? void 0 : control.zoomTo(zoomOutSphere.zoom, enableTransition);\n      } else {\n        control == null ? void 0 : control.dollyTo(zoomOutPlanes.distance, enableTransition);\n        control == null ? void 0 : control.zoomTo(zoomOutPlanes.zoom, enableTransition);\n      }\n    } else {\n      if (type === \"sphere\") {\n        control == null ? void 0 : control.zoomTo(cameraZoom, enableTransition);\n        control == null ? void 0 : control.dollyTo(defaultSphereDistance, enableTransition);\n      } else {\n        control == null ? void 0 : control.dollyTo(cDistance, enableTransition);\n        control == null ? void 0 : control.zoomTo(defaultPlanesZoom, enableTransition);\n      }\n    }\n  }, [ref, zoomOut, type, cameraZoom, cDistance]);\n  return ref;\n}\n\nexport {\n  useCameraAnimation\n};\n","import {\n  useCameraAnimation\n} from \"./chunk-KO4ISVNC.mjs\";\nimport {\n  extend,\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  three_module_exports\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __objRest\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/camera-controls@2.9.0_three@0.169.0/node_modules/camera-controls/dist/camera-controls.module.js\nvar MOUSE_BUTTON = {\n  LEFT: 1,\n  RIGHT: 2,\n  MIDDLE: 4\n};\nvar ACTION = Object.freeze({\n  NONE: 0,\n  ROTATE: 1,\n  TRUCK: 2,\n  OFFSET: 4,\n  DOLLY: 8,\n  ZOOM: 16,\n  TOUCH_ROTATE: 32,\n  TOUCH_TRUCK: 64,\n  TOUCH_OFFSET: 128,\n  TOUCH_DOLLY: 256,\n  TOUCH_ZOOM: 512,\n  TOUCH_DOLLY_TRUCK: 1024,\n  TOUCH_DOLLY_OFFSET: 2048,\n  TOUCH_DOLLY_ROTATE: 4096,\n  TOUCH_ZOOM_TRUCK: 8192,\n  TOUCH_ZOOM_OFFSET: 16384,\n  TOUCH_ZOOM_ROTATE: 32768\n});\nvar DOLLY_DIRECTION = {\n  NONE: 0,\n  IN: 1,\n  OUT: -1\n};\nfunction isPerspectiveCamera(camera) {\n  return camera.isPerspectiveCamera;\n}\nfunction isOrthographicCamera(camera) {\n  return camera.isOrthographicCamera;\n}\nvar PI_2 = Math.PI * 2;\nvar PI_HALF = Math.PI / 2;\nvar EPSILON = 1e-5;\nvar DEG2RAD = Math.PI / 180;\nfunction clamp(value, min, max) {\n  return Math.max(min, Math.min(max, value));\n}\nfunction approxZero(number, error = EPSILON) {\n  return Math.abs(number) < error;\n}\nfunction approxEquals(a, b, error = EPSILON) {\n  return approxZero(a - b, error);\n}\nfunction roundToStep(value, step) {\n  return Math.round(value / step) * step;\n}\nfunction infinityToMaxNumber(value) {\n  if (isFinite(value))\n    return value;\n  if (value < 0)\n    return -Number.MAX_VALUE;\n  return Number.MAX_VALUE;\n}\nfunction maxNumberToInfinity(value) {\n  if (Math.abs(value) < Number.MAX_VALUE)\n    return value;\n  return value * Infinity;\n}\nfunction smoothDamp(current, target, currentVelocityRef, smoothTime, maxSpeed = Infinity, deltaTime) {\n  smoothTime = Math.max(1e-4, smoothTime);\n  const omega = 2 / smoothTime;\n  const x = omega * deltaTime;\n  const exp = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x);\n  let change = current - target;\n  const originalTo = target;\n  const maxChange = maxSpeed * smoothTime;\n  change = clamp(change, -maxChange, maxChange);\n  target = current - change;\n  const temp = (currentVelocityRef.value + omega * change) * deltaTime;\n  currentVelocityRef.value = (currentVelocityRef.value - omega * temp) * exp;\n  let output = target + (change + temp) * exp;\n  if (originalTo - current > 0 === output > originalTo) {\n    output = originalTo;\n    currentVelocityRef.value = (output - originalTo) / deltaTime;\n  }\n  return output;\n}\nfunction smoothDampVec3(current, target, currentVelocityRef, smoothTime, maxSpeed = Infinity, deltaTime, out) {\n  smoothTime = Math.max(1e-4, smoothTime);\n  const omega = 2 / smoothTime;\n  const x = omega * deltaTime;\n  const exp = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x);\n  let targetX = target.x;\n  let targetY = target.y;\n  let targetZ = target.z;\n  let changeX = current.x - targetX;\n  let changeY = current.y - targetY;\n  let changeZ = current.z - targetZ;\n  const originalToX = targetX;\n  const originalToY = targetY;\n  const originalToZ = targetZ;\n  const maxChange = maxSpeed * smoothTime;\n  const maxChangeSq = maxChange * maxChange;\n  const magnitudeSq = changeX * changeX + changeY * changeY + changeZ * changeZ;\n  if (magnitudeSq > maxChangeSq) {\n    const magnitude = Math.sqrt(magnitudeSq);\n    changeX = changeX / magnitude * maxChange;\n    changeY = changeY / magnitude * maxChange;\n    changeZ = changeZ / magnitude * maxChange;\n  }\n  targetX = current.x - changeX;\n  targetY = current.y - changeY;\n  targetZ = current.z - changeZ;\n  const tempX = (currentVelocityRef.x + omega * changeX) * deltaTime;\n  const tempY = (currentVelocityRef.y + omega * changeY) * deltaTime;\n  const tempZ = (currentVelocityRef.z + omega * changeZ) * deltaTime;\n  currentVelocityRef.x = (currentVelocityRef.x - omega * tempX) * exp;\n  currentVelocityRef.y = (currentVelocityRef.y - omega * tempY) * exp;\n  currentVelocityRef.z = (currentVelocityRef.z - omega * tempZ) * exp;\n  out.x = targetX + (changeX + tempX) * exp;\n  out.y = targetY + (changeY + tempY) * exp;\n  out.z = targetZ + (changeZ + tempZ) * exp;\n  const origMinusCurrentX = originalToX - current.x;\n  const origMinusCurrentY = originalToY - current.y;\n  const origMinusCurrentZ = originalToZ - current.z;\n  const outMinusOrigX = out.x - originalToX;\n  const outMinusOrigY = out.y - originalToY;\n  const outMinusOrigZ = out.z - originalToZ;\n  if (origMinusCurrentX * outMinusOrigX + origMinusCurrentY * outMinusOrigY + origMinusCurrentZ * outMinusOrigZ > 0) {\n    out.x = originalToX;\n    out.y = originalToY;\n    out.z = originalToZ;\n    currentVelocityRef.x = (out.x - originalToX) / deltaTime;\n    currentVelocityRef.y = (out.y - originalToY) / deltaTime;\n    currentVelocityRef.z = (out.z - originalToZ) / deltaTime;\n  }\n  return out;\n}\nfunction extractClientCoordFromEvent(pointers, out) {\n  out.set(0, 0);\n  pointers.forEach((pointer) => {\n    out.x += pointer.clientX;\n    out.y += pointer.clientY;\n  });\n  out.x /= pointers.length;\n  out.y /= pointers.length;\n}\nfunction notSupportedInOrthographicCamera(camera, message) {\n  if (isOrthographicCamera(camera)) {\n    console.warn(`${message} is not supported in OrthographicCamera`);\n    return true;\n  }\n  return false;\n}\nvar EventDispatcher = class {\n  constructor() {\n    this._listeners = {};\n  }\n  /**\n   * Adds the specified event listener.\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  addEventListener(type, listener) {\n    const listeners = this._listeners;\n    if (listeners[type] === void 0)\n      listeners[type] = [];\n    if (listeners[type].indexOf(listener) === -1)\n      listeners[type].push(listener);\n  }\n  /**\n   * Presence of the specified event listener.\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  hasEventListener(type, listener) {\n    const listeners = this._listeners;\n    return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1;\n  }\n  /**\n   * Removes the specified event listener\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  removeEventListener(type, listener) {\n    const listeners = this._listeners;\n    const listenerArray = listeners[type];\n    if (listenerArray !== void 0) {\n      const index = listenerArray.indexOf(listener);\n      if (index !== -1)\n        listenerArray.splice(index, 1);\n    }\n  }\n  /**\n   * Removes all event listeners\n   * @param type event name\n   * @category Methods\n   */\n  removeAllEventListeners(type) {\n    if (!type) {\n      this._listeners = {};\n      return;\n    }\n    if (Array.isArray(this._listeners[type]))\n      this._listeners[type].length = 0;\n  }\n  /**\n   * Fire an event type.\n   * @param event DispatcherEvent\n   * @category Methods\n   */\n  dispatchEvent(event) {\n    const listeners = this._listeners;\n    const listenerArray = listeners[event.type];\n    if (listenerArray !== void 0) {\n      event.target = this;\n      const array = listenerArray.slice(0);\n      for (let i = 0, l = array.length; i < l; i++) {\n        array[i].call(this, event);\n      }\n    }\n  }\n};\nvar _a;\nvar VERSION = \"2.9.0\";\nvar TOUCH_DOLLY_FACTOR = 1 / 8;\nvar isMac = /Mac/.test((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.platform);\nvar THREE;\nvar _ORIGIN;\nvar _AXIS_Y;\nvar _AXIS_Z;\nvar _v2;\nvar _v3A;\nvar _v3B;\nvar _v3C;\nvar _cameraDirection;\nvar _xColumn;\nvar _yColumn;\nvar _zColumn;\nvar _deltaTarget;\nvar _deltaOffset;\nvar _sphericalA;\nvar _sphericalB;\nvar _box3A;\nvar _box3B;\nvar _sphere;\nvar _quaternionA;\nvar _quaternionB;\nvar _rotationMatrix;\nvar _raycaster;\nvar CameraControls = class _CameraControls extends EventDispatcher {\n  /**\n       * Injects THREE as the dependency. You can then proceed to use CameraControls.\n       *\n       * e.g\n       * ```javascript\n       * CameraControls.install( { THREE: THREE } );\n       * ```\n       *\n       * Note: If you do not wish to use enter three.js to reduce file size(tree-shaking for example), make a subset to install.\n       *\n       * ```js\n       * import {\n       * \tVector2,\n       * \tVector3,\n       * \tVector4,\n       * \tQuaternion,\n       * \tMatrix4,\n       * \tSpherical,\n       * \tBox3,\n       * \tSphere,\n       * \tRaycaster,\n       * \tMathUtils,\n       * } from 'three';\n       *\n       * const subsetOfTHREE = {\n       * \tVector2   : Vector2,\n       * \tVector3   : Vector3,\n       * \tVector4   : Vector4,\n       * \tQuaternion: Quaternion,\n       * \tMatrix4   : Matrix4,\n       * \tSpherical : Spherical,\n       * \tBox3      : Box3,\n       * \tSphere    : Sphere,\n       * \tRaycaster : Raycaster,\n       * };\n  \n       * CameraControls.install( { THREE: subsetOfTHREE } );\n       * ```\n       * @category Statics\n       */\n  static install(libs) {\n    THREE = libs.THREE;\n    _ORIGIN = Object.freeze(new THREE.Vector3(0, 0, 0));\n    _AXIS_Y = Object.freeze(new THREE.Vector3(0, 1, 0));\n    _AXIS_Z = Object.freeze(new THREE.Vector3(0, 0, 1));\n    _v2 = new THREE.Vector2();\n    _v3A = new THREE.Vector3();\n    _v3B = new THREE.Vector3();\n    _v3C = new THREE.Vector3();\n    _cameraDirection = new THREE.Vector3();\n    _xColumn = new THREE.Vector3();\n    _yColumn = new THREE.Vector3();\n    _zColumn = new THREE.Vector3();\n    _deltaTarget = new THREE.Vector3();\n    _deltaOffset = new THREE.Vector3();\n    _sphericalA = new THREE.Spherical();\n    _sphericalB = new THREE.Spherical();\n    _box3A = new THREE.Box3();\n    _box3B = new THREE.Box3();\n    _sphere = new THREE.Sphere();\n    _quaternionA = new THREE.Quaternion();\n    _quaternionB = new THREE.Quaternion();\n    _rotationMatrix = new THREE.Matrix4();\n    _raycaster = new THREE.Raycaster();\n  }\n  /**\n   * list all ACTIONs\n   * @category Statics\n   */\n  static get ACTION() {\n    return ACTION;\n  }\n  /**\n   * Creates a `CameraControls` instance.\n   *\n   * Note:\n   * You **must install** three.js before using camera-controls. see [#install](#install)\n   * Not doing so will lead to runtime errors (`undefined` references to THREE).\n   *\n   * e.g.\n   * ```\n   * CameraControls.install( { THREE } );\n   * const cameraControls = new CameraControls( camera, domElement );\n   * ```\n   *\n   * @param camera A `THREE.PerspectiveCamera` or `THREE.OrthographicCamera` to be controlled.\n   * @param domElement A `HTMLElement` for the draggable area, usually `renderer.domElement`.\n   * @category Constructor\n   */\n  constructor(camera, domElement) {\n    super();\n    this.minPolarAngle = 0;\n    this.maxPolarAngle = Math.PI;\n    this.minAzimuthAngle = -Infinity;\n    this.maxAzimuthAngle = Infinity;\n    this.minDistance = Number.EPSILON;\n    this.maxDistance = Infinity;\n    this.infinityDolly = false;\n    this.minZoom = 0.01;\n    this.maxZoom = Infinity;\n    this.smoothTime = 0.25;\n    this.draggingSmoothTime = 0.125;\n    this.maxSpeed = Infinity;\n    this.azimuthRotateSpeed = 1;\n    this.polarRotateSpeed = 1;\n    this.dollySpeed = 1;\n    this.dollyDragInverted = false;\n    this.truckSpeed = 2;\n    this.dollyToCursor = false;\n    this.dragToOffset = false;\n    this.verticalDragToForward = false;\n    this.boundaryFriction = 0;\n    this.restThreshold = 0.01;\n    this.colliderMeshes = [];\n    this.cancel = () => {\n    };\n    this._enabled = true;\n    this._state = ACTION.NONE;\n    this._viewport = null;\n    this._changedDolly = 0;\n    this._changedZoom = 0;\n    this._hasRested = true;\n    this._boundaryEnclosesCamera = false;\n    this._needsUpdate = true;\n    this._updatedLastTime = false;\n    this._elementRect = new DOMRect();\n    this._isDragging = false;\n    this._dragNeedsUpdate = true;\n    this._activePointers = [];\n    this._lockedPointer = null;\n    this._interactiveArea = new DOMRect(0, 0, 1, 1);\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._isUserControllingOffset = false;\n    this._isUserControllingZoom = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._thetaVelocity = { value: 0 };\n    this._phiVelocity = { value: 0 };\n    this._radiusVelocity = { value: 0 };\n    this._targetVelocity = new THREE.Vector3();\n    this._focalOffsetVelocity = new THREE.Vector3();\n    this._zoomVelocity = { value: 0 };\n    this._truckInternal = (deltaX, deltaY, dragToOffset) => {\n      let truckX;\n      let pedestalY;\n      if (isPerspectiveCamera(this._camera)) {\n        const offset = _v3A.copy(this._camera.position).sub(this._target);\n        const fov = this._camera.getEffectiveFOV() * DEG2RAD;\n        const targetDistance = offset.length() * Math.tan(fov * 0.5);\n        truckX = this.truckSpeed * deltaX * targetDistance / this._elementRect.height;\n        pedestalY = this.truckSpeed * deltaY * targetDistance / this._elementRect.height;\n      } else if (isOrthographicCamera(this._camera)) {\n        const camera2 = this._camera;\n        truckX = deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;\n        pedestalY = deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;\n      } else {\n        return;\n      }\n      if (this.verticalDragToForward) {\n        dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y, this._focalOffsetEnd.z, true) : this.truck(truckX, 0, true);\n        this.forward(-pedestalY, true);\n      } else {\n        dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y + pedestalY, this._focalOffsetEnd.z, true) : this.truck(truckX, pedestalY, true);\n      }\n    };\n    this._rotateInternal = (deltaX, deltaY) => {\n      const theta = PI_2 * this.azimuthRotateSpeed * deltaX / this._elementRect.height;\n      const phi = PI_2 * this.polarRotateSpeed * deltaY / this._elementRect.height;\n      this.rotate(theta, phi, true);\n    };\n    this._dollyInternal = (delta, x, y) => {\n      const dollyScale = Math.pow(0.95, -delta * this.dollySpeed);\n      const lastDistance = this._sphericalEnd.radius;\n      const distance = this._sphericalEnd.radius * dollyScale;\n      const clampedDistance = clamp(distance, this.minDistance, this.maxDistance);\n      const overflowedDistance = clampedDistance - distance;\n      if (this.infinityDolly && this.dollyToCursor) {\n        this._dollyToNoClamp(distance, true);\n      } else if (this.infinityDolly && !this.dollyToCursor) {\n        this.dollyInFixed(overflowedDistance, true);\n        this._dollyToNoClamp(clampedDistance, true);\n      } else {\n        this._dollyToNoClamp(clampedDistance, true);\n      }\n      if (this.dollyToCursor) {\n        this._changedDolly += (this.infinityDolly ? distance : clampedDistance) - lastDistance;\n        this._dollyControlCoord.set(x, y);\n      }\n      this._lastDollyDirection = Math.sign(-delta);\n    };\n    this._zoomInternal = (delta, x, y) => {\n      const zoomScale = Math.pow(0.95, delta * this.dollySpeed);\n      const lastZoom = this._zoom;\n      const zoom = this._zoom * zoomScale;\n      this.zoomTo(zoom, true);\n      if (this.dollyToCursor) {\n        this._changedZoom += zoom - lastZoom;\n        this._dollyControlCoord.set(x, y);\n      }\n    };\n    if (typeof THREE === \"undefined\") {\n      console.error(\"camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information.\");\n    }\n    this._camera = camera;\n    this._yAxisUpSpace = new THREE.Quaternion().setFromUnitVectors(this._camera.up, _AXIS_Y);\n    this._yAxisUpSpaceInverse = this._yAxisUpSpace.clone().invert();\n    this._state = ACTION.NONE;\n    this._target = new THREE.Vector3();\n    this._targetEnd = this._target.clone();\n    this._focalOffset = new THREE.Vector3();\n    this._focalOffsetEnd = this._focalOffset.clone();\n    this._spherical = new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace));\n    this._sphericalEnd = this._spherical.clone();\n    this._lastDistance = this._spherical.radius;\n    this._zoom = this._camera.zoom;\n    this._zoomEnd = this._zoom;\n    this._lastZoom = this._zoom;\n    this._nearPlaneCorners = [\n      new THREE.Vector3(),\n      new THREE.Vector3(),\n      new THREE.Vector3(),\n      new THREE.Vector3()\n    ];\n    this._updateNearPlaneCorners();\n    this._boundary = new THREE.Box3(new THREE.Vector3(-Infinity, -Infinity, -Infinity), new THREE.Vector3(Infinity, Infinity, Infinity));\n    this._cameraUp0 = this._camera.up.clone();\n    this._target0 = this._target.clone();\n    this._position0 = this._camera.position.clone();\n    this._zoom0 = this._zoom;\n    this._focalOffset0 = this._focalOffset.clone();\n    this._dollyControlCoord = new THREE.Vector2();\n    this.mouseButtons = {\n      left: ACTION.ROTATE,\n      middle: ACTION.DOLLY,\n      right: ACTION.TRUCK,\n      wheel: isPerspectiveCamera(this._camera) ? ACTION.DOLLY : isOrthographicCamera(this._camera) ? ACTION.ZOOM : ACTION.NONE\n    };\n    this.touches = {\n      one: ACTION.TOUCH_ROTATE,\n      two: isPerspectiveCamera(this._camera) ? ACTION.TOUCH_DOLLY_TRUCK : isOrthographicCamera(this._camera) ? ACTION.TOUCH_ZOOM_TRUCK : ACTION.NONE,\n      three: ACTION.TOUCH_TRUCK\n    };\n    const dragStartPosition = new THREE.Vector2();\n    const lastDragPosition = new THREE.Vector2();\n    const dollyStart = new THREE.Vector2();\n    const onPointerDown = (event) => {\n      if (!this._enabled || !this._domElement)\n        return;\n      if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {\n        const elRect = this._domElement.getBoundingClientRect();\n        const left = event.clientX / elRect.width;\n        const top = event.clientY / elRect.height;\n        if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)\n          return;\n      }\n      const mouseButton = event.pointerType !== \"mouse\" ? null : (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.LEFT : (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE ? MOUSE_BUTTON.MIDDLE : (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT ? MOUSE_BUTTON.RIGHT : null;\n      if (mouseButton !== null) {\n        const zombiePointer = this._findPointerByMouseButton(mouseButton);\n        zombiePointer && this._disposePointer(zombiePointer);\n      }\n      if ((event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT && this._lockedPointer)\n        return;\n      const pointer = {\n        pointerId: event.pointerId,\n        clientX: event.clientX,\n        clientY: event.clientY,\n        deltaX: 0,\n        deltaY: 0,\n        mouseButton\n      };\n      this._activePointers.push(pointer);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.ownerDocument.addEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.addEventListener(\"pointerup\", onPointerUp);\n      this._isDragging = true;\n      startDragging(event);\n    };\n    const onPointerMove = (event) => {\n      if (event.cancelable)\n        event.preventDefault();\n      const pointerId = event.pointerId;\n      const pointer = this._lockedPointer || this._findPointerById(pointerId);\n      if (!pointer)\n        return;\n      pointer.clientX = event.clientX;\n      pointer.clientY = event.clientY;\n      pointer.deltaX = event.movementX;\n      pointer.deltaY = event.movementY;\n      this._state = 0;\n      if (event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        if (!this._isDragging && this._lockedPointer || this._isDragging && (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {\n          this._state = this._state | this.mouseButtons.left;\n        }\n        if (this._isDragging && (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {\n          this._state = this._state | this.mouseButtons.middle;\n        }\n        if (this._isDragging && (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {\n          this._state = this._state | this.mouseButtons.right;\n        }\n      }\n      dragging();\n    };\n    const onPointerUp = (event) => {\n      const pointer = this._findPointerById(event.pointerId);\n      if (pointer && pointer === this._lockedPointer)\n        return;\n      pointer && this._disposePointer(pointer);\n      if (event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 0:\n            this._state = ACTION.NONE;\n            break;\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        this._state = ACTION.NONE;\n      }\n      endDragging();\n    };\n    let lastScrollTimeStamp = -1;\n    const onMouseWheel = (event) => {\n      if (!this._domElement)\n        return;\n      if (!this._enabled || this.mouseButtons.wheel === ACTION.NONE)\n        return;\n      if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {\n        const elRect = this._domElement.getBoundingClientRect();\n        const left = event.clientX / elRect.width;\n        const top = event.clientY / elRect.height;\n        if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)\n          return;\n      }\n      event.preventDefault();\n      if (this.dollyToCursor || this.mouseButtons.wheel === ACTION.ROTATE || this.mouseButtons.wheel === ACTION.TRUCK) {\n        const now = performance.now();\n        if (lastScrollTimeStamp - now < 1e3)\n          this._getClientRect(this._elementRect);\n        lastScrollTimeStamp = now;\n      }\n      const deltaYFactor = isMac ? -1 : -3;\n      const delta = event.deltaMode === 1 ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);\n      const x = this.dollyToCursor ? (event.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n      const y = this.dollyToCursor ? (event.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n      switch (this.mouseButtons.wheel) {\n        case ACTION.ROTATE: {\n          this._rotateInternal(event.deltaX, event.deltaY);\n          this._isUserControllingRotate = true;\n          break;\n        }\n        case ACTION.TRUCK: {\n          this._truckInternal(event.deltaX, event.deltaY, false);\n          this._isUserControllingTruck = true;\n          break;\n        }\n        case ACTION.OFFSET: {\n          this._truckInternal(event.deltaX, event.deltaY, true);\n          this._isUserControllingOffset = true;\n          break;\n        }\n        case ACTION.DOLLY: {\n          this._dollyInternal(-delta, x, y);\n          this._isUserControllingDolly = true;\n          break;\n        }\n        case ACTION.ZOOM: {\n          this._zoomInternal(-delta, x, y);\n          this._isUserControllingZoom = true;\n          break;\n        }\n      }\n      this.dispatchEvent({ type: \"control\" });\n    };\n    const onContextMenu = (event) => {\n      if (!this._domElement || !this._enabled)\n        return;\n      if (this.mouseButtons.right === _CameraControls.ACTION.NONE) {\n        const pointerId = event instanceof PointerEvent ? event.pointerId : 0;\n        const pointer = this._findPointerById(pointerId);\n        pointer && this._disposePointer(pointer);\n        this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n        this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n        return;\n      }\n      event.preventDefault();\n    };\n    const startDragging = (event) => {\n      if (!this._enabled)\n        return;\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      this._getClientRect(this._elementRect);\n      dragStartPosition.copy(_v2);\n      lastDragPosition.copy(_v2);\n      const isMultiTouch = this._activePointers.length >= 2;\n      if (isMultiTouch) {\n        const dx = _v2.x - this._activePointers[1].clientX;\n        const dy = _v2.y - this._activePointers[1].clientY;\n        const distance = Math.sqrt(dx * dx + dy * dy);\n        dollyStart.set(0, distance);\n        const x = (this._activePointers[0].clientX + this._activePointers[1].clientX) * 0.5;\n        const y = (this._activePointers[0].clientY + this._activePointers[1].clientY) * 0.5;\n        lastDragPosition.set(x, y);\n      }\n      this._state = 0;\n      if (!event) {\n        if (this._lockedPointer)\n          this._state = this._state | this.mouseButtons.left;\n      } else if (\"pointerType\" in event && event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        if (!this._lockedPointer && (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {\n          this._state = this._state | this.mouseButtons.left;\n        }\n        if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {\n          this._state = this._state | this.mouseButtons.middle;\n        }\n        if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {\n          this._state = this._state | this.mouseButtons.right;\n        }\n      }\n      if ((this._state & ACTION.ROTATE) === ACTION.ROTATE || (this._state & ACTION.TOUCH_ROTATE) === ACTION.TOUCH_ROTATE || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._sphericalEnd.theta = this._spherical.theta;\n        this._sphericalEnd.phi = this._spherical.phi;\n        this._thetaVelocity.value = 0;\n        this._phiVelocity.value = 0;\n      }\n      if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {\n        this._targetEnd.copy(this._target);\n        this._targetVelocity.set(0, 0, 0);\n      }\n      if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE) {\n        this._sphericalEnd.radius = this._spherical.radius;\n        this._radiusVelocity.value = 0;\n      }\n      if ((this._state & ACTION.ZOOM) === ACTION.ZOOM || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._zoomEnd = this._zoom;\n        this._zoomVelocity.value = 0;\n      }\n      if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) {\n        this._focalOffsetEnd.copy(this._focalOffset);\n        this._focalOffsetVelocity.set(0, 0, 0);\n      }\n      this.dispatchEvent({ type: \"controlstart\" });\n    };\n    const dragging = () => {\n      if (!this._enabled || !this._dragNeedsUpdate)\n        return;\n      this._dragNeedsUpdate = false;\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;\n      const lockedPointer = isPointerLockActive ? this._lockedPointer || this._activePointers[0] : null;\n      const deltaX = lockedPointer ? -lockedPointer.deltaX : lastDragPosition.x - _v2.x;\n      const deltaY = lockedPointer ? -lockedPointer.deltaY : lastDragPosition.y - _v2.y;\n      lastDragPosition.copy(_v2);\n      if ((this._state & ACTION.ROTATE) === ACTION.ROTATE || (this._state & ACTION.TOUCH_ROTATE) === ACTION.TOUCH_ROTATE || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._rotateInternal(deltaX, deltaY);\n        this._isUserControllingRotate = true;\n      }\n      if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.ZOOM) === ACTION.ZOOM) {\n        const dollyX = this.dollyToCursor ? (dragStartPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n        const dollyY = this.dollyToCursor ? (dragStartPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n        const dollyDirection = this.dollyDragInverted ? -1 : 1;\n        if ((this._state & ACTION.DOLLY) === ACTION.DOLLY) {\n          this._dollyInternal(dollyDirection * deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingDolly = true;\n        } else {\n          this._zoomInternal(dollyDirection * deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingZoom = true;\n        }\n      }\n      if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        const dx = _v2.x - this._activePointers[1].clientX;\n        const dy = _v2.y - this._activePointers[1].clientY;\n        const distance = Math.sqrt(dx * dx + dy * dy);\n        const dollyDelta = dollyStart.y - distance;\n        dollyStart.set(0, distance);\n        const dollyX = this.dollyToCursor ? (lastDragPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n        const dollyY = this.dollyToCursor ? (lastDragPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n        if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET) {\n          this._dollyInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingDolly = true;\n        } else {\n          this._zoomInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingZoom = true;\n        }\n      }\n      if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {\n        this._truckInternal(deltaX, deltaY, false);\n        this._isUserControllingTruck = true;\n      }\n      if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) {\n        this._truckInternal(deltaX, deltaY, true);\n        this._isUserControllingOffset = true;\n      }\n      this.dispatchEvent({ type: \"control\" });\n    };\n    const endDragging = () => {\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      lastDragPosition.copy(_v2);\n      this._dragNeedsUpdate = false;\n      if (this._activePointers.length === 0 || this._activePointers.length === 1 && this._activePointers[0] === this._lockedPointer) {\n        this._isDragging = false;\n      }\n      if (this._activePointers.length === 0 && this._domElement) {\n        this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n        this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n        this.dispatchEvent({ type: \"controlend\" });\n      }\n    };\n    this.lockPointer = () => {\n      if (!this._enabled || !this._domElement)\n        return;\n      this.cancel();\n      this._lockedPointer = {\n        pointerId: -1,\n        clientX: 0,\n        clientY: 0,\n        deltaX: 0,\n        deltaY: 0,\n        mouseButton: null\n      };\n      this._activePointers.push(this._lockedPointer);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.requestPointerLock();\n      this._domElement.ownerDocument.addEventListener(\"pointerlockchange\", onPointerLockChange);\n      this._domElement.ownerDocument.addEventListener(\"pointerlockerror\", onPointerLockError);\n      this._domElement.ownerDocument.addEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.addEventListener(\"pointerup\", onPointerUp);\n      startDragging();\n    };\n    this.unlockPointer = () => {\n      var _a2, _b, _c;\n      if (this._lockedPointer !== null) {\n        this._disposePointer(this._lockedPointer);\n        this._lockedPointer = null;\n      }\n      (_a2 = this._domElement) === null || _a2 === void 0 ? void 0 : _a2.ownerDocument.exitPointerLock();\n      (_b = this._domElement) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener(\"pointerlockchange\", onPointerLockChange);\n      (_c = this._domElement) === null || _c === void 0 ? void 0 : _c.ownerDocument.removeEventListener(\"pointerlockerror\", onPointerLockError);\n      this.cancel();\n    };\n    const onPointerLockChange = () => {\n      const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;\n      if (!isPointerLockActive)\n        this.unlockPointer();\n    };\n    const onPointerLockError = () => {\n      this.unlockPointer();\n    };\n    this._addAllEventListeners = (domElement2) => {\n      this._domElement = domElement2;\n      this._domElement.style.touchAction = \"none\";\n      this._domElement.style.userSelect = \"none\";\n      this._domElement.style.webkitUserSelect = \"none\";\n      this._domElement.addEventListener(\"pointerdown\", onPointerDown);\n      this._domElement.addEventListener(\"pointercancel\", onPointerUp);\n      this._domElement.addEventListener(\"wheel\", onMouseWheel, { passive: false });\n      this._domElement.addEventListener(\"contextmenu\", onContextMenu);\n    };\n    this._removeAllEventListeners = () => {\n      if (!this._domElement)\n        return;\n      this._domElement.style.touchAction = \"\";\n      this._domElement.style.userSelect = \"\";\n      this._domElement.style.webkitUserSelect = \"\";\n      this._domElement.removeEventListener(\"pointerdown\", onPointerDown);\n      this._domElement.removeEventListener(\"pointercancel\", onPointerUp);\n      this._domElement.removeEventListener(\"wheel\", onMouseWheel, { passive: false });\n      this._domElement.removeEventListener(\"contextmenu\", onContextMenu);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.ownerDocument.removeEventListener(\"pointerlockchange\", onPointerLockChange);\n      this._domElement.ownerDocument.removeEventListener(\"pointerlockerror\", onPointerLockError);\n    };\n    this.cancel = () => {\n      if (this._state === ACTION.NONE)\n        return;\n      this._state = ACTION.NONE;\n      this._activePointers.length = 0;\n      endDragging();\n    };\n    if (domElement)\n      this.connect(domElement);\n    this.update(0);\n  }\n  /**\n   * The camera to be controlled\n   * @category Properties\n   */\n  get camera() {\n    return this._camera;\n  }\n  set camera(camera) {\n    this._camera = camera;\n    this.updateCameraUp();\n    this._camera.updateProjectionMatrix();\n    this._updateNearPlaneCorners();\n    this._needsUpdate = true;\n  }\n  /**\n   * Whether or not the controls are enabled.\n   * `false` to disable user dragging/touch-move, but all methods works.\n   * @category Properties\n   */\n  get enabled() {\n    return this._enabled;\n  }\n  set enabled(enabled) {\n    this._enabled = enabled;\n    if (!this._domElement)\n      return;\n    if (enabled) {\n      this._domElement.style.touchAction = \"none\";\n      this._domElement.style.userSelect = \"none\";\n      this._domElement.style.webkitUserSelect = \"none\";\n    } else {\n      this.cancel();\n      this._domElement.style.touchAction = \"\";\n      this._domElement.style.userSelect = \"\";\n      this._domElement.style.webkitUserSelect = \"\";\n    }\n  }\n  /**\n   * Returns `true` if the controls are active updating.\n   * readonly value.\n   * @category Properties\n   */\n  get active() {\n    return !this._hasRested;\n  }\n  /**\n   * Getter for the current `ACTION`.\n   * readonly value.\n   * @category Properties\n   */\n  get currentAction() {\n    return this._state;\n  }\n  /**\n   * get/set Current distance.\n   * @category Properties\n   */\n  get distance() {\n    return this._spherical.radius;\n  }\n  set distance(distance) {\n    if (this._spherical.radius === distance && this._sphericalEnd.radius === distance)\n      return;\n    this._spherical.radius = distance;\n    this._sphericalEnd.radius = distance;\n    this._needsUpdate = true;\n  }\n  // horizontal angle\n  /**\n   * get/set the azimuth angle (horizontal) in radians.\n   * Every 360 degrees turn is added to `.azimuthAngle` value, which is accumulative.\n   * @category Properties\n   */\n  get azimuthAngle() {\n    return this._spherical.theta;\n  }\n  set azimuthAngle(azimuthAngle) {\n    if (this._spherical.theta === azimuthAngle && this._sphericalEnd.theta === azimuthAngle)\n      return;\n    this._spherical.theta = azimuthAngle;\n    this._sphericalEnd.theta = azimuthAngle;\n    this._needsUpdate = true;\n  }\n  // vertical angle\n  /**\n   * get/set the polar angle (vertical) in radians.\n   * @category Properties\n   */\n  get polarAngle() {\n    return this._spherical.phi;\n  }\n  set polarAngle(polarAngle) {\n    if (this._spherical.phi === polarAngle && this._sphericalEnd.phi === polarAngle)\n      return;\n    this._spherical.phi = polarAngle;\n    this._sphericalEnd.phi = polarAngle;\n    this._needsUpdate = true;\n  }\n  /**\n   * Whether camera position should be enclosed in the boundary or not.\n   * @category Properties\n   */\n  get boundaryEnclosesCamera() {\n    return this._boundaryEnclosesCamera;\n  }\n  set boundaryEnclosesCamera(boundaryEnclosesCamera) {\n    this._boundaryEnclosesCamera = boundaryEnclosesCamera;\n    this._needsUpdate = true;\n  }\n  /**\n   * Set drag-start, touches and wheel enable area in the domElement.\n   * each values are between `0` and `1` inclusive, where `0` is left/top and `1` is right/bottom of the screen.\n   * e.g. `{ x: 0, y: 0, width: 1, height: 1 }` for entire area.\n   * @category Properties\n   */\n  set interactiveArea(interactiveArea) {\n    this._interactiveArea.width = clamp(interactiveArea.width, 0, 1);\n    this._interactiveArea.height = clamp(interactiveArea.height, 0, 1);\n    this._interactiveArea.x = clamp(interactiveArea.x, 0, 1 - this._interactiveArea.width);\n    this._interactiveArea.y = clamp(interactiveArea.y, 0, 1 - this._interactiveArea.height);\n  }\n  /**\n   * Adds the specified event listener.\n   * Applicable event types (which is `K`) are:\n   * | Event name          | Timing |\n   * | ------------------- | ------ |\n   * | `'controlstart'`    | When the user starts to control the camera via mouse / touches. ¹ |\n   * | `'control'`         | When the user controls the camera (dragging). |\n   * | `'controlend'`      | When the user ends to control the camera. ¹ |\n   * | `'transitionstart'` | When any kind of transition starts, either user control or using a method with `enableTransition = true` |\n   * | `'update'`          | When the camera position is updated. |\n   * | `'wake'`            | When the camera starts moving. |\n   * | `'rest'`            | When the camera movement is below `.restThreshold` ². |\n   * | `'sleep'`           | When the camera end moving. |\n   *\n   * 1. `mouseButtons.wheel` (Mouse wheel control) does not emit `'controlstart'` and `'controlend'`. `mouseButtons.wheel` uses scroll-event internally, and scroll-event happens intermittently. That means \"start\" and \"end\" cannot be detected.\n   * 2. Due to damping, `sleep` will usually fire a few seconds after the camera _appears_ to have stopped moving. If you want to do something (e.g. enable UI, perform another transition) at the point when the camera has stopped, you probably want the `rest` event. This can be fine tuned using the `.restThreshold` parameter. See the [Rest and Sleep Example](https://yomotsu.github.io/camera-controls/examples/rest-and-sleep.html).\n   *\n   * e.g.\n   * ```\n   * cameraControl.addEventListener( 'controlstart', myCallbackFunction );\n   * ```\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  addEventListener(type, listener) {\n    super.addEventListener(type, listener);\n  }\n  /**\n   * Removes the specified event listener\n   * e.g.\n   * ```\n   * cameraControl.addEventListener( 'controlstart', myCallbackFunction );\n   * ```\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  removeEventListener(type, listener) {\n    super.removeEventListener(type, listener);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) and polar angle(vertical).\n   * Every value is added to the current value.\n   * @param azimuthAngle Azimuth rotate angle. In radian.\n   * @param polarAngle Polar rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotate(azimuthAngle, polarAngle, enableTransition = false) {\n    return this.rotateTo(this._sphericalEnd.theta + azimuthAngle, this._sphericalEnd.phi + polarAngle, enableTransition);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) to the given angle and keep the same polar angle(vertical) target.\n   *\n   * e.g.\n   * ```\n   * cameraControls.rotateAzimuthTo( 30 * THREE.MathUtils.DEG2RAD, true );\n   * ```\n   * @param azimuthAngle Azimuth rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotateAzimuthTo(azimuthAngle, enableTransition = false) {\n    return this.rotateTo(azimuthAngle, this._sphericalEnd.phi, enableTransition);\n  }\n  /**\n   * Rotate polar angle(vertical) to the given angle and keep the same azimuthal angle(horizontal) target.\n   *\n   * e.g.\n   * ```\n   * cameraControls.rotatePolarTo( 30 * THREE.MathUtils.DEG2RAD, true );\n   * ```\n   * @param polarAngle Polar rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotatePolarTo(polarAngle, enableTransition = false) {\n    return this.rotateTo(this._sphericalEnd.theta, polarAngle, enableTransition);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) and polar angle(vertical) to the given angle.\n   * Camera view will rotate over the orbit pivot absolutely:\n   *\n   * azimuthAngle\n   * ```\n   *       0º\n   *         \\\n   * 90º -----+----- -90º\n   *           \\\n   *           180º\n   * ```\n   * | direction | angle                  |\n   * | --------- | ---------------------- |\n   * | front     | 0º                     |\n   * | left      | 90º (`Math.PI / 2`)    |\n   * | right     | -90º (`- Math.PI / 2`) |\n   * | back      | 180º (`Math.PI`)       |\n   *\n   * polarAngle\n   * ```\n   *     180º\n   *      |\n   *      90º\n   *      |\n   *      0º\n   * ```\n   * | direction            | angle                  |\n   * | -------------------- | ---------------------- |\n   * | top/sky              | 180º (`Math.PI`)       |\n   * | horizontal from view | 90º (`Math.PI / 2`)    |\n   * | bottom/floor         | 0º                     |\n   *\n   * @param azimuthAngle Azimuth rotate angle to. In radian.\n   * @param polarAngle Polar rotate angle to. In radian.\n   * @param enableTransition  Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotateTo(azimuthAngle, polarAngle, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    const theta = clamp(azimuthAngle, this.minAzimuthAngle, this.maxAzimuthAngle);\n    const phi = clamp(polarAngle, this.minPolarAngle, this.maxPolarAngle);\n    this._sphericalEnd.theta = theta;\n    this._sphericalEnd.phi = phi;\n    this._sphericalEnd.makeSafe();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._spherical.theta = this._sphericalEnd.theta;\n      this._spherical.phi = this._sphericalEnd.phi;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Dolly in/out camera position.\n   * @param distance Distance of dollyIn. Negative number for dollyOut.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dolly(distance, enableTransition = false) {\n    return this.dollyTo(this._sphericalEnd.radius - distance, enableTransition);\n  }\n  /**\n   * Dolly in/out camera position to given distance.\n   * @param distance Distance of dolly.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dollyTo(distance, enableTransition = false) {\n    this._isUserControllingDolly = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    return this._dollyToNoClamp(clamp(distance, this.minDistance, this.maxDistance), enableTransition);\n  }\n  _dollyToNoClamp(distance, enableTransition = false) {\n    const lastRadius = this._sphericalEnd.radius;\n    const hasCollider = this.colliderMeshes.length >= 1;\n    if (hasCollider) {\n      const maxDistanceByCollisionTest = this._collisionTest();\n      const isCollided = approxEquals(maxDistanceByCollisionTest, this._spherical.radius);\n      const isDollyIn = lastRadius > distance;\n      if (!isDollyIn && isCollided)\n        return Promise.resolve();\n      this._sphericalEnd.radius = Math.min(distance, maxDistanceByCollisionTest);\n    } else {\n      this._sphericalEnd.radius = distance;\n    }\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._spherical.radius = this._sphericalEnd.radius;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Dolly in, but does not change the distance between the target and the camera, and moves the target position instead.\n   * Specify a negative value for dolly out.\n   * @param distance Distance of dolly.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dollyInFixed(distance, enableTransition = false) {\n    this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(distance));\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Zoom in/out camera. The value is added to camera zoom.\n   * Limits set with `.minZoom` and `.maxZoom`\n   * @param zoomStep zoom scale\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  zoom(zoomStep, enableTransition = false) {\n    return this.zoomTo(this._zoomEnd + zoomStep, enableTransition);\n  }\n  /**\n   * Zoom in/out camera to given scale. The value overwrites camera zoom.\n   * Limits set with .minZoom and .maxZoom\n   * @param zoom\n   * @param enableTransition\n   * @category Methods\n   */\n  zoomTo(zoom, enableTransition = false) {\n    this._isUserControllingZoom = false;\n    this._zoomEnd = clamp(zoom, this.minZoom, this.maxZoom);\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._zoom = this._zoomEnd;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._zoom, this._zoomEnd, this.restThreshold);\n    this._changedZoom = 0;\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * @deprecated `pan()` has been renamed to `truck()`\n   * @category Methods\n   */\n  pan(x, y, enableTransition = false) {\n    console.warn(\"`pan` has been renamed to `truck`\");\n    return this.truck(x, y, enableTransition);\n  }\n  /**\n   * Truck and pedestal camera using current azimuthal angle\n   * @param x Horizontal translate amount\n   * @param y Vertical translate amount\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  truck(x, y, enableTransition = false) {\n    this._camera.updateMatrix();\n    _xColumn.setFromMatrixColumn(this._camera.matrix, 0);\n    _yColumn.setFromMatrixColumn(this._camera.matrix, 1);\n    _xColumn.multiplyScalar(x);\n    _yColumn.multiplyScalar(-y);\n    const offset = _v3A.copy(_xColumn).add(_yColumn);\n    const to = _v3B.copy(this._targetEnd).add(offset);\n    return this.moveTo(to.x, to.y, to.z, enableTransition);\n  }\n  /**\n   * Move forward / backward.\n   * @param distance Amount to move forward / backward. Negative value to move backward\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  forward(distance, enableTransition = false) {\n    _v3A.setFromMatrixColumn(this._camera.matrix, 0);\n    _v3A.crossVectors(this._camera.up, _v3A);\n    _v3A.multiplyScalar(distance);\n    const to = _v3B.copy(this._targetEnd).add(_v3A);\n    return this.moveTo(to.x, to.y, to.z, enableTransition);\n  }\n  /**\n   * Move up / down.\n   * @param height Amount to move up / down. Negative value to move down\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  elevate(height, enableTransition = false) {\n    _v3A.copy(this._camera.up).multiplyScalar(height);\n    return this.moveTo(this._targetEnd.x + _v3A.x, this._targetEnd.y + _v3A.y, this._targetEnd.z + _v3A.z, enableTransition);\n  }\n  /**\n   * Move target position to given point.\n   * @param x x coord to move center position\n   * @param y y coord to move center position\n   * @param z z coord to move center position\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  moveTo(x, y, z, enableTransition = false) {\n    this._isUserControllingTruck = false;\n    const offset = _v3A.set(x, y, z).sub(this._targetEnd);\n    this._encloseToBoundary(this._targetEnd, offset, this.boundaryFriction);\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Look in the given point direction.\n   * @param x point x.\n   * @param y point y.\n   * @param z point z.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @returns Transition end promise\n   * @category Methods\n   */\n  lookInDirectionOf(x, y, z, enableTransition = false) {\n    const point = _v3A.set(x, y, z);\n    const direction = point.sub(this._targetEnd).normalize();\n    const position = direction.multiplyScalar(-this._sphericalEnd.radius).add(this._targetEnd);\n    return this.setPosition(position.x, position.y, position.z, enableTransition);\n  }\n  /**\n   * Fit the viewport to the box or the bounding box of the object, using the nearest axis. paddings are in unit.\n   * set `cover: true` to fill enter screen.\n   * e.g.\n   * ```\n   * cameraControls.fitToBox( myMesh );\n   * ```\n   * @param box3OrObject Axis aligned bounding box to fit the view.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @param options | `<object>` { cover: boolean, paddingTop: number, paddingLeft: number, paddingBottom: number, paddingRight: number }\n   * @returns Transition end promise\n   * @category Methods\n   */\n  fitToBox(box3OrObject, enableTransition, { cover = false, paddingLeft = 0, paddingRight = 0, paddingBottom = 0, paddingTop = 0 } = {}) {\n    const promises = [];\n    const aabb = box3OrObject.isBox3 ? _box3A.copy(box3OrObject) : _box3A.setFromObject(box3OrObject);\n    if (aabb.isEmpty()) {\n      console.warn(\"camera-controls: fitTo() cannot be used with an empty box. Aborting\");\n      Promise.resolve();\n    }\n    const theta = roundToStep(this._sphericalEnd.theta, PI_HALF);\n    const phi = roundToStep(this._sphericalEnd.phi, PI_HALF);\n    promises.push(this.rotateTo(theta, phi, enableTransition));\n    const normal = _v3A.setFromSpherical(this._sphericalEnd).normalize();\n    const rotation = _quaternionA.setFromUnitVectors(normal, _AXIS_Z);\n    const viewFromPolar = approxEquals(Math.abs(normal.y), 1);\n    if (viewFromPolar) {\n      rotation.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y, theta));\n    }\n    rotation.multiply(this._yAxisUpSpaceInverse);\n    const bb = _box3B.makeEmpty();\n    _v3B.copy(aabb.min).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setX(aabb.max.x).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setY(aabb.max.y).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setZ(aabb.min.z).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setZ(aabb.max.z).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setY(aabb.min.y).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setX(aabb.min.x).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    bb.min.x -= paddingLeft;\n    bb.min.y -= paddingBottom;\n    bb.max.x += paddingRight;\n    bb.max.y += paddingTop;\n    rotation.setFromUnitVectors(_AXIS_Z, normal);\n    if (viewFromPolar) {\n      rotation.premultiply(_quaternionB.invert());\n    }\n    rotation.premultiply(this._yAxisUpSpace);\n    const bbSize = bb.getSize(_v3A);\n    const center = bb.getCenter(_v3B).applyQuaternion(rotation);\n    if (isPerspectiveCamera(this._camera)) {\n      const distance = this.getDistanceToFitBox(bbSize.x, bbSize.y, bbSize.z, cover);\n      promises.push(this.moveTo(center.x, center.y, center.z, enableTransition));\n      promises.push(this.dollyTo(distance, enableTransition));\n      promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    } else if (isOrthographicCamera(this._camera)) {\n      const camera = this._camera;\n      const width = camera.right - camera.left;\n      const height = camera.top - camera.bottom;\n      const zoom = cover ? Math.max(width / bbSize.x, height / bbSize.y) : Math.min(width / bbSize.x, height / bbSize.y);\n      promises.push(this.moveTo(center.x, center.y, center.z, enableTransition));\n      promises.push(this.zoomTo(zoom, enableTransition));\n      promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    }\n    return Promise.all(promises);\n  }\n  /**\n   * Fit the viewport to the sphere or the bounding sphere of the object.\n   * @param sphereOrMesh\n   * @param enableTransition\n   * @category Methods\n   */\n  fitToSphere(sphereOrMesh, enableTransition) {\n    const promises = [];\n    const isObject3D = \"isObject3D\" in sphereOrMesh;\n    const boundingSphere = isObject3D ? _CameraControls.createBoundingSphere(sphereOrMesh, _sphere) : _sphere.copy(sphereOrMesh);\n    promises.push(this.moveTo(boundingSphere.center.x, boundingSphere.center.y, boundingSphere.center.z, enableTransition));\n    if (isPerspectiveCamera(this._camera)) {\n      const distanceToFit = this.getDistanceToFitSphere(boundingSphere.radius);\n      promises.push(this.dollyTo(distanceToFit, enableTransition));\n    } else if (isOrthographicCamera(this._camera)) {\n      const width = this._camera.right - this._camera.left;\n      const height = this._camera.top - this._camera.bottom;\n      const diameter = 2 * boundingSphere.radius;\n      const zoom = Math.min(width / diameter, height / diameter);\n      promises.push(this.zoomTo(zoom, enableTransition));\n    }\n    promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    return Promise.all(promises);\n  }\n  /**\n   * Look at the `target` from the `position`.\n   * @param positionX\n   * @param positionY\n   * @param positionZ\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setLookAt(positionX, positionY, positionZ, targetX, targetY, targetZ, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    const target = _v3B.set(targetX, targetY, targetZ);\n    const position = _v3A.set(positionX, positionY, positionZ);\n    this._targetEnd.copy(target);\n    this._sphericalEnd.setFromVector3(position.sub(target).applyQuaternion(this._yAxisUpSpace));\n    this.normalizeRotations();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n      this._spherical.copy(this._sphericalEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Similar to setLookAt, but it interpolates between two states.\n   * @param positionAX\n   * @param positionAY\n   * @param positionAZ\n   * @param targetAX\n   * @param targetAY\n   * @param targetAZ\n   * @param positionBX\n   * @param positionBY\n   * @param positionBZ\n   * @param targetBX\n   * @param targetBY\n   * @param targetBZ\n   * @param t\n   * @param enableTransition\n   * @category Methods\n   */\n  lerpLookAt(positionAX, positionAY, positionAZ, targetAX, targetAY, targetAZ, positionBX, positionBY, positionBZ, targetBX, targetBY, targetBZ, t, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    const targetA = _v3A.set(targetAX, targetAY, targetAZ);\n    const positionA = _v3B.set(positionAX, positionAY, positionAZ);\n    _sphericalA.setFromVector3(positionA.sub(targetA).applyQuaternion(this._yAxisUpSpace));\n    const targetB = _v3C.set(targetBX, targetBY, targetBZ);\n    const positionB = _v3B.set(positionBX, positionBY, positionBZ);\n    _sphericalB.setFromVector3(positionB.sub(targetB).applyQuaternion(this._yAxisUpSpace));\n    this._targetEnd.copy(targetA.lerp(targetB, t));\n    const deltaTheta = _sphericalB.theta - _sphericalA.theta;\n    const deltaPhi = _sphericalB.phi - _sphericalA.phi;\n    const deltaRadius = _sphericalB.radius - _sphericalA.radius;\n    this._sphericalEnd.set(_sphericalA.radius + deltaRadius * t, _sphericalA.phi + deltaPhi * t, _sphericalA.theta + deltaTheta * t);\n    this.normalizeRotations();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n      this._spherical.copy(this._sphericalEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Set angle and distance by given position.\n   * An alias of `setLookAt()`, without target change. Thus keep gazing at the current target\n   * @param positionX\n   * @param positionY\n   * @param positionZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setPosition(positionX, positionY, positionZ, enableTransition = false) {\n    return this.setLookAt(positionX, positionY, positionZ, this._targetEnd.x, this._targetEnd.y, this._targetEnd.z, enableTransition);\n  }\n  /**\n   * Set the target position where gaze at.\n   * An alias of `setLookAt()`, without position change. Thus keep the same position.\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setTarget(targetX, targetY, targetZ, enableTransition = false) {\n    const pos = this.getPosition(_v3A);\n    const promise = this.setLookAt(pos.x, pos.y, pos.z, targetX, targetY, targetZ, enableTransition);\n    this._sphericalEnd.phi = clamp(this._sphericalEnd.phi, this.minPolarAngle, this.maxPolarAngle);\n    return promise;\n  }\n  /**\n   * Set focal offset using the screen parallel coordinates. z doesn't affect in Orthographic as with Dolly.\n   * @param x\n   * @param y\n   * @param z\n   * @param enableTransition\n   * @category Methods\n   */\n  setFocalOffset(x, y, z, enableTransition = false) {\n    this._isUserControllingOffset = false;\n    this._focalOffsetEnd.set(x, y, z);\n    this._needsUpdate = true;\n    if (!enableTransition)\n      this._focalOffset.copy(this._focalOffsetEnd);\n    const resolveImmediately = !enableTransition || approxEquals(this._focalOffset.x, this._focalOffsetEnd.x, this.restThreshold) && approxEquals(this._focalOffset.y, this._focalOffsetEnd.y, this.restThreshold) && approxEquals(this._focalOffset.z, this._focalOffsetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Set orbit point without moving the camera.\n   * SHOULD NOT RUN DURING ANIMATIONS. `setOrbitPoint()` will immediately fix the positions.\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @category Methods\n   */\n  setOrbitPoint(targetX, targetY, targetZ) {\n    this._camera.updateMatrixWorld();\n    _xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 0);\n    _yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 1);\n    _zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 2);\n    const position = _v3A.set(targetX, targetY, targetZ);\n    const distance = position.distanceTo(this._camera.position);\n    const cameraToPoint = position.sub(this._camera.position);\n    _xColumn.multiplyScalar(cameraToPoint.x);\n    _yColumn.multiplyScalar(cameraToPoint.y);\n    _zColumn.multiplyScalar(cameraToPoint.z);\n    _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);\n    _v3A.z = _v3A.z + distance;\n    this.dollyTo(distance, false);\n    this.setFocalOffset(-_v3A.x, _v3A.y, -_v3A.z, false);\n    this.moveTo(targetX, targetY, targetZ, false);\n  }\n  /**\n   * Set the boundary box that encloses the target of the camera. box3 is in THREE.Box3\n   * @param box3\n   * @category Methods\n   */\n  setBoundary(box3) {\n    if (!box3) {\n      this._boundary.min.set(-Infinity, -Infinity, -Infinity);\n      this._boundary.max.set(Infinity, Infinity, Infinity);\n      this._needsUpdate = true;\n      return;\n    }\n    this._boundary.copy(box3);\n    this._boundary.clampPoint(this._targetEnd, this._targetEnd);\n    this._needsUpdate = true;\n  }\n  /**\n   * Set (or unset) the current viewport.\n   * Set this when you want to use renderer viewport and .dollyToCursor feature at the same time.\n   * @param viewportOrX\n   * @param y\n   * @param width\n   * @param height\n   * @category Methods\n   */\n  setViewport(viewportOrX, y, width, height) {\n    if (viewportOrX === null) {\n      this._viewport = null;\n      return;\n    }\n    this._viewport = this._viewport || new THREE.Vector4();\n    if (typeof viewportOrX === \"number\") {\n      this._viewport.set(viewportOrX, y, width, height);\n    } else {\n      this._viewport.copy(viewportOrX);\n    }\n  }\n  /**\n   * Calculate the distance to fit the box.\n   * @param width box width\n   * @param height box height\n   * @param depth box depth\n   * @returns distance\n   * @category Methods\n   */\n  getDistanceToFitBox(width, height, depth, cover = false) {\n    if (notSupportedInOrthographicCamera(this._camera, \"getDistanceToFitBox\"))\n      return this._spherical.radius;\n    const boundingRectAspect = width / height;\n    const fov = this._camera.getEffectiveFOV() * DEG2RAD;\n    const aspect = this._camera.aspect;\n    const heightToFit = (cover ? boundingRectAspect > aspect : boundingRectAspect < aspect) ? height : width / aspect;\n    return heightToFit * 0.5 / Math.tan(fov * 0.5) + depth * 0.5;\n  }\n  /**\n   * Calculate the distance to fit the sphere.\n   * @param radius sphere radius\n   * @returns distance\n   * @category Methods\n   */\n  getDistanceToFitSphere(radius) {\n    if (notSupportedInOrthographicCamera(this._camera, \"getDistanceToFitSphere\"))\n      return this._spherical.radius;\n    const vFOV = this._camera.getEffectiveFOV() * DEG2RAD;\n    const hFOV = Math.atan(Math.tan(vFOV * 0.5) * this._camera.aspect) * 2;\n    const fov = 1 < this._camera.aspect ? vFOV : hFOV;\n    return radius / Math.sin(fov * 0.5);\n  }\n  /**\n   * Returns the orbit center position, where the camera looking at.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getTarget(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.copy(receiveEndValue ? this._targetEnd : this._target);\n  }\n  /**\n   * Returns the camera position.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getPosition(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.setFromSpherical(receiveEndValue ? this._sphericalEnd : this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).add(receiveEndValue ? this._targetEnd : this._target);\n  }\n  /**\n   * Returns the spherical coordinates of the orbit.\n   * @param out The receiving Spherical instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getSpherical(out, receiveEndValue = true) {\n    const _out = out || new THREE.Spherical();\n    return _out.copy(receiveEndValue ? this._sphericalEnd : this._spherical);\n  }\n  /**\n   * Returns the focal offset, which is how much the camera appears to be translated in screen parallel coordinates.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getFocalOffset(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.copy(receiveEndValue ? this._focalOffsetEnd : this._focalOffset);\n  }\n  /**\n   * Normalize camera azimuth angle rotation between 0 and 360 degrees.\n   * @category Methods\n   */\n  normalizeRotations() {\n    this._sphericalEnd.theta = this._sphericalEnd.theta % PI_2;\n    if (this._sphericalEnd.theta < 0)\n      this._sphericalEnd.theta += PI_2;\n    this._spherical.theta += PI_2 * Math.round((this._sphericalEnd.theta - this._spherical.theta) / PI_2);\n  }\n  /**\n   * stop all transitions.\n   */\n  stop() {\n    this._focalOffset.copy(this._focalOffsetEnd);\n    this._target.copy(this._targetEnd);\n    this._spherical.copy(this._sphericalEnd);\n    this._zoom = this._zoomEnd;\n  }\n  /**\n   * Reset all rotation and position to defaults.\n   * @param enableTransition\n   * @category Methods\n   */\n  reset(enableTransition = false) {\n    if (!approxEquals(this._camera.up.x, this._cameraUp0.x) || !approxEquals(this._camera.up.y, this._cameraUp0.y) || !approxEquals(this._camera.up.z, this._cameraUp0.z)) {\n      this._camera.up.copy(this._cameraUp0);\n      const position = this.getPosition(_v3A);\n      this.updateCameraUp();\n      this.setPosition(position.x, position.y, position.z);\n    }\n    const promises = [\n      this.setLookAt(this._position0.x, this._position0.y, this._position0.z, this._target0.x, this._target0.y, this._target0.z, enableTransition),\n      this.setFocalOffset(this._focalOffset0.x, this._focalOffset0.y, this._focalOffset0.z, enableTransition),\n      this.zoomTo(this._zoom0, enableTransition)\n    ];\n    return Promise.all(promises);\n  }\n  /**\n   * Set current camera position as the default position.\n   * @category Methods\n   */\n  saveState() {\n    this._cameraUp0.copy(this._camera.up);\n    this.getTarget(this._target0);\n    this.getPosition(this._position0);\n    this._zoom0 = this._zoom;\n    this._focalOffset0.copy(this._focalOffset);\n  }\n  /**\n   * Sync camera-up direction.\n   * When camera-up vector is changed, `.updateCameraUp()` must be called.\n   * @category Methods\n   */\n  updateCameraUp() {\n    this._yAxisUpSpace.setFromUnitVectors(this._camera.up, _AXIS_Y);\n    this._yAxisUpSpaceInverse.copy(this._yAxisUpSpace).invert();\n  }\n  /**\n   * Apply current camera-up direction to the camera.\n   * The orbit system will be re-initialized with the current position.\n   * @category Methods\n   */\n  applyCameraUp() {\n    const cameraDirection = _v3A.subVectors(this._target, this._camera.position).normalize();\n    const side = _v3B.crossVectors(cameraDirection, this._camera.up);\n    this._camera.up.crossVectors(side, cameraDirection).normalize();\n    this._camera.updateMatrixWorld();\n    const position = this.getPosition(_v3A);\n    this.updateCameraUp();\n    this.setPosition(position.x, position.y, position.z);\n  }\n  /**\n   * Update camera position and directions.\n   * This should be called in your tick loop every time, and returns true if re-rendering is needed.\n   * @param delta\n   * @returns updated\n   * @category Methods\n   */\n  update(delta) {\n    const deltaTheta = this._sphericalEnd.theta - this._spherical.theta;\n    const deltaPhi = this._sphericalEnd.phi - this._spherical.phi;\n    const deltaRadius = this._sphericalEnd.radius - this._spherical.radius;\n    const deltaTarget = _deltaTarget.subVectors(this._targetEnd, this._target);\n    const deltaOffset = _deltaOffset.subVectors(this._focalOffsetEnd, this._focalOffset);\n    const deltaZoom = this._zoomEnd - this._zoom;\n    if (approxZero(deltaTheta)) {\n      this._thetaVelocity.value = 0;\n      this._spherical.theta = this._sphericalEnd.theta;\n    } else {\n      const smoothTime = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.theta = smoothDamp(this._spherical.theta, this._sphericalEnd.theta, this._thetaVelocity, smoothTime, Infinity, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaPhi)) {\n      this._phiVelocity.value = 0;\n      this._spherical.phi = this._sphericalEnd.phi;\n    } else {\n      const smoothTime = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.phi = smoothDamp(this._spherical.phi, this._sphericalEnd.phi, this._phiVelocity, smoothTime, Infinity, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaRadius)) {\n      this._radiusVelocity.value = 0;\n      this._spherical.radius = this._sphericalEnd.radius;\n    } else {\n      const smoothTime = this._isUserControllingDolly ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.radius = smoothDamp(this._spherical.radius, this._sphericalEnd.radius, this._radiusVelocity, smoothTime, this.maxSpeed, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaTarget.x) && approxZero(deltaTarget.y) && approxZero(deltaTarget.z)) {\n      this._targetVelocity.set(0, 0, 0);\n      this._target.copy(this._targetEnd);\n    } else {\n      const smoothTime = this._isUserControllingTruck ? this.draggingSmoothTime : this.smoothTime;\n      smoothDampVec3(this._target, this._targetEnd, this._targetVelocity, smoothTime, this.maxSpeed, delta, this._target);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaOffset.x) && approxZero(deltaOffset.y) && approxZero(deltaOffset.z)) {\n      this._focalOffsetVelocity.set(0, 0, 0);\n      this._focalOffset.copy(this._focalOffsetEnd);\n    } else {\n      const smoothTime = this._isUserControllingOffset ? this.draggingSmoothTime : this.smoothTime;\n      smoothDampVec3(this._focalOffset, this._focalOffsetEnd, this._focalOffsetVelocity, smoothTime, this.maxSpeed, delta, this._focalOffset);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaZoom)) {\n      this._zoomVelocity.value = 0;\n      this._zoom = this._zoomEnd;\n    } else {\n      const smoothTime = this._isUserControllingZoom ? this.draggingSmoothTime : this.smoothTime;\n      this._zoom = smoothDamp(this._zoom, this._zoomEnd, this._zoomVelocity, smoothTime, Infinity, delta);\n    }\n    if (this.dollyToCursor) {\n      if (isPerspectiveCamera(this._camera) && this._changedDolly !== 0) {\n        const dollyControlAmount = this._spherical.radius - this._lastDistance;\n        const camera = this._camera;\n        const cameraDirection = this._getCameraDirection(_cameraDirection);\n        const planeX = _v3A.copy(cameraDirection).cross(camera.up).normalize();\n        if (planeX.lengthSq() === 0)\n          planeX.x = 1;\n        const planeY = _v3B.crossVectors(planeX, cameraDirection);\n        const worldToScreen = this._sphericalEnd.radius * Math.tan(camera.getEffectiveFOV() * DEG2RAD * 0.5);\n        const prevRadius = this._sphericalEnd.radius - dollyControlAmount;\n        const lerpRatio = (prevRadius - this._sphericalEnd.radius) / this._sphericalEnd.radius;\n        const cursor = _v3C.copy(this._targetEnd).add(planeX.multiplyScalar(this._dollyControlCoord.x * worldToScreen * camera.aspect)).add(planeY.multiplyScalar(this._dollyControlCoord.y * worldToScreen));\n        const newTargetEnd = _v3A.copy(this._targetEnd).lerp(cursor, lerpRatio);\n        const isMin = this._lastDollyDirection === DOLLY_DIRECTION.IN && this._spherical.radius <= this.minDistance;\n        const isMax = this._lastDollyDirection === DOLLY_DIRECTION.OUT && this.maxDistance <= this._spherical.radius;\n        if (this.infinityDolly && (isMin || isMax)) {\n          this._sphericalEnd.radius -= dollyControlAmount;\n          this._spherical.radius -= dollyControlAmount;\n          const dollyAmount = _v3B.copy(cameraDirection).multiplyScalar(-dollyControlAmount);\n          newTargetEnd.add(dollyAmount);\n        }\n        this._boundary.clampPoint(newTargetEnd, newTargetEnd);\n        const targetEndDiff = _v3B.subVectors(newTargetEnd, this._targetEnd);\n        this._targetEnd.copy(newTargetEnd);\n        this._target.add(targetEndDiff);\n        this._changedDolly -= dollyControlAmount;\n        if (approxZero(this._changedDolly))\n          this._changedDolly = 0;\n      } else if (isOrthographicCamera(this._camera) && this._changedZoom !== 0) {\n        const dollyControlAmount = this._zoom - this._lastZoom;\n        const camera = this._camera;\n        const worldCursorPosition = _v3A.set(this._dollyControlCoord.x, this._dollyControlCoord.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera);\n        const quaternion = _v3B.set(0, 0, -1).applyQuaternion(camera.quaternion);\n        const cursor = _v3C.copy(worldCursorPosition).add(quaternion.multiplyScalar(-worldCursorPosition.dot(camera.up)));\n        const prevZoom = this._zoom - dollyControlAmount;\n        const lerpRatio = -(prevZoom - this._zoom) / this._zoom;\n        const cameraDirection = this._getCameraDirection(_cameraDirection);\n        const prevPlaneConstant = this._targetEnd.dot(cameraDirection);\n        const newTargetEnd = _v3A.copy(this._targetEnd).lerp(cursor, lerpRatio);\n        const newPlaneConstant = newTargetEnd.dot(cameraDirection);\n        const pullBack = cameraDirection.multiplyScalar(newPlaneConstant - prevPlaneConstant);\n        newTargetEnd.sub(pullBack);\n        this._boundary.clampPoint(newTargetEnd, newTargetEnd);\n        const targetEndDiff = _v3B.subVectors(newTargetEnd, this._targetEnd);\n        this._targetEnd.copy(newTargetEnd);\n        this._target.add(targetEndDiff);\n        this._changedZoom -= dollyControlAmount;\n        if (approxZero(this._changedZoom))\n          this._changedZoom = 0;\n      }\n    }\n    if (this._camera.zoom !== this._zoom) {\n      this._camera.zoom = this._zoom;\n      this._camera.updateProjectionMatrix();\n      this._updateNearPlaneCorners();\n      this._needsUpdate = true;\n    }\n    this._dragNeedsUpdate = true;\n    const maxDistance = this._collisionTest();\n    this._spherical.radius = Math.min(this._spherical.radius, maxDistance);\n    this._spherical.makeSafe();\n    this._camera.position.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).add(this._target);\n    this._camera.lookAt(this._target);\n    const affectOffset = !approxZero(this._focalOffset.x) || !approxZero(this._focalOffset.y) || !approxZero(this._focalOffset.z);\n    if (affectOffset) {\n      this._camera.updateMatrixWorld();\n      _xColumn.setFromMatrixColumn(this._camera.matrix, 0);\n      _yColumn.setFromMatrixColumn(this._camera.matrix, 1);\n      _zColumn.setFromMatrixColumn(this._camera.matrix, 2);\n      _xColumn.multiplyScalar(this._focalOffset.x);\n      _yColumn.multiplyScalar(-this._focalOffset.y);\n      _zColumn.multiplyScalar(this._focalOffset.z);\n      _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);\n      this._camera.position.add(_v3A);\n    }\n    if (this._boundaryEnclosesCamera) {\n      this._encloseToBoundary(this._camera.position.copy(this._target), _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse), 1);\n    }\n    const updated = this._needsUpdate;\n    if (updated && !this._updatedLastTime) {\n      this._hasRested = false;\n      this.dispatchEvent({ type: \"wake\" });\n      this.dispatchEvent({ type: \"update\" });\n    } else if (updated) {\n      this.dispatchEvent({ type: \"update\" });\n      if (approxZero(deltaTheta, this.restThreshold) && approxZero(deltaPhi, this.restThreshold) && approxZero(deltaRadius, this.restThreshold) && approxZero(deltaTarget.x, this.restThreshold) && approxZero(deltaTarget.y, this.restThreshold) && approxZero(deltaTarget.z, this.restThreshold) && approxZero(deltaOffset.x, this.restThreshold) && approxZero(deltaOffset.y, this.restThreshold) && approxZero(deltaOffset.z, this.restThreshold) && approxZero(deltaZoom, this.restThreshold) && !this._hasRested) {\n        this._hasRested = true;\n        this.dispatchEvent({ type: \"rest\" });\n      }\n    } else if (!updated && this._updatedLastTime) {\n      this.dispatchEvent({ type: \"sleep\" });\n    }\n    this._lastDistance = this._spherical.radius;\n    this._lastZoom = this._zoom;\n    this._updatedLastTime = updated;\n    this._needsUpdate = false;\n    return updated;\n  }\n  /**\n   * Get all state in JSON string\n   * @category Methods\n   */\n  toJSON() {\n    return JSON.stringify({\n      enabled: this._enabled,\n      minDistance: this.minDistance,\n      maxDistance: infinityToMaxNumber(this.maxDistance),\n      minZoom: this.minZoom,\n      maxZoom: infinityToMaxNumber(this.maxZoom),\n      minPolarAngle: this.minPolarAngle,\n      maxPolarAngle: infinityToMaxNumber(this.maxPolarAngle),\n      minAzimuthAngle: infinityToMaxNumber(this.minAzimuthAngle),\n      maxAzimuthAngle: infinityToMaxNumber(this.maxAzimuthAngle),\n      smoothTime: this.smoothTime,\n      draggingSmoothTime: this.draggingSmoothTime,\n      dollySpeed: this.dollySpeed,\n      truckSpeed: this.truckSpeed,\n      dollyToCursor: this.dollyToCursor,\n      verticalDragToForward: this.verticalDragToForward,\n      target: this._targetEnd.toArray(),\n      position: _v3A.setFromSpherical(this._sphericalEnd).add(this._targetEnd).toArray(),\n      zoom: this._zoomEnd,\n      focalOffset: this._focalOffsetEnd.toArray(),\n      target0: this._target0.toArray(),\n      position0: this._position0.toArray(),\n      zoom0: this._zoom0,\n      focalOffset0: this._focalOffset0.toArray()\n    });\n  }\n  /**\n   * Reproduce the control state with JSON. enableTransition is where anim or not in a boolean.\n   * @param json\n   * @param enableTransition\n   * @category Methods\n   */\n  fromJSON(json, enableTransition = false) {\n    const obj = JSON.parse(json);\n    this.enabled = obj.enabled;\n    this.minDistance = obj.minDistance;\n    this.maxDistance = maxNumberToInfinity(obj.maxDistance);\n    this.minZoom = obj.minZoom;\n    this.maxZoom = maxNumberToInfinity(obj.maxZoom);\n    this.minPolarAngle = obj.minPolarAngle;\n    this.maxPolarAngle = maxNumberToInfinity(obj.maxPolarAngle);\n    this.minAzimuthAngle = maxNumberToInfinity(obj.minAzimuthAngle);\n    this.maxAzimuthAngle = maxNumberToInfinity(obj.maxAzimuthAngle);\n    this.smoothTime = obj.smoothTime;\n    this.draggingSmoothTime = obj.draggingSmoothTime;\n    this.dollySpeed = obj.dollySpeed;\n    this.truckSpeed = obj.truckSpeed;\n    this.dollyToCursor = obj.dollyToCursor;\n    this.verticalDragToForward = obj.verticalDragToForward;\n    this._target0.fromArray(obj.target0);\n    this._position0.fromArray(obj.position0);\n    this._zoom0 = obj.zoom0;\n    this._focalOffset0.fromArray(obj.focalOffset0);\n    this.moveTo(obj.target[0], obj.target[1], obj.target[2], enableTransition);\n    _sphericalA.setFromVector3(_v3A.fromArray(obj.position).sub(this._targetEnd).applyQuaternion(this._yAxisUpSpace));\n    this.rotateTo(_sphericalA.theta, _sphericalA.phi, enableTransition);\n    this.dollyTo(_sphericalA.radius, enableTransition);\n    this.zoomTo(obj.zoom, enableTransition);\n    this.setFocalOffset(obj.focalOffset[0], obj.focalOffset[1], obj.focalOffset[2], enableTransition);\n    this._needsUpdate = true;\n  }\n  /**\n   * Attach all internal event handlers to enable drag control.\n   * @category Methods\n   */\n  connect(domElement) {\n    if (this._domElement) {\n      console.warn(\"camera-controls is already connected.\");\n      return;\n    }\n    domElement.setAttribute(\"data-camera-controls-version\", VERSION);\n    this._addAllEventListeners(domElement);\n    this._getClientRect(this._elementRect);\n  }\n  /**\n   * Detach all internal event handlers to disable drag control.\n   */\n  disconnect() {\n    this.cancel();\n    this._removeAllEventListeners();\n    if (this._domElement) {\n      this._domElement.removeAttribute(\"data-camera-controls-version\");\n      this._domElement = void 0;\n    }\n  }\n  /**\n   * Dispose the cameraControls instance itself, remove all eventListeners.\n   * @category Methods\n   */\n  dispose() {\n    this.removeAllEventListeners();\n    this.disconnect();\n  }\n  // it's okay to expose public though\n  _getTargetDirection(out) {\n    return out.setFromSpherical(this._spherical).divideScalar(this._spherical.radius).applyQuaternion(this._yAxisUpSpaceInverse);\n  }\n  // it's okay to expose public though\n  _getCameraDirection(out) {\n    return this._getTargetDirection(out).negate();\n  }\n  _findPointerById(pointerId) {\n    return this._activePointers.find((activePointer) => activePointer.pointerId === pointerId);\n  }\n  _findPointerByMouseButton(mouseButton) {\n    return this._activePointers.find((activePointer) => activePointer.mouseButton === mouseButton);\n  }\n  _disposePointer(pointer) {\n    this._activePointers.splice(this._activePointers.indexOf(pointer), 1);\n  }\n  _encloseToBoundary(position, offset, friction) {\n    const offsetLength2 = offset.lengthSq();\n    if (offsetLength2 === 0) {\n      return position;\n    }\n    const newTarget = _v3B.copy(offset).add(position);\n    const clampedTarget = this._boundary.clampPoint(newTarget, _v3C);\n    const deltaClampedTarget = clampedTarget.sub(newTarget);\n    const deltaClampedTargetLength2 = deltaClampedTarget.lengthSq();\n    if (deltaClampedTargetLength2 === 0) {\n      return position.add(offset);\n    } else if (deltaClampedTargetLength2 === offsetLength2) {\n      return position;\n    } else if (friction === 0) {\n      return position.add(offset).add(deltaClampedTarget);\n    } else {\n      const offsetFactor = 1 + friction * deltaClampedTargetLength2 / offset.dot(deltaClampedTarget);\n      return position.add(_v3B.copy(offset).multiplyScalar(offsetFactor)).add(deltaClampedTarget.multiplyScalar(1 - friction));\n    }\n  }\n  _updateNearPlaneCorners() {\n    if (isPerspectiveCamera(this._camera)) {\n      const camera = this._camera;\n      const near = camera.near;\n      const fov = camera.getEffectiveFOV() * DEG2RAD;\n      const heightHalf = Math.tan(fov * 0.5) * near;\n      const widthHalf = heightHalf * camera.aspect;\n      this._nearPlaneCorners[0].set(-widthHalf, -heightHalf, 0);\n      this._nearPlaneCorners[1].set(widthHalf, -heightHalf, 0);\n      this._nearPlaneCorners[2].set(widthHalf, heightHalf, 0);\n      this._nearPlaneCorners[3].set(-widthHalf, heightHalf, 0);\n    } else if (isOrthographicCamera(this._camera)) {\n      const camera = this._camera;\n      const zoomInv = 1 / camera.zoom;\n      const left = camera.left * zoomInv;\n      const right = camera.right * zoomInv;\n      const top = camera.top * zoomInv;\n      const bottom = camera.bottom * zoomInv;\n      this._nearPlaneCorners[0].set(left, top, 0);\n      this._nearPlaneCorners[1].set(right, top, 0);\n      this._nearPlaneCorners[2].set(right, bottom, 0);\n      this._nearPlaneCorners[3].set(left, bottom, 0);\n    }\n  }\n  // lateUpdate\n  _collisionTest() {\n    let distance = Infinity;\n    const hasCollider = this.colliderMeshes.length >= 1;\n    if (!hasCollider)\n      return distance;\n    if (notSupportedInOrthographicCamera(this._camera, \"_collisionTest\"))\n      return distance;\n    const rayDirection = this._getTargetDirection(_cameraDirection);\n    _rotationMatrix.lookAt(_ORIGIN, rayDirection, this._camera.up);\n    for (let i = 0; i < 4; i++) {\n      const nearPlaneCorner = _v3B.copy(this._nearPlaneCorners[i]);\n      nearPlaneCorner.applyMatrix4(_rotationMatrix);\n      const origin = _v3C.addVectors(this._target, nearPlaneCorner);\n      _raycaster.set(origin, rayDirection);\n      _raycaster.far = this._spherical.radius + 1;\n      const intersects = _raycaster.intersectObjects(this.colliderMeshes);\n      if (intersects.length !== 0 && intersects[0].distance < distance) {\n        distance = intersects[0].distance;\n      }\n    }\n    return distance;\n  }\n  /**\n   * Get its client rect and package into given `DOMRect` .\n   */\n  _getClientRect(target) {\n    if (!this._domElement)\n      return;\n    const rect = this._domElement.getBoundingClientRect();\n    target.x = rect.left;\n    target.y = rect.top;\n    if (this._viewport) {\n      target.x += this._viewport.x;\n      target.y += rect.height - this._viewport.w - this._viewport.y;\n      target.width = this._viewport.z;\n      target.height = this._viewport.w;\n    } else {\n      target.width = rect.width;\n      target.height = rect.height;\n    }\n    return target;\n  }\n  _createOnRestPromise(resolveImmediately) {\n    if (resolveImmediately)\n      return Promise.resolve();\n    this._hasRested = false;\n    this.dispatchEvent({ type: \"transitionstart\" });\n    return new Promise((resolve) => {\n      const onResolve = () => {\n        this.removeEventListener(\"rest\", onResolve);\n        resolve();\n      };\n      this.addEventListener(\"rest\", onResolve);\n    });\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  _addAllEventListeners(_domElement) {\n  }\n  _removeAllEventListeners() {\n  }\n  /**\n   * backward compatible\n   * @deprecated use smoothTime (in seconds) instead\n   * @category Properties\n   */\n  get dampingFactor() {\n    console.warn(\".dampingFactor has been deprecated. use smoothTime (in seconds) instead.\");\n    return 0;\n  }\n  /**\n   * backward compatible\n   * @deprecated use smoothTime (in seconds) instead\n   * @category Properties\n   */\n  set dampingFactor(_) {\n    console.warn(\".dampingFactor has been deprecated. use smoothTime (in seconds) instead.\");\n  }\n  /**\n   * backward compatible\n   * @deprecated use draggingSmoothTime (in seconds) instead\n   * @category Properties\n   */\n  get draggingDampingFactor() {\n    console.warn(\".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.\");\n    return 0;\n  }\n  /**\n   * backward compatible\n   * @deprecated use draggingSmoothTime (in seconds) instead\n   * @category Properties\n   */\n  set draggingDampingFactor(_) {\n    console.warn(\".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.\");\n  }\n  static createBoundingSphere(object3d, out = new THREE.Sphere()) {\n    const boundingSphere = out;\n    const center = boundingSphere.center;\n    _box3A.makeEmpty();\n    object3d.traverseVisible((object) => {\n      if (!object.isMesh)\n        return;\n      _box3A.expandByObject(object);\n    });\n    _box3A.getCenter(center);\n    let maxRadiusSq = 0;\n    object3d.traverseVisible((object) => {\n      if (!object.isMesh)\n        return;\n      const mesh = object;\n      const geometry = mesh.geometry.clone();\n      geometry.applyMatrix4(mesh.matrixWorld);\n      const bufferGeometry = geometry;\n      const position = bufferGeometry.attributes.position;\n      for (let i = 0, l = position.count; i < l; i++) {\n        _v3A.fromBufferAttribute(position, i);\n        maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_v3A));\n      }\n    });\n    boundingSphere.radius = Math.sqrt(maxRadiusSq);\n    return boundingSphere;\n  }\n};\n\n// src/ShaderGradient/Controls/CameraControl.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction CameraControl(_a2) {\n  var _b = _a2, {\n    smoothTime = 0.05\n  } = _b, props = __objRest(_b, [\n    \"smoothTime\"\n  ]);\n  CameraControls.install({ THREE: three_module_exports });\n  extend({ CameraControls });\n  const camera = useThree((state) => state.camera);\n  const gl = useThree((state) => state.gl);\n  const ref = useCameraAnimation(props);\n  return (\n    // @ts-ignore\n    /* @__PURE__ */ jsx(\n      \"cameraControls\",\n      {\n        ref,\n        args: [camera, gl.domElement],\n        enableDamping: true,\n        smoothTime,\n        zoomSpeed: 10,\n        dollySpeed: 10,\n        restThreshold: 0\n      }\n    )\n  );\n}\n\nexport {\n  CameraControl\n};\n/*! Bundled license information:\n\ncamera-controls/dist/camera-controls.module.js:\n  (*!\n   * camera-controls\n   * https://github.com/yomotsu/camera-controls\n   * (c) 2017 @yomotsu\n   * Released under the MIT License.\n   *)\n*/\n","import {\n  CameraControl\n} from \"./chunk-DA2VURNJ.mjs\";\nimport {\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/Controls/Controls.tsx\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nfunction Controls(props) {\n  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(CameraControl, __spreadValues({}, props)) });\n}\n\nexport {\n  Controls\n};\n","import {\n  useLoader\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  DataTextureLoader,\n  DataUtils,\n  FloatType,\n  HalfFloatType,\n  LinearFilter\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// ../../node_modules/.pnpm/three-stdlib@2.35.13_three@0.169.0/node_modules/three-stdlib/loaders/RGBELoader.js\nvar RGBELoader = class extends DataTextureLoader {\n  constructor(manager) {\n    super(manager);\n    this.type = HalfFloatType;\n  }\n  // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n  parse(buffer) {\n    const rgbe_read_error = 1, rgbe_write_error = 2, rgbe_format_error = 3, rgbe_memory_error = 4, rgbe_error = function(rgbe_error_code, msg) {\n      switch (rgbe_error_code) {\n        case rgbe_read_error:\n          throw new Error(\"THREE.RGBELoader: Read Error: \" + (msg || \"\"));\n        case rgbe_write_error:\n          throw new Error(\"THREE.RGBELoader: Write Error: \" + (msg || \"\"));\n        case rgbe_format_error:\n          throw new Error(\"THREE.RGBELoader: Bad File Format: \" + (msg || \"\"));\n        default:\n        case rgbe_memory_error:\n          throw new Error(\"THREE.RGBELoader: Memory Error: \" + (msg || \"\"));\n      }\n    }, RGBE_VALID_PROGRAMTYPE = 1, RGBE_VALID_FORMAT = 2, RGBE_VALID_DIMENSIONS = 4, NEWLINE = \"\\n\", fgets = function(buffer2, lineLimit, consume) {\n      const chunkSize = 128;\n      lineLimit = !lineLimit ? 1024 : lineLimit;\n      let p = buffer2.pos, i = -1, len = 0, s = \"\", chunk = String.fromCharCode.apply(null, new Uint16Array(buffer2.subarray(p, p + chunkSize)));\n      while (0 > (i = chunk.indexOf(NEWLINE)) && len < lineLimit && p < buffer2.byteLength) {\n        s += chunk;\n        len += chunk.length;\n        p += chunkSize;\n        chunk += String.fromCharCode.apply(null, new Uint16Array(buffer2.subarray(p, p + chunkSize)));\n      }\n      if (-1 < i) {\n        if (false !== consume)\n          buffer2.pos += len + i + 1;\n        return s + chunk.slice(0, i);\n      }\n      return false;\n    }, RGBE_ReadHeader = function(buffer2) {\n      const magic_token_re = /^#\\?(\\S+)/, gamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, exposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, format_re = /^\\s*FORMAT=(\\S+)\\s*$/, dimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/, header = {\n        valid: 0,\n        string: \"\",\n        comments: \"\",\n        programtype: \"RGBE\",\n        format: \"\",\n        gamma: 1,\n        exposure: 1,\n        width: 0,\n        height: 0\n      };\n      let line, match;\n      if (buffer2.pos >= buffer2.byteLength || !(line = fgets(buffer2))) {\n        rgbe_error(rgbe_read_error, \"no header found\");\n      }\n      if (!(match = line.match(magic_token_re))) {\n        rgbe_error(rgbe_format_error, \"bad initial token\");\n      }\n      header.valid |= RGBE_VALID_PROGRAMTYPE;\n      header.programtype = match[1];\n      header.string += line + \"\\n\";\n      while (true) {\n        line = fgets(buffer2);\n        if (false === line)\n          break;\n        header.string += line + \"\\n\";\n        if (\"#\" === line.charAt(0)) {\n          header.comments += line + \"\\n\";\n          continue;\n        }\n        if (match = line.match(gamma_re)) {\n          header.gamma = parseFloat(match[1]);\n        }\n        if (match = line.match(exposure_re)) {\n          header.exposure = parseFloat(match[1]);\n        }\n        if (match = line.match(format_re)) {\n          header.valid |= RGBE_VALID_FORMAT;\n          header.format = match[1];\n        }\n        if (match = line.match(dimensions_re)) {\n          header.valid |= RGBE_VALID_DIMENSIONS;\n          header.height = parseInt(match[1], 10);\n          header.width = parseInt(match[2], 10);\n        }\n        if (header.valid & RGBE_VALID_FORMAT && header.valid & RGBE_VALID_DIMENSIONS)\n          break;\n      }\n      if (!(header.valid & RGBE_VALID_FORMAT)) {\n        rgbe_error(rgbe_format_error, \"missing format specifier\");\n      }\n      if (!(header.valid & RGBE_VALID_DIMENSIONS)) {\n        rgbe_error(rgbe_format_error, \"missing image size specifier\");\n      }\n      return header;\n    }, RGBE_ReadPixels_RLE = function(buffer2, w2, h2) {\n      const scanline_width = w2;\n      if (\n        // run length encoding is not allowed so read flat\n        scanline_width < 8 || scanline_width > 32767 || // this file is not run length encoded\n        2 !== buffer2[0] || 2 !== buffer2[1] || buffer2[2] & 128\n      ) {\n        return new Uint8Array(buffer2);\n      }\n      if (scanline_width !== (buffer2[2] << 8 | buffer2[3])) {\n        rgbe_error(rgbe_format_error, \"wrong scanline width\");\n      }\n      const data_rgba = new Uint8Array(4 * w2 * h2);\n      if (!data_rgba.length) {\n        rgbe_error(rgbe_memory_error, \"unable to allocate buffer space\");\n      }\n      let offset = 0, pos = 0;\n      const ptr_end = 4 * scanline_width;\n      const rgbeStart = new Uint8Array(4);\n      const scanline_buffer = new Uint8Array(ptr_end);\n      let num_scanlines = h2;\n      while (num_scanlines > 0 && pos < buffer2.byteLength) {\n        if (pos + 4 > buffer2.byteLength) {\n          rgbe_error(rgbe_read_error);\n        }\n        rgbeStart[0] = buffer2[pos++];\n        rgbeStart[1] = buffer2[pos++];\n        rgbeStart[2] = buffer2[pos++];\n        rgbeStart[3] = buffer2[pos++];\n        if (2 != rgbeStart[0] || 2 != rgbeStart[1] || (rgbeStart[2] << 8 | rgbeStart[3]) != scanline_width) {\n          rgbe_error(rgbe_format_error, \"bad rgbe scanline format\");\n        }\n        let ptr = 0, count;\n        while (ptr < ptr_end && pos < buffer2.byteLength) {\n          count = buffer2[pos++];\n          const isEncodedRun = count > 128;\n          if (isEncodedRun)\n            count -= 128;\n          if (0 === count || ptr + count > ptr_end) {\n            rgbe_error(rgbe_format_error, \"bad scanline data\");\n          }\n          if (isEncodedRun) {\n            const byteValue = buffer2[pos++];\n            for (let i = 0; i < count; i++) {\n              scanline_buffer[ptr++] = byteValue;\n            }\n          } else {\n            scanline_buffer.set(buffer2.subarray(pos, pos + count), ptr);\n            ptr += count;\n            pos += count;\n          }\n        }\n        const l = scanline_width;\n        for (let i = 0; i < l; i++) {\n          let off = 0;\n          data_rgba[offset] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 1] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 2] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 3] = scanline_buffer[i + off];\n          offset += 4;\n        }\n        num_scanlines--;\n      }\n      return data_rgba;\n    };\n    const RGBEByteToRGBFloat = function(sourceArray, sourceOffset, destArray, destOffset) {\n      const e = sourceArray[sourceOffset + 3];\n      const scale = Math.pow(2, e - 128) / 255;\n      destArray[destOffset + 0] = sourceArray[sourceOffset + 0] * scale;\n      destArray[destOffset + 1] = sourceArray[sourceOffset + 1] * scale;\n      destArray[destOffset + 2] = sourceArray[sourceOffset + 2] * scale;\n      destArray[destOffset + 3] = 1;\n    };\n    const RGBEByteToRGBHalf = function(sourceArray, sourceOffset, destArray, destOffset) {\n      const e = sourceArray[sourceOffset + 3];\n      const scale = Math.pow(2, e - 128) / 255;\n      destArray[destOffset + 0] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 0] * scale, 65504));\n      destArray[destOffset + 1] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 1] * scale, 65504));\n      destArray[destOffset + 2] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 2] * scale, 65504));\n      destArray[destOffset + 3] = DataUtils.toHalfFloat(1);\n    };\n    const byteArray = new Uint8Array(buffer);\n    byteArray.pos = 0;\n    const rgbe_header_info = RGBE_ReadHeader(byteArray);\n    const w = rgbe_header_info.width, h = rgbe_header_info.height, image_rgba_data = RGBE_ReadPixels_RLE(byteArray.subarray(byteArray.pos), w, h);\n    let data, type;\n    let numElements;\n    switch (this.type) {\n      case FloatType:\n        numElements = image_rgba_data.length / 4;\n        const floatArray = new Float32Array(numElements * 4);\n        for (let j = 0; j < numElements; j++) {\n          RGBEByteToRGBFloat(image_rgba_data, j * 4, floatArray, j * 4);\n        }\n        data = floatArray;\n        type = FloatType;\n        break;\n      case HalfFloatType:\n        numElements = image_rgba_data.length / 4;\n        const halfArray = new Uint16Array(numElements * 4);\n        for (let j = 0; j < numElements; j++) {\n          RGBEByteToRGBHalf(image_rgba_data, j * 4, halfArray, j * 4);\n        }\n        data = halfArray;\n        type = HalfFloatType;\n        break;\n      default:\n        throw new Error(\"THREE.RGBELoader: Unsupported type: \" + this.type);\n    }\n    return {\n      width: w,\n      height: h,\n      data,\n      header: rgbe_header_info.string,\n      gamma: rgbe_header_info.gamma,\n      exposure: rgbe_header_info.exposure,\n      type\n    };\n  }\n  setDataType(value) {\n    this.type = value;\n    return this;\n  }\n  load(url, onLoad, onProgress, onError) {\n    function onLoadCallback(texture, texData) {\n      switch (texture.type) {\n        case FloatType:\n        case HalfFloatType:\n          if (\"colorSpace\" in texture)\n            texture.colorSpace = \"srgb-linear\";\n          else\n            texture.encoding = 3e3;\n          texture.minFilter = LinearFilter;\n          texture.magFilter = LinearFilter;\n          texture.generateMipmaps = false;\n          texture.flipY = true;\n          break;\n      }\n      if (onLoad)\n        onLoad(texture, texData);\n    }\n    return super.load(url, onLoadCallback, onProgress, onError);\n  }\n};\n\n// src/ShaderGradient/Lights/Environment/useRGBELoader.ts\nfunction useRGBELoader(file, { path }) {\n  const cubeTexture = useLoader(\n    // @ts-ignore\n    RGBELoader,\n    file,\n    (loader) => loader.setPath(path)\n  );\n  return cubeTexture;\n}\n\nexport {\n  useRGBELoader\n};\n","import {\n  useRGBELoader\n} from \"./chunk-UIVFRJXT.mjs\";\nimport {\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  EquirectangularReflectionMapping\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  envBasePath\n} from \"./chunk-SX7QUDKQ.mjs\";\n\n// src/ShaderGradient/Lights/Environment/EnvironmentMap.tsx\nimport React from \"react\";\nvar isRef = (obj) => obj.current && obj.current.isScene;\nvar resolveScene = (scene) => isRef(scene) ? scene.current : scene;\nfunction EnvironmentMap({ background = false, envPreset }) {\n  const city = useRGBELoader(\"city.hdr\", { path: envBasePath });\n  const dawn = useRGBELoader(\"dawn.hdr\", { path: envBasePath });\n  const lobby = useRGBELoader(\"lobby.hdr\", { path: envBasePath });\n  const textures = { city, dawn, lobby };\n  const map = textures[envPreset];\n  const defaultScene = useThree((state) => state.scene);\n  React.useLayoutEffect(() => {\n    if (map) {\n      const target = resolveScene(defaultScene);\n      const oldbg = target.background;\n      const oldenv = target.environment;\n      if (background !== \"only\") target.environment = map;\n      if (background) target.background = map;\n      return () => {\n        if (background !== \"only\") target.environment = oldenv;\n        if (background) target.background = \"black\";\n      };\n    }\n  }, [defaultScene, map, background]);\n  const texture = map;\n  texture.mapping = EquirectangularReflectionMapping;\n  return null;\n}\n\nexport {\n  EnvironmentMap\n};\n","import {\n  EnvironmentMap\n} from \"./chunk-2S5ZDPTV.mjs\";\n\n// src/ShaderGradient/Lights/Lights.tsx\nimport { Suspense } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nfunction Lights({\n  lightType,\n  brightness,\n  envPreset\n}) {\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    lightType === \"3d\" && /* @__PURE__ */ jsx(\"ambientLight\", { intensity: (brightness || 1) * Math.PI }),\n    lightType === \"env\" && /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Loader, {}), children: /* @__PURE__ */ jsx(\n      EnvironmentMap,\n      {\n        envPreset,\n        background: false,\n        loadingCallback: () => void 0\n      }\n    ) })\n  ] });\n}\nfunction Loader() {\n  return /* @__PURE__ */ jsx(\"ambientLight\", { intensity: 0.4 });\n}\n\nexport {\n  Lights\n};\n","// src/shaders/a/vertex.glsl\nvar vertex_default = \"// #pragma glslify: cnoise3 = require(glsl-noise/classic/3d) \\n\\n// noise source from https://github.com/hughsk/glsl-noise/blob/master/periodic/3d.glsl\\n\\nvec3 mod289(vec3 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 mod289(vec4 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 permute(vec4 x)\\n{\\n  return mod289(((x*34.0)+1.0)*x);\\n}\\n\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n  return 1.79284291400159 - 0.85373472095314 * r;\\n}\\n\\nvec3 fade(vec3 t) {\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\n}\\n\\nfloat cnoise(vec3 P)\\n{\\n  vec3 Pi0 = floor(P); // Integer part for indexing\\n  vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1\\n  Pi0 = mod289(Pi0);\\n  Pi1 = mod289(Pi1);\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\n  vec4 iz0 = Pi0.zzzz;\\n  vec4 iz1 = Pi1.zzzz;\\n\\n  vec4 ixy = permute(permute(ix) + iy);\\n  vec4 ixy0 = permute(ixy + iz0);\\n  vec4 ixy1 = permute(ixy + iz1);\\n\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\n  gx0 = fract(gx0);\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\n  vec4 sz0 = step(gz0, vec4(0.0));\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\n\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\n  gx1 = fract(gx1);\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\n  vec4 sz1 = step(gz1, vec4(0.0));\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\n\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\n\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\n  g000 *= norm0.x;\\n  g010 *= norm0.y;\\n  g100 *= norm0.z;\\n  g110 *= norm0.w;\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\n  g001 *= norm1.x;\\n  g011 *= norm1.y;\\n  g101 *= norm1.z;\\n  g111 *= norm1.w;\\n\\n  float n000 = dot(g000, Pf0);\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\n  float n111 = dot(g111, Pf1);\\n\\n  vec3 fade_xyz = fade(Pf0);\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \\n  return 2.2 * n_xyz;\\n}\\n\\n//-------- start here ------------\\n\\nmat3 rotation3dY(float angle) {\\n  float s = sin(angle);\\n  float c = cos(angle);\\n\\n  return mat3(c, 0.0, -s, 0.0, 1.0, 0.0, s, 0.0, c);\\n}\\n\\nvec3 rotateY(vec3 v, float angle) { return rotation3dY(angle) * v; }\\n\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\n\\nvarying vec2 vUv;\\n\\nuniform float uTime;\\nuniform float uSpeed;\\n\\nuniform float uLoadingTime;\\n\\nuniform float uNoiseDensity;\\nuniform float uNoiseStrength;\\n\\n#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <clipping_planes_pars_vertex>\\n#include <color_pars_vertex>\\n#include <common>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <uv_pars_vertex>\\n\\nvoid main() {\\n\\n  #include <beginnormal_vertex>\\n  #include <color_vertex>\\n  #include <defaultnormal_vertex>\\n  #include <morphnormal_vertex>\\n  #include <skinbase_vertex>\\n  #include <skinnormal_vertex>\\n  #include <uv2_vertex>\\n  #include <uv_vertex>\\n  #ifndef FLAT_SHADED\\n    vNormal = normalize(transformedNormal);\\n  #ifdef USE_TANGENT\\n    vTangent = normalize(transformedTangent);\\n    vBitangent = normalize(cross(vNormal, vTangent) * tangent.w);\\n  #endif\\n  #endif\\n  #include <begin_vertex>\\n\\n  #include <clipping_planes_vertex>\\n  #include <displacementmap_vertex>\\n  #include <logdepthbuf_vertex>\\n  #include <morphtarget_vertex>\\n  #include <project_vertex>\\n  #include <skinning_vertex>\\n    vViewPosition = -mvPosition.xyz;\\n  #include <fog_vertex>\\n  #include <shadowmap_vertex>\\n  #include <worldpos_vertex>\\n\\n  //-------- start vertex ------------\\n  vUv = uv;\\n\\n  float t = uTime * uSpeed;\\n  // Create a sine wave from top to bottom of the sphere\\n  float distortion = 0.75 * cnoise(0.43 * position * uNoiseDensity + t);\\n\\n  vec3 pos = position + normal * distortion * uNoiseStrength * uLoadingTime;\\n  vPos = pos;\\n\\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.);\\n}\\n\";\n\n// src/shaders/a/fragment.glsl\nvar fragment_default = \"\\n#define STANDARD\\n#ifdef PHYSICAL\\n#define REFLECTIVITY\\n#define CLEARCOAT\\n#define TRANSMISSION\\n#endif\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n\\n#ifdef TRANSMISSION\\nuniform float transmission;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\nuniform float clearcoat;\\nuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\nuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <color_pars_fragment>\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <map_pars_fragment>\\n#include <packing>\\n#include <uv2_pars_fragment>\\n#include <uv_pars_fragment>\\n// #include <transmissionmap_pars_fragment>\\n#include <bsdfs>\\n#include <bumpmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n// include\\uB97C \\uD1B5\\uD574 \\uAC00\\uC838\\uC628 \\uAC12\\uC740 \\uB300\\uBD80\\uBD84 \\uD658\\uACBD, \\uBE5B \\uB4F1\\uC744 \\uACC4\\uC0B0\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uAE30\\uBCF8 fragment\\n// shader\\uC758 \\uAC12\\uB4E4\\uC744 \\uBC1B\\uC544\\uC654\\uC2B5\\uB2C8\\uB2E4. \\uC77C\\uB2E8\\uC740 \\uBB34\\uC2DC\\uD558\\uC154\\uB3C4 \\uB429\\uB2C8\\uB2E4.\\n\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\n\\nuniform float uC1r;\\nuniform float uC1g;\\nuniform float uC1b;\\nuniform float uC2r;\\nuniform float uC2g;\\nuniform float uC2b;\\nuniform float uC3r;\\nuniform float uC3g;\\nuniform float uC3b;\\n\\nvarying vec3 color1;\\nvarying vec3 color2;\\nvarying vec3 color3;\\n\\n// for npm package, need to add this manually\\nfloat linearToRelativeLuminance2( const in vec3 color ) {\\n    vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n    return dot( weights, color.rgb );\\n}\\n\\nvoid main() {\\n\\n  //-------- basic gradient ------------\\n  vec3 color1 = vec3(uC1r, uC1g, uC1b);\\n  vec3 color2 = vec3(uC2r, uC2g, uC2b);\\n  vec3 color3 = vec3(uC3r, uC3g, uC3b);\\n  float clearcoat = 1.0;\\n  float clearcoatRoughness = 0.5;\\n\\n  #include <clipping_planes_fragment>\\n\\n  vec4 diffuseColor = vec4(\\n      mix(mix(color1, color2, smoothstep(-3.0, 3.0, vPos.x)), color3, vPos.z),\\n      1);\\n  // diffuseColor\\uB294 \\uC624\\uBE0C\\uC81D\\uD2B8\\uC758 \\uBCA0\\uC774\\uC2A4 \\uC0C9\\uC0C1 (\\uD658\\uACBD\\uC774\\uB098 \\uBE5B\\uC774 \\uACE0\\uB824\\uB418\\uC9C0 \\uC54A\\uC740 \\uBCF8\\uC5F0\\uC758\\n  // \\uC0C9)\\n\\n  // mix(x, y, a): a\\uB97C \\uCD95\\uC73C\\uB85C \\uD588\\uC744 \\uB54C \\uAC00\\uC7A5 \\uB0AE\\uC740 \\uAC12\\uC5D0\\uC11C x\\uAC12\\uC758 \\uC601\\uD5A5\\uB825\\uC744 100%, \\uAC00\\uC7A5\\n  // \\uB192\\uC740 \\uAC12\\uC5D0\\uC11C y\\uAC12\\uC758 \\uC601\\uD5A5\\uB825\\uC744 100%\\uB85C \\uB9CC\\uB4E0\\uB2E4. smoothstep(x, y, a): a\\uCD95\\uC744\\n  // \\uAE30\\uC900\\uC73C\\uB85C x\\uB97C \\uCD5C\\uC18C\\uAC12, y\\uB97C \\uCD5C\\uB300\\uAC12\\uC73C\\uB85C \\uADF8 \\uC0AC\\uC774\\uC758 \\uAC12\\uC744 \\uCABC\\uAC20\\uB2E4. x\\uC640 y \\uC0AC\\uC774\\uB97C\\n  // 0-100 \\uC0AC\\uC774\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uCC98\\uB7FC \\uB2E8\\uACC4\\uBCC4\\uB85C \\uD45C\\uD604\\uD558\\uACE0, x \\uBBF8\\uB9CC\\uC758 \\uAC12\\uC740 0, y \\uC774\\uC0C1\\uC758\\n  // \\uAC12\\uC740 100\\uC73C\\uB85C \\uCC98\\uB9AC\\n\\n  // 1. smoothstep(-3.0, 3.0,vPos.x)\\uB85C x\\uCD95\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uAC00 \\uD45C\\uD604 \\uB420 \\uBC94\\uC704\\uB97C -3,\\n  // 3\\uC73C\\uB85C \\uC815\\uD55C\\uB2E4.\\n  // 2. mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x))\\uB85C color1\\uACFC color3\\uC744\\n  // \\uC704\\uC758 \\uBC94\\uC704 \\uC548\\uC5D0\\uC11C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB85C \\uD45C\\uD604\\uD55C\\uB2E4.\\n  // \\uC608\\uB97C \\uB4E4\\uC5B4 color1\\uC774 \\uB178\\uB791, color3\\uC774 \\uD30C\\uB791\\uC774\\uB77C\\uACE0 \\uCE58\\uBA74, x\\uCD95 \\uAE30\\uC900 -3\\uBD80\\uD130 3\\uAE4C\\uC9C0\\n  // \\uB178\\uB791\\uACFC \\uD30C\\uB791 \\uC0AC\\uC774\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uAC00 \\uB098\\uD0C0\\uB098\\uACE0, -3\\uBCF4\\uB2E4 \\uC791\\uC740 \\uAC12\\uC5D0\\uC11C\\uB294 \\uACC4\\uC18D \\uB178\\uB791,\\n  // 3\\uBCF4\\uB2E4 \\uD070 \\uAC12\\uC5D0\\uC11C\\uB294 \\uACC4\\uC18D \\uD30C\\uB791\\uC774 \\uB098\\uD0C0\\uB09C\\uB2E4.\\n  // 3. mix()\\uB97C \\uD55C \\uBC88 \\uB354 \\uC0AC\\uC6A9\\uD574\\uC11C \\uC704\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uC640 color2\\uB97C z\\uCD95 \\uAE30\\uC900\\uC73C\\uB85C\\n  // \\uBD84\\uBC30\\uD55C\\uB2E4.\\n\\n  //-------- materiality ------------\\n  ReflectedLight reflectedLight =\\n      ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\\n  vec3 totalEmissiveRadiance = emissive;\\n\\n  #ifdef TRANSMISSION\\n    float totalTransmission = transmission;\\n  #endif\\n  #include <logdepthbuf_fragment>\\n  #include <map_fragment>\\n  #include <color_fragment>\\n  #include <alphamap_fragment>\\n  #include <alphatest_fragment>\\n  #include <roughnessmap_fragment>\\n  #include <metalnessmap_fragment>\\n  #include <normal_fragment_begin>\\n  #include <normal_fragment_maps>\\n  #include <clearcoat_normal_fragment_begin>\\n  #include <clearcoat_normal_fragment_maps>\\n  #include <emissivemap_fragment>\\n  // #include <transmissionmap_fragment>\\n  #include <lights_physical_fragment>\\n  #include <lights_fragment_begin>\\n  #include <lights_fragment_maps>\\n  #include <lights_fragment_end>\\n  #include <aomap_fragment>\\n    vec3 outgoingLight =\\n        reflectedLight.directDiffuse + reflectedLight.indirectDiffuse +\\n        reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n    //\\uC704\\uC5D0\\uC11C \\uC815\\uC758\\uD55C diffuseColor\\uC5D0 \\uD658\\uACBD\\uC774\\uB098 \\uBC18\\uC0AC\\uAC12\\uB4E4\\uC744 \\uBC18\\uC601\\uD55C \\uAC12.\\n  #ifdef TRANSMISSION\\n    diffuseColor.a *=\\n        mix(saturate(1. - totalTransmission +\\n                    linearToRelativeLuminance2(reflectedLight.directSpecular +\\n                                              reflectedLight.indirectSpecular)),\\n            1.0, metalness);\\n  #endif\\n\\n\\n  #include <tonemapping_fragment>\\n  #include <encodings_fragment>\\n  #include <fog_fragment>\\n  #include <premultiplied_alpha_fragment>\\n  #include <dithering_fragment>\\n\\n\\n  gl_FragColor = vec4(outgoingLight, diffuseColor.a);\\n  // gl_FragColor\\uAC00 fragment shader\\uB97C \\uD1B5\\uD574 \\uB098\\uD0C0\\uB098\\uB294 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C, diffuseColor\\uC5D0\\uC11C\\n  // \\uC815\\uC758\\uD55C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uC0C9\\uC0C1 \\uC704\\uC5D0 \\uBC18\\uC0AC\\uB098 \\uBE5B\\uC744 \\uACC4\\uC0B0\\uD55C \\uAC12\\uC744 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C \\uC815\\uC758.\\n  // gl_FragColor = vec4(mix(mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x)),\\n  // color2, vNormal.z), 1.0); \\uC704\\uCC98\\uB7FC \\uCD5C\\uC885\\uAC12\\uC744 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uAC12 \\uC790\\uCCB4\\uB97C \\uB123\\uC73C\\uBA74 \\uD658\\uACBD\\n  // \\uC601\\uD5A5\\uC5C6\\uB294 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB9CC \\uD45C\\uD604\\uB428.\\n}\\n\";\n\n// src/shaders/a/vertexSphere.glsl\nvar vertexSphere_default = \"// #pragma glslify: pnoise = require(glsl-noise/periodic/3d)\\n\\nvec3 mod289(vec3 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 mod289(vec4 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 permute(vec4 x)\\n{\\n  return mod289(((x*34.0)+1.0)*x);\\n}\\n\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n  return 1.79284291400159 - 0.85373472095314 * r;\\n}\\n\\nvec3 fade(vec3 t) {\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\n}\\n\\n// Classic Perlin noise, periodic variant\\nfloat pnoise(vec3 P, vec3 rep)\\n{\\n  vec3 Pi0 = mod(floor(P), rep); // Integer part, modulo period\\n  vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); // Integer part + 1, mod period\\n  Pi0 = mod289(Pi0);\\n  Pi1 = mod289(Pi1);\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\n  vec4 iz0 = Pi0.zzzz;\\n  vec4 iz1 = Pi1.zzzz;\\n\\n  vec4 ixy = permute(permute(ix) + iy);\\n  vec4 ixy0 = permute(ixy + iz0);\\n  vec4 ixy1 = permute(ixy + iz1);\\n\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\n  gx0 = fract(gx0);\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\n  vec4 sz0 = step(gz0, vec4(0.0));\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\n\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\n  gx1 = fract(gx1);\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\n  vec4 sz1 = step(gz1, vec4(0.0));\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\n\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\n\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\n  g000 *= norm0.x;\\n  g010 *= norm0.y;\\n  g100 *= norm0.z;\\n  g110 *= norm0.w;\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\n  g001 *= norm1.x;\\n  g011 *= norm1.y;\\n  g101 *= norm1.z;\\n  g111 *= norm1.w;\\n\\n  float n000 = dot(g000, Pf0);\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\n  float n111 = dot(g111, Pf1);\\n\\n  vec3 fade_xyz = fade(Pf0);\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\\n  return 2.2 * n_xyz;\\n}\\n\\n\\n//-------- start here ------------\\n\\nvarying vec3 vNormal;\\nuniform float uTime;\\nuniform float uSpeed;\\nuniform float uNoiseDensity;\\nuniform float uNoiseStrength;\\nuniform float uFrequency;\\nuniform float uAmplitude;\\nvarying vec3 vPos;\\nvarying float vDistort;\\nvarying vec2 vUv;\\nvarying vec3 vViewPosition;\\n\\n#define STANDARD\\n#ifndef FLAT_SHADED\\n  #ifdef USE_TANGENT\\n    varying vec3 vTangent;\\n    varying vec3 vBitangent;\\n  #endif\\n#endif\\n\\n#include <clipping_planes_pars_vertex>\\n#include <color_pars_vertex>\\n#include <common>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <uv_pars_vertex>\\n\\n\\n// rotation\\nmat3 rotation3dY(float angle) {\\n  float s = sin(angle);\\n  float c = cos(angle);\\n  return mat3(c, 0.0, -s, 0.0, 1.0, 0.0, s, 0.0, c);\\n}\\n\\nvec3 rotateY(vec3 v, float angle) { return rotation3dY(angle) * v; }\\n\\nvoid main() {\\n  #include <beginnormal_vertex>\\n  #include <color_vertex>\\n  #include <defaultnormal_vertex>\\n  #include <morphnormal_vertex>\\n  #include <skinbase_vertex>\\n  #include <skinnormal_vertex>\\n  #include <uv2_vertex>\\n  #include <uv_vertex>\\n  #ifndef FLAT_SHADED\\n    vNormal = normalize(transformedNormal);\\n  #ifdef USE_TANGENT\\n    vTangent = normalize(transformedTangent);\\n    vBitangent = normalize(cross(vNormal, vTangent) * tangent.w);\\n  #endif\\n  #endif\\n  #include <begin_vertex>\\n\\n  #include <clipping_planes_vertex>\\n  #include <displacementmap_vertex>\\n  #include <logdepthbuf_vertex>\\n  #include <morphtarget_vertex>\\n  #include <project_vertex>\\n  #include <skinning_vertex>\\n    vViewPosition = -mvPosition.xyz;\\n  #include <fog_vertex>\\n  #include <shadowmap_vertex>\\n  #include <worldpos_vertex>\\n\\n  //-------- start vertex ------------\\n  float t = uTime * uSpeed;\\n  float distortion =\\n      pnoise((normal + t) * uNoiseDensity, vec3(10.0)) * uNoiseStrength;\\n  vec3 pos = position + (normal * distortion);\\n  float angle = sin(uv.y * uFrequency + t) * uAmplitude;\\n  pos = rotateY(pos, angle);\\n\\n  vPos = pos;\\n  vDistort = distortion;\\n  vNormal = normal;\\n  vUv = uv;\\n\\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.);\\n}\\n\";\n\n// src/shaders/a/fragmentSphere.glsl\nvar fragmentSphere_default = \"\\n#define STANDARD\\n#ifdef PHYSICAL\\n#define REFLECTIVITY\\n#define CLEARCOAT\\n#define TRANSMISSION\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef TRANSMISSION\\nuniform float transmission;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\nuniform float clearcoat;\\nuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\nuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <color_pars_fragment>\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <map_pars_fragment>\\n#include <packing>\\n#include <uv2_pars_fragment>\\n#include <uv_pars_fragment>\\n// #include <transmissionmap_pars_fragment>\\n#include <bsdfs>\\n#include <bumpmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n// include\\uB97C \\uD1B5\\uD574 \\uAC00\\uC838\\uC628 \\uAC12\\uC740 \\uB300\\uBD80\\uBD84 \\uD658\\uACBD, \\uBE5B \\uB4F1\\uC744 \\uACC4\\uC0B0\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uAE30\\uBCF8 fragment\\n// shader\\uC758 \\uAC12\\uB4E4\\uC744 \\uBC1B\\uC544\\uC654\\uC2B5\\uB2C8\\uB2E4. \\uC77C\\uB2E8\\uC740 \\uBB34\\uC2DC\\uD558\\uC154\\uB3C4 \\uB429\\uB2C8\\uB2E4.\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\nuniform float uC1r;\\nuniform float uC1g;\\nuniform float uC1b;\\nuniform float uC2r;\\nuniform float uC2g;\\nuniform float uC2b;\\nuniform float uC3r;\\nuniform float uC3g;\\nuniform float uC3b;\\nvarying vec3 color1;\\nvarying vec3 color2;\\nvarying vec3 color3;\\nvarying float distanceToCenter;\\n\\n\\n// for npm package, need to add this manually\\n// 'linearToRelativeLuminance' : function already has a body\\nfloat linearToRelativeLuminance2( const in vec3 color ) {\\n    vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n    return dot( weights, color.rgb );\\n}\\n\\nvoid main() {\\n  //-------- basic gradient ------------\\n  vec3 color1 = vec3(uC1r, uC1g, uC1b);\\n  vec3 color2 = vec3(uC2r, uC2g, uC2b);\\n  vec3 color3 = vec3(uC3r, uC3g, uC3b);\\n  float clearcoat = 1.0;\\n  float clearcoatRoughness = 0.5;\\n#include <clipping_planes_fragment>\\n\\n  float distanceToCenter = distance(vPos, vec3(0, 0, 0));\\n  // distanceToCenter\\uB85C \\uC911\\uC2EC\\uC810\\uACFC\\uC758 \\uAC70\\uB9AC\\uB97C \\uAD6C\\uD568.\\n\\n  vec4 diffuseColor =\\n      vec4(mix(color3, mix(color2, color1, smoothstep(-1.0, 1.0, vPos.y)),\\n               distanceToCenter),\\n           1);\\n\\n  //-------- materiality ------------\\n  ReflectedLight reflectedLight =\\n      ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\\n  vec3 totalEmissiveRadiance = emissive;\\n#ifdef TRANSMISSION\\n  float totalTransmission = transmission;\\n#endif\\n#include <logdepthbuf_fragment>\\n#include <map_fragment>\\n#include <color_fragment>\\n#include <alphamap_fragment>\\n#include <alphatest_fragment>\\n#include <roughnessmap_fragment>\\n#include <metalnessmap_fragment>\\n#include <normal_fragment_begin>\\n#include <normal_fragment_maps>\\n#include <clearcoat_normal_fragment_begin>\\n#include <clearcoat_normal_fragment_maps>\\n#include <emissivemap_fragment>\\n// #include <transmissionmap_fragment>\\n#include <lights_physical_fragment>\\n#include <lights_fragment_begin>\\n#include <lights_fragment_maps>\\n#include <lights_fragment_end>\\n#include <aomap_fragment>\\n  vec3 outgoingLight =\\n      reflectedLight.directDiffuse + reflectedLight.indirectDiffuse +\\n      reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n//\\uC704\\uC5D0\\uC11C \\uC815\\uC758\\uD55C diffuseColor\\uC5D0 \\uD658\\uACBD\\uC774\\uB098 \\uBC18\\uC0AC\\uAC12\\uB4E4\\uC744 \\uBC18\\uC601\\uD55C \\uAC12.\\n#ifdef TRANSMISSION\\n  diffuseColor.a *=\\n      mix(saturate(1. - totalTransmission +\\n                   linearToRelativeLuminance2(reflectedLight.directSpecular +\\n                                             reflectedLight.indirectSpecular)),\\n          1.0, metalness);\\n#endif\\n  gl_FragColor = vec4(outgoingLight, diffuseColor.a);\\n  // gl_FragColor\\uAC00 fragment shader\\uB97C \\uD1B5\\uD574 \\uB098\\uD0C0\\uB098\\uB294 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C, diffuseColor\\uC5D0\\uC11C\\n  // \\uC815\\uC758\\uD55C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uC0C9\\uC0C1 \\uC704\\uC5D0 \\uBC18\\uC0AC\\uB098 \\uBE5B\\uC744 \\uACC4\\uC0B0\\uD55C \\uAC12\\uC744 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C \\uC815\\uC758.\\n  // gl_FragColor = vec4(mix(mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x)),\\n  // color2, vNormal.z), 1.0); \\uC704\\uCC98\\uB7FC \\uCD5C\\uC885\\uAC12\\uC744 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uAC12 \\uC790\\uCCB4\\uB97C \\uB123\\uC73C\\uBA74 \\uD658\\uACBD\\n  // \\uC601\\uD5A5\\uC5C6\\uB294 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB9CC \\uD45C\\uD604\\uB428.\\n\\n#include <tonemapping_fragment>\\n#include <encodings_fragment>\\n#include <fog_fragment>\\n#include <premultiplied_alpha_fragment>\\n#include <dithering_fragment>\\n}\\n\";\n\nexport {\n  vertex_default,\n  fragment_default,\n  vertexSphere_default,\n  fragmentSphere_default\n};\n","// src/ShaderGradient/Mesh/Geometry.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar meshCount = 192;\nfunction Geometry({ type }) {\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    type === \"plane\" && /* @__PURE__ */ jsx(\"planeGeometry\", { args: [10, 10, 1, meshCount] }),\n    type === \"sphere\" && /* @__PURE__ */ jsx(\"icosahedronGeometry\", { args: [1, meshCount / 3] }),\n    type === \"waterPlane\" && /* @__PURE__ */ jsx(\"planeGeometry\", { args: [10, 10, meshCount, meshCount] })\n  ] });\n}\n\nexport {\n  Geometry\n};\n","// src/utils/color.ts\nfunction hexToRgb(hex) {\n  const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n  return result ? {\n    r: parseInt(result[1], 16),\n    g: parseInt(result[2], 16),\n    b: parseInt(result[3], 16)\n  } : null;\n}\nfunction rgbStringToRgb(rgbString) {\n  const result = rgbString.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n  return result ? {\n    r: parseInt(result[1]),\n    g: parseInt(result[2]),\n    b: parseInt(result[3])\n  } : null;\n}\nfunction colorToRgb(color) {\n  if (color.startsWith(\"#\")) {\n    return hexToRgb(color);\n  } else if (color.startsWith(\"rgb\")) {\n    return rgbStringToRgb(color);\n  } else {\n    throw new Error(\"Invalid color format\");\n  }\n}\nfunction formatColor(color = 0) {\n  return color / 255;\n}\n\nexport {\n  colorToRgb,\n  formatColor\n};\n","import {\n  colorToRgb,\n  formatColor\n} from \"./chunk-BI5IV7LU.mjs\";\nimport {\n  useFrame\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  DoubleSide,\n  MeshPhysicalMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/Mesh/Materials.tsx\nimport { useEffect, useMemo } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Materials = ({\n  animate,\n  uniforms,\n  vertexShader,\n  fragmentShader,\n  onInit\n}) => {\n  const material = useMemo(() => {\n    const entries = Object.entries(uniforms);\n    const colors = uniforms.colors;\n    const uC1 = colorToRgb(colors[0]);\n    const uC2 = colorToRgb(colors[1]);\n    const uC3 = colorToRgb(colors[2]);\n    const rgbColors = {\n      uC1r: { value: formatColor(uC1 == null ? void 0 : uC1.r) },\n      uC1g: { value: formatColor(uC1 == null ? void 0 : uC1.g) },\n      uC1b: { value: formatColor(uC1 == null ? void 0 : uC1.b) },\n      uC2r: { value: formatColor(uC2 == null ? void 0 : uC2.r) },\n      uC2g: { value: formatColor(uC2 == null ? void 0 : uC2.g) },\n      uC2b: { value: formatColor(uC2 == null ? void 0 : uC2.b) },\n      uC3r: { value: formatColor(uC3 == null ? void 0 : uC3.r) },\n      uC3g: { value: formatColor(uC3 == null ? void 0 : uC3.g) },\n      uC3b: { value: formatColor(uC3 == null ? void 0 : uC3.b) }\n    };\n    const uniformValues = entries.reduce((acc, [name, value]) => {\n      const uniform = UniformsUtils.clone({ [name]: { value } });\n      return __spreadValues(__spreadValues({}, acc), uniform);\n    }, {});\n    const material2 = new MeshPhysicalMaterial({\n      userData: uniformValues,\n      // sync uniform and userData to update uniforms from outside (MeshPhysicalMaterial)\n      metalness: 0.2,\n      // similar effects reducing -0.2 intensity of the ambient light\n      side: DoubleSide,\n      onBeforeCompile: (shader) => {\n        shader.uniforms = __spreadValues(__spreadValues(__spreadValues({}, shader.uniforms), uniformValues), rgbColors);\n        shader.vertexShader = vertexShader;\n        shader.fragmentShader = fragmentShader;\n      }\n      // wireframe: true,\n    });\n    entries.forEach(\n      ([name]) => Object.defineProperty(material2, name, {\n        get: () => material2.uniforms[name].value,\n        set: (v) => material2.uniforms[name].value = v\n      })\n    );\n    if (onInit) onInit(material2);\n    return material2;\n  }, [uniforms, vertexShader, fragmentShader, onInit]);\n  useEffect(() => {\n    return () => {\n      material.dispose();\n    };\n  }, [material]);\n  useFrame(({ clock }) => {\n    if (animate === \"on\" && material.userData.uTime) {\n      material.userData.uTime.value = clock.getElapsedTime();\n    }\n  });\n  return /* @__PURE__ */ jsx(\"primitive\", { attach: \"material\", object: material });\n};\n\nexport {\n  Materials\n};\n","import {\n  fragmentSphere_default,\n  fragment_default,\n  vertexSphere_default,\n  vertex_default\n} from \"./chunk-WMVG427C.mjs\";\nimport {\n  Geometry\n} from \"./chunk-WBM42ICI.mjs\";\nimport {\n  Materials\n} from \"./chunk-OH6HADGN.mjs\";\nimport {\n  dToRArr\n} from \"./chunk-G7COPUKV.mjs\";\n\n// src/ShaderGradient/Mesh/Mesh.tsx\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nfunction Mesh({\n  animate,\n  positionX,\n  positionY,\n  positionZ,\n  rotationX,\n  rotationY,\n  rotationZ,\n  type,\n  color1,\n  color2,\n  color3,\n  uTime,\n  uSpeed,\n  uDensity,\n  uStrength,\n  uFrequency,\n  uAmplitude\n}) {\n  return /* @__PURE__ */ jsxs(\n    \"mesh\",\n    {\n      name: \"shadergradient-mesh\",\n      position: [positionX, positionY, positionZ],\n      rotation: dToRArr([rotationX, rotationY, rotationZ]),\n      children: [\n        /* @__PURE__ */ jsx(Geometry, { type }),\n        /* @__PURE__ */ jsx(\n          Materials,\n          {\n            animate,\n            uniforms: {\n              colors: [color1, color2, color3],\n              uTime,\n              uSpeed,\n              uLoadingTime: 1,\n              // no loading animation\n              uNoiseDensity: uDensity,\n              uNoiseStrength: uStrength,\n              uFrequency,\n              uAmplitude,\n              uIntensity: 0.5\n            },\n            vertexShader: type === \"sphere\" ? vertexSphere_default : vertex_default,\n            fragmentShader: type === \"sphere\" ? fragmentSphere_default : fragment_default,\n            onInit: (material) => {\n              console.log(\"material (onInit)\", material);\n            }\n          }\n        )\n      ]\n    }\n  );\n}\n\nexport {\n  Mesh\n};\n","import {\n  __export\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/filter-obj@1.1.0/node_modules/filter-obj/index.js\nvar filter_obj_exports = {};\n__export(filter_obj_exports, {\n  default: () => filter_obj_default\n});\nvar exports = {};\nvar module = {\n  get exports() {\n    return exports;\n  },\n  set exports(value) {\n    exports = value;\n  }\n};\nmodule.exports = function(obj, predicate) {\n  var ret = {};\n  var keys = Object.keys(obj);\n  var isArr = Array.isArray(predicate);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    var val = obj[key];\n    if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n      ret[key] = val;\n    }\n  }\n  return ret;\n};\nvar filter_obj_default = module.exports;\n\n// ../../node_modules/.pnpm/split-on-first@1.1.0/node_modules/split-on-first/index.js\nvar split_on_first_exports = {};\n__export(split_on_first_exports, {\n  default: () => split_on_first_default\n});\nvar exports2 = {};\nvar module2 = {\n  get exports() {\n    return exports2;\n  },\n  set exports(value) {\n    exports2 = value;\n  }\n};\nmodule2.exports = (string, separator) => {\n  if (!(typeof string === \"string\" && typeof separator === \"string\")) {\n    throw new TypeError(\"Expected the arguments to be of type `string`\");\n  }\n  if (separator === \"\") {\n    return [string];\n  }\n  const separatorIndex = string.indexOf(separator);\n  if (separatorIndex === -1) {\n    return [string];\n  }\n  return [\n    string.slice(0, separatorIndex),\n    string.slice(separatorIndex + separator.length)\n  ];\n};\nvar split_on_first_default = module2.exports;\n\n// ../../node_modules/.pnpm/decode-uri-component@0.2.2/node_modules/decode-uri-component/index.js\nvar decode_uri_component_exports = {};\n__export(decode_uri_component_exports, {\n  default: () => decode_uri_component_default\n});\nvar exports3 = {};\nvar module3 = {\n  get exports() {\n    return exports3;\n  },\n  set exports(value) {\n    exports3 = value;\n  }\n};\nvar token = \"%[a-f0-9]{2}\";\nvar singleMatcher = new RegExp(\"(\" + token + \")|([^%]+?)\", \"gi\");\nvar multiMatcher = new RegExp(\"(\" + token + \")+\", \"gi\");\nfunction decodeComponents(components, split) {\n  try {\n    return [decodeURIComponent(components.join(\"\"))];\n  } catch (err) {\n  }\n  if (components.length === 1) {\n    return components;\n  }\n  split = split || 1;\n  var left = components.slice(0, split);\n  var right = components.slice(split);\n  return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input);\n  } catch (err) {\n    var tokens = input.match(singleMatcher) || [];\n    for (var i = 1; i < tokens.length; i++) {\n      input = decodeComponents(tokens, i).join(\"\");\n      tokens = input.match(singleMatcher) || [];\n    }\n    return input;\n  }\n}\nfunction customDecodeURIComponent(input) {\n  var replaceMap = {\n    \"%FE%FF\": \"\\uFFFD\\uFFFD\",\n    \"%FF%FE\": \"\\uFFFD\\uFFFD\"\n  };\n  var match = multiMatcher.exec(input);\n  while (match) {\n    try {\n      replaceMap[match[0]] = decodeURIComponent(match[0]);\n    } catch (err) {\n      var result = decode(match[0]);\n      if (result !== match[0]) {\n        replaceMap[match[0]] = result;\n      }\n    }\n    match = multiMatcher.exec(input);\n  }\n  replaceMap[\"%C2\"] = \"\\uFFFD\";\n  var entries = Object.keys(replaceMap);\n  for (var i = 0; i < entries.length; i++) {\n    var key = entries[i];\n    input = input.replace(new RegExp(key, \"g\"), replaceMap[key]);\n  }\n  return input;\n}\nmodule3.exports = function(encodedURI) {\n  if (typeof encodedURI !== \"string\") {\n    throw new TypeError(\"Expected `encodedURI` to be of type `string`, got `\" + typeof encodedURI + \"`\");\n  }\n  try {\n    encodedURI = encodedURI.replace(/\\+/g, \" \");\n    return decodeURIComponent(encodedURI);\n  } catch (err) {\n    return customDecodeURIComponent(encodedURI);\n  }\n};\nvar decode_uri_component_default = module3.exports;\n\n// ../../node_modules/.pnpm/strict-uri-encode@2.0.0/node_modules/strict-uri-encode/index.js\nvar strict_uri_encode_exports = {};\n__export(strict_uri_encode_exports, {\n  default: () => strict_uri_encode_default\n});\nvar exports4 = {};\nvar module4 = {\n  get exports() {\n    return exports4;\n  },\n  set exports(value) {\n    exports4 = value;\n  }\n};\nmodule4.exports = (str) => encodeURIComponent(str).replace(/[!'()*]/g, (x) => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\nvar strict_uri_encode_default = module4.exports;\n\n// ../../node_modules/.pnpm/query-string@7.1.3/node_modules/query-string/index.js\nfunction __cjs_default__(requiredModule) {\n  var Object2 = (typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {}).Object;\n  var isEsModule = false;\n  var specifiers = Object2.create(null);\n  var hasNamedExports = false;\n  var hasDefaultExport = false;\n  Object2.defineProperty(specifiers, \"__esModule\", {\n    value: true,\n    enumerable: false,\n    configurable: true\n  });\n  if (requiredModule) {\n    var names = Object2.getOwnPropertyNames(requiredModule);\n    ;\n    names.forEach(function(k) {\n      if (k === \"default\") {\n        hasDefaultExport = true;\n      } else if (!hasNamedExports && k != \"__esModule\") {\n        try {\n          hasNamedExports = requiredModule[k] != null;\n        } catch (err) {\n        }\n      }\n      Object2.defineProperty(specifiers, k, {\n        get: function() {\n          return requiredModule[k];\n        },\n        enumerable: true,\n        configurable: false\n      });\n    });\n    if (Object2.getOwnPropertySymbols) {\n      var symbols = Object2.getOwnPropertySymbols(requiredModule);\n      symbols.forEach(function(k) {\n        Object2.defineProperty(specifiers, k, {\n          get: function() {\n            return requiredModule[k];\n          },\n          enumerable: false,\n          configurable: false\n        });\n      });\n    }\n    Object2.preventExtensions(specifiers);\n    Object2.seal(specifiers);\n    if (Object2.freeze) {\n      Object2.freeze(specifiers);\n    }\n  }\n  if (hasNamedExports) {\n    return specifiers;\n  }\n  if (hasDefaultExport) {\n    if (Object2.isExtensible(specifiers.default) && !(\"default\" in specifiers.default)) {\n      Object2.defineProperty(specifiers.default, \"default\", {\n        value: specifiers.default,\n        configurable: false,\n        enumerable: false\n      });\n    }\n    return specifiers.default;\n  }\n  return specifiers;\n}\nvar global = typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {};\nvar exports5 = {};\nvar module5 = {\n  get exports() {\n    return exports5;\n  },\n  set exports(value) {\n    exports5 = value;\n  }\n};\nvar strictUriEncode = __cjs_default__(typeof strict_uri_encode_exports !== \"undefined\" ? strict_uri_encode_exports : {});\nvar decodeComponent = __cjs_default__(typeof decode_uri_component_exports !== \"undefined\" ? decode_uri_component_exports : {});\nvar splitOnFirst = __cjs_default__(typeof split_on_first_exports !== \"undefined\" ? split_on_first_exports : {});\nvar filterObject = __cjs_default__(typeof filter_obj_exports !== \"undefined\" ? filter_obj_exports : {});\nvar isNullOrUndefined = (value) => value === null || value === void 0;\nvar encodeFragmentIdentifier = Symbol(\"encodeFragmentIdentifier\");\nfunction encoderForArrayFormat(options) {\n  switch (options.arrayFormat) {\n    case \"index\":\n      return (key) => (result, value) => {\n        const index = result.length;\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \"[\", index, \"]\"].join(\"\")];\n        }\n        return [\n          ...result,\n          [encode(key, options), \"[\", encode(index, options), \"]=\", encode(value, options)].join(\"\")\n        ];\n      };\n    case \"bracket\":\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \"[]\"].join(\"\")];\n        }\n        return [...result, [encode(key, options), \"[]=\", encode(value, options)].join(\"\")];\n      };\n    case \"colon-list-separator\":\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \":list=\"].join(\"\")];\n        }\n        return [...result, [encode(key, options), \":list=\", encode(value, options)].join(\"\")];\n      };\n    case \"comma\":\n    case \"separator\":\n    case \"bracket-separator\": {\n      const keyValueSep = options.arrayFormat === \"bracket-separator\" ? \"[]=\" : \"=\";\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        value = value === null ? \"\" : value;\n        if (result.length === 0) {\n          return [[encode(key, options), keyValueSep, encode(value, options)].join(\"\")];\n        }\n        return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n      };\n    }\n    default:\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, encode(key, options)];\n        }\n        return [...result, [encode(key, options), \"=\", encode(value, options)].join(\"\")];\n      };\n  }\n}\nfunction parserForArrayFormat(options) {\n  let result;\n  switch (options.arrayFormat) {\n    case \"index\":\n      return (key, value, accumulator) => {\n        result = /\\[(\\d*)\\]$/.exec(key);\n        key = key.replace(/\\[\\d*\\]$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = {};\n        }\n        accumulator[key][result[1]] = value;\n      };\n    case \"bracket\":\n      return (key, value, accumulator) => {\n        result = /(\\[\\])$/.exec(key);\n        key = key.replace(/\\[\\]$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = [value];\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n    case \"colon-list-separator\":\n      return (key, value, accumulator) => {\n        result = /(:list)$/.exec(key);\n        key = key.replace(/:list$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = [value];\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n    case \"comma\":\n    case \"separator\":\n      return (key, value, accumulator) => {\n        const isArray = typeof value === \"string\" && value.includes(options.arrayFormatSeparator);\n        const isEncodedArray = typeof value === \"string\" && !isArray && decode2(value, options).includes(options.arrayFormatSeparator);\n        value = isEncodedArray ? decode2(value, options) : value;\n        const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map((item) => decode2(item, options)) : value === null ? value : decode2(value, options);\n        accumulator[key] = newValue;\n      };\n    case \"bracket-separator\":\n      return (key, value, accumulator) => {\n        const isArray = /(\\[\\])$/.test(key);\n        key = key.replace(/\\[\\]$/, \"\");\n        if (!isArray) {\n          accumulator[key] = value ? decode2(value, options) : value;\n          return;\n        }\n        const arrayValue = value === null ? [] : value.split(options.arrayFormatSeparator).map((item) => decode2(item, options));\n        if (accumulator[key] === void 0) {\n          accumulator[key] = arrayValue;\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], arrayValue);\n      };\n    default:\n      return (key, value, accumulator) => {\n        if (accumulator[key] === void 0) {\n          accumulator[key] = value;\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n  }\n}\nfunction validateArrayFormatSeparator(value) {\n  if (typeof value !== \"string\" || value.length !== 1) {\n    throw new TypeError(\"arrayFormatSeparator must be single character string\");\n  }\n}\nfunction encode(value, options) {\n  if (options.encode) {\n    return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n  }\n  return value;\n}\nfunction decode2(value, options) {\n  if (options.decode) {\n    return decodeComponent(value);\n  }\n  return value;\n}\nfunction keysSorter(input) {\n  if (Array.isArray(input)) {\n    return input.sort();\n  }\n  if (typeof input === \"object\") {\n    return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map((key) => input[key]);\n  }\n  return input;\n}\nfunction removeHash(input) {\n  const hashStart = input.indexOf(\"#\");\n  if (hashStart !== -1) {\n    input = input.slice(0, hashStart);\n  }\n  return input;\n}\nfunction getHash(url) {\n  let hash = \"\";\n  const hashStart = url.indexOf(\"#\");\n  if (hashStart !== -1) {\n    hash = url.slice(hashStart);\n  }\n  return hash;\n}\nfunction extract(input) {\n  input = removeHash(input);\n  const queryStart = input.indexOf(\"?\");\n  if (queryStart === -1) {\n    return \"\";\n  }\n  return input.slice(queryStart + 1);\n}\nfunction parseValue(value, options) {\n  if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === \"string\" && value.trim() !== \"\")) {\n    value = Number(value);\n  } else if (options.parseBooleans && value !== null && (value.toLowerCase() === \"true\" || value.toLowerCase() === \"false\")) {\n    value = value.toLowerCase() === \"true\";\n  }\n  return value;\n}\nfunction parse(query, options) {\n  options = Object.assign({\n    decode: true,\n    sort: true,\n    arrayFormat: \"none\",\n    arrayFormatSeparator: \",\",\n    parseNumbers: false,\n    parseBooleans: false\n  }, options);\n  validateArrayFormatSeparator(options.arrayFormatSeparator);\n  const formatter = parserForArrayFormat(options);\n  const ret = /* @__PURE__ */ Object.create(null);\n  if (typeof query !== \"string\") {\n    return ret;\n  }\n  query = query.trim().replace(/^[?#&]/, \"\");\n  if (!query) {\n    return ret;\n  }\n  for (const param of query.split(\"&\")) {\n    if (param === \"\") {\n      continue;\n    }\n    let [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, \" \") : param, \"=\");\n    value = value === void 0 ? null : [\"comma\", \"separator\", \"bracket-separator\"].includes(options.arrayFormat) ? value : decode2(value, options);\n    formatter(decode2(key, options), value, ret);\n  }\n  for (const key of Object.keys(ret)) {\n    const value = ret[key];\n    if (typeof value === \"object\" && value !== null) {\n      for (const k of Object.keys(value)) {\n        value[k] = parseValue(value[k], options);\n      }\n    } else {\n      ret[key] = parseValue(value, options);\n    }\n  }\n  if (options.sort === false) {\n    return ret;\n  }\n  return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n    const value = ret[key];\n    if (Boolean(value) && typeof value === \"object\" && !Array.isArray(value)) {\n      result[key] = keysSorter(value);\n    } else {\n      result[key] = value;\n    }\n    return result;\n  }, /* @__PURE__ */ Object.create(null));\n}\nexports5.extract = extract;\nexports5.parse = parse;\nexports5.stringify = (object, options) => {\n  if (!object) {\n    return \"\";\n  }\n  options = Object.assign({\n    encode: true,\n    strict: true,\n    arrayFormat: \"none\",\n    arrayFormatSeparator: \",\"\n  }, options);\n  validateArrayFormatSeparator(options.arrayFormatSeparator);\n  const shouldFilter = (key) => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === \"\";\n  const formatter = encoderForArrayFormat(options);\n  const objectCopy = {};\n  for (const key of Object.keys(object)) {\n    if (!shouldFilter(key)) {\n      objectCopy[key] = object[key];\n    }\n  }\n  const keys = Object.keys(objectCopy);\n  if (options.sort !== false) {\n    keys.sort(options.sort);\n  }\n  return keys.map((key) => {\n    const value = object[key];\n    if (value === void 0) {\n      return \"\";\n    }\n    if (value === null) {\n      return encode(key, options);\n    }\n    if (Array.isArray(value)) {\n      if (value.length === 0 && options.arrayFormat === \"bracket-separator\") {\n        return encode(key, options) + \"[]\";\n      }\n      return value.reduce(formatter(key), []).join(\"&\");\n    }\n    return encode(key, options) + \"=\" + encode(value, options);\n  }).filter((x) => x.length > 0).join(\"&\");\n};\nexports5.parseUrl = (url, options) => {\n  options = Object.assign({\n    decode: true\n  }, options);\n  const [url_, hash] = splitOnFirst(url, \"#\");\n  return Object.assign(\n    {\n      url: url_.split(\"?\")[0] || \"\",\n      query: parse(extract(url), options)\n    },\n    options && options.parseFragmentIdentifier && hash ? { fragmentIdentifier: decode2(hash, options) } : {}\n  );\n};\nexports5.stringifyUrl = (object, options) => {\n  options = Object.assign({\n    encode: true,\n    strict: true,\n    [encodeFragmentIdentifier]: true\n  }, options);\n  const url = removeHash(object.url).split(\"?\")[0] || \"\";\n  const queryFromUrl = exports5.extract(object.url);\n  const parsedQueryFromUrl = exports5.parse(queryFromUrl, { sort: false });\n  const query = Object.assign(parsedQueryFromUrl, object.query);\n  let queryString = exports5.stringify(query, options);\n  if (queryString) {\n    queryString = `?${queryString}`;\n  }\n  let hash = getHash(object.url);\n  if (object.fragmentIdentifier) {\n    hash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n  }\n  return `${url}${queryString}${hash}`;\n};\nexports5.pick = (input, filter, options) => {\n  options = Object.assign({\n    parseFragmentIdentifier: true,\n    [encodeFragmentIdentifier]: false\n  }, options);\n  const { url, query, fragmentIdentifier } = exports5.parseUrl(input, options);\n  return exports5.stringifyUrl({\n    url,\n    query: filterObject(query, filter),\n    fragmentIdentifier\n  }, options);\n};\nexports5.exclude = (input, filter, options) => {\n  const exclusionFilter = Array.isArray(filter) ? (key) => !filter.includes(key) : (key, value) => !filter(key, value);\n  return exports5.pick(input, exclusionFilter, options);\n};\nvar __export0;\nvar __export1;\nvar __export2;\nvar __export3;\nvar __export4;\nvar __export5;\nvar __export6;\nif (Object.isExtensible(module5.exports) && Object.keys(module5.exports).length === 7) {\n  __export0 = module5.exports[\"extract\"];\n  __export1 = module5.exports[\"parse\"];\n  __export2 = module5.exports[\"stringify\"];\n  __export3 = module5.exports[\"parseUrl\"];\n  __export4 = module5.exports[\"stringifyUrl\"];\n  __export5 = module5.exports[\"pick\"];\n  __export6 = module5.exports[\"exclude\"];\n}\nvar query_string_default = module5.exports;\n\nexport {\n  __export1,\n  __export4\n};\n","// src/presets.ts\nvar presets = {\n  halo: {\n    title: \"Halo\",\n    color: \"white\",\n    props: {\n      type: \"plane\",\n      uAmplitude: 1,\n      uDensity: 1.3,\n      uSpeed: 0.4,\n      uStrength: 4,\n      uTime: 0,\n      uFrequency: 5.5,\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 3.6,\n      cPolarAngle: 90,\n      cameraZoom: 1,\n      color1: \"#ff5005\",\n      color2: \"#dbba95\",\n      color3: \"#d0bce1\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -1.4,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 10,\n      rotationZ: 50,\n      shader: \"defaults\",\n      animate: \"on\",\n      wireframe: false\n    }\n  },\n  pensive: {\n    title: \"Pensive\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.5,\n      cAzimuthAngle: 250,\n      cDistance: 1.5,\n      cPolarAngle: 140,\n      cameraZoom: 12.5,\n      color1: \"#809bd6\",\n      color2: \"#910aff\",\n      color3: \"#af38ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.5,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 140,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 7,\n      uDensity: 0.8,\n      uFrequency: 5.5,\n      uSpeed: 0.3,\n      uStrength: 0.4,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  mint: {\n    title: \"Mint\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 170,\n      cDistance: 4.4,\n      cPolarAngle: 70,\n      cameraZoom: 1,\n      color1: \"#94ffd1\",\n      color2: \"#6bf5ff\",\n      color3: \"#ffffff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0.9,\n      positionZ: -0.3,\n      reflection: 0.1,\n      rotationX: 45,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.2,\n      uFrequency: 0,\n      uSpeed: 0.2,\n      uStrength: 3.4,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  interstella: {\n    title: \"Interstella\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 0.8,\n      cAzimuthAngle: 270,\n      cDistance: 0.5,\n      cPolarAngle: 180,\n      cameraZoom: 15.1,\n      color1: \"#73bfc4\",\n      color2: \"#ff810a\",\n      color3: \"#8da0ce\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"env\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -0.1,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.4,\n      rotationX: 0,\n      rotationY: 130,\n      rotationZ: 70,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 3.2,\n      uDensity: 0.8,\n      uFrequency: 5.5,\n      uSpeed: 0.3,\n      uStrength: 0.3,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  nightyNight: {\n    title: \"Nighty night\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1,\n      cAzimuthAngle: 180,\n      cDistance: 2.8,\n      cPolarAngle: 80,\n      cameraZoom: 9.1,\n      color1: \"#606080\",\n      color2: \"#8d7dca\",\n      color3: \"#212121\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 50,\n      rotationY: 0,\n      rotationZ: -60,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.5,\n      uFrequency: 0,\n      uSpeed: 0.3,\n      uStrength: 1.5,\n      uTime: 8,\n      wireframe: false\n    }\n  },\n  violaOrientalis: {\n    title: \"Viola orientalis\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      brightness: 1.1,\n      cAzimuthAngle: 0,\n      cDistance: 7.1,\n      cPolarAngle: 140,\n      cameraZoom: 17.3,\n      color1: \"#ffffff\",\n      color2: \"#ffbb00\",\n      color3: \"#0700ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 1.4,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 1,\n      uTime: 0,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  universe: {\n    title: \"Universe\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      brightness: 1.1,\n      cAzimuthAngle: 180,\n      cDistance: 3.9,\n      cPolarAngle: 115,\n      cameraZoom: 1,\n      color1: \"#5606ff\",\n      color2: \"#fe8989\",\n      color3: \"#000000\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -0.5,\n      positionY: 0.1,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 235,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 2.4,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  sunset: {\n    title: \"Sunset\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      bgColor1: \"#000000\",\n      bgColor2: \"#000000\",\n      brightness: 1.5,\n      cAzimuthAngle: 60,\n      cDistance: 7.1,\n      cPolarAngle: 90,\n      cameraZoom: 15.3,\n      color1: \"#ff7a33\",\n      color2: \"#33a0ff\",\n      color3: \"#ffc53d\",\n      embedMode: \"off\",\n      envPreset: \"dawn\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: -0.15,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 1.4,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 0.4,\n      uTime: 0,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  mandarin: {\n    title: \"Mandarin\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      bgColor1: \"#000000\",\n      bgColor2: \"#000000\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 2.4,\n      cPolarAngle: 95,\n      cameraZoom: 1,\n      color1: \"#ff6a1a\",\n      color2: \"#c73c00\",\n      color3: \"#FD4912\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: -2.1,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 225,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.8,\n      uSpeed: 0.2,\n      uStrength: 3,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  cottonCandy: {\n    title: \"Cotton Candy\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 2.9,\n      cPolarAngle: 120,\n      cameraZoom: 1,\n      color1: \"#ebedff\",\n      color2: \"#f3f2f8\",\n      color3: \"#dbf8ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 1.8,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: -90,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1,\n      uSpeed: 0.3,\n      uStrength: 3,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  }\n};\nvar initialActivePreset = 0;\nvar presetsArray = Object.values(presets);\n\nexport {\n  presets,\n  initialActivePreset,\n  presetsArray\n};\n","import {\n  PostProcessing\n} from \"./chunk-5TNITGB6.mjs\";\nimport {\n  Controls\n} from \"./chunk-4MKFODLT.mjs\";\nimport {\n  Lights\n} from \"./chunk-YBH3ZCKF.mjs\";\nimport {\n  Mesh\n} from \"./chunk-ZHIRR2QJ.mjs\";\nimport {\n  __export1\n} from \"./chunk-AVODCFKL.mjs\";\nimport {\n  formatUrlString\n} from \"./chunk-G7COPUKV.mjs\";\nimport {\n  presets\n} from \"./chunk-VTSZNOAZ.mjs\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/ShaderGradient.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nfunction ShaderGradient(passedProps) {\n  const _a = __spreadValues(__spreadValues({}, presets.halo.props), passedProps), { control, urlString } = _a, rest = __objRest(_a, [\"control\", \"urlString\"]);\n  let props = rest;\n  if (control === \"query\")\n    props = __export1(formatUrlString(urlString), {\n      parseNumbers: true,\n      parseBooleans: true,\n      arrayFormat: \"index\"\n    });\n  const _b = props, { lightType, envPreset, brightness, grain, toggleAxis } = _b, others = __objRest(_b, [\"lightType\", \"envPreset\", \"brightness\", \"grain\", \"toggleAxis\"]);\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    /* @__PURE__ */ jsx(Mesh, __spreadValues({}, props)),\n    /* @__PURE__ */ jsx(\n      Lights,\n      {\n        lightType,\n        brightness,\n        envPreset\n      }\n    ),\n    grain !== \"off\" && /* @__PURE__ */ jsx(PostProcessing, {}),\n    /* @__PURE__ */ jsx(Controls, __spreadValues({}, props))\n  ] });\n}\n\nexport {\n  ShaderGradient\n};\n","import {\n  ShaderGradientCanvas\n} from \"./chunk-CWHPURPD.mjs\";\nimport \"./chunk-35NIH65G.mjs\";\nimport {\n  ShaderGradient\n} from \"./chunk-6GMBAIZ4.mjs\";\nimport \"./chunk-BKMGN7IO.mjs\";\nimport \"./chunk-WGOL3MLC.mjs\";\nimport \"./chunk-5TNITGB6.mjs\";\nimport \"./chunk-2S3VJM34.mjs\";\nimport \"./chunk-FZIV7POA.mjs\";\nimport \"./chunk-IRMTC4UN.mjs\";\nimport \"./chunk-YUIDVF63.mjs\";\nimport \"./chunk-4Z3JUAHA.mjs\";\nimport \"./chunk-USQFKVUW.mjs\";\nimport \"./chunk-XLXOMSVB.mjs\";\nimport \"./chunk-N6TUE7XZ.mjs\";\nimport \"./chunk-3U6A2N6D.mjs\";\nimport \"./chunk-O7SDERYP.mjs\";\nimport \"./chunk-KD5UHE3V.mjs\";\nimport \"./chunk-4NRCS6EB.mjs\";\nimport \"./chunk-X2NOPSAQ.mjs\";\nimport \"./chunk-4MKFODLT.mjs\";\nimport \"./chunk-F5B5J54Z.mjs\";\nimport \"./chunk-YBH3ZCKF.mjs\";\nimport \"./chunk-EQTKUIXJ.mjs\";\nimport \"./chunk-2S5ZDPTV.mjs\";\nimport \"./chunk-UIVFRJXT.mjs\";\nimport \"./chunk-ZHIRR2QJ.mjs\";\nimport \"./chunk-WMVG427C.mjs\";\nimport \"./chunk-WBM42ICI.mjs\";\nimport \"./chunk-OH6HADGN.mjs\";\nimport \"./chunk-AVODCFKL.mjs\";\nimport \"./chunk-DA2VURNJ.mjs\";\nimport \"./chunk-KO4ISVNC.mjs\";\nimport \"./chunk-G7COPUKV.mjs\";\nimport \"./chunk-BI5IV7LU.mjs\";\nimport \"./chunk-WS7WB67W.mjs\";\nimport \"./chunk-Z4XR7UL5.mjs\";\nimport \"./chunk-SX7QUDKQ.mjs\";\nimport \"./chunk-VTSZNOAZ.mjs\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/FramerShaderGradient.tsx\nimport { ControlType } from \"framer\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction FramerShaderGradient(_a) {\n  var _b = _a, {\n    position,\n    rotation,\n    cameraAngle,\n    noise\n  } = _b, rest = __objRest(_b, [\n    \"position\",\n    \"rotation\",\n    \"cameraAngle\",\n    \"noise\"\n  ]);\n  const { positionX, positionY, positionZ } = position;\n  const { rotationX, rotationY, rotationZ } = rotation;\n  const { cAzimuthAngle, cPolarAngle } = cameraAngle;\n  const { uDensity, uStrength } = noise;\n  return /* @__PURE__ */ jsx(\n    ShaderGradient,\n    __spreadValues({\n      positionX,\n      positionY,\n      positionZ,\n      rotationX,\n      rotationY,\n      rotationZ,\n      cAzimuthAngle,\n      cPolarAngle,\n      uDensity,\n      uStrength\n    }, rest)\n  );\n}\nFramerShaderGradient.propertyControls = {\n  control: {\n    type: ControlType.Enum,\n    options: [\"props\", \"query\"],\n    optionTitles: [\"Props\", \"Query\"],\n    displaySegmentedControl: true\n  },\n  activeTab: {\n    title: \"Settings Group\",\n    type: ControlType.Enum,\n    options: [\"Shape\", \"Colors\", \"Effects\", \"View\"],\n    hidden: (props) => props.control === \"query\"\n  },\n  // Shape\n  type: {\n    type: ControlType.Enum,\n    options: [\"plane\", \"sphere\", \"waterPlane\"],\n    optionTitles: [\"Plane\", \"Sphere\", \"Water\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  shader: {\n    type: ControlType.Enum,\n    options: [\"defaults\", \"positionMix\"],\n    optionTitles: [\"Type A\", \"Type B\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  animate: {\n    type: ControlType.Enum,\n    options: [\"on\", \"off\"],\n    optionTitles: [\"On\", \"Off\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\" && props.activeTab !== \"URL\"\n  },\n  uTime: {\n    title: \"Movements\",\n    type: ControlType.Number,\n    step: 0.1,\n    displayStepper: true,\n    hidden: (props) => props.animate === \"on\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  uSpeed: {\n    title: \"Speed\",\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0.1,\n    displayStepper: true,\n    defaultValue: 0.4,\n    hidden: (props) => props.animate === \"off\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  noise: {\n    type: ControlType.Object,\n    controls: {\n      uStrength: {\n        type: ControlType.Number,\n        title: \"Strength\",\n        step: 0.1,\n        min: 0.1,\n        displayStepper: true,\n        defaultValue: 4\n      },\n      uDensity: {\n        type: ControlType.Number,\n        title: \"Density\",\n        step: 0.1,\n        min: 0.1,\n        displayStepper: true,\n        defaultValue: 1.3\n      }\n      // uFrequency: {\n      //     type: ControlType.Number,\n      //     step: 0.1,\n      //     min: 0.1,\n      //     displayStepper: true,\n      //     hidden: (props) =>\n      //         props.type !== \"sphere\" ||\n      //         props.control === \"query\" ||\n      //         props.activeTab !== \"Shape\",\n      // },\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  uAmplitude: {\n    type: ControlType.Number,\n    title: \"Spiral\",\n    step: 0.1,\n    min: 0.1,\n    displayStepper: true,\n    defaultValue: 1,\n    hidden: (props) => props.type !== \"sphere\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  pixelDensity: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0,\n    max: 3,\n    displayStepper: true,\n    defaultValue: 1,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  // Effects\n  grain: {\n    type: ControlType.Enum,\n    options: [\"on\", \"off\"],\n    optionTitles: [\"On\", \"Off\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  lightType: {\n    type: ControlType.Enum,\n    options: [\"env\", \"3d\"],\n    optionTitles: [\"Env\", \"Light\"],\n    displaySegmentedControl: true,\n    defaultValue: \"3d\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  envPreset: {\n    type: ControlType.Enum,\n    options: [\"city\", \"dawn\", \"lobby\"],\n    optionTitles: [\"City\", \"Dawn\", \"Lobby\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.lightType === \"3d\" || props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  brightness: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0.1,\n    max: 3,\n    defaultValue: 1.2,\n    hidden: (props) => props.lightType === \"env\" || props.control === \"query\" || props.activeTab !== \"Effects\" || props.url\n  },\n  reflection: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0,\n    max: 1,\n    defaultValue: 0.1,\n    hidden: (props) => props.lightType === \"3d\" || props.control === \"query\" || props.activeTab !== \"Effects\" || props.url\n  },\n  // Colors\n  color1: {\n    type: ControlType.Color,\n    defaultValue: \"#ff5005\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  color2: {\n    type: ControlType.Color,\n    defaultValue: \"#dbba95\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  color3: {\n    type: ControlType.Color,\n    defaultValue: \"#d0bce1\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  // View\n  cDistance: {\n    title: \"Distance\",\n    type: ControlType.Number,\n    displayStepper: true,\n    min: 0,\n    max: 20,\n    defaultValue: 3.6,\n    hidden: (props) => props.type === \"sphere\" || props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  cameraZoom: {\n    type: ControlType.Number,\n    displayStepper: true,\n    step: 0.1,\n    min: 0.1,\n    max: 30,\n    defaultValue: 1,\n    hidden: (props) => props.type !== \"sphere\" || props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  cameraAngle: {\n    type: ControlType.Object,\n    controls: {\n      cAzimuthAngle: {\n        title: \"Azimuth\",\n        type: ControlType.Number,\n        displayStepper: true,\n        step: 10,\n        min: 0,\n        max: 360,\n        defaultValue: 180\n      },\n      cPolarAngle: {\n        title: \"Polar\",\n        type: ControlType.Number,\n        displayStepper: true,\n        step: 10,\n        min: 0,\n        max: 180,\n        defaultValue: 90\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  position: {\n    type: ControlType.Object,\n    controls: {\n      positionX: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: -1.4\n      },\n      positionY: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: 0\n      },\n      positionZ: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: 0\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  rotation: {\n    type: ControlType.Object,\n    controls: {\n      rotationX: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 0\n      },\n      rotationY: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 10\n      },\n      rotationZ: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 50\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  // urlString\n  urlString: {\n    type: ControlType.String,\n    placeholder: \"URL from shadergradient.co\",\n    defaultValue: \"https://www.shadergradient.co/customize?animate=on&axesHelper=off&bgColor1=%23000000&bgColor2=%23000000&brightness=1.2&cAzimuthAngle=180&cDistance=3.6&cPolarAngle=90&cameraZoom=1&color1=%23ff5005&color2=%23dbba95&color3=%23d0bce1&destination=onCanvas&embedMode=off&envPreset=city&format=gif&fov=45&frameRate=10&gizmoHelper=hide&grain=on&lightType=3d&pixelDensity=1&positionX=-1.4&positionY=0&positionZ=0&range=enabled&rangeEnd=40&rangeStart=0&reflection=0.1&rotationX=0&rotationY=10&rotationZ=50&shader=defaults&type=plane&uDensity=1.3&uFrequency=5.5&uSpeed=0.4&uStrength=4&uTime=0&wireframe=false\",\n    hidden: (props) => props.control === \"props\"\n  },\n  // Tools (🧰)\n  zoomOut: {\n    type: ControlType.Boolean,\n    title: \"View\",\n    enabledTitle: \"Wide\",\n    disabledTitle: \"-\",\n    hidden: (props) => props.control === \"query\"\n  },\n  toggleAxis: {\n    type: ControlType.Boolean,\n    title: \"Axis\",\n    enabledTitle: \"Guide\",\n    disabledTitle: \"-\",\n    hidden: (props) => props.control === \"query\"\n  },\n  pointerEvents: {\n    type: ControlType.Enum,\n    title: \"Touch Control\",\n    options: [\"none\", \"auto\"],\n    optionTitles: [\"Disable\", \"Enable\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\"\n  },\n  performantOnCanvas: {\n    type: ControlType.Boolean,\n    defaultValue: false\n  }\n};\nexport {\n  FramerShaderGradient,\n  ShaderGradientCanvas\n};\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls}from\"framer\";import*as m from\"https://ruucm.github.io/shadergradient/shadergradient@2.0.22/FramerShaderGradient.mjs\";/**\n * @framerIntrinsicHeight 700\n * @framerIntrinsicWidth 500\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ShaderGradient(props){return /*#__PURE__*/_jsx(m.ShaderGradientCanvas,{pointerEvents:props.pointerEvents,children:/*#__PURE__*/_jsx(m.FramerShaderGradient,{...props})});}addPropertyControls(ShaderGradient,m.FramerShaderGradient.propertyControls||{});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShaderGradient\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"700\",\"framerIntrinsicWidth\":\"500\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShaderGradient_3.map","// Generated by Framer (4b118ea)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import ShaderGradient from\"https://framerusercontent.com/modules/eHvUILZR0c2vMx0hHjI1/G0OS3ugjmvFGXj8OojiG/ShaderGradient_3.js\";const ShaderGradientFonts=getFonts(ShaderGradient);const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const cycleOrder=[\"fAE7HJuC7\",\"i9ox1Smx2\",\"WPx_Tk636\",\"vPzZX5_DQ\"];const serializationHash=\"framer-gGns9\";const variantClassNames={fAE7HJuC7:\"framer-v-1r4wu4i\",i9ox1Smx2:\"framer-v-p3n2nd\",vPzZX5_DQ:\"framer-v-1g292ug\",WPx_Tk636:\"framer-v-1uj0401\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition1,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Extra:\"WPx_Tk636\",Large:\"fAE7HJuC7\",Minimal:\"vPzZX5_DQ\",Short:\"i9ox1Smx2\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"fAE7HJuC7\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"fAE7HJuC7\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(MotionDivWithFXWithOptimizedAppearEffect,{...restProps,...gestureHandlers,__framer__presenceAnimate:animation,__framer__presenceInitial:animation1,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-1r4wu4i\",className,classNames),\"data-framer-appear-id\":\"1r4wu4i\",\"data-framer-name\":\"Large\",layoutDependency:layoutDependency,layoutId:\"fAE7HJuC7\",optimized:true,ref:ref??ref1,style:{...style},...addPropertyOverrides({i9ox1Smx2:{\"data-framer-name\":\"Short\"},vPzZX5_DQ:{\"data-framer-name\":\"Minimal\"},WPx_Tk636:{\"data-framer-name\":\"Extra\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-skxt4o-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"idNEy1hJ5-container\",nodeId:\"idNEy1hJ5\",rendersWithMotion:true,scopeId:\"eHx70Ztok\",style:{rotate:90},children:/*#__PURE__*/_jsx(ShaderGradient,{activeTab:\"View\",animate:\"on\",brightness:1.5,cameraAngle:{cAzimuthAngle:60,cPolarAngle:90},cameraZoom:15.3,cDistance:6.1,color1:\"rgb(70, 153, 119)\",color2:\"rgb(79, 131, 184)\",color3:\"rgb(255, 197, 61)\",control:\"props\",envPreset:\"dawn\",grain:\"off\",height:\"100%\",id:\"idNEy1hJ5\",layoutId:\"idNEy1hJ5\",lightType:\"3d\",noise:{uDensity:1.1,uStrength:.4},performantOnCanvas:false,pixelDensity:1,pointerEvents:\"none\",position:{positionX:.1,positionY:-.15,positionZ:-.3},reflection:.1,rotation:{rotationX:0,rotationY:-24,rotationZ:0},shader:\"defaults\",style:{height:\"100%\",width:\"100%\"},toggleAxis:false,type:\"plane\",uAmplitude:1.4,urlString:\"https://www.shadergradient.co/customize?animate=on&axesHelper=off&bgColor1=%23000000&bgColor2=%23000000&brightness=1.2&cAzimuthAngle=180&cDistance=3.6&cPolarAngle=90&cameraZoom=1&color1=%23ff5005&color2=%23dbba95&color3=%23d0bce1&destination=onCanvas&embedMode=off&envPreset=city&format=gif&fov=45&frameRate=10&gizmoHelper=hide&grain=on&lightType=3d&pixelDensity=1&positionX=-1.4&positionY=0&positionZ=0&range=enabled&rangeEnd=40&rangeStart=0&reflection=0.1&rotationX=0&rotationY=10&rotationZ=50&shader=defaults&type=plane&uDensity=1.3&uFrequency=5.5&uSpeed=0.4&uStrength=4&uTime=0&wireframe=false\",uSpeed:.15,uTime:0,width:\"100%\",zoomOut:false,...addPropertyOverrides({vPzZX5_DQ:{activeTab:\"Shape\",cameraAngle:{cAzimuthAngle:0,cPolarAngle:90},pixelDensity:3,rotation:{rotationX:0,rotationY:6,rotationZ:0},type:\"waterPlane\",uSpeed:.75}},baseVariant,gestureVariant)})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-gGns9.framer-1ptuquu, .framer-gGns9 .framer-1ptuquu { display: block; }\",\".framer-gGns9.framer-1r4wu4i { height: 320px; overflow: hidden; position: relative; width: 1900px; }\",\".framer-gGns9 .framer-skxt4o-container { bottom: -800px; flex: none; height: 1900px; left: 0px; position: absolute; right: 0px; }\",\".framer-gGns9.framer-v-p3n2nd.framer-1r4wu4i { height: 180px; }\",\".framer-gGns9.framer-v-p3n2nd .framer-skxt4o-container { bottom: -866px; }\",\".framer-gGns9.framer-v-1uj0401.framer-1r4wu4i { height: 180px; width: 2560px; }\",\".framer-gGns9.framer-v-1uj0401 .framer-skxt4o-container { bottom: unset; height: 2561px; top: calc(77.22222222222224% - 2561px / 2); }\",\".framer-gGns9.framer-v-1g292ug.framer-1r4wu4i { height: 90px; width: 90px; }\",\".framer-gGns9.framer-v-1g292ug .framer-skxt4o-container { bottom: -1px; height: 92px; left: -2px; right: -2px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 320\n * @framerIntrinsicWidth 1900\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"i9ox1Smx2\":{\"layout\":[\"fixed\",\"fixed\"]},\"WPx_Tk636\":{\"layout\":[\"fixed\",\"fixed\"]},\"vPzZX5_DQ\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramereHx70Ztok=withCSS(Component,css,\"framer-gGns9\");export default FramereHx70Ztok;FramereHx70Ztok.displayName=\"Flow animation\";FramereHx70Ztok.defaultProps={height:320,width:1900};addPropertyControls(FramereHx70Ztok,{variant:{options:[\"fAE7HJuC7\",\"i9ox1Smx2\",\"WPx_Tk636\",\"vPzZX5_DQ\"],optionTitles:[\"Large\",\"Short\",\"Extra\",\"Minimal\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramereHx70Ztok,[{explicitInter:true,fonts:[]},...ShaderGradientFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramereHx70Ztok\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"320\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"i9ox1Smx2\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"WPx_Tk636\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"vPzZX5_DQ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"1900\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isString=t=>\"string\"===typeof t;const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let r=0;for(;r<o-2;r++)if(s<e[r+1])break;let f=clamp(0,1,progress(e[r],e[r+1],s));const c=getEasingForSegment(n,r);f=c(f);return mix(t[r],t[r+1],f)}}const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,defaults as i,isEasingGenerator as e,isEasingList as s,interpolate as a}from\"@motionone/utils\";import{cubicBezier as n,steps as r}from\"@motionone/easing\";const o={ease:n(.25,.1,.25,1),\"ease-in\":n(.42,0,1,1),\"ease-in-out\":n(.42,0,.58,1),\"ease-out\":n(0,0,.58,1)};const h=/\\((.*?)\\)/;function getEasingFunction(i){if(\"function\"===typeof i)return i;if(Array.isArray(i))return n(...i);if(o[i])return o[i];if(i.startsWith(\"steps\")){const t=h.exec(i);if(t){const i=t[1].split(\",\");return r(parseFloat(i[0]),i[1].trim())}}return t}class Animation{constructor(n,r=[0,1],{easing:o,duration:h=i.duration,delay:u=i.delay,endDelay:l=i.endDelay,repeat:m=i.repeat,offset:c,direction:p=\"normal\"}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=t;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));o=o||i.easing;if(e(o)){const t=o.createAnimation(r,(()=>\"0\"),true);o=t.easing;void 0!==t.keyframes&&(r=t.keyframes);void 0!==t.duration&&(h=t.duration)}this.repeat=m;this.easing=s(o)?t:getEasingFunction(o);this.updateDuration(h);const d=a(r,c,s(o)?o.map(getEasingFunction):t);this.tick=t=>{var i;u=u;let e=0;e=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate;this.t=e;e/=1e3;e=Math.max(e-u,0);\"finished\"===this.playState&&void 0===this.pauseTime&&(e=this.totalDuration);const s=e/this.duration;let a=Math.floor(s);let r=s%1;!r&&s>=1&&(r=1);1===r&&a--;const o=a%2;(\"reverse\"===p||\"alternate\"===p&&o||\"alternate-reverse\"===p&&!o)&&(r=1-r);const h=e>=this.totalDuration?1:Math.min(r,1);const m=d(this.easing(h));n(m);const c=void 0===this.pauseTime&&(\"finished\"===this.playState||e>=this.totalDuration+l);if(c){this.playState=\"finished\";null===(i=this.resolve)||void 0===i?void 0:i.call(this,m)}else\"idle\"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))};this.play()}play(){const t=performance.now();this.playState=\"running\";void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId);null===(t=this.reject)||void 0===t?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n\n//# sourceMappingURL=index.es.js.map","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(\"function\"!==typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},\"function\"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(a){if(r)throw new TypeError(\"Generator is already executing.\");while(i)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;(n=0,o)&&(a=[2&a[0],o.value]);switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}o[2]&&i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=\"function\"===typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"===typeof e.length)return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=\"function\"===typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((void 0===t||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))})}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=\"function\"===typeof __values?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var o in r)\"default\"!==o&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"===typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"===typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(null===t||\"object\"!==typeof t&&\"function\"!==typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"===typeof e?t===e:e.has(t)}export{__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__read,__rest,__spread,__spreadArray,__spreadArrays,__values};\n\n//# sourceMappingURL=tslib.es6.js.map","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","import{velocityPerSecond as e,time as t}from\"@motionone/utils\";const s=5;function calcGeneratorVelocity(t,n,r){const a=Math.max(n-s,0);return e(r-t(a),n-a)}const n={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=n.stiffness,t=n.damping,s=n.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=n.stiffness,damping:s=n.damping,mass:r=n.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i=2,restDistance:h=.5}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/r)/1e3;const l=calcDampingRatio(e,s,r);let g;if(l<1){const e=f*Math.sqrt(1-l*l);g=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else g=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=g(e);const t=0===e?c:calcGeneratorVelocity(g,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>void 0!==i&&e<i||void 0!==h&&e>h;const nearestBoundary=e=>void 0===i?h:void 0===h||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=void 0===c?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&void 0===p){t=true;applyFriction(e);checkCatchBoundary(e)}if(void 0!==p&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const r=10;const a=1e4;function pregenerateKeyframes(e){let t;let s=r;let n=e(0);const o=[n.current];while(!n.done&&s<a){n=e(s);o.push(n.done?n.target:n.current);void 0===t&&n.hasReachedTarget&&(t=s);s+=r}const c=s-r;1===o.length&&o.push(n.current);return{keyframes:o,duration:c/1e3,overshootDuration:(null!==t&&void 0!==t?t:c)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n\n//# sourceMappingURL=index.es.js.map","import{MotionValue as e}from\"@motionone/types\";import{noopReturn as t,addUniqueItem as n,isCubicBezier as o,defaults as i,isEasingGenerator as s,isNumber as r,time as a,isEasingList as c,noop as l,removeItem as f,mix as u,getEasingForSegment as d,isString as g,defaultOffset as m,fillOffset as h,progress as p,velocityPerSecond as v,interpolate as y}from\"@motionone/utils\";import{Animation as w,getEasingFunction as E}from\"@motionone/animation\";import{__rest as b}from\"tslib\";import{invariant as S}from\"hey-listen\";import{pregenerateKeyframes as A,calcGeneratorVelocity as O,spring as x,glide as V}from\"@motionone/generators\";const z=new WeakMap;function getAnimationData(e){z.has(e)||z.set(e,{transforms:[],values:new Map});return z.get(e)}function getMotionValue(t,n){t.has(n)||t.set(n,new e);return t.get(n)}const W=[\"\",\"X\",\"Y\",\"Z\"];const L=[\"translate\",\"scale\",\"rotate\",\"skew\"];const T={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const D={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const M={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:D,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:t},skew:D};const k=new Map;const asTransformCssVar=e=>`--motion-${e}`;const B=[\"x\",\"y\",\"z\"];L.forEach((e=>{W.forEach((t=>{B.push(e+t);k.set(asTransformCssVar(e+t),M[e])}))}));const compareTransformOrder=(e,t)=>B.indexOf(e)-B.indexOf(t);const j=new Set(B);const isTransform=e=>j.has(e);const addTransformToElement=(e,t)=>{T[t]&&(t=T[t]);const{transforms:o}=getAnimationData(e);n(o,t);e.style.transform=buildTransformTemplate(o)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const P=new Set;function registerCssVariable(e){if(!P.has(e)){P.add(e);try{const{syntax:t,initialValue:n}=k.has(e)?k.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const convertEasing=e=>o(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;const testAnimation=e=>document.createElement(\"div\").animate(e,{duration:.001});const C={cssRegisterProperty:()=>\"undefined\"!==typeof CSS&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]}).finished)};const $={};const R={};for(const e in C)R[e]=()=>{void 0===$[e]&&($[e]=C[e]());return $[e]};function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)null===e[n]&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){T[e]&&(e=T[e]);return isTransform(e)?asTransformCssVar(e):e}const H={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&0!==n){const e=k.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&\"finished\"!==e.playState)try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={}){const f=getDevToolsRecord();const u=false!==o.record&&f;let d;let{duration:g=i.duration,delay:m=i.delay,endDelay:h=i.endDelay,repeat:p=i.repeat,easing:v=i.easing,direction:y,offset:E,allowWebkitAcceleration:b=false}=o;const S=getAnimationData(e);let A=R.waapi();const O=isTransform(t);O&&addTransformToElement(e,t);const x=getStyleName(t);const V=getMotionValue(S.values,x);const z=k.get(x);stopAnimation(V.animation,!(s(v)&&V.generator)&&false!==o.record);return()=>{const readInitialValue=()=>{var t,n;return null!==(n=null!==(t=H.get(e,x))&&void 0!==t?t:null===z||void 0===z?void 0:z.initialValue)&&void 0!==n?n:0};let i=hydrateKeyframes(keyframesList(n),readInitialValue);if(s(v)){const e=v.createAnimation(i,readInitialValue,O,x,V);v=e.easing;void 0!==e.keyframes&&(i=e.keyframes);void 0!==e.duration&&(g=e.duration)}isCssVar(x)&&(R.cssRegisterProperty()?registerCssVariable(x):A=false);if(A){z&&(i=i.map((e=>r(e)?z.toDefaultUnit(e):e)));1!==i.length||R.partialKeyframes()&&!u||i.unshift(readInitialValue());const t={delay:a.ms(m),duration:a.ms(g),endDelay:a.ms(h),easing:c(v)?void 0:convertEasing(v),direction:y,iterations:p+1,fill:\"both\"};d=e.animate({[x]:i,offset:E,easing:c(v)?v.map(convertEasing):void 0},t);d.finished||(d.finished=new Promise(((e,t)=>{d.onfinish=e;d.oncancel=t})));const n=i[i.length-1];d.finished.then((()=>{H.set(e,x,n);d.cancel()})).catch(l);b||(d.playbackRate=1.000001)}else if(O){i=i.map((e=>\"string\"===typeof e?parseFloat(e):e));1===i.length&&i.unshift(parseFloat(readInitialValue()));const render=t=>{z&&(t=z.toDefaultUnit(t));H.set(e,x,t)};d=new w(render,i,Object.assign(Object.assign({},o),{duration:g,easing:v}))}else{const t=i[i.length-1];H.set(e,x,z&&r(t)?z.toDefaultUnit(t):t)}u&&f(e,t,i,{duration:g,delay:m,easing:v,repeat:p,offset:E},\"motion-one\");V.setAnimation(d);return d}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(\"string\"===typeof e)if(t){null!==(n=t[e])&&void 0!==n?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=i.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},I);const getActiveAnimation=e=>e.animations[0];const I={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return a.s((null===n||void 0===n?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return null===n||void 0===n?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(l));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return\"undefined\"===typeof(null===n||void 0===n?void 0:n[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=a.ms(n);case\"currentTime\":case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(e=.1,{start:t=0,from:n=0,easing:o}={}){return(i,s)=>{const a=r(n)?n:getFromIndex(n,s);const c=Math.abs(a-i);let l=e*c;if(o){const t=s*e;const n=E(o);l=n(l/t)*t}return t+l}}function getFromIndex(e,t){if(\"first\"===e)return 0;{const n=t-1;return\"last\"===e?n:n/2}}function resolveOption(e,t,n){return\"function\"===typeof e?e(t,n):e}function animate(e,t,n={}){e=resolveElements(e);const o=e.length;const i=[];for(let s=0;s<o;s++){const r=e[s];for(const e in t){const a=getOptions(n,e);a.delay=resolveOption(a.delay,s,o);const c=animateStyle(r,e,t[e],a);i.push(c)}}return withControls(i,n,n.duration)}function calcNextTime(e,t,n,o){var i;return r(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):\"<\"===t?n:null!==(i=o.get(t))&&void 0!==i?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){f(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:u(i,s,o[r]),easing:d(n,r)})}function compareByTime(e,t){return e.at===t.at?null===e.value?1:-1:e.at-t.at}function timeline(e,t={}){var n;const o=createAnimationsFromTimeline(e,t);const i=o.map((e=>animateStyle(...e))).filter(Boolean);return withControls(i,t,null===(n=o[0])||void 0===n?void 0:n[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:n={}}=t,o=b(t,[\"defaultOptions\"]);const r=[];const a=new Map;const c={};const l=new Map;let f=0;let u=0;let d=0;for(let t=0;t<e.length;t++){const o=e[t];if(g(o)){l.set(o,u);continue}if(!Array.isArray(o)){l.set(o.name,calcNextTime(u,o.at,f,l));continue}const[r,p,v={}]=o;void 0!==v.at&&(u=calcNextTime(u,v.at,f,l));let y=0;const w=resolveElements(r,c);const E=w.length;for(let e=0;e<E;e++){const t=w[e];const o=getElementSequence(t,a);for(const t in p){const r=getValueSequence(t,o);let a=keyframesList(p[t]);const c=getOptions(v,t);let{duration:l=n.duration||i.duration,easing:f=n.easing||i.easing}=c;if(s(f)){const e=isTransform(t);S(2===a.length||!e,\"spring must be provided 2 keyframes within timeline\");const n=f.createAnimation(a,(()=>\"0\"),e);f=n.easing;void 0!==n.keyframes&&(a=n.keyframes);void 0!==n.duration&&(l=n.duration)}const g=resolveOption(v.delay,e,E)||0;const w=u+g;const b=w+l;let{offset:A=m(a.length)}=c;1===A.length&&0===A[0]&&(A[1]=1);const O=length-a.length;O>0&&h(A,O);1===a.length&&a.unshift(null);addKeyframes(r,a,f,A,w,b);y=Math.max(g+l,y);d=Math.max(b,d)}}f=u;u+=y}a.forEach(((e,t)=>{for(const s in e){const a=e[s];a.sort(compareByTime);const c=[];const l=[];const f=[];for(let e=0;e<a.length;e++){const{at:t,value:n,easing:o}=a[e];c.push(n);l.push(p(0,d,t));f.push(o||i.easing)}if(0!==l[0]){l.unshift(0);c.unshift(c[0]);f.unshift(\"linear\")}if(1!==l[l.length-1]){l.push(1);c.push(null)}r.push([t,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:d,easing:f,offset:l}),o)])}}));return r}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s,restSpeed:r?.05:2,restDistance:r?.01:.5},n)));return o.get(a)};const getKeyframes=e=>{t.has(e)||t.set(e,A(e));return t.get(e)};return{createAnimation:(e,t,n,o,i)=>{var s,r;let a;const c=e.length;let l=n&&c<=2&&e.every(isNumberOrNull);if(l){const n=e[c-1];const l=1===c?null:e[0];let f=0;let u=0;const d=null===i||void 0===i?void 0:i.generator;if(d){const{animation:t,generatorStartTime:n}=i;const o=(null===t||void 0===t?void 0:t.startTime)||n||0;const r=(null===t||void 0===t?void 0:t.currentTime)||performance.now()-o;const a=d(r).current;u=null!==(s=l)&&void 0!==s?s:a;(1===c||2===c&&null===e[0])&&(f=O((e=>d(e).current),r,a))}else u=null!==(r=l)&&void 0!==r?r:parseFloat(t());const g=getGenerator(u,n,f,null===o||void 0===o?void 0:o.includes(\"scale\"));const m=getKeyframes(g);a=Object.assign(Object.assign({},m),{easing:\"linear\"});if(i){i.generator=g;i.generatorStartTime=performance.now()}}else{const e=getKeyframes(getGenerator(0,100));a={easing:\"ease\",duration:e.overshootDuration}}return a}}}}const isNumberOrNull=e=>\"string\"!==typeof e;const N=createGeneratorEasing(x);const F=createGeneratorEasing(V);const U={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:i=\"any\"}={}){if(\"undefined\"===typeof IntersectionObserver)return()=>{};const s=resolveElements(e);const r=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=r.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);\"function\"===typeof n?r.set(e.target,n):a.unobserve(e.target)}else if(n){n(e);r.delete(e.target)}}))};const a=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:\"number\"===typeof i?i:U[i]});s.forEach((e=>a.observe(e)));return()=>a.disconnect()}const q=new WeakMap;let K;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;null===(o=q.get(e))||void 0===o?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){\"undefined\"!==typeof ResizeObserver&&(K=new ResizeObserver(notifyAll))}function resizeElement(e,t){K||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=q.get(e);if(!n){n=new Set;q.set(e,n)}n.add(t);null===K||void 0===K?void 0:K.observe(e)}));return()=>{n.forEach((e=>{const n=q.get(e);null===n||void 0===n?void 0:n.delete(t);(null===n||void 0===n?void 0:n.size)||(null===K||void 0===K?void 0:K.unobserve(e))}))}}const G=new Set;let _;function createWindowResizeHandler(){_=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};G.forEach((e=>e(t)))};window.addEventListener(\"resize\",_)}function resizeWindow(e){G.add(e);_||createWindowResizeHandler();return()=>{G.delete(e);!G.size&&_&&(_=void 0)}}function resize(e,t){return\"function\"===typeof e?resizeWindow(e):resizeElement(e,t)}const Z=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const X={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,o){const i=n[t];const{length:s,position:r}=X[t];const a=i.current;const c=n.time;i.current=e[\"scroll\"+r];i.scrollLength=e[\"scroll\"+s]-e[\"client\"+s];i.offset.length=0;i.offset[0]=0;i.offset[1]=i.scrollLength;i.progress=p(0,i.scrollLength,i.current);const l=o-c;i.velocity=l>Z?0:v(i.current-a,l)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&\"svg\"!==o.tagName)o=o.parentNode}return n}const Y={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const J={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;void 0!==J[e]&&(e=J[e]);if(g(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}r(e)&&(o=t*e);return n+o}const Q=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:Q;let s=0;let a=0;if(r(e))i=[e,e];else if(g(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,J[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);a=resolveEdge(i[1],t);return s-a}const ee={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=Y.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=\"y\"===s?\"height\":\"width\";const a=i!==e?calcInset(i,e):ee;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=y(m(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const i=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:\"function\"===typeof t?()=>t(n):scrubAnimation(t,n[i])}}function scrubAnimation(e,n){e.pause();e.forEachNative(((e,{easing:n})=>{var o,i;if(e.updateDuration){n||(e.easing=t);e.updateDuration(1)}else{const t={duration:1e3};n||(t.easing=\"linear\");null===(i=null===(o=e.effect)||void 0===o?void 0:o.updateTiming)||void 0===i?void 0:i.call(o,t)}}));return()=>{e.currentTime=n.progress}}const te=new WeakMap;const ne=new WeakMap;const oe=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=b(t,[\"container\"]);let i=oe.get(n);if(!i){i=new Set;oe.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!te.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};te.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&ne.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=te.get(n);const c=requestAnimationFrame(a);return()=>{var t;\"function\"!==typeof e&&e.stop();cancelAnimationFrame(c);const o=oe.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=te.get(n);te.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);null===(t=ne.get(n))||void 0===t?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return\"object\"===typeof e}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let ie;function processScheduledAnimations(){if(!ie)return;const e=ie.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);ie=void 0}function scheduleAnimation(e){if(ie)n(ie,e);else{ie=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){ie&&f(ie,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const se={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=b(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||\"mouse\"===o.pointerType){n();dispatchPointerEvent(e,t,o)}};const re={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const ae={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const ce={inView:se,hover:re,press:ae};const le=[\"initial\",\"animate\",...Object.keys(ce),\"exit\"];const fe=new WeakMap;function createMotionState(e={},t){let n;let o=t?t.getDepth()+1:0;const i={initial:true,animate:true};const s={};const r={};for(const n of le)r[n]=\"string\"===typeof e[n]?e[n]:null===t||void 0===t?void 0:t.getContext()[n];const a=false===e.initial?\"animate\":\"initial\";let c=resolveVariant(e[a]||r[a],e.variants)||{},f=b(c,[\"transition\"]);const u=Object.assign({},f);function*animateUpdates(){var t,o;const s=f;f={};const r={};for(const n of le){if(!i[n])continue;const s=resolveVariant(e[n]);if(s)for(const n in s)if(\"transition\"!==n){f[n]=s[n];r[n]=getOptions(null!==(o=null!==(t=s.transition)&&void 0!==t?t:e.transition)&&void 0!==o?o:{},n)}}const a=new Set([...Object.keys(f),...Object.keys(s)]);const c=[];a.forEach((e=>{var t;void 0===f[e]&&(f[e]=u[e]);if(hasChanged(s[e],f[e])){null!==(t=u[e])&&void 0!==t?t:u[e]=H.get(n,e);c.push(animateStyle(n,e,f[e],r[e]))}}));yield;const d=c.map((e=>e())).filter(Boolean);if(!d.length)return;const g=f;n.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(d.map((e=>e.finished))).then((()=>{n.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(l)}const setGesture=(e,t)=>()=>{i[e]=t;scheduleAnimation(d)};const updateGestureSubscriptions=()=>{for(const t in ce){const o=ce[t].isActive(e);const i=s[t];if(o&&!i)s[t]=ce[t].subscribe(n,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!o&&i){i();delete s[t]}}};const d={update:t=>{if(n){e=t;updateGestureSubscriptions();scheduleAnimation(d)}},setActive:(e,t)=>{if(n){i[e]=t;scheduleAnimation(d)}},animateUpdates:animateUpdates,getDepth:()=>o,getTarget:()=>f,getOptions:()=>e,getContext:()=>r,mount:e=>{S(Boolean(e),\"Animation state must be mounted with valid Element\");n=e;fe.set(n,d);updateGestureSubscriptions();return()=>{fe.delete(n);unscheduleAnimation(d);for(const e in s)s[e]()}},isMounted:()=>Boolean(n)};return d}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){T[o]&&(o=T[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const a=k.get(o);a&&(s=r(i)?a.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{Y as ScrollOffset,animate,animateStyle,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,F as glide,inView$1 as inView,fe as mountedStates,resize,scroll,N as spring,stagger,H as style,timeline,withControls};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useEffect,useState,useRef,useMemo,useCallback,cloneElement,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useReducedMotion,LayoutGroup,useInView,useMotionValue,useTransform,motion,frame}from\"framer-motion\";import{resize}from\"@motionone/dom\";const MAX_DUPLICATED_ITEMS=100;const directionTransformers={left:offset=>`translateX(-${offset}px)`,right:offset=>`translateX(${offset}px)`,top:offset=>`translateY(-${offset}px)`,bottom:offset=>`translateY(${offset}px)`};/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Ticker(props){/* Props */let{slots=[],gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */const currentTarget=RenderTarget.current();const isCanvas=currentTarget===RenderTarget.canvas||currentTarget===RenderTarget.export;// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const numChildren=Children.count(filteredSlots);const hasChildren=numChildren>0;if(direction===true){direction=\"left\";}const isHorizontal=direction===\"left\"||direction===\"right\";const offset=useMotionValue(0);const transformer=directionTransformers[direction];const transform=useTransform(offset,transformer);/* Refs and State */const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[{current:null},{current:null}];},[]);const[size,setSize]=useState({parent:null,children:null});/* Arrays */let clonedChildren=null;let dupedChildren=[];/* Duplicate value */let duplicateBy=0;let opacity=0;if(isCanvas){duplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;duplicateBy=Math.min(duplicateBy,MAX_DUPLICATED_ITEMS);opacity=1;}/* Measure parent and child */const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=childrenRef[0].current?isHorizontal?childrenRef[0].current.offsetLeft:childrenRef[0].current.offsetTop:0;const end=childrenRef[1].current?isHorizontal?childrenRef[1].current.offsetLeft+childrenRef[1].current.offsetWidth:childrenRef[1].current.offsetTop+childrenRef[1].current.offsetHeight:0;const childrenLength=end-start+gap;startTransition(()=>setSize({parent:parentLength,children:childrenLength}));}},[]);const childrenStyles=isCanvas?{contentVisibility:\"auto\"}:{};/* Add refs to first and last child */if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */let initialResize=useRef(true);useEffect(()=>{frame.read(measure);return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){frame.read(measure);}initialResize.current=false;});},[]);}clonedChildren=Children.map(filteredSlots,(child,index)=>{let ref;if(index===0){ref=childrenRef[0];}if(index===filteredSlots.length-1){ref=childrenRef[1];}const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(\"li\",{ref:ref,style:size,children:/*#__PURE__*/cloneElement(child,{style:{...child.props?.style,...size,flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined},child.props?.children)})});});}const isInView=isCanvas?true:useInView(parentRef);if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",willChange:!isInView?undefined:\"transform\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(\"li\",{style:size,\"aria-hidden\":true,children:/*#__PURE__*/cloneElement(child,{key:i+\" \"+childIndex,style:{...child.props?.style,width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-dupe-\"+i:undefined},child.props?.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);}));}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isReducedMotion=useReducedMotion();const listRef=useRef(null);const animationRef=useRef(null);/**\n     * Setup animations\n     */if(!isCanvas){useEffect(()=>{if(isReducedMotion||!animateToValue||!speed){return;}animationRef.current=listRef.current.animate({transform:[transformer(0),transformer(animateToValue)]},{duration:Math.abs(animateToValue)/speed*1e3,iterations:Infinity,easing:\"linear\"});return()=>animationRef.current.cancel();},[hoverFactor,animateToValue,speed]);const playOrPause=useCallback(()=>{if(!animationRef.current)return;const hidden=document.hidden;if(isInView&&!hidden&&animationRef.current.playState===\"paused\"){animationRef.current.play();}else if((!isInView||hidden)&&animationRef.current.playState===\"running\"){animationRef.current.pause();}},[isInView]);useEffect(()=>{playOrPause();},[isInView]);useEffect(()=>{document.addEventListener(\"visibilitychange\",playOrPause);return()=>{document.removeEventListener(\"visibilitychange\",playOrPause);};},[playOrPause]);}/* Fades */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/_jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/_jsxs(motion.ul,{ref:listRef,style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&isValidNumber(animateToValue)?-animateToValue:undefined,left:direction===\"right\"&&isValidNumber(animateToValue)?-animateToValue:undefined,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",...style,willChange:isCanvas||!isInView?\"auto\":\"transform\",transform:transformer(0)},onMouseEnter:()=>{isHover.current=true;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=hoverFactor;}},onMouseLeave:()=>{isHover.current=false;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=1;}},children:[clonedChildren,dupedChildren]})});}/* Default Properties */Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:1,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const isValidNumber=value=>typeof value===\"number\"&&!isNaN(value);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map","// Generated by Framer (bd0055f)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-SemiBold\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-SemiBoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/vxBnBhH8768IFAXAb4Qf6wQHKs.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zSsEuoJdh8mcFVk976C05ZfQr8.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/b8ezwLrN7h2AUoPEENcsTMVJ0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/mvNEIBLyHbscgHtwfsByjXUz3XY.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/6FI2EneKzM3qBy5foOZXey7coCA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/qrVgiXNd6RuQjETYQiVQ9nqCk.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/NHHeAKJVP0ZWHk5YZnQQChIsBM.woff2\",weight:\"600\"}]}];export const css=['.framer-yu9LX .framer-styles-preset-1ipmbpd:not(.rich-text-wrapper), .framer-yu9LX .framer-styles-preset-1ipmbpd.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-yu9LX .framer-styles-preset-1ipmbpd:not(.rich-text-wrapper), .framer-yu9LX .framer-styles-preset-1ipmbpd.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 22px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-yu9LX .framer-styles-preset-1ipmbpd:not(.rich-text-wrapper), .framer-yu9LX .framer-styles-preset-1ipmbpd.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 22px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-yu9LX\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ksvR4VsLksjpSwnC2fPgHRNMw.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-g116P .framer-styles-preset-8hu1lf:not(.rich-text-wrapper), .framer-g116P .framer-styles-preset-8hu1lf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-g116P .framer-styles-preset-8hu1lf:not(.rich-text-wrapper), .framer-g116P .framer-styles-preset-8hu1lf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-g116P .framer-styles-preset-8hu1lf:not(.rich-text-wrapper), .framer-g116P .framer-styles-preset-8hu1lf.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-g116P\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-SemiBold\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-SemiBoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/vxBnBhH8768IFAXAb4Qf6wQHKs.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zSsEuoJdh8mcFVk976C05ZfQr8.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/b8ezwLrN7h2AUoPEENcsTMVJ0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/mvNEIBLyHbscgHtwfsByjXUz3XY.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/6FI2EneKzM3qBy5foOZXey7coCA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/qrVgiXNd6RuQjETYQiVQ9nqCk.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/NHHeAKJVP0ZWHk5YZnQQChIsBM.woff2\",weight:\"600\"}]}];export const css=['.framer-qJIoD .framer-styles-preset-q9uths:not(.rich-text-wrapper), .framer-qJIoD .framer-styles-preset-q9uths.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 28px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-qJIoD .framer-styles-preset-q9uths:not(.rich-text-wrapper), .framer-qJIoD .framer-styles-preset-q9uths.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-qJIoD .framer-styles-preset-q9uths:not(.rich-text-wrapper), .framer-qJIoD .framer-styles-preset-q9uths.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 28px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-qJIoD\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vFzuJY0c65av44uhEKB6vyjFMg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-3h92h .framer-styles-preset-149x8zz:not(.rich-text-wrapper), .framer-3h92h .framer-styles-preset-149x8zz.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-8d1f9327-1bea-4f71-8800-06da3a2f0bd3, rgba(29, 30, 33, 0.75)); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-3h92h .framer-styles-preset-149x8zz:not(.rich-text-wrapper), .framer-3h92h .framer-styles-preset-149x8zz.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-8d1f9327-1bea-4f71-8800-06da3a2f0bd3, rgba(29, 30, 33, 0.75)); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-3h92h .framer-styles-preset-149x8zz:not(.rich-text-wrapper), .framer-3h92h .framer-styles-preset-149x8zz.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.02em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-8d1f9327-1bea-4f71-8800-06da3a2f0bd3, rgba(29, 30, 33, 0.75)); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-3h92h\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (3f060d6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/6zHQRKgsKWxVlMNAZ5Bf/8nfGxCWDtGHDFufR2gIQ/BrIjiAV4e.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/bTvmhpODvTLN8GaO1ABZ/dHhxOuU65yyMveYc7cBM/oyQrFUwBY.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const cycleOrder=[\"jbNAB_7Xg\",\"UPxFKPA0l\",\"kQaQ4Jc6Z\"];const serializationHash=\"framer-zLdUr\";const variantClassNames={jbNAB_7Xg:\"framer-v-1egbl8v\",kQaQ4Jc6Z:\"framer-v-gp3iv\",UPxFKPA0l:\"framer-v-10dmojd\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const vyt13HORf=undefined;const yRfDwWF7Q=undefined;const U71_cGil4=undefined;const wq561nFkG=undefined;const jGfDTZg8d=undefined;const h5mTi1koL=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 3\":\"kQaQ4Jc6Z\",Default:\"jbNAB_7Xg\",Mobile:\"UPxFKPA0l\"};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Space Around\":\"space-around\",\"Space Between\":\"space-between\",\"Space Evenly\":\"space-evenly\",Center:\"center\",End:\"flex-end\",Start:\"flex-start\"};const humanReadableEnumMap1={Bold:\"bold\",Duotone:\"duotone\",Fill:\"fill\",Light:\"light\",Regular:\"regular\",Thin:\"thin\"};const getProps=({distribute,height,iconColor,iconName,id,section,textColor,weight,width,...props})=>{return{...props,h5mTi1koL:section??props.h5mTi1koL??\"Section Title\",jGfDTZg8d:textColor??props.jGfDTZg8d??\"rgb(0, 0, 0)\",U71_cGil4:iconColor??props.U71_cGil4??\"rgb(0, 0, 0)\",variant:humanReadableVariantMap[props.variant]??props.variant??\"jbNAB_7Xg\",vyt13HORf:humanReadableEnumMap[distribute]??distribute??props.vyt13HORf??\"center\",wq561nFkG:humanReadableEnumMap1[weight]??weight??props.wq561nFkG??\"fill\",yRfDwWF7Q:iconName??props.yRfDwWF7Q??\"House\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,h5mTi1koL,U71_cGil4,yRfDwWF7Q,jGfDTZg8d,vyt13HORf,wq561nFkG,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"jbNAB_7Xg\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1egbl8v\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"jbNAB_7Xg\",ref:refBinding,style:{\"--s9ynix\":vyt13HORf,...style},...addPropertyOverrides({kQaQ4Jc6Z:{\"data-framer-name\":\"Variant 3\"},UPxFKPA0l:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-vs0zi\",layoutDependency:layoutDependency,layoutId:\"zNbyfAZw7\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-qe0qar-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"exyyjAvxy-container\",nodeId:\"exyyjAvxy\",rendersWithMotion:true,scopeId:\"F6ZhvI1ZC\",children:/*#__PURE__*/_jsx(Phosphor,{color:U71_cGil4,height:\"100%\",iconSearch:\"House\",iconSelection:yRfDwWF7Q,id:\"exyyjAvxy\",layoutId:\"exyyjAvxy\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:wq561nFkG,width:\"100%\"})})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-149x8zz\",\"data-styles-preset\":\"oyQrFUwBY\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--variable-reference-jGfDTZg8d-F6ZhvI1ZC))\"},children:\"Section Title\"})}),className:\"framer-1jv9rdn\",\"data-framer-name\":\"INTRODUCING [NAME]\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"NuWbXDmq0\",style:{\"--extracted-a0htzi\":\"var(--variable-reference-jGfDTZg8d-F6ZhvI1ZC)\",\"--framer-paragraph-spacing\":\"0px\",\"--variable-reference-jGfDTZg8d-F6ZhvI1ZC\":jGfDTZg8d},text:h5mTi1koL,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({kQaQ4Jc6Z:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--variable-reference-jGfDTZg8d-F6ZhvI1ZC))\"},children:\"Section Title\"})})},UPxFKPA0l:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-149x8zz\",\"data-styles-preset\":\"oyQrFUwBY\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--variable-reference-jGfDTZg8d-F6ZhvI1ZC))\"},children:\"Section Title\"})})}},baseVariant,gestureVariant)})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-zLdUr.framer-5rtf70, .framer-zLdUr .framer-5rtf70 { display: block; }\",\".framer-zLdUr.framer-1egbl8v { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: var(--s9ynix); overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-zLdUr .framer-vs0zi { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-zLdUr .framer-qe0qar-container { flex: none; height: 20px; position: relative; width: 20px; }\",\".framer-zLdUr .framer-1jv9rdn { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-zLdUr.framer-v-10dmojd .framer-vs0zi, .framer-zLdUr.framer-v-gp3iv .framer-vs0zi { padding: 3px 0px 0px 0px; }\",\".framer-zLdUr.framer-v-gp3iv.framer-1egbl8v { align-content: flex-start; align-items: flex-start; width: 116px; }\",\".framer-zLdUr.framer-v-gp3iv .framer-1jv9rdn { flex: 1 0 0px; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 26\n * @framerIntrinsicWidth 116\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"UPxFKPA0l\":{\"layout\":[\"auto\",\"auto\"]},\"kQaQ4Jc6Z\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"h5mTi1koL\":\"section\",\"U71_cGil4\":\"iconColor\",\"yRfDwWF7Q\":\"iconName\",\"jGfDTZg8d\":\"textColor\",\"vyt13HORf\":\"distribute\",\"wq561nFkG\":\"weight\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerF6ZhvI1ZC=withCSS(Component,css,\"framer-zLdUr\");export default FramerF6ZhvI1ZC;FramerF6ZhvI1ZC.displayName=\"Badge overline\";FramerF6ZhvI1ZC.defaultProps={height:26,width:116};addPropertyControls(FramerF6ZhvI1ZC,{variant:{options:[\"jbNAB_7Xg\",\"UPxFKPA0l\",\"kQaQ4Jc6Z\"],optionTitles:[\"Default\",\"Mobile\",\"Variant 3\"],title:\"Variant\",type:ControlType.Enum},h5mTi1koL:{defaultValue:\"Section Title\",displayTextArea:false,title:\"Section\",type:ControlType.String},onh5mTi1koLChange:{changes:\"h5mTi1koL\",type:ControlType.ChangeHandler},U71_cGil4:{defaultValue:\"rgb(0, 0, 0)\",title:\"icon Color\",type:ControlType.Color},yRfDwWF7Q:PhosphorControls?.[\"iconSelection\"]&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"House\",description:undefined,hidden:undefined,optional:undefined,title:\"icon name\"},onyRfDwWF7QChange:{changes:\"yRfDwWF7Q\",type:ControlType.ChangeHandler},jGfDTZg8d:{defaultValue:\"rgb(0, 0, 0)\",title:\"Text color\",type:ControlType.Color},vyt13HORf:{defaultValue:\"center\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],title:\"Distribute\",type:ControlType.Enum},wq561nFkG:PhosphorControls?.[\"weight\"]&&{...PhosphorControls[\"weight\"],defaultValue:\"fill\",description:undefined,hidden:undefined,optional:undefined,title:\"Weight\"},onwq561nFkGChange:{changes:\"wq561nFkG\",type:ControlType.ChangeHandler}});addFonts(FramerF6ZhvI1ZC,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerF6ZhvI1ZC\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"116\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"UPxFKPA0l\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"kQaQ4Jc6Z\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"26\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"h5mTi1koL\\\":\\\"section\\\",\\\"U71_cGil4\\\":\\\"iconColor\\\",\\\"yRfDwWF7Q\\\":\\\"iconName\\\",\\\"jGfDTZg8d\\\":\\\"textColor\\\",\\\"vyt13HORf\\\":\\\"distribute\\\",\\\"wq561nFkG\\\":\\\"weight\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./F6ZhvI1ZC.map","// Generated by Framer (7e4cc89)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/d2h9DTRna5ZliTULyEwZ/BIP8qHCRTLyNVo5dQF0S/dwOfG7XgH.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/ky5wbStELp8XEBh1cle4/Q7DqMcr5ST8jRA0G6Nvg/OiVNRM89a.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/2FiZOdGwVXeBRMM1zILn/eAbluGor3QDNUpviDpYp/RKGxIaBMW.js\";const PhosphorFonts=getFonts(Phosphor);const enabledGestures={D_mrsJL4R:{hover:true},M89Edysw1:{hover:true},OkYbIoF_y:{hover:true},Wx7o0eaej:{hover:true}};const cycleOrder=[\"OkYbIoF_y\",\"Wx7o0eaej\",\"M89Edysw1\",\"D_mrsJL4R\",\"ZoCV3aUbR\"];const serializationHash=\"framer-Lc0L8\";const variantClassNames={D_mrsJL4R:\"framer-v-vfgoe0\",M89Edysw1:\"framer-v-1rt18h6\",OkYbIoF_y:\"framer-v-153ja05\",Wx7o0eaej:\"framer-v-1fp7o69\",ZoCV3aUbR:\"framer-v-1d864ff\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition2={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Company card\":\"M89Edysw1\",\"Login Mobile\":\"ZoCV3aUbR\",Dark:\"Wx7o0eaej\",Light:\"OkYbIoF_y\",Login:\"D_mrsJL4R\"};const getProps=({height,id,link,title,width,...props})=>{return{...props,LifcxX_Fm:title??props.LifcxX_Fm??\"Learn more\",tUkIe0hVq:link??props.tUkIe0hVq,variant:humanReadableVariantMap[props.variant]??props.variant??\"OkYbIoF_y\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,tUkIe0hVq,LifcxX_Fm,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"OkYbIoF_y\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"D_mrsJL4R-hover\")return false;if([\"D_mrsJL4R\",\"ZoCV3aUbR\"].includes(baseVariant))return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({D_mrsJL4R:{value:transition2},M89Edysw1:{value:transition2},Wx7o0eaej:{value:transition2},ZoCV3aUbR:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:tUkIe0hVq,motionChild:true,nodeId:\"OkYbIoF_y\",openInNewTab:false,scopeId:\"vgBqmh6lv\",smoothScroll:true,...addPropertyOverrides({D_mrsJL4R:{openInNewTab:true},M89Edysw1:{openInNewTab:true},ZoCV3aUbR:{openInNewTab:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-153ja05\",className,classNames)} framer-cqaiwm`,\"data-framer-name\":\"Light\",layoutDependency:layoutDependency,layoutId:\"OkYbIoF_y\",ref:refBinding,style:{borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,...style},...addPropertyOverrides({\"D_mrsJL4R-hover\":{\"data-framer-name\":undefined},\"M89Edysw1-hover\":{\"data-framer-name\":undefined},\"OkYbIoF_y-hover\":{\"data-framer-name\":undefined},\"Wx7o0eaej-hover\":{\"data-framer-name\":undefined},D_mrsJL4R:{\"data-framer-name\":\"Login\"},M89Edysw1:{\"data-framer-name\":\"Company card\"},Wx7o0eaej:{\"data-framer-name\":\"Dark\"},ZoCV3aUbR:{\"data-framer-name\":\"Login Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1jurg42\",\"data-framer-name\":\"icon & text\",layoutDependency:layoutDependency,layoutId:\"IiBOpHGBm\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255)))\"},children:\"Learn more\"})}),className:\"framer-1t3ycs5\",\"data-framer-name\":\"Button\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OUCDe1tqD\",style:{\"--extracted-r6o4lv\":\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\"},text:LifcxX_Fm,variants:{\"M89Edysw1-hover\":{\"--extracted-r6o4lv\":\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159))\"},\"OkYbIoF_y-hover\":{\"--extracted-r6o4lv\":\"rgb(245, 245, 245)\"},D_mrsJL4R:{\"--extracted-r6o4lv\":\"var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192))\"},M89Edysw1:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},Wx7o0eaej:{\"--extracted-r6o4lv\":\"var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192))\"},ZoCV3aUbR:{\"--extracted-r6o4lv\":\"var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"D_mrsJL4R-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)))\"},children:/*#__PURE__*/_jsx(motion.span,{\"data-text-fill\":\"true\",style:{backgroundImage:\"linear-gradient(270deg, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)) -117%, rgb(105, 209, 166) 108%)\"},children:\"Learn more\"})})})},\"M89Edysw1-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-8hu1lf\",\"data-styles-preset\":\"OiVNRM89a\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159)))\"},children:\"Learn more\"})})},\"OkYbIoF_y-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(245, 245, 245))\"},children:\"Learn more\"})})},\"Wx7o0eaej-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)))\"},children:/*#__PURE__*/_jsx(motion.span,{\"data-text-fill\":\"true\",style:{backgroundImage:\"linear-gradient(270deg, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)) -35%, rgb(105, 209, 166) 105%)\"},children:\"Learn more\"})})})},D_mrsJL4R:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)))\"},children:/*#__PURE__*/_jsx(motion.span,{\"data-text-fill\":\"true\",style:{backgroundImage:\"linear-gradient(270deg, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)) 10%, rgb(105, 209, 166) 200%)\"},children:\"Learn more\"})})})},M89Edysw1:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-8hu1lf\",\"data-styles-preset\":\"OiVNRM89a\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:\"Learn more\"})})},Wx7o0eaej:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1ipmbpd\",\"data-styles-preset\":\"dwOfG7XgH\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)))\"},children:/*#__PURE__*/_jsx(motion.span,{\"data-text-fill\":\"true\",style:{backgroundImage:\"linear-gradient(270deg, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)) 10%, rgb(105, 209, 166) 200%)\"},children:\"Learn more\"})})})},ZoCV3aUbR:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-q9uths\",\"data-styles-preset\":\"RKGxIaBMW\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192)))\"},children:/*#__PURE__*/_jsx(motion.span,{\"data-text-fill\":\"true\",style:{backgroundImage:\"linear-gradient(270deg, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)) 10%, rgb(105, 209, 166) 200%)\"},children:\"Learn more\"})})})}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-8476ha-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"HEZBqSJJx-container\",nodeId:\"HEZBqSJJx\",rendersWithMotion:true,scopeId:\"vgBqmh6lv\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"rgb(255, 255, 255)\",height:\"100%\",iconSearch:\"House\",iconSelection:\"ArrowRight\",id:\"HEZBqSJJx\",layoutId:\"HEZBqSJJx\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\",...addPropertyOverrides({\"M89Edysw1-hover\":{color:\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159))\"},\"OkYbIoF_y-hover\":{color:\"rgb(245, 245, 245)\"},M89Edysw1:{color:\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},Wx7o0eaej:{color:\"var(--token-795d87d4-809f-43f2-a867-e608c7b19d12, rgb(67, 124, 192))\"}},baseVariant,gestureVariant)})})})]})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Lc0L8.framer-cqaiwm, .framer-Lc0L8 .framer-cqaiwm { display: block; }\",\".framer-Lc0L8.framer-153ja05 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-Lc0L8 .framer-1jurg42 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Lc0L8 .framer-1t3ycs5 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-Lc0L8 .framer-8476ha-container { flex: none; height: 16px; position: relative; width: 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Lc0L8.framer-153ja05, .framer-Lc0L8 .framer-1jurg42 { gap: 0px; } .framer-Lc0L8.framer-153ja05 > *, .framer-Lc0L8 .framer-1jurg42 > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-Lc0L8.framer-153ja05 > :first-child, .framer-Lc0L8 .framer-1jurg42 > :first-child { margin-left: 0px; } .framer-Lc0L8.framer-153ja05 > :last-child, .framer-Lc0L8 .framer-1jurg42 > :last-child { margin-right: 0px; } }\",\".framer-Lc0L8.framer-v-1rt18h6 .framer-8476ha-container { height: 18px; width: 18px; }\",\".framer-Lc0L8.framer-v-1d864ff.framer-153ja05 { cursor: unset; }\",\".framer-Lc0L8.framer-v-153ja05.hover.framer-153ja05, .framer-Lc0L8.framer-v-153ja05.hover .framer-1jurg42, .framer-Lc0L8.framer-v-1fp7o69.hover .framer-1jurg42, .framer-Lc0L8.framer-v-1rt18h6.hover.framer-153ja05, .framer-Lc0L8.framer-v-1rt18h6.hover .framer-1jurg42 { gap: 8px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Lc0L8.framer-v-153ja05.hover.framer-153ja05, .framer-Lc0L8.framer-v-153ja05.hover .framer-1jurg42 { gap: 0px; } .framer-Lc0L8.framer-v-153ja05.hover.framer-153ja05 > *, .framer-Lc0L8.framer-v-153ja05.hover .framer-1jurg42 > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-Lc0L8.framer-v-153ja05.hover.framer-153ja05 > :first-child, .framer-Lc0L8.framer-v-153ja05.hover .framer-1jurg42 > :first-child { margin-left: 0px; } .framer-Lc0L8.framer-v-153ja05.hover.framer-153ja05 > :last-child, .framer-Lc0L8.framer-v-153ja05.hover .framer-1jurg42 > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Lc0L8.framer-v-1fp7o69.hover .framer-1jurg42 { gap: 0px; } .framer-Lc0L8.framer-v-1fp7o69.hover .framer-1jurg42 > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-Lc0L8.framer-v-1fp7o69.hover .framer-1jurg42 > :first-child { margin-left: 0px; } .framer-Lc0L8.framer-v-1fp7o69.hover .framer-1jurg42 > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Lc0L8.framer-v-1rt18h6.hover.framer-153ja05, .framer-Lc0L8.framer-v-1rt18h6.hover .framer-1jurg42 { gap: 0px; } .framer-Lc0L8.framer-v-1rt18h6.hover.framer-153ja05 > *, .framer-Lc0L8.framer-v-1rt18h6.hover .framer-1jurg42 > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-Lc0L8.framer-v-1rt18h6.hover.framer-153ja05 > :first-child, .framer-Lc0L8.framer-v-1rt18h6.hover .framer-1jurg42 > :first-child { margin-left: 0px; } .framer-Lc0L8.framer-v-1rt18h6.hover.framer-153ja05 > :last-child, .framer-Lc0L8.framer-v-1rt18h6.hover .framer-1jurg42 > :last-child { margin-right: 0px; } }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 97\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"Wx7o0eaej\":{\"layout\":[\"auto\",\"auto\"]},\"M89Edysw1\":{\"layout\":[\"auto\",\"auto\"]},\"D_mrsJL4R\":{\"layout\":[\"auto\",\"auto\"]},\"ZoCV3aUbR\":{\"layout\":[\"auto\",\"auto\"]},\"k3rIFhk5q\":{\"layout\":[\"auto\",\"auto\"]},\"Wn_8hNK42\":{\"layout\":[\"auto\",\"auto\"]},\"RUnyOOLzh\":{\"layout\":[\"auto\",\"auto\"]},\"xFwIbf0KB\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"tUkIe0hVq\":\"link\",\"LifcxX_Fm\":\"title\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramervgBqmh6lv=withCSS(Component,css,\"framer-Lc0L8\");export default FramervgBqmh6lv;FramervgBqmh6lv.displayName=\"Terciary CTA\";FramervgBqmh6lv.defaultProps={height:24,width:97};addPropertyControls(FramervgBqmh6lv,{variant:{options:[\"OkYbIoF_y\",\"Wx7o0eaej\",\"M89Edysw1\",\"D_mrsJL4R\",\"ZoCV3aUbR\"],optionTitles:[\"Light\",\"Dark\",\"Company card\",\"Login\",\"Login Mobile\"],title:\"Variant\",type:ControlType.Enum},tUkIe0hVq:{title:\"Link\",type:ControlType.Link},LifcxX_Fm:{defaultValue:\"Learn more\",displayTextArea:false,title:\"Title\",type:ControlType.String}});addFonts(FramervgBqmh6lv,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramervgBqmh6lv\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Wx7o0eaej\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"M89Edysw1\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"D_mrsJL4R\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ZoCV3aUbR\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"k3rIFhk5q\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Wn_8hNK42\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"RUnyOOLzh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"xFwIbf0KB\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"97\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"24\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"tUkIe0hVq\\\":\\\"link\\\",\\\"LifcxX_Fm\\\":\\\"title\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./vgBqmh6lv.map","// Generated by Framer (bd0055f)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ksvR4VsLksjpSwnC2fPgHRNMw.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-PxTQW .framer-styles-preset-17hb56i:not(.rich-text-wrapper), .framer-PxTQW .framer-styles-preset-17hb56i.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-PxTQW .framer-styles-preset-17hb56i:not(.rich-text-wrapper), .framer-PxTQW .framer-styles-preset-17hb56i.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 22px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-PxTQW .framer-styles-preset-17hb56i:not(.rich-text-wrapper), .framer-PxTQW .framer-styles-preset-17hb56i.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 22px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-PxTQW\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (bd0055f)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ksvR4VsLksjpSwnC2fPgHRNMw.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-FXWe5 .framer-styles-preset-153c3t2:not(.rich-text-wrapper), .framer-FXWe5 .framer-styles-preset-153c3t2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 28px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-FXWe5 .framer-styles-preset-153c3t2:not(.rich-text-wrapper), .framer-FXWe5 .framer-styles-preset-153c3t2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-FXWe5 .framer-styles-preset-153c3t2:not(.rich-text-wrapper), .framer-FXWe5 .framer-styles-preset-153c3t2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-FXWe5\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (7e4cc89)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,Link,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/JjgJ53tSYCs2p5jaMD0Y/jcPcn5LbBCqqFe9rrc4x/eqtenyFat.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/wy2xd55SZPJVYFyd4aYR/b8LVDW2pBD8zHgeClMuq/oyGO3_Izt.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const enabledGestures={PmpqUdVKb:{hover:true},pvTYvAfAX:{hover:true},YHk2RDjoQ:{hover:true}};const cycleOrder=[\"PmpqUdVKb\",\"YHk2RDjoQ\",\"pvTYvAfAX\",\"o4Pexml_B\",\"Z2vEkRBNb\"];const serializationHash=\"framer-QNCob\";const variantClassNames={o4Pexml_B:\"framer-v-12rdw0g\",PmpqUdVKb:\"framer-v-c4ki1x\",pvTYvAfAX:\"framer-v-1qdb9cj\",YHk2RDjoQ:\"framer-v-109b3tn\",Z2vEkRBNb:\"framer-v-vxu6e8\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Main CTA\":\"PmpqUdVKb\",\"Mobile Green\":\"o4Pexml_B\",\"Secondary CTA\":\"YHk2RDjoQ\",\"Secondary mobile\":\"Z2vEkRBNb\",Green:\"pvTYvAfAX\"};const getProps=({height,iconLeft,iconRight,id,link,newTab,phospherIcon,textColor,title,width,...props})=>{return{...props,cRoeZpcrs:title??props.cRoeZpcrs??\"Check Case Studies \",FsefAOOPs:textColor??props.FsefAOOPs??\"rgb(255, 255, 255)\",GrpQ8zFBL:link??props.GrpQ8zFBL,mKwdituEw:iconLeft??props.mKwdituEw??true,RCPR2dydG:phospherIcon??props.RCPR2dydG??\"Crown\",RmbCx19YN:iconRight??props.RmbCx19YN??true,SM93ZbT4W:newTab??props.SM93ZbT4W,variant:humanReadableVariantMap[props.variant]??props.variant??\"PmpqUdVKb\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,cRoeZpcrs,GrpQ8zFBL,FsefAOOPs,RCPR2dydG,SM93ZbT4W,mKwdituEw,RmbCx19YN,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"PmpqUdVKb\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:GrpQ8zFBL,motionChild:true,nodeId:\"PmpqUdVKb\",openInNewTab:SM93ZbT4W,scopeId:\"lgKeAsBNa\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-c4ki1x\",className,classNames)} framer-1qne5kn`,\"data-framer-name\":\"Main CTA\",layoutDependency:layoutDependency,layoutId:\"PmpqUdVKb\",ref:refBinding,style:{background:'linear-gradient(204deg, var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, rgb(23, 33, 74)) /* {\"name\":\"Valpay-dark blue\"} */ 0%, rgb(78, 154, 217) 171%)',backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,boxShadow:\"0px 0px 18px 0px rgba(0, 0, 0, 0.04)\",...style},variants:{\"PmpqUdVKb-hover\":{background:'linear-gradient(280deg, var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, rgb(23, 33, 74)) /* {\"name\":\"Valpay-dark blue\"} */ -30%, rgb(78, 154, 217) 118%)',backgroundColor:\"rgba(0, 0, 0, 0)\",boxShadow:\"none\"},\"pvTYvAfAX-hover\":{background:\"linear-gradient(285deg, rgb(23, 74, 51) -22%, rgb(78, 217, 175) 123%)\"},\"YHk2RDjoQ-hover\":{background:\"linear-gradient(204deg, rgb(213, 232, 224) 0%, rgb(213, 232, 224) 100%)\",backgroundColor:\"rgb(213, 232, 224)\"},o4Pexml_B:{background:\"linear-gradient(204deg, rgb(23, 74, 51) 0%, rgb(78, 217, 175) 171%)\",backgroundColor:\"rgba(0, 0, 0, 0)\"},pvTYvAfAX:{background:\"linear-gradient(204deg, rgb(23, 74, 51) 0%, rgb(78, 217, 175) 171%)\",backgroundColor:\"rgba(0, 0, 0, 0)\"},YHk2RDjoQ:{background:\"linear-gradient(204deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%)\",backgroundColor:\"rgba(255, 255, 255, 0.4)\",boxShadow:\"0px 0px 1px 1px rgba(108, 196, 160, 0.4)\"},Z2vEkRBNb:{background:\"linear-gradient(204deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%)\",backgroundColor:\"rgba(255, 255, 255, 0.4)\",boxShadow:\"0px 0px 1px 1px rgba(108, 196, 160, 0.4)\"}},...addPropertyOverrides({\"PmpqUdVKb-hover\":{\"data-framer-name\":undefined},\"pvTYvAfAX-hover\":{\"data-framer-name\":undefined},\"YHk2RDjoQ-hover\":{\"data-framer-name\":undefined},o4Pexml_B:{\"data-framer-name\":\"Mobile Green\"},pvTYvAfAX:{\"data-framer-name\":\"Green\"},YHk2RDjoQ:{\"data-framer-name\":\"Secondary CTA\"},Z2vEkRBNb:{\"data-framer-name\":\"Secondary mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1j7mc72\",\"data-framer-name\":\"icon & text\",layoutDependency:layoutDependency,layoutId:\"f9Ap6tBuG\",children:[mKwdituEw&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1rnb9z9-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"ZQ0UB4zYU-container\",nodeId:\"ZQ0UB4zYU\",rendersWithMotion:true,scopeId:\"lgKeAsBNa\",children:/*#__PURE__*/_jsx(Phosphor,{color:FsefAOOPs,height:\"100%\",iconSearch:\"House\",iconSelection:RCPR2dydG,id:\"ZQ0UB4zYU\",layoutId:\"ZQ0UB4zYU\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"regular\",width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-17hb56i\",\"data-styles-preset\":\"eqtenyFat\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-FsefAOOPs-lgKeAsBNa))\"},children:\"Check Case Studies \"})}),className:\"framer-1fa2rmt\",\"data-framer-name\":\"Button\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"D_pcOIar7\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-FsefAOOPs-lgKeAsBNa)\",\"--variable-reference-FsefAOOPs-lgKeAsBNa\":FsefAOOPs},text:cRoeZpcrs,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({o4Pexml_B:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-153c3t2\",\"data-styles-preset\":\"oyGO3_Izt\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-FsefAOOPs-lgKeAsBNa))\"},children:\"Check Case Studies \"})})},Z2vEkRBNb:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-153c3t2\",\"data-styles-preset\":\"oyGO3_Izt\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-FsefAOOPs-lgKeAsBNa))\"},children:\"Check Case Studies \"})})}},baseVariant,gestureVariant)}),RmbCx19YN&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-uozb8h-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"AprvVaw7n-container\",nodeId:\"AprvVaw7n\",rendersWithMotion:true,scopeId:\"lgKeAsBNa\",children:/*#__PURE__*/_jsx(Phosphor,{color:FsefAOOPs,height:\"100%\",iconSearch:\"House\",iconSelection:RCPR2dydG,id:\"AprvVaw7n\",layoutId:\"AprvVaw7n\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"regular\",width:\"100%\"})})})]})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-QNCob.framer-1qne5kn, .framer-QNCob .framer-1qne5kn { display: block; }\",\".framer-QNCob.framer-c4ki1x { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: center; overflow: visible; padding: 8px 20px 8px 20px; position: relative; text-decoration: none; width: min-content; }\",\".framer-QNCob .framer-1j7mc72 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-QNCob .framer-1rnb9z9-container, .framer-QNCob .framer-uozb8h-container { flex: none; height: 20px; position: relative; width: 20px; }\",\".framer-QNCob .framer-1fa2rmt { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-QNCob.framer-c4ki1x, .framer-QNCob .framer-1j7mc72 { gap: 0px; } .framer-QNCob.framer-c4ki1x > * { margin: 0px; margin-left: calc(6px / 2); margin-right: calc(6px / 2); } .framer-QNCob.framer-c4ki1x > :first-child, .framer-QNCob .framer-1j7mc72 > :first-child { margin-left: 0px; } .framer-QNCob.framer-c4ki1x > :last-child, .framer-QNCob .framer-1j7mc72 > :last-child { margin-right: 0px; } .framer-QNCob .framer-1j7mc72 > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } }\",\".framer-QNCob.framer-v-12rdw0g.framer-c4ki1x, .framer-QNCob.framer-v-vxu6e8.framer-c4ki1x { cursor: unset; padding: 12px 20px 12px 20px; }\",\".framer-QNCob.framer-v-c4ki1x.hover.framer-c4ki1x { gap: 10px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-QNCob.framer-v-c4ki1x.hover.framer-c4ki1x { gap: 0px; } .framer-QNCob.framer-v-c4ki1x.hover.framer-c4ki1x > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-QNCob.framer-v-c4ki1x.hover.framer-c4ki1x > :first-child { margin-left: 0px; } .framer-QNCob.framer-v-c4ki1x.hover.framer-c4ki1x > :last-child { margin-right: 0px; } }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 234\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"YHk2RDjoQ\":{\"layout\":[\"auto\",\"auto\"]},\"pvTYvAfAX\":{\"layout\":[\"auto\",\"auto\"]},\"o4Pexml_B\":{\"layout\":[\"auto\",\"auto\"]},\"Z2vEkRBNb\":{\"layout\":[\"auto\",\"auto\"]},\"TkXCrqkVa\":{\"layout\":[\"auto\",\"auto\"]},\"BCqMTOYJ2\":{\"layout\":[\"auto\",\"auto\"]},\"hBF6zxitl\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"cRoeZpcrs\":\"title\",\"GrpQ8zFBL\":\"link\",\"FsefAOOPs\":\"textColor\",\"RCPR2dydG\":\"phospherIcon\",\"SM93ZbT4W\":\"newTab\",\"mKwdituEw\":\"iconLeft\",\"RmbCx19YN\":\"iconRight\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerlgKeAsBNa=withCSS(Component,css,\"framer-QNCob\");export default FramerlgKeAsBNa;FramerlgKeAsBNa.displayName=\"Buttons / Button\";FramerlgKeAsBNa.defaultProps={height:40,width:234};addPropertyControls(FramerlgKeAsBNa,{variant:{options:[\"PmpqUdVKb\",\"YHk2RDjoQ\",\"pvTYvAfAX\",\"o4Pexml_B\",\"Z2vEkRBNb\"],optionTitles:[\"Main CTA\",\"Secondary CTA\",\"Green\",\"Mobile Green\",\"Secondary mobile\"],title:\"Variant\",type:ControlType.Enum},cRoeZpcrs:{defaultValue:\"Check Case Studies \",displayTextArea:false,title:\"Title\",type:ControlType.String},GrpQ8zFBL:{title:\"Link\",type:ControlType.Link},FsefAOOPs:{defaultValue:\"rgb(255, 255, 255)\",title:\"text color\",type:ControlType.Color},RCPR2dydG:PhosphorControls?.[\"iconSelection\"]&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"Crown\",description:undefined,hidden:undefined,title:\"phospher icon\"},SM93ZbT4W:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},mKwdituEw:{defaultValue:true,title:\"Icon Left\",type:ControlType.Boolean},RmbCx19YN:{defaultValue:true,title:\"Icon right\",type:ControlType.Boolean}});addFonts(FramerlgKeAsBNa,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerlgKeAsBNa\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"40\",\"framerVariables\":\"{\\\"cRoeZpcrs\\\":\\\"title\\\",\\\"GrpQ8zFBL\\\":\\\"link\\\",\\\"FsefAOOPs\\\":\\\"textColor\\\",\\\"RCPR2dydG\\\":\\\"phospherIcon\\\",\\\"SM93ZbT4W\\\":\\\"newTab\\\",\\\"mKwdituEw\\\":\\\"iconLeft\\\",\\\"RmbCx19YN\\\":\\\"iconRight\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"YHk2RDjoQ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"pvTYvAfAX\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"o4Pexml_B\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Z2vEkRBNb\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"TkXCrqkVa\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"BCqMTOYJ2\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"hBF6zxitl\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"234\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lgKeAsBNa.map","// Generated by Framer (b00083c)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/6zHQRKgsKWxVlMNAZ5Bf/8nfGxCWDtGHDFufR2gIQ/BrIjiAV4e.js\";const enabledGestures={foWHpHrfk:{hover:true},NJuIke1SN:{hover:true}};const cycleOrder=[\"NJuIke1SN\",\"qQuFowClt\",\"foWHpHrfk\"];const serializationHash=\"framer-SLptu\";const variantClassNames={foWHpHrfk:\"framer-v-1o8sz0m\",NJuIke1SN:\"framer-v-jzuzo9\",qQuFowClt:\"framer-v-1wbxo0e\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const jeZtiIfD1=undefined;const S2DktiVNL=undefined;const x7kSahbL4=undefined;const FevlqhOb5=undefined;const vr3GalQZm=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:212,type:\"spring\"};const transition2={delay:0,duration:.2,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"footer link\":\"foWHpHrfk\",Default:\"NJuIke1SN\",Mobile:\"qQuFowClt\"};const Variants=motion.create(React.Fragment);const getProps=({click,height,hover,id,link,newTab,pageName,width,...props})=>{return{...props,FevlqhOb5:newTab??props.FevlqhOb5,jeZtiIfD1:click??props.jeZtiIfD1,S2DktiVNL:hover??props.S2DktiVNL,variant:humanReadableVariantMap[props.variant]??props.variant??\"NJuIke1SN\",vr3GalQZm:pageName??props.vr3GalQZm??\"Home\",x7kSahbL4:link??props.x7kSahbL4};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,x7kSahbL4,vr3GalQZm,jeZtiIfD1,S2DktiVNL,FevlqhOb5,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"NJuIke1SN\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTappl9465=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(jeZtiIfD1){const res=await jeZtiIfD1(...args);if(res===false)return false;}});const onMouseEnter1vzdodp=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(S2DktiVNL){const res=await S2DktiVNL(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({foWHpHrfk:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:x7kSahbL4,motionChild:true,nodeId:\"NJuIke1SN\",openInNewTab:FevlqhOb5,scopeId:\"Rvt29oeAL\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-jzuzo9\",className,classNames)} framer-81s8f2`,\"data-framer-name\":\"Default\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"NJuIke1SN\",onMouseEnter:onMouseEnter1vzdodp,onTap:onTappl9465,ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(255, 255, 255, 0)\",borderBottomLeftRadius:30,borderBottomRightRadius:30,borderTopLeftRadius:30,borderTopRightRadius:30,...style},variants:{\"NJuIke1SN-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},foWHpHrfk:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},qQuFowClt:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6}},...addPropertyOverrides({\"foWHpHrfk-hover\":{\"data-framer-name\":undefined},\"NJuIke1SN-hover\":{\"data-framer-name\":undefined},foWHpHrfk:{\"data-framer-name\":\"footer link\"},qQuFowClt:{\"data-border\":true,\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, rgb(28, 29, 32)))\"},children:\"Home\"})}),className:\"framer-bqbb9c\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"RI516Door\",style:{\"--extracted-r6o4lv\":\"var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, rgb(28, 29, 32))\"},text:vr3GalQZm,variants:{\"foWHpHrfk-hover\":{\"--extracted-r6o4lv\":\"var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34))\"},\"NJuIke1SN-hover\":{\"--extracted-r6o4lv\":\"rgba(23, 33, 74, 0.5)\"},foWHpHrfk:{\"--extracted-r6o4lv\":\"rgb(107, 114, 128)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"foWHpHrfk-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34)))\"},children:\"Home\"})})},\"NJuIke1SN-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(23, 33, 74, 0.5))\"},children:\"Home\"})})},foWHpHrfk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(107, 114, 128))\"},children:\"Home\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-SLptu.framer-81s8f2, .framer-SLptu .framer-81s8f2 { display: block; }\",\".framer-SLptu.framer-jzuzo9 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 4px 12px 4px 12px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-SLptu .framer-bqbb9c { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-SLptu.framer-v-1wbxo0e.framer-jzuzo9 { justify-content: flex-start; padding: 12px; }\",\".framer-SLptu.framer-v-1o8sz0m.framer-jzuzo9 { justify-content: flex-start; padding: 0px; }\",...sharedStyle.css,'.framer-SLptu[data-border=\"true\"]::after, .framer-SLptu [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 32\n * @framerIntrinsicWidth 63\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"qQuFowClt\":{\"layout\":[\"auto\",\"auto\"]},\"foWHpHrfk\":{\"layout\":[\"auto\",\"auto\"]},\"XLe04BiKR\":{\"layout\":[\"auto\",\"auto\"]},\"DLzN8weei\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"x7kSahbL4\":\"link\",\"vr3GalQZm\":\"pageName\",\"jeZtiIfD1\":\"click\",\"S2DktiVNL\":\"hover\",\"FevlqhOb5\":\"newTab\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerRvt29oeAL=withCSS(Component,css,\"framer-SLptu\");export default FramerRvt29oeAL;FramerRvt29oeAL.displayName=\"Navigation / Nav Link\";FramerRvt29oeAL.defaultProps={height:32,width:63};addPropertyControls(FramerRvt29oeAL,{variant:{options:[\"NJuIke1SN\",\"qQuFowClt\",\"foWHpHrfk\"],optionTitles:[\"Default\",\"Mobile\",\"footer link\"],title:\"Variant\",type:ControlType.Enum},x7kSahbL4:{title:\"Link\",type:ControlType.Link},vr3GalQZm:{defaultValue:\"Home\",displayTextArea:false,title:\"Page Name\",type:ControlType.String},onvr3GalQZmChange:{changes:\"vr3GalQZm\",type:ControlType.ChangeHandler},jeZtiIfD1:{title:\"Click\",type:ControlType.EventHandler},S2DktiVNL:{title:\"Hover\",type:ControlType.EventHandler},FevlqhOb5:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},onFevlqhOb5Change:{changes:\"FevlqhOb5\",type:ControlType.ChangeHandler}});addFonts(FramerRvt29oeAL,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRvt29oeAL\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"63\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"32\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"qQuFowClt\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"foWHpHrfk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"XLe04BiKR\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"DLzN8weei\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"x7kSahbL4\\\":\\\"link\\\",\\\"vr3GalQZm\\\":\\\"pageName\\\",\\\"jeZtiIfD1\\\":\\\"click\\\",\\\"S2DktiVNL\\\":\\\"hover\\\",\\\"FevlqhOb5\\\":\\\"newTab\\\"}\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Rvt29oeAL.map","// Generated by Framer (e0e363b)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,ResolveLinks,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/6zHQRKgsKWxVlMNAZ5Bf/8nfGxCWDtGHDFufR2gIQ/BrIjiAV4e.js\";import NavigationNavLink from\"https://framerusercontent.com/modules/AlNWcCCeivyNNOd81gyW/AMNvqcW74IdPEVLR16s7/Rvt29oeAL.js\";const NavigationNavLinkFonts=getFonts(NavigationNavLink);const cycleOrder=[\"Nv1WrDwPR\",\"bVk6oWAF3\",\"OEij7UgX_\"];const serializationHash=\"framer-LevPi\";const variantClassNames={bVk6oWAF3:\"framer-v-k0ge1z\",Nv1WrDwPR:\"framer-v-1bxtkgx\",OEij7UgX_:\"framer-v-1afz6ge\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const MLc2difUh=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"Nv1WrDwPR\",Phone:\"OEij7UgX_\",Tablet:\"bVk6oWAF3\"};const Variants=motion.create(React.Fragment);const getProps=({companyDescription,height,id,width,...props})=>{return{...props,MLc2difUh:companyDescription??props.MLc2difUh??\"The trusted embedded payment solution for software platforms.\",variant:humanReadableVariantMap[props.variant]??props.variant??\"Nv1WrDwPR\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,MLc2difUh,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Nv1WrDwPR\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"bVk6oWAF3\",\"OEij7UgX_\"].includes(baseVariant))return false;return true;};const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1bxtkgx\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"Nv1WrDwPR\",ref:refBinding,style:{backgroundColor:\"rgb(255, 255, 255)\",...style},...addPropertyOverrides({bVk6oWAF3:{\"data-framer-name\":\"Tablet\"},OEij7UgX_:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1m827i2\",\"data-framer-name\":\"container\",layoutDependency:layoutDependency,layoutId:\"e8axmRFna\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1469xz2\",\"data-framer-name\":\"links & others\",layoutDependency:layoutDependency,layoutId:\"xEUwENWo5\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-lftwu5\",layoutDependency:layoutDependency,layoutId:\"HcphVgSB1\",style:{backgroundColor:\"var(--token-02790b17-fe04-450b-b6a5-a63a36b996a2, rgb(240, 250, 245))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1pnako4\",layoutDependency:layoutDependency,layoutId:\"Oz8bsTQje\",style:{borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},children:[/*#__PURE__*/_jsx(motion.figure,{className:\"framer-kh22tz\",\"data-framer-name\":\"logo container\",layoutDependency:layoutDependency,layoutId:\"ckAl4XCZo\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-ravw79\",\"data-framer-name\":\"valpay_final logo_original 1\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:253,intrinsicWidth:792,layoutDependency:layoutDependency,layoutId:\"qE8rjBXgQ\",svg:'<svg width=\"792\" height=\"253\" viewBox=\"0 0 792 253\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M109.95 233.58L87.44 211.07L121.04 177.64C123.3 175.39 123.31 171.72 121.05 169.47L103.25 151.67C101 149.42 97.35 149.42 95.1 151.66L66.78 179.83C63.85 182.75 59.11 182.74 56.18 179.82L17.69 141.33C12.84 136.48 11.31 129.23 13.78 122.84L51.34 25.69C56.13 13.31 72.06 9.94 81.45 19.33L214.46 152.34L132.78 233.6C126.46 239.88 116.25 239.87 109.95 233.57V233.58Z\" fill=\"#437CC0\"/>\\n<path d=\"M241.89 99.09L172.97 30.17C165.81 23.01 154.21 23 147.04 30.14L36.21 140.39C33.71 142.75 30.35 144.17 26.67 144.17C21.89 144.17 17.67 141.73 15.13 138.02C15.84 139.2 16.69 140.31 17.69 141.32L26.46 150.09L56.18 179.81C59.11 182.74 63.85 182.74 66.78 179.82L95.1 151.65C97.36 149.41 101 149.41 103.25 151.66L121.05 169.46C123.31 171.72 123.3 175.38 121.04 177.63L92.77 205.76L87.44 211.07L92.76 216.39L109.95 233.58C116.25 239.88 126.46 239.89 132.78 233.61L241.85 125.1C249.05 117.93 249.07 106.28 241.88 99.1L241.89 99.09Z\" fill=\"#6BC49F\"/>\\n<path d=\"M119.58 57.45L36.21 140.39C33.71 142.75 30.35 144.17 26.67 144.17C21.89 144.17 17.67 141.73 15.13 138.02C15.48 138.6 15.86 139.15 16.27 139.69C16.32 139.75 16.37 139.81 16.41 139.87C16.58 140.08 16.74 140.29 16.92 140.49C17.16 140.77 17.41 141.04 17.67 141.3C17.67 141.3 17.67 141.31 17.69 141.32L24.02 147.65L56.18 179.81C56.36 179.99 56.55 180.16 56.75 180.32C58.12 181.44 59.8 182 61.48 182C62.55 182 63.62 181.77 64.61 181.31C64.82 181.21 65.03 181.11 65.23 180.99C65.51 180.83 65.79 180.65 66.05 180.44C66.3 180.25 66.55 180.04 66.78 179.81L95.1 151.64C95.66 151.08 96.31 150.66 97.01 150.38C97.15 150.32 97.3 150.3 97.45 150.25C98.01 150.07 98.59 149.96 99.18 149.96C100.65 149.96 102.13 150.53 103.25 151.65L121.05 169.45C121.61 170.01 122.04 170.67 122.32 171.36C122.6 172.06 122.74 172.8 122.74 173.54C122.74 174.65 122.42 175.76 121.78 176.72C121.57 177.04 121.32 177.34 121.04 177.63L87.44 211.06L92.76 216.38L109.95 233.57C111.03 234.65 112.23 235.53 113.5 236.24C113.87 236.45 114.24 236.63 114.62 236.8C115.8 237.34 117.02 237.75 118.28 238C118.79 238.1 119.3 238.17 119.82 238.22C120.33 238.27 120.85 238.3 121.37 238.3C121.39 238.3 121.42 238.3 121.44 238.3C124 238.3 126.56 237.68 128.88 236.47C129.35 236.22 129.81 235.96 130.26 235.66C131.16 235.07 132.01 234.38 132.8 233.6L214.48 152.34L119.58 57.45Z\" fill=\"#0F705F\"/>\\n<path d=\"M315.11 80.14L335.48 141.99L355.85 80.14H377.53L347.7 160.76H322.96L293.27 80.14H315.1H315.11Z\" fill=\"#17214A\"/>\\n<path d=\"M476.66 53.08H497.03V160.76H476.66V53.08Z\" fill=\"#17214A\"/>\\n<path d=\"M534.79 80.11H514.42L514.41 201.38H534.78L534.79 153.56C540.86 158.52 548.34 161.45 556.44 161.45C576.72 161.45 593.16 143.1 593.16 120.46C593.16 97.82 576.72 79.47 556.44 79.47C548.34 79.47 540.86 82.4 534.79 87.36V80.12V80.11ZM534.79 128.58V111.3C537.96 104.28 544.85 99.41 552.86 99.41C563.87 99.41 572.8 108.6 572.8 119.94C572.8 131.28 563.87 140.47 552.86 140.47C544.85 140.47 537.96 135.6 534.79 128.58Z\" fill=\"#17214A\"/>\\n<path d=\"M441.92 80.11V87.35C435.85 82.39 428.37 79.46 420.27 79.46C399.99 79.46 383.55 97.81 383.55 120.45C383.55 143.09 399.99 161.44 420.27 161.44C428.37 161.44 435.85 158.51 441.92 153.55V161.44H462.29V80.11H441.92ZM423.85 140.47C412.84 140.47 403.91 131.28 403.91 119.94C403.91 108.6 412.84 99.41 423.85 99.41C431.86 99.41 438.75 104.28 441.92 111.3V128.58C438.75 135.6 431.86 140.47 423.85 140.47Z\" fill=\"#17214A\"/>\\n<path d=\"M663.23 80.11V87.35C657.16 82.39 649.68 79.46 641.58 79.46C621.3 79.46 604.86 97.81 604.86 120.45C604.86 143.09 621.3 161.44 641.58 161.44C649.68 161.44 657.16 158.51 663.23 153.55V161.44H683.6V80.11H663.23ZM645.16 140.47C634.15 140.47 625.22 131.28 625.22 119.94C625.22 108.6 634.15 99.41 645.16 99.41C653.17 99.41 660.06 104.28 663.23 111.3V128.58C660.06 135.6 653.17 140.47 645.16 140.47Z\" fill=\"#17214A\"/>\\n<path d=\"M779.38 79.49H758L739.29 135.92L718.07 79.49H696.68L727.86 161.44V161.65C727.86 172.76 719.59 181.94 708.86 183.37V203.82C726.36 202.55 740.91 190.68 746.14 174.6L779.38 79.49Z\" fill=\"#17214A\"/>\\n<path d=\"M698.83 182.51C693.19 180.7 688.54 176.68 685.92 171.46H664.42C668.4 187.91 681.94 200.61 698.83 203.37V182.51Z\" fill=\"#6BC49F\"/>\\n</svg>\\n',withExternalLayout:true})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:\"The trusted embedded payment solution for software platforms.\"})}),className:\"framer-1ofeokk\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"D6YqSxOqu\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:MLc2difUh,verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-mi2dje\",\"data-framer-name\":\"Logomark\",layoutDependency:layoutDependency,layoutId:\"FdOO4RiRy\",children:isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1l1b9mh\",\"data-framer-name\":\"Logomark\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"NAiN7ewWr\",opacity:.13,style:{opacity:.13},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 272 266\"><path d=\"M 265.825 106.478 L 186.589 27.687 C 178.357 19.502 165.021 19.49 156.778 27.653 L 29.359 153.694 C 26.484 156.392 22.622 158.015 18.391 158.015 C 12.895 158.015 8.044 155.226 5.123 150.984 C 5.94 152.333 6.917 153.602 8.067 154.757 L 18.149 164.783 L 52.318 198.76 C 55.686 202.11 61.136 202.11 64.504 198.771 L 97.063 166.566 C 99.662 164.006 103.846 164.006 106.433 166.578 L 126.898 186.928 C 129.496 189.511 129.484 193.696 126.886 196.268 L 94.384 228.426 L 88.257 234.497 L 94.373 240.579 L 114.136 260.231 C 121.379 267.434 133.117 267.445 140.383 260.266 L 265.779 136.214 C 274.056 128.017 274.079 114.698 265.813 106.49 Z\" fill=\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159)) /* {&quot;name&quot;:&quot;Valpay-light green&quot;} */\"></path><path d=\"M 7.976 147.707 C 11.006 150.248 14.151 152.188 16.543 152.188 C 20.774 152.188 24.219 150.955 27.093 148.258 L 124.849 51.559 L 79.192 6.158 C 68.397 -4.577 50.083 -0.724 44.576 13.429 L 1.394 124.493 C -1.446 131.799 0.055 139.713 5.889 145.632 Z\" fill=\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159)) /* {&quot;name&quot;:&quot;Valpay-light green&quot;} */\"></path></svg>',svgContentId:11257486168,withExternalLayout:true})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1w6p6qv\",layoutDependency:layoutDependency,layoutId:\"vsxHthgKY\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-z5wfr4\",\"data-framer-name\":\"Product Links\",layoutDependency:layoutDependency,layoutId:\"LIsd9L_gg\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1s6rl6x\",layoutDependency:layoutDependency,layoutId:\"flNVGfud5\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},variants:{OEij7UgX_:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8}},...addPropertyOverrides({OEij7UgX_:{\"data-border\":true}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Product\"})}),className:\"framer-1u2xo8l\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"fzrG9MiTf\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-10hdt64\",layoutDependency:layoutDependency,layoutId:\"e58gs9_eX\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Zpk65MapL\"},implicitPathVariables:undefined},{href:{webPageId:\"Zpk65MapL\"},implicitPathVariables:undefined},{href:{webPageId:\"Zpk65MapL\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+0+0+86+0+0,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+0+0+86+0+0},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+0+0+0+16+86+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ni3lyd-container\",layoutDependency:layoutDependency,layoutId:\"vqtmtc3aH-container\",nodeId:\"vqtmtc3aH\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"vqtmtc3aH\",layoutId:\"vqtmtc3aH\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Embedded Payments\",width:\"100%\",x7kSahbL4:resolvedLinks[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"bi7YwDHUs\"},implicitPathVariables:undefined},{href:{webPageId:\"bi7YwDHUs\"},implicitPathVariables:undefined},{href:{webPageId:\"bi7YwDHUs\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+0+0+86+0+36,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+0+0+86+0+36},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+0+0+0+16+86+0+36}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-dzbu1v-container\",layoutDependency:layoutDependency,layoutId:\"iJguggc5b-container\",nodeId:\"iJguggc5b\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"iJguggc5b\",layoutId:\"iJguggc5b\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Partners\",width:\"100%\",x7kSahbL4:resolvedLinks1[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks1[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks1[2]}},baseVariant,gestureVariant)})})})})]})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1kdsz1h\",\"data-framer-name\":\"Features Links\",layoutDependency:layoutDependency,layoutId:\"RrrHTZtdr\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},variants:{OEij7UgX_:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8}},...addPropertyOverrides({OEij7UgX_:{\"data-border\":true}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Features\"})}),className:\"framer-1wxukbo\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"XwfC4Ti9J\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1e9q6jb\",layoutDependency:layoutDependency,layoutId:\"FZBGasQZC\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"gXnBhMK6a\"},implicitPathVariables:undefined},{href:{webPageId:\"gXnBhMK6a\"},implicitPathVariables:undefined},{href:{webPageId:\"gXnBhMK6a\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+0,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+0},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+202+16+86+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-xazym1-container\",layoutDependency:layoutDependency,layoutId:\"U6ofPB4T2-container\",nodeId:\"U6ofPB4T2\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"U6ofPB4T2\",layoutId:\"U6ofPB4T2\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Accept Payments\",width:\"100%\",x7kSahbL4:resolvedLinks2[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks2[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks2[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"TqznSRHFC\"},implicitPathVariables:undefined},{href:{webPageId:\"TqznSRHFC\"},implicitPathVariables:undefined},{href:{webPageId:\"TqznSRHFC\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+36,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+36},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+202+16+86+0+36}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-11297nb-container\",layoutDependency:layoutDependency,layoutId:\"i2mpFCJ3H-container\",nodeId:\"i2mpFCJ3H\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"i2mpFCJ3H\",layoutId:\"i2mpFCJ3H\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Secure Payments\",width:\"100%\",x7kSahbL4:resolvedLinks3[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks3[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks3[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"r_dxE0USB\"},implicitPathVariables:undefined},{href:{webPageId:\"r_dxE0USB\"},implicitPathVariables:undefined},{href:{webPageId:\"r_dxE0USB\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+72,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+72},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+202+16+86+0+72}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1lnclyt-container\",layoutDependency:layoutDependency,layoutId:\"Zefoccn58-container\",nodeId:\"Zefoccn58\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"Zefoccn58\",layoutId:\"Zefoccn58\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Manage Payments\",width:\"100%\",x7kSahbL4:resolvedLinks4[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks4[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks4[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"r6GH9hIYQ\"},implicitPathVariables:undefined},{href:{webPageId:\"r6GH9hIYQ\"},implicitPathVariables:undefined},{href:{webPageId:\"r6GH9hIYQ\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+108,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+108},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+202+16+86+0+108}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-h8tag6-container\",layoutDependency:layoutDependency,layoutId:\"ZHqIw1iPu-container\",nodeId:\"ZHqIw1iPu\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"ZHqIw1iPu\",layoutId:\"ZHqIw1iPu\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Grow Payments\",width:\"100%\",x7kSahbL4:resolvedLinks5[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks5[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks5[2]}},baseVariant,gestureVariant)})})})})]})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1w730i\",\"data-framer-name\":\"Quick Links\",layoutDependency:layoutDependency,layoutId:\"HLUtLDbm3\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},variants:{OEij7UgX_:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8}},...addPropertyOverrides({OEij7UgX_:{\"data-border\":true}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Quick links\"})}),className:\"framer-9dm3p2\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"vz5okIdXu\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-i58a4i\",layoutDependency:layoutDependency,layoutId:\"BjqGNkRI2\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined},{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined},{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined}],children:resolvedLinks6=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+0,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+0},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+476+16+86+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-y7s6as-container\",layoutDependency:layoutDependency,layoutId:\"IOrzTQlNm-container\",nodeId:\"IOrzTQlNm\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"IOrzTQlNm\",layoutId:\"IOrzTQlNm\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Book a call\",width:\"100%\",x7kSahbL4:resolvedLinks6[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks6[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks6[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined},{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined},{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined}],children:resolvedLinks7=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+36,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+36},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+476+16+86+0+42}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-p9fafu-container\",layoutDependency:layoutDependency,layoutId:\"G3SgPy3_I-container\",nodeId:\"G3SgPy3_I\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"G3SgPy3_I\",layoutId:\"G3SgPy3_I\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Team\",width:\"100%\",x7kSahbL4:resolvedLinks7[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks7[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks7[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"dqLTciBgo\"},implicitPathVariables:undefined},{href:{webPageId:\"dqLTciBgo\"},implicitPathVariables:undefined},{href:{webPageId:\"dqLTciBgo\"},implicitPathVariables:undefined}],children:resolvedLinks8=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,width:`max((max((min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 32px) / 2, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+0+0+0+0+86+0+72,...addPropertyOverrides({bVk6oWAF3:{width:`max((max(min(${componentViewport?.width||\"100vw\"} - 80px, 1240px) - 262px, 1px) - 48px) / 3, 1px)`,y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+0+0+0+0+86+0+72},OEij7UgX_:{width:`calc(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 32px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+0+0+232+0+476+16+86+0+84}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-8tln39-container\",layoutDependency:layoutDependency,layoutId:\"DeSbDMChx-container\",nodeId:\"DeSbDMChx\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"DeSbDMChx\",layoutId:\"DeSbDMChx\",style:{width:\"100%\"},variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Changelog\",width:\"100%\",x7kSahbL4:resolvedLinks8[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks8[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks8[2]}},baseVariant,gestureVariant)})})})})]})]})]})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-cxzw6d\",\"data-border\":true,\"data-framer-name\":\"copyrights\",layoutDependency:layoutDependency,layoutId:\"xmq6vRw4d\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\"},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+258+16,...addPropertyOverrides({bVk6oWAF3:{y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+258+16},OEij7UgX_:{y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+974+16+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-8nnxmh-container\",layoutDependency:layoutDependency,layoutId:\"rtwdEAF82-container\",nodeId:\"rtwdEAF82\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"rtwdEAF82\",layoutId:\"rtwdEAF82\",variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"LinkedIn\",width:\"100%\",x7kSahbL4:\"https://www.linkedin.com/company/valpay/\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-xxshs2\",\"data-framer-name\":\"PP and copyrights\",layoutDependency:layoutDependency,layoutId:\"wz2GpuGo4\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"UGkJY9nbK\"},implicitPathVariables:undefined},{href:{webPageId:\"UGkJY9nbK\"},implicitPathVariables:undefined},{href:{webPageId:\"UGkJY9nbK\"},implicitPathVariables:undefined}],children:resolvedLinks9=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+80+(((componentViewport?.height||360)-144-306)/2+0+0)+0+258+16+0,...addPropertyOverrides({bVk6oWAF3:{y:(componentViewport?.y||0)+64+(((componentViewport?.height||368)-128-306)/2+0+0)+0+258+16+0},OEij7UgX_:{y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-1200)/2+0+0)+0+974+16+48+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-c2b9so-container\",layoutDependency:layoutDependency,layoutId:\"eBq7IRLEL-container\",nodeId:\"eBq7IRLEL\",rendersWithMotion:true,scopeId:\"mKi0anJwt\",children:/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"eBq7IRLEL\",layoutId:\"eBq7IRLEL\",variant:matchVariant(\"foWHpHrfk\"),vr3GalQZm:\"Privacy policy\",width:\"100%\",x7kSahbL4:resolvedLinks9[0],...addPropertyOverrides({bVk6oWAF3:{x7kSahbL4:resolvedLinks9[1]},OEij7UgX_:{x7kSahbL4:resolvedLinks9[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-1609a255-a24d-43f9-80d1-49332bc2c4bd, rgb(138, 138, 138)))\"},children:\"\\xa9 2026 ValPay All rights reserved.\"})}),className:\"framer-op10ae\",\"data-framer-name\":\"Valpay copyrights\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"pnvI3H4QZ\",style:{\"--extracted-r6o4lv\":\"var(--token-1609a255-a24d-43f9-80d1-49332bc2c4bd, rgb(138, 138, 138))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-LevPi.framer-1mgzrn2, .framer-LevPi .framer-1mgzrn2 { display: block; }\",\".framer-LevPi.framer-1bxtkgx { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 80px 40px 64px 40px; position: relative; width: 1200px; }\",\".framer-LevPi .framer-1m827i2 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-1469xz2 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: flex-start; max-width: 1240px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-lftwu5 { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: auto; justify-content: flex-start; overflow: hidden; padding: 24px; position: relative; width: 1px; will-change: var(--framer-will-change-override, transform); }\",\".framer-LevPi .framer-1pnako4 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; max-width: 1120px; overflow: hidden; padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-LevPi .framer-kh22tz { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 32px; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-ravw79 { flex: none; height: 32px; position: relative; width: 99px; }\",\".framer-LevPi .framer-1ofeokk { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 60%; word-break: break-word; word-wrap: break-word; }\",\".framer-LevPi .framer-mi2dje { bottom: -255px; flex: none; gap: 10px; overflow: hidden; position: absolute; right: -292px; top: -255px; width: 665px; z-index: 1; }\",\".framer-LevPi .framer-1l1b9mh { flex: none; height: 266px; position: absolute; right: 235px; top: calc(57.339449541284424% - 266px / 2); width: 272px; }\",\".framer-LevPi .framer-1w6p6qv { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-LevPi .framer-z5wfr4 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-LevPi .framer-1s6rl6x { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-1u2xo8l, .framer-LevPi .framer-1wxukbo, .framer-LevPi .framer-9dm3p2 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-LevPi .framer-10hdt64, .framer-LevPi .framer-1e9q6jb, .framer-LevPi .framer-i58a4i { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-ni3lyd-container, .framer-LevPi .framer-dzbu1v-container, .framer-LevPi .framer-xazym1-container, .framer-LevPi .framer-11297nb-container, .framer-LevPi .framer-1lnclyt-container, .framer-LevPi .framer-h8tag6-container, .framer-LevPi .framer-y7s6as-container, .framer-LevPi .framer-p9fafu-container, .framer-LevPi .framer-8tln39-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-LevPi .framer-1kdsz1h, .framer-LevPi .framer-1w730i { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-LevPi .framer-cxzw6d { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 16px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-LevPi .framer-8nnxmh-container, .framer-LevPi .framer-c2b9so-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-LevPi .framer-xxshs2 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-LevPi .framer-op10ae { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-LevPi.framer-v-k0ge1z.framer-1bxtkgx { padding: 64px 40px 64px 40px; width: 810px; }\",\".framer-LevPi.framer-v-k0ge1z .framer-lftwu5 { flex: none; width: 230px; }\",\".framer-LevPi.framer-v-k0ge1z .framer-1ofeokk { width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge.framer-1bxtkgx { padding: 48px 16px 48px 16px; width: 390px; }\",\".framer-LevPi.framer-v-1afz6ge .framer-1469xz2 { flex-direction: column; gap: 16px; }\",\".framer-LevPi.framer-v-1afz6ge .framer-lftwu5 { align-self: unset; flex: none; height: min-content; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-kh22tz, .framer-LevPi.framer-v-1afz6ge .framer-8nnxmh-container { order: 0; }\",\".framer-LevPi.framer-v-1afz6ge .framer-1ofeokk { order: 1; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-1w6p6qv { flex: none; flex-direction: column; gap: 16px; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-z5wfr4 { flex: none; gap: 16px; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-1s6rl6x { padding: 16px; }\",\".framer-LevPi.framer-v-1afz6ge .framer-1kdsz1h, .framer-LevPi.framer-v-1afz6ge .framer-1w730i { flex: none; padding: 16px; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-i58a4i { gap: 10px; }\",\".framer-LevPi.framer-v-1afz6ge .framer-cxzw6d { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 16px; justify-content: flex-start; }\",\".framer-LevPi.framer-v-1afz6ge .framer-xxshs2 { align-content: flex-start; align-items: flex-start; flex: none; flex-direction: column; order: 1; width: 100%; }\",\".framer-LevPi.framer-v-1afz6ge .framer-op10ae { white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,'.framer-LevPi[data-border=\"true\"]::after, .framer-LevPi [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 360\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"bVk6oWAF3\":{\"layout\":[\"fixed\",\"auto\"]},\"OEij7UgX_\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"MLc2difUh\":\"companyDescription\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramermKi0anJwt=withCSS(Component,css,\"framer-LevPi\");export default FramermKi0anJwt;FramermKi0anJwt.displayName=\"Navigation / Footer\";FramermKi0anJwt.defaultProps={height:360,width:1200};addPropertyControls(FramermKi0anJwt,{variant:{options:[\"Nv1WrDwPR\",\"bVk6oWAF3\",\"OEij7UgX_\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum},MLc2difUh:{defaultValue:\"The trusted embedded payment solution for software platforms.\",displayTextArea:false,title:\"Company description\",type:ControlType.String},onMLc2difUhChange:{changes:\"MLc2difUh\",type:ControlType.ChangeHandler}});addFonts(FramermKi0anJwt,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/yDtI2UI8XcEg1W2je9XPN3Noo.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...NavigationNavLinkFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});FramermKi0anJwt.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(NavigationNavLink,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramermKi0anJwt\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"360\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"bVk6oWAF3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"OEij7UgX_\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"MLc2difUh\\\":\\\"companyDescription\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./mKi0anJwt.map","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 6 L 0 0 L 10.5 0 L 10.5 6 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"6px\" id=\"UHVnt1API\" transform=\"translate(6.75 12)\" width=\"10.5px\"/><path d=\"M 0 6 L 0 0 L 10.5 0 L 10.5 6\" fill=\"transparent\" height=\"6px\" id=\"DIjwRD5it\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6.75 12)\" width=\"10.5px\"/><path d=\"M 0 0 L 10.5 0\" fill=\"transparent\" height=\"1px\" id=\"X0mrbWUMy\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6.75 15)\" width=\"10.5px\"/><path d=\"M 0 0 L 21 0\" fill=\"transparent\" height=\"1px\" id=\"Re9m_Ydmu\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(1.5 18)\" width=\"21px\"/><path d=\"M 21 0 L 0 4.5\" fill=\"transparent\" height=\"4.5px\" id=\"VYlHiSLqP\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(1.5 4.5)\" width=\"21px\"/><path d=\"M 0 0 L 0 9.322\" fill=\"transparent\" height=\"9.321562499999999px\" id=\"dWRJFC1tG\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 8.678)\" width=\"1px\"/><path d=\"M 0 0 L 0 13.178\" fill=\"transparent\" height=\"13.178437500000001px\" id=\"I0UbYRnD2\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(21 4.822)\" width=\"1px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"1713590632\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-jpcEC\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-jpcEC { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Warehouse\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-jpcEC\");Icon.displayName=\"Warehouse\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Warehouse\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerDisableUnlink\":\"true\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 17.25 0 L 0.75 0 C 0.336 0 0 0.336 0 0.75 L 0 15.75 L 3 14.25 L 6 15.75 L 9 14.25 L 12 15.75 L 15 14.25 L 18 15.75 L 18 0.75 C 18 0.336 17.664 0 17.25 0 Z M 7.5 10.5 L 3 10.5 L 3 4.5 L 7.5 4.5 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"15.75px\" id=\"KqcyOQNAp\" transform=\"translate(3 4.5)\" width=\"18px\"/><path d=\"M 0 15.75 L 0 0.75 C 0 0.336 0.336 0 0.75 0 L 17.25 0 C 17.664 0 18 0.336 18 0.75 L 18 15.75 L 15 14.25 L 12 15.75 L 9 14.25 L 6 15.75 L 3 14.25 Z\" fill=\"transparent\" height=\"15.75px\" id=\"KyQhPziv9\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 4.5)\" width=\"18px\"/><path d=\"M 0 0 L 4.5 0\" fill=\"transparent\" height=\"1px\" id=\"Ipkl1xJOV\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(13.5 10.5)\" width=\"4.5px\"/><path d=\"M 0 0 L 4.5 0\" fill=\"transparent\" height=\"1px\" id=\"c23KgjGJ2\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(13.5 13.5)\" width=\"4.5px\"/><path d=\"M 0 6 L 0 0 L 4.5 0 L 4.5 6 Z\" fill=\"transparent\" height=\"6px\" id=\"To6ElIfX2\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6 9)\" width=\"4.5px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"4140047744\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-PMbhB\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-PMbhB { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Newspaper Clipping\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-PMbhB\");Icon.displayName=\"Newspaper Clipping\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerDisableUnlink\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Newspaper Clipping\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 9 C 0 4.029 4.029 0 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 C 4.029 18 0 13.971 0 9 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"18px\" id=\"LMIUelWZE\" transform=\"translate(3 3)\" width=\"18px\"/><path d=\"M 0 0 L 0 1.5\" fill=\"transparent\" height=\"1.5px\" id=\"ou4J5FGNY\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(12 6.75)\" width=\"1px\"/><path d=\"M 0 0 L 0 1.5\" fill=\"transparent\" height=\"1.5px\" id=\"R94JioAA1\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(12 15.75)\" width=\"1px\"/><path d=\"M 0 9 C 0 4.029 4.029 0 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 C 4.029 18 0 13.971 0 9 Z\" fill=\"transparent\" height=\"18px\" id=\"v8AfKHwco\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 3)\" width=\"18px\"/><path d=\"M 0.75 7.5 L 4.125 7.5 C 5.161 7.5 6 6.661 6 5.625 C 6 4.589 5.161 3.75 4.125 3.75 L 1.875 3.75 C 0.839 3.75 0 2.911 0 1.875 C 0 0.839 0.839 0 1.875 0 L 5.25 0\" fill=\"transparent\" height=\"7.5px\" id=\"tlMKNQNYo\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(9 8.25)\" width=\"6px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"2922751717\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-lZ1WP\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-lZ1WP { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Currency Circle Dollar\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-lZ1WP\");Icon.displayName=\"Currency Circle Dollar\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Currency Circle Dollar\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"24\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 3.75 C 0 1.679 1.679 0 3.75 0 C 5.821 0 7.5 1.679 7.5 3.75 C 7.5 5.821 5.821 7.5 3.75 7.5 C 1.679 7.5 0 5.821 0 3.75 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"7.5px\" id=\"v7J1zbXd9\" transform=\"translate(8.25 9.75)\" width=\"7.5px\"/><path d=\"M 0 3 C 0 1.343 1.343 0 3 0 C 4.657 0 6 1.343 6 3 C 6 4.657 4.657 6 3 6 C 1.343 6 0 4.657 0 3 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"6px\" id=\"OQhSWABIT\" transform=\"translate(3 5.25)\" width=\"6px\"/><path d=\"M 0 3 C 0 1.343 1.343 0 3 0 C 4.657 0 6 1.343 6 3 C 6 4.657 4.657 6 3 6 C 1.343 6 0 4.657 0 3 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"6px\" id=\"wFzBlJVd9\" transform=\"translate(15 5.25)\" width=\"6px\"/><path d=\"M 0 0 C 1.771 -0.001 3.439 0.833 4.5 2.25\" fill=\"transparent\" height=\"2.2500015894396626px\" id=\"E2sSkoOrF\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(18 11.25)\" width=\"4.5px\"/><path d=\"M 0 2.25 C 1.061 0.833 2.729 -0.001 4.5 0\" fill=\"transparent\" height=\"2.250001589439634px\" id=\"j9wFqcU3O\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(1.5 11.25)\" width=\"4.5px\"/><path d=\"M 0 3.75 C 0 1.679 1.679 0 3.75 0 C 5.821 0 7.5 1.679 7.5 3.75 C 7.5 5.821 5.821 7.5 3.75 7.5 C 1.679 7.5 0 5.821 0 3.75 Z\" fill=\"transparent\" height=\"7.5px\" id=\"FPPQexDBA\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(8.25 9.75)\" width=\"7.5px\"/><path d=\"M 0 3 C 1.095 1.141 3.092 0 5.25 0 C 7.408 0 9.405 1.141 10.5 3\" fill=\"transparent\" height=\"3px\" id=\"IAUbz8XxS\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(6.75 17.25)\" width=\"10.5px\"/><path d=\"M 0 2.25 C 0.39 0.741 1.87 -0.218 3.407 0.043 C 4.944 0.304 6.025 1.698 5.894 3.252 C 5.764 4.805 4.465 6 2.906 6\" fill=\"transparent\" height=\"6.000369122093474px\" id=\"ZCi3_szKp\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(15.094 5.25)\" width=\"5.904871228321724px\"/><path d=\"M 2.999 6 C 1.44 6 0.141 4.805 0.011 3.252 C -0.12 1.698 0.961 0.304 2.498 0.043 C 4.034 -0.218 5.515 0.741 5.905 2.25\" fill=\"transparent\" height=\"6.000369122093474px\" id=\"R5Ppmpsk_\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3.001 5.25)\" width=\"5.904871228321742px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"535953797\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-1qsf5\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-1qsf5 { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Users Three\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-1qsf5\");Icon.displayName=\"Users Three\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Users Three\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 1.5 9 C 0.672 9 0 8.328 0 7.5 L 0 1.5 C 0 0.672 0.672 0 1.5 0 L 11.25 0 C 12.078 0 12.75 0.672 12.75 1.5 L 12.75 7.5 C 12.75 8.328 12.078 9 11.25 9 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"9px\" id=\"z80zblETT\" transform=\"translate(1.5 1.5)\" width=\"12.75px\"/><path d=\"M 3 0 L 0 3 L 3 6\" fill=\"transparent\" height=\"6px\" id=\"pq7g0tbej\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 3)\" width=\"3px\"/><path d=\"M 0 0 L 3 3 L 0 6\" fill=\"transparent\" height=\"6px\" id=\"xQOaBoLiC\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(9.75 3)\" width=\"3px\"/><path d=\"M 12 0 L 14.25 0 C 14.664 0 15 0.336 15 0.75 L 15 14.25 C 15 14.664 14.664 15 14.25 15 L 0.75 15 C 0.336 15 0 14.664 0 14.25 L 0 8.25\" fill=\"transparent\" height=\"15px\" id=\"aazdQQiLt\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(4.5 4.5)\" width=\"15px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"4187999338\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-4Sg6B\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-4Sg6B { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Code Block\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-4Sg6B\");Icon.displayName=\"Code Block\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Code Block\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/*\n * utils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HouseFactory from\"https://framer.com/m/phosphor-icons/House.js@0.0.57\";import{defaultEvents,useIconSelection}from\"https://framer.com/m/utils-MaUy.js@OSpwWF91FHPVFyQJjMHt\";const iconKeys=[\"Acorn\",\"AddressBook\",\"AddressBookTabs\",\"AirTrafficControl\",\"Airplane\",\"AirplaneInFlight\",\"AirplaneLanding\",\"AirplaneTakeoff\",\"AirplaneTaxiing\",\"AirplaneTilt\",\"Airplay\",\"Alarm\",\"Alien\",\"AlignBottom\",\"AlignBottomSimple\",\"AlignCenterVertical\",\"AlignLeft\",\"AlignLeftSimple\",\"AlignRight\",\"AlignRightSimple\",\"AlignTop\",\"AlignTopSimple\",\"AmazonLogo\",\"Ambulance\",\"Anchor\",\"AnchorSimple\",\"AndroidLogo\",\"Angle\",\"AngularLogo\",\"Aperture\",\"AppStoreLogo\",\"AppWindow\",\"AppleLogo\",\"ApplePodcastsLogo\",\"ApproximateEquals\",\"Archive\",\"ArchiveBox\",\"ArchiveTray\",\"Armchair\",\"ArrowArcLeft\",\"ArrowArcRight\",\"ArrowBendDownLeft\",\"ArrowBendDownRight\",\"ArrowBendLeftDown\",\"ArrowBendLeftUp\",\"ArrowBendRightDown\",\"ArrowBendRightUp\",\"ArrowBendUpLeft\",\"ArrowBendUpRight\",\"ArrowCircleDown\",\"ArrowCircleDownLeft\",\"ArrowCircleDownRight\",\"ArrowCircleLeft\",\"ArrowCircleRight\",\"ArrowCircleUp\",\"ArrowCircleUpLeft\",\"ArrowCircleUpRight\",\"ArrowClockwise\",\"ArrowDown\",\"ArrowDownLeft\",\"ArrowDownRight\",\"ArrowElbowDownLeft\",\"ArrowElbowDownRight\",\"ArrowElbowLeft\",\"ArrowElbowLeftDown\",\"ArrowElbowLeftUp\",\"ArrowElbowRight\",\"ArrowElbowRightDown\",\"ArrowElbowRightUp\",\"ArrowElbowUpLeft\",\"ArrowElbowUpRight\",\"ArrowFatDown\",\"ArrowFatLeft\",\"ArrowFatLineDown\",\"ArrowFatLineLeft\",\"ArrowFatLineRight\",\"ArrowFatLineUp\",\"ArrowFatLinesDown\",\"ArrowFatLinesLeft\",\"ArrowFatLinesRight\",\"ArrowFatLinesUp\",\"ArrowFatRight\",\"ArrowFatUp\",\"ArrowLeft\",\"ArrowLineDown\",\"ArrowLineDownLeft\",\"ArrowLineDownRight\",\"ArrowLineLeft\",\"ArrowLineRight\",\"ArrowLineUp\",\"ArrowLineUpLeft\",\"ArrowLineUpRight\",\"ArrowRight\",\"ArrowSquareDown\",\"ArrowSquareDownLeft\",\"ArrowSquareDownRight\",\"ArrowSquareIn\",\"ArrowSquareLeft\",\"ArrowSquareOut\",\"ArrowSquareRight\",\"ArrowSquareUp\",\"ArrowSquareUpLeft\",\"ArrowSquareUpRight\",\"ArrowUDownLeft\",\"ArrowUDownRight\",\"ArrowULeftDown\",\"ArrowULeftUp\",\"ArrowURightDown\",\"ArrowURightUp\",\"ArrowUUpLeft\",\"ArrowUUpRight\",\"ArrowUp\",\"ArrowUpLeft\",\"ArrowUpRight\",\"ArrowsClockwise\",\"ArrowsDownUp\",\"ArrowsHorizontal\",\"ArrowsIn\",\"ArrowsInCardinal\",\"ArrowsInLineVertical\",\"ArrowsInSimple\",\"ArrowsLeftRight\",\"ArrowsMerge\",\"ArrowsOut\",\"ArrowsOutCardinal\",\"ArrowsOutSimple\",\"ArrowsSplit\",\"ArrowsVertical\",\"Article\",\"ArticleMedium\",\"ArticleNyTimes\",\"Asclepius\",\"Asterisk\",\"AsteriskSimple\",\"At\",\"Atom\",\"Avocado\",\"Axe\",\"Baby\",\"BabyCarriage\",\"Backpack\",\"Backspace\",\"Bag\",\"BagSimple\",\"Balloon\",\"Bandaids\",\"Bank\",\"Barbell\",\"Barcode\",\"Barn\",\"Barricade\",\"Baseball\",\"BaseballCap\",\"BaseballHelmet\",\"Basket\",\"Basketball\",\"Bathtub\",\"BatteryCharging\",\"BatteryEmpty\",\"BatteryFull\",\"BatteryHigh\",\"BatteryLow\",\"BatteryMedium\",\"BatteryPlus\",\"BatteryPlusVertical\",\"BatteryVerticalEmpty\",\"BatteryVerticalFull\",\"BatteryVerticalHigh\",\"BatteryVerticalLow\",\"BatteryWarning\",\"BeachBall\",\"Beanie\",\"Bed\",\"BeerBottle\",\"BeerStein\",\"BehanceLogo\",\"Bell\",\"BellRinging\",\"BellSimple\",\"BellSimpleRinging\",\"BellSimpleSlash\",\"BellSimpleZ\",\"BellSlash\",\"BellZ\",\"Belt\",\"BezierCurve\",\"Bicycle\",\"Binary\",\"Binoculars\",\"Biohazard\",\"Bird\",\"Blueprint\",\"Bluetooth\",\"BluetoothConnected\",\"BluetoothSlash\",\"BluetoothX\",\"Boat\",\"Bomb\",\"Bone\",\"Book\",\"BookBookmark\",\"BookOpen\",\"BookOpenText\",\"BookOpenUser\",\"BookUser\",\"Bookmark\",\"BookmarkSimple\",\"Bookmarks\",\"BookmarksSimple\",\"Books\",\"Boot\",\"Boules\",\"BoundingBox\",\"BowlFood\",\"BowlSteam\",\"BowlingBall\",\"BoxArrowDown\",\"BoxArrowUp\",\"BoxingGlove\",\"BracketsAngle\",\"BracketsCurly\",\"BracketsRound\",\"BracketsSquare\",\"Brain\",\"Brandy\",\"Bread\",\"Bridge\",\"Briefcase\",\"BriefcaseMetal\",\"Broadcast\",\"Broom\",\"Browser\",\"Browsers\",\"Bug\",\"BugBeetle\",\"BugDroid\",\"Building\",\"BuildingApartment\",\"BuildingOffice\",\"Buildings\",\"Bulldozer\",\"Bus\",\"Butterfly\",\"CableCar\",\"Cactus\",\"Cake\",\"Calculator\",\"Calendar\",\"CalendarBlank\",\"CalendarCheck\",\"CalendarDot\",\"CalendarDots\",\"CalendarHeart\",\"CalendarMinus\",\"CalendarPlus\",\"CalendarSlash\",\"CalendarStar\",\"CalendarX\",\"CallBell\",\"Camera\",\"CameraPlus\",\"CameraRotate\",\"CameraSlash\",\"Campfire\",\"Car\",\"CarBattery\",\"CarProfile\",\"CarSimple\",\"Cardholder\",\"Cards\",\"CardsThree\",\"CaretCircleDoubleUp\",\"CaretCircleDown\",\"CaretCircleLeft\",\"CaretCircleRight\",\"CaretCircleUp\",\"CaretCircleUpDown\",\"CaretDoubleDown\",\"CaretDoubleLeft\",\"CaretDoubleRight\",\"CaretDoubleUp\",\"CaretDown\",\"CaretLeft\",\"CaretLineDown\",\"CaretLineLeft\",\"CaretLineRight\",\"CaretLineUp\",\"CaretRight\",\"CaretUp\",\"CaretUpDown\",\"Carrot\",\"CashRegister\",\"CassetteTape\",\"CastleTurret\",\"Cat\",\"CellSignalFull\",\"CellSignalHigh\",\"CellSignalLow\",\"CellSignalMedium\",\"CellSignalNone\",\"CellSignalSlash\",\"CellSignalX\",\"CellTower\",\"Certificate\",\"Chair\",\"Chalkboard\",\"ChalkboardSimple\",\"ChalkboardTeacher\",\"Champagne\",\"ChargingStation\",\"ChartBar\",\"ChartBarHorizontal\",\"ChartDonut\",\"ChartLine\",\"ChartLineDown\",\"ChartLineUp\",\"ChartPie\",\"ChartPieSlice\",\"ChartPolar\",\"ChartScatter\",\"Chat\",\"ChatCentered\",\"ChatCenteredDots\",\"ChatCenteredSlash\",\"ChatCenteredText\",\"ChatCircle\",\"ChatCircleDots\",\"ChatCircleSlash\",\"ChatCircleText\",\"ChatDots\",\"ChatSlash\",\"ChatTeardrop\",\"ChatTeardropDots\",\"ChatTeardropSlash\",\"ChatTeardropText\",\"ChatText\",\"Chats\",\"ChatsCircle\",\"ChatsTeardrop\",\"Check\",\"CheckCircle\",\"CheckFat\",\"CheckSquare\",\"CheckSquareOffset\",\"Checkerboard\",\"Checks\",\"Cheers\",\"Cheese\",\"ChefHat\",\"Cherries\",\"Church\",\"Cigarette\",\"CigaretteSlash\",\"Circle\",\"CircleDashed\",\"CircleHalf\",\"CircleHalfTilt\",\"CircleNotch\",\"CirclesFour\",\"CirclesThree\",\"CirclesThreePlus\",\"Circuitry\",\"City\",\"Clipboard\",\"ClipboardText\",\"Clock\",\"ClockAfternoon\",\"ClockClockwise\",\"ClockCountdown\",\"ClockUser\",\"ClosedCaptioning\",\"Cloud\",\"CloudArrowDown\",\"CloudArrowUp\",\"CloudCheck\",\"CloudFog\",\"CloudLightning\",\"CloudMoon\",\"CloudRain\",\"CloudSlash\",\"CloudSnow\",\"CloudSun\",\"CloudWarning\",\"CloudX\",\"Clover\",\"Club\",\"CoatHanger\",\"CodaLogo\",\"Code\",\"CodeBlock\",\"CodeSimple\",\"CodepenLogo\",\"CodesandboxLogo\",\"Coffee\",\"CoffeeBean\",\"Coin\",\"CoinVertical\",\"Coins\",\"Columns\",\"ColumnsPlusLeft\",\"ColumnsPlusRight\",\"Command\",\"Compass\",\"CompassRose\",\"CompassTool\",\"ComputerTower\",\"Confetti\",\"ContactlessPayment\",\"Control\",\"Cookie\",\"CookingPot\",\"Copy\",\"CopySimple\",\"Copyleft\",\"Copyright\",\"CornersIn\",\"CornersOut\",\"Couch\",\"CourtBasketball\",\"Cow\",\"CowboyHat\",\"Cpu\",\"Crane\",\"CraneTower\",\"CreditCard\",\"Cricket\",\"Crop\",\"Cross\",\"Crosshair\",\"CrosshairSimple\",\"Crown\",\"CrownCross\",\"CrownSimple\",\"Cube\",\"CubeFocus\",\"CubeTransparent\",\"CurrencyBtc\",\"CurrencyCircleDollar\",\"CurrencyCny\",\"CurrencyDollar\",\"CurrencyDollarSimple\",\"CurrencyEth\",\"CurrencyEur\",\"CurrencyGbp\",\"CurrencyInr\",\"CurrencyJpy\",\"CurrencyKrw\",\"CurrencyKzt\",\"CurrencyNgn\",\"CurrencyRub\",\"Cursor\",\"CursorClick\",\"CursorText\",\"Cylinder\",\"Database\",\"Desk\",\"Desktop\",\"DesktopTower\",\"Detective\",\"DevToLogo\",\"DeviceMobile\",\"DeviceMobileCamera\",\"DeviceMobileSlash\",\"DeviceMobileSpeaker\",\"DeviceRotate\",\"DeviceTablet\",\"DeviceTabletCamera\",\"DeviceTabletSpeaker\",\"Devices\",\"Diamond\",\"DiamondsFour\",\"DiceFive\",\"DiceFour\",\"DiceOne\",\"DiceSix\",\"DiceThree\",\"DiceTwo\",\"Disc\",\"DiscoBall\",\"DiscordLogo\",\"Divide\",\"Dna\",\"Dog\",\"Door\",\"DoorOpen\",\"Dot\",\"DotOutline\",\"DotsNine\",\"DotsSix\",\"DotsSixVertical\",\"DotsThree\",\"DotsThreeCircle\",\"DotsThreeOutline\",\"DotsThreeVertical\",\"Download\",\"DownloadSimple\",\"Dress\",\"Dresser\",\"DribbbleLogo\",\"Drone\",\"Drop\",\"DropHalf\",\"DropHalfBottom\",\"DropSimple\",\"DropSlash\",\"DropboxLogo\",\"Ear\",\"EarSlash\",\"Egg\",\"EggCrack\",\"Eject\",\"EjectSimple\",\"Elevator\",\"Empty\",\"Engine\",\"Envelope\",\"EnvelopeOpen\",\"EnvelopeSimple\",\"EnvelopeSimpleOpen\",\"Equalizer\",\"Equals\",\"Eraser\",\"EscalatorDown\",\"EscalatorUp\",\"Exam\",\"ExclamationMark\",\"Exclude\",\"ExcludeSquare\",\"Export\",\"Eye\",\"EyeClosed\",\"EyeSlash\",\"Eyedropper\",\"EyedropperSample\",\"Eyeglasses\",\"Eyes\",\"FaceMask\",\"FacebookLogo\",\"Factory\",\"Faders\",\"FadersHorizontal\",\"FalloutShelter\",\"Fan\",\"Farm\",\"FastForward\",\"FastForwardCircle\",\"Feather\",\"FediverseLogo\",\"FigmaLogo\",\"File\",\"FileArchive\",\"FileArrowDown\",\"FileArrowUp\",\"FileAudio\",\"FileC\",\"FileCloud\",\"FileCode\",\"FileCpp\",\"FileCss\",\"FileCsv\",\"FileDashed\",\"FileDoc\",\"FileHtml\",\"FileImage\",\"FileIni\",\"FileJpg\",\"FileJs\",\"FileJsx\",\"FileLock\",\"FileMagnifyingGlass\",\"FileMd\",\"FileMinus\",\"FilePdf\",\"FilePlus\",\"FilePng\",\"FilePpt\",\"FilePy\",\"FileRs\",\"FileSql\",\"FileSvg\",\"FileText\",\"FileTs\",\"FileTsx\",\"FileTxt\",\"FileVideo\",\"FileVue\",\"FileX\",\"FileXls\",\"FileZip\",\"Files\",\"FilmReel\",\"FilmScript\",\"FilmSlate\",\"FilmStrip\",\"Fingerprint\",\"FingerprintSimple\",\"FinnTheHuman\",\"Fire\",\"FireExtinguisher\",\"FireSimple\",\"FireTruck\",\"FirstAid\",\"FirstAidKit\",\"Fish\",\"FishSimple\",\"Flag\",\"FlagBanner\",\"FlagBannerFold\",\"FlagCheckered\",\"FlagPennant\",\"Flame\",\"Flashlight\",\"Flask\",\"FlipHorizontal\",\"FlipVertical\",\"FloppyDisk\",\"FloppyDiskBack\",\"FlowArrow\",\"Flower\",\"FlowerLotus\",\"FlowerTulip\",\"FlyingSaucer\",\"Folder\",\"FolderDashed\",\"FolderLock\",\"FolderMinus\",\"FolderNotch\",\"FolderNotchMinus\",\"FolderNotchOpen\",\"FolderNotchPlus\",\"FolderOpen\",\"FolderPlus\",\"FolderSimple\",\"FolderSimpleDashed\",\"FolderSimpleLock\",\"FolderSimpleMinus\",\"FolderSimplePlus\",\"FolderSimpleStar\",\"FolderSimpleUser\",\"FolderStar\",\"FolderUser\",\"Folders\",\"Football\",\"FootballHelmet\",\"Footprints\",\"ForkKnife\",\"FourK\",\"FrameCorners\",\"FramerLogo\",\"Function\",\"Funnel\",\"FunnelSimple\",\"FunnelSimpleX\",\"FunnelX\",\"GameController\",\"Garage\",\"GasCan\",\"GasPump\",\"Gauge\",\"Gavel\",\"Gear\",\"GearFine\",\"GearSix\",\"GenderFemale\",\"GenderIntersex\",\"GenderMale\",\"GenderNeuter\",\"GenderNonbinary\",\"GenderTransgender\",\"Ghost\",\"Gif\",\"Gift\",\"GitBranch\",\"GitCommit\",\"GitDiff\",\"GitFork\",\"GitMerge\",\"GitPullRequest\",\"GithubLogo\",\"GitlabLogo\",\"GitlabLogoSimple\",\"Globe\",\"GlobeHemisphereEast\",\"GlobeHemisphereWest\",\"GlobeSimple\",\"GlobeSimpleX\",\"GlobeStand\",\"GlobeX\",\"Goggles\",\"Golf\",\"GoodreadsLogo\",\"GoogleCardboardLogo\",\"GoogleChromeLogo\",\"GoogleDriveLogo\",\"GoogleLogo\",\"GooglePhotosLogo\",\"GooglePlayLogo\",\"GooglePodcastsLogo\",\"Gps\",\"GpsFix\",\"GpsSlash\",\"Gradient\",\"GraduationCap\",\"Grains\",\"GrainsSlash\",\"Graph\",\"GraphicsCard\",\"GreaterThan\",\"GreaterThanOrEqual\",\"GridFour\",\"GridNine\",\"Guitar\",\"HairDryer\",\"Hamburger\",\"Hammer\",\"Hand\",\"HandArrowDown\",\"HandArrowUp\",\"HandCoins\",\"HandDeposit\",\"HandEye\",\"HandFist\",\"HandGrabbing\",\"HandHeart\",\"HandPalm\",\"HandPeace\",\"HandPointing\",\"HandSoap\",\"HandSwipeLeft\",\"HandSwipeRight\",\"HandTap\",\"HandWaving\",\"HandWithdraw\",\"Handbag\",\"HandbagSimple\",\"HandsClapping\",\"HandsPraying\",\"Handshake\",\"HardDrive\",\"HardDrives\",\"HardHat\",\"Hash\",\"HashStraight\",\"HeadCircuit\",\"Headlights\",\"Headphones\",\"Headset\",\"Heart\",\"HeartBreak\",\"HeartHalf\",\"HeartStraight\",\"HeartStraightBreak\",\"Heartbeat\",\"Hexagon\",\"HighDefinition\",\"HighHeel\",\"Highlighter\",\"HighlighterCircle\",\"Hockey\",\"Hoodie\",\"Horse\",\"Hospital\",\"Hourglass\",\"HourglassHigh\",\"HourglassLow\",\"HourglassMedium\",\"HourglassSimple\",\"HourglassSimpleHigh\",\"HourglassSimpleLow\",\"House\",\"HouseLine\",\"HouseSimple\",\"Hurricane\",\"IceCream\",\"IdentificationBadge\",\"IdentificationCard\",\"Image\",\"ImageBroken\",\"ImageSquare\",\"Images\",\"ImagesSquare\",\"Infinity\",\"Info\",\"InstagramLogo\",\"Intersect\",\"IntersectSquare\",\"IntersectThree\",\"Intersection\",\"Invoice\",\"Island\",\"Jar\",\"JarLabel\",\"Jeep\",\"Joystick\",\"Kanban\",\"Key\",\"KeyReturn\",\"Keyboard\",\"Keyhole\",\"Knife\",\"Ladder\",\"LadderSimple\",\"Lamp\",\"LampPendant\",\"Laptop\",\"Lasso\",\"LastfmLogo\",\"Layout\",\"Leaf\",\"Lectern\",\"Lego\",\"LegoSmiley\",\"LessThan\",\"LessThanOrEqual\",\"LetterCircleH\",\"LetterCircleP\",\"LetterCircleV\",\"Lifebuoy\",\"Lightbulb\",\"LightbulbFilament\",\"Lighthouse\",\"Lightning\",\"LightningA\",\"LightningSlash\",\"LineSegment\",\"LineSegments\",\"LineVertical\",\"Link\",\"LinkBreak\",\"LinkSimple\",\"LinkSimpleBreak\",\"LinkSimpleHorizontal\",\"LinkedinLogo\",\"LinktreeLogo\",\"LinuxLogo\",\"List\",\"ListBullets\",\"ListChecks\",\"ListDashes\",\"ListHeart\",\"ListMagnifyingGlass\",\"ListNumbers\",\"ListPlus\",\"ListStar\",\"Lock\",\"LockKey\",\"LockKeyOpen\",\"LockLaminated\",\"LockLaminatedOpen\",\"LockOpen\",\"LockSimple\",\"LockSimpleOpen\",\"Lockers\",\"Log\",\"MagicWand\",\"Magnet\",\"MagnetStraight\",\"MagnifyingGlass\",\"MagnifyingGlassMinus\",\"MagnifyingGlassPlus\",\"Mailbox\",\"MapPin\",\"MapPinArea\",\"MapPinLine\",\"MapPinPlus\",\"MapPinSimple\",\"MapPinSimpleArea\",\"MapPinSimpleLine\",\"MapTrifold\",\"MarkdownLogo\",\"MarkerCircle\",\"Martini\",\"MaskHappy\",\"MaskSad\",\"MastodonLogo\",\"MathOperations\",\"MatrixLogo\",\"Medal\",\"MedalMilitary\",\"MediumLogo\",\"Megaphone\",\"MegaphoneSimple\",\"MemberOf\",\"Memory\",\"MessengerLogo\",\"MetaLogo\",\"Meteor\",\"Metronome\",\"Microphone\",\"MicrophoneSlash\",\"MicrophoneStage\",\"Microscope\",\"MicrosoftExcelLogo\",\"MicrosoftOutlookLogo\",\"MicrosoftTeamsLogo\",\"MicrosoftWordLogo\",\"Minus\",\"MinusCircle\",\"MinusSquare\",\"Money\",\"MoneyWavy\",\"Monitor\",\"MonitorArrowUp\",\"MonitorPlay\",\"Moon\",\"MoonStars\",\"Moped\",\"MopedFront\",\"Mosque\",\"Motorcycle\",\"Mountains\",\"Mouse\",\"MouseLeftClick\",\"MouseMiddleClick\",\"MouseRightClick\",\"MouseScroll\",\"MouseSimple\",\"MusicNote\",\"MusicNoteSimple\",\"MusicNotes\",\"MusicNotesMinus\",\"MusicNotesPlus\",\"MusicNotesSimple\",\"NavigationArrow\",\"Needle\",\"Network\",\"NetworkSlash\",\"NetworkX\",\"Newspaper\",\"NewspaperClipping\",\"NotEquals\",\"NotMemberOf\",\"NotSubsetOf\",\"NotSupersetOf\",\"Notches\",\"Note\",\"NoteBlank\",\"NotePencil\",\"Notebook\",\"Notepad\",\"Notification\",\"NotionLogo\",\"NuclearPlant\",\"NumberCircleEight\",\"NumberCircleFive\",\"NumberCircleFour\",\"NumberCircleNine\",\"NumberCircleOne\",\"NumberCircleSeven\",\"NumberCircleSix\",\"NumberCircleThree\",\"NumberCircleTwo\",\"NumberCircleZero\",\"NumberEight\",\"NumberFive\",\"NumberFour\",\"NumberNine\",\"NumberOne\",\"NumberSeven\",\"NumberSix\",\"NumberSquareEight\",\"NumberSquareFive\",\"NumberSquareFour\",\"NumberSquareNine\",\"NumberSquareOne\",\"NumberSquareSeven\",\"NumberSquareSix\",\"NumberSquareThree\",\"NumberSquareTwo\",\"NumberSquareZero\",\"NumberThree\",\"NumberTwo\",\"NumberZero\",\"Numpad\",\"Nut\",\"NyTimesLogo\",\"Octagon\",\"OfficeChair\",\"Onigiri\",\"OpenAiLogo\",\"Option\",\"Orange\",\"OrangeSlice\",\"Oven\",\"Package\",\"PaintBrush\",\"PaintBrushBroad\",\"PaintBrushHousehold\",\"PaintBucket\",\"PaintRoller\",\"Palette\",\"Panorama\",\"Pants\",\"PaperPlane\",\"PaperPlaneRight\",\"PaperPlaneTilt\",\"Paperclip\",\"PaperclipHorizontal\",\"Parachute\",\"Paragraph\",\"Parallelogram\",\"Park\",\"Password\",\"Path\",\"PatreonLogo\",\"Pause\",\"PauseCircle\",\"PawPrint\",\"PaypalLogo\",\"Peace\",\"Pen\",\"PenNib\",\"PenNibStraight\",\"Pencil\",\"PencilCircle\",\"PencilLine\",\"PencilRuler\",\"PencilSimple\",\"PencilSimpleLine\",\"PencilSimpleSlash\",\"PencilSlash\",\"Pentagon\",\"Pentagram\",\"Pepper\",\"Percent\",\"Person\",\"PersonArmsSpread\",\"PersonSimple\",\"PersonSimpleBike\",\"PersonSimpleCircle\",\"PersonSimpleHike\",\"PersonSimpleRun\",\"PersonSimpleSki\",\"PersonSimpleSwim\",\"PersonSimpleTaiChi\",\"PersonSimpleThrow\",\"PersonSimpleWalk\",\"Perspective\",\"Phone\",\"PhoneCall\",\"PhoneDisconnect\",\"PhoneIncoming\",\"PhoneList\",\"PhoneOutgoing\",\"PhonePause\",\"PhonePlus\",\"PhoneSlash\",\"PhoneTransfer\",\"PhoneX\",\"PhosphorLogo\",\"Pi\",\"PianoKeys\",\"PicnicTable\",\"PictureInPicture\",\"PiggyBank\",\"Pill\",\"PingPong\",\"PintGlass\",\"PinterestLogo\",\"Pinwheel\",\"Pipe\",\"PipeWrench\",\"PixLogo\",\"Pizza\",\"Placeholder\",\"Planet\",\"Plant\",\"Play\",\"PlayCircle\",\"PlayPause\",\"Playlist\",\"Plug\",\"PlugCharging\",\"Plugs\",\"PlugsConnected\",\"Plus\",\"PlusCircle\",\"PlusMinus\",\"PlusSquare\",\"PokerChip\",\"PoliceCar\",\"Polygon\",\"Popcorn\",\"Popsicle\",\"PottedPlant\",\"Power\",\"Prescription\",\"Presentation\",\"PresentationChart\",\"Printer\",\"Prohibit\",\"ProhibitInset\",\"ProjectorScreen\",\"ProjectorScreenChart\",\"Pulse\",\"PushPin\",\"PushPinSimple\",\"PushPinSimpleSlash\",\"PushPinSlash\",\"PuzzlePiece\",\"QrCode\",\"Question\",\"QuestionMark\",\"Queue\",\"Quotes\",\"Rabbit\",\"Racquet\",\"Radical\",\"Radio\",\"RadioButton\",\"Radioactive\",\"Rainbow\",\"RainbowCloud\",\"Ranking\",\"ReadCvLogo\",\"Receipt\",\"ReceiptX\",\"Record\",\"Rectangle\",\"RectangleDashed\",\"Recycle\",\"RedditLogo\",\"Repeat\",\"RepeatOnce\",\"ReplitLogo\",\"Resize\",\"Rewind\",\"RewindCircle\",\"RoadHorizon\",\"Robot\",\"Rocket\",\"RocketLaunch\",\"Rows\",\"RowsPlusBottom\",\"RowsPlusTop\",\"Rss\",\"RssSimple\",\"Rug\",\"Ruler\",\"Sailboat\",\"Scales\",\"Scan\",\"ScanSmiley\",\"Scissors\",\"Scooter\",\"Screencast\",\"Screwdriver\",\"Scribble\",\"ScribbleLoop\",\"Scroll\",\"Seal\",\"SealCheck\",\"SealPercent\",\"SealQuestion\",\"SealWarning\",\"Seat\",\"Seatbelt\",\"SecurityCamera\",\"Selection\",\"SelectionAll\",\"SelectionBackground\",\"SelectionForeground\",\"SelectionInverse\",\"SelectionPlus\",\"SelectionSlash\",\"Shapes\",\"Share\",\"ShareFat\",\"ShareNetwork\",\"Shield\",\"ShieldCheck\",\"ShieldCheckered\",\"ShieldChevron\",\"ShieldPlus\",\"ShieldSlash\",\"ShieldStar\",\"ShieldWarning\",\"ShippingContainer\",\"ShirtFolded\",\"ShootingStar\",\"ShoppingBag\",\"ShoppingBagOpen\",\"ShoppingCart\",\"ShoppingCartSimple\",\"Shovel\",\"Shower\",\"Shrimp\",\"Shuffle\",\"ShuffleAngular\",\"ShuffleSimple\",\"Sidebar\",\"SidebarSimple\",\"Sigma\",\"SignIn\",\"SignOut\",\"Signature\",\"Signpost\",\"SimCard\",\"Siren\",\"SketchLogo\",\"SkipBack\",\"SkipBackCircle\",\"SkipForward\",\"SkipForwardCircle\",\"Skull\",\"SkypeLogo\",\"SlackLogo\",\"Sliders\",\"SlidersHorizontal\",\"Slideshow\",\"Smiley\",\"SmileyAngry\",\"SmileyBlank\",\"SmileyMeh\",\"SmileyMelting\",\"SmileyNervous\",\"SmileySad\",\"SmileySticker\",\"SmileyWink\",\"SmileyXEyes\",\"SnapchatLogo\",\"Sneaker\",\"SneakerMove\",\"Snowflake\",\"SoccerBall\",\"Sock\",\"SolarPanel\",\"SolarRoof\",\"SortAscending\",\"SortDescending\",\"SoundcloudLogo\",\"Spade\",\"Sparkle\",\"SpeakerHifi\",\"SpeakerHigh\",\"SpeakerLow\",\"SpeakerNone\",\"SpeakerSimpleHigh\",\"SpeakerSimpleLow\",\"SpeakerSimpleNone\",\"SpeakerSimpleSlash\",\"SpeakerSimpleX\",\"SpeakerSlash\",\"SpeakerX\",\"Speedometer\",\"Sphere\",\"Spinner\",\"SpinnerBall\",\"SpinnerGap\",\"Spiral\",\"SplitHorizontal\",\"SplitVertical\",\"SpotifyLogo\",\"SprayBottle\",\"Square\",\"SquareHalf\",\"SquareHalfBottom\",\"SquareLogo\",\"SquareSplitVertical\",\"SquaresFour\",\"Stack\",\"StackMinus\",\"StackOverflowLogo\",\"StackPlus\",\"StackSimple\",\"Stairs\",\"Stamp\",\"StandardDefinition\",\"Star\",\"StarAndCrescent\",\"StarFour\",\"StarHalf\",\"StarOfDavid\",\"SteamLogo\",\"SteeringWheel\",\"Steps\",\"Stethoscope\",\"Sticker\",\"Stool\",\"Stop\",\"StopCircle\",\"Storefront\",\"Strategy\",\"StripeLogo\",\"Student\",\"SubsetOf\",\"SubsetProperOf\",\"Subtitles\",\"SubtitlesSlash\",\"Subtract\",\"SubtractSquare\",\"Subway\",\"Suitcase\",\"SuitcaseRolling\",\"SuitcaseSimple\",\"Sun\",\"SunDim\",\"SunHorizon\",\"Sunglasses\",\"SupersetOf\",\"SupersetProperOf\",\"Swap\",\"Swatches\",\"SwimmingPool\",\"Sword\",\"Synagogue\",\"Syringe\",\"TShirt\",\"Table\",\"Tabs\",\"Tag\",\"TagChevron\",\"TagSimple\",\"Target\",\"Taxi\",\"TeaBag\",\"TelegramLogo\",\"Television\",\"TelevisionSimple\",\"TennisBall\",\"Tent\",\"Terminal\",\"TerminalWindow\",\"TestTube\",\"TextAUnderline\",\"TextAa\",\"TextAlignCenter\",\"TextAlignJustify\",\"TextAlignLeft\",\"TextAlignRight\",\"TextB\",\"TextColumns\",\"TextH\",\"TextHFive\",\"TextHFour\",\"TextHOne\",\"TextHSix\",\"TextHThree\",\"TextHTwo\",\"TextIndent\",\"TextItalic\",\"TextOutdent\",\"TextStrikethrough\",\"TextSubscript\",\"TextSuperscript\",\"TextT\",\"TextTSlash\",\"TextUnderline\",\"Textbox\",\"Thermometer\",\"ThermometerCold\",\"ThermometerHot\",\"ThermometerSimple\",\"ThreadsLogo\",\"ThreeD\",\"ThumbsDown\",\"ThumbsUp\",\"Ticket\",\"TidalLogo\",\"TiktokLogo\",\"Tilde\",\"Timer\",\"TipJar\",\"Tipi\",\"Tire\",\"ToggleLeft\",\"ToggleRight\",\"Toilet\",\"ToiletPaper\",\"Toolbox\",\"Tooth\",\"Tornado\",\"Tote\",\"ToteSimple\",\"Towel\",\"Tractor\",\"Trademark\",\"TrademarkRegistered\",\"TrafficCone\",\"TrafficSign\",\"TrafficSignal\",\"Train\",\"TrainRegional\",\"TrainSimple\",\"Tram\",\"Translate\",\"Trash\",\"TrashSimple\",\"Tray\",\"TrayArrowDown\",\"TrayArrowUp\",\"TreasureChest\",\"Tree\",\"TreeEvergreen\",\"TreePalm\",\"TreeStructure\",\"TreeView\",\"TrendDown\",\"TrendUp\",\"Triangle\",\"TriangleDashed\",\"Trolley\",\"TrolleySuitcase\",\"Trophy\",\"Truck\",\"TruckTrailer\",\"TumblrLogo\",\"TwitchLogo\",\"TwitterLogo\",\"Umbrella\",\"UmbrellaSimple\",\"Union\",\"Unite\",\"UniteSquare\",\"Upload\",\"UploadSimple\",\"Usb\",\"User\",\"UserCheck\",\"UserCircle\",\"UserCircleCheck\",\"UserCircleDashed\",\"UserCircleGear\",\"UserCircleMinus\",\"UserCirclePlus\",\"UserFocus\",\"UserGear\",\"UserList\",\"UserMinus\",\"UserPlus\",\"UserRectangle\",\"UserSound\",\"UserSquare\",\"UserSwitch\",\"Users\",\"UsersFour\",\"UsersThree\",\"Van\",\"Vault\",\"VectorThree\",\"VectorTwo\",\"Vibrate\",\"Video\",\"VideoCamera\",\"VideoCameraSlash\",\"VideoConference\",\"Vignette\",\"VinylRecord\",\"VirtualReality\",\"Virus\",\"Visor\",\"Voicemail\",\"Volleyball\",\"Wall\",\"Wallet\",\"Warehouse\",\"Warning\",\"WarningCircle\",\"WarningDiamond\",\"WarningOctagon\",\"WashingMachine\",\"Watch\",\"WaveSawtooth\",\"WaveSine\",\"WaveSquare\",\"WaveTriangle\",\"Waveform\",\"WaveformSlash\",\"Waves\",\"Webcam\",\"WebcamSlash\",\"WebhooksLogo\",\"WechatLogo\",\"WhatsappLogo\",\"Wheelchair\",\"WheelchairMotion\",\"WifiHigh\",\"WifiLow\",\"WifiMedium\",\"WifiNone\",\"WifiSlash\",\"WifiX\",\"Wind\",\"Windmill\",\"WindowsLogo\",\"Wine\",\"Wrench\",\"X\",\"XCircle\",\"XLogo\",\"XSquare\",\"Yarn\",\"YinYang\",\"YoutubeLogo\"];const moduleBaseUrl=\"https://framer.com/m/phosphor-icons/\";const weightOptions=[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"];const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * PHOSPHOR\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,weight,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);const[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HouseFactory(React):null);async function importModule(){// Get the selected module\ntry{const version=\"0.0.57\";const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@${version}`;const module=await import(/* webpackIgnore: true */iconModuleUrl);if(isMounted.current)setSelectedIcon(module.default(React));}catch(err){if(isMounted.current)setSelectedIcon(null);}}useEffect(()=>{isMounted.current=true;importModule();return()=>{isMounted.current=false;};},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/_jsx(NullState,{}):null;return /*#__PURE__*/_jsx(motion.div,{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",style:{userSelect:\"none\",width:\"100%\",height:\"100%\",display:\"inline-block\",fill:color,color,flexShrink:0,transform:mirrored?\"scale(-1, 1)\":undefined},focusable:\"false\",color:color,children:/*#__PURE__*/_jsx(SelectedIcon,{color:color,weight:weight})}):emptyState});}Icon.displayName=\"Phosphor\";Icon.defaultProps={width:24,height:24,iconSelection:\"House\",iconSearch:\"House\",color:\"#66F\",selectByList:true,weight:\"regular\",mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Phosphor site](https://phosphoricons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},weight:{type:ControlType.Enum,title:\"Weight\",optionTitles:weightOptions.map(piece=>piece.charAt(0).toUpperCase()+piece.slice(1)),options:weightOptions,defaultValue:Icon.defaultProps.weight},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Phosphor.map","// Generated by Framer (3f060d6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getPropertyControls,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor1}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/V2gQ6rBc1czq5vzQcz5e/zkOCpcrZKye0wlfjjjoe/Phosphor.js\";const PhosphorFonts=getFonts(Phosphor);const Phosphor1Controls=getPropertyControls(Phosphor1);const enabledGestures={hkOPESYFS:{hover:true},PjCA2dMTI:{hover:true}};const cycleOrder=[\"hkOPESYFS\",\"KqLNcRqs1\",\"PjCA2dMTI\"];const serializationHash=\"framer-etA1p\";const variantClassNames={hkOPESYFS:\"framer-v-1izqr8s\",KqLNcRqs1:\"framer-v-6hc0xm\",PjCA2dMTI:\"framer-v-1d6kb2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const JxS39eB8d=undefined;const pLBUm7cCY=undefined;const gxMJH5Dfk=undefined;const SjFy9z8Vn=undefined;const XW1Q11KMX=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:240,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 1\":\"hkOPESYFS\",Mobile:\"KqLNcRqs1\",Social:\"PjCA2dMTI\"};const Variants=motion.create(React.Fragment);const getProps=({description,height,hover,icon,id,link,page,width,...props})=>{return{...props,gxMJH5Dfk:icon??props.gxMJH5Dfk??\"Circuitry\",JxS39eB8d:hover??props.JxS39eB8d,pLBUm7cCY:link??props.pLBUm7cCY,SjFy9z8Vn:page??props.SjFy9z8Vn??\"Page link\",variant:humanReadableVariantMap[props.variant]??props.variant??\"hkOPESYFS\",XW1Q11KMX:description??props.XW1Q11KMX??\"Page description text\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,JxS39eB8d,SjFy9z8Vn,XW1Q11KMX,gxMJH5Dfk,pLBUm7cCY,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"hkOPESYFS\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onMouseEnterjbqxow=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(JxS39eB8d){const res=await JxS39eB8d(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"PjCA2dMTI-hover\")return false;if(baseVariant===\"PjCA2dMTI\")return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"KqLNcRqs1\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:pLBUm7cCY,motionChild:true,nodeId:\"hkOPESYFS\",openInNewTab:false,scopeId:\"YvXKgVWSM\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1izqr8s\",className,classNames)} framer-15i4kt4`,\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"hkOPESYFS\",onMouseEnter:onMouseEnterjbqxow,ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(250, 249, 248, 0)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{\"hkOPESYFS-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\"},KqLNcRqs1:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(34, 34, 34, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\"},PjCA2dMTI:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0}},...addPropertyOverrides({KqLNcRqs1:{\"data-border\":true,\"data-framer-name\":\"Mobile\"},PjCA2dMTI:{\"data-framer-name\":\"Social\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-13az8vx\",layoutDependency:layoutDependency,layoutId:\"Mvy2__eVA\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-17xvldr\",\"data-framer-name\":\"Feature Icon\",layoutDependency:layoutDependency,layoutId:\"BDBux_wXh\",style:{background:\"linear-gradient(135deg, rgba(108, 196, 160, 0.37) -22%, rgba(108, 196, 160, 0.15) 100%)\",borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4},variants:{\"hkOPESYFS-hover\":{background:\"linear-gradient(135deg, rgb(108, 196, 160) -15.000000000000002%, rgb(67, 124, 192) 200%)\"},\"PjCA2dMTI-hover\":{background:\"linear-gradient(135deg, rgb(108, 196, 160) -15.000000000000002%, rgb(67, 124, 192) 200%)\"},KqLNcRqs1:{background:\"rgba(0, 0, 0, 0)\"},PjCA2dMTI:{background:\"linear-gradient(135deg, rgba(157, 237, 204, 0.37) -22%, rgba(108, 196, 160, 0.15) 249.00000000000003%)\"}},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ilbt2z\",layoutDependency:layoutDependency,layoutId:\"c2KMgvehH\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-txixtk-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"EO7M0qJeL-container\",nodeId:\"EO7M0qJeL\",rendersWithMotion:true,scopeId:\"YvXKgVWSM\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",height:\"100%\",iconSearch:\"House\",iconSelection:gxMJH5Dfk,id:\"EO7M0qJeL\",layoutId:\"EO7M0qJeL\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"fill\",width:\"100%\",...addPropertyOverrides({\"hkOPESYFS-hover\":{color:\"var(--token-02790b17-fe04-450b-b6a5-a63a36b996a2, rgb(240, 250, 245))\"},\"PjCA2dMTI-hover\":{color:\"var(--token-02790b17-fe04-450b-b6a5-a63a36b996a2, rgb(240, 250, 245))\"},PjCA2dMTI:{weight:\"light\"}},baseVariant,gestureVariant)})})})})}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-j68n9k\",\"data-framer-name\":\"Title\",layoutDependency:layoutDependency,layoutId:\"bxyFHYDZM\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34)))\"},children:\"Page link\"})}),className:\"framer-1v2bz1w\",fonts:[\"Inter-Medium\"],layoutDependency:layoutDependency,layoutId:\"vatGa0zRV\",style:{\"--extracted-r6o4lv\":\"var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},text:SjFy9z8Vn,variants:{\"hkOPESYFS-hover\":{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"hkOPESYFS-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItTWVkaXVt\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:\"Page link\"})})}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--framer-font-size\":\"12px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(145, 145, 145))\"},children:\"Page description text\"})}),className:\"framer-1x7ugv1\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"vPSiG_JjT\",style:{\"--extracted-r6o4lv\":\"rgb(145, 145, 145)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},text:XW1Q11KMX,variants:{\"hkOPESYFS-hover\":{\"--extracted-r6o4lv\":\"var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"hkOPESYFS-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--framer-font-size\":\"12px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34)))\"},children:\"Page description text\"})})}},baseVariant,gestureVariant)})]})]})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-etA1p.framer-15i4kt4, .framer-etA1p .framer-15i4kt4 { display: block; }\",\".framer-etA1p.framer-1izqr8s { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 8px; position: relative; text-decoration: none; width: 223px; }\",\".framer-etA1p .framer-13az8vx { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-etA1p .framer-17xvldr { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 40px; justify-content: center; overflow: hidden; padding: 8px; position: relative; width: 40px; will-change: var(--framer-will-change-override, transform); }\",\".framer-etA1p .framer-1ilbt2z { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 24px; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 24px; }\",\".framer-etA1p .framer-txixtk-container { flex: none; height: 24px; position: relative; width: 24px; }\",\".framer-etA1p .framer-j68n9k { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 1px; }\",\".framer-etA1p .framer-1v2bz1w, .framer-etA1p .framer-1x7ugv1 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-etA1p.framer-v-6hc0xm.framer-1izqr8s { align-content: center; align-items: center; cursor: unset; padding: 12px; }\",\".framer-etA1p.framer-v-6hc0xm .framer-13az8vx { align-content: center; align-items: center; gap: 6px; }\",\".framer-etA1p.framer-v-6hc0xm .framer-17xvldr { height: min-content; padding: 0px; width: min-content; }\",\".framer-etA1p.framer-v-6hc0xm .framer-txixtk-container { order: 0; }\",\".framer-etA1p.framer-v-1d6kb2.framer-1izqr8s { padding: 0px; }\",\".framer-etA1p.framer-v-1d6kb2 .framer-13az8vx { flex: none; width: min-content; }\",\".framer-etA1p.framer-v-1d6kb2 .framer-1ilbt2z { height: 32px; width: 32px; }\",\".framer-etA1p.framer-v-1d6kb2 .framer-txixtk-container { flex: 1 0 0px; height: 1px; width: 100%; }\",\".framer-etA1p.framer-v-1d6kb2.hover.framer-1izqr8s { width: min-content; }\",'.framer-etA1p[data-border=\"true\"]::after, .framer-etA1p [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 56\n * @framerIntrinsicWidth 223\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"KqLNcRqs1\":{\"layout\":[\"fixed\",\"auto\"]},\"PjCA2dMTI\":{\"layout\":[\"fixed\",\"auto\"]},\"g5aOfBR74\":{\"layout\":[\"fixed\",\"auto\"]},\"gKXOihaYP\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"JxS39eB8d\":\"hover\",\"SjFy9z8Vn\":\"page\",\"XW1Q11KMX\":\"description\",\"gxMJH5Dfk\":\"icon\",\"pLBUm7cCY\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerYvXKgVWSM=withCSS(Component,css,\"framer-etA1p\");export default FramerYvXKgVWSM;FramerYvXKgVWSM.displayName=\"Dropdown links\";FramerYvXKgVWSM.defaultProps={height:56,width:223};addPropertyControls(FramerYvXKgVWSM,{variant:{options:[\"hkOPESYFS\",\"KqLNcRqs1\",\"PjCA2dMTI\"],optionTitles:[\"Variant 1\",\"Mobile\",\"Social\"],title:\"Variant\",type:ControlType.Enum},JxS39eB8d:{title:\"Hover\",type:ControlType.EventHandler},SjFy9z8Vn:{defaultValue:\"Page link\",displayTextArea:false,title:\"Page\",type:ControlType.String},onSjFy9z8VnChange:{changes:\"SjFy9z8Vn\",type:ControlType.ChangeHandler},XW1Q11KMX:{defaultValue:\"Page description text\",displayTextArea:false,title:\"Description\",type:ControlType.String},onXW1Q11KMXChange:{changes:\"XW1Q11KMX\",type:ControlType.ChangeHandler},gxMJH5Dfk:Phosphor1Controls?.[\"iconSelection\"]&&{...Phosphor1Controls[\"iconSelection\"],defaultValue:\"Circuitry\",description:undefined,hidden:undefined,optional:undefined,title:\"Icon\"},ongxMJH5DfkChange:{changes:\"gxMJH5Dfk\",type:ControlType.ChangeHandler},pLBUm7cCY:{title:\"Link\",type:ControlType.Link}});addFonts(FramerYvXKgVWSM,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerYvXKgVWSM\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"KqLNcRqs1\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"PjCA2dMTI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"g5aOfBR74\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"gKXOihaYP\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"JxS39eB8d\\\":\\\"hover\\\",\\\"SjFy9z8Vn\\\":\\\"page\\\",\\\"XW1Q11KMX\\\":\\\"description\\\",\\\"gxMJH5Dfk\\\":\\\"icon\\\",\\\"pLBUm7cCY\\\":\\\"link\\\"}\",\"framerIntrinsicWidth\":\"223\",\"framerIntrinsicHeight\":\"56\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./YvXKgVWSM.map","// Generated by Framer (e0e363b)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getLoadingLazyAtYPosition,Image as Image1,ResolveLinks,RichText,SmartComponentScopedContainer,SVG,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import TerciaryCTA from\"https://framerusercontent.com/modules/EKnngIAuUI6TsAi6uQ1G/wAXm7Y2xHUdhVDXZJTSv/vgBqmh6lv.js\";import DropdownLinks from\"https://framerusercontent.com/modules/rufuw62Ri2jtwKAUtJkY/Mv7VaYlOc3Q9retoN1wb/YvXKgVWSM.js\";const TerciaryCTAFonts=getFonts(TerciaryCTA);const DropdownLinksFonts=getFonts(DropdownLinks);const cycleOrder=[\"dW6kkQlMV\",\"JNe5zwFds\"];const serializationHash=\"framer-9DtOV\";const variantClassNames={dW6kkQlMV:\"framer-v-efreyd\",JNe5zwFds:\"framer-v-qds6rk\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"dW6kkQlMV\",Mobile:\"JNe5zwFds\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"dW6kkQlMV\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"dW6kkQlMV\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const JxS39eB8d1ql7jkp=activeVariantCallback(async(...args)=>{setVariant(\"JNe5zwFds\");});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"JNe5zwFds\")return false;return true;};const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-efreyd\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"dW6kkQlMV\",ref:refBinding,style:{background:\"rgba(0, 0, 0, 0)\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{JNe5zwFds:{background:\"linear-gradient(180deg, var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255)) 0%, var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255)) 100%)\",backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0}},...addPropertyOverrides({JNe5zwFds:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1bfyn6f\",layoutDependency:layoutDependency,layoutId:\"shRZ8oyMD\",style:{background:\"linear-gradient(154deg, rgb(44, 97, 75) -15.000000000000002%, rgb(0, 88, 196) 135%)\"},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2ixnwy\",layoutDependency:layoutDependency,layoutId:\"XEN9DyHeY\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-18en142\",layoutDependency:layoutDependency,layoutId:\"VC0CjXfRJ\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1kd0xwv\",layoutDependency:layoutDependency,layoutId:\"GATS_5D7e\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-15ys3uk\",\"data-framer-name\":\"Logomark\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"BuhPlI8Dq\",opacity:.9,style:{opacity:.9},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 30 30\"><path d=\"M 29.184 11.998 L 20.499 3.136 C 19.596 2.215 18.135 2.214 17.231 3.132 L 3.265 17.308 C 2.95 17.612 2.527 17.794 2.063 17.794 C 1.461 17.794 0.929 17.481 0.609 17.004 C 0.698 17.155 0.805 17.298 0.931 17.428 L 2.037 18.556 L 5.782 22.377 C 6.151 22.754 6.748 22.754 7.117 22.379 L 10.686 18.756 C 10.971 18.468 11.43 18.468 11.713 18.758 L 13.956 21.046 C 14.241 21.337 14.24 21.808 13.955 22.097 L 10.392 25.714 L 9.721 26.397 L 10.391 27.081 L 12.557 29.291 C 13.351 30.101 14.638 30.103 15.434 29.295 L 29.178 15.342 C 30.086 14.42 30.088 12.922 29.182 11.999 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 13.732 5.821 L 3.017 16.697 C 2.702 17 2.324 17.139 1.861 17.139 C 1.598 17.139 1.253 16.921 0.921 16.635 L 0.693 16.402 C 0.053 15.736 -0.111 14.846 0.2 14.024 L 4.933 1.532 C 5.537 -0.06 7.544 -0.493 8.727 0.714 Z\" fill=\"rgb(255,255,255)\"></path></svg>',svgContentId:11271205276,withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-10l9sz9\",layoutDependency:layoutDependency,layoutId:\"gMa6RXMzk\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{style:{\"--font-selector\":\"RlM7UGx1cyBKYWthcnRhIFNhbnMtYm9sZA==\",\"--framer-font-family\":'\"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"120%\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-1w1cjl5, var(--token-b297b0c1-0291-42ac-80c9-3e01eaa6c568, rgb(250, 249, 248)))\"},children:\"Get started\"})}),className:\"framer-itaukx\",\"data-framer-name\":\"Heading\",fonts:[\"FS;Plus Jakarta Sans-bold\"],layoutDependency:layoutDependency,layoutId:\"A9M8SRbwL\",style:{\"--extracted-1w1cjl5\":\"var(--token-b297b0c1-0291-42ac-80c9-3e01eaa6c568, rgb(250, 249, 248))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--framer-font-size\":\"12px\",\"--framer-line-height\":\"18px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-b297b0c1-0291-42ac-80c9-3e01eaa6c568, rgb(250, 249, 248)))\"},children:\"Connect with our team to explore ValPay’s solutions and discuss the best payment options for your business.\"})}),className:\"framer-13ic640\",\"data-framer-name\":\"Heading\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"WoXUlgOF9\",style:{\"--extracted-r6o4lv\":\"var(--token-b297b0c1-0291-42ac-80c9-3e01eaa6c568, rgb(250, 249, 248))\"},verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-((componentViewport?.height||304)-0)*1)/2)+24+0+213.6,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-6fuhzl-container\",layoutDependency:layoutDependency,layoutId:\"lmUHGYKZX-container\",nodeId:\"lmUHGYKZX\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(TerciaryCTA,{height:\"100%\",id:\"lmUHGYKZX\",layoutId:\"lmUHGYKZX\",LifcxX_Fm:\"Contact us\",tUkIe0hVq:resolvedLinks[0],variant:matchVariant(\"OkYbIoF_y\"),width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:616,intrinsicWidth:428,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-((componentViewport?.height||304)-0)*1)/2)+0),pixelHeight:616,pixelWidth:428,sizes:`calc(${((componentViewport?.height||304)-0)*1-0} * 0.6948)`,src:\"https://framerusercontent.com/images/ppK16OlomzUEv41SMKyLH9Cfc.png?width=428&height=616\",srcSet:\"https://framerusercontent.com/images/ppK16OlomzUEv41SMKyLH9Cfc.png?width=428&height=616 428w\"},className:\"framer-46t1ox\",\"data-framer-name\":\"Light Rays@2x\",layoutDependency:layoutDependency,layoutId:\"jNxzmJtoh\"})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ujw1qb\",layoutDependency:layoutDependency,layoutId:\"YN9fU4wsa\",style:{backgroundColor:\"rgb(230, 245, 239)\"},variants:{JNe5zwFds:{backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\"}},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1hw4cy6\",layoutDependency:layoutDependency,layoutId:\"mtuUBuYMk\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-vvlya2\",\"data-framer-name\":\"Product section\",layoutDependency:layoutDependency,layoutId:\"Jy7GRGTvJ\",style:{backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomRightRadius:6,borderTopRightRadius:6},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-vn7n9x\",layoutDependency:layoutDependency,layoutId:\"aH18QCuDz\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Valpay Product\"})}),className:\"framer-dqixsg\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"WgyPeiNWO\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1xrb39n\",layoutDependency:layoutDependency,layoutId:\"t3Jmo23eV\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Zpk65MapL\"},implicitPathVariables:undefined},{href:{webPageId:\"Zpk65MapL\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,width:\"242px\",y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+0+0+0+16+30+0,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+0+0+0+0+30+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ti3vao-container\",layoutDependency:layoutDependency,layoutId:\"Z_u_sjgTi-container\",nodeId:\"Z_u_sjgTi\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"Cardholder\",height:\"100%\",id:\"Z_u_sjgTi\",layoutId:\"Z_u_sjgTi\",pLBUm7cCY:resolvedLinks1[0],SjFy9z8Vn:\"Embedded Payments\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Payments within your platform\",...addPropertyOverrides({JNe5zwFds:{JxS39eB8d:JxS39eB8d1ql7jkp,pLBUm7cCY:resolvedLinks1[1],variant:matchVariant(\"KqLNcRqs1\"),XW1Q11KMX:\"Power payments within your platform\"}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"bi7YwDHUs\"},implicitPathVariables:undefined},{href:{webPageId:\"bi7YwDHUs\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,width:\"242px\",y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+0+0+0+16+30+0,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+0+0+0+0+30+0+60}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ec2zc5-container\",layoutDependency:layoutDependency,layoutId:\"pPTWJpnz0-container\",nodeId:\"pPTWJpnz0\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"PlugsConnected\",height:\"100%\",id:\"pPTWJpnz0\",layoutId:\"pPTWJpnz0\",pLBUm7cCY:resolvedLinks2[0],SjFy9z8Vn:\"Partners\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Integrate with platforms\",...addPropertyOverrides({JNe5zwFds:{pLBUm7cCY:resolvedLinks2[1],variant:matchVariant(\"KqLNcRqs1\")}},baseVariant,gestureVariant)})})})})]})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-128ounm\",\"data-framer-name\":\"Features\",layoutDependency:layoutDependency,layoutId:\"gsVHrx9dU\",style:{backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-185xmzx\",layoutDependency:layoutDependency,layoutId:\"MiYmQ097X\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\",\"--framer-text-transform\":\"uppercase\"},children:\"valpay Features\"})}),className:\"framer-t2oryu\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"fC6TlFIwt\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1hd60un\",layoutDependency:layoutDependency,layoutId:\"B7eUAtrcz\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1vaumrw\",layoutDependency:layoutDependency,layoutId:\"y4EwjG5n5\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"gXnBhMK6a\"},implicitPathVariables:undefined},{href:{webPageId:\"gXnBhMK6a\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+118+16+30+0+0+0,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+154+0+30+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1dxnfzh-container\",layoutDependency:layoutDependency,layoutId:\"hxIxv_wcy-container\",nodeId:\"hxIxv_wcy\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"CreditCard\",height:\"100%\",id:\"hxIxv_wcy\",layoutId:\"hxIxv_wcy\",pLBUm7cCY:resolvedLinks3[0],SjFy9z8Vn:\"Accept Payments\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Fast, flexible payments\",...addPropertyOverrides({JNe5zwFds:{pLBUm7cCY:resolvedLinks3[1],variant:matchVariant(\"KqLNcRqs1\"),XW1Q11KMX:\"Fast, flexible payment processing\"}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"TqznSRHFC\"},implicitPathVariables:undefined},{href:{webPageId:\"TqznSRHFC\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+118+16+30+0+0+60,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+154+0+30+0+0+0+60}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1uogfmx-container\",layoutDependency:layoutDependency,layoutId:\"NMILbCWnA-container\",nodeId:\"NMILbCWnA\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"ShieldCheck\",height:\"100%\",id:\"NMILbCWnA\",layoutId:\"NMILbCWnA\",pLBUm7cCY:resolvedLinks4[0],SjFy9z8Vn:\"Secure Payments\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Advanced fraud protection\",...addPropertyOverrides({JNe5zwFds:{pLBUm7cCY:resolvedLinks4[1],variant:matchVariant(\"KqLNcRqs1\")}},baseVariant,gestureVariant)})})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1psjoge\",layoutDependency:layoutDependency,layoutId:\"bLlUBPxmt\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"r_dxE0USB\"},implicitPathVariables:undefined},{href:{webPageId:\"r_dxE0USB\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+118+16+30+0+0+0,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+154+0+30+0+120+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1cacw79-container\",layoutDependency:layoutDependency,layoutId:\"Zh1lo1EFf-container\",nodeId:\"Zh1lo1EFf\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"Database\",height:\"100%\",id:\"Zh1lo1EFf\",layoutId:\"Zh1lo1EFf\",pLBUm7cCY:resolvedLinks5[0],SjFy9z8Vn:\"Manage Payments\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Handle transactions easily\",...addPropertyOverrides({JNe5zwFds:{pLBUm7cCY:resolvedLinks5[1],variant:matchVariant(\"KqLNcRqs1\"),XW1Q11KMX:\"Streamline transactions effortlessly\"}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"r6GH9hIYQ\"},implicitPathVariables:undefined},{href:{webPageId:\"r6GH9hIYQ\"},implicitPathVariables:undefined}],children:resolvedLinks6=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:56,y:(componentViewport?.y||0)+(0+((componentViewport?.height||304)-0-304)/2)+4+118+16+30+0+0+60,...addPropertyOverrides({JNe5zwFds:{width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+8+(((componentViewport?.height||394)-22-420)/2+0+0)+0+154+0+30+0+120+0+60}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-s1bjf5-container\",layoutDependency:layoutDependency,layoutId:\"SlcAGHmzv-container\",nodeId:\"SlcAGHmzv\",rendersWithMotion:true,scopeId:\"MqTWH19Qx\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"ChartBar\",height:\"100%\",id:\"SlcAGHmzv\",layoutId:\"SlcAGHmzv\",pLBUm7cCY:resolvedLinks6[0],SjFy9z8Vn:\"Grow Payments\",style:{width:\"100%\"},variant:matchVariant(\"hkOPESYFS\"),width:\"100%\",XW1Q11KMX:\"Maximize revenue potential\",...addPropertyOverrides({JNe5zwFds:{pLBUm7cCY:resolvedLinks6[1],variant:matchVariant(\"KqLNcRqs1\"),XW1Q11KMX:\"Maximize revenue opportunities\"}},baseVariant,gestureVariant)})})})})]})]})]})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-9DtOV.framer-10t09j5, .framer-9DtOV .framer-10t09j5 { display: block; }\",\".framer-9DtOV.framer-efreyd { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-9DtOV .framer-1bfyn6f { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: auto; justify-content: center; overflow: hidden; padding: 24px; position: relative; width: min-content; }\",\".framer-9DtOV .framer-2ixnwy { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: 100%; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 166px; z-index: 1; }\",\".framer-9DtOV .framer-18en142, .framer-9DtOV .framer-10l9sz9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-9DtOV .framer-1kd0xwv { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-9DtOV .framer-15ys3uk { flex: none; height: 30px; position: relative; width: 30px; }\",\".framer-9DtOV .framer-itaukx { flex: none; height: auto; max-width: 720px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-9DtOV .framer-13ic640 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-9DtOV .framer-6fuhzl-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-9DtOV .framer-46t1ox { aspect-ratio: 0.6948051948051948 / 1; bottom: 0px; flex: none; left: 0px; overflow: visible; position: absolute; top: 0px; width: var(--framer-aspect-ratio-supported, 211px); z-index: 0; }\",\".framer-9DtOV .framer-1ujw1qb { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 4px; position: relative; width: min-content; }\",\".framer-9DtOV .framer-1hw4cy6 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 520px; }\",\".framer-9DtOV .framer-vvlya2 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 16px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-9DtOV .framer-vn7n9x, .framer-9DtOV .framer-185xmzx { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 6px 0px 6px 8px; position: relative; width: 100%; }\",\".framer-9DtOV .framer-dqixsg, .framer-9DtOV .framer-t2oryu { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-9DtOV .framer-1xrb39n, .framer-9DtOV .framer-1hd60un { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-9DtOV .framer-1ti3vao-container, .framer-9DtOV .framer-ec2zc5-container { flex: 1 0 0px; height: auto; position: relative; width: 1px; }\",\".framer-9DtOV .framer-128ounm { align-content: flex-start; align-items: flex-start; align-self: stretch; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 16px; position: relative; width: auto; will-change: var(--framer-will-change-override, transform); }\",\".framer-9DtOV .framer-1vaumrw, .framer-9DtOV .framer-1psjoge { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-9DtOV .framer-1dxnfzh-container, .framer-9DtOV .framer-1uogfmx-container, .framer-9DtOV .framer-1cacw79-container, .framer-9DtOV .framer-s1bjf5-container { flex: none; height: auto; position: relative; width: 100%; }\",\".framer-9DtOV.framer-v-qds6rk.framer-efreyd { flex-direction: column; gap: 4px; padding: 8px 0px 14px 0px; width: 333px; will-change: unset; }\",\".framer-9DtOV.framer-v-qds6rk .framer-1ujw1qb { gap: 8px; order: 1; padding: 0px; width: 100%; }\",\".framer-9DtOV.framer-v-qds6rk .framer-1hw4cy6 { gap: 8px; width: 100%; }\",\".framer-9DtOV.framer-v-qds6rk .framer-vvlya2 { padding: 0px; }\",\".framer-9DtOV.framer-v-qds6rk .framer-vn7n9x, .framer-9DtOV.framer-v-qds6rk .framer-185xmzx { padding: 6px 0px 6px 0px; }\",\".framer-9DtOV.framer-v-qds6rk .framer-1xrb39n, .framer-9DtOV.framer-v-qds6rk .framer-1hd60un { flex-direction: column; }\",\".framer-9DtOV.framer-v-qds6rk .framer-1ti3vao-container, .framer-9DtOV.framer-v-qds6rk .framer-ec2zc5-container, .framer-9DtOV.framer-v-qds6rk .framer-1vaumrw, .framer-9DtOV.framer-v-qds6rk .framer-1psjoge { flex: none; width: 100%; }\",\".framer-9DtOV.framer-v-qds6rk .framer-128ounm { align-self: unset; padding: 0px; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 304\n * @framerIntrinsicWidth 742\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"JNe5zwFds\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerMqTWH19Qx=withCSS(Component,css,\"framer-9DtOV\");export default FramerMqTWH19Qx;FramerMqTWH19Qx.displayName=\"Links dropdown\";FramerMqTWH19Qx.defaultProps={height:304,width:742};addPropertyControls(FramerMqTWH19Qx,{variant:{options:[\"dW6kkQlMV\",\"JNe5zwFds\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerMqTWH19Qx,[{explicitInter:true,fonts:[{cssFamilyName:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Plus Jakarta Sans\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/yDtI2UI8XcEg1W2je9XPN3Noo.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"}]},...TerciaryCTAFonts,...DropdownLinksFonts],{supportsExplicitInterCodegen:true});FramerMqTWH19Qx.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(TerciaryCTA,{},context),forwardLoader(DropdownLinks,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerMqTWH19Qx\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"742\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"304\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"JNe5zwFds\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MqTWH19Qx.map","let r;\nvar s = (o) => {\n    if (!r) {\n        const n = o.forwardRef(({color: t = \"currentColor\", size: e = 24, ...i}, l) => {\n            return o.createElement(\"svg\", {ref: l, xmlns: \"http://www.w3.org/2000/svg\", width: e, height: e, viewBox: \"0 0 24 24\", fill: \"none\", stroke: t, strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\", ...i}, o.createElement(\"path\", {d: \"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}), o.createElement(\"polyline\", {points: \"9 22 9 12 15 12 15 22\"}));\n        });\n        n.displayName = \"Home\",r = n;\n    }\n    return r;\n};\nconst __FramerMetadata__ = {exports: {default: {type: \"reactComponent\", slots: [], annotations: {framerContractVersion: \"1\"}}, __FramerMetadata__: {type: \"variable\"}}};\nexport { __FramerMetadata__, s as default };","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HomeFactory from\"https://framer.com/m/feather-icons/home.js@0.0.29\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";export const iconKeys=[\"activity\",\"airplay\",\"alert-circle\",\"alert-octagon\",\"alert-triangle\",\"align-center\",\"align-justify\",\"align-left\",\"align-right\",\"anchor\",\"aperture\",\"archive\",\"arrow-down\",\"arrow-down-circle\",\"arrow-down-left\",\"arrow-down-right\",\"arrow-left\",\"arrow-left-circle\",\"arrow-right\",\"arrow-right-circle\",\"arrow-up\",\"arrow-up-circle\",\"arrow-up-left\",\"arrow-up-right\",\"at-sign\",\"award\",\"bar-chart\",\"bar-chart-2\",\"battery\",\"battery-charging\",\"bell\",\"bell-off\",\"bluetooth\",\"bold\",\"book\",\"book-open\",\"bookmark\",\"box\",\"briefcase\",\"calendar\",\"camera\",\"camera-off\",\"cast\",\"check\",\"check-circle\",\"check-square\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"chevrons-down\",\"chevrons-left\",\"chevrons-right\",\"chevrons-up\",\"chrome\",\"circle\",\"clipboard\",\"clock\",\"cloud\",\"cloud-drizzle\",\"cloud-lightning\",\"cloud-off\",\"cloud-rain\",\"cloud-snow\",\"code\",\"codepen\",\"codesandbox\",\"coffee\",\"columns\",\"command\",\"compass\",\"copy\",\"corner-down-left\",\"corner-down-right\",\"corner-left-down\",\"corner-left-up\",\"corner-right-down\",\"corner-right-up\",\"corner-up-left\",\"corner-up-right\",\"cpu\",\"credit-card\",\"crop\",\"crosshair\",\"database\",\"delete\",\"disc\",\"divide\",\"divide-circle\",\"divide-square\",\"dollar-sign\",\"download\",\"download-cloud\",\"dribbble\",\"droplet\",\"edit\",\"edit-2\",\"edit-3\",\"external-link\",\"eye\",\"eye-off\",\"facebook\",\"fast-forward\",\"feather\",\"figma\",\"file\",\"file-minus\",\"file-plus\",\"file-text\",\"film\",\"filter\",\"flag\",\"folder\",\"folder-minus\",\"folder-plus\",\"framer\",\"frown\",\"gift\",\"git-branch\",\"git-commit\",\"git-merge\",\"git-pull-request\",\"github\",\"gitlab\",\"globe\",\"grid\",\"hard-drive\",\"hash\",\"headphones\",\"heart\",\"help-circle\",\"hexagon\",\"home\",\"image\",\"inbox\",\"info\",\"instagram\",\"italic\",\"key\",\"layers\",\"layout\",\"life-buoy\",\"link\",\"link-2\",\"linkedin\",\"list\",\"loader\",\"lock\",\"log-in\",\"log-out\",\"mail\",\"map\",\"map-pin\",\"maximize\",\"maximize-2\",\"meh\",\"menu\",\"message-circle\",\"message-square\",\"mic\",\"mic-off\",\"minimize\",\"minimize-2\",\"minus\",\"minus-circle\",\"minus-square\",\"monitor\",\"moon\",\"more-horizontal\",\"more-vertical\",\"mouse-pointer\",\"move\",\"music\",\"navigation\",\"navigation-2\",\"octagon\",\"package\",\"paperclip\",\"pause\",\"pause-circle\",\"pen-tool\",\"percent\",\"phone\",\"phone-call\",\"phone-forwarded\",\"phone-incoming\",\"phone-missed\",\"phone-off\",\"phone-outgoing\",\"pie-chart\",\"play\",\"play-circle\",\"plus\",\"plus-circle\",\"plus-square\",\"pocket\",\"power\",\"printer\",\"radio\",\"refresh-ccw\",\"refresh-cw\",\"repeat\",\"rewind\",\"rotate-ccw\",\"rotate-cw\",\"rss\",\"save\",\"scissors\",\"search\",\"send\",\"server\",\"settings\",\"share\",\"share-2\",\"shield\",\"shield-off\",\"shopping-bag\",\"shopping-cart\",\"shuffle\",\"sidebar\",\"skip-back\",\"skip-forward\",\"slack\",\"slash\",\"sliders\",\"smartphone\",\"smile\",\"speaker\",\"square\",\"star\",\"stop-circle\",\"sun\",\"sunrise\",\"sunset\",\"tablet\",\"tag\",\"target\",\"terminal\",\"thermometer\",\"thumbs-down\",\"thumbs-up\",\"toggle-left\",\"toggle-right\",\"tool\",\"trash\",\"trash-2\",\"trello\",\"trending-down\",\"trending-up\",\"triangle\",\"truck\",\"tv\",\"twitch\",\"twitter\",\"type\",\"umbrella\",\"underline\",\"unlock\",\"upload\",\"upload-cloud\",\"user\",\"user-check\",\"user-minus\",\"user-plus\",\"user-x\",\"users\",\"video\",\"video-off\",\"voicemail\",\"volume\",\"volume-1\",\"volume-2\",\"volume-x\",\"watch\",\"wifi\",\"wifi-off\",\"wind\",\"x\",\"x-circle\",\"x-octagon\",\"x-square\",\"youtube\",\"zap\",\"zap-off\",\"zoom-in\",\"zoom-out\",];const moduleBaseUrl=\"https://framer.com/m/feather-icons/\";const uppercaseIconKeys=iconKeys.map(name=>name.charAt(0).toUpperCase()+name.slice(1));const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * FEATHER\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);// Selected Icon Module\nconst[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HomeFactory(React):null);// Import the selected module or reset so null state\nasync function importModule(){let active=true;// Get the selected module\ntry{const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@0.0.29`;const module=await import(/* webpackIgnore: true */ iconModuleUrl);// console.log(module.default)\nif(active)setSelectedIcon(module.default(React));}catch(e){console.log(e);if(active)setSelectedIcon(null);}return()=>{active=false;};}// Import module when new style or icon is selected\nuseEffect(()=>{importModule();},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/ _jsx(NullState,{}):null;return /*#__PURE__*/ _jsx(\"div\",{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/ _jsx(SelectedIcon,{style:{width:\"100%\",height:\"100%\",transform:mirrored?\"scale(-1, 1)\":undefined},color:color}):emptyState});}Icon.displayName=\"Feather\";Icon.defaultProps={width:24,height:24,iconSelection:\"home\",iconSearch:\"Home\",color:\"#66F\",selectByList:true,mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,optionTitles:uppercaseIconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Feather site](https://feathericons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"iconKeys\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Feather.map","// Generated by Framer (3f060d6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Feather}from\"https://framerusercontent.com/modules/f0DboytQenYh21kfme7W/zb1zVBMZJKgPMiedOi0y/Feather.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/6zHQRKgsKWxVlMNAZ5Bf/8nfGxCWDtGHDFufR2gIQ/BrIjiAV4e.js\";import LinksDropdown from\"https://framerusercontent.com/modules/sxr12InKbIQSCti0PM6a/1cCDvY7DCe6v5V1fjGkl/MqTWH19Qx.js\";const FeatherFonts=getFonts(Feather);const LinksDropdownFonts=getFonts(LinksDropdown);const enabledGestures={tHRE721CW:{hover:true}};const cycleOrder=[\"tHRE721CW\",\"beg3PsnRa\",\"DNzMRaiDl\",\"BrLQ34IRQ\"];const serializationHash=\"framer-cvaZT\";const variantClassNames={beg3PsnRa:\"framer-v-gltm5v\",BrLQ34IRQ:\"framer-v-hk47df\",DNzMRaiDl:\"framer-v-u9ul8t\",tHRE721CW:\"framer-v-hz87rg\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const jeZtiIfD1=undefined;const S2DktiVNL=undefined;const x7kSahbL4=undefined;const vr3GalQZm=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:212,type:\"spring\"};const transition2={damping:60,delay:0,mass:1,stiffness:600,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Mobile closed\":\"beg3PsnRa\",\"Mobile open\":\"DNzMRaiDl\",Default:\"tHRE721CW\",Overlay:\"BrLQ34IRQ\"};const Variants=motion.create(React.Fragment);const getProps=({click,height,hover,id,link,pageName,width,...props})=>{return{...props,jeZtiIfD1:click??props.jeZtiIfD1,S2DktiVNL:hover??props.S2DktiVNL,variant:humanReadableVariantMap[props.variant]??props.variant??\"tHRE721CW\",vr3GalQZm:pageName??props.vr3GalQZm??\"Home\",x7kSahbL4:link??props.x7kSahbL4};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,x7kSahbL4,vr3GalQZm,jeZtiIfD1,S2DktiVNL,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"tHRE721CW\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTappl9465=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(jeZtiIfD1){const res=await jeZtiIfD1(...args);if(res===false)return false;}});const onMouseEnter1vzdodp=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(S2DktiVNL){const res=await S2DktiVNL(...args);if(res===false)return false;}});const onTap1ls98dx=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(jeZtiIfD1){const res=await jeZtiIfD1(...args);if(res===false)return false;}setVariant(\"DNzMRaiDl\");});const onTap1atkffj=activeVariantCallback(async(...args)=>{setVariant(\"beg3PsnRa\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"beg3PsnRa\",\"DNzMRaiDl\"].includes(baseVariant))return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"DNzMRaiDl\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({beg3PsnRa:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:x7kSahbL4,motionChild:true,nodeId:\"tHRE721CW\",scopeId:\"mX_gz7Doj\",smoothScroll:true,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-hz87rg\",className,classNames)} framer-1nr8n43`,\"data-framer-name\":\"Default\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"tHRE721CW\",onMouseEnter:onMouseEnter1vzdodp,onTap:onTappl9465,ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(255, 255, 255, 0)\",borderBottomLeftRadius:30,borderBottomRightRadius:30,borderTopLeftRadius:30,borderTopRightRadius:30,...style},variants:{\"tHRE721CW-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},beg3PsnRa:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6},BrLQ34IRQ:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},DNzMRaiDl:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6}},...addPropertyOverrides({beg3PsnRa:{\"data-border\":true,\"data-framer-name\":\"Mobile closed\",onMouseEnter:undefined,onTap:onTap1ls98dx},BrLQ34IRQ:{\"data-framer-name\":\"Overlay\"},DNzMRaiDl:{\"data-border\":true,\"data-framer-name\":\"Mobile open\",onMouseEnter:undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ifkm98\",layoutDependency:layoutDependency,layoutId:\"wGSryjgk0\",...addPropertyOverrides({DNzMRaiDl:{\"data-highlight\":true,onTap:onTap1atkffj}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1af884j-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"WxqX5iCXQ-container\",nodeId:\"WxqX5iCXQ\",rendersWithMotion:true,scopeId:\"mX_gz7Doj\",style:{rotate:0},variants:{DNzMRaiDl:{rotate:-180}},children:/*#__PURE__*/_jsx(Feather,{color:\"var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, rgb(28, 29, 32))\",height:\"100%\",iconSearch:\"Home\",iconSelection:\"chevron-down\",id:\"WxqX5iCXQ\",layoutId:\"WxqX5iCXQ\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, rgb(28, 29, 32)))\"},children:\"Home\"})}),className:\"framer-4n5iqd\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"TmdZQ0Ea_\",style:{\"--extracted-r6o4lv\":\"var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, rgb(28, 29, 32))\"},text:vr3GalQZm,variants:{\"tHRE721CW-hover\":{\"--extracted-r6o4lv\":\"rgba(23, 33, 74, 0.5)\"},BrLQ34IRQ:{\"--extracted-r6o4lv\":\"rgba(28, 29, 32, 0.5)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"tHRE721CW-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(23, 33, 74, 0.5))\"},children:\"Home\"})})},BrLQ34IRQ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(28, 29, 32, 0.5))\"},children:\"Home\"})})}},baseVariant,gestureVariant)})]}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1p2lov3\",layoutDependency:layoutDependency,layoutId:\"mCq3RCfrQ\",style:{backgroundColor:\"var(--token-02790b17-fe04-450b-b6a5-a63a36b996a2, rgb(240, 250, 245))\",borderBottomLeftRadius:2,borderBottomRightRadius:2,borderTopLeftRadius:2,borderTopRightRadius:2}}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({DNzMRaiDl:{height:308,width:`calc(${componentViewport?.width||\"100vw\"} - 24px)`,y:(componentViewport?.y||0)+12+141}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-3dib9z-container\",layoutDependency:layoutDependency,layoutId:\"whFbR2h0Y-container\",nodeId:\"whFbR2h0Y\",rendersWithMotion:true,scopeId:\"mX_gz7Doj\",children:/*#__PURE__*/_jsx(LinksDropdown,{height:\"100%\",id:\"whFbR2h0Y\",layoutId:\"whFbR2h0Y\",style:{width:\"100%\"},variant:matchVariant(\"JNe5zwFds\"),width:\"100%\"})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-cvaZT.framer-1nr8n43, .framer-cvaZT .framer-1nr8n43 { display: block; }\",\".framer-cvaZT.framer-hz87rg { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 4px 12px 4px 12px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-cvaZT .framer-ifkm98 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-cvaZT .framer-1af884j-container { flex: none; height: 16px; position: relative; width: 16px; }\",\".framer-cvaZT .framer-4n5iqd { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-cvaZT .framer-1p2lov3 { flex: 1 0 0px; height: 1px; overflow: hidden; position: relative; width: 1px; will-change: var(--framer-will-change-override, transform); }\",\".framer-cvaZT .framer-3dib9z-container { flex: 1 0 0px; height: auto; position: relative; width: 1px; }\",\".framer-cvaZT.framer-v-gltm5v.framer-hz87rg, .framer-cvaZT.framer-v-u9ul8t.framer-hz87rg { flex-direction: column; justify-content: flex-start; padding: 12px; width: 260px; }\",\".framer-cvaZT.framer-v-gltm5v .framer-ifkm98 { width: 100%; }\",\".framer-cvaZT.framer-v-gltm5v .framer-1af884j-container, .framer-cvaZT.framer-v-u9ul8t .framer-1af884j-container { order: 1; }\",\".framer-cvaZT.framer-v-gltm5v .framer-4n5iqd, .framer-cvaZT.framer-v-u9ul8t .framer-4n5iqd { flex: 1 0 0px; order: 0; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-cvaZT.framer-v-u9ul8t .framer-ifkm98 { cursor: pointer; width: 100%; }\",\".framer-cvaZT.framer-v-u9ul8t .framer-1p2lov3, .framer-cvaZT.framer-v-u9ul8t .framer-3dib9z-container { flex: none; width: 100%; }\",...sharedStyle.css,'.framer-cvaZT[data-border=\"true\"]::after, .framer-cvaZT [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 32\n * @framerIntrinsicWidth 63\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"beg3PsnRa\":{\"layout\":[\"fixed\",\"auto\"]},\"DNzMRaiDl\":{\"layout\":[\"fixed\",\"auto\"]},\"BrLQ34IRQ\":{\"layout\":[\"auto\",\"auto\"]},\"qB5z1FbKS\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"x7kSahbL4\":\"link\",\"vr3GalQZm\":\"pageName\",\"jeZtiIfD1\":\"click\",\"S2DktiVNL\":\"hover\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramermX_gz7Doj=withCSS(Component,css,\"framer-cvaZT\");export default FramermX_gz7Doj;FramermX_gz7Doj.displayName=\"Nav Link dropdown\";FramermX_gz7Doj.defaultProps={height:32,width:63};addPropertyControls(FramermX_gz7Doj,{variant:{options:[\"tHRE721CW\",\"beg3PsnRa\",\"DNzMRaiDl\",\"BrLQ34IRQ\"],optionTitles:[\"Default\",\"Mobile closed\",\"Mobile open\",\"Overlay\"],title:\"Variant\",type:ControlType.Enum},x7kSahbL4:{title:\"Link\",type:ControlType.Link},vr3GalQZm:{defaultValue:\"Home\",displayTextArea:false,title:\"Page Name\",type:ControlType.String},onvr3GalQZmChange:{changes:\"vr3GalQZm\",type:ControlType.ChangeHandler},jeZtiIfD1:{title:\"Click\",type:ControlType.EventHandler},S2DktiVNL:{title:\"Hover\",type:ControlType.EventHandler}});addFonts(FramermX_gz7Doj,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...FeatherFonts,...LinksDropdownFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});FramermX_gz7Doj.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(LinksDropdown,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramermX_gz7Doj\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"beg3PsnRa\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"DNzMRaiDl\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"BrLQ34IRQ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"qB5z1FbKS\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"63\",\"framerIntrinsicHeight\":\"32\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"x7kSahbL4\\\":\\\"link\\\",\\\"vr3GalQZm\\\":\\\"pageName\\\",\\\"jeZtiIfD1\\\":\\\"click\\\",\\\"S2DktiVNL\\\":\\\"hover\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c439c68)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,Floating,forwardLoader,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,runTasksWithYield,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useConstant,useLocaleInfo,useOverlayState,useRouter,useVariantState,withCSS,withFX}from\"framer\";import{AnimatePresence,LayoutGroup,LayoutGroupContext,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Warehouse from\"https://framerusercontent.com/modules/5xPouwvQM8G7ZhDlYMOi/GZuaYCQlJCTIgDmF0TD0/fYpCfNn8R.js\";import NewspaperClipping from\"https://framerusercontent.com/modules/C6mQ7TFcYytYISJWneeK/yLFrmBiRAFhxG5gXRZKZ/qaecwyQhQ.js\";import CurrencyCircleDollar from\"https://framerusercontent.com/modules/O5RaG1McVbUBcjK13zz1/d14L6gVLK922EvAKI1C4/dB8DgMI7m.js\";import UsersThree from\"https://framerusercontent.com/modules/oeG6xBwo7PnoRBdoRf9u/zD6oCfAKePdei90zk0xl/ILlKpAwNA.js\";import CodeBlock from\"https://framerusercontent.com/modules/WCNBSlB0dO1xWTHTWirH/dfoYiV7W0HOw89UQw2Er/C2dJZ1Mny.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/6zHQRKgsKWxVlMNAZ5Bf/8nfGxCWDtGHDFufR2gIQ/BrIjiAV4e.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/dqBvStJBSKS9MF654wTK/dCiqVB822q6ylVHXPeZ4/o77HbpIl9.js\";import ButtonsButton from\"https://framerusercontent.com/modules/bT9KKHrIkFvP9fd3DREm/vZ4byS3dhfH23GJASHzl/lgKeAsBNa.js\";import LinksDropdown from\"https://framerusercontent.com/modules/sxr12InKbIQSCti0PM6a/1cCDvY7DCe6v5V1fjGkl/MqTWH19Qx.js\";import NavLinkDropdown from\"https://framerusercontent.com/modules/vwdy6Q92Hav6Qbo934Hi/e9tHVngIBXXDaAf45rMY/mX_gz7Doj.js\";import HamburgerButton from\"https://framerusercontent.com/modules/pHgsHb9jGYv5Jpre8VZp/MFmsnNrg6yFPRabQnwYb/nS1OnCtLi.js\";import NavigationNavLink from\"https://framerusercontent.com/modules/AlNWcCCeivyNNOd81gyW/AMNvqcW74IdPEVLR16s7/Rvt29oeAL.js\";import Logo from\"https://framerusercontent.com/modules/peK6AzPE6YmJtphQkNqw/HEl9ncdtCQVkUdEIltm3/snYwGQueu.js\";import TerciaryCTA from\"https://framerusercontent.com/modules/EKnngIAuUI6TsAi6uQ1G/wAXm7Y2xHUdhVDXZJTSv/vgBqmh6lv.js\";import DropdownLinks from\"https://framerusercontent.com/modules/rufuw62Ri2jtwKAUtJkY/Mv7VaYlOc3Q9retoN1wb/YvXKgVWSM.js\";const LogoFonts=getFonts(Logo);const HamburgerButtonFonts=getFonts(HamburgerButton);const LinksDropdownFonts=getFonts(LinksDropdown);const NavLinkDropdownFonts=getFonts(NavLinkDropdown);const MotionDivWithFX=withFX(motion.div);const NavigationNavLinkFonts=getFonts(NavigationNavLink);const WarehouseFonts=getFonts(Warehouse);const DropdownLinksFonts=getFonts(DropdownLinks);const CurrencyCircleDollarFonts=getFonts(CurrencyCircleDollar);const NewspaperClippingFonts=getFonts(NewspaperClipping);const CodeBlockFonts=getFonts(CodeBlock);const UsersThreeFonts=getFonts(UsersThree);const TerciaryCTAFonts=getFonts(TerciaryCTA);const ButtonsButtonFonts=getFonts(ButtonsButton);const cycleOrder=[\"SgJjfF2Pv\",\"MdwgYOhRf\",\"Jo3km7p1f\"];const serializationHash=\"framer-fiNt7\";const variantClassNames={Jo3km7p1f:\"framer-v-1kcqazd\",MdwgYOhRf:\"framer-v-ptuys4\",SgJjfF2Pv:\"framer-v-kmdzc5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:.1,duration:.8,ease:[.44,0,.56,1],type:\"tween\"};const transition2={damping:40,delay:0,mass:1,stiffness:345,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const transition3={damping:40,delay:0,mass:1,stiffness:600,type:\"spring\"};const transition4={damping:30,delay:0,mass:1,stiffness:300,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:12,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4,x:0,y:0};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4,x:0,y:0};const animation2={opacity:0,rotate:0,rotateX:12,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const Overlay=({children,blockDocumentScrolling,dismissWithEsc,enabled=true})=>{const[visible,setVisible]=useOverlayState({blockDocumentScrolling,dismissWithEsc:enabled&&dismissWithEsc});return children({hide:()=>setVisible(false),show:()=>setVisible(true),toggle:()=>setVisible(!visible),visible:enabled&&visible});};const transition5={bounce:.2,delay:0,duration:.25,type:\"spring\"};const animation3={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.98,skewX:0,skewY:0,transition:transition5,x:0,y:0};const animation4={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition5,x:0,y:0};const animation5={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.98,skewX:0,skewY:0,x:0,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Phone closed\":\"Jo3km7p1f\",\"Phone open\":\"MdwgYOhRf\",Desktop:\"SgJjfF2Pv\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"SgJjfF2Pv\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,contentLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"SgJjfF2Pv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();const isDisplayed=()=>{if([\"MdwgYOhRf\",\"Jo3km7p1f\"].includes(baseVariant))return true;return false;};const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const hKuB2S4dS16iexip=activeVariantCallback(async(...args)=>{setVariant(\"Jo3km7p1f\");});const hKuB2S4dSrwij0e=activeVariantCallback(async(...args)=>{setVariant(\"MdwgYOhRf\");});const isDisplayed1=()=>{if(baseVariant===\"MdwgYOhRf\")return false;return true;};const S2DktiVNL13elrgn=({overlay})=>activeVariantCallback(async(...args)=>{overlay.show();});const ref1=React.useRef(null);const parentLayoutId=React.useContext(LayoutGroupContext).id;const componentScopeId=useConstant(()=>{const id=layoutId??defaultLayoutId;if(!parentLayoutId)return id;return`${parentLayoutId}-${id}`;});const ref2=React.useRef(null);const ref3=React.useRef(null);const isDisplayed2=()=>{if(baseVariant===\"Jo3km7p1f\")return false;return true;};const ref4=React.useRef(null);const isDisplayed3=()=>{if(baseVariant===\"MdwgYOhRf\")return true;return false;};const ref5=React.useRef(null);const ref6=React.useRef(null);const jeZtiIfD1n06ohy=activeVariantCallback(async(...args)=>{setVariant(\"SgJjfF2Pv\");});const ref7=React.useRef(null);const ref8=React.useRef(null);const ref9=React.useRef(null);const ref10=React.useRef(null);const ref11=React.useRef(null);const ref12=React.useRef(null);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({Jo3km7p1f:{value:transition2},MdwgYOhRf:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-kmdzc5\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Desktop\",\"data-hide-scrollbars\":true,layoutDependency:layoutDependency,layoutId:\"SgJjfF2Pv\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:\"blur(10px)\",backgroundColor:\"rgba(255, 255, 255, 0.7)\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,WebkitBackdropFilter:\"blur(10px)\",...style},variants:{Jo3km7p1f:{backgroundColor:\"rgb(255, 255, 255)\"},MdwgYOhRf:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf, rgb(255, 255, 255))\",WebkitBackdropFilter:\"none\"}},...addPropertyOverrides({Jo3km7p1f:{\"data-framer-name\":\"Phone closed\"},MdwgYOhRf:{\"data-framer-name\":\"Phone open\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1qiajub\",\"data-framer-name\":\"Logo & Menu\",layoutDependency:layoutDependency,layoutId:\"EK45WTKu2\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Ahpw6p2s9\"},implicitPathVariables:undefined},{href:{webPageId:\"Ahpw6p2s9\"},implicitPathVariables:undefined},{href:{webPageId:\"Ahpw6p2s9\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+4+((componentViewport?.height||200)-40)/2,...addPropertyOverrides({Jo3km7p1f:{y:(componentViewport?.y||0)+12},MdwgYOhRf:{y:(componentViewport?.y||0)+12}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1qpfh6i-container\",layoutDependency:layoutDependency,layoutId:\"Tq3estiQp-container\",nodeId:\"Tq3estiQp\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(Logo,{height:\"100%\",id:\"Tq3estiQp\",layoutId:\"Tq3estiQp\",mO2h0qe_d:resolvedLinks[0],variant:matchVariant(\"jPRfmwob1\"),width:\"100%\",...addPropertyOverrides({Jo3km7p1f:{mO2h0qe_d:resolvedLinks[2]},MdwgYOhRf:{mO2h0qe_d:resolvedLinks[1]}},baseVariant,gestureVariant)})})})}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({Jo3km7p1f:{height:40,width:\"40px\",y:(componentViewport?.y||0)+8},MdwgYOhRf:{height:40,width:\"40px\",y:(componentViewport?.y||0)+8}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-xb0tb9-container\",layoutDependency:layoutDependency,layoutId:\"oZz8sLWuE-container\",nodeId:\"oZz8sLWuE\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(HamburgerButton,{height:\"100%\",id:\"oZz8sLWuE\",layoutId:\"oZz8sLWuE\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"Q1RcJt2N4\"),width:\"100%\",...addPropertyOverrides({Jo3km7p1f:{hKuB2S4dS:hKuB2S4dSrwij0e},MdwgYOhRf:{hKuB2S4dS:hKuB2S4dS16iexip,variant:matchVariant(\"W3f8LMILM\")}},baseVariant,gestureVariant)})})})]}),/*#__PURE__*/_jsx(Transition,{...addPropertyOverrides({Jo3km7p1f:{value:transition3},MdwgYOhRf:{value:transition3}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1w776dp\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"g3xPBbDzn\",style:{opacity:1},variants:{Jo3km7p1f:{opacity:0}},children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({Jo3km7p1f:{height:304,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+172},MdwgYOhRf:{height:304,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+64}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1giq72g-container\",layoutDependency:layoutDependency,layoutId:\"kOBLgAAI7-container\",nodeId:\"kOBLgAAI7\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",style:{opacity:1},variants:{Jo3km7p1f:{opacity:0}},children:/*#__PURE__*/_jsx(LinksDropdown,{height:\"100%\",id:\"kOBLgAAI7\",layoutId:\"kOBLgAAI7\",style:{width:\"100%\"},variant:matchVariant(\"JNe5zwFds\"),width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,children:overlay=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+136}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-q4c1fl-container\",id:`${componentScopeId}-q4c1fl`,layoutDependency:layoutDependency,layoutId:\"atgodI6hl-container\",nodeId:\"atgodI6hl\",ref:ref1,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavLinkDropdown,{height:\"100%\",id:\"atgodI6hl\",layoutId:\"atgodI6hl\",S2DktiVNL:S2DktiVNL13elrgn({overlay}),variant:matchVariant(overlay.visible&&\"BrLQ34IRQ\",overlay.visible?\"BrLQ34IRQ\":\"tHRE721CW\"),vr3GalQZm:\"Product\",width:\"100%\",...addPropertyOverrides({Jo3km7p1f:{style:{width:\"100%\"},variant:matchVariant(overlay.visible&&\"BrLQ34IRQ\",overlay.visible?\"BrLQ34IRQ\":\"beg3PsnRa\")}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(AnimatePresence,{children:overlay.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref1,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-q4c1fl`,offsetX:0,offsetY:6,onDismiss:overlay.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsx(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation1,className:\"framer-1o64mew\",exit:animation,initial:animation2,layoutDependency:layoutDependency,layoutId:\"bq1cyDyOL\",ref:ref2,role:\"dialog\",style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,boxShadow:\"0px 8px 20px 0px rgba(0, 0, 0, 0.15)\"},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-jeuhom-container\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"nNq_mhHNN-container\",nodeId:\"nNq_mhHNN\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(LinksDropdown,{height:\"100%\",id:\"nNq_mhHNN\",layoutId:\"nNq_mhHNN\",variant:matchVariant(\"dW6kkQlMV\"),width:\"100%\"})})})})})})]})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,enabled:isDisplayed2(),children:overlay1=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Ut2FqNCyl\"},implicitPathVariables:undefined},{href:{webPageId:\"Ut2FqNCyl\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+100}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-1g8ozfr-container\",id:`${componentScopeId}-1g8ozfr`,layoutDependency:layoutDependency,layoutId:\"IGkhgr3cJ-container\",nodeId:\"IGkhgr3cJ\",ref:ref3,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"IGkhgr3cJ\",layoutId:\"IGkhgr3cJ\",S2DktiVNL:S2DktiVNL13elrgn({overlay:overlay1}),variant:matchVariant(\"NJuIke1SN\"),vr3GalQZm:\"Industries\",width:\"100%\",x7kSahbL4:resolvedLinks1[0],...addPropertyOverrides({Jo3km7p1f:{S2DktiVNL:undefined,style:{width:\"100%\"},variant:matchVariant(\"qQuFowClt\"),x7kSahbL4:resolvedLinks1[1]}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay1.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref3,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-1g8ozfr`,offsetX:0,offsetY:10,onDismiss:overlay1.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsx(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation4,className:\"framer-1brafoh\",\"data-border\":true,exit:animation3,initial:animation5,layoutDependency:layoutDependency,layoutId:\"po3LeJCmM\",ref:ref4,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16,boxShadow:\"0px 16px 40px 0px rgba(0, 0, 0, 0.12)\"},children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1bf15m4\",\"data-framer-name\":\"Industries card\",layoutDependency:layoutDependency,layoutId:\"QveeUIjg6\",style:{backgroundColor:\"var(--token-d160e081-9565-4f30-8b0c-8bb44a2213cf)\",borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-rf0r0x\",\"data-border\":true,\"data-framer-name\":\"All Industries header\",layoutDependency:layoutDependency,layoutId:\"nY7k4UwFA\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.08)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\"},children:[/*#__PURE__*/_jsx(Warehouse,{animated:true,className:\"framer-1agjjwb\",layoutDependency:layoutDependency,layoutId:\"GVN2rgsmA\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\",\"--pgex8v\":1.5}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"Ut2FqNCyl\"},motionChild:true,nodeId:\"sxmBCHgyI\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"All Industries\"})})})}),className:\"framer-1jevno2\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"sxmBCHgyI\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1so71j2\",\"data-framer-name\":\"Industry columns\",layoutDependency:layoutDependency,layoutId:\"qn_zzPI44\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1hndj13\",layoutDependency:layoutDependency,layoutId:\"rTUlwN1g3\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"UMOd9ug_G\"},motionChild:true,nodeId:\"zZAU6XLrF\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Amusement\"})})})}),className:\"framer-1bwpqhh\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"zZAU6XLrF\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"IDQ7QSCkv\"},motionChild:true,nodeId:\"SlUv9o2ox\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Automotive\"})})})}),className:\"framer-rx4tlw\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"SlUv9o2ox\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"sRVMbKpa3\"},motionChild:true,nodeId:\"Xsnl2w8KU\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Car Rental\"})})})}),className:\"framer-q3nm0w\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Xsnl2w8KU\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"ZiuWjUNwa\"},motionChild:true,nodeId:\"nxYsQOJVO\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Dental\"})})})}),className:\"framer-1h441v8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"nxYsQOJVO\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"jcsVLrplB\"},motionChild:true,nodeId:\"E68WQyNWA\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"ERP\"})})})}),className:\"framer-1f3duwq\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"E68WQyNWA\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"ltkWuoFGV\"},motionChild:true,nodeId:\"YqL6JCV4b\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Field Services\"})})})}),className:\"framer-4w7gh6\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"YqL6JCV4b\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"tlh5lpyjx\"},motionChild:true,nodeId:\"Zu1gY9y2_\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Fitness\"})})})}),className:\"framer-deitkb\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Zu1gY9y2_\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"bav4H7NNA\"},motionChild:true,nodeId:\"tMwbOil2v\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Government\"})})})}),className:\"framer-11esop5\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"tMwbOil2v\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"Sa_fQUqvw\"},motionChild:true,nodeId:\"AbgfFi9qX\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Healthcare\"})})})}),className:\"framer-gevqum\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"AbgfFi9qX\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-bkgzzw\",layoutDependency:layoutDependency,layoutId:\"IIZ39BxTZ\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"wyUQAIayO\"},motionChild:true,nodeId:\"MnfQpFQ2F\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Hospitality\"})})})}),className:\"framer-1oqztzb\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"MnfQpFQ2F\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"tJFv2ZWyr\"},motionChild:true,nodeId:\"kBYld9rxq\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Industrials\"})})})}),className:\"framer-wi2uau\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"kBYld9rxq\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"vh6LXtbKG\"},motionChild:true,nodeId:\"jnwZYPcDh\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Lodging\"})})})}),className:\"framer-13e1zo\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"jnwZYPcDh\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"B7uNMFt9O\"},motionChild:true,nodeId:\"NgXlbDijB\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Membership Management\"})})})}),className:\"framer-1jqr3zn\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"NgXlbDijB\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"dWe4xn4uG\"},motionChild:true,nodeId:\"LqUQAAmr6\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Non-Profit\"})})})}),className:\"framer-akehcn\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"LqUQAAmr6\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"QFMB1NKpY\"},motionChild:true,nodeId:\"qSqoQ2aLy\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Property Management\"})})})}),className:\"framer-12tyfjj\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"qSqoQ2aLy\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"eyH2o4A3r\"},motionChild:true,nodeId:\"UBlnnPAD5\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Retail\"})})})}),className:\"framer-18qbclz\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"UBlnnPAD5\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"TulUOIbyK\"},motionChild:true,nodeId:\"inSVB2VBH\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Salon & Spa\"})})})}),className:\"framer-1ansom0\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"inSVB2VBH\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})]})})})})]})})})})}),isDisplayed3()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Ut2FqNCyl\"},implicitPathVariables:undefined},{href:{webPageId:\"Ut2FqNCyl\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({MdwgYOhRf:{height:56,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+372}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-4vnr5n-container\",layoutDependency:layoutDependency,layoutId:\"pkCKSk6PW-container\",nodeId:\"pkCKSk6PW\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"Warehouse\",height:\"100%\",id:\"pkCKSk6PW\",layoutId:\"pkCKSk6PW\",pLBUm7cCY:resolvedLinks2[0],SjFy9z8Vn:\"Industries\",style:{width:\"100%\"},variant:matchVariant(\"KqLNcRqs1\"),width:\"100%\",XW1Q11KMX:\"\",...addPropertyOverrides({MdwgYOhRf:{pLBUm7cCY:resolvedLinks2[1]}},baseVariant,gestureVariant)})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,enabled:isDisplayed2(),children:overlay2=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"omD6_1v4t\"},implicitPathVariables:undefined},{href:{webPageId:\"omD6_1v4t\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+64}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-mr684n-container\",id:`${componentScopeId}-mr684n`,layoutDependency:layoutDependency,layoutId:\"qCH8m1kL2-container\",nodeId:\"qCH8m1kL2\",ref:ref5,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"qCH8m1kL2\",layoutId:\"qCH8m1kL2\",S2DktiVNL:S2DktiVNL13elrgn({overlay:overlay2}),variant:matchVariant(\"NJuIke1SN\"),vr3GalQZm:\"Pricing\",width:\"100%\",x7kSahbL4:resolvedLinks3[0],...addPropertyOverrides({Jo3km7p1f:{S2DktiVNL:undefined,style:{width:\"100%\"},variant:matchVariant(\"qQuFowClt\"),x7kSahbL4:resolvedLinks3[1]}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay2.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref5,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-mr684n`,offsetX:0,offsetY:10,onDismiss:overlay2.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation4,className:\"framer-6u6z1f\",\"data-border\":true,exit:animation3,initial:animation5,layoutDependency:layoutDependency,layoutId:\"n0kZOCQGW\",ref:ref6,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16,boxShadow:\"0px 16px 40px 0px rgba(0, 0, 0, 0.12)\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"omD6_1v4t\"},motionChild:true,nodeId:\"NgM1Mm73E\",openInNewTab:false,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-kg5kxk framer-matyh5\",\"data-border\":true,\"data-framer-name\":\"All Industries header\",layoutDependency:layoutDependency,layoutId:\"NgM1Mm73E\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.08)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\"},children:[/*#__PURE__*/_jsx(CurrencyCircleDollar,{animated:true,className:\"framer-yqiin3\",layoutDependency:layoutDependency,layoutId:\"nbaP48PfJ\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\",\"--pgex8v\":1.5}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"omD6_1v4t\"},motionChild:true,nodeId:\"IMCw7qPay\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Pricing\"})})})}),className:\"framer-kv01st\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"IMCw7qPay\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-l16ybu\",\"data-framer-name\":\"pricing links\",layoutDependency:layoutDependency,layoutId:\"ZD3F4zzY3\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"GEztDpSsu\"},motionChild:true,nodeId:\"HsjHRBoeF\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Payments Health Score\"})})})}),className:\"framer-abkxi9\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"HsjHRBoeF\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"is5oSjiEz\"},motionChild:true,nodeId:\"wI3Sl0UsR\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Monetization Playbook\"})})})}),className:\"framer-1b1gdx8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"wI3Sl0UsR\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})]})})})})}),isDisplayed3()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"omD6_1v4t\"},implicitPathVariables:undefined},{href:{webPageId:\"omD6_1v4t\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({MdwgYOhRf:{height:56,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+432}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-l7bd5-container\",layoutDependency:layoutDependency,layoutId:\"iWXlTyIlh-container\",nodeId:\"iWXlTyIlh\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"CurrencyCircleDollar\",height:\"100%\",id:\"iWXlTyIlh\",layoutId:\"iWXlTyIlh\",pLBUm7cCY:resolvedLinks4[0],SjFy9z8Vn:\"Pricing\",style:{width:\"100%\"},variant:matchVariant(\"KqLNcRqs1\"),width:\"100%\",XW1Q11KMX:\"\",...addPropertyOverrides({MdwgYOhRf:{pLBUm7cCY:resolvedLinks4[1]}},baseVariant,gestureVariant)})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,enabled:isDisplayed2(),children:overlay3=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"gT6lheIo3\"},implicitPathVariables:undefined},{href:{webPageId:\"gT6lheIo3\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+516}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-1vo43j2-container\",id:`${componentScopeId}-1vo43j2`,layoutDependency:layoutDependency,layoutId:\"a17LHO0du-container\",nodeId:\"a17LHO0du\",ref:ref7,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"a17LHO0du\",jeZtiIfD1:jeZtiIfD1n06ohy,layoutId:\"a17LHO0du\",S2DktiVNL:S2DktiVNL13elrgn({overlay:overlay3}),variant:matchVariant(\"NJuIke1SN\"),vr3GalQZm:\"Insights\",width:\"100%\",x7kSahbL4:resolvedLinks5[0],...addPropertyOverrides({Jo3km7p1f:{S2DktiVNL:undefined,style:{width:\"100%\"},variant:matchVariant(\"qQuFowClt\"),x7kSahbL4:resolvedLinks5[1]}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay3.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref7,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-1vo43j2`,offsetX:0,offsetY:10,onDismiss:overlay3.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation4,className:\"framer-1laeuev\",\"data-border\":true,exit:animation3,initial:animation5,layoutDependency:layoutDependency,layoutId:\"VnuIVbnHB\",ref:ref8,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16,boxShadow:\"0px 16px 40px 0px rgba(0, 0, 0, 0.12)\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"gT6lheIo3\"},motionChild:true,nodeId:\"G1LFM7VRf\",openInNewTab:false,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-1utpl08 framer-matyh5\",\"data-border\":true,\"data-framer-name\":\"All Industries header\",layoutDependency:layoutDependency,layoutId:\"G1LFM7VRf\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.08)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\"},children:[/*#__PURE__*/_jsx(NewspaperClipping,{animated:true,className:\"framer-1cvcxwl\",layoutDependency:layoutDependency,layoutId:\"ycyErgE3L\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\",\"--pgex8v\":1.5}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"gT6lheIo3\"},motionChild:true,nodeId:\"TSOLtbUm9\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"All Insights\"})})})}),className:\"framer-11u7dg5\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"TSOLtbUm9\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-gzwmr5\",\"data-framer-name\":\"insights links\",layoutDependency:layoutDependency,layoutId:\"BZ06m5Xjp\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{pathVariables:{tM3y6QVIx:\"how-payments-actually-work\"},unresolvedPathSlugs:{tM3y6QVIx:{collectionId:\"Tap7e0Qlf\",collectionItemId:\"uhcPZUFL4\"}},webPageId:\"bmBW1chHG\"},motionChild:true,nodeId:\"wn7ckTP1U\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"How Payments Actually Work\"})})})}),className:\"framer-13p9u2l\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"wn7ckTP1U\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{pathVariables:{tM3y6QVIx:\"why-valpay\"},unresolvedPathSlugs:{tM3y6QVIx:{collectionId:\"Tap7e0Qlf\",collectionItemId:\"emm89ss3r\"}},webPageId:\"bmBW1chHG\"},motionChild:true,nodeId:\"Cyu6pfgH1\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Why ValPay?\"})})})}),className:\"framer-re7gib\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Cyu6pfgH1\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})]})})})})}),isDisplayed3()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"gT6lheIo3\"},implicitPathVariables:undefined},{href:{webPageId:\"gT6lheIo3\"},implicitPathVariables:undefined}],children:resolvedLinks6=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({MdwgYOhRf:{height:56,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+492}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1con9v-container\",layoutDependency:layoutDependency,layoutId:\"dYsxOiePL-container\",nodeId:\"dYsxOiePL\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"NewspaperClipping\",height:\"100%\",id:\"dYsxOiePL\",layoutId:\"dYsxOiePL\",pLBUm7cCY:resolvedLinks6[0],SjFy9z8Vn:\"Insights\",style:{width:\"100%\"},variant:matchVariant(\"KqLNcRqs1\"),width:\"100%\",XW1Q11KMX:\"Maximize revenue opportunities\",...addPropertyOverrides({MdwgYOhRf:{pLBUm7cCY:resolvedLinks6[1]}},baseVariant,gestureVariant)})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,enabled:isDisplayed2(),children:overlay4=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"eQhSSVHPk\"},implicitPathVariables:undefined},{href:{webPageId:\"eQhSSVHPk\"},implicitPathVariables:undefined}],children:resolvedLinks7=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+552}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-zxhtb0-container\",id:`${componentScopeId}-zxhtb0`,layoutDependency:layoutDependency,layoutId:\"j6Hz7qbjM-container\",nodeId:\"j6Hz7qbjM\",ref:ref9,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"j6Hz7qbjM\",layoutId:\"j6Hz7qbjM\",S2DktiVNL:S2DktiVNL13elrgn({overlay:overlay4}),variant:matchVariant(\"NJuIke1SN\"),vr3GalQZm:\"Developers\",width:\"100%\",x7kSahbL4:resolvedLinks7[0],...addPropertyOverrides({Jo3km7p1f:{S2DktiVNL:undefined,style:{width:\"100%\"},variant:matchVariant(\"qQuFowClt\"),x7kSahbL4:resolvedLinks7[1]}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay4.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref9,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-zxhtb0`,offsetX:0,offsetY:10,onDismiss:overlay4.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation4,className:\"framer-d0a7df\",\"data-border\":true,exit:animation3,initial:animation5,layoutDependency:layoutDependency,layoutId:\"KTRKSFFtw\",ref:ref10,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16,boxShadow:\"0px 16px 40px 0px rgba(0, 0, 0, 0.12)\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"eQhSSVHPk\"},motionChild:true,nodeId:\"gdgHc5Bdv\",openInNewTab:false,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-1ulbosd framer-matyh5\",\"data-border\":true,\"data-framer-name\":\"All Industries header\",layoutDependency:layoutDependency,layoutId:\"gdgHc5Bdv\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.08)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\"},children:[/*#__PURE__*/_jsx(CodeBlock,{animated:true,className:\"framer-11ewgei\",layoutDependency:layoutDependency,layoutId:\"AGwUETexl\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\",\"--pgex8v\":1.5}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"eQhSSVHPk\"},motionChild:true,nodeId:\"KwLzbeAkm\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Developer Resources\"})})})}),className:\"framer-1nm1jlp\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"KwLzbeAkm\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-xgqgmb\",\"data-framer-name\":\"developers links\",layoutDependency:layoutDependency,layoutId:\"H32XOGKHJ\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:\"https://www.valpay.com/devgetting-started\",motionChild:true,nodeId:\"IwYRrdT09\",openInNewTab:true,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Documentation\"})})})}),className:\"framer-junu69\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"IwYRrdT09\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"lPGSsHzUC\"},motionChild:true,nodeId:\"WxIXlGQgf\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Security\"})})})}),className:\"framer-z5uk9f\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"WxIXlGQgf\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"dr7OWDAW4\"},motionChild:true,nodeId:\"Z7LadTfzr\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Devices\"})})})}),className:\"framer-11cesod\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Z7LadTfzr\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"dqLTciBgo\"},motionChild:true,nodeId:\"Qn29vNzCf\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Changelog\"})})})}),className:\"framer-13c1dbj\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Qn29vNzCf\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{pathVariables:{tM3y6QVIx:\"how-payments-actually-work\"},unresolvedPathSlugs:{tM3y6QVIx:{collectionId:\"Tap7e0Qlf\",collectionItemId:\"uhcPZUFL4\"}},webPageId:\"bmBW1chHG\"},motionChild:true,nodeId:\"Qs1KTRcFx\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"How Payments Actually Work\"})})})}),className:\"framer-1e5z29n\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Qs1KTRcFx\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:\"https://www.pciapply.com/valpay\",motionChild:true,nodeId:\"JKNZZjJFB\",openInNewTab:true,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"PCI Portal\"})})})}),className:\"framer-r8cjeo\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"JKNZZjJFB\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})]})})})})}),isDisplayed3()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"eQhSSVHPk\"},implicitPathVariables:undefined},{href:{webPageId:\"eQhSSVHPk\"},implicitPathVariables:undefined}],children:resolvedLinks8=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({MdwgYOhRf:{height:56,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+552}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1kjwyti-container\",layoutDependency:layoutDependency,layoutId:\"AIp0K5992-container\",nodeId:\"AIp0K5992\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"Code\",height:\"100%\",id:\"AIp0K5992\",layoutId:\"AIp0K5992\",pLBUm7cCY:resolvedLinks8[0],SjFy9z8Vn:\"Developers\",style:{width:\"100%\"},variant:matchVariant(\"KqLNcRqs1\"),width:\"100%\",XW1Q11KMX:\"Maximize revenue opportunities\",...addPropertyOverrides({MdwgYOhRf:{pLBUm7cCY:resolvedLinks8[1]}},baseVariant,gestureVariant)})})})}),isDisplayed1()&&/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,dismissWithEsc:false,enabled:isDisplayed2(),children:overlay5=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined},{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined}],children:resolvedLinks9=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-56)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+480}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-knrax1-container\",id:`${componentScopeId}-knrax1`,layoutDependency:layoutDependency,layoutId:\"HBxW6i6Fv-container\",nodeId:\"HBxW6i6Fv\",ref:ref11,rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:[/*#__PURE__*/_jsx(NavigationNavLink,{FevlqhOb5:false,height:\"100%\",id:\"HBxW6i6Fv\",layoutId:\"HBxW6i6Fv\",S2DktiVNL:S2DktiVNL13elrgn({overlay:overlay5}),variant:matchVariant(\"NJuIke1SN\"),vr3GalQZm:\"Company\",width:\"100%\",x7kSahbL4:resolvedLinks9[0],...addPropertyOverrides({Jo3km7p1f:{S2DktiVNL:undefined,style:{width:\"100%\"},variant:matchVariant(\"qQuFowClt\"),x7kSahbL4:resolvedLinks9[1]}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay5.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref11,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${componentScopeId}-knrax1`,offsetX:0,offsetY:10,onDismiss:overlay5.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsxs(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation4,className:\"framer-12sgnpa\",\"data-border\":true,exit:animation3,initial:animation5,layoutDependency:layoutDependency,layoutId:\"fZF25zBuA\",ref:ref12,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16,boxShadow:\"0px 16px 40px 0px rgba(0, 0, 0, 0.12)\"},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"SMTwgziQ_\"},motionChild:true,nodeId:\"OTvTqf_rl\",openInNewTab:false,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-dbt3nq framer-matyh5\",\"data-border\":true,\"data-framer-name\":\"All Industries header\",layoutDependency:layoutDependency,layoutId:\"OTvTqf_rl\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(29, 30, 33, 0.08)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\"},children:[/*#__PURE__*/_jsx(UsersThree,{animated:true,className:\"framer-1qul6re\",layoutDependency:layoutDependency,layoutId:\"VYN5QolGj\",style:{\"--1m6trwb\":0,\"--21h8s6\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\",\"--pgex8v\":1.5}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"SW50ZXItU2VtaUJvbGQ=\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"SMTwgziQ_\"},motionChild:true,nodeId:\"VsHYLIhHn\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Meet The Team\"})})})}),className:\"framer-1usxhtt\",fonts:[\"Inter-SemiBold\"],layoutDependency:layoutDependency,layoutId:\"VsHYLIhHn\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1)\"},verticalAlignment:\"top\",withExternalLayout:true})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-flkds2\",\"data-framer-name\":\"company links\",layoutDependency:layoutDependency,layoutId:\"m742kjDXK\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"bi7YwDHUs\"},motionChild:true,nodeId:\"XjW8QQ4QO\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Partners\"})})})}),className:\"framer-175jcp\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"XjW8QQ4QO\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1uj3rm1\",\"data-styles-preset\":\"BrIjiAV4e\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"B2j2qyLsz\"},motionChild:true,nodeId:\"DE57h7F8I\",openInNewTab:false,relValues:[],scopeId:\"NvEMI9F73\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-z4q089\",\"data-styles-preset\":\"o77HbpIl9\",children:\"Contact Us\"})})})}),className:\"framer-jp9oyx\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"DE57h7F8I\",style:{\"--extracted-r6o4lv\":\"var(--token-d420d97a-d65f-4773-8ece-f3bf20dd84e1, rgb(15, 112, 95))\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})]})})})})}),isDisplayed3()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined},{href:{webPageId:\"SMTwgziQ_\"},implicitPathVariables:undefined}],children:resolvedLinks10=>/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({MdwgYOhRf:{height:56,width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+612}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1bniazk-container\",layoutDependency:layoutDependency,layoutId:\"wapXoRgMg-container\",nodeId:\"wapXoRgMg\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(DropdownLinks,{gxMJH5Dfk:\"UsersThree\",height:\"100%\",id:\"wapXoRgMg\",layoutId:\"wapXoRgMg\",pLBUm7cCY:resolvedLinks10[0],SjFy9z8Vn:\"Company\",style:{width:\"100%\"},variant:matchVariant(\"KqLNcRqs1\"),width:\"100%\",XW1Q11KMX:\"Maximize revenue opportunities\",...addPropertyOverrides({MdwgYOhRf:{pLBUm7cCY:resolvedLinks10[1]}},baseVariant,gestureVariant)})})})})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1nmx3fm\",\"data-framer-name\":\"button\",layoutDependency:layoutDependency,layoutId:\"iRr4vO_Ph\",style:{opacity:1},variants:{Jo3km7p1f:{opacity:0}},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+12+((componentViewport?.height||200)-48)/2,...addPropertyOverrides({Jo3km7p1f:{y:(componentViewport?.y||0)+600},MdwgYOhRf:{y:(componentViewport?.y||0)+700}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1l39ry3-container\",layoutDependency:layoutDependency,layoutId:\"k4ysURBmT-container\",nodeId:\"k4ysURBmT\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(TerciaryCTA,{height:\"100%\",id:\"k4ysURBmT\",layoutId:\"k4ysURBmT\",LifcxX_Fm:\"Sign In\",tUkIe0hVq:\"https://portal.valpay.com/\",variant:matchVariant(\"D_mrsJL4R\"),width:\"100%\",...addPropertyOverrides({MdwgYOhRf:{variant:matchVariant(\"ZoCV3aUbR\")}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined},{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined},{href:{webPageId:\"B2j2qyLsz\"},implicitPathVariables:undefined}],children:resolvedLinks11=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,y:(componentViewport?.y||0)+4+((componentViewport?.height||200)-48)/2,...addPropertyOverrides({Jo3km7p1f:{width:`calc(${componentViewport?.width||\"100vw\"} - 16px)`,y:(componentViewport?.y||0)+644},MdwgYOhRf:{width:`calc(${componentViewport?.width||\"100vw\"} - 40px)`,y:(componentViewport?.y||0)+744}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-6ypqp3-container\",layoutDependency:layoutDependency,layoutId:\"Hv4HlxnuI-container\",nodeId:\"Hv4HlxnuI\",rendersWithMotion:true,scopeId:\"NvEMI9F73\",children:/*#__PURE__*/_jsx(ButtonsButton,{cRoeZpcrs:\"Get Started\",FsefAOOPs:\"rgb(255, 255, 255)\",GrpQ8zFBL:resolvedLinks11[0],height:\"100%\",id:\"Hv4HlxnuI\",layoutId:\"Hv4HlxnuI\",mKwdituEw:false,RCPR2dydG:\"Sparkle\",RmbCx19YN:false,SM93ZbT4W:false,variant:matchVariant(\"pvTYvAfAX\"),width:\"100%\",...addPropertyOverrides({Jo3km7p1f:{GrpQ8zFBL:resolvedLinks11[2],style:{width:\"100%\"},variant:matchVariant(\"o4Pexml_B\")},MdwgYOhRf:{GrpQ8zFBL:resolvedLinks11[1],style:{width:\"100%\"},variant:matchVariant(\"o4Pexml_B\")}},baseVariant,gestureVariant)})})})})]})]})})})});});const css=[\".framer-fiNt7.framer-matyh5, .framer-fiNt7 .framer-matyh5 { display: block; }\",\".framer-fiNt7.framer-kmdzc5 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: hidden; padding: 4px 8px 4px 12px; position: relative; width: 1200px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-1qiajub { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 170px; }\",\".framer-fiNt7 .framer-1qpfh6i-container, .framer-fiNt7 .framer-q4c1fl-container, .framer-fiNt7 .framer-jeuhom-container, .framer-fiNt7 .framer-1g8ozfr-container, .framer-fiNt7 .framer-mr684n-container, .framer-fiNt7 .framer-1vo43j2-container, .framer-fiNt7 .framer-zxhtb0-container, .framer-fiNt7 .framer-knrax1-container, .framer-fiNt7 .framer-1l39ry3-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-fiNt7 .framer-xb0tb9-container { flex: none; height: 40px; position: relative; width: 40px; }\",\".framer-fiNt7 .framer-1w776dp { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 8px 10px 8px 10px; position: relative; width: min-content; }\",\".framer-fiNt7 .framer-1giq72g-container, .framer-fiNt7 .framer-4vnr5n-container, .framer-fiNt7 .framer-l7bd5-container, .framer-fiNt7 .framer-1con9v-container, .framer-fiNt7 .framer-1kjwyti-container, .framer-fiNt7 .framer-1bniazk-container { flex: 1 0 0px; height: auto; position: relative; width: 1px; }\",\".framer-fiNt7 .framer-1o64mew { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-1brafoh { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 6px; position: relative; width: 460px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-1bf15m4 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 14px; position: relative; width: 100%; }\",\".framer-fiNt7 .framer-rf0r0x { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 6px 0px 8px 8px; position: relative; width: 100%; }\",\".framer-fiNt7 .framer-1agjjwb, .framer-fiNt7 .framer-yqiin3, .framer-fiNt7 .framer-1cvcxwl, .framer-fiNt7 .framer-11ewgei, .framer-fiNt7 .framer-1qul6re { flex: none; height: auto; position: relative; width: 14px; }\",\".framer-fiNt7 .framer-1jevno2, .framer-fiNt7 .framer-kv01st, .framer-fiNt7 .framer-11u7dg5, .framer-fiNt7 .framer-1nm1jlp, .framer-fiNt7 .framer-1usxhtt { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-fiNt7 .framer-1so71j2 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-fiNt7 .framer-1hndj13, .framer-fiNt7 .framer-bkgzzw { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",\".framer-fiNt7 .framer-1bwpqhh, .framer-fiNt7 .framer-rx4tlw, .framer-fiNt7 .framer-q3nm0w, .framer-fiNt7 .framer-1h441v8, .framer-fiNt7 .framer-1f3duwq, .framer-fiNt7 .framer-4w7gh6, .framer-fiNt7 .framer-deitkb, .framer-fiNt7 .framer-11esop5, .framer-fiNt7 .framer-gevqum, .framer-fiNt7 .framer-1oqztzb, .framer-fiNt7 .framer-wi2uau, .framer-fiNt7 .framer-13e1zo, .framer-fiNt7 .framer-1jqr3zn, .framer-fiNt7 .framer-akehcn, .framer-fiNt7 .framer-12tyfjj, .framer-fiNt7 .framer-18qbclz, .framer-fiNt7 .framer-1ansom0, .framer-fiNt7 .framer-abkxi9, .framer-fiNt7 .framer-1b1gdx8, .framer-fiNt7 .framer-13p9u2l, .framer-fiNt7 .framer-re7gib, .framer-fiNt7 .framer-junu69, .framer-fiNt7 .framer-z5uk9f, .framer-fiNt7 .framer-11cesod, .framer-fiNt7 .framer-13c1dbj, .framer-fiNt7 .framer-1e5z29n, .framer-fiNt7 .framer-r8cjeo, .framer-fiNt7 .framer-175jcp, .framer-fiNt7 .framer-jp9oyx { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-fiNt7 .framer-6u6z1f { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 14px; position: relative; width: 260px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-kg5kxk, .framer-fiNt7 .framer-1utpl08, .framer-fiNt7 .framer-1ulbosd, .framer-fiNt7 .framer-dbt3nq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 6px 0px 8px 8px; position: relative; text-decoration: none; width: 100%; }\",\".framer-fiNt7 .framer-l16ybu, .framer-fiNt7 .framer-gzwmr5, .framer-fiNt7 .framer-xgqgmb, .framer-fiNt7 .framer-flkds2 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-fiNt7 .framer-1laeuev { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 14px; position: relative; width: 300px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-d0a7df { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 14px; position: relative; width: 330px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-12sgnpa { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 14px; position: relative; width: 220px; will-change: var(--framer-will-change-override, transform); }\",\".framer-fiNt7 .framer-1nmx3fm { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-fiNt7 .framer-6ypqp3-container { flex: none; height: auto; position: relative; width: auto; z-index: 3; }\",\".framer-fiNt7.framer-v-ptuys4.framer-kmdzc5 { flex-direction: column; gap: 0px; justify-content: flex-start; max-height: calc(var(--framer-viewport-height, 100vh) * 0.95); min-height: calc(var(--framer-viewport-height, 100vh) * 0.95); overflow: auto; overscroll-behavior: contain; padding: 0px; width: 315px; will-change: unset; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1qiajub { gap: unset; justify-content: space-between; order: 0; padding: 8px 8px 8px 16px; width: 100%; z-index: 7; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1qpfh6i-container, .framer-fiNt7.framer-v-1kcqazd .framer-1qpfh6i-container { order: 0; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-xb0tb9-container { order: 1; position: sticky; top: 0px; z-index: 7; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1w776dp { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 4px; justify-content: flex-start; order: 1; overflow: visible; padding: 8px; width: 100%; z-index: 2; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1giq72g-container { flex: none; order: 1; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-4vnr5n-container { flex: none; order: 3; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-l7bd5-container { flex: none; order: 5; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1con9v-container { flex: none; order: 7; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1kjwyti-container { flex: none; order: 9; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1bniazk-container { flex: none; order: 11; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-1nmx3fm { flex-direction: column; order: 2; padding: 24px 20px 8px 20px; width: 100%; }\",\".framer-fiNt7.framer-v-ptuys4 .framer-6ypqp3-container, .framer-fiNt7.framer-v-1kcqazd .framer-6ypqp3-container { width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd.framer-kmdzc5 { flex-direction: column; gap: 0px; height: 56px; justify-content: flex-start; padding: 0px; width: 315px; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1qiajub { gap: unset; justify-content: space-between; order: 0; padding: 8px 8px 8px 16px; width: 100%; z-index: 2; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-xb0tb9-container { order: 1; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1w776dp { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 4px; justify-content: flex-start; order: 1; padding: 8px; width: 100%; z-index: 2; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1giq72g-container { flex: none; order: 4; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-q4c1fl-container { order: 2; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1g8ozfr-container { order: 1; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-mr684n-container { order: 0; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1vo43j2-container { order: 10; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-zxhtb0-container { order: 12; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-knrax1-container { order: 6; width: 100%; }\",\".framer-fiNt7.framer-v-1kcqazd .framer-1nmx3fm { flex-direction: column; order: 2; padding: 8px; width: 100%; }\",...sharedStyle.css,...sharedStyle1.css,'.framer-fiNt7[data-border=\"true\"]::after, .framer-fiNt7 [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }','.framer-fiNt7[data-hide-scrollbars=\"true\"]::-webkit-scrollbar, .framer-fiNt7 [data-hide-scrollbars=\"true\"]::-webkit-scrollbar { width: 0px; height: 0px; }','.framer-fiNt7[data-hide-scrollbars=\"true\"]::-webkit-scrollbar-thumb, .framer-fiNt7 [data-hide-scrollbars=\"true\"]::-webkit-scrollbar-thumb { background: transparent; }','.framer-fiNt7[data-hide-scrollbars=\"true\"], .framer-fiNt7 [data-hide-scrollbars=\"true\"] { scrollbar-width: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 56\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"MdwgYOhRf\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,\"95vh\",\"95vh\"]},\"Jo3km7p1f\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerNvEMI9F73=withCSS(Component,css,\"framer-fiNt7\");export default FramerNvEMI9F73;FramerNvEMI9F73.displayName=\"Navigation / Nav Bar\";FramerNvEMI9F73.defaultProps={height:56,width:1200};addPropertyControls(FramerNvEMI9F73,{variant:{options:[\"SgJjfF2Pv\",\"MdwgYOhRf\",\"Jo3km7p1f\"],optionTitles:[\"Desktop\",\"Phone open\",\"Phone closed\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerNvEMI9F73,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/yDtI2UI8XcEg1W2je9XPN3Noo.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...LogoFonts,...HamburgerButtonFonts,...LinksDropdownFonts,...NavLinkDropdownFonts,...NavigationNavLinkFonts,...WarehouseFonts,...DropdownLinksFonts,...CurrencyCircleDollarFonts,...NewspaperClippingFonts,...CodeBlockFonts,...UsersThreeFonts,...TerciaryCTAFonts,...ButtonsButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});FramerNvEMI9F73.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Logo,{},context),()=>forwardLoader(HamburgerButton,{},context),()=>forwardLoader(LinksDropdown,{},context),()=>forwardLoader(NavLinkDropdown,{},context),()=>forwardLoader(NavigationNavLink,{},context),()=>forwardLoader(DropdownLinks,{},context),()=>forwardLoader(TerciaryCTA,{},context),()=>forwardLoader(ButtonsButton,{},context),()=>context.collectionUtils?.get(\"Tap7e0Qlf\")?.getSlugByRecordId(\"uhcPZUFL4\",context.locale),()=>context.collectionUtils?.get(\"Tap7e0Qlf\")?.getSlugByRecordId(\"emm89ss3r\",context.locale)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerNvEMI9F73\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"MdwgYOhRf\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,\\\"95vh\\\",\\\"95vh\\\"]},\\\"Jo3km7p1f\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"56\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NvEMI9F73.map","// Generated by Framer (94ad37d)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Image,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Ticker from\"https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/LHz3bw67SqHRmnCKTlE6/Ticker.js\";const TickerFonts=getFonts(Ticker);const MotionSectionWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.section));const cycleOrder=[\"xImKhV3hh\",\"q1GiGB4n_\"];const serializationHash=\"framer-e0N7o\";const variantClassNames={q1GiGB4n_:\"framer-v-1138me7\",xImKhV3hh:\"framer-v-tj5npv\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:.5,mass:1,stiffness:500,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition1,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:150};const transition2={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Tablet & Mobile\":\"q1GiGB4n_\",Desktop:\"xImKhV3hh\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"xImKhV3hh\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"xImKhV3hh\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsx(MotionSectionWithFXWithOptimizedAppearEffect,{...restProps,...gestureHandlers,__framer__presenceAnimate:animation,__framer__presenceInitial:animation1,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-tj5npv\",className,classNames),\"data-framer-appear-id\":\"tj5npv\",\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"xImKhV3hh\",optimized:true,ref:refBinding,style:{...style},...addPropertyOverrides({q1GiGB4n_:{\"data-framer-name\":\"Tablet & Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ztcnx8-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"TljiOAAZB-container\",nodeId:\"TljiOAAZB\",rendersWithMotion:true,scopeId:\"QPeXi6Lzr\",children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"left\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:1,fadeWidth:30,overflow:false},gap:64,height:\"100%\",hoverFactor:1,id:\"TljiOAAZB\",layoutId:\"TljiOAAZB\",padding:0,paddingBottom:0,paddingLeft:0,paddingPerSide:false,paddingRight:0,paddingTop:0,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(Image,{background:{alt:\"Bluebird logo\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:319,pixelHeight:71,pixelWidth:319,sizes:\"157px\",src:\"https://framerusercontent.com/images/dI4g9i4wuPawWDo0pmZkyTEiLMI.png?width=319&height=71\"},className:\"framer-hse447\",\"data-framer-name\":\"Bluebird\",layoutDependency:layoutDependency,layoutId:\"ZdJMTL_hA\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Aysling logo\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:336,pixelHeight:71,pixelWidth:336,sizes:\"166px\",src:\"https://framerusercontent.com/images/H7O02Aw7E41aZ651v9QnqxzPp8.png?width=336&height=71\"},className:\"framer-1vchrqj\",\"data-framer-name\":\"Aysling logo-RGB_horizontal-RGB copy 1\",layoutDependency:layoutDependency,layoutId:\"LXcA18boJ\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Apero Solutions logo \",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:362,pixelHeight:71,pixelWidth:362,sizes:\"178px\",src:\"https://framerusercontent.com/images/8dsthUPcbS3F4h6ivLnCOJFgUz8.png?width=362&height=71\"},className:\"framer-1bq1554\",\"data-framer-name\":\"Apero-Solutions-dark1 copy\",layoutDependency:layoutDependency,layoutId:\"I3TnISWc1\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Cott Systems logo\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:237,pixelHeight:71,pixelWidth:237,sizes:\"117px\",src:\"https://framerusercontent.com/images/tp0tRMI52j1WwDEqL62qkFE71F8.png?width=237&height=71\"},className:\"framer-1y2ug80\",\"data-framer-name\":\"COTT-logo RGB (dark\",layoutDependency:layoutDependency,layoutId:\"U4X1egQd2\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Dentitek Logo\",fit:\"fit\",intrinsicHeight:70,intrinsicWidth:256,pixelHeight:50,pixelWidth:304,positionX:\"center\",positionY:\"center\",sizes:\"128px\",src:\"https://framerusercontent.com/images/xq8TRU2jCl8aBROg5Hg123UxtQ.png?width=304&height=50\"},className:\"framer-1ltuth9\",\"data-framer-name\":\"Dentitek\",layoutDependency:layoutDependency,layoutId:\"uQohsoMp7\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"MacPractice logo\",fit:\"fill\",intrinsicHeight:48,intrinsicWidth:361,pixelHeight:48,pixelWidth:361,sizes:\"181px\",src:\"https://framerusercontent.com/images/h7hTkZHxn8ZTl2VUA0PWBpxNc.png?width=361&height=48\"},className:\"framer-bnubdi\",\"data-framer-name\":\"Group-1\",layoutDependency:layoutDependency,layoutId:\"LeAIx83wB\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"DockMaster Logo\",fit:\"fill\",intrinsicHeight:61,intrinsicWidth:497,pixelHeight:61,pixelWidth:497,sizes:\"244px\",src:\"https://framerusercontent.com/images/BtsDfVY7y1caMopZwgbygBMYnyY.png?width=497&height=61\"},className:\"framer-ifqbpo\",\"data-framer-name\":\"Group\",layoutDependency:layoutDependency,layoutId:\"X3kJGdZjW\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Hudson Software logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:266,pixelHeight:70,pixelWidth:266,sizes:\"152px\",src:\"https://framerusercontent.com/images/8NoGeMbqiDO8gzbNxPbm8Uot8E.png?width=266&height=70\"},className:\"framer-5e69t2\",\"data-framer-name\":\"Hudson-software 4\",layoutDependency:layoutDependency,layoutId:\"Jbc6pi9Kr\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"H&L Logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:170,pixelHeight:70,pixelWidth:170,sizes:\"97px\",src:\"https://framerusercontent.com/images/zhNM3zHw0NYlWmyVx6BBnUYu4.png?width=170&height=70\"},className:\"framer-5md4w6\",\"data-framer-name\":\"HL-logo 1\",layoutDependency:layoutDependency,layoutId:\"iB1mNaeAC\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Demandbridge Logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:424,pixelHeight:70,pixelWidth:424,sizes:\"212px\",src:\"https://framerusercontent.com/images/Yoz1AZxHLwvciI6hHYLVAlw.png?width=424&height=70\"},className:\"framer-138xku1\",\"data-framer-name\":\"Link \\xe2\\x86\\x92 Group-1053.svg\",layoutDependency:layoutDependency,layoutId:\"UplDJuj8h\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Kivuto Logo\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:220,pixelHeight:71,pixelWidth:220,sizes:\"124px\",src:\"https://framerusercontent.com/images/QyObTt9qeF7Guf9Nmc1jelT82U4.png?width=220&height=71\"},className:\"framer-1xh7ucp\",\"data-framer-name\":\"Kivuto dark\",layoutDependency:layoutDependency,layoutId:\"RQFqzpbM1\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"JBL logo\",fit:\"fill\",intrinsicHeight:80,intrinsicWidth:128,pixelHeight:80,pixelWidth:128,sizes:\"86px\",src:\"https://framerusercontent.com/images/Q7fZhHi1fODCeIdfVxtxjM9OuU.png?width=128&height=80\"},className:\"framer-p9wc61\",\"data-framer-name\":\"JBLSolutions dark\",layoutDependency:layoutDependency,layoutId:\"DtU2UmL5G\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Rentall Logo\",fit:\"fill\",intrinsicHeight:60,intrinsicWidth:469,pixelHeight:60,pixelWidth:469,sizes:\"219px\",src:\"https://framerusercontent.com/images/McjDOLIizEfB0aa3DXHOIRSa4.png?width=469&height=60\"},className:\"framer-gllo1y\",\"data-framer-name\":\"RENTALL-logo 2\",layoutDependency:layoutDependency,layoutId:\"pBQPBNYg5\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Protecmedia Logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:391,pixelHeight:70,pixelWidth:391,sizes:\"196px\",src:\"https://framerusercontent.com/images/QylnzjJHfzPlF7KWH1Tyc6hxShU.png?width=391&height=70\"},className:\"framer-1rrd2vr\",\"data-framer-name\":\"Protecmedia 1\",layoutDependency:layoutDependency,layoutId:\"nTvKaIhx5\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Roomaster Logo\",fit:\"fill\",intrinsicHeight:120,intrinsicWidth:288,pixelHeight:120,pixelWidth:288,sizes:\"130px\",src:\"https://framerusercontent.com/images/LP5vektXDTOOtoz20Ol2YOZvCg.png?width=288&height=120\"},className:\"framer-1qfsgs9\",\"data-framer-name\":\"RoomMaster Logo-dark\",layoutDependency:layoutDependency,layoutId:\"jSJMtpJj6\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Seekda Logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:321,pixelHeight:70,pixelWidth:321,sizes:\"183px\",src:\"https://framerusercontent.com/images/WIw6mwFexJVTgoc9N093ybPvtr8.png?width=321&height=70\"},className:\"framer-q6ja3f\",\"data-framer-name\":\"Seekda Aspire_Logo_23_1_no_outline 2\",layoutDependency:layoutDependency,layoutId:\"aHJrJdHRy\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Service Central logo\",fit:\"fill\",intrinsicHeight:106,intrinsicWidth:190,pixelHeight:106,pixelWidth:190,sizes:\"97px\",src:\"https://framerusercontent.com/images/CWUqmSsGysKA32XMbd8AFImuAGQ.png?width=190&height=106\"},className:\"framer-143vvum\",\"data-framer-name\":\"ServiceCentral logo 2\",layoutDependency:layoutDependency,layoutId:\"PL2r5caYH\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"XDLDent Logo\",fit:\"fill\",intrinsicHeight:70,intrinsicWidth:288,pixelHeight:70,pixelWidth:288,sizes:\"144px\",src:\"https://framerusercontent.com/images/JsHHvYAcGKMgYbZtVPuGNv7NugI.png?width=288&height=70\"},className:\"framer-15mcxeh\",\"data-framer-name\":\"XLDent-logo 2\",layoutDependency:layoutDependency,layoutId:\"Tyw7k5K9X\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Servico Logo\",fit:\"fill\",intrinsicHeight:61,intrinsicWidth:270,pixelHeight:61,pixelWidth:270,sizes:\"177px\",src:\"https://framerusercontent.com/images/sSIXjQkMwbFVEiXeLqkAdpOyypw.png?width=270&height=61\"},className:\"framer-omvzdo\",\"data-framer-name\":\"Servico\",layoutDependency:layoutDependency,layoutId:\"NUL_Y5EFc\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Trendex Logo\",fit:\"fill\",intrinsicHeight:92,intrinsicWidth:254,pixelHeight:92,pixelWidth:254,sizes:\"138px\",src:\"https://framerusercontent.com/images/M3YR0WVmxDMcTuJzpLCyRfN2A.png?width=254&height=92\"},className:\"framer-72p070\",\"data-framer-name\":\"Trendex (5)Dark\",layoutDependency:layoutDependency,layoutId:\"g2I85aMEc\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"Valstone Logo\",fit:\"fill\",intrinsicHeight:61,intrinsicWidth:299,pixelHeight:61,pixelWidth:299,sizes:\"172px\",src:\"https://framerusercontent.com/images/ZJ6nBLlyH1M2WWhndfi6lTQXA.png?width=299&height=61\"},className:\"framer-1ix0zol\",\"data-framer-name\":\"Valstone-logo-dark copy\",layoutDependency:layoutDependency,layoutId:\"YDg5E0DaA\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"TDO logo\",fit:\"fill\",intrinsicHeight:100,intrinsicWidth:178,pixelHeight:100,pixelWidth:178,sizes:\"96px\",src:\"https://framerusercontent.com/images/k2Qfga82tSpHzkxmLXNRNWspcLM.png?width=178&height=100\"},className:\"framer-1s53e37\",\"data-framer-name\":\"Tdo dark\",layoutDependency:layoutDependency,layoutId:\"ozXpXkQoZ\"})],speed:30,style:{height:\"100%\",width:\"100%\"},width:\"100%\",...addPropertyOverrides({q1GiGB4n_:{gap:32}},baseVariant,gestureVariant)})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-e0N7o.framer-uvx87g, .framer-e0N7o .framer-uvx87g { display: block; }\",\".framer-e0N7o.framer-tj5npv { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: wrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 970px; }\",\".framer-e0N7o .framer-ztcnx8-container { flex: none; height: 54px; position: relative; width: 100%; }\",\".framer-e0N7o .framer-hse447 { aspect-ratio: 4.492957746478873 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 157px; }\",\".framer-e0N7o .framer-1vchrqj { aspect-ratio: 4.732394366197183 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 166px; }\",\".framer-e0N7o .framer-1bq1554 { aspect-ratio: 5.098591549295775 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 178px; }\",\".framer-e0N7o .framer-1y2ug80 { aspect-ratio: 3.3380281690140845 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 117px; }\",\".framer-e0N7o .framer-1ltuth9 { aspect-ratio: 3.657142857142857 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 128px; }\",\".framer-e0N7o .framer-bnubdi { aspect-ratio: 7.520833333333333 / 1; height: var(--framer-aspect-ratio-supported, 24px); overflow: visible; position: relative; width: 181px; }\",\".framer-e0N7o .framer-ifqbpo { aspect-ratio: 8.147540983606557 / 1; height: var(--framer-aspect-ratio-supported, 30px); overflow: visible; position: relative; width: 244px; }\",\".framer-e0N7o .framer-5e69t2 { aspect-ratio: 3.8 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 152px; }\",\".framer-e0N7o .framer-5md4w6 { aspect-ratio: 2.4285714285714284 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 97px; }\",\".framer-e0N7o .framer-138xku1 { aspect-ratio: 6.057142857142857 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 212px; }\",\".framer-e0N7o .framer-1xh7ucp { aspect-ratio: 3.0985915492957745 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 124px; }\",\".framer-e0N7o .framer-p9wc61 { aspect-ratio: 1.6 / 1; height: var(--framer-aspect-ratio-supported, 54px); overflow: visible; position: relative; width: 86px; }\",\".framer-e0N7o .framer-gllo1y { aspect-ratio: 7.816666666666666 / 1; height: var(--framer-aspect-ratio-supported, 28px); overflow: visible; position: relative; width: 219px; }\",\".framer-e0N7o .framer-1rrd2vr { aspect-ratio: 5.585714285714285 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 196px; }\",\".framer-e0N7o .framer-1qfsgs9 { aspect-ratio: 2.4 / 1; height: var(--framer-aspect-ratio-supported, 54px); overflow: visible; position: relative; width: 130px; }\",\".framer-e0N7o .framer-q6ja3f { aspect-ratio: 4.585714285714285 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 183px; }\",\".framer-e0N7o .framer-143vvum { aspect-ratio: 1.7924528301886793 / 1; height: var(--framer-aspect-ratio-supported, 54px); overflow: visible; position: relative; width: 97px; }\",\".framer-e0N7o .framer-15mcxeh { aspect-ratio: 4.114285714285714 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 144px; }\",\".framer-e0N7o .framer-omvzdo { aspect-ratio: 4.426229508196721 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 177px; }\",\".framer-e0N7o .framer-72p070 { aspect-ratio: 2.760869565217391 / 1; height: var(--framer-aspect-ratio-supported, 50px); overflow: visible; position: relative; width: 138px; }\",\".framer-e0N7o .framer-1ix0zol { aspect-ratio: 4.901639344262295 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 172px; }\",\".framer-e0N7o .framer-1s53e37 { aspect-ratio: 1.78 / 1; height: var(--framer-aspect-ratio-supported, 54px); overflow: visible; position: relative; width: 96px; }\",\".framer-e0N7o.framer-v-1138me7.framer-tj5npv { gap: 30px; width: 768px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 54\n * @framerIntrinsicWidth 970\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"q1GiGB4n_\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerQPeXi6Lzr=withCSS(Component,css,\"framer-e0N7o\");export default FramerQPeXi6Lzr;FramerQPeXi6Lzr.displayName=\"Companies Ticker in color\";FramerQPeXi6Lzr.defaultProps={height:54,width:970};addPropertyControls(FramerQPeXi6Lzr,{variant:{options:[\"xImKhV3hh\",\"q1GiGB4n_\"],optionTitles:[\"Desktop\",\"Tablet & Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerQPeXi6Lzr,[{explicitInter:true,fonts:[]},...TickerFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQPeXi6Lzr\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"970\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"q1GiGB4n_\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"54\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QPeXi6Lzr.map","// Generated by Framer (2ca17d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-extrabold\",\"FS;Plus Jakarta Sans-extrabold italic\",\"FS;Plus Jakarta Sans-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XYQDC7JAGGEKCBFTJWJFLWLJYO67C7XN/RVU7P55XKD46CPRWMPRMGQG2XS5IZ3EH/RJHIBK2KTTRF4HQSD33LZE5P3HZAYGJ2.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XU3SIPSTILVUEE57N33LI57RHN4LESB2/NYZOFSLOXP2NLUPPPC3HSJFYFAYFD5WF/MRD5H7VGACV27ZK3D773YPWKUWZ5UTUZ.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"}]}];export const css=['.framer-ccpdH .framer-styles-preset-1c5jz7l:not(.rich-text-wrapper), .framer-ccpdH .framer-styles-preset-1c5jz7l.rich-text-wrapper h3 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 38px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 130%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-ccpdH .framer-styles-preset-1c5jz7l:not(.rich-text-wrapper), .framer-ccpdH .framer-styles-preset-1c5jz7l.rich-text-wrapper h3 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 130%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-ccpdH .framer-styles-preset-1c5jz7l:not(.rich-text-wrapper), .framer-ccpdH .framer-styles-preset-1c5jz7l.rich-text-wrapper h3 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 130%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-ccpdH\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-extrabold\",\"FS;Plus Jakarta Sans-extrabold italic\",\"FS;Plus Jakarta Sans-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XYQDC7JAGGEKCBFTJWJFLWLJYO67C7XN/RVU7P55XKD46CPRWMPRMGQG2XS5IZ3EH/RJHIBK2KTTRF4HQSD33LZE5P3HZAYGJ2.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XU3SIPSTILVUEE57N33LI57RHN4LESB2/NYZOFSLOXP2NLUPPPC3HSJFYFAYFD5WF/MRD5H7VGACV27ZK3D773YPWKUWZ5UTUZ.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"}]}];export const css=['.framer-6rByw .framer-styles-preset-mysdzm:not(.rich-text-wrapper), .framer-6rByw .framer-styles-preset-mysdzm.rich-text-wrapper h6 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-6rByw\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vFzuJY0c65av44uhEKB6vyjFMg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-mntBi .framer-styles-preset-z5w3na:not(.rich-text-wrapper), .framer-mntBi .framer-styles-preset-z5w3na.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 28px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-mntBi .framer-styles-preset-z5w3na:not(.rich-text-wrapper), .framer-mntBi .framer-styles-preset-z5w3na.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-mntBi .framer-styles-preset-z5w3na:not(.rich-text-wrapper), .framer-mntBi .framer-styles-preset-z5w3na.rich-text-wrapper p { --framer-font-family: \"Inter\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-mntBi\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (32e10d4)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-extrabold\",\"FS;Plus Jakarta Sans-extrabold italic\",\"FS;Plus Jakarta Sans-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XYQDC7JAGGEKCBFTJWJFLWLJYO67C7XN/RVU7P55XKD46CPRWMPRMGQG2XS5IZ3EH/RJHIBK2KTTRF4HQSD33LZE5P3HZAYGJ2.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XU3SIPSTILVUEE57N33LI57RHN4LESB2/NYZOFSLOXP2NLUPPPC3HSJFYFAYFD5WF/MRD5H7VGACV27ZK3D773YPWKUWZ5UTUZ.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"}]}];export const css=['.framer-ynnt3 .framer-styles-preset-ok644z:not(.rich-text-wrapper), .framer-ynnt3 .framer-styles-preset-ok644z.rich-text-wrapper h5 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-ynnt3 .framer-styles-preset-ok644z:not(.rich-text-wrapper), .framer-ynnt3 .framer-styles-preset-ok644z.rich-text-wrapper h5 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-ynnt3 .framer-styles-preset-ok644z:not(.rich-text-wrapper), .framer-ynnt3 .framer-styles-preset-ok644z.rich-text-wrapper h5 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-ynnt3\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f030ee3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-extrabold\",\"FS;Plus Jakarta Sans-extrabold italic\",\"FS;Plus Jakarta Sans-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XYQDC7JAGGEKCBFTJWJFLWLJYO67C7XN/RVU7P55XKD46CPRWMPRMGQG2XS5IZ3EH/RJHIBK2KTTRF4HQSD33LZE5P3HZAYGJ2.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XU3SIPSTILVUEE57N33LI57RHN4LESB2/NYZOFSLOXP2NLUPPPC3HSJFYFAYFD5WF/MRD5H7VGACV27ZK3D773YPWKUWZ5UTUZ.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"}]}];export const css=['.framer-26jfz .framer-styles-preset-1fp0zvd:not(.rich-text-wrapper), .framer-26jfz .framer-styles-preset-1fp0zvd.rich-text-wrapper h1 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 64px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 120%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-26jfz .framer-styles-preset-1fp0zvd:not(.rich-text-wrapper), .framer-26jfz .framer-styles-preset-1fp0zvd.rich-text-wrapper h1 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 54px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 120%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-26jfz .framer-styles-preset-1fp0zvd:not(.rich-text-wrapper), .framer-26jfz .framer-styles-preset-1fp0zvd.rich-text-wrapper h1 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 36px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 120%; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-26jfz\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ec3ae02)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,Image as Image1,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Ticker from\"https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/LHz3bw67SqHRmnCKTlE6/Ticker.js\";const TickerFonts=getFonts(Ticker);const serializationHash=\"framer-jTKM8\";const variantClassNames={jAZSYgVNl:\"framer-v-1jp6c43\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"jAZSYgVNl\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1jp6c43\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"jAZSYgVNl\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1hx4m9o-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"m8E2oGN_t-container\",nodeId:\"m8E2oGN_t\",rendersWithMotion:true,scopeId:\"pzL8a0dup\",style:{rotateX:20,transformPerspective:1425},children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"left\",fadeOptions:{fadeAlpha:0,fadeContent:false,fadeInset:0,fadeWidth:25,overflow:false},gap:12,height:\"100%\",hoverFactor:1,id:\"m8E2oGN_t\",layoutId:\"m8E2oGN_t\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:1200,pixelWidth:896,sizes:\"240px\",src:\"https://framerusercontent.com/images/5ygQoWul2J069rWL3dZ12HK1TlA.png?width=896&height=1200\",srcSet:\"https://framerusercontent.com/images/5ygQoWul2J069rWL3dZ12HK1TlA.png?scale-down-to=1024&width=896&height=1200 764w,https://framerusercontent.com/images/5ygQoWul2J069rWL3dZ12HK1TlA.png?width=896&height=1200 896w\"},className:\"framer-sa458j\",layoutDependency:layoutDependency,layoutId:\"tYZQV1tr2\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:6e3,pixelWidth:4e3,sizes:\"240px\",src:\"https://framerusercontent.com/images/LrgezwJ9QTlnKeaMbtI8i5clw.jpg?width=4000&height=6000\",srcSet:\"https://framerusercontent.com/images/LrgezwJ9QTlnKeaMbtI8i5clw.jpg?scale-down-to=1024&width=4000&height=6000 682w,https://framerusercontent.com/images/LrgezwJ9QTlnKeaMbtI8i5clw.jpg?scale-down-to=2048&width=4000&height=6000 1365w,https://framerusercontent.com/images/LrgezwJ9QTlnKeaMbtI8i5clw.jpg?scale-down-to=4096&width=4000&height=6000 2730w,https://framerusercontent.com/images/LrgezwJ9QTlnKeaMbtI8i5clw.jpg?width=4000&height=6000 4000w\"},className:\"framer-me0xws\",layoutDependency:layoutDependency,layoutId:\"G8YEuSaNH\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:750,pixelWidth:600,sizes:\"240px\",src:\"https://framerusercontent.com/images/nNbVmSpHDUKIhYxUEKJ8oK2gY.jpg?width=600&height=750\",srcSet:\"https://framerusercontent.com/images/nNbVmSpHDUKIhYxUEKJ8oK2gY.jpg?width=600&height=750 600w\"},className:\"framer-4en4av\",layoutDependency:layoutDependency,layoutId:\"jZSxOSMCN\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:750,pixelWidth:600,sizes:\"240px\",src:\"https://framerusercontent.com/images/00CmkFIveFXecSfCEr3Dj2TCj0A.jpg?width=600&height=750\",srcSet:\"https://framerusercontent.com/images/00CmkFIveFXecSfCEr3Dj2TCj0A.jpg?width=600&height=750 600w\"},className:\"framer-edvb9o\",layoutDependency:layoutDependency,layoutId:\"wWvFrj2qg\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:750,pixelWidth:600,sizes:\"240px\",src:\"https://framerusercontent.com/images/07EqSJAJNdq15AH3Gzx2eRVx6Y.jpg?width=600&height=750\",srcSet:\"https://framerusercontent.com/images/07EqSJAJNdq15AH3Gzx2eRVx6Y.jpg?width=600&height=750 600w\"},className:\"framer-1vxmen7\",layoutDependency:layoutDependency,layoutId:\"BY3bcHSPN\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:750,pixelWidth:600,sizes:\"240px\",src:\"https://framerusercontent.com/images/xdlRZe7i3lYRd3RAU8ZfyT5iyE.jpg?width=600&height=750\",srcSet:\"https://framerusercontent.com/images/xdlRZe7i3lYRd3RAU8ZfyT5iyE.jpg?width=600&height=750 600w\"},className:\"framer-1tl1i57\",layoutDependency:layoutDependency,layoutId:\"FZy2xZb39\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",pixelHeight:750,pixelWidth:600,sizes:\"240px\",src:\"https://framerusercontent.com/images/01Q99FMZDIQsxD39CgjsYrcPlQ4.jpg?width=600&height=750\",srcSet:\"https://framerusercontent.com/images/01Q99FMZDIQsxD39CgjsYrcPlQ4.jpg?width=600&height=750 600w\"},className:\"framer-1de7i4t\",layoutDependency:layoutDependency,layoutId:\"ezSLIeS4b\",style:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}})],speed:35,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-jTKM8.framer-1kbuudd, .framer-jTKM8 .framer-1kbuudd { display: block; }\",\".framer-jTKM8.framer-1jp6c43 { height: 300px; overflow: hidden; position: relative; width: 658px; }\",\".framer-jTKM8 .framer-1hx4m9o-container { bottom: 0px; flex: none; left: -34px; position: absolute; right: -34px; top: 0px; }\",\".framer-jTKM8 .framer-sa458j { gap: 10px; height: 300px; overflow: hidden; position: relative; width: 240px; will-change: var(--framer-will-change-override, transform); }\",\".framer-jTKM8 .framer-me0xws, .framer-jTKM8 .framer-4en4av, .framer-jTKM8 .framer-edvb9o, .framer-jTKM8 .framer-1vxmen7, .framer-jTKM8 .framer-1tl1i57, .framer-jTKM8 .framer-1de7i4t { height: 300px; overflow: hidden; position: relative; width: 240px; will-change: var(--framer-will-change-override, transform); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 300\n * @framerIntrinsicWidth 658\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerpzL8a0dup=withCSS(Component,css,\"framer-jTKM8\");export default FramerpzL8a0dup;FramerpzL8a0dup.displayName=\"Ticker Images\";FramerpzL8a0dup.defaultProps={height:300,width:658};addFonts(FramerpzL8a0dup,[{explicitInter:true,fonts:[]},...TickerFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerpzL8a0dup\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"300\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"658\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./pzL8a0dup.map","// Generated by Framer (fc3086c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,getFontsFromSharedStyle,RichText,runTasksWithYield,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/vgQyI9VZ9ChLgJEBOZfo/sEEURhOGJU4ipUkC3sRH/AfSbvoluX.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/xRPkMNBjg2xALyKEsbqo/OG9axSMdfZjBzkPO2I14/GyyhZkl87.js\";import FlowAnimation from\"https://framerusercontent.com/modules/4txNyg3eqzWPtrbr3hye/wioOgx9JCsPRUrWkapDc/eHx70Ztok.js\";import BadgeOverline from\"https://framerusercontent.com/modules/yKr8ir8X3wgqOuWQLYvu/O1dCCTKKaZSeoXNkqGhF/F6ZhvI1ZC.js\";import ButtonsButton from\"https://framerusercontent.com/modules/bT9KKHrIkFvP9fd3DREm/vZ4byS3dhfH23GJASHzl/lgKeAsBNa.js\";import TickerImages from\"https://framerusercontent.com/modules/ruB4N16EY9vHIdMcaQ5U/F7M8ZuU208whcgx6OMvY/pzL8a0dup.js\";const BadgeOverlineFonts=getFonts(BadgeOverline);const ButtonsButtonFonts=getFonts(ButtonsButton);const SmartComponentScopedContainerWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(SmartComponentScopedContainer));const FlowAnimationFonts=getFonts(FlowAnimation);const cycleOrder=[\"jAQ4eRqpA\",\"K3DAKuO2C\"];const serializationHash=\"framer-HexJ8\";const variantClassNames={jAQ4eRqpA:\"framer-v-190433m\",K3DAKuO2C:\"framer-v-7o313b\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const transition2={damping:40,delay:1.1,mass:1,stiffness:200,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:-12,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\" Mobile\":\"K3DAKuO2C\",Desktop:\"jAQ4eRqpA\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"jAQ4eRqpA\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"jAQ4eRqpA\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.section,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-190433m\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"jAQ4eRqpA\",ref:refBinding,style:{backgroundColor:\"var(--token-9c755877-3e02-4401-9345-20be86aaca3b, rgb(6, 41, 34))\",...style},...addPropertyOverrides({K3DAKuO2C:{\"data-framer-name\":\" Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1qpab06\",\"data-framer-name\":\"content CTA\",layoutDependency:layoutDependency,layoutId:\"Rpa7Vdoc6\",style:{backgroundColor:\"var(--token-ab5aec84-b140-421c-9dbb-c40da09b9eb9, rgba(108, 196, 160, 0.1))\",borderBottomLeftRadius:16,borderBottomRightRadius:16,borderTopLeftRadius:16,borderTopRightRadius:16},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-aurq66\",\"data-framer-name\":\"Content & CTA\",layoutDependency:layoutDependency,layoutId:\"WvQFLqrrR\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-7jn730\",\"data-framer-name\":\"heading&sub\",layoutDependency:layoutDependency,layoutId:\"LFligmKpr\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-je4ku0\",layoutDependency:layoutDependency,layoutId:\"BjjhtBYuR\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:26,...addPropertyOverrides({K3DAKuO2C:{y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-774.8)/2+0+0)+80+0+0+0+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-rfdgta-container\",layoutDependency:layoutDependency,layoutId:\"GO0ICltiE-container\",nodeId:\"GO0ICltiE\",rendersWithMotion:true,scopeId:\"YAgo0KP6d\",children:/*#__PURE__*/_jsx(BadgeOverline,{h5mTi1koL:\"Embedded Payments Partner\",height:\"100%\",id:\"GO0ICltiE\",jGfDTZg8d:\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159))\",layoutId:\"GO0ICltiE\",U71_cGil4:\"var(--token-edaa9971-6e0c-4f47-8f4a-d71109e890bb, rgb(107, 196, 159))\",variant:matchVariant(\"jbNAB_7Xg\"),vyt13HORf:\"center\",width:\"100%\",wq561nFkG:\"fill\",yRfDwWF7Q:\"CheckCircle\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{className:\"framer-styles-preset-1fp0zvd\",\"data-styles-preset\":\"GyyhZkl87\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-gdpscs, var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232)))\"},children:\"Fuel your growth\"})}),className:\"framer-13ytv4b\",\"data-framer-name\":\"An Exclusive Community for lead generation experts\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"tH9dXWUQB\",style:{\"--extracted-gdpscs\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-z5w3na\",\"data-styles-preset\":\"AfSbvoluX\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232)))\"},children:\"Simplify payment operations, unlock revenue opportunities, and deliver exceptional value to your users with ValPay’s seamless, scalable solutions.\"})}),className:\"framer-u9pu59\",\"data-framer-name\":\"Lead Academy is an academy & community dedicated for lead generation experts & students to share information & grow through collaborative efforts.\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"eFLkR5_oj\",style:{\"--extracted-r6o4lv\":\"var(--token-7e0cd714-f2b1-46e9-948f-fc5b910f33b4, rgb(230, 230, 232))\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1807yho\",\"data-framer-name\":\"cta\",layoutDependency:layoutDependency,layoutId:\"KXA_ZoYCj\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:40,...addPropertyOverrides({K3DAKuO2C:{width:`min(min(${componentViewport?.width||\"100vw\"} - 32px, 1240px) - 40px, 1000px)`,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-774.8)/2+0+0)+80+0+0+310.8+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,className:\"framer-ymzai-container\",\"data-framer-appear-id\":\"ymzai\",initial:animation1,layoutDependency:layoutDependency,layoutId:\"gs3QAZjAV-container\",nodeId:\"gs3QAZjAV\",optimized:true,rendersWithMotion:true,scopeId:\"YAgo0KP6d\",children:/*#__PURE__*/_jsx(ButtonsButton,{cRoeZpcrs:\"Book a call\",FsefAOOPs:\"rgba(29, 30, 33, 0.75)\",GrpQ8zFBL:\"https://www.valpay.com/contact-us\",height:\"100%\",id:\"gs3QAZjAV\",layoutId:\"gs3QAZjAV\",mKwdituEw:false,RCPR2dydG:\"ArrowUpRight\",RmbCx19YN:false,SM93ZbT4W:false,variant:matchVariant(\"YHk2RDjoQ\"),width:\"100%\",...addPropertyOverrides({K3DAKuO2C:{style:{width:\"100%\"},variant:matchVariant(\"o4Pexml_B\")}},baseVariant,gestureVariant)})})})})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:180,width:\"1900px\",...addPropertyOverrides({K3DAKuO2C:{height:320,y:(componentViewport?.y||0)+48+(((componentViewport?.height||200)-96-774.8)/2+0+0)+80+374.8}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-m1t7mj-container\",layoutDependency:layoutDependency,layoutId:\"TpKyfP5wg-container\",nodeId:\"TpKyfP5wg\",rendersWithMotion:true,scopeId:\"YAgo0KP6d\",children:/*#__PURE__*/_jsx(FlowAnimation,{height:\"100%\",id:\"TpKyfP5wg\",layoutId:\"TpKyfP5wg\",style:{height:\"100%\",width:\"100%\"},variant:matchVariant(\"i9ox1Smx2\"),width:\"100%\",...addPropertyOverrides({K3DAKuO2C:{style:{width:\"100%\"}}},baseVariant,gestureVariant)})})})]})})})})});});const css=[\".framer-HexJ8.framer-1r9hubh, .framer-HexJ8 .framer-1r9hubh { display: block; }\",\".framer-HexJ8.framer-190433m { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: min-content; justify-content: center; overflow: hidden; padding: 80px 32px 80px 32px; position: relative; width: 1200px; }\",\".framer-HexJ8 .framer-1qpab06 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; max-width: 1240px; overflow: hidden; padding: 128px 64px 0px 64px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); z-index: 1; }\",\".framer-HexJ8 .framer-aurq66 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: center; max-width: 1000px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-HexJ8 .framer-7jn730 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-HexJ8 .framer-je4ku0 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-HexJ8 .framer-rfdgta-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-HexJ8 .framer-13ytv4b { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; z-index: 2; }\",\".framer-HexJ8 .framer-u9pu59 { flex: none; height: auto; max-width: 640px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-HexJ8 .framer-1807yho { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: wrap; gap: 12px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 3; }\",\".framer-HexJ8 .framer-ymzai-container { flex: none; height: auto; position: relative; width: auto; z-index: 3; }\",\".framer-HexJ8 .framer-m1t7mj-container { flex: none; height: 180px; position: relative; width: 1900px; }\",\".framer-HexJ8.framer-v-7o313b.framer-190433m { padding: 48px 16px 48px 16px; width: 390px; }\",\".framer-HexJ8.framer-v-7o313b .framer-1qpab06 { padding: 80px 20px 0px 20px; }\",\".framer-HexJ8.framer-v-7o313b .framer-1807yho { flex-direction: column; }\",\".framer-HexJ8.framer-v-7o313b .framer-ymzai-container { width: 100%; }\",\".framer-HexJ8.framer-v-7o313b .framer-m1t7mj-container { height: auto; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 599\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"K3DAKuO2C\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerYAgo0KP6d=withCSS(Component,css,\"framer-HexJ8\");export default FramerYAgo0KP6d;FramerYAgo0KP6d.displayName=\"Final CTA\";FramerYAgo0KP6d.defaultProps={height:599,width:1200};addPropertyControls(FramerYAgo0KP6d,{variant:{options:[\"jAQ4eRqpA\",\"K3DAKuO2C\"],optionTitles:[\"Desktop\",\" Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerYAgo0KP6d,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...BadgeOverlineFonts,...ButtonsButtonFonts,...FlowAnimationFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});FramerYAgo0KP6d.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(BadgeOverline,{},context),()=>forwardLoader(ButtonsButton,{},context),()=>forwardLoader(TickerImages,{},context),()=>forwardLoader(FlowAnimation,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerYAgo0KP6d\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"599\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"K3DAKuO2C\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./YAgo0KP6d.map","// Generated by Framer (9f55354)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-SemiBold\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-SemiBoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/vxBnBhH8768IFAXAb4Qf6wQHKs.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zSsEuoJdh8mcFVk976C05ZfQr8.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/b8ezwLrN7h2AUoPEENcsTMVJ0.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/mvNEIBLyHbscgHtwfsByjXUz3XY.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/6FI2EneKzM3qBy5foOZXey7coCA.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/qrVgiXNd6RuQjETYQiVQ9nqCk.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/NHHeAKJVP0ZWHk5YZnQQChIsBM.woff2\",weight:\"600\"}]}];export const css=['.framer-KWCbT .framer-styles-preset-1jigmkh:not(.rich-text-wrapper), .framer-KWCbT .framer-styles-preset-1jigmkh.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 26px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-KWCbT .framer-styles-preset-1jigmkh:not(.rich-text-wrapper), .framer-KWCbT .framer-styles-preset-1jigmkh.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-KWCbT .framer-styles-preset-1jigmkh:not(.rich-text-wrapper), .framer-KWCbT .framer-styles-preset-1jigmkh.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-82636631-2a6e-4e90-bb62-52bae867c5e1, #1c1d20); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-KWCbT\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6807895)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Plus Jakarta Sans-bold\",\"FS;Plus Jakarta Sans-extrabold\",\"FS;Plus Jakarta Sans-extrabold italic\",\"FS;Plus Jakarta Sans-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/AJVGEOXGB2ALQKAZEK2LDOLCVBCMCOIT/LDEP4R7SNNABDEG433DCQGM2A7YCBHLU/OWABOLGBAKFVLPZ756IYS6EKYKU54K3I.woff2\",weight:\"700\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"normal\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XYQDC7JAGGEKCBFTJWJFLWLJYO67C7XN/RVU7P55XKD46CPRWMPRMGQG2XS5IZ3EH/RJHIBK2KTTRF4HQSD33LZE5P3HZAYGJ2.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XU3SIPSTILVUEE57N33LI57RHN4LESB2/NYZOFSLOXP2NLUPPPC3HSJFYFAYFD5WF/MRD5H7VGACV27ZK3D773YPWKUWZ5UTUZ.woff2\",weight:\"800\"},{family:\"Plus Jakarta Sans\",source:\"fontshare\",style:\"italic\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/57U2OK2BISA74Z4RT4CRD5GR4O3PNVPY/K4TDAPUNBYK24HOCNW4JIOTEXSAE2BEF/GV5XODI2YD2DJA5RVTMJOSDHYESL7IYT.woff2\",weight:\"700\"}]}];export const css=['.framer-euzM4 .framer-styles-preset-qoet5n:not(.rich-text-wrapper), .framer-euzM4 .framer-styles-preset-qoet5n.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 48px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-euzM4 .framer-styles-preset-qoet5n:not(.rich-text-wrapper), .framer-euzM4 .framer-styles-preset-qoet5n.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 38px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-euzM4 .framer-styles-preset-qoet5n:not(.rich-text-wrapper), .framer-euzM4 .framer-styles-preset-qoet5n.rich-text-wrapper h2 { --framer-font-family: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Plus Jakarta Sans\", \"Plus Jakarta Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 28px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.03em; --framer-line-height: 120%; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: var(--token-ba468d28-6bb4-40ab-b278-288531f0ba3d, #17214a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-euzM4\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (1683339)\nexport default function metadata(params,activeLocale){return{description:\"ValPay simplifies payment processing for SaaS & software businesses. Secure, fast, and revenue-boosting solutions—get started today!\",favicon:\"https://framerusercontent.com/assets/0fQrRtSsS4lAuquM2j0Gy7LrqQ.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/qU9YrB7NjYOiMUhis7MymaoxsVI.png\",title:\"ValPay – Seamless Payment Processing for SaaS & Software Businesses\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"A,s9BAEIA,GAAQ,IACLC,KACH,mBAA4B,IAAI,IAAI,CAClC,CACE,OACgB,kBAAM,cAAcyrB,EAAM,SAAU,KAAsB,kBAAM,cAAc,OAAQ,CAAE,EAAG,6RAA8R,CAAC,CAAC,CAC7Y,EACA,CACE,UACgB,kBAAM,cAAcA,EAAM,SAAU,KAAsB,kBAAM,cAC9E,OACA,CACE,EAAG,yGACH,QAAS,KACX,CACF,EAAmB,kBAAM,cAAc,OAAQ,CAAE,EAAG,kQAAmQ,CAAC,CAAC,CAC3T,EACA,CACE,OACgB,kBAAM,cAAcA,EAAM,SAAU,KAAsB,kBAAM,cAAc,OAAQ,CAAE,EAAG,mMAAoM,CAAC,CAAC,CACnT,EACA,CACE,QACgB,kBAAM,cAAcA,EAAM,SAAU,KAAsB,kBAAM,cAAc,OAAQ,CAAE,EAAG,mTAAoT,CAAC,CAAC,CACna,EACA,CACE,UACgB,kBAAM,cAAcA,EAAM,SAAU,KAAsB,kBAAM,cAAc,OAAQ,CAAE,EAAG,kQAAmQ,CAAC,CAAC,CAClX,EACA,CACE,OACgB,kBAAM,cAAcA,EAAM,SAAU,KAAsB,kBAAM,cAAc,OAAQ,CAAE,EAAG,0SAA2S,CAAC,CAAC,CAC1Z,CACF,CAAC,EACD,GAAYA,EAAM,YAAY,EAAO,IAAwB,kBAAM,cAAc,IAAK,CAAE,MAAK,GAAGC,CAAM,EAAG1rB,GAAU,IAAI0rB,EAAM,MAAM,CAAC,CAAC,GAEhIL,IAYL,GAAgBtrB,E,OC1CjB,SAAgBE,GAAK,EAAM,CAAC,GAAK,CAAC,QAAM,eAAa,aAAW,gBAAc,UAAQ,cAAY,YAAU,eAAa,eAAa,SAAO,YAAUyrB,EAAYE,EAAU1rB,EAAO,EAAK,EAAQ2rB,EAAQhB,GAAiB1qB,GAAS4rB,EAAaC,EAAWC,EAAc7rB,EAAqB,EAAO,CAAC+rB,EAAaC,GAAiB/rB,GAASwrB,IAAU,OAAOvrB,GAAaC,CAAK,EAAE,IAAI,EAAE,eAAe8rB,GAAc,CACxZ,GAAG,CAAuF,IAAMC,EAAO,MAAM;;AAAgC,GAA3F9rB,KAAgBqrB,EAAQ,aAAqFD,EAAU,SAAQQ,EAAgBE,EAAO,QAAQ/rB,CAAK,CAAC,CAAE,MAAW,CAAIqrB,EAAU,SAAQQ,EAAgB,IAAI,CAAE,CAAC,CAAC9G,OAAe,EAAU,QAAQ,GAAK+G,EAAa,MAAY,CAAC,EAAU,QAAQ,EAAM,GAAI,CAACR,CAAO,CAAC,EAAgE,IAAMW,EAAnD/rB,GAAa,QAAQ,IAAIA,GAAa,OAAgD,gBAAKmqB,GAAU,CAAC,CAAC,EAAE,KAAK,MAAoB,gBAAKpD,EAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,UAAU,EAAE,UAAQ,eAAa,eAAa,cAAY,YAAU,SAAS2E,EAA0B,gBAAK,MAAM,CAAC,MAAM,6BAA6B,QAAQ,cAAc,MAAM,CAAC,WAAW,OAAO,MAAM,OAAO,OAAO,OAAO,QAAQ,eAAe,KAAKM,EAAM,QAAM,WAAW,EAAE,UAAUC,EAAS,eAAe,IAAA,EAAS,EAAE,UAAU,QAAc,QAAM,SAAsB,gBAAKP,EAAa,CAAO,QAAa,QAAM,CAAC,CAAC,CAAC,EAAEK,CAAU,CAAC,CAAE,C,gFATpersB,GAAS,85gBAA+ymB,EAAQK,GAAc,uCAA6CE,GAAc,CAAC,OAAO,QAAQ,UAAU,OAAO,OAAO,SAAS,EAAQN,GAAsBD,GAAS,QAAQ,EAAI,KAAO,EAAI0sB,EAAI,YAAY,GAAGA,EAAWC,GAAM,CAAC,CAAC,EASzjmB,GAAK,YAAY,WAAW,GAAK,aAAa,CAAC,MAAM,GAAG,OAAO,GAAG,cAAc,QAAQ,WAAW,QAAQ,MAAM,OAAO,aAAa,GAAK,OAAO,UAAU,SAAS,EAAK,EAAEpD,GAAoBzpB,GAAK,CAAC,aAAa,CAAC,KAAKqpB,EAAY,QAAQ,MAAM,SAAS,aAAa,OAAO,cAAc,SAAS,aAAarpB,GAAK,aAAa,YAAY,EAAE,cAAc,CAAC,KAAKqpB,EAAY,KAAK,QAAQnpB,GAAS,aAAaF,GAAK,aAAa,cAAc,MAAM,OAAO,QAAQ,CAAC,kBAAgB,CAAC8rB,EAAa,YAAY,yEAAyE,EAAE,WAAW,CAAC,KAAKzC,EAAY,OAAO,MAAM,OAAO,YAAY,mBAAmB,QAAQ,CAAC,kBAAgByC,CAAY,EAAE,MAAM,CAAC,KAAKzC,EAAY,MAAM,MAAM,QAAQ,aAAarpB,GAAK,aAAa,KAAK,EAAE,OAAO,CAAC,KAAKqpB,EAAY,KAAK,MAAM,SAAS,aAAa5oB,GAAc,IAAI,GAAOqsB,EAAM,OAAO,CAAC,CAAC,CAAC,YAAY,EAAEA,EAAM,MAAM,CAAC,CAAC,EAAE,QAAQrsB,GAAc,aAAaT,GAAK,aAAa,MAAM,EAAE,SAAS,CAAC,KAAKqpB,EAAY,QAAQ,aAAa,MAAM,cAAc,KAAK,aAAarpB,GAAK,aAAa,QAAQ,EAAE,GAAGmqB,EAAa,CAAC,C,iFCTviEzpB,GAAY,OAAO,eACnBC,GAAa,OAAO,iBACpBC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChC,GAAQ,KAAK,IACbC,IAAmB,EAAK,EAAK,IAAU4rB,KAAOiB,EAAMntB,GAAUmtB,EAAKjB,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,OAAM,CAAC,EAAI,EAAIA,GAAOkB,EACtJ,GAAkB,EAAG,IAAM,CAC7B,IAAK,IAAIC,IAAQ,CAAMC,IAAI,CAAC,EACtBltB,GAAa,KAAKktB,EAAGD,CAAI,GAC3BT,GAAgBW,EAAGF,EAAMC,EAAED,EAAK,EACpC,GAAIltB,GACG,IAAA,IAAIktB,KAAQltB,GAAoBmtB,CAAC,EAChCjtB,GAAa,KAAKitB,EAAGD,CAAI,GAC3BT,GAAgBW,EAAGF,EAAMC,EAAED,EAAK,EAEtC,OAAOE,CACT,EACI,IAAiB,EAAG,IAAMttB,GAAWstB,EAAGrtB,GAAkBotB,CAAC,CAAC,EAC5D,IAAa,EAAQ,IAAY,CACnC,IAAIE,EAAS,CAAC,EACd,IAAK,IAAIH,KAAQI,EACXrtB,GAAa,KAAKqtB,EAAQJ,CAAI,GAAKK,EAAQ,QAAQL,CAAI,EAAI,IAC7D,EAAOA,GAAQI,EAAOJ,IAC1B,GAAII,GAAU,MAAQttB,GACf,IAAA,IAAIktB,KAAQltB,GAAoBstB,CAAM,EACrCC,EAAQ,QAAQL,CAAI,EAAI,GAAKhtB,GAAa,KAAKotB,EAAQJ,CAAI,IAC7D,EAAOA,GAAQI,EAAOJ,IAE5B,OAAOG,CACT,EACI,IAAY,EAAQ,IAAQ,CAC9B,IAAK,IAAIG,KAAQC,EACfvB,GAAUmB,EAAQG,EAAM,CAAE,IAAKC,EAAID,GAAO,WAAY,EAAK,CAAC,CAChE,EACI,IAAW,EAAQ,EAAa,IAC3B,IAAI,SAAS,EAAS,IAAW,CACtC,IAAIE,EAAa,GAAU,CACzB,GAAI,CACFC,EAAKC,EAAU,KAAKX,CAAK,CAAC,CAC5B,OAAS,EAAG,CACVY,EAAO,CAAC,CACV,CACF,EACIC,EAAY,GAAU,CACxB,GAAI,CACFH,EAAKC,EAAU,MAAMX,CAAK,CAAC,CAC7B,OAAS,EAAG,CACVY,EAAO,CAAC,CACV,CACF,EACIF,EAAQ,GAAMI,EAAE,KAAOC,EAAQD,EAAE,KAAK,EAAI,QAAQ,QAAQA,EAAE,KAAK,CAAC,CAAC,KAAKL,EAAWI,CAAQ,EAC/FH,GAAM,EAAYC,EAAU,MAAMK,EAAQC,CAAW,EAAA,CAAG,KAAK,CAAC,CAChE,CAAC,C,OCinBH,SAASC,IAAe,CACtB,IAAMC,EAAK,KAAK,OAAO,EAAI,WAAa,EAClCC,EAAK,KAAK,OAAO,EAAI,WAAa,EAClCC,EAAK,KAAK,OAAO,EAAI,WAAa,EAClCC,EAAK,KAAK,OAAO,EAAI,WAAa,EAExC,OADaC,GAAKJ,EAAK,KAAOI,GAAKJ,GAAM,EAAI,KAAOI,GAAKJ,GAAM,GAAK,KAAOI,GAAKJ,GAAM,GAAK,KAAO,IAAMI,GAAKH,EAAK,KAAOG,GAAKH,GAAM,EAAI,KAAO,IAAMG,GAAKH,GAAM,GAAK,GAAK,IAAMG,GAAKH,GAAM,GAAK,KAAO,IAAMG,GAAKF,EAAK,GAAK,KAAOE,GAAKF,GAAM,EAAI,KAAO,IAAME,GAAKF,GAAM,GAAK,KAAOE,GAAKF,GAAM,GAAK,KAAOE,GAAKD,EAAK,KAAOC,GAAKD,GAAM,EAAI,KAAOC,GAAKD,GAAM,GAAK,KAAOC,GAAKD,GAAM,GAAK,KAAA,CAC/W,YAAY,CAC1B,CACA,SAASnuB,GAAM,EAAO,EAAK,EAAK,CAC9B,OAAO,KAAK,IAAIsuB,EAAK,KAAK,IAAIC,EAAK1B,CAAK,CAAC,CAC3C,CACA,SAAS2B,GAAgB,EAAG,EAAG,CAC7B,OAAQC,EAAIC,EAAIA,GAAKA,CACvB,CACA,SAASC,GAAU,EAAG,EAAI,EAAI,EAAI,EAAI,CACpC,OAAOC,GAAMjB,EAAIkB,IAAOC,EAAKF,IAAOG,EAAKF,EAC3C,CACA,SAASG,GAAY,EAAG,EAAG,EAAO,CAI9B,OAHErB,IAAMsB,EAGD,GAFCpC,EAAQc,IAAMsB,EAAItB,EAI9B,CACA,SAASuB,GAAK,EAAG,EAAG,EAAG,CACrB,OAAQ,EAAIC,GAAKxB,EAAIwB,EAAIF,CAC3B,CACA,SAASG,GAAK,EAAG,EAAG,EAAQ,EAAI,CAC9B,OAAOF,GAAKvB,EAAGsB,EAAG,EAAI,KAAK,IAAI,CAACI,EAASC,CAAE,CAAC,CAC9C,CACA,SAASC,GAAS,EAAG,EAAS,EAAG,CAC/B,OAAOC,EAAS,KAAK,IAAIhB,GAAgBb,EAAG6B,EAAS,CAAC,EAAIA,CAAM,CAClE,CACA,SAASC,GAAW,EAAG,EAAK,EAAK,CAI/B,OAHI9B,GAAKW,EAAY,EACjBX,GAAKY,EAAY,GACrB,GAAKZ,EAAIW,IAAQC,EAAMD,GAChBX,EAAIA,GAAK,EAAI,EAAIA,GAC1B,CACA,SAAS+B,GAAa,EAAG,EAAK,EAAK,CAIjC,OAHI/B,GAAKW,EAAY,EACjBX,GAAKY,EAAY,GACrB,GAAKZ,EAAIW,IAAQC,EAAMD,GAChBX,EAAIA,EAAIA,GAAKA,GAAKA,EAAI,EAAI,IAAM,IACzC,CACA,SAASgC,GAAQ,EAAK,EAAM,CAC1B,OAAOC,EAAM,KAAK,MAAM,KAAK,OAAO,GAAKC,EAAOD,EAAM,EAAE,CAC1D,CACA,SAASE,GAAU,EAAK,EAAM,CAC5B,OAAOF,EAAM,KAAK,OAAO,GAAKC,EAAOD,EACvC,CACA,SAASG,GAAgB,EAAO,CAC9B,OAAOC,GAAS,GAAM,KAAK,OAAO,EACpC,CACA,SAASC,GAAa,EAAG,CACnBC,IAAM,IAAK,KAAG,GAAQA,GAC1B,IAAI,EAAI,IAAS,WAGjB,MAFA,GAAI,KAAK,KAAK,EAAI,IAAM,GAAI,EAAI,CAAC,EACjC,GAAK,EAAI,KAAK,KAAK,EAAI,IAAM,EAAG,EAAI,EAAE,IAC7B,EAAI,IAAM,MAAQ,GAAK,UAClC,CACA,SAASC,GAAS,EAAS,CACzB,OAAOC,EAAUnwB,EACnB,CACA,SAASqwB,GAAS,EAAS,CACzB,OAAOC,EAAUC,EACnB,CACA,SAASC,GAAa,EAAO,CAC3B,MAAA,EAAQ5D,EAAQA,EAAQ,IAAYA,IAAU,CAChD,CACA,SAAS6D,GAAe,EAAO,CAC7B,MAAgB,IAAG,KAAK,KAAK,KAAK,IAAI7D,CAAK,EAAI,KAAK,GAAG,CACzD,CACA,SAAS8D,GAAgB,EAAO,CAC9B,MAAgB,IAAG,KAAK,MAAM,KAAK,IAAI9D,CAAK,EAAI,KAAK,GAAG,CAC1D,CACA,SAAS+D,GAA6B,EAAG,EAAG,EAAG,EAAG,EAAO,CACvD,IAAMC,EAAM,KAAK,IACXC,EAAM,KAAK,IACXC,EAAKF,EAAI9D,EAAI,CAAC,EACdiE,EAAKF,EAAI/D,EAAI,CAAC,EACdkE,EAAMJ,GAAK7D,EAAIkE,GAAK,CAAC,EACrBC,EAAML,GAAK9D,EAAIkE,GAAK,CAAC,EACrBE,EAAOP,GAAK7D,EAAIkE,GAAK,CAAC,EACtBG,EAAOP,GAAK9D,EAAIkE,GAAK,CAAC,EACtBI,EAAOT,GAAKK,EAAIlE,GAAK,CAAC,EACtBuE,EAAOT,GAAKI,EAAIlE,GAAK,CAAC,EAC5B,OAAQwE,EAAR,CACE,IAAK,MACHC,EAAE,IAAIV,EAAKI,EAAKH,EAAKI,EAAMJ,EAAKK,EAAMN,EAAKE,CAAG,EAC9C,MACF,IAAK,MACHQ,EAAE,IAAIT,EAAKK,EAAMN,EAAKI,EAAKH,EAAKI,EAAML,EAAKE,CAAG,EAC9C,MACF,IAAK,MACHQ,EAAE,IAAIT,EAAKI,EAAMJ,EAAKK,EAAMN,EAAKI,EAAKJ,EAAKE,CAAG,EAC9C,MACF,IAAK,MACHQ,EAAE,IAAIV,EAAKI,EAAKH,EAAKO,EAAMP,EAAKM,EAAMP,EAAKE,CAAG,EAC9C,MACF,IAAK,MACHQ,EAAE,IAAIT,EAAKM,EAAMP,EAAKI,EAAKH,EAAKO,EAAMR,EAAKE,CAAG,EAC9C,MACF,IAAK,MACHQ,EAAE,IAAIT,EAAKO,EAAMP,EAAKM,EAAMP,EAAKI,EAAKJ,EAAKE,CAAG,EAC9C,MACF,QACE,QAAQ,KAAK,kFAAoFO,CAAK,CAC1G,CACF,CACA,SAASE,GAAY,EAAO,EAAO,CACjC,OAAQC,EAAM,YAAd,CACE,KAAK,aACH,OAAO9E,EACT,KAAK,YACH,OAAOA,EAAQ,WACjB,KAAK,YACH,OAAOA,EAAQ,MACjB,KAAK,WACH,OAAOA,EAAQ,IACjB,KAAK,WACH,OAAO,KAAK,IAAIA,EAAQ,WAAY,EAAE,EACxC,KAAK,WACH,OAAO,KAAK,IAAIA,EAAQ,MAAO,EAAE,EACnC,KAAK,UACH,OAAO,KAAK,IAAIA,EAAQ,IAAK,EAAE,EACjC,QACE,MAAU,MAAM,yBAAyB,CAC7C,CACF,CACA,SAAS+E,GAAU,EAAO,EAAO,CAC/B,OAAQD,EAAM,YAAd,CACE,KAAK,aACH,OAAO9E,EACT,KAAK,YACH,OAAO,KAAK,MAAMA,EAAQ,UAAU,EACtC,KAAK,YACH,OAAO,KAAK,MAAMA,EAAQ,KAAK,EACjC,KAAK,WACH,OAAO,KAAK,MAAMA,EAAQ,GAAG,EAC/B,KAAK,WACH,OAAO,KAAK,MAAMA,EAAQ,UAAU,EACtC,KAAK,WACH,OAAO,KAAK,MAAMA,EAAQ,KAAK,EACjC,KAAK,UACH,OAAO,KAAK,MAAMA,EAAQ,GAAG,EAC/B,QACE,MAAU,MAAM,yBAAyB,CAC7C,CACF,CAqkBA,SAASgF,GAAiB,EAAO,CAC/B,IAAK,IAAIC,EAAIH,EAAM,OAAS,EAAGG,GAAK,EAAG,EAAEA,EACvC,GAAIH,EAAMG,IAAM,MAAO,MAAO,GAEhC,MAAO,EACT,CAYA,SAASC,GAAc,EAAM,EAAQ,CACnC,OAAO,IAAIC,GAAaC,GAAMC,CAAM,CACtC,CACA,SAASC,GAAgB,EAAM,CAC7B,OAAO,SAAS,gBAAgB,+BAAgC/E,CAAI,CACtE,CACA,SAASgF,IAAsB,CAC7B,IAAMC,EAASF,GAAgB,QAAQ,EAEvC,MADA,GAAO,MAAM,QAAU,QAChBE,CACT,CAEA,SAASC,GAAS,EAAS,CACrBC,KAAWC,KACf,GAAOD,GAAW,GAClB,QAAQ,KAAKA,CAAO,EACtB,CACA,SAASE,GAAW,EAAI,EAAM,EAAU,CACtC,OAAO,IAAI,QAAQ,SAAS,EAAS,EAAQ,CAC3C,SAASC,GAAQ,CACf,OAAQC,EAAG,eAAeC,EAAMD,EAAG,wBAAyB,CAAC,EAA7D,CACE,KAAKA,EAAG,YACNlF,EAAO,EACP,MACF,KAAKkF,EAAG,gBACN,WAAWD,EAAOG,CAAQ,EAC1B,MACF,QACEjF,EAAQ,CACZ,CACF,CACA,WAAW8E,EAAOG,CAAQ,CAC5B,CAAC,CACH,CACA,SAASC,GAA6B,EAAkB,CACtD,IAAMpE,EAAIqE,EAAiB,SAC3B,EAAE,GAAK,GAAMrE,EAAE,GAAK,GAAMA,EAAE,GAC5B,EAAE,GAAK,GAAMA,EAAE,GAAK,GAAMA,EAAE,GAC5B,EAAE,IAAM,GAAMA,EAAE,IAAM,GAAMA,EAAE,IAC9B,EAAE,IAAM,GAAMA,EAAE,IAAM,GAAMA,EAAE,GAChC,CACA,SAASsE,GAA2B,EAAkB,CACpD,IAAMtE,EAAIqE,EAAiB,SACCrE,EAAE,MAAQ,IAEpC,EAAE,IAAM,CAACA,EAAE,IAAM,EACjB,EAAE,IAAM,CAACA,EAAE,MAEX,EAAE,IAAM,CAACA,EAAE,IACX,EAAE,IAAM,CAACA,EAAE,IAAM,EAErB,CA2FA,SAASuE,GAAa,EAAG,CACvB,OAAO/B,EAAI,OAAUA,EAAI,aAAwBA,EAAI,YAAe,cAAc,GACpF,CACA,SAASgC,GAAa,EAAG,CACvB,OAAOhC,EAAI,SAAWA,EAAI,MAAQ,MAAiBA,GAAG,OAAW,IACnE,CA+GA,SAASiC,GAAe,EAAO,CAazB,OAZA,OAAO,iBAAqB,KAAeC,aAAiB,kBAAoB,OAAO,kBAAsB,KAAeA,aAAiB,mBAAqB,OAAO,YAAgB,KAAeA,aAAiB,YACpNC,GAAW,WAAWD,CAAK,EAE9BA,EAAM,KACD,CACL,KAAM,MAAM,KAAKA,EAAM,IAAI,EAC3B,MAAOA,EAAM,MACb,OAAQA,EAAM,OACd,KAAMA,EAAM,KAAK,YAAY,IAC/B,GAEA,QAAQ,KAAK,6CAA6C,EACnD,CAAC,EAGd,CAuwDA,SAASE,GAAW,EAAM,EAAI,EAAI,EAAI,EAAS,CAC7C,IAAK,IAAIxB,EAAI,EAAGyB,EAAIC,EAAK,OAAS,EAAG1B,GAAKyB,EAAG,GAAK,EAAG,CACnDE,GAAU,UAAUD,EAAM1B,CAAC,EAC3B,IAAM4B,EAAIC,EAAQ,EAAI,KAAK,IAAIF,GAAU,CAAC,EAAIE,EAAQ,EAAI,KAAK,IAAIF,GAAU,CAAC,EAAIE,EAAQ,EAAI,KAAK,IAAIF,GAAU,CAAC,EAC5GG,EAAKC,EAAG,IAAIJ,EAAS,EACrBK,EAAKC,EAAG,IAAIN,EAAS,EACrBO,EAAKC,EAAG,IAAIR,EAAS,EAC3B,GAAI,KAAK,IAAI,CAAC,KAAK,IAAIG,EAAIE,EAAIE,CAAE,EAAG,KAAK,IAAIJ,EAAIE,EAAIE,CAAE,CAAC,EAAIN,EAC1D,MAAO,EAEX,CACA,MAAO,EACT,CAksEA,SAASQ,GAAQ,EAAG,EAAG,EAAG,CAMxB,OALI/E,EAAI,IAAG,GAAK,GACZA,EAAI,GAAG,IACPA,EAAI,EAAI,EAAUgF,GAAK1C,EAAI0C,GAAK,EAAIhF,EACpCA,EAAI,EAAI,EAAUsC,EAClBtC,EAAI,EAAI,EAAUgF,GAAK1C,EAAI0C,GAAK,GAAK,EAAI,EAAIhF,GAC1CgF,CACT,CAssBA,SAASC,IAAkB,CACzB,IAAMlC,kBAAS,IAAI,YAAY,CAAC,EAC1BmC,EAAY,IAAI,aAAanC,CAAM,EACnCoC,EAAa,IAAI,YAAYpC,CAAM,EACnCqC,kBAAY,IAAI,YAAY,GAAG,EAC/BC,kBAAa,IAAI,YAAY,GAAG,EACtC,IAAK,IAAI1C,EAAI,EAAGA,EAAI,IAAK,EAAEA,EAAG,CAC5B,IAAM2C,EAAI3C,EAAI,IACV2C,EAAI,KACN,EAAU3C,GAAK,EACf,EAAUA,EAAI,KAAO,MACrB,EAAWA,GAAK,GAChB,EAAWA,EAAI,KAAO,IACb2C,EAAI,KACb,EAAU3C,GAAK,MAAQ,CAAC2C,EAAI,GAC5B,EAAU3C,EAAI,KAAO,MAAQ,CAAC2C,EAAI,GAAK,MACvC,EAAW3C,GAAK,CAAC2C,EAAI,EACrB,EAAW3C,EAAI,KAAO,CAAC2C,EAAI,GAClBA,GAAK,IACd,EAAU3C,GAAK2C,EAAI,IAAM,GACzB,EAAU3C,EAAI,KAAO2C,EAAI,IAAM,GAAK,MACpC,EAAW3C,GAAK,GAChB,EAAWA,EAAI,KAAO,IACb2C,EAAI,KACb,EAAU3C,GAAK,MACf,EAAUA,EAAI,KAAO,MACrB,EAAWA,GAAK,GAChB,EAAWA,EAAI,KAAO,KAEtB,EAAUA,GAAK,MACf,EAAUA,EAAI,KAAO,MACrB,EAAWA,GAAK,GAChB,EAAWA,EAAI,KAAO,GAE1B,CACA,IAAM4C,kBAAgB,IAAI,YAAY,IAAI,EACpCC,kBAAgB,IAAI,YAAY,EAAE,EAClCC,kBAAc,IAAI,YAAY,EAAE,EACtC,IAAK,IAAI9C,EAAI,EAAGA,EAAI,KAAM,EAAEA,EAAG,CAC7B,IAAIpD,EAAIoD,GAAK,GACT2C,EAAI,EACR,KAAA,EAAQ/F,EAAI,UACV,IAAM,EACN,GAAK,QAEP,GAAK,SACL,GAAK,UACL,EAAcoD,GAAKpD,EAAI+F,CACzB,CACA,IAAK,IAAI3C,EAAI,KAAMA,EAAI,KAAM,EAAEA,EAC7B,EAAcA,GAAK,WAAaA,EAAI,MAAQ,IAE9C,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxB,EAAcA,GAAKA,GAAK,GAE1B,EAAc,IAAM,WACpB,EAAc,IAAM,WACpB,IAAK,IAAIA,EAAI,GAAIA,EAAI,GAAI,EAAEA,EACzB,EAAcA,GAAK,YAAcA,EAAI,IAAM,IAE7C,EAAc,IAAM,WACpB,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACpBA,IAAM,KACR,EAAYA,GAAK,MAGrB,MAAO,CACL,YACA,aACA,YACA,aACA,gBACA,gBACA,aACF,CACF,CACA,SAAS+C,GAAY,EAAK,CACpB,KAAK,IAAIC,CAAG,EAAI,OAAO,QAAQ,KAAK,oDAAoD,EAC5F,EAAM90B,GAAM80B,EAAK,OAAQ,KAAK,EAC9B,GAAQ,UAAU,GAAKA,EACvB,IAAMC,EAAIC,GAAQ,WAAW,GACvBP,EAAIM,GAAK,GAAK,IACpB,OAAOC,GAAQ,UAAUP,KAAOM,EAAI,UAAYC,GAAQ,WAAWP,GACrE,CACA,SAASQ,GAAc,EAAK,CAC1B,IAAMvG,EAAIoG,GAAO,GAEjB,MADA,IAAQ,WAAW,GAAKE,GAAQ,cAAcA,GAAQ,YAAYtG,IAAMoG,EAAM,OAASE,GAAQ,cAActG,GACtGsG,GAAQ,UAAU,EAC3B,CA0hCA,SAASE,GAAoB,EAAQ,EAAU,EAAW,EAAK,EAAI,EAAI,EAAI,EAAO,CAChF,IAAIC,EAMJ,GALA,AAGEA,EAHEC,EAAS,OAASC,GACPC,EAAI,kBAAkBC,EAAIC,EAAIC,EAAI,GAAMC,CAAK,EAE7CJ,EAAI,kBAAkBG,EAAID,EAAID,EAAIH,EAAS,OAASO,GAAWD,CAAK,EAE/EP,IAAe,KAAM,OAAO,KAChCS,GAAwB,KAAKF,CAAK,EAClCE,GAAwB,aAAaC,EAAO,WAAW,EACvD,IAAMC,EAAWC,EAAU,IAAI,OAAO,WAAWH,EAAuB,EAExE,OADIE,EAAWC,EAAU,MAAQD,EAAWC,EAAU,IAAY,KAC3D,CACL,WACA,MAAOH,GAAwB,MAAM,EACrC,QACF,CACF,CACA,SAASI,GAA0B,EAAQ,EAAU,EAAW,EAAK,EAAI,EAAK,EAAQ,EAAG,EAAG,EAAG,CAC7FH,EAAO,kBAAkB7I,EAAGiJ,EAAK,EACjCJ,EAAO,kBAAkB9I,EAAGmJ,EAAK,EACjCL,EAAO,kBAAkB3E,EAAGiF,EAAK,EACjC,IAAMC,EAAelB,GAAoBW,EAAQT,EAAUW,EAAWT,EAAKW,GAAOC,GAAOC,GAAOE,EAAkB,EAClH,GAAID,EAAc,CAChB,IAAME,EAAY,IAAIC,EACtBC,GAAS,aAAaH,GAAoBJ,GAAOC,GAAOC,GAAOG,CAAS,EACpEG,IACF,EAAa,GAAKD,GAAS,yBAAyBC,EAAIzJ,EAAGD,EAAGmE,EAAGoF,EAAW,IAAII,CAAS,GAEvFC,IACF,EAAa,IAAMH,GAAS,yBAAyBG,EAAK3J,EAAGD,EAAGmE,EAAGoF,EAAW,IAAII,CAAS,GAEzFE,IACF,EAAa,OAASJ,GAAS,yBAAyBI,EAAQ5J,EAAGD,EAAGmE,EAAGoF,EAAW,IAAIC,CAAS,EAC7FH,EAAa,OAAO,IAAId,EAAI,SAAS,EAAI,GAC3Cc,EAAa,OAAO,eAAe,EAAE,GAGzC,IAAMS,EAAO,CACX,IACA,IACA,IACA,OAAQ,IAAIN,EACZ,cAAe,CACjB,EACAC,GAAS,UAAUP,GAAOC,GAAOC,GAAOU,EAAK,MAAM,EACnD,EAAa,KAAOA,EACpB,EAAa,UAAYP,CAC3B,CACA,OAAOF,CACT,CAsFA,SAASU,GAAc,EAAK,CAC1B,IAAMC,EAAM,CAAC,EACb,IAAK,IAAMC,KAAKC,EAAK,CACnB,EAAID,GAAK,CAAC,EACV,IAAK,IAAM7C,KAAK8C,EAAID,GAAI,CACtB,IAAME,EAAWD,EAAID,EAAE,CAAC7C,GACpB+C,IAAaA,EAAS,SAAWA,EAAS,WAAaA,EAAS,WAAaA,EAAS,WAAaA,EAAS,WAAaA,EAAS,WAAaA,EAAS,WAAaA,EAAS,cAC5KA,EAAS,uBACX,QAAQ,KAAK,oGAAoG,EACjH,EAAIF,EAAE,CAAC7C,GAAK,MAEZ,EAAI6C,EAAE,CAAC7C,GAAK+C,EAAS,MAAM,EAEpB,MAAM,QAAQA,CAAQ,EAC/B,EAAIF,EAAE,CAAC7C,GAAK+C,EAAS,MAAM,EAE3B,EAAIF,EAAE,CAAC7C,GAAK+C,CAEhB,CACF,CACA,OAAOH,CACT,CACA,SAASI,GAAc,EAAU,CAC/B,IAAMC,EAAS,CAAC,EAChB,IAAK,IAAIJ,EAAI,EAAGA,EAAIK,EAAS,OAAQ,IAAK,CACxC,IAAMC,EAAOR,GAAcO,EAASL,EAAE,EACtC,IAAK,IAAM7C,KAAKmD,EACd,EAAOnD,GAAKmD,EAAKnD,EAErB,CACA,OAAOiD,CACT,CACA,SAASG,GAAoB,EAAK,CAChC,IAAMR,EAAM,CAAC,EACb,IAAK,IAAIC,EAAI,EAAGA,EAAIC,EAAI,OAAQ,IAC9BF,EAAI,KAAKE,EAAID,EAAE,CAAC,MAAM,CAAC,EAEzB,OAAOD,CACT,CACA,SAASS,GAA0B,EAAU,CAC3C,IAAMC,EAAsBC,EAAS,gBAAgB,EAOrD,OANID,IAAwB,KACnBC,EAAS,iBAEdD,EAAoB,mBAAqB,GACpCA,EAAoB,QAAQ,WAE9BE,GAAgB,iBACzB,CA+tBA,SAASC,IAAiB,CACxB,IAAIC,EAAU,KACVC,EAAc,GACdC,EAAgB,KAChBC,EAAY,KAChB,SAASC,EAAiB,EAAM,EAAO,CACrCF,EAAcG,EAAMnR,CAAK,EACzB,EAAY8Q,EAAQ,sBAAsBI,CAAgB,CAC5D,CACA,MAAO,CACL,MAAO,UAAW,CACZH,IAAgB,IAChBC,IAAkB,OACtB,EAAYF,EAAQ,sBAAsBI,CAAgB,EAC1D,EAAc,GAChB,EACA,KAAM,UAAW,CACfJ,EAAQ,qBAAqBG,CAAS,EACtC,EAAc,EAChB,EACA,iBAAkB,SAAS,EAAU,CACnC,EAAgBG,CAClB,EACA,WAAY,SAAS,EAAO,CAC1B,EAAUtL,CACZ,CACF,CACF,CACA,SAASuL,GAAgB,EAAI,CAC3B,IAAMC,kBAA0B,IAAI,QACpC,SAASC,EAAa,EAAW,EAAY,CAC3C,IAAM3G,EAAQ4G,EAAU,MAClBC,EAAQD,EAAU,MAClBE,EAAO9G,EAAM,WACbO,EAASS,EAAG,aAAa,EAC/BA,EAAG,WAAW+F,EAAYxG,CAAM,EAChCS,EAAG,WAAW+F,EAAY/G,EAAO6G,CAAK,EACtCD,EAAU,iBAAiB,EAC3B,IAAItG,EACJ,GAAIN,aAAiB,aACnB,EAAOgB,EAAG,WACL,GAAIhB,aAAiB,YAC1B,AAGEM,EAHEsG,EAAU,yBACL5F,EAAG,WAEHA,EAAG,oBAEP,GAAIhB,aAAiB,WAC1B,EAAOgB,EAAG,WACL,GAAIhB,aAAiB,YAC1B,EAAOgB,EAAG,kBACL,GAAIhB,aAAiB,WAC1B,EAAOgB,EAAG,SACL,GAAIhB,aAAiB,UAC1B,EAAOgB,EAAG,UACL,GAAIhB,aAAiB,WAC1B,EAAOgB,EAAG,mBACL,GAAIhB,aAAiB,kBAC1B,EAAOgB,EAAG,mBAEV,MAAU,MAAM,0DAA4DhB,CAAK,EAEnF,MAAO,CACL,SACA,OACA,gBAAiBA,EAAM,kBACvB,QAAS4G,EAAU,QACnB,MACF,CACF,CACA,SAASI,EAAa,EAAQ,EAAW,EAAY,CACnD,IAAMhH,EAAQ4G,EAAU,MAClBK,EAAeL,EAAU,aAE/B,GADA5F,EAAG,WAAW+F,EAAYxG,CAAM,EAC5B0G,EAAa,SAAW,EAC1BjG,EAAG,cAAc+F,EAAY,EAAG/G,CAAK,MAChC,CACLiH,EAAa,MAAM,EAAG,IAAM5L,EAAE,MAAQD,EAAE,KAAK,EAC7C,IAAI8L,EAAa,EACjB,IAAK,IAAI/G,EAAI,EAAGA,EAAI8G,EAAa,OAAQ,IAAK,CAC5C,IAAME,EAAgBF,EAAaC,GAC7B7I,EAAQ4I,EAAa9G,GACvB9B,EAAM,OAAS8I,EAAc,MAAQA,EAAc,MAAQ,EAC7D,EAAc,MAAQ,KAAK,IACzBA,EAAc,MACd9I,EAAM,MAAQA,EAAM,MAAQ8I,EAAc,KAC5C,GAEA,EAAED,EACF,EAAaA,GAAc7I,EAE/B,CACA,EAAa,OAAS6I,EAAa,EACnC,IAAK,IAAI/G,EAAI,EAAGiH,EAAIH,EAAa,OAAQ9G,EAAIiH,EAAG,IAAK,CACnD,IAAM/I,EAAQ4I,EAAa9G,GAC3Ba,EAAG,cACD+F,EACA1I,EAAM,MAAQ2B,EAAM,kBACpBA,EACA3B,EAAM,MACNA,EAAM,KACR,CACF,CACAuI,EAAU,kBAAkB,CAC9B,CACAA,EAAU,iBAAiB,CAC7B,CACA,SAASS,EAAI,EAAW,CAEtB,OADIT,EAAU,+BAA8B,EAAYA,EAAU,MAC3DF,EAAQ,IAAIE,CAAS,CAC9B,CACA,SAASU,EAAO,EAAW,CACrBV,EAAU,+BAA8B,EAAYA,EAAU,MAClE,IAAMW,EAAOb,EAAQ,IAAIE,CAAS,EAC9BW,IACFvG,EAAG,aAAauG,EAAK,MAAM,EAC3Bb,EAAQ,OAAOE,CAAS,EAE5B,CACA,SAASY,EAAO,EAAW,EAAY,CAErC,GADIZ,EAAU,+BAA8B,EAAYA,EAAU,MAC9DA,EAAU,oBAAqB,CACjC,IAAMa,EAASf,EAAQ,IAAIE,CAAS,GAChC,CAACa,GAAUA,EAAO,QAAUb,EAAU,UACxCF,EAAQ,IAAIE,EAAW,CACrB,OAAQA,EAAU,OAClB,KAAMA,EAAU,KAChB,gBAAiBA,EAAU,YAC3B,QAASA,EAAU,OACrB,CAAC,EAEH,MACF,CACA,IAAMW,EAAOb,EAAQ,IAAIE,CAAS,EAClC,GAAIW,IAAS,IAAK,GAChBb,EAAQ,IAAIE,EAAWD,EAAaC,EAAWG,CAAU,CAAC,OACrD,GAAIQ,EAAK,QAAUX,EAAU,QAAS,CAC3C,GAAIW,EAAK,OAASX,EAAU,MAAM,WAChC,MAAU,MAAM,uJAAuJ,EAEzKI,EAAaO,EAAK,OAAQX,EAAWG,CAAU,EAC/C,EAAK,QAAUH,EAAU,OAC3B,CACF,CACA,MAAO,CACL,MACA,SACA,QACF,CACF,CA+wBA,SAASc,GAAgB,EAAU,EAAU,EAAY,EAAO,EAAS,EAAO,EAAoB,CAClG,IAAMC,EAAa,IAAIC,EAAM,CAAC,EAC1BC,EAAaC,IAAU,GAAO,EAAI,EAClCC,EACAC,EACAC,EAAoB,KACpBC,EAA2B,EAC3BC,EAAqB,KACzB,SAASC,EAAc,EAAO,CAC5B,IAAIC,EAAaC,EAAM,UAAY,GAAOA,EAAM,WAAa,KAK7D,OAJID,GAAcA,EAAW,YAE3B,GADiBC,EAAM,qBAAuB,EACrBC,EAAaC,EAAA,CAAU,IAAIH,CAAU,GAEzDA,CACT,CACA,SAASI,EAAO,EAAO,CACrB,IAAIC,EAAa,GACXL,EAAaD,EAAcE,CAAK,EAClCD,IAAe,KACjBM,EAAShB,EAAYE,CAAU,EACtBQ,GAAcA,EAAW,UAClCM,EAASN,EAAY,CAAC,EACtB,EAAa,IAEf,IAAMO,EAAuB7C,EAAS,GAAG,wBAAwB,EAC7D6C,IAAyB,WAC3BC,EAAM,QAAQ,MAAM,SAAS,EAAG,EAAG,EAAG,EAAGC,CAAkB,EAClDF,IAAyB,eAClCC,EAAM,QAAQ,MAAM,SAAS,EAAG,EAAG,EAAG,EAAGC,CAAkB,GAEzD/C,EAAS,WAAa2C,KACxBG,EAAM,QAAQ,MAAM,QAAQ,EAAI,EAChCA,EAAM,QAAQ,MAAM,QAAQ,EAAI,EAChCA,EAAM,QAAQ,MAAM,QAAQ,EAAI,EAChC9C,EAAS,MAAMA,EAAS,eAAgBA,EAAS,eAAgBA,EAAS,gBAAgB,EAE9F,CACA,SAASgD,EAAgB,EAAY,EAAO,CAC1C,IAAMV,EAAaD,EAAcE,CAAK,EAClCD,IAAeA,EAAW,eAAiBA,EAAW,UAAYW,KAChEhB,IAAY,IAAK,KACnB,EAAU,IAAIz5B,GACZ,IAAI26B,GAAY,EAAG,EAAG,CAAC,EACvB,IAAIC,GAAe,CACjB,KAAM,yBACN,SAAUhE,GAAciE,GAAU,eAAe,QAAQ,EACzD,aAAcA,GAAU,eAAe,aACvC,eAAgBA,GAAU,eAAe,eACzC,KAAM1F,GACN,UAAW,GACX,WAAY,GACZ,IAAK,EACP,CAAC,CACH,EACAsE,EAAQ,SAAS,gBAAgB,QAAQ,EACzCA,EAAQ,SAAS,gBAAgB,IAAI,EACrC,EAAQ,eAAiB,SAAS,EAAW,EAAQ,EAAQ,CAC3D,KAAK,YAAY,aAAaqB,EAAO,WAAW,CAClD,EACA,OAAO,eAAerB,EAAQ,SAAU,SAAU,CAChD,IAAK,UAAW,CACd,OAAO,KAAK,SAAS,OAAO,KAC9B,CACF,CAAC,EACDsB,EAAQ,OAAOtB,CAAO,GAExBuB,GAAM,KAAKjB,EAAM,kBAAkB,EACnC,GAAM,GAAK,GACX,GAAM,GAAK,GACX,GAAM,GAAK,GACPD,EAAW,eAAiBA,EAAW,wBAA0B,KACnE,GAAM,GAAK,GACX,GAAM,GAAK,IAEb,EAAQ,SAAS,SAAS,OAAO,MAAQA,EACzC,EAAQ,SAAS,SAAS,WAAW,MAAQA,EAAW,eAAiBA,EAAW,wBAA0B,GAAQ,GAAK,EAC3H,EAAQ,SAAS,SAAS,qBAAqB,MAAQC,EAAM,qBAC7D,EAAQ,SAAS,SAAS,oBAAoB,MAAQA,EAAM,oBAC5DN,EAAQ,SAAS,SAAS,mBAAmB,MAAM,eAAewB,GAAM,sBAAsBD,EAAK,CAAC,EACpG,EAAQ,SAAS,WAAavD,GAAgB,YAAYqC,EAAW,UAAU,IAAMoB,IACjFxB,IAAsBI,GAAcH,IAA6BG,EAAW,SAAWF,IAAuBpC,EAAS,eACzH,EAAQ,SAAS,YAAc,GAC/B,EAAoBsC,EACpB,EAA2BA,EAAW,QACtC,EAAqBtC,EAAS,aAEhCiC,EAAQ,OAAO,UAAU,EACzB0B,EAAW,QAAQ1B,EAASA,EAAQ,SAAUA,EAAQ,SAAU,EAAG,EAAG,IAAI,GACjEK,GAAcA,EAAW,YAC9BN,IAAc,IAAK,KACrB,EAAY,IAAIx5B,GACd,IAAIo7B,GAAc,EAAG,CAAC,EACtB,IAAIR,GAAe,CACjB,KAAM,qBACN,SAAUhE,GAAciE,GAAU,WAAW,QAAQ,EACrD,aAAcA,GAAU,WAAW,aACnC,eAAgBA,GAAU,WAAW,eACrC,KAAMpF,GACN,UAAW,GACX,WAAY,GACZ,IAAK,EACP,CAAC,CACH,EACA+D,EAAU,SAAS,gBAAgB,QAAQ,EAC3C,OAAO,eAAeA,EAAU,SAAU,MAAO,CAC/C,IAAK,UAAW,CACd,OAAO,KAAK,SAAS,IAAI,KAC3B,CACF,CAAC,EACDuB,EAAQ,OAAOvB,CAAS,GAE1B,EAAU,SAAS,SAAS,IAAI,MAAQM,EACxC,EAAU,SAAS,SAAS,oBAAoB,MAAQC,EAAM,oBAC9D,EAAU,SAAS,WAAatC,GAAgB,YAAYqC,EAAW,UAAU,IAAMoB,GACnFpB,EAAW,mBAAqB,IAClCA,EAAW,aAAa,EAE1BN,EAAU,SAAS,SAAS,YAAY,MAAM,KAAKM,EAAW,MAAM,GAChEJ,IAAsBI,GAAcH,IAA6BG,EAAW,SAAWF,IAAuBpC,EAAS,eACzH,EAAU,SAAS,YAAc,GACjC,EAAoBsC,EACpB,EAA2BA,EAAW,QACtC,EAAqBtC,EAAS,aAEhCgC,EAAU,OAAO,UAAU,EAC3B2B,EAAW,QAAQ3B,EAAWA,EAAU,SAAUA,EAAU,SAAU,EAAG,EAAG,IAAI,EAEpF,CACA,SAASY,EAAS,EAAO,EAAQ,CAC/B/O,EAAM,OAAOgQ,GAAM/D,GAA0BE,CAAQ,CAAC,EACtD8C,EAAM,QAAQ,MAAM,SAASe,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAAGC,EAAQf,CAAkB,CACjF,CACA,MAAO,CACL,cAAe,UAAW,CACxB,OAAOnB,CACT,EACA,cAAe,SAAS,EAAO,EAAS,EAAG,CACzCA,EAAW,IAAI/N,CAAK,EACpB,EAAaiQ,EACblB,EAAShB,EAAYE,CAAU,CACjC,EACA,cAAe,UAAW,CACxB,OAAOA,CACT,EACA,cAAe,SAAS,EAAQ,CAC9B,EAAagC,EACblB,EAAShB,EAAYE,CAAU,CACjC,EACA,SACA,iBACF,CACF,CACA,SAASiC,GAAmB,EAAI,EAAY,CAC1C,IAAMC,EAAsB/I,EAAG,aAAaA,EAAG,kBAAkB,EAC3DgJ,EAAgB,CAAC,EACjBC,EAAeC,EAAmB,IAAI,EACxCC,EAAeF,EACfG,EAAc,GAClB,SAASC,EAAM,EAAQ,EAAU,EAAS,EAAU,EAAO,CACzD,IAAIC,EAAgB,GACdzB,EAAQ0B,EAAgBC,EAAUC,EAAShH,CAAQ,EACrD0G,IAAiBtB,IACnB,EAAeA,EACf6B,EAAsBP,EAAa,MAAM,GAE3C,EAAgBQ,EAAYzG,EAAQsG,EAAUC,EAASG,CAAK,EACxDN,GAAeO,EAAU3G,EAAQsG,EAAUC,EAASG,CAAK,EACzDA,IAAU,MACZE,EAAW,OAAOF,EAAO5J,EAAG,oBAAoB,GAE9CsJ,GAAiBF,KACnB,EAAc,GACdW,EAAsB7G,EAAQT,EAAUgH,EAASD,CAAQ,EACrDI,IAAU,MACZ5J,EAAG,WAAWA,EAAG,qBAAsB8J,EAAW,IAAIF,CAAK,CAAC,CAAC,MAAM,EAGzE,CACA,SAASI,GAA0B,CACjC,OAAOhK,EAAG,kBAAkB,CAC9B,CACA,SAAS0J,EAAsB,EAAK,CAClC,OAAO1J,EAAG,gBAAgBiK,CAAG,CAC/B,CACA,SAASC,EAAwB,EAAK,CACpC,OAAOlK,EAAG,kBAAkBiK,CAAG,CACjC,CACA,SAASV,EAAgB,EAAU,EAAS,EAAU,CACpD,IAAMY,EAAY1H,EAAS,YAAc,GACrC2H,EAAapB,EAAcQ,EAAS,IACpCY,IAAe,IAAK,KACtB,EAAa,CAAC,EACd,EAAcZ,EAAS,IAAMY,GAE/B,IAAIC,EAAWD,EAAWX,EAAQ,IAC9BY,IAAa,IAAK,KACpB,EAAW,CAAC,EACZ,EAAWZ,EAAQ,IAAMY,GAE3B,IAAIxC,EAAQwC,EAASF,GAKrB,OAJItC,IAAU,IAAK,KACjB,EAAQqB,EAAmBc,EAAwB,CAAC,EACpD,EAASG,GAAatC,GAEjBA,CACT,CACA,SAASqB,EAAmB,EAAK,CAC/B,IAAMoB,EAAgB,CAAC,EACjBC,EAAoB,CAAC,EACrBC,EAAoB,CAAC,EAC3B,IAAK,IAAIrL,EAAI,EAAGA,EAAI4J,EAAqB,IACvC,EAAc5J,GAAK,EACnB,EAAkBA,GAAK,EACvB,EAAkBA,GAAK,EAEzB,MAAO,CAEL,SAAU,KACV,QAAS,KACT,UAAW,GACX,gBACA,oBACA,oBACA,OAAQ8K,EACR,WAAY,CAAC,EACb,MAAO,IACT,CACF,CACA,SAASN,EAAY,EAAQ,EAAU,EAAS,EAAO,CACrD,IAAMc,EAAmBtB,EAAa,WAChCuB,EAAqBlB,EAAS,WAChCmB,EAAgB,EACdC,EAAoBnB,EAAQ,cAAc,EAChD,IAAK,IAAMhP,KAAQmQ,EAEjB,GADyBA,EAAkBnQ,EACvB,CAAC,UAAY,EAAG,CAClC,IAAMoQ,EAAkBJ,EAAiBhQ,GACrCqQ,EAAoBJ,EAAmBjQ,GAO3C,GANIqQ,IAAsB,IAAK,KACzBrQ,IAAS,kBAAoByI,EAAO,iBAAgB,EAAoBA,EAAO,gBAC/EzI,IAAS,iBAAmByI,EAAO,gBAAe,EAAoBA,EAAO,gBAE/E2H,IAAoB,IAAK,IACzBA,EAAgB,YAAcC,GAC9BA,GAAqBD,EAAgB,OAASC,EAAkB,KAAM,MAAO,GACjF,GACF,CAIF,OAFI3B,EAAa,gBAAkBwB,GAC/BxB,EAAa,QAAUS,CAE7B,CACA,SAASC,EAAU,EAAQ,EAAU,EAAS,EAAO,CACnD,IAAMkB,EAAQ,CAAC,EACTC,EAAcxB,EAAS,WACzBmB,EAAgB,EACdC,EAAoBnB,EAAQ,cAAc,EAChD,IAAK,IAAMhP,KAAQmQ,EAEjB,GADyBA,EAAkBnQ,EACvB,CAAC,UAAY,EAAG,CAClC,IAAImL,EAAYoF,EAAYvQ,GACxBmL,IAAc,IAAK,KACjBnL,IAAS,kBAAoByI,EAAO,iBAAgB,EAAYA,EAAO,gBACvEzI,IAAS,iBAAmByI,EAAO,gBAAe,EAAYA,EAAO,gBAE3E,IAAMqD,EAAO,CAAC,EACd,EAAK,UAAYX,EACbA,GAAaA,EAAU,OACzB,EAAK,KAAOA,EAAU,MAExB,EAAMnL,GAAQ8L,EACd,GACF,CAEF,EAAa,WAAawE,EAC1B,EAAa,cAAgBJ,EAC7B,EAAa,MAAQf,CACvB,CACA,SAASqB,GAAiB,CACxB,IAAMX,EAAgBnB,EAAa,cACnC,IAAK,IAAIhK,EAAI,EAAG+L,EAAKZ,EAAc,OAAQnL,EAAI+L,EAAI,IACjD,EAAc/L,GAAK,CAEvB,CACA,SAASgM,EAAgB,EAAW,CAClCC,EAA0BxF,EAAW,CAAC,CACxC,CACA,SAASwF,EAA0B,EAAW,EAAkB,CAC9D,IAAMd,EAAgBnB,EAAa,cAC7BoB,EAAoBpB,EAAa,kBACjCqB,EAAoBrB,EAAa,kBACvC,EAAcvD,GAAa,EACvB2E,EAAkB3E,KAAe,IACnC5F,EAAG,wBAAwB4F,CAAS,EACpC,EAAkBA,GAAa,GAE7B4E,EAAkB5E,KAAeyF,IACnCrL,EAAG,oBAAoB4F,EAAWyF,CAAgB,EAClD,EAAkBzF,GAAayF,EAEnC,CACA,SAASC,GAA0B,CACjC,IAAMhB,EAAgBnB,EAAa,cAC7BoB,EAAoBpB,EAAa,kBACvC,IAAK,IAAIhK,EAAI,EAAG+L,EAAKX,EAAkB,OAAQpL,EAAI+L,EAAI,IACjDX,EAAkBpL,KAAOmL,EAAcnL,KACzCa,EAAG,yBAAyBb,CAAC,EAC7B,EAAkBA,GAAK,EAG7B,CACA,SAASoM,EAAoB,EAAO,EAAM,EAAM,EAAY,EAAQ,EAAQ,EAAS,CAC/EC,IAAY,GACdxL,EAAG,qBAAqB4J,EAAO9D,EAAMxG,EAAMmM,EAAQC,CAAM,EAEzD1L,EAAG,oBAAoB4J,EAAO9D,EAAMxG,EAAMqM,EAAYF,EAAQC,CAAM,CAExE,CACA,SAAS3B,EAAsB,EAAQ,EAAU,EAAS,EAAU,CAClEkB,EAAe,EACf,IAAMP,EAAqBlB,EAAS,WAC9BoB,EAAoBnB,EAAQ,cAAc,EAC1CmC,EAAiCnJ,EAAS,uBAChD,IAAK,IAAMhI,KAAQmQ,EAAmB,CACpC,IAAMiB,EAAmBjB,EAAkBnQ,GAC3C,GAAIoR,EAAiB,UAAY,EAAG,CAClC,IAAIf,EAAoBJ,EAAmBjQ,GAK3C,GAJIqQ,IAAsB,IAAK,KACzBrQ,IAAS,kBAAoByI,EAAO,iBAAgB,EAAoBA,EAAO,gBAC/EzI,IAAS,iBAAmByI,EAAO,gBAAe,EAAoBA,EAAO,gBAE/E4H,IAAsB,IAAK,GAAG,CAChC,IAAMa,EAAab,EAAkB,WAC/BhF,EAAOgF,EAAkB,SACzBlF,EAAYkE,EAAW,IAAIgB,CAAiB,EAClD,GAAIlF,IAAc,IAAK,GAAG,SAC1B,IAAMrG,EAASqG,EAAU,OACnBtG,EAAOsG,EAAU,KACjBkG,EAAkBlG,EAAU,gBAC5B4F,EAAUlM,IAASU,EAAG,KAAOV,IAASU,EAAG,cAAgB8K,EAAkB,UAAYiB,GAC7F,GAAIjB,EAAkB,6BAA8B,CAClD,IAAMvE,EAAOuE,EAAkB,KACzBW,EAASlF,EAAK,OACdmF,EAASZ,EAAkB,OACjC,GAAIvE,EAAK,6BAA8B,CACrC,IAAK,IAAIpH,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDT,EAA0BS,EAAiB,SAAW1M,EAAGoH,EAAK,gBAAgB,EAE5ErD,EAAO,kBAAoB,IAAQsG,EAAS,oBAAsB,IAAK,KACzE,EAAS,kBAAoBjD,EAAK,iBAAmBA,EAAK,MAE9D,MACE,IAAK,IAAIpH,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDV,EAAgBU,EAAiB,SAAW1M,CAAC,EAGjDa,EAAG,WAAWA,EAAG,aAAcT,CAAM,EACrC,IAAK,IAAIJ,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDN,EACEM,EAAiB,SAAW1M,EAC5B2G,EAAO+F,EAAiB,aACxBvM,EACAqM,EACAF,EAASK,GACRJ,EAAS5F,EAAO+F,EAAiB,aAAe1M,GAAK2M,EACtDN,CACF,CAEJ,KAAO,CACL,GAAIV,EAAkB,2BAA4B,CAChD,IAAK,IAAI3L,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDT,EAA0BS,EAAiB,SAAW1M,EAAG2L,EAAkB,gBAAgB,EAEzF5H,EAAO,kBAAoB,IAAQsG,EAAS,oBAAsB,IAAK,KACzE,EAAS,kBAAoBsB,EAAkB,iBAAmBA,EAAkB,MAExF,MACE,IAAK,IAAI3L,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDV,EAAgBU,EAAiB,SAAW1M,CAAC,EAGjDa,EAAG,WAAWA,EAAG,aAAcT,CAAM,EACrC,IAAK,IAAIJ,EAAI,EAAGA,EAAI0M,EAAiB,aAAc,IACjDN,EACEM,EAAiB,SAAW1M,EAC5B2G,EAAO+F,EAAiB,aACxBvM,EACAqM,EACA7F,EAAOgG,EACPhG,EAAO+F,EAAiB,aAAe1M,EAAI2M,EAC3CN,CACF,CAEJ,CACF,MAAO,GAAII,IAAmC,IAAK,GAAG,CACpD,IAAM1R,EAAQ0R,EAA+BnR,GAC7C,GAAIP,IAAU,IAAK,GACjB,OAAQA,EAAM,OAAd,CACE,IAAK,GACH8F,EAAG,gBAAgB6L,EAAiB,SAAU3R,CAAK,EACnD,MACF,IAAK,GACH8F,EAAG,gBAAgB6L,EAAiB,SAAU3R,CAAK,EACnD,MACF,IAAK,GACH8F,EAAG,gBAAgB6L,EAAiB,SAAU3R,CAAK,EACnD,MACF,QACE8F,EAAG,gBAAgB6L,EAAiB,SAAU3R,CAAK,CACvD,CAEJ,CACF,CACF,CACAoR,EAAwB,CAC1B,CACA,SAASU,GAAU,CACjBC,EAAM,EACN,IAAK,IAAMC,KAAclD,EAAe,CACtC,IAAMoB,EAAapB,EAAckD,GACjC,IAAK,IAAMC,KAAa/B,EAAY,CAClC,IAAMC,EAAWD,EAAW+B,GAC5B,IAAK,IAAMhC,KAAaE,EACtBH,EAAwBG,EAASF,EAAU,CAAC,MAAM,EAClD,OAAOE,EAASF,GAElB,OAAOC,EAAW+B,EACpB,CACA,OAAOnD,EAAckD,EACvB,CACF,CACA,SAASE,EAAwB,EAAU,CACzC,GAAIpD,EAAcQ,EAAS,MAAQ,IAAK,GAAG,OAC3C,IAAMY,EAAapB,EAAcQ,EAAS,IAC1C,IAAK,IAAM2C,KAAa/B,EAAY,CAClC,IAAMC,EAAWD,EAAW+B,GAC5B,IAAK,IAAMhC,KAAaE,EACtBH,EAAwBG,EAASF,EAAU,CAAC,MAAM,EAClD,OAAOE,EAASF,GAElB,OAAOC,EAAW+B,EACpB,CACA,OAAOnD,EAAcQ,EAAS,GAChC,CACA,SAAS6C,EAAuB,EAAS,CACvC,IAAK,IAAMH,KAAclD,EAAe,CACtC,IAAMoB,EAAapB,EAAckD,GACjC,GAAI9B,EAAWX,EAAQ,MAAQ,IAAK,GAAG,SACvC,IAAMY,EAAWD,EAAWX,EAAQ,IACpC,IAAK,IAAMU,KAAaE,EACtBH,EAAwBG,EAASF,EAAU,CAAC,MAAM,EAClD,OAAOE,EAASF,GAElB,OAAOC,EAAWX,EAAQ,GAC5B,CACF,CACA,SAASwC,GAAQ,CACfK,EAAkB,EAClB,EAAc,GACVnD,IAAiBF,IACrB,EAAeA,EACfS,EAAsBP,EAAa,MAAM,EAC3C,CACA,SAASmD,GAAoB,CAC3B,EAAa,SAAW,KACxB,EAAa,QAAU,KACvB,EAAa,UAAY,EAC3B,CACA,MAAO,CACL,QACA,QACA,oBACA,UACA,0BACA,yBACA,iBACA,kBACA,yBACF,CACF,CACA,SAASC,GAAoB,EAAI,EAAY,EAAM,CACjD,IAAIC,EACJ,SAASC,EAAQ,EAAO,CACtB,EAAOvS,CACT,CACA,SAASuN,EAAO,EAAO,EAAO,CAC5BzH,EAAG,WAAWwM,EAAME,EAAOC,CAAK,EAChCC,EAAK,OAAOD,EAAOH,EAAM,CAAC,CAC5B,CACA,SAASK,EAAgB,EAAO,EAAO,EAAW,CAC5CC,IAAc,IAClB9M,EAAG,oBAAoBwM,EAAME,EAAOC,EAAOG,CAAS,EACpDF,EAAK,OAAOD,EAAOH,EAAMM,CAAS,EACpC,CACA,SAASC,EAAgB,EAAQ,EAAQ,EAAW,CAClD,GAAIC,IAAc,EAAG,OAErBC,EAD6B,IAAI,kBACzB,CAAC,CAAC,qBAAqBT,EAAMU,EAAQ,EAAGC,EAAQ,EAAGH,CAAS,EACpE,IAAII,EAAe,EACnB,IAAK,IAAIjO,EAAI,EAAGA,EAAI6N,EAAW,IAC7B,GAAgBG,EAAOhO,GAEzByN,EAAK,OAAOQ,EAAcZ,EAAM,CAAC,CACnC,CACA,SAASa,EAAyB,EAAQ,EAAQ,EAAW,EAAW,CACtE,GAAIL,IAAc,EAAG,OACrB,IAAMM,EAAYL,EAAW,IAAI,kBAAkB,EACnD,GAAIK,IAAc,KAChB,IAAK,IAAInO,EAAI,EAAGA,EAAI+N,EAAO,OAAQ,IACjCL,EAAgBK,EAAO/N,GAAIgO,EAAOhO,GAAI2N,EAAU3N,EAAE,MAE/C,CACLmO,EAAU,8BAA8Bd,EAAMU,EAAQ,EAAGC,EAAQ,EAAGL,EAAW,EAAGE,CAAS,EAC3F,IAAII,EAAe,EACnB,IAAK,IAAIjO,EAAI,EAAGA,EAAI6N,EAAW,IAC7B,GAAgBG,EAAOhO,GAEzB,IAAK,IAAIA,EAAI,EAAGA,EAAI2N,EAAU,OAAQ,IACpCF,EAAK,OAAOQ,EAAcZ,EAAMM,EAAU3N,EAAE,CAEhD,CACF,CACA,KAAK,QAAUsN,EACf,KAAK,OAAShF,EACd,KAAK,gBAAkBoF,EACvB,KAAK,gBAAkBE,EACvB,KAAK,yBAA2BM,CAClC,CACA,SAASE,GAAkB,EAAI,EAAY,EAAY,EAAO,CAC5D,IAAIC,EACJ,SAASC,GAAmB,CAC1B,GAAID,IAAkB,IAAK,GAAG,OAAOA,EACrC,GAAIP,EAAW,IAAI,gCAAgC,IAAM,GAAM,CAC7D,IAAMK,EAAYL,EAAW,IAAI,gCAAgC,EACjE,EAAgBjN,EAAG,aAAasN,EAAU,8BAA8B,CAC1E,KACE,GAAgB,EAElB,OAAOE,CACT,CACA,SAASE,EAAsB,EAAe,CAI5C,OAHIC,IAAA,MAAgCC,EAAM,QAAQD,CAAa,IAAM3N,EAAG,aAAaA,EAAG,gCAAgC,CAI1H,CACA,SAAS6N,EAAoB,EAAa,CACxC,IAAMC,EAA0BC,IAAA,OAAkCd,EAAW,IAAI,6BAA6B,GAAKA,EAAW,IAAI,wBAAwB,GAK1J,MAJA,EAAIc,IAAA,MAAoCH,EAAM,QAAQG,CAAW,IAAM/N,EAAG,aAAaA,EAAG,8BAA8B,GACxH+N,IAAA,MAA6B,CAACD,EAIhC,CACA,SAASE,EAAgB,EAAY,CACnC,GAAIC,IAAe,QAAS,CAC1B,GAAIjO,EAAG,yBAAyBA,EAAG,cAAeA,EAAG,UAAU,CAAC,CAAC,UAAY,GAAKA,EAAG,yBAAyBA,EAAG,gBAAiBA,EAAG,UAAU,CAAC,CAAC,UAAY,EAC3J,MAAO,QAET,EAAa,SACf,CAMA,OALIiO,IAAe,WACbjO,EAAG,yBAAyBA,EAAG,cAAeA,EAAG,YAAY,CAAC,CAAC,UAAY,GAAKA,EAAG,yBAAyBA,EAAG,gBAAiBA,EAAG,YAAY,CAAC,CAAC,UAAY,EACxJ,UAGJ,MACT,CACA,IAAIkO,EAAYC,EAAW,YAAc,IAAK,GAA2B,QAAvBA,EAAW,UACvDC,EAAeJ,EAAgBE,CAAS,EAC1CE,IAAiBF,IACnB,QAAQ,KAAK,uBAAwBA,EAAW,uBAAwBE,EAAc,UAAU,EAChG,EAAYA,GAEd,IAAMC,EAAyBF,EAAW,yBAA2B,GAC/DG,EAAqBH,EAAW,qBAAuB,IAAQlB,EAAW,IAAI,kBAAkB,EACtG,GAAIqB,IAAuB,GAAM,CAC/B,IAAMC,EAAMtB,EAAW,IAAI,kBAAkB,EAC7CsB,EAAI,eAAeA,EAAI,eAAgBA,EAAI,eAAe,CAC5D,CACA,IAAMC,EAAcxO,EAAG,aAAaA,EAAG,uBAAuB,EACxDyO,EAAoBzO,EAAG,aAAaA,EAAG,8BAA8B,EACrE0O,EAAiB1O,EAAG,aAAaA,EAAG,gBAAgB,EACpD2O,EAAiB3O,EAAG,aAAaA,EAAG,yBAAyB,EAC7D4O,EAAgB5O,EAAG,aAAaA,EAAG,kBAAkB,EACrD6O,EAAoB7O,EAAG,aAAaA,EAAG,0BAA0B,EACjE8O,EAAc9O,EAAG,aAAaA,EAAG,mBAAmB,EACpD+O,EAAsB/O,EAAG,aAAaA,EAAG,4BAA4B,EACrEgP,EAAiBP,EAAoB,EACrCQ,EAAajP,EAAG,aAAaA,EAAG,WAAW,EACjD,MAAO,CACL,SAAU,GAEV,mBACA,kBACA,wBACA,sBACA,YACA,yBACA,qBACA,cACA,oBACA,iBACA,iBACA,gBACA,oBACA,cACA,sBACA,iBACA,YACF,CACF,CACA,SAASkP,GAAc,EAAY,CACjC,IAAMC,EAAQ,KACVC,EAAc,KAAMC,EAAkB,EAAGC,EAAuB,GAAOC,EAAmB,GACxFC,EAAQ,IAAIC,GAASC,EAAmB,IAAIC,GAAWC,EAAU,CAAE,MAAO,KAAM,YAAa,EAAM,EACzG,KAAK,QAAUA,EACf,KAAK,UAAY,EACjB,KAAK,gBAAkB,EACvB,KAAK,KAAO,SAAS,EAAQ,EAAqB,CAChD,IAAMC,EAAUC,EAAO,SAAW,GAAKC,GAEvCV,IAAoB,GAAKC,EAGzB,MAFA,GAAuBS,EACvB,EAAkBD,EAAO,OAClBD,CACT,EACA,KAAK,aAAe,UAAW,CAC7B,EAAmB,GACnBG,EAAc,IAAI,CACpB,EACA,KAAK,WAAa,UAAW,CAC3B,EAAmB,EACrB,EACA,KAAK,eAAiB,SAAS,EAAQ,EAAQ,CAC7C,EAAcA,EAAcF,EAAQzH,EAAQ,CAAC,CAC/C,EACA,KAAK,SAAW,SAAS,EAAU,EAAQ,EAAU,CACnD,IAAMyH,EAASrN,EAAS,eAAgBwN,EAAmBxN,EAAS,iBAAkByN,EAAczN,EAAS,YACvG0N,EAAqBC,EAAW,IAAI3N,CAAQ,EAClD,GAAI,CAAC6M,GAAwBQ,IAAW,MAAQA,EAAO,SAAW,GAAKP,GAAoB,CAACW,EACtFX,EACFS,EAAc,IAAI,EAElBK,EAAiB,MAEd,CACL,IAAMC,EAAUf,EAAmB,EAAIF,EAAiBkB,EAAUD,EAAU,EACxEE,EAAWL,EAAmB,eAAiB,KACnD,EAAQ,MAAQK,EAChB,EAAWR,EAAcF,EAAQzH,EAAQkI,EAASE,CAAQ,EAC1D,IAAK,IAAItR,EAAI,EAAGA,IAAMoR,EAAS,EAAEpR,EAC/B,EAASA,GAAKiQ,EAAYjQ,GAE5B,EAAmB,cAAgBqR,EACnC,KAAK,gBAAkBP,EAAmB,KAAK,UAAY,EAC3D,KAAK,WAAaK,CACpB,CACF,EACA,SAASD,GAAmB,CACtBT,EAAQ,QAAUR,IACpB,EAAQ,MAAQA,EAChB,EAAQ,YAAcC,EAAkB,GAE1C,EAAM,UAAYA,EAClB,EAAM,gBAAkB,CAC1B,CACA,SAASW,EAAc,EAAQ,EAAQ,EAAW,EAAe,CAC/D,IAAMU,EAAUZ,IAAW,KAAuB,EAAhBA,EAAO,OACrCU,EAAW,KACf,GAAIE,IAAY,EAAG,CAEjB,GADA,EAAWd,EAAQ,MACfe,IAAkB,IAAQH,IAAa,KAAM,CAC/C,IAAMI,EAAWC,EAAYH,EAAU,EAAGI,EAAazI,EAAO,mBAC9DqH,EAAiB,gBAAgBoB,CAAU,GACvCN,IAAa,MAAQA,EAAS,OAASI,KACzC,EAAW,IAAI,aAAaA,CAAQ,GAEtC,IAAK,IAAIzR,EAAI,EAAG4R,EAAKF,EAAW1R,IAAMuR,EAAS,EAAEvR,EAAG,GAAM,EACxDqQ,EAAM,KAAKM,EAAO3Q,EAAE,CAAC,CAAC,aAAa2R,EAAYpB,CAAgB,EAC/DF,EAAM,OAAO,QAAQgB,EAAUO,CAAE,EACjC,EAASA,EAAK,GAAKvB,EAAM,QAE7B,CACA,EAAQ,MAAQgB,EAChB,EAAQ,YAAc,EACxB,CAGA,MAFA,GAAM,UAAYE,EAClB,EAAM,gBAAkB,EACjBF,CACT,CACF,CACA,SAASQ,GAAc,EAAU,CAC/B,IAAIxJ,kBAA2B,IAAI,QACnC,SAASyJ,EAAkB,EAAS,EAAS,CAM3C,OALIC,IAAA,IACF,EAAQ,QAAUC,GACTD,IAAYE,KACrB,EAAQ,QAAUC,IAEbC,CACT,CACA,SAASjL,EAAI,EAAS,CACpB,GAAIiL,GAAWA,EAAQ,UAAW,CAChC,IAAMJ,EAAUI,EAAQ,QACxB,GAAIJ,IAAA,KAAgDA,IAAYE,GAAkC,CAChG,GAAI5J,EAAS,IAAI8J,CAAO,EAAG,CACzB,IAAMC,EAAU/J,EAAS,IAAI8J,CAAO,CAAC,CAAC,QACtC,OAAOL,EAAkBM,EAASD,EAAQ,OAAO,CACnD,CAAO,CACL,IAAM7Q,EAAQ6Q,EAAQ,MACtB,GAAI7Q,GAASA,EAAM,OAAS,EAAG,CAC7B,IAAM+Q,EAAe,IAAIC,GAAsBhR,EAAM,MAAM,EAI3D,OAHA+Q,EAAa,2BAA2BzM,EAAUuM,CAAO,EACzD9J,EAAS,IAAI8J,EAASE,CAAY,EAClCF,EAAQ,iBAAiB,UAAWI,CAAgB,EAC7CT,EAAkBO,EAAa,QAASF,EAAQ,OAAO,CAChE,CACE,OAAO,IAEX,CACF,CACF,CACA,OAAOA,CACT,CACA,SAASI,EAAiB,EAAO,CAC/B,IAAMJ,EAAUK,EAAM,OACtBL,EAAQ,oBAAoB,UAAWI,CAAgB,EACvD,IAAMH,EAAU/J,EAAS,IAAI8J,CAAO,EAChCC,IAAY,IAAK,KACnB/J,EAAS,OAAO8J,CAAO,EACvBC,EAAQ,QAAQ,EAEpB,CACA,SAASvF,GAAU,CACjB,kBAA2B,IAAI,OACjC,CACA,MAAO,CACL,MACA,SACF,CACF,CA8aA,SAAS4F,GAAc,EAAQ,CAC7B,IAAMC,EAAY,CAAC,EACbC,EAAW,CAAC,EACZC,EAAS,CAAC,EACZC,EAAMC,EACJC,EAAYD,EAASE,GAAU,EAAIC,GAAgB,OACzD,IAAK,IAAIjT,EAAI,EAAGA,EAAI+S,EAAW,IAAK,CAClC,IAAMG,EAAmB,GAAGL,EAC5BF,EAAS,KAAKO,CAAO,EACrB,IAAIC,EAAQ,EAAID,EACZlT,EAAI8S,EAASE,GACf,EAAQC,GAAgBjT,EAAI8S,EAASE,GAAU,GACtChT,IAAM,IACf,EAAQ,GAEV4S,EAAO,KAAKO,CAAK,EACjB,IAAMC,EAAY,GAAKF,EAAU,GAC3B1W,EAAM,CAAC4W,EACP3W,EAAM,EAAI2W,EACVvO,EAAM,CAACrI,EAAKA,EAAKC,EAAKD,EAAKC,EAAKA,EAAKD,EAAKA,EAAKC,EAAKA,EAAKD,EAAKC,CAAG,EAMjE4W,kBAAW,IAAI,aAAa,GAAmC,EAC/D1O,kBAAK,IAAI,aAAa,EAA6B,EACnD2O,kBAAY,IAAI,aAAa,EAAoC,EACvE,IAAK,IAAIvO,EAAO,EAAGA,EAAO,EAAW,IAAQ,CAC3C,IAAMlJ,EAAIkJ,EAAO,EAAI,EAAI,EAAI,EACvB5H,EAAI4H,EAAO,EAAI,EAAI,GACnBwO,EAAc,CAClB1X,EACAsB,EACA,EACAtB,EAAI,EAAI,EACRsB,EACA,EACAtB,EAAI,EAAI,EACRsB,EAAI,EACJ,EACAtB,EACAsB,EACA,EACAtB,EAAI,EAAI,EACRsB,EAAI,EACJ,EACAtB,EACAsB,EAAI,EACJ,CACF,EACAkW,EAAS,IAAIE,EAAa,GAA0BxO,CAAI,EACxDJ,EAAG,IAAIE,EAAK,GAAoBE,CAAI,EACpC,IAAMyO,EAAQ,CAACzO,EAAMA,EAAMA,EAAMA,EAAMA,EAAMA,CAAI,EACjDuO,EAAU,IAAIE,EAAO,EAA2BzO,CAAI,CACtD,CACA,IAAM4L,EAAS,IAAI8C,GACnB9C,EAAO,aAAa,WAAY,IAAI+C,GAAgBL,EAAU,CAAY,CAAC,EAC3E1C,EAAO,aAAa,KAAM,IAAI+C,GAAgB/O,EAAI,CAAM,CAAC,EACzDgM,EAAO,aAAa,YAAa,IAAI+C,GAAgBJ,EAAW,CAAa,CAAC,EAC9EZ,EAAU,KAAK/B,CAAM,EACjBkC,EAAMG,IACR,GAEJ,CACA,MAAO,CAAE,YAAW,WAAU,QAAO,CACvC,CACA,SAASW,GAAoB,EAAO,EAAQ,EAAQ,CAClD,IAAMC,EAAqB,IAAIC,GAAkBC,EAAOC,EAAQC,CAAM,EAItE,MAHA,GAAmB,QAAQ,QAAUnL,GACrC,EAAmB,QAAQ,KAAO,eAClC,EAAmB,YAAc,GAC1B+K,CACT,CACA,SAASK,GAAa,EAAQ,EAAG,EAAG,EAAO,EAAQ,CACjD9Y,EAAO,SAAS,IAAIU,EAAGsB,EAAG2W,EAAOC,CAAM,EACvC5Y,EAAO,QAAQ,IAAIU,EAAGsB,EAAG2W,EAAOC,CAAM,CACxC,CACA,SAASG,GAAe,EAAQ,EAAO,EAAQ,CAC7C,IAAMC,EAAU,IAAI,aAAaC,EAAW,EACtCC,EAAW,IAAI5P,EAAQ,EAAG,EAAG,CAAC,EAuFpC,OAAO,IAtFoBuE,GAAe,CACxC,KAAM,wBACN,QAAS,CACPsL,EAAKF,GACLG,mBAAsB,EAAIT,EAC1BU,oBAAuB,EAAIT,EAC3BU,eAAkB,GAAG3B,EAAO,GAC9B,EACA,SAAU,CACR4B,OAAU,CAAE,MAAO,IAAK,EACxBC,QAAW,CAAE,MAAO,CAAE,EACtBC,QAAW,CAAE,MAAOT,CAAQ,EAC5BU,YAAe,CAAE,MAAO,EAAM,EAC9BC,OAAU,CAAE,MAAO,CAAE,EACrBC,OAAU,CAAE,MAAO,CAAE,EACrBC,SAAY,CAAE,MAAOX,CAAS,CAChC,EACA,aAAcY,GAAuB,EACrC,eAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8DF,SAAUC,GACV,UAAW,GACX,WAAY,EACd,CACoB,CACtB,CACA,SAASC,IAAuB,CAC9B,OAAO,IAAInM,GAAe,CACxB,KAAM,0BACN,SAAU,CACR0L,OAAU,CAAE,MAAO,IAAK,CAC1B,EACA,aAAcO,GAAuB,EACrC,eAEE;;;;;;;;;;;;;;;;;;;IAqBF,SAAUC,GACV,UAAW,GACX,WAAY,EACd,CAAC,CACH,CACA,SAASE,IAAsB,CAC7B,OAAO,IAAIpM,GAAe,CACxB,KAAM,kBACN,SAAU,CACR0L,OAAU,CAAE,MAAO,IAAK,EACxBW,WAAc,CAAE,MAAO,EAAG,CAC5B,EACA,aAAcJ,GAAuB,EACrC,eAEE;;;;;;;;;;;;;;;;IAkBF,SAAUC,GACV,UAAW,GACX,WAAY,EACd,CAAC,CACH,CACA,SAASD,IAAyB,CAChC,MAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDJ,CACA,SAASK,GAAgB,EAAU,CACjC,IAAIC,kBAA6B,IAAI,QACjCC,EAAiB,KACrB,SAAStO,EAAI,EAAS,CACpB,GAAIiL,GAAWA,EAAQ,UAAW,CAChC,IAAMJ,EAAUI,EAAQ,QAClBsD,EAAgB1D,IAAA,KAAgDA,IAAYE,GAC5EyD,EAAY3D,IAAYC,IAAyBD,IAAYG,GACnE,GAAIuD,GAAiBC,EAAW,CAC9B,IAAIrD,EAAekD,EAAW,IAAIpD,CAAO,EACnCwD,EAAsBtD,IAAiB,IAAK,GAAwC,EAApCA,EAAa,QAAQ,aAC3E,GAAIF,EAAQ,uBAAyBA,EAAQ,eAAiBwD,EAK5D,OAJIH,IAAmB,OAAM,EAAiB,IAAII,GAAehQ,CAAQ,GACzE,EAAe6P,EAAgBD,EAAe,oBAAoBrD,EAASE,CAAY,EAAImD,EAAe,YAAYrD,EAASE,CAAY,EAC3I,EAAa,QAAQ,aAAeF,EAAQ,aAC5CoD,EAAW,IAAIpD,EAASE,CAAY,EAC7BA,EAAa,QAEpB,GAAIA,IAAiB,IAAK,GACxB,OAAOA,EAAa,QACf,CACL,IAAM/Q,EAAQ6Q,EAAQ,MASpB,OAREsD,GAAiBnU,GAASA,EAAM,OAAS,GAAKoU,GAAapU,GAASuU,EAAsBvU,CAAK,GAC7FkU,IAAmB,OAAM,EAAiB,IAAII,GAAehQ,CAAQ,GACzE,EAAe6P,EAAgBD,EAAe,oBAAoBrD,CAAO,EAAIqD,EAAe,YAAYrD,CAAO,EAC/G,EAAa,QAAQ,aAAeA,EAAQ,aAC5CoD,EAAW,IAAIpD,EAASE,CAAY,EACpCF,EAAQ,iBAAiB,UAAWI,CAAgB,EAC7CF,EAAa,SAEb,IAEX,CAEJ,CACF,CACA,OAAOF,CACT,CACA,SAAS0D,EAAsB,EAAO,CACpC,IAAIrI,EAAQ,EAEZ,IAAK,IAAIxN,EAAI,EAAGA,EAAI,EAAQ,IACtBsB,EAAMtB,KAAO,IAAK,IAAG,IAE3B,OAAOwN,IAAU,CACnB,CACA,SAAS+E,EAAiB,EAAO,CAC/B,IAAMJ,EAAUK,EAAM,OACtBL,EAAQ,oBAAoB,UAAWI,CAAgB,EACvD,IAAMuD,EAAYP,EAAW,IAAIpD,CAAO,EACpC2D,IAAc,IAAK,KACrBP,EAAW,OAAOpD,CAAO,EACzB2D,EAAU,QAAQ,EAEtB,CACA,SAASjJ,GAAU,CACjB,kBAA6B,IAAI,QAC7B2I,IAAmB,OACrBA,EAAe,QAAQ,EACvB,EAAiB,KAErB,CACA,MAAO,CACL,MACA,SACF,CACF,CACA,SAASO,GAAgB,EAAI,CAC3B,IAAMjI,EAAa,CAAC,EACpB,SAASkI,EAAa,EAAM,CAC1B,GAAIlI,EAAWxS,KAAU,IAAK,GAC5B,OAAOwS,EAAWxS,GAEpB,IAAI6S,EACJ,OAAQ7S,EAAR,CACE,IAAK,sBACH,EAAYuF,EAAG,aAAa,qBAAqB,GAAKA,EAAG,aAAa,yBAAyB,GAAKA,EAAG,aAAa,4BAA4B,EAChJ,MACF,IAAK,iCACH,EAAYA,EAAG,aAAa,gCAAgC,GAAKA,EAAG,aAAa,oCAAoC,GAAKA,EAAG,aAAa,uCAAuC,EACjL,MACF,IAAK,gCACH,EAAYA,EAAG,aAAa,+BAA+B,GAAKA,EAAG,aAAa,mCAAmC,GAAKA,EAAG,aAAa,sCAAsC,EAC9K,MACF,IAAK,iCACH,EAAYA,EAAG,aAAa,gCAAgC,GAAKA,EAAG,aAAa,uCAAuC,EACxH,MACF,QACE,EAAYA,EAAG,aAAavF,CAAI,CACpC,CAEA,MADA,GAAWA,GAAQ6S,EACZA,CACT,CACA,MAAO,CACL,IAAK,SAAS,EAAM,CAClB,OAAO6H,EAAa1a,CAAI,IAAM,IAChC,EACA,KAAM,UAAW,CACf0a,EAAa,wBAAwB,EACrCA,EAAa,0BAA0B,EACvCA,EAAa,0BAA0B,EACvCA,EAAa,6BAA6B,EAC1CA,EAAa,sCAAsC,EACnDA,EAAa,8BAA8B,CAC7C,EACA,IAAK,SAAS,EAAM,CAClB,IAAM7H,EAAY6H,EAAa1a,CAAI,EAInC,OAHI6S,IAAc,MAChB3N,GAAS,wBAA0BlF,EAAO,2BAA2B,EAEhE6S,CACT,CACF,CACF,CACA,SAAS8H,GAAgB,EAAI,EAAY,EAAM,EAAe,CAC5D,IAAMC,EAAa,CAAC,EACdC,kBAAsC,IAAI,QAChD,SAASC,EAAkB,EAAO,CAChC,IAAM/L,EAAWmI,EAAM,OACnBnI,EAAS,QAAU,MACrBM,EAAW,OAAON,EAAS,KAAK,EAElC,IAAK,IAAM/O,KAAQ+O,EAAS,WAC1BM,EAAW,OAAON,EAAS,WAAW/O,EAAK,EAE7C,IAAK,IAAMA,KAAQ+O,EAAS,gBAAiB,CAC3C,IAAMxK,EAAQwK,EAAS,gBAAgB/O,GACvC,IAAK,IAAI0E,EAAI,EAAGiH,EAAIpH,EAAM,OAAQG,EAAIiH,EAAG,IACvC0D,EAAW,OAAO9K,EAAMG,EAAE,CAE9B,CACAqK,EAAS,oBAAoB,UAAW+L,CAAiB,EACzD,OAAOF,EAAW7L,EAAS,IAC3B,IAAM5D,EAAY0P,EAAoB,IAAI9L,CAAQ,EAC9C5D,IACFkE,EAAW,OAAOlE,CAAS,EAC3B0P,EAAoB,OAAO9L,CAAQ,GAErCR,EAAc,wBAAwBQ,CAAQ,EAC1CA,EAAS,4BAA8B,IACzC,OAAOA,EAAS,kBAElB,EAAK,OAAO,YACd,CACA,SAASnD,EAAI,EAAQ,EAAU,CAK7B,OAJIgP,EAAW7L,EAAS,MAAQ,KAChCA,EAAS,iBAAiB,UAAW+L,CAAiB,EACtD,EAAW/L,EAAS,IAAM,GAC1B,EAAK,OAAO,cACLA,CACT,CACA,SAAShD,EAAO,EAAU,CACxB,IAAMkE,EAAqBlB,EAAS,WACpC,IAAK,IAAM/O,KAAQiQ,EACjBZ,EAAW,OAAOY,EAAmBjQ,GAAOuF,EAAG,YAAY,EAE7D,IAAMwV,EAAkBhM,EAAS,gBACjC,IAAK,IAAM/O,KAAQ+a,EAAiB,CAClC,IAAMxW,EAAQwW,EAAgB/a,GAC9B,IAAK,IAAI0E,EAAI,EAAGiH,EAAIpH,EAAM,OAAQG,EAAIiH,EAAG,IACvC0D,EAAW,OAAO9K,EAAMG,GAAIa,EAAG,YAAY,CAE/C,CACF,CACA,SAASyV,EAAyB,EAAU,CAC1C,IAAMC,EAAU,CAAC,EACXC,EAAgBnM,EAAS,MACzBoM,EAAmBpM,EAAS,WAAW,SACzCqM,EAAU,EACd,GAAIF,IAAkB,KAAM,CAC1B,IAAM3W,EAAQ2W,EAAc,MAC5B,EAAUA,EAAc,QACxB,IAAK,IAAIxW,EAAI,EAAGiH,EAAIpH,EAAM,OAAQG,EAAIiH,EAAG,GAAK,EAAG,CAC/C,IAAM/L,EAAI2E,EAAMG,EAAI,GACd/E,EAAI4E,EAAMG,EAAI,GACdZ,EAAIS,EAAMG,EAAI,GACpBuW,EAAQ,KAAKrb,EAAGD,EAAGA,EAAGmE,EAAGA,EAAGlE,CAAC,CAC/B,CACF,MAAO,GAAIub,IAAqB,IAAK,GAAG,CACtC,IAAM5W,EAAQ4W,EAAiB,MAC/B,EAAUA,EAAiB,QAC3B,IAAK,IAAIzW,EAAI,EAAGiH,EAAIpH,EAAM,OAAS,EAAI,EAAGG,EAAIiH,EAAG,GAAK,EAAG,CACvD,IAAM/L,EAAI8E,EAAI,EACR/E,EAAI+E,EAAI,EACRZ,EAAIY,EAAI,EACduW,EAAQ,KAAKrb,EAAGD,EAAGA,EAAGmE,EAAGA,EAAGlE,CAAC,CAC/B,CACF,MACE,OAEF,IAAMuL,EAAY,IAAK1G,GAAiBwW,CAAO,EAAII,GAAwBC,IAAuBL,EAAS,CAAC,EAC5G,EAAU,QAAUG,EACpB,IAAMG,EAAoBV,EAAoB,IAAI9L,CAAQ,EACtDwM,GAAmBlM,EAAW,OAAOkM,CAAiB,EAC1DV,EAAoB,IAAI9L,EAAU5D,CAAS,CAC7C,CACA,SAASqQ,EAAsB,EAAU,CACvC,IAAMC,EAAmBZ,EAAoB,IAAI9L,CAAQ,EACzD,GAAI0M,EAAkB,CACpB,IAAMP,EAAgBnM,EAAS,MAC3BmM,IAAkB,MAChBO,EAAiB,QAAUP,EAAc,SAC3CF,EAAyBjM,CAAQ,CAGvC,MACEiM,EAAyBjM,CAAQ,EAEnC,OAAO8L,EAAoB,IAAI9L,CAAQ,CACzC,CACA,MAAO,CACL,MACA,SACA,uBACF,CACF,CACA,SAAS2M,GAA2B,EAAI,EAAY,EAAM,CACxD,IAAI3J,EACJ,SAASC,EAAQ,EAAO,CACtB,EAAOvS,CACT,CACA,IAAIoF,EAAMwM,EACV,SAASsK,EAAS,EAAO,CACvB,EAAOlc,EAAM,KACb,EAAkBA,EAAM,eAC1B,CACA,SAASuN,EAAO,EAAO,EAAO,CAC5BzH,EAAG,aAAawM,EAAMG,EAAOrN,EAAMoN,EAAQZ,CAAe,EAC1Dc,EAAK,OAAOD,EAAOH,EAAM,CAAC,CAC5B,CACA,SAASK,EAAgB,EAAO,EAAO,EAAW,CAC5CC,IAAc,IAClB9M,EAAG,sBAAsBwM,EAAMG,EAAOrN,EAAMoN,EAAQZ,EAAiBgB,CAAS,EAC9EF,EAAK,OAAOD,EAAOH,EAAMM,CAAS,EACpC,CACA,SAASC,EAAgB,EAAQ,EAAQ,EAAW,CAClD,GAAIC,IAAc,EAAG,OAErBC,EAD6B,IAAI,kBACzB,CAAC,CAAC,uBAAuBT,EAAMW,EAAQ,EAAG7N,EAAM4N,EAAQ,EAAGF,CAAS,EAC5E,IAAII,EAAe,EACnB,IAAK,IAAIjO,EAAI,EAAGA,EAAI6N,EAAW,IAC7B,GAAgBG,EAAOhO,GAEzByN,EAAK,OAAOQ,EAAcZ,EAAM,CAAC,CACnC,CACA,SAASa,EAAyB,EAAQ,EAAQ,EAAW,EAAW,CACtE,GAAIL,IAAc,EAAG,OACrB,IAAMM,EAAYL,EAAW,IAAI,kBAAkB,EACnD,GAAIK,IAAc,KAChB,IAAK,IAAInO,EAAI,EAAGA,EAAI+N,EAAO,OAAQ,IACjCL,EAAgBK,EAAO/N,GAAK2M,EAAiBqB,EAAOhO,GAAI2N,EAAU3N,EAAE,MAEjE,CACLmO,EAAU,gCAAgCd,EAAMW,EAAQ,EAAG7N,EAAM4N,EAAQ,EAAGJ,EAAW,EAAGE,CAAS,EACnG,IAAII,EAAe,EACnB,IAAK,IAAIjO,EAAI,EAAGA,EAAI6N,EAAW,IAC7B,GAAgBG,EAAOhO,GAEzB,IAAK,IAAIA,EAAI,EAAGA,EAAI2N,EAAU,OAAQ,IACpCF,EAAK,OAAOQ,EAAcZ,EAAMM,EAAU3N,EAAE,CAEhD,CACF,CACA,KAAK,QAAUsN,EACf,KAAK,SAAW2J,EAChB,KAAK,OAAS3O,EACd,KAAK,gBAAkBoF,EACvB,KAAK,gBAAkBE,EACvB,KAAK,yBAA2BM,CAClC,CACA,SAASgJ,GAAU,EAAI,CACrB,IAAMC,EAAS,CACb,WAAY,EACZ,SAAU,CACZ,EACM7O,EAAS,CACb,MAAO,EACP,MAAO,EACP,UAAW,EACX,OAAQ,EACR,MAAO,CACT,EACA,SAASjB,EAAO,EAAO,EAAM,EAAe,CAE1C,OADA,EAAO,QACCgG,EAAR,CACE,KAAKxM,EAAG,UACN,EAAO,WAA8B2M,EAAQ,EAAzB4J,EACpB,MACF,KAAKvW,EAAG,MACN,EAAO,OAA0B2M,EAAQ,EAAzB4J,EAChB,MACF,KAAKvW,EAAG,WACN,EAAO,OAASuW,GAAiB5J,EAAQ,GACzC,MACF,KAAK3M,EAAG,UACN,EAAO,OAASuW,EAAgB5J,EAChC,MACF,KAAK3M,EAAG,OACN,EAAO,QAAUuW,EAAgB5J,EACjC,MACF,QACE,QAAQ,MAAM,sCAAuCH,CAAI,CAE7D,CACF,CACA,SAASP,GAAQ,CACf,EAAO,MAAQ,EACf,EAAO,UAAY,EACnB,EAAO,OAAS,EAChB,EAAO,MAAQ,CACjB,CACA,MAAO,CACL,SACA,SACA,SAAU,KACV,UAAW,GACX,QACA,QACF,CACF,CACA,SAASuK,GAAkB,EAAI,EAAc,EAAU,CACrD,IAAMC,kBAAgC,IAAI,QACpCC,EAAQ,IAAIC,GAClB,SAASnQ,EAAO,EAAQ,EAAU,EAAS,CACzC,IAAMoQ,EAAmB1T,EAAO,sBAC1B2T,EAAiBrN,EAAS,gBAAgB,UAAYA,EAAS,gBAAgB,QAAUA,EAAS,gBAAgB,MAClHsN,EAAoBD,IAAmB,IAAK,GAA4B,EAAxBA,EAAe,OACjEE,EAAQN,EAAc,IAAIjN,CAAQ,EACtC,GAAIuN,IAAU,IAAK,IAAKA,EAAM,QAAUD,EAAmB,CACzD,IAAIE,EAAiB,UAAW,CAC9B1F,EAAQ,QAAQ,EAChBmF,EAAc,OAAOjN,CAAQ,EAC7BA,EAAS,oBAAoB,UAAWwN,CAAc,CACxD,EACID,IAAU,IAAK,IAAGA,EAAM,QAAQ,QAAQ,EAC5C,IAAME,EAAmBzN,EAAS,gBAAgB,WAAa,IAAK,GAC9D0N,EAAkB1N,EAAS,gBAAgB,SAAW,IAAK,GAC3D2N,EAAiB3N,EAAS,gBAAgB,QAAU,IAAK,GACzD4N,EAAe5N,EAAS,gBAAgB,UAAY,CAAC,EACrD6N,EAAe7N,EAAS,gBAAgB,QAAU,CAAC,EACnD8N,EAAc9N,EAAS,gBAAgB,OAAS,CAAC,EACnD+N,EAAkB,EAClBN,IAAqB,KAAM,EAAkB,GAC7CC,IAAoB,KAAM,EAAkB,GAC5CC,IAAmB,KAAM,EAAkB,GAC/C,IAAIlE,EAAQzJ,EAAS,WAAW,SAAS,MAAQ+N,EAC7CrE,EAAS,EACTD,EAAQuE,EAAa,iBACvB,EAAS,KAAK,KAAKvE,EAAQuE,EAAa,cAAc,EACtD,EAAQA,EAAa,gBAEvB,IAAMjY,EAAS,IAAI,aAAa0T,EAAQC,EAAS,EAAI4D,CAAiB,EAChExF,EAAU,IAAImG,GAAiBlY,EAAQ0T,EAAOC,EAAQ4D,CAAiB,EAC7E,EAAQ,KAAOY,GACf,EAAQ,YAAc,GACtB,IAAMC,EAAmBJ,EAAkB,EAC3C,IAAK,IAAIpY,EAAI,EAAGA,EAAI2X,EAAmB,IAAK,CAC1C,IAAMc,EAAcR,EAAajY,GAC3B0Y,EAAcR,EAAalY,GAC3B2Y,EAAaR,EAAYnY,GACzBuM,EAASuH,EAAQC,EAAS,EAAI/T,EACpC,IAAK,IAAIyB,EAAI,EAAGA,EAAIgX,EAAY,MAAO,IAAK,CAC1C,IAAMnM,EAAS7K,EAAI+W,EACfV,IAAqB,KACvBP,EAAM,oBAAoBkB,EAAahX,CAAC,EACxC,EAAO8K,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAK,GAE5ByL,IAAoB,KACtBR,EAAM,oBAAoBmB,EAAajX,CAAC,EACxC,EAAO8K,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAK,GAE5B0L,IAAmB,KACrBT,EAAM,oBAAoBoB,EAAYlX,CAAC,EACvC,EAAO8K,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,GAAKiL,EAAM,EACpC,EAAOhL,EAASD,EAAS,IAAMiL,EAAM,EACrC,EAAOhL,EAASD,EAAS,IAAMqM,EAAW,WAAa,EAAIpB,EAAM,EAAI,EAEzE,CACF,CACA,EAAQ,CACN,MAAOI,EACP,UACA,KAAM,IAAI/S,EAAQkP,EAAOC,CAAM,CACjC,EACAuD,EAAc,IAAIjN,EAAUuN,CAAK,EACjCvN,EAAS,iBAAiB,UAAWwN,CAAc,CACrD,CACA,GAAI9T,EAAO,kBAAoB,IAAQA,EAAO,eAAiB,KAC7DuG,EAAQ,YAAY,CAAC,CAAC,SAASzJ,EAAI,eAAgBkD,EAAO,aAAc6U,CAAQ,MAC3E,CACL,IAAIC,EAAqB,EACzB,IAAK,IAAI7Y,EAAI,EAAGA,EAAIyX,EAAiB,OAAQ,IAC3C,GAAsBA,EAAiBzX,GAEzC,IAAM8Y,EAAqBzO,EAAS,qBAAuB,EAAI,EAAIwO,EACnEvO,EAAQ,YAAY,CAAC,CAAC,SAASzJ,EAAI,2BAA4BiY,CAAkB,EACjFxO,EAAQ,YAAY,CAAC,CAAC,SAASzJ,EAAI,wBAAyB4W,CAAgB,CAC9E,CACAnN,EAAQ,YAAY,CAAC,CAAC,SAASzJ,EAAI,sBAAuB+W,EAAM,QAASgB,CAAQ,EACjFtO,EAAQ,YAAY,CAAC,CAAC,SAASzJ,EAAI,0BAA2B+W,EAAM,IAAI,CAC1E,CACA,MAAO,CACL,QACF,CACF,CACA,SAASmB,GAAa,EAAI,EAAY,EAAY,EAAM,CACtD,IAAIC,kBAA4B,IAAI,QACpC,SAAS3R,EAAO,EAAQ,CACtB,IAAMpS,EAAQwY,EAAK,OAAO,MACpBpD,EAAWtG,EAAO,SAClBkV,EAAiB/C,EAAW,IAAInS,EAAQsG,CAAQ,EAiBtD,GAhBI2O,EAAU,IAAIC,CAAc,IAAMhkB,IACpCihB,EAAW,OAAO+C,CAAc,EAChCD,EAAU,IAAIC,EAAgBhkB,CAAK,GAEjC8O,EAAO,kBACLA,EAAO,iBAAiB,UAAWmV,CAAsB,IAAM,IACjEnV,EAAO,iBAAiB,UAAWmV,CAAsB,EAEvDF,EAAU,IAAIjV,CAAM,IAAM9O,IAC5B0V,EAAW,OAAO5G,EAAO,eAAgBlD,EAAG,YAAY,EACpDkD,EAAO,gBAAkB,MAC3B4G,EAAW,OAAO5G,EAAO,cAAelD,EAAG,YAAY,EAEzDmY,EAAU,IAAIjV,EAAQ9O,CAAK,IAG3B8O,EAAO,cAAe,CACxB,IAAMoV,EAAWpV,EAAO,SACpBiV,EAAU,IAAIG,CAAQ,IAAMlkB,IAC9BkkB,EAAS,OAAO,EAChBH,EAAU,IAAIG,EAAUlkB,CAAK,EAEjC,CACA,OAAOgkB,CACT,CACA,SAASpM,GAAU,CACjB,kBAA4B,IAAI,OAClC,CACA,SAASqM,EAAuB,EAAO,CACrC,IAAME,EAAgB5G,EAAM,OAC5B4G,EAAc,oBAAoB,UAAWF,CAAsB,EACnEvO,EAAW,OAAOyO,EAAc,cAAc,EAC1CA,EAAc,gBAAkB,MAAMzO,EAAW,OAAOyO,EAAc,aAAa,CACzF,CACA,MAAO,CACL,SACA,SACF,CACF,CAsCA,SAASC,GAAQ,EAAO,EAAS,EAAW,CAC1C,IAAMC,EAAYzZ,EAAM,GACxB,GAAIyZ,GAAa,GAAKA,EAAY,EAAG,OAAOzZ,EAC5C,IAAMlD,EAAI4c,EAAUC,EAChB5X,EAAI6X,GAAc9c,GAKtB,GAJIiF,IAAM,IAAK,KACb,EAAI,IAAI,aAAajF,CAAC,EACtB,GAAcA,GAAKiF,GAEjB2X,IAAY,EAAG,CACjBD,EAAU,QAAQ1X,EAAG,CAAC,EACtB,IAAK,IAAI5B,EAAI,EAAGuM,EAAS,EAAGvM,IAAMuZ,EAAS,EAAEvZ,EAC3C,GAAUwZ,EACV3Z,EAAMG,EAAE,CAAC,QAAQ4B,EAAG2K,CAAM,CAE9B,CACA,OAAO3K,CACT,CACA,SAAS8X,GAAY,EAAG,EAAG,CACzB,GAAIxe,EAAE,SAAWD,EAAE,OAAQ,MAAO,GAClC,IAAK,IAAI+E,EAAI,EAAGiH,EAAI/L,EAAE,OAAQ8E,EAAIiH,EAAG,IACnC,GAAI/L,EAAE8E,KAAO/E,EAAE+E,GAAI,MAAO,GAE5B,MAAO,EACT,CACA,SAAS2Z,GAAU,EAAG,EAAG,CACvB,IAAK,IAAI3Z,EAAI,EAAGiH,EAAIhM,EAAE,OAAQ+E,EAAIiH,EAAG,IACnC,EAAEjH,GAAK/E,EAAE+E,EAEb,CACA,SAAS4Z,GAAc,EAAU,EAAG,CAClC,IAAIhY,EAAIiY,GAAcld,GAClBiF,IAAM,IAAK,KACb,EAAI,IAAI,WAAWjF,CAAC,EACpB,GAAcA,GAAKiF,GAErB,IAAK,IAAI5B,EAAI,EAAGA,IAAMrD,EAAG,EAAEqD,EACzB,EAAEA,GAAK4Y,EAAS,oBAAoB,EAEtC,OAAOhX,CACT,CACA,SAASkY,GAAY,EAAI,EAAG,CAC1B,IAAMlO,EAAQ,KAAK,MACfA,EAAM,KAAOmO,IACjBlZ,EAAG,UAAU,KAAK,KAAMkZ,CAAC,EACzB,EAAM,GAAKA,EACb,CACA,SAASC,GAAY,EAAI,EAAG,CAC1B,IAAMpO,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACrClZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,CAAC,EAChC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASE,GAAY,EAAI,EAAG,CAC1B,IAAMrO,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACzDlZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EACrC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,QAEV,GAAIA,EAAE,IAAM,IAAK,IAClBnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACzDlZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EACrC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASG,GAAY,EAAI,EAAG,CAC1B,IAAMtO,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KAC7ElZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAC1C,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASI,GAAW,EAAI,EAAG,CACzB,IAAMvO,EAAQ,KAAK,MACbwO,EAAWL,EAAE,SACnB,GAAIK,IAAa,IAAK,GAAG,CACvB,GAAIV,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,iBAAiB,KAAK,KAAM,GAAOkZ,CAAC,EACvCJ,GAAU/N,EAAOmO,CAAC,CACpB,KAAO,CACL,GAAIL,GAAY9N,EAAOwO,CAAQ,EAAG,OAClCC,GAAU,IAAID,CAAQ,EACtBvZ,EAAG,iBAAiB,KAAK,KAAM,GAAOwZ,EAAS,EAC/CV,GAAU/N,EAAOwO,CAAQ,CAC3B,CACF,CACA,SAASE,GAAW,EAAI,EAAG,CACzB,IAAM1O,EAAQ,KAAK,MACbwO,EAAWL,EAAE,SACnB,GAAIK,IAAa,IAAK,GAAG,CACvB,GAAIV,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,iBAAiB,KAAK,KAAM,GAAOkZ,CAAC,EACvCJ,GAAU/N,EAAOmO,CAAC,CACpB,KAAO,CACL,GAAIL,GAAY9N,EAAOwO,CAAQ,EAAG,OAClCG,GAAU,IAAIH,CAAQ,EACtBvZ,EAAG,iBAAiB,KAAK,KAAM,GAAO0Z,EAAS,EAC/CZ,GAAU/N,EAAOwO,CAAQ,CAC3B,CACF,CACA,SAASI,GAAW,EAAI,EAAG,CACzB,IAAM5O,EAAQ,KAAK,MACbwO,EAAWL,EAAE,SACnB,GAAIK,IAAa,IAAK,GAAG,CACvB,GAAIV,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,iBAAiB,KAAK,KAAM,GAAOkZ,CAAC,EACvCJ,GAAU/N,EAAOmO,CAAC,CACpB,KAAO,CACL,GAAIL,GAAY9N,EAAOwO,CAAQ,EAAG,OAClCK,GAAU,IAAIL,CAAQ,EACtBvZ,EAAG,iBAAiB,KAAK,KAAM,GAAO4Z,EAAS,EAC/Cd,GAAU/N,EAAOwO,CAAQ,CAC3B,CACF,CACA,SAASM,GAAY,EAAI,EAAG,CAC1B,IAAM9O,EAAQ,KAAK,MACfA,EAAM,KAAOmO,IACjBlZ,EAAG,UAAU,KAAK,KAAMkZ,CAAC,EACzB,EAAM,GAAKA,EACb,CACA,SAASY,GAAY,EAAI,EAAG,CAC1B,IAAM/O,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACrClZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,CAAC,EAChC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASa,GAAY,EAAI,EAAG,CAC1B,IAAMhP,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACzDlZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EACrC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASc,GAAY,EAAI,EAAG,CAC1B,IAAMjP,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KAC7ElZ,EAAG,UAAU,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAC1C,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASe,GAAa,EAAI,EAAG,CAC3B,IAAMlP,EAAQ,KAAK,MACfA,EAAM,KAAOmO,IACjBlZ,EAAG,WAAW,KAAK,KAAMkZ,CAAC,EAC1B,EAAM,GAAKA,EACb,CACA,SAASgB,GAAa,EAAI,EAAG,CAC3B,IAAMnP,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACrClZ,EAAG,WAAW,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,CAAC,EACjC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,YAAY,KAAK,KAAMkZ,CAAC,EAC3BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASiB,GAAa,EAAI,EAAG,CAC3B,IAAMpP,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KACzDlZ,EAAG,WAAW,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EACtC,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,YAAY,KAAK,KAAMkZ,CAAC,EAC3BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASkB,GAAa,EAAI,EAAG,CAC3B,IAAMrP,EAAQ,KAAK,MACnB,GAAImO,EAAE,IAAM,IAAK,IACXnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,GAAKnO,EAAM,KAAOmO,EAAE,KAC7ElZ,EAAG,WAAW,KAAK,KAAMkZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAC3C,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,EACb,EAAM,GAAKA,EAAE,OAEV,CACL,GAAIL,GAAY9N,EAAOmO,CAAC,EAAG,OAC3BlZ,EAAG,YAAY,KAAK,KAAMkZ,CAAC,EAC3BJ,GAAU/N,EAAOmO,CAAC,CACpB,CACF,CACA,SAASmB,GAAW,EAAI,EAAG,EAAU,CACnC,IAAMtP,EAAQ,KAAK,MACbuP,EAAOvC,EAAS,oBAAoB,EACtChN,EAAM,KAAOuP,IACfta,EAAG,UAAU,KAAK,KAAMsa,CAAI,EAC5B,EAAM,GAAKA,GAEb,IAAIC,EACA,KAAK,OAASva,EAAG,mBACnB,GAAmB,gBAAkBwa,GACrC,EAAiBC,IAEjB,EAAiBC,GAEnB3C,EAAS,aAAamB,GAAKqB,EAAgBD,CAAI,CACjD,CACA,SAASK,GAAa,EAAI,EAAG,EAAU,CACrC,IAAM5P,EAAQ,KAAK,MACbuP,EAAOvC,EAAS,oBAAoB,EACtChN,EAAM,KAAOuP,IACfta,EAAG,UAAU,KAAK,KAAMsa,CAAI,EAC5B,EAAM,GAAKA,GAEbvC,EAAS,aAAamB,GAAK0B,GAAgBN,CAAI,CACjD,CACA,SAASO,GAAW,EAAI,EAAG,EAAU,CACnC,IAAM9P,EAAQ,KAAK,MACbuP,EAAOvC,EAAS,oBAAoB,EACtChN,EAAM,KAAOuP,IACfta,EAAG,UAAU,KAAK,KAAMsa,CAAI,EAC5B,EAAM,GAAKA,GAEbvC,EAAS,eAAemB,GAAK4B,GAAkBR,CAAI,CACrD,CACA,SAASS,GAAkB,EAAI,EAAG,EAAU,CAC1C,IAAMhQ,EAAQ,KAAK,MACbuP,EAAOvC,EAAS,oBAAoB,EACtChN,EAAM,KAAOuP,IACfta,EAAG,UAAU,KAAK,KAAMsa,CAAI,EAC5B,EAAM,GAAKA,GAEbvC,EAAS,kBAAkBmB,GAAK8B,GAAmBV,CAAI,CACzD,CACA,SAASW,GAAkB,EAAM,CAC/B,OAAQ3b,EAAR,CACE,IAAK,MACH,OAAO2Z,GAET,IAAK,OACH,OAAOE,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOG,GAET,IAAK,OACH,OAAOE,GAET,IAAK,MACL,IAAK,OACH,OAAOE,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,MACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOC,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOM,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOE,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOE,EACX,CACF,CACA,SAASG,GAAiB,EAAI,EAAG,CAC/Blb,EAAG,WAAW,KAAK,KAAMkZ,CAAC,CAC5B,CACA,SAASiC,GAAiB,EAAI,EAAG,CAC/B,IAAM5U,EAAOiS,GAAQU,EAAG,KAAK,KAAM,CAAC,EACpClZ,EAAG,WAAW,KAAK,KAAMuG,CAAI,CAC/B,CACA,SAAS6U,GAAiB,EAAI,EAAG,CAC/B,IAAM7U,EAAOiS,GAAQU,EAAG,KAAK,KAAM,CAAC,EACpClZ,EAAG,WAAW,KAAK,KAAMuG,CAAI,CAC/B,CACA,SAAS8U,GAAiB,EAAI,EAAG,CAC/B,IAAM9U,EAAOiS,GAAQU,EAAG,KAAK,KAAM,CAAC,EACpClZ,EAAG,WAAW,KAAK,KAAMuG,CAAI,CAC/B,CACA,SAAS+U,GAAgB,EAAI,EAAG,CAC9B,IAAM/U,EAAOiS,GAAQU,EAAG,KAAK,KAAM,CAAC,EACpClZ,EAAG,iBAAiB,KAAK,KAAM,GAAOuG,CAAI,CAC5C,CACA,SAASgV,GAAgB,EAAI,EAAG,CAC9B,IAAMhV,EAAOiS,GAAQU,EAAG,KAAK,KAAM,CAAC,EACpClZ,EAAG,iBAAiB,KAAK,KAAM,GAAOuG,CAAI,CAC5C,CACA,SAASiV,GAAgB,EAAI,EAAG,CAC9B,IAAMjV,EAAOiS,GAAQU,EAAG,KAAK,KAAM,EAAE,EACrClZ,EAAG,iBAAiB,KAAK,KAAM,GAAOuG,CAAI,CAC5C,CACA,SAASkV,GAAiB,EAAI,EAAG,CAC/Bzb,EAAG,WAAW,KAAK,KAAMkZ,CAAC,CAC5B,CACA,SAASwC,GAAiB,EAAI,EAAG,CAC/B1b,EAAG,WAAW,KAAK,KAAMkZ,CAAC,CAC5B,CACA,SAASyC,GAAiB,EAAI,EAAG,CAC/B3b,EAAG,WAAW,KAAK,KAAMkZ,CAAC,CAC5B,CACA,SAAS0C,GAAiB,EAAI,EAAG,CAC/B5b,EAAG,WAAW,KAAK,KAAMkZ,CAAC,CAC5B,CACA,SAAS2C,GAAkB,EAAI,EAAG,CAChC7b,EAAG,YAAY,KAAK,KAAMkZ,CAAC,CAC7B,CACA,SAAS4C,GAAkB,EAAI,EAAG,CAChC9b,EAAG,YAAY,KAAK,KAAMkZ,CAAC,CAC7B,CACA,SAAS6C,GAAkB,EAAI,EAAG,CAChC/b,EAAG,YAAY,KAAK,KAAMkZ,CAAC,CAC7B,CACA,SAAS8C,GAAkB,EAAI,EAAG,CAChChc,EAAG,YAAY,KAAK,KAAMkZ,CAAC,CAC7B,CACA,SAAS+C,GAAgB,EAAI,EAAG,EAAU,CACxC,IAAMlR,EAAQ,KAAK,MACbjP,EAAIod,EAAE,OACNgD,EAAQnD,GAAchB,EAAUjc,CAAC,EAClC+c,GAAY9N,EAAOmR,CAAK,IAC3Blc,EAAG,WAAW,KAAK,KAAMkc,CAAK,EAC9BpD,GAAU/N,EAAOmR,CAAK,GAExB,IAAK,IAAI/c,EAAI,EAAGA,IAAMrD,EAAG,EAAEqD,EACzB4Y,EAAS,aAAamB,EAAE/Z,IAAMub,GAAcwB,EAAM/c,EAAE,CAExD,CACA,SAASgd,GAAiB,EAAI,EAAG,EAAU,CACzC,IAAMpR,EAAQ,KAAK,MACbjP,EAAIod,EAAE,OACNgD,EAAQnD,GAAchB,EAAUjc,CAAC,EAClC+c,GAAY9N,EAAOmR,CAAK,IAC3Blc,EAAG,WAAW,KAAK,KAAMkc,CAAK,EAC9BpD,GAAU/N,EAAOmR,CAAK,GAExB,IAAK,IAAI/c,EAAI,EAAGA,IAAMrD,EAAG,EAAEqD,EACzB4Y,EAAS,aAAamB,EAAE/Z,IAAMyb,GAAgBsB,EAAM/c,EAAE,CAE1D,CACA,SAASid,GAAgB,EAAI,EAAG,EAAU,CACxC,IAAMrR,EAAQ,KAAK,MACbjP,EAAIod,EAAE,OACNgD,EAAQnD,GAAchB,EAAUjc,CAAC,EAClC+c,GAAY9N,EAAOmR,CAAK,IAC3Blc,EAAG,WAAW,KAAK,KAAMkc,CAAK,EAC9BpD,GAAU/N,EAAOmR,CAAK,GAExB,IAAK,IAAI/c,EAAI,EAAGA,IAAMrD,EAAG,EAAEqD,EACzB4Y,EAAS,eAAemB,EAAE/Z,IAAM2b,GAAkBoB,EAAM/c,EAAE,CAE9D,CACA,SAASkd,GAAsB,EAAI,EAAG,EAAU,CAC9C,IAAMtR,EAAQ,KAAK,MACbjP,EAAIod,EAAE,OACNgD,EAAQnD,GAAchB,EAAUjc,CAAC,EAClC+c,GAAY9N,EAAOmR,CAAK,IAC3Blc,EAAG,WAAW,KAAK,KAAMkc,CAAK,EAC9BpD,GAAU/N,EAAOmR,CAAK,GAExB,IAAK,IAAI/c,EAAI,EAAGA,IAAMrD,EAAG,EAAEqD,EACzB4Y,EAAS,kBAAkBmB,EAAE/Z,IAAM6b,GAAmBkB,EAAM/c,EAAE,CAElE,CACA,SAASmd,GAAmB,EAAM,CAChC,OAAQhd,EAAR,CACE,IAAK,MACH,OAAO4b,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,MACL,IAAK,OACH,OAAOC,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,OACL,IAAK,OACH,OAAOC,GAET,IAAK,MACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OACH,OAAOC,GAET,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOC,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOE,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOC,GACT,IAAK,OAEL,IAAK,OAEL,IAAK,OAEL,IAAK,OACH,OAAOC,EACX,CACF,CAmCA,SAASE,GAAW,EAAW,EAAe,CAC5CC,EAAU,IAAI,KAAKC,CAAa,EAChC,EAAU,IAAIA,EAAc,IAAMA,CACpC,CACA,SAASC,GAAa,EAAY,EAAM,EAAW,CACjD,IAAMC,EAAOC,EAAW,KAAMC,EAAaF,EAAK,OAEhD,IADA,GAAW,UAAY,IACV,CACX,IAAMG,EAAQC,GAAW,KAAKJ,CAAI,EAAGK,EAAWD,GAAW,UACvDE,EAAKH,EAAM,GACTI,EAAYJ,EAAM,KAAO,IAAKK,EAAYL,EAAM,GAEtD,GADII,IAAW,GAAU,GACrBC,IAAc,IAAK,IAAKA,IAAc,KAAOH,EAAW,IAAMH,EAAY,CAC5EN,GAAWC,EAAWW,IAAc,IAAK,GAAI,IAAIC,GAAcH,EAAIL,EAAYS,CAAI,EAAI,IAAIC,GAAiBL,EAAIL,EAAYS,CAAI,CAAC,EACjI,KACF,CAAO,CAEL,IAAIE,EADQf,EAAU,IACPS,GACXM,IAAS,IAAK,KAChB,EAAO,IAAIC,GAAkBP,CAAE,EAC/BV,GAAWC,EAAWe,CAAI,GAE5B,EAAYA,CACd,CACF,CACF,CAoCA,SAASE,GAAY,EAAI,EAAM,EAAQ,CACrC,IAAMC,EAAS1d,EAAG,aAAaV,CAAI,EAGnC,OAFAU,EAAG,aAAa0d,EAAQC,CAAM,EAC9B3d,EAAG,cAAc0d,CAAM,EAChBA,CACT,CAGA,SAASE,GAAa,EAAQ,EAAW,CACvC,IAAMC,EAAQF,EAAO,MAAM;CAAI,EACzBG,EAAS,CAAC,EACVC,EAAO,KAAK,IAAIC,EAAY,EAAG,CAAC,EAChCC,EAAK,KAAK,IAAID,EAAY,EAAGH,EAAM,MAAM,EAC/C,IAAK,IAAI1e,EAAI4e,EAAM5e,EAAI8e,EAAI,IAAK,CAC9B,IAAMC,EAAO/e,EAAI,EACjB2e,EAAO,KAAK,GAAGI,IAASF,EAAY,IAAM,IAAI,GAAGE,EAAK,IAAIL,EAAM1e,IAAI,CACtE,CACA,OAAO2e,EAAO,KAAK;CAAI,CACzB,CACA,SAASK,GAAsB,EAAY,CACzC,IAAMC,EAAmBpZ,GAAgB,aAAaA,GAAgB,iBAAiB,EACjFqZ,EAAoBrZ,GAAgB,aAAasZ,CAAU,EAC7DC,EAQJ,OAPIH,IAAqBC,EACvB,EAAe,GACND,IAAqBI,IAAeH,IAAsBI,GACnE,EAAe,8BACNL,IAAqBK,IAAmBJ,IAAsBG,KACvE,EAAe,+BAETF,EAAR,CACE,KAAKI,GACL,KAAKC,GACH,MAAO,CAACJ,EAAc,oBAAoB,EAC5C,KAAKK,GACL,KAAKC,GACH,MAAO,CAACN,EAAc,kBAAkB,EAC1C,QAEE,OADA,QAAQ,KAAK,+CAAgDD,CAAU,EAChE,CAACC,EAAc,oBAAoB,CAC9C,CACF,CACA,SAASO,GAAgB,EAAI,EAAQ,EAAM,CACzC,IAAMC,EAAS/e,EAAG,mBAAmB0d,EAAQ1d,EAAG,cAAc,EACxDgf,EAAShf,EAAG,iBAAiB0d,CAAM,CAAC,CAAC,KAAK,EAChD,GAAIqB,GAAUC,IAAW,GAAI,MAAO,GACpC,IAAMC,EAAe,iBAAiB,KAAKD,CAAM,EACjD,GAAIC,EAAc,CAChB,IAAMjB,EAAY,SAASiB,EAAa,EAAE,EAC1C,OAAO3f,EAAK,YAAY,EAAI;;EAAS0f,EAAS;;EAASpB,GAAa5d,EAAG,gBAAgB0d,CAAM,EAAGM,CAAS,CAC3G,CACE,OAAOgB,CAEX,CACA,SAASE,GAAyB,EAAc,EAAY,CAC1D,IAAMC,EAAahB,GAAsBG,CAAU,EACnD,MAAO,QAAQc,EAAa,0BAA0BD,EAAW,GAAG,IAAIA,EAAW,GAAG,eACxF,CACA,SAASE,GAAuB,EAAc,EAAa,CACzD,IAAIC,EACJ,OAAQC,EAAR,CACE,KAAKC,GACH,EAAkB,SAClB,MACF,KAAKC,GACH,EAAkB,WAClB,MACF,KAAKC,GACH,EAAkB,SAClB,MACF,IAAA,GACE,EAAkB,aAClB,MACF,KAAKC,GACH,EAAkB,MAClB,MACF,KAAKC,GACH,EAAkB,UAClB,MACF,KAAKC,GACH,EAAkB,SAClB,MACF,QACE,QAAQ,KAAK,+CAAgDN,CAAW,EACxE,EAAkB,QACtB,CACA,MAAO,QAAUH,EAAe,2BAA6BE,EAAkB,yBACjF,CAEA,SAASQ,IAAuB,CAK9B,OAJA9a,GAAgB,yBAAyB+a,EAAK,EAIvC,CACL,yCACA,+BALQA,GAAM,EAAE,QAAQ,CAKO,EAAE,IAJzBA,GAAM,EAAE,QAAQ,CAIa,EAAE,IAH/BA,GAAM,EAAE,QAAQ,CAGmB,EAAE,KAC7C,+BACA,GACF,CAAC,CAAC,KAAK;CAAI,CACb,CACA,SAASC,GAAyB,EAAY,CAK5C,MAAO,CAHL7R,EAAW,0BAA4B,mDAAqD,GAC5FA,EAAW,mBAAqB,2CAA6C,EAEnE,CAAC,CAAC,OAAO8R,EAAe,CAAC,CAAC,KAAK;CAAI,CACjD,CACA,SAASC,GAAgB,EAAS,CAChC,IAAMC,EAAS,CAAC,EAChB,IAAK,IAAM1lB,KAAQ2lB,EAAS,CAC1B,IAAMlmB,EAAQkmB,EAAQ3lB,GAClBP,IAAU,IACdimB,EAAO,KAAK,WAAa1lB,EAAO,IAAMP,CAAK,CAC7C,CACA,OAAOimB,EAAO,KAAK;CAAI,CACzB,CACA,SAASE,GAAwB,EAAI,EAAS,CAC5C,IAAMvW,EAAa,CAAC,EACdhO,EAAIkE,EAAG,oBAAoByJ,EAASzJ,EAAG,iBAAiB,EAC9D,IAAK,IAAI,EAAI,EAAG,EAAIlE,EAAG,IAAK,CAC1B,IAAM8Q,EAAO5M,EAAG,gBAAgByJ,EAAS,CAAC,EACpChP,EAAOmS,EAAK,KACd0T,EAAe,EACf1T,EAAK,OAAS5M,EAAG,aAAY,EAAe,GAC5C4M,EAAK,OAAS5M,EAAG,aAAY,EAAe,GAC5C4M,EAAK,OAAS5M,EAAG,aAAY,EAAe,GAChD,EAAWvF,GAAQ,CACjB,KAAMmS,EAAK,KACX,SAAU5M,EAAG,kBAAkByJ,EAAShP,CAAI,EAC5C,cACF,CACF,CACA,OAAOqP,CACT,CACA,SAASmW,GAAgB,EAAQ,CAC/B,OAAOtC,IAAW,EACpB,CACA,SAAS4C,GAAiB,EAAQ,EAAY,CAC5C,IAAMC,EAAqBrS,EAAW,oBAAsBA,EAAW,iBAAmBA,EAAW,4BACrG,OAAOwP,EAAO,QAAQ,kBAAmBxP,EAAW,YAAY,CAAC,CAAC,QAAQ,mBAAoBA,EAAW,aAAa,CAAC,CAAC,QAAQ,uBAAwBA,EAAW,gBAAgB,CAAC,CAAC,QAAQ,yBAA0BqS,CAAkB,CAAC,CAAC,QAAQ,wBAAyBrS,EAAW,iBAAiB,CAAC,CAAC,QAAQ,oBAAqBA,EAAW,cAAc,CAAC,CAAC,QAAQ,mBAAoBA,EAAW,aAAa,CAAC,CAAC,QAAQ,yBAA0BA,EAAW,kBAAkB,CAAC,CAAC,QAAQ,oCAAqCA,EAAW,2BAA2B,CAAC,CAAC,QAAQ,0BAA2BA,EAAW,mBAAmB,CAAC,CAAC,QAAQ,2BAA4BA,EAAW,oBAAoB,CACtrB,CACA,SAASsS,GAAyB,EAAQ,EAAY,CACpD,OAAO9C,EAAO,QAAQ,uBAAwBxP,EAAW,iBAAiB,CAAC,CAAC,QAAQ,yBAA0BA,EAAW,kBAAoBA,EAAW,mBAAmB,CAC7K,CAEA,SAASuS,GAAgB,EAAQ,CAC/B,OAAO/C,EAAO,QAAQgD,GAAgBC,EAAe,CACvD,CAEA,SAASA,GAAgB,EAAO,EAAS,CACvC,IAAIjD,EAASkD,GAAYC,GACzB,GAAInD,IAAW,IAAK,GAAG,CACrB,IAAMoD,EAAaC,GAAe,IAAIF,CAAO,EAC7C,GAAIC,IAAe,IAAK,GACtB,EAASF,GAAYE,GACrB,QAAQ,KAAK,gFAAiFD,EAASC,CAAU,OAEjH,MAAU,MAAM,6BAA+BD,EAAU,GAAG,CAEhE,CACA,OAAOJ,GAAgB/C,CAAM,CAC/B,CAEA,SAASsD,GAAY,EAAQ,CAC3B,OAAOtD,EAAO,QAAQuD,GAAmBC,EAAY,CACvD,CACA,SAASA,GAAa,EAAO,EAAO,EAAK,EAAS,CAChD,IAAIxD,EAAS,GACb,IAAK,IAAIxe,EAAI,SAASuN,CAAK,EAAGvN,EAAI,SAASiiB,CAAG,EAAG,IAC/C,GAAUC,EAAQ,QAAQ,eAAgB,KAAOliB,EAAI,IAAI,CAAC,CAAC,QAAQ,uBAAwBA,CAAC,EAE9F,OAAOwe,CACT,CACA,SAAS2D,GAAkB,EAAY,CACrC,IAAIC,EAAkB,aAAapT,EAAW,UAAU;aAC7CA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;aACrBA,EAAW,UAAU;GAShC,OAPIA,EAAW,YAAc,QAC3B,GAAmB;wBACVA,EAAW,YAAc,UAClC,GAAmB;0BACVA,EAAW,YAAc,SAClC,GAAmB;wBAEdoT,CACT,CACA,SAASC,GAA4B,EAAY,CAC/C,IAAIC,EAAsB,uBAQ1B,OAPItT,EAAW,gBAAA,EACb,EAAsB,qBACbA,EAAW,gBAAA,EACpB,EAAsB,0BACbA,EAAW,gBAAA,IACpB,EAAsB,sBAEjBsT,CACT,CACA,SAASC,GAAyB,EAAY,CAC5C,IAAIC,EAAmB,mBACvB,GAAIxT,EAAW,OACb,OAAQA,EAAW,WAAnB,CACE,KAAKgD,GACL,KAAKE,GACH,EAAmB,mBACnB,MACF,KAAKrJ,GACH,EAAmB,qBAEvB,CAEF,OAAO2Z,CACT,CACA,SAASC,GAAyB,EAAY,CAC5C,IAAIC,EAAmB,yBACvB,GAAI1T,EAAW,OACb,OAAQA,EAAW,WAAnB,CACE,KAAKkD,GACH,EAAmB,wBAEvB,CAEF,OAAOwQ,CACT,CACA,SAASC,GAA6B,EAAY,CAChD,IAAIC,EAAuB,uBAC3B,GAAI5T,EAAW,OACb,OAAQA,EAAW,QAAnB,CACE,KAAK6T,GACH,EAAuB,2BACvB,MACF,KAAKC,GACH,EAAuB,sBACvB,MACF,KAAKC,GACH,EAAuB,qBAE3B,CAEF,OAAOH,CACT,CACA,SAASI,GAAmB,EAAY,CACtC,IAAMC,EAAcjU,EAAW,mBAC/B,GAAIiU,IAAgB,KAAM,OAAO,KACjC,IAAMC,EAAS,KAAK,KAAKD,CAAW,EAAI,EAClCE,EAAc,EAAIF,EAExB,MAAO,CAAE,WADU,GAAK,EAAI,KAAK,IAAa,GAAGC,EAAS,GAAM,GAC3C,cAAa,QAAO,CAC3C,CACA,SAASE,GAAa,EAAU,EAAU,EAAY,EAAe,CACnE,IAAMviB,EAAK+E,EAAS,WAAW,EACzBqb,EAAUjS,EAAW,QACvBqU,EAAerU,EAAW,aAC1BsU,EAAiBtU,EAAW,eAC1BsT,EAAsBD,GAA4BrT,CAAU,EAC5DwT,EAAmBD,GAAyBvT,CAAU,EACtD0T,EAAmBD,GAAyBzT,CAAU,EACtD4T,EAAuBD,GAA6B3T,CAAU,EAC9DuU,EAAmBP,GAAmBhU,CAAU,EAChDwU,EAAyB3C,GAAyB7R,CAAU,EAC5DyU,EAAgB1C,GAAgBE,CAAO,EACvC3W,EAAUzJ,EAAG,cAAc,EAC7B6iB,EAAcC,EACdC,EAAgB5U,EAAW,YAAc,YAAcA,EAAW,YAAc;EAAO,GACvFA,EAAW,qBACb,EAAe,CACb,uBAAyBA,EAAW,WACpC,uBAAyBA,EAAW,WACpCyU,CACF,CAAC,CAAC,OAAO3C,EAAe,CAAC,CAAC,KAAK;CAAI,EAC/B4C,EAAa,OAAS,IACxB,GAAgB;GAElB,EAAiB,CACf,uBAAyB1U,EAAW,WACpC,uBAAyBA,EAAW,WACpCyU,CACF,CAAC,CAAC,OAAO3C,EAAe,CAAC,CAAC,KAAK;CAAI,EAC/B6C,EAAe,OAAS,IAC1B,GAAkB;KAGpB,EAAe,CACbxB,GAAkBnT,CAAU,EAC5B,uBAAyBA,EAAW,WACpC,uBAAyBA,EAAW,WACpCyU,EACAzU,EAAW,0BAA4B,4BAA8B,GACrEA,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,cAAgB,6BAA+B,GAC1DA,EAAW,WAAa,yBAA2B,GACnDA,EAAW,gBAAkB,+BAAiC,GAC9DA,EAAW,gBAAkB,+BAAiC,GAC9DA,EAAW,QAAUA,EAAW,IAAM,kBAAoB,GAC1DA,EAAW,QAAUA,EAAW,QAAU,mBAAqB,GAC/DA,EAAW,IAAM,kBAAoB,GACrCA,EAAW,OAAS,qBAAuB,GAC3CA,EAAW,OAAS,WAAa0T,EAAmB,GACpD1T,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,MAAQ,oBAAsB,GACzCA,EAAW,QAAU,sBAAwB,GAC7CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,qBAAuB,oCAAsC,GACxEA,EAAW,sBAAwB,qCAAuC,GAC1EA,EAAW,gBAAkB,8BAAgC,GAC7DA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,WAAa,yBAA2B,GACnDA,EAAW,cAAgB,4BAA8B,GACzDA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,sBAAwB,qCAAuC,GAC1EA,EAAW,mBAAqB,kCAAoC,GACpEA,EAAW,eAAiB,6BAA+B,GAC3DA,EAAW,wBAA0B,uCAAyC,GAC9EA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,iBAAmB,gCAAkC,GAChEA,EAAW,qBAAuB,oCAAsC,GACxEA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,gBAAkB,8BAAgC,GAC7DA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,cAAgB,6BAA+B,GAC1DA,EAAW,kBAAoB,iCAAmC,GAElEA,EAAW,MAAQ,kBAAoBA,EAAW,MAAQ,GAC1DA,EAAW,WAAa,uBAAyBA,EAAW,WAAa,GACzEA,EAAW,WAAa,uBAAyBA,EAAW,WAAa,GACzEA,EAAW,QAAU,oBAAsBA,EAAW,QAAU,GAChEA,EAAW,cAAgB,0BAA4BA,EAAW,cAAgB,GAClFA,EAAW,UAAY,sBAAwBA,EAAW,UAAY,GACtEA,EAAW,YAAc,wBAA0BA,EAAW,YAAc,GAC5EA,EAAW,kBAAoB,8BAAgCA,EAAW,kBAAoB,GAC9FA,EAAW,eAAiB,2BAA6BA,EAAW,eAAiB,GACrFA,EAAW,eAAiB,2BAA6BA,EAAW,eAAiB,GACrFA,EAAW,gBAAkB,4BAA8BA,EAAW,gBAAkB,GACxFA,EAAW,eAAiB,2BAA6BA,EAAW,eAAiB,GACrFA,EAAW,qBAAuB,kCAAoCA,EAAW,qBAAuB,GACxGA,EAAW,wBAA0B,qCAAuCA,EAAW,wBAA0B,GACjHA,EAAW,iBAAmB,6BAA+BA,EAAW,iBAAmB,GAC3FA,EAAW,0BAA4B,uCAAyCA,EAAW,0BAA4B,GACvHA,EAAW,gBAAkB,6BAA+BA,EAAW,gBAAkB,GACzFA,EAAW,oBAAsB,iCAAmCA,EAAW,oBAAsB,GACrGA,EAAW,cAAgB,0BAA4BA,EAAW,cAAgB,GAClFA,EAAW,mBAAqB,gCAAkCA,EAAW,mBAAqB,GAClGA,EAAW,uBAAyB,oCAAsCA,EAAW,uBAAyB,GAC9GA,EAAW,kBAAoB,8BAAgCA,EAAW,kBAAoB,GAC9FA,EAAW,eAAiB,2BAA6BA,EAAW,eAAiB,GAErFA,EAAW,gBAAkBA,EAAW,cAAgB,GAAQ,sBAAwB,GACxFA,EAAW,aAAe,oBAAsB,GAChDA,EAAW,aAAe,0BAA4B,GACtDA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,YAAc,sBAAwB,GACjDA,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,cAAgBA,EAAW,cAAgB,GAAQ,2BAA6B,GAC3FA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,kBAAoB,EAAI,uCAAyCA,EAAW,mBAAqB,GAC5GA,EAAW,kBAAoB,EAAI,8BAAgCA,EAAW,kBAAoB,GAClGA,EAAW,YAAc,uBAAyB,GAClDA,EAAW,UAAY,qBAAuB,GAC9CA,EAAW,iBAAmB,wBAA0B,GACxDA,EAAW,iBAAmB,WAAasT,EAAsB,GACjEtT,EAAW,gBAAkB,8BAAgC,GAC7DA,EAAW,eAAiB,EAAI,2BAA6B,GAC7DA,EAAW,uBAAyB,0BAA4B,GAChEA,EAAW,mBAAqB,8BAAgC,GAChE,4BACA,gCACA,iCACA,2BACA,6BACA,+BACA,+BACA,wBACA,kCACA,SACA,8BACA,iCACA,SACA,8BACA,mCACA,SACA,2BACA,yBACA,qBACA,iBACA,uBACA,SACA,iBACA,uBACA,SACA,iBACA,uBACA,SACA,qBACA,2BACA,SACA,iCACA,yBACA,6BACA,yBACA,SACA,sBACA,6BACA,8BACA,SACA;CACF,CAAC,CAAC,OAAO8R,EAAe,CAAC,CAAC,KAAK;CAAI,EACnC,EAAiB,CACfqB,GAAkBnT,CAAU,EAC5B,uBAAyBA,EAAW,WACpC,uBAAyBA,EAAW,WACpCyU,EACAzU,EAAW,QAAUA,EAAW,IAAM,kBAAoB,GAC1DA,EAAW,QAAUA,EAAW,QAAU,mBAAqB,GAC/DA,EAAW,gBAAkB,4BAA8B,GAC3DA,EAAW,IAAM,kBAAoB,GACrCA,EAAW,OAAS,qBAAuB,GAC3CA,EAAW,OAAS,qBAAuB,GAC3CA,EAAW,OAAS,WAAawT,EAAmB,GACpDxT,EAAW,OAAS,WAAa0T,EAAmB,GACpD1T,EAAW,OAAS,WAAa4T,EAAuB,GACxDW,EAAmB,8BAAgCA,EAAiB,WAAa,GACjFA,EAAmB,+BAAiCA,EAAiB,YAAc,GACnFA,EAAmB,0BAA4BA,EAAiB,OAAS,KAAO,GAChFvU,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,MAAQ,oBAAsB,GACzCA,EAAW,QAAU,sBAAwB,GAC7CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,qBAAuB,oCAAsC,GACxEA,EAAW,sBAAwB,qCAAuC,GAC1EA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,WAAa,yBAA2B,GACnDA,EAAW,cAAgB,4BAA8B,GACzDA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,sBAAwB,qCAAuC,GAC1EA,EAAW,mBAAqB,kCAAoC,GACpEA,EAAW,WAAa,yBAA2B,GACnDA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,eAAiB,6BAA+B,GAC3DA,EAAW,wBAA0B,uCAAyC,GAC9EA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,iBAAmB,gCAAkC,GAChEA,EAAW,qBAAuB,oCAAsC,GACxEA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,SAAW,uBAAyB,GAC/CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,MAAQ,oBAAsB,GACzCA,EAAW,cAAgB,6BAA+B,GAC1DA,EAAW,kBAAoB,iCAAmC,GAClEA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,gBAAkB,8BAAgC,GAC7DA,EAAW,aAAe,2BAA6B,GACvDA,EAAW,gBAAkBA,EAAW,cAAgB,GAAQ,sBAAwB,GACxFA,EAAW,cAAgBA,EAAW,iBAAmBA,EAAW,cAAgB,oBAAsB,GAC1GA,EAAW,aAAe,0BAA4B,GACtDA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,WAAa,kBAAoB,GAC5CA,EAAW,UAAY,wBAA0B,GACjDA,EAAW,YAAc,0BAA4B,GACrDA,EAAW,YAAc,sBAAwB,GACjDA,EAAW,YAAc,uBAAyB,GAClDA,EAAW,UAAY,qBAAuB,GAC9CA,EAAW,iBAAmB,wBAA0B,GACxDA,EAAW,iBAAmB,WAAasT,EAAsB,GACjEtT,EAAW,mBAAqB,8BAAgC,GAChEA,EAAW,eAAiB,EAAI,2BAA6B,GAC7DA,EAAW,mBAAqB,+BAAiC,GACjEA,EAAW,uBAAyB,0BAA4B,GAChEA,EAAW,mBAAqB,8BAAgC,GAChE,2BACA,+BACA,+BACAA,EAAW,cAAA,EAAyD,GAAzB,uBAC3CA,EAAW,cAAA,EAA2E,GAA3C0S,GAAYmC,0BAEvD7U,EAAW,cAAA,EAAgG,GAAhEkR,GAAuB,cAAelR,EAAW,WAAW,EACvGA,EAAW,UAAY,oBAAsB,GAC7CA,EAAW,OAAS,iBAAmB,GACvC0S,GAAYoC,yBAEZ/D,GAAyB,sBAAuB/Q,EAAW,gBAAgB,EAC3E2R,GAAqB,EACrB3R,EAAW,gBAAkB,yBAA2BA,EAAW,aAAe,GAClF;CACF,CAAC,CAAC,OAAO8R,EAAe,CAAC,CAAC,KAAK;CAAI,GAErC,EAAeS,GAAgB8B,CAAY,EAC3C,EAAejC,GAAiBiC,EAAcrU,CAAU,EACxD,EAAesS,GAAyB+B,EAAcrU,CAAU,EAChE,EAAiBuS,GAAgB+B,CAAc,EAC/C,EAAiBlC,GAAiBkC,EAAgBtU,CAAU,EAC5D,EAAiBsS,GAAyBgC,EAAgBtU,CAAU,EACpE,EAAe8S,GAAYuB,CAAY,EACvC,EAAiBvB,GAAYwB,CAAc,EACvCtU,EAAW,sBAAwB,KACrC,EAAgB;EAChB,EAAe,CACbwU,EACA,uBACA,sBACA,2BACF,CAAC,CAAC,KAAK;CAAI,EAAI;EAAOE,EACtB,EAAiB,CACf,qBACA1U,EAAW,cAAgB+U,GAAQ,GAAK,oDACxC/U,EAAW,cAAgB+U,GAAQ,GAAK,oCACxC,uCACA,4BACA,8BACA,oCACA,qCACA,6CACA,uCACA,uCACA,+CACA,wCACF,CAAC,CAAC,KAAK;CAAI,EAAI;EAAOJ,GAExB,IAAMK,EAAaJ,EAAgBF,EAAeL,EAC5CY,EAAeL,EAAgBD,EAAiBL,EAChDY,EAAiB5F,GAAYzd,EAAIA,EAAG,cAAemjB,CAAU,EAC7DG,EAAmB7F,GAAYzd,EAAIA,EAAG,gBAAiBojB,CAAY,EACzEpjB,EAAG,aAAayJ,EAAS4Z,CAAc,EACvCrjB,EAAG,aAAayJ,EAAS6Z,CAAgB,EACrCnV,EAAW,sBAAwB,IAAK,GAEjCA,EAAW,eAAiB,IACrCnO,EAAG,mBAAmByJ,EAAS,EAAG,UAAU,EAF5CzJ,EAAG,mBAAmByJ,EAAS,EAAG0E,EAAW,mBAAmB,EAIlEnO,EAAG,YAAYyJ,CAAO,EACtB,SAAS8Z,EAAW,EAAO,CACzB,GAAIxe,EAAS,MAAM,kBAAmB,CACpC,IAAMye,EAAaxjB,EAAG,kBAAkByJ,CAAO,CAAC,CAAC,KAAK,EAChDga,EAAYzjB,EAAG,iBAAiBqjB,CAAc,CAAC,CAAC,KAAK,EACrDK,EAAc1jB,EAAG,iBAAiBsjB,CAAgB,CAAC,CAAC,KAAK,EAC3DK,EAAW,GACXC,EAAkB,GACtB,GAAI5jB,EAAG,oBAAoByJ,EAASzJ,EAAG,WAAW,IAAM,GAAO,CAE7D,GADA,EAAW,GACP,OAAO+E,EAAS,MAAM,eAAkB,WAC1CA,EAAS,MAAM,cAAc/E,EAAIyJ,EAAS4Z,EAAgBC,CAAgB,MACrE,CACL,IAAMO,EAAe/E,GAAgB9e,EAAIqjB,EAAgB,QAAQ,EAC3DS,EAAiBhF,GAAgB9e,EAAIsjB,EAAkB,UAAU,EACvE,QAAQ,MACN,oCAAsCtjB,EAAG,SAAS,EAAI,sBAAwBA,EAAG,oBAAoByJ,EAASzJ,EAAG,eAAe,EAAI;;iBAAwB+jB,EAAM,KAAO;iBAAsBA,EAAM,KAAO;;oBAA2BP,EAAa;EAAOK,EAAe;EAAOC,CACnR,CACF,CACF,MAAWN,IAAe,IAEfC,IAAc,IAAMC,IAAgB,MAC7C,EAAkB,IAFlB,QAAQ,KAAK,wCAAyCF,CAAU,EAI9DI,IACF,EAAM,YAAc,CAClB,WACA,aACA,aAAc,CACZ,IAAKH,EACL,OAAQZ,CACV,EACA,eAAgB,CACd,IAAKa,EACL,OAAQZ,CACV,CACF,EAEJ,CACA9iB,EAAG,aAAaqjB,CAAc,EAC9BrjB,EAAG,aAAasjB,CAAgB,EAChC,EAAiB,IAAIU,GAAchkB,EAAIyJ,CAAO,EAC9C,EAAmB4W,GAAwBrgB,EAAIyJ,CAAO,CACxD,CACA,IAAIwa,EACJ,KAAK,YAAc,UAAW,CAI5B,OAHIA,IAAmB,IAAK,IAC1BV,EAAW,IAAI,EAEVU,CACT,EACA,IAAIxZ,EACJ,KAAK,cAAgB,UAAW,CAI9B,OAHIA,IAAqB,IAAK,IAC5B8Y,EAAW,IAAI,EAEV9Y,CACT,EACA,IAAIyZ,EAAe/V,EAAW,yCAA2C,GAoBzE,MAnBA,MAAK,QAAU,UAAW,CAIxB,OAHI+V,IAAiB,KACnB,EAAelkB,EAAG,oBAAoByJ,EAAS0a,EAAqB,GAE/DD,CACT,EACA,KAAK,QAAU,UAAW,CACxBlb,EAAc,uBAAuB,IAAI,EACzChJ,EAAG,cAAcyJ,CAAO,EACxB,KAAK,QAAU,IAAK,EACtB,EACA,KAAK,KAAO0E,EAAW,WACvB,KAAK,KAAOA,EAAW,WACvB,KAAK,GAAK,KACV,KAAK,SAAWiW,EAChB,KAAK,UAAY,EACjB,KAAK,QAAU3a,EACf,KAAK,aAAe4Z,EACpB,KAAK,eAAiBC,EACf,IACT,CAoEA,SAASe,GAAc,EAAU,EAAU,EAAY,EAAY,EAAc,EAAe,EAAU,CACxG,IAAMC,EAAiB,IAAIC,GACrBC,EAAiB,IAAIC,GACrBC,kBAAkC,IAAI,IACtCC,EAAW,CAAC,EACZtW,EAAyBmJ,EAAa,uBACtClJ,EAAqBkJ,EAAa,mBAClCoN,EAA2BpN,EAAa,eAC1CtJ,EAAYsJ,EAAa,UACvBqN,EAAY,CAChB,kBAAmB,QACnB,qBAAsB,eACtB,mBAAoB,SACpB,kBAAmB,QACnB,oBAAqB,UACrB,kBAAmB,QACnB,iBAAkB,OAClB,qBAAsB,WACtB,qBAAsB,WACtB,mBAAoB,SACpB,kBAAmB,QACnB,mBAAoB,SACpB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,QAClB,EACA,SAASC,EAAW,EAAO,CAGzB,OAFAJ,EAAgB,IAAIxqB,CAAK,EACrBA,IAAU,EAAU,KACjB,KAAKA,GACd,CACA,SAAS6qB,EAAc,EAAU,EAAQ,EAAS,EAAO,EAAQ,CAC/D,IAAMC,EAAM1d,EAAM,IACZkC,EAAWtG,EAAO,SAClB+hB,EAAcxiB,EAAS,uBAAyB6E,EAAM,YAAc,KACpE4d,GAAUziB,EAAS,uBAAyB8E,EAAaC,EAAA,CAAU,IAAI/E,EAAS,QAAUwiB,CAAW,EACrGE,EAAuBD,GAAUA,EAAO,UAAYld,GAA0Bkd,EAAO,MAAM,OAAS,KACpGE,EAAWP,EAAUpiB,EAAS,MAChCA,EAAS,YAAc,OACzB,EAAY+U,EAAa,gBAAgB/U,EAAS,SAAS,EACvDyL,IAAczL,EAAS,WACzB,QAAQ,KAAK,oCAAqCA,EAAS,UAAW,uBAAwByL,EAAW,UAAU,GAGvH,IAAM2I,EAAiBrN,EAAS,gBAAgB,UAAYA,EAAS,gBAAgB,QAAUA,EAAS,gBAAgB,MAClHsN,EAAoBD,IAAmB,IAAK,GAA4B,EAAxBA,EAAe,OACjEwO,EAAqB,EACrB7b,EAAS,gBAAgB,WAAa,IAAK,KAAG,EAAqB,GACnEA,EAAS,gBAAgB,SAAW,IAAK,KAAG,EAAqB,GACjEA,EAAS,gBAAgB,QAAU,IAAK,KAAG,EAAqB,GACpE,IAAIgZ,EAAcC,EACd6C,EAAsBC,EAC1B,GAAIH,EAAU,CACZ,IAAM1H,EAAStV,GAAUgd,GACzB,EAAe1H,EAAO,aACtB,EAAiBA,EAAO,cAC1B,KACE,GAAejb,EAAS,aACxB,EAAiBA,EAAS,eAC1B+hB,EAAe,OAAO/hB,CAAQ,EAC9B,EAAuB+hB,EAAe,kBAAkB/hB,CAAQ,EAChE,EAAyB+hB,EAAe,oBAAoB/hB,CAAQ,EAEtE,IAAMqC,EAAsBC,EAAS,gBAAgB,EAC/CygB,EAAmBtiB,EAAO,kBAAoB,GAC9CuiB,GAAiBviB,EAAO,gBAAkB,GAC1CwiB,GAAU,CAAC,CAACjjB,EAAS,IACrBkjB,GAAa,CAAC,CAACljB,EAAS,OACxBmjB,EAAa,CAAC,CAACV,EACfW,GAAY,CAAC,CAACpjB,EAAS,MACvBqjB,GAAe,CAAC,CAACrjB,EAAS,SAC1BsjB,GAAc,CAAC,CAACtjB,EAAS,QACzBujB,GAAgB,CAAC,CAACvjB,EAAS,UAC3BwjB,GAAsB,CAAC,CAACxjB,EAAS,gBACjCyjB,EAAkB,CAAC,CAACzjB,EAAS,YAC7B0jB,GAAmB,CAAC,CAAC1jB,EAAS,aAC9B2jB,GAAmB,CAAC,CAAC3jB,EAAS,aAC9B4jB,GAAiB5jB,EAAS,WAAa,EACvC6jB,GAAgB7jB,EAAS,UAAY,EACrC8jB,EAAiB9jB,EAAS,WAAa,EACvC+jB,GAAkB/jB,EAAS,YAAc,EACzCgkB,EAAYhkB,EAAS,MAAQ,EAC7BikB,EAAmBjkB,EAAS,aAAe,EAC3CkkB,EAAoBN,IAAkB,CAAC,CAAC5jB,EAAS,cACjDmkB,GAAmBN,IAAiB,CAAC,CAAC7jB,EAAS,aAC/CokB,EAA0BP,IAAiB,CAAC,CAAC7jB,EAAS,mBACtDqkB,GAA6BR,IAAiB,CAAC,CAAC7jB,EAAS,sBACzDskB,GAAqBP,IAAmB,CAAC,CAAC/jB,EAAS,eACnDukB,GAA+BR,IAAmB,CAAC,CAAC/jB,EAAS,wBAC7DwkB,GAAqBR,GAAa,CAAC,CAAChkB,EAAS,cAC7CykB,GAAyBT,GAAa,CAAC,CAAChkB,EAAS,kBACjD0kB,GAAkB,CAAC,CAAC1kB,EAAS,YAC7B2kB,GAAwB,CAAC,CAAC3kB,EAAS,iBACnC4kB,GAA4B,CAAC,CAAC5kB,EAAS,qBACvC6kB,GAAsBZ,GAAoB,CAAC,CAACjkB,EAAS,gBACrD8kB,EAAmBb,GAAoB,CAAC,CAACjkB,EAAS,aAClD+kB,GAAkB,CAAC,CAAC/kB,EAAS,YAC7BglB,EAAe,CAAC,CAAChlB,EAAS,SAC1BilB,EAAgBjlB,EAAS,UAAY,EACrCklB,GAAgB,CAAC,CAACllB,EAAS,UAC3BmlB,GAAiB,CAAC,CAACnlB,EAAS,WAC9B8c,GAAA,EACA9c,EAAS,aACPqC,IAAwB,MAAQA,EAAoB,mBAAqB,MAC3E,GAAcC,EAAS,aAG3B,IAAMoJ,GAAa,CACjB,WACA,WAAY1L,EAAS,KACrB,WAAYA,EAAS,KACrB,eACA,iBACA,QAASA,EAAS,QAClB,uBACA,yBACA,oBAAqBA,EAAS,sBAAwB,GACtD,YAAaA,EAAS,YACtB,YACA,SAAUgjB,GACV,cAAeA,IAAkBviB,EAAO,iBAAmB,KAC3D,WAAYsiB,EACZ,gBAAiBA,GAAoBtiB,EAAO,gBAAkB,KAC9D,gBAAiBsiB,GAAoBtiB,EAAO,eAAiB,KAC7D,uBAAwB0hB,EACxB,iBAAkB9f,IAAwB,KAAOC,EAAS,iBAAmBD,EAAoB,mBAAqB,GAAOA,EAAoB,QAAQ,WAAa4Z,GACtK,gBAAiB,CAAC,CAACjc,EAAS,gBAC5B,IAAKijB,GACL,OAAQC,GACR,OAAQC,EACR,WAAYA,GAAcV,EAAO,QACjC,qBACA,MAAOW,GACP,SAAUC,GACV,QAASC,GACT,UAAWC,GACX,gBAAiBpB,GAA4BqB,GAC7C,YAAaC,EACb,qBAAsBF,IAAiBvjB,EAAS,gBAAkBolB,GAClE,sBAAuB7B,IAAiBvjB,EAAS,gBAAkBqlB,GACnE,aAAc3B,GACd,aAAcC,GACd,WAAYC,GACZ,cAAeM,EACf,UAAWL,GACX,aAAcM,GACd,mBAAoBC,EACpB,sBAAuBC,GACvB,WAAYP,EACZ,YAAaC,GACb,eAAgBO,GAChB,wBAAyBC,GACzB,MAAOP,EACP,cAAeQ,GACf,kBAAmBC,GACnB,YAAaC,GACb,iBAAkBC,GAClB,qBAAsBC,GACtB,aAAcX,EACd,gBAAiBY,GACjB,aAAcC,EACd,YAAaC,GACb,OAAQ/kB,EAAS,cAAgB,IAASA,EAAS,WAAaslB,IAAkBtlB,EAAS,kBAAoB,GAC/G,SAAUglB,EACV,UAAWC,EACX,UAAWC,GACX,QAASllB,EAAS,QAElB,MAAOijB,IAAWZ,EAAWriB,EAAS,IAAI,OAAO,EACjD,QAASojB,IAAaf,EAAWriB,EAAS,MAAM,OAAO,EACvD,WAAYqjB,IAAgBhB,EAAWriB,EAAS,SAAS,OAAO,EAChE,UAAWsjB,IAAejB,EAAWriB,EAAS,QAAQ,OAAO,EAC7D,YAAaujB,IAAiBlB,EAAWriB,EAAS,UAAU,OAAO,EACnE,kBAAmBwjB,IAAuBnB,EAAWriB,EAAS,gBAAgB,OAAO,EACrF,cAAeyjB,GAAmBpB,EAAWriB,EAAS,YAAY,OAAO,EACzE,eAAgB0jB,IAAoBrB,EAAWriB,EAAS,aAAa,OAAO,EAC5E,eAAgB2jB,IAAoBtB,EAAWriB,EAAS,aAAa,OAAO,EAC5E,gBAAiBkkB,GAAqB7B,EAAWriB,EAAS,cAAc,OAAO,EAC/E,eAAgBmkB,IAAoB9B,EAAWriB,EAAS,aAAa,OAAO,EAC5E,qBAAsBokB,GAA2B/B,EAAWriB,EAAS,mBAAmB,OAAO,EAC/F,wBAAyBqkB,IAA8BhC,EAAWriB,EAAS,sBAAsB,OAAO,EACxG,iBAAkBskB,IAAsBjC,EAAWriB,EAAS,eAAe,OAAO,EAClF,0BAA2BukB,IAAgClC,EAAWriB,EAAS,wBAAwB,OAAO,EAC9G,gBAAiBwkB,IAAsBnC,EAAWriB,EAAS,cAAc,OAAO,EAChF,oBAAqBykB,IAA0BpC,EAAWriB,EAAS,kBAAkB,OAAO,EAC5F,cAAe0kB,IAAmBrC,EAAWriB,EAAS,YAAY,OAAO,EACzE,mBAAoB2kB,IAAyBtC,EAAWriB,EAAS,iBAAiB,OAAO,EACzF,uBAAwB4kB,IAA6BvC,EAAWriB,EAAS,qBAAqB,OAAO,EACrG,kBAAmB6kB,IAAuBxC,EAAWriB,EAAS,gBAAgB,OAAO,EACrF,eAAgB8kB,GAAoBzC,EAAWriB,EAAS,aAAa,OAAO,EAC5E,WAAYglB,GAAgB3C,EAAWriB,EAAS,SAAS,OAAO,EAEhE,eAAgB,CAAC,CAAC+G,EAAS,WAAW,UAAYwc,IAAiBK,IACnE,aAAc5jB,EAAS,aACvB,aAAcA,EAAS,eAAiB,IAAQ,CAAC,CAAC+G,EAAS,WAAW,OAASA,EAAS,WAAW,MAAM,WAAa,EACtH,UAAWtG,EAAO,WAAa,IAAQ,CAAC,CAACsG,EAAS,WAAW,KAAOkc,IAAW+B,GAC/E,IAAK,CAAC,CAACzC,EACP,OAAQviB,EAAS,MAAQ,GACzB,QAAS,CAAC,CAACuiB,GAAOA,EAAI,UACtB,YAAaviB,EAAS,cAAgB,GACtC,gBAAiBA,EAAS,kBAAoB,GAC9C,yBACA,qBACA,SAAUS,EAAO,gBAAkB,GACnC,aAAcsG,EAAS,gBAAgB,WAAa,IAAK,GACzD,aAAcA,EAAS,gBAAgB,SAAW,IAAK,GACvD,YAAaA,EAAS,gBAAgB,QAAU,IAAK,GACrD,oBACA,qBACA,aAAcwe,EAAO,YAAY,OACjC,eAAgBA,EAAO,MAAM,OAC7B,cAAeA,EAAO,KAAK,OAC3B,iBAAkBA,EAAO,aAAa,OACtC,kBAAmBA,EAAO,SAAS,OACnC,cAAeA,EAAO,KAAK,OAC3B,mBAAoBA,EAAO,qBAAqB,OAChD,qBAAsBA,EAAO,eAAe,OAC5C,oBAAqBA,EAAO,cAAc,OAC1C,4BAA6BA,EAAO,4BACpC,eAAgBA,EAAO,eACvB,kBAAmBC,EAAS,UAC5B,oBAAqBA,EAAS,gBAC9B,UAAWxlB,EAAS,UACpB,iBAAkBsC,EAAS,UAAU,SAAWmjB,EAAQ,OAAS,EACjE,cAAenjB,EAAS,UAAU,KAClC,eACA,mBAAoB2gB,IAAWjjB,EAAS,IAAI,iBAAmB,IAAQuC,GAAgB,YAAYvC,EAAS,IAAI,UAAU,IAAMgG,GAChI,mBAAoBhG,EAAS,mBAC7B,YAAaA,EAAS,OAAA,EACtB,UAAWA,EAAS,OAASC,GAC7B,gBAAiBD,EAAS,cAAgB,EAC1C,aAAcA,EAAS,cAAgB,EACvC,oBAAqBA,EAAS,oBAC9B,0BAA2BmlB,IAAkBnlB,EAAS,WAAW,mBAAqB,IAAQwK,EAAW,IAAI,0BAA0B,EACvI,oBAAqB2a,IAAkBnlB,EAAS,WAAW,YAAc,IAAQgjB,KAAmBxY,EAAW,IAAI,kBAAkB,EACrI,uCAAwCA,EAAW,IAAI,6BAA6B,EACpF,sBAAuBxK,EAAS,sBAAsB,CACxD,EAKA,MAJA,IAAW,WAAaiiB,EAAgB,IAAI,CAAC,EAC7C,GAAW,WAAaA,EAAgB,IAAI,CAAC,EAC7C,GAAW,WAAaA,EAAgB,IAAI,CAAC,EAC7CA,EAAgB,MAAM,EACfvW,EACT,CACA,SAASga,EAAmB,EAAY,CACtC,IAAMnpB,EAAQ,CAAC,EAOf,GANImP,EAAW,SACbnP,EAAM,KAAKmP,EAAW,QAAQ,GAE9BnP,EAAM,KAAKmP,EAAW,oBAAoB,EAC1CnP,EAAM,KAAKmP,EAAW,sBAAsB,GAE1CA,EAAW,UAAY,IAAK,GAC9B,IAAK,IAAM1T,KAAQ0T,EAAW,QAC5BnP,EAAM,KAAKvE,CAAI,EACfuE,EAAM,KAAKmP,EAAW,QAAQ1T,EAAK,EASvC,OANI0T,EAAW,sBAAwB,KACrCia,EAA6BppB,EAAOmP,CAAU,EAC9Cka,EAA2BrpB,EAAOmP,CAAU,EAC5CnP,EAAM,KAAK+F,EAAS,gBAAgB,GAEtC/F,EAAM,KAAKmP,EAAW,qBAAqB,EACpCnP,EAAM,KAAK,CACpB,CACA,SAASopB,EAA6B,EAAO,EAAY,CACvDppB,EAAM,KAAKmP,EAAW,SAAS,EAC/BnP,EAAM,KAAKmP,EAAW,gBAAgB,EACtCnP,EAAM,KAAKmP,EAAW,UAAU,EAChCnP,EAAM,KAAKmP,EAAW,kBAAkB,EACxCnP,EAAM,KAAKmP,EAAW,KAAK,EAC3BnP,EAAM,KAAKmP,EAAW,UAAU,EAChCnP,EAAM,KAAKmP,EAAW,UAAU,EAChCnP,EAAM,KAAKmP,EAAW,OAAO,EAC7BnP,EAAM,KAAKmP,EAAW,SAAS,EAC/BnP,EAAM,KAAKmP,EAAW,WAAW,EACjCnP,EAAM,KAAKmP,EAAW,iBAAiB,EACvCnP,EAAM,KAAKmP,EAAW,aAAa,EACnCnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,eAAe,EACrCnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,oBAAoB,EAC1CnP,EAAM,KAAKmP,EAAW,uBAAuB,EAC7CnP,EAAM,KAAKmP,EAAW,gBAAgB,EACtCnP,EAAM,KAAKmP,EAAW,yBAAyB,EAC/CnP,EAAM,KAAKmP,EAAW,eAAe,EACrCnP,EAAM,KAAKmP,EAAW,mBAAmB,EACzCnP,EAAM,KAAKmP,EAAW,aAAa,EACnCnP,EAAM,KAAKmP,EAAW,kBAAkB,EACxCnP,EAAM,KAAKmP,EAAW,sBAAsB,EAC5CnP,EAAM,KAAKmP,EAAW,iBAAiB,EACvCnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,OAAO,EAC7BnP,EAAM,KAAKmP,EAAW,OAAO,EAC7BnP,EAAM,KAAKmP,EAAW,eAAe,EACrCnP,EAAM,KAAKmP,EAAW,iBAAiB,EACvCnP,EAAM,KAAKmP,EAAW,mBAAmB,EACzCnP,EAAM,KAAKmP,EAAW,YAAY,EAClCnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,aAAa,EACnCnP,EAAM,KAAKmP,EAAW,gBAAgB,EACtCnP,EAAM,KAAKmP,EAAW,aAAa,EACnCnP,EAAM,KAAKmP,EAAW,iBAAiB,EACvCnP,EAAM,KAAKmP,EAAW,kBAAkB,EACxCnP,EAAM,KAAKmP,EAAW,oBAAoB,EAC1CnP,EAAM,KAAKmP,EAAW,mBAAmB,EACzCnP,EAAM,KAAKmP,EAAW,2BAA2B,EACjDnP,EAAM,KAAKmP,EAAW,cAAc,EACpCnP,EAAM,KAAKmP,EAAW,aAAa,EACnCnP,EAAM,KAAKmP,EAAW,WAAW,EACjCnP,EAAM,KAAKmP,EAAW,iBAAiB,EACvCnP,EAAM,KAAKmP,EAAW,mBAAmB,EACzCnP,EAAM,KAAKmP,EAAW,YAAY,CACpC,CACA,SAASka,EAA2B,EAAO,EAAY,CACrD/D,EAAe,WAAW,EACtBnW,EAAW,wBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,YACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,iBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,iBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,QACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,QACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,sBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,uBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,WACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,aACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,WACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,cACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,cACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,YACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,YACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,YACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,gBACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,YACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,WACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,UACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,YACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,eACbmW,EAAe,OAAO,EAAE,EAC1BtlB,EAAM,KAAKslB,EAAe,IAAI,EAC9BA,EAAe,WAAW,EACtBnW,EAAW,KACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,QACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,aACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,wBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,oBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,UACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,cACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,cACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,aACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,oBACbmW,EAAe,OAAO,CAAC,EACrBnW,EAAW,kBACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,aACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,WACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,iBACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,WACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,cACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,OACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,QACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,WACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,oBACbmW,EAAe,OAAO,EAAE,EACtBnW,EAAW,iBACbmW,EAAe,OAAO,EAAE,EAC1BtlB,EAAM,KAAKslB,EAAe,IAAI,CAChC,CACA,SAASgE,EAAY,EAAU,CAC7B,IAAMlD,EAAWP,EAAUpiB,EAAS,MAChCiC,EACJ,GAAI0gB,EAAU,CACZ,IAAM1H,EAAStV,GAAUgd,GACzB,EAAWmD,GAAc,MAAM7K,EAAO,QAAQ,CAChD,KACE,GAAWjb,EAAS,SAEtB,OAAOiC,CACT,CACA,SAAS8jB,EAAe,EAAY,EAAU,CAC5C,IAAI/e,EACJ,IAAK,IAAIjI,EAAI,EAAGinB,EAAK9D,EAAS,OAAQnjB,EAAIinB,EAAI,IAAK,CACjD,IAAMC,EAAqB/D,EAASnjB,GACpC,GAAIknB,EAAmB,WAAatE,EAAU,CAC5C,EAAUsE,EACV,EAAEjf,EAAQ,UACV,KACF,CACF,CAKA,OAJIA,IAAY,IAAK,KACnB,EAAU,IAAI8Y,GAAaxd,EAAUqf,EAAUjW,EAAYnF,CAAa,EACxE2b,EAAS,KAAKlb,CAAO,GAEhBA,CACT,CACA,SAASkf,EAAe,EAAS,CAC/B,GAAI,EAAElf,EAAQ,YAAc,EAAG,CAC7B,IAAMtK,EAAIwlB,EAAS,QAAQlb,CAAO,EAClC,EAAStK,GAAKwlB,EAASA,EAAS,OAAS,GACzCA,EAAS,IAAI,EACblb,EAAQ,QAAQ,CAClB,CACF,CACA,SAASmf,EAAmB,EAAU,CACpCpE,EAAe,OAAO/hB,CAAQ,CAChC,CACA,SAASuJ,GAAU,CACjBwY,EAAe,QAAQ,CACzB,CACA,MAAO,CACL,gBACA,qBACA,cACA,iBACA,iBACA,qBAEA,WACA,SACF,CACF,CACA,SAASqE,IAAkB,CACzB,IAAIzY,kBAA6B,IAAI,QACrC,SAAS0Y,EAAI,EAAQ,CACnB,OAAO1Y,EAAW,IAAIlN,CAAM,CAC9B,CACA,SAASmD,EAAI,EAAQ,CACnB,IAAI0iB,EAAM3Y,EAAW,IAAIlN,CAAM,EAK/B,OAJI6lB,IAAQ,IAAK,KACf,EAAM,CAAC,EACP3Y,EAAW,IAAIlN,EAAQ6lB,CAAG,GAErBA,CACT,CACA,SAASziB,EAAO,EAAQ,CACtB8J,EAAW,OAAOlN,CAAM,CAC1B,CACA,SAASsD,EAAO,EAAQ,EAAK,EAAO,CAClC,EAAW,IAAItD,CAAM,CAAC,CAAClK,GAAOkB,CAChC,CACA,SAAS8R,GAAU,CACjB,kBAA6B,IAAI,OACnC,CACA,MAAO,CACL,MACA,MACA,SACA,SACA,SACF,CACF,CACA,SAASgd,GAAkB,EAAG,EAAG,CAU7B,OATE3uB,EAAE,aAAeD,EAAE,WAEZC,EAAE,cAAgBD,EAAE,YAEpBC,EAAE,SAAS,KAAOD,EAAE,SAAS,GAE7BC,EAAE,IAAMD,EAAE,EAGZC,EAAE,GAAKD,EAAE,GAFTC,EAAE,EAAID,EAAE,EAFRC,EAAE,SAAS,GAAKD,EAAE,SAAS,GAF3BC,EAAE,YAAcD,EAAE,YAFlBC,EAAE,WAAaD,EAAE,UAU5B,CACA,SAAS6uB,GAAyB,EAAG,EAAG,CAQpC,OAPE5uB,EAAE,aAAeD,EAAE,WAEZC,EAAE,cAAgBD,EAAE,YAEpBC,EAAE,IAAMD,EAAE,EAGZC,EAAE,GAAKD,EAAE,GAFTA,EAAE,EAAIC,EAAE,EAFRA,EAAE,YAAcD,EAAE,YAFlBC,EAAE,WAAaD,EAAE,UAQ5B,CACA,SAAS8uB,IAAkB,CACzB,IAAMC,EAAc,CAAC,EACjBC,EAAmB,EACjBC,EAAS,CAAC,EACVC,EAAe,CAAC,EAChBC,EAAc,CAAC,EACrB,SAASC,GAAO,CACd,EAAmB,EACnB,EAAO,OAAS,EAChB,EAAa,OAAS,EACtB,EAAY,OAAS,CACvB,CACA,SAASC,EAAkB,EAAQ,EAAU,EAAU,EAAY,EAAG,EAAO,CAC3E,IAAIC,EAAaP,EAAYC,GAwB7B,OAvBIM,IAAe,IAAK,IACtB,EAAa,CACX,GAAIxmB,EAAO,GACX,SACA,WACA,WACA,aACA,YAAaA,EAAO,YACpB,IACA,OACF,EACA,EAAYkmB,GAAoBM,IAEhC,EAAW,GAAKxmB,EAAO,GACvB,EAAW,OAASA,EACpB,EAAW,SAAWsG,EACtB,EAAW,SAAW/G,EACtB,EAAW,WAAaknB,EACxB,EAAW,YAAczmB,EAAO,YAChC,EAAW,EAAI0mB,EACf,EAAW,MAAQC,GAErB,IACOH,CACT,CACA,SAASI,EAAK,EAAQ,EAAU,EAAU,EAAY,EAAG,EAAO,CAC9D,IAAMJ,EAAaD,EAAkBvmB,EAAQsG,EAAU/G,EAAUknB,EAAYC,EAAGC,CAAK,EACjFpnB,EAAS,aAAe,EAC1B6mB,EAAa,KAAKI,CAAU,EACnBjnB,EAAS,cAAgB,GAClC8mB,EAAY,KAAKG,CAAU,EAE3BL,EAAO,KAAKK,CAAU,CAE1B,CACA,SAASK,EAAQ,EAAQ,EAAU,EAAU,EAAY,EAAG,EAAO,CACjE,IAAML,EAAaD,EAAkBvmB,EAAQsG,EAAU/G,EAAUknB,EAAYC,EAAGC,CAAK,EACjFpnB,EAAS,aAAe,EAC1B6mB,EAAa,QAAQI,CAAU,EACtBjnB,EAAS,cAAgB,GAClC8mB,EAAY,QAAQG,CAAU,EAE9BL,EAAO,QAAQK,CAAU,CAE7B,CACA,SAASM,EAAK,EAAkB,EAAuB,CACjDX,EAAO,OAAS,GAAGA,EAAO,KAAKY,GAAoBjB,EAAiB,EACpEM,EAAa,OAAS,GAAGA,EAAa,KAAKY,GAAyBjB,EAAwB,EAC5FM,EAAY,OAAS,GAAGA,EAAY,KAAKW,GAAyBjB,EAAwB,CAChG,CACA,SAASkB,GAAS,CAChB,IAAK,IAAIhrB,EAAIiqB,EAAkBle,EAAKie,EAAY,OAAQhqB,EAAI+L,EAAI,IAAK,CACnE,IAAMwe,EAAaP,EAAYhqB,GAC/B,GAAIuqB,EAAW,KAAO,KAAM,MAC5B,EAAW,GAAK,KAChB,EAAW,OAAS,KACpB,EAAW,SAAW,KACtB,EAAW,SAAW,KACtB,EAAW,MAAQ,IACrB,CACF,CACA,MAAO,CACL,SACA,eACA,cACA,OACA,OACA,UACA,SACA,MACF,CACF,CACA,SAASU,IAAmB,CAC1B,IAAIC,kBAAwB,IAAI,QAChC,SAAShkB,EAAI,EAAO,EAAiB,CACnC,IAAMikB,EAAYD,EAAM,IAAI/iB,CAAK,EAC7BijB,EAYJ,OAXID,IAAc,IAAK,IACrB,EAAO,IAAIpB,GACXmB,EAAM,IAAI/iB,EAAO,CAACijB,CAAI,CAAC,GAEnBC,GAAmBF,EAAU,QAC/B,EAAO,IAAIpB,GACXoB,EAAU,KAAKC,CAAI,GAEnB,EAAOD,EAAUE,GAGdD,CACT,CACA,SAASve,GAAU,CACjB,kBAAwB,IAAI,OAC9B,CACA,MAAO,CACL,MACA,SACF,CACF,CACA,SAASye,IAAgB,CACvB,IAAMzC,EAAS,CAAC,EAChB,MAAO,CACL,IAAK,SAAS,EAAO,CACnB,GAAIA,EAAO0C,EAAM,MAAQ,IAAK,GAC5B,OAAO1C,EAAO0C,EAAM,IAEtB,IAAIhmB,EACJ,OAAQgmB,EAAM,KAAd,CACE,IAAK,mBACH,EAAW,CACT,UAAW,IAAI9mB,EACf,MAAO,IAAIgD,CACb,EACA,MACF,IAAK,YACH,EAAW,CACT,SAAU,IAAIhD,EACd,UAAW,IAAIA,EACf,MAAO,IAAIgD,EACX,SAAU,EACV,QAAS,EACT,YAAa,EACb,MAAO,CACT,EACA,MACF,IAAK,aACH,EAAW,CACT,SAAU,IAAIhD,EACd,MAAO,IAAIgD,EACX,SAAU,EACV,MAAO,CACT,EACA,MACF,IAAK,kBACH,EAAW,CACT,UAAW,IAAIhD,EACf,SAAU,IAAIgD,EACd,YAAa,IAAIA,CACnB,EACA,MACF,IAAK,gBACH,EAAW,CACT,MAAO,IAAIA,EACX,SAAU,IAAIhD,EACd,UAAW,IAAIA,EACf,WAAY,IAAIA,CAClB,CAEJ,CAEA,MADA,GAAO8mB,EAAM,IAAMhmB,EACZA,CACT,CACF,CACF,CACA,SAASimB,IAAsB,CAC7B,IAAM3C,EAAS,CAAC,EAChB,MAAO,CACL,IAAK,SAAS,EAAO,CACnB,GAAIA,EAAO0C,EAAM,MAAQ,IAAK,GAC5B,OAAO1C,EAAO0C,EAAM,IAEtB,IAAIhmB,EACJ,OAAQgmB,EAAM,KAAd,CACE,IAAK,mBACH,EAAW,CACT,gBAAiB,EACjB,WAAY,EACZ,iBAAkB,EAClB,aAAc,EACd,cAAe,IAAI3mB,CACrB,EACA,MACF,IAAK,YACH,EAAW,CACT,gBAAiB,EACjB,WAAY,EACZ,iBAAkB,EAClB,aAAc,EACd,cAAe,IAAIA,CACrB,EACA,MACF,IAAK,aACH,EAAW,CACT,gBAAiB,EACjB,WAAY,EACZ,iBAAkB,EAClB,aAAc,EACd,cAAe,IAAIA,EACnB,iBAAkB,EAClB,gBAAiB,GACnB,CAEJ,CAEA,MADA,GAAO2mB,EAAM,IAAMhmB,EACZA,CACT,CACF,CACF,CAEA,SAASkmB,GAAqC,EAAQ,EAAQ,CAC5D,OAAQC,EAAO,WAAa,EAAI,IAAMC,EAAO,WAAa,EAAI,IAAM,KAAO,IAAgB,IAAO,GACpG,CACA,SAASC,GAAY,EAAY,CAC/B,IAAMhgB,EAAQ,IAAI0f,GACZO,EAAcL,GAAoB,EAClC9iB,EAAQ,CACZ,QAAS,EACT,KAAM,CACJ,kBAAmB,GACnB,YAAa,GACb,WAAY,GACZ,eAAgB,GAChB,WAAY,GACZ,sBAAuB,GACvB,gBAAiB,GACjB,eAAgB,GAChB,YAAa,GACb,eAAgB,EAClB,EACA,QAAS,CAAC,EAAG,EAAG,CAAC,EACjB,MAAO,CAAC,EACR,YAAa,CAAC,EACd,kBAAmB,CAAC,EACpB,qBAAsB,CAAC,EACvB,wBAAyB,CAAC,EAC1B,KAAM,CAAC,EACP,aAAc,CAAC,EACf,WAAY,CAAC,EACb,cAAe,CAAC,EAChB,gBAAiB,CAAC,EAClB,SAAU,CAAC,EACX,aAAc,KACd,aAAc,KACd,MAAO,CAAC,EACR,YAAa,CAAC,EACd,eAAgB,CAAC,EACjB,kBAAmB,CAAC,EACpB,KAAM,CAAC,EACP,4BAA6B,EAC7B,eAAgB,CAClB,EACA,IAAK,IAAI1I,EAAI,EAAGA,EAAI,EAAG,IAAK0I,EAAM,MAAM,KAAK,IAAIjE,CAAS,EAC1D,IAAMqnB,EAAU,IAAIrnB,EACdsnB,EAAU,IAAIC,GACdC,EAAW,IAAID,GACrB,SAAS9hB,EAAM,EAAQ,CACrB,IAAItI,EAAI,EAAGsqB,EAAI,EAAGjxB,EAAI,EACtB,IAAK,IAAI+E,EAAI,EAAGA,EAAI,EAAG,IAAK0I,EAAM,MAAM1I,EAAE,CAAC,IAAI,EAAG,EAAG,CAAC,EACtD,IAAImsB,EAAoB,EACpBC,EAAc,EACdC,EAAa,EACbC,EAAiB,EACjBC,EAAa,EACbC,EAAwB,EACxBC,EAAkB,EAClBC,EAAiB,EACjBC,EAAc,EACdC,EAAyB,EACzBC,EAAiB,EACrBhE,EAAO,KAAK4C,EAAoC,EAChD,IAAK,IAAIzrB,EAAI,EAAGiH,EAAI4hB,EAAO,OAAQ7oB,EAAIiH,EAAG,IAAK,CAC7C,IAAMskB,EAAQ1C,EAAO7oB,GACfvG,EAAQ8xB,EAAM,MACduB,EAAYvB,EAAM,UAClBvnB,EAAWunB,EAAM,SACjBwB,EAAYxB,EAAM,QAAUA,EAAM,OAAO,IAAMA,EAAM,OAAO,IAAI,QAAU,KAChF,GAAIA,EAAM,eACR,GAAK9xB,EAAM,EAAIqzB,EACf,GAAKrzB,EAAM,EAAIqzB,EACf,GAAKrzB,EAAM,EAAIqzB,OACV,GAAIvB,EAAM,aAAc,CAC7B,IAAK,IAAI9pB,EAAI,EAAGA,EAAI,EAAG,IACrBiH,EAAM,MAAMjH,EAAE,CAAC,gBAAgB8pB,EAAM,GAAG,aAAa9pB,GAAIqrB,CAAS,EAEpE,GACF,MAAO,GAAIvB,EAAM,mBAAoB,CACnC,IAAMhmB,EAAWqG,EAAM,IAAI2f,CAAK,EAEhC,GADAhmB,EAAS,MAAM,KAAKgmB,EAAM,KAAK,CAAC,CAAC,eAAeA,EAAM,SAAS,EAC3DA,EAAM,WAAY,CACpB,IAAMyB,EAASzB,EAAM,OACf0B,EAAiBpB,EAAY,IAAIN,CAAK,EAC5C,EAAe,gBAAkByB,EAAO,UACxC,EAAe,WAAaA,EAAO,KACnC,EAAe,iBAAmBA,EAAO,WACzC,EAAe,aAAeA,EAAO,OACrC,EAAe,cAAgBA,EAAO,QACtC,EAAM,kBAAkBb,GAAqBc,EAC7C,EAAM,qBAAqBd,GAAqBY,EAChD,EAAM,wBAAwBZ,GAAqBZ,EAAM,OAAO,OAChE,GACF,CACA,EAAM,YAAYY,GAAqB5mB,EACvC,GACF,MAAO,GAAIgmB,EAAM,YAAa,CAC5B,IAAMhmB,EAAWqG,EAAM,IAAI2f,CAAK,EAChChmB,EAAS,SAAS,sBAAsBgmB,EAAM,WAAW,EACzDhmB,EAAS,MAAM,KAAK9L,CAAK,CAAC,CAAC,eAAeqzB,CAAS,EACnD,EAAS,SAAW9oB,EACpB,EAAS,QAAU,KAAK,IAAIunB,EAAM,KAAK,EACvC,EAAS,YAAc,KAAK,IAAIA,EAAM,OAAS,EAAIA,EAAM,SAAS,EAClE,EAAS,MAAQA,EAAM,MACvB,EAAM,KAAKc,GAAc9mB,EACzB,IAAMynB,EAASzB,EAAM,OAQrB,GAPIA,EAAM,MACR,EAAM,aAAaoB,GAAepB,EAAM,IACxC,IACAyB,EAAO,eAAezB,CAAK,EACvBA,EAAM,YAAY,KAExB,EAAM,gBAAgBc,GAAcW,EAAO,OACvCzB,EAAM,WAAY,CACpB,IAAM0B,EAAiBpB,EAAY,IAAIN,CAAK,EAC5C,EAAe,gBAAkByB,EAAO,UACxC,EAAe,WAAaA,EAAO,KACnC,EAAe,iBAAmBA,EAAO,WACzC,EAAe,aAAeA,EAAO,OACrC,EAAe,cAAgBA,EAAO,QACtC,EAAM,WAAWX,GAAcY,EAC/B,EAAM,cAAcZ,GAAcU,EAClC,GACF,CACA,GACF,MAAO,GAAIxB,EAAM,gBAAiB,CAChC,IAAMhmB,EAAWqG,EAAM,IAAI2f,CAAK,EAChChmB,EAAS,MAAM,KAAK9L,CAAK,CAAC,CAAC,eAAeqzB,CAAS,EACnDvnB,EAAS,UAAU,IAAIgmB,EAAM,MAAQ,GAAK,EAAG,CAAC,EAC9ChmB,EAAS,WAAW,IAAI,EAAGgmB,EAAM,OAAS,GAAK,CAAC,EAChD,EAAM,SAASe,GAAkB/mB,EACjC,GACF,MAAO,GAAIgmB,EAAM,aAAc,CAC7B,IAAMhmB,EAAWqG,EAAM,IAAI2f,CAAK,EAIhC,GAHAhmB,EAAS,MAAM,KAAKgmB,EAAM,KAAK,CAAC,CAAC,eAAeA,EAAM,SAAS,EAC/D,EAAS,SAAWA,EAAM,SAC1B,EAAS,MAAQA,EAAM,MACnBA,EAAM,WAAY,CACpB,IAAMyB,EAASzB,EAAM,OACf0B,EAAiBpB,EAAY,IAAIN,CAAK,EAC5C,EAAe,gBAAkByB,EAAO,UACxC,EAAe,WAAaA,EAAO,KACnC,EAAe,iBAAmBA,EAAO,WACzC,EAAe,aAAeA,EAAO,OACrC,EAAe,cAAgBA,EAAO,QACtC,EAAe,iBAAmBA,EAAO,OAAO,KAChD,EAAe,gBAAkBA,EAAO,OAAO,IAC/C,EAAM,YAAYZ,GAAea,EACjC,EAAM,eAAeb,GAAeW,EACpC,EAAM,kBAAkBX,GAAeb,EAAM,OAAO,OACpD,GACF,CACA,EAAM,MAAMa,GAAe7mB,EAC3B,GACF,MAAO,GAAIgmB,EAAM,kBAAmB,CAClC,IAAMhmB,EAAWqG,EAAM,IAAI2f,CAAK,EAChChmB,EAAS,SAAS,KAAKgmB,EAAM,KAAK,CAAC,CAAC,eAAeuB,CAAS,EAC5DvnB,EAAS,YAAY,KAAKgmB,EAAM,WAAW,CAAC,CAAC,eAAeuB,CAAS,EACrE,EAAM,KAAKP,GAAchnB,EACzB,GACF,CACF,CACI+mB,EAAiB,IACfxe,EAAW,IAAI,0BAA0B,IAAM,IACjD,EAAM,aAAeof,EAAY,YACjC,EAAM,aAAeA,EAAY,cAEjC,EAAM,aAAeA,EAAY,WACjC,EAAM,aAAeA,EAAY,aAGrC,EAAM,QAAQ,GAAKtrB,EACnB,EAAM,QAAQ,GAAKsqB,EACnB,EAAM,QAAQ,GAAKjxB,EACnB,IAAMkyB,EAAOzkB,EAAM,MACfykB,EAAK,oBAAsBhB,GAAqBgB,EAAK,cAAgBf,GAAee,EAAK,aAAed,GAAcc,EAAK,iBAAmBb,GAAkBa,EAAK,aAAeZ,GAAcY,EAAK,wBAA0BX,GAAyBW,EAAK,kBAAoBV,GAAmBU,EAAK,iBAAmBT,GAAkBS,EAAK,cAAgBR,GAAeQ,EAAK,iBAAmBN,KAC9Y,EAAM,YAAY,OAASV,EAC3B,EAAM,KAAK,OAASE,EACpB,EAAM,SAAS,OAASC,EACxB,EAAM,MAAM,OAASF,EACrB,EAAM,KAAK,OAASG,EACpB,EAAM,kBAAkB,OAASC,EACjC,EAAM,qBAAqB,OAASA,EACpC,EAAM,YAAY,OAASC,EAC3B,EAAM,eAAe,OAASA,EAC9B,EAAM,WAAW,OAASC,EAC1B,EAAM,cAAc,OAASA,EAC7B,EAAM,wBAAwB,OAASF,EACvC,EAAM,kBAAkB,OAASC,EACjC,EAAM,gBAAgB,OAASC,EAAiBC,EAAcC,EAC9D,EAAM,aAAa,OAASD,EAC5B,EAAM,4BAA8BC,EACpC,EAAM,eAAiBC,EACvB,EAAK,kBAAoBV,EACzB,EAAK,YAAcC,EACnB,EAAK,WAAaC,EAClB,EAAK,eAAiBC,EACtB,EAAK,WAAaC,EAClB,EAAK,sBAAwBC,EAC7B,EAAK,gBAAkBC,EACvB,EAAK,eAAiBC,EACtB,EAAK,YAAcC,EACnB,EAAK,eAAiBE,EACtB,EAAM,QAAU,KAEpB,CACA,SAASO,EAAU,EAAQ,EAAQ,CACjC,IAAIjB,EAAoB,EACpBC,EAAc,EACdC,EAAa,EACbC,EAAiB,EACjBC,EAAa,EACX5a,EAAazI,EAAO,mBAC1B,IAAK,IAAIlJ,EAAI,EAAGiH,EAAI4hB,EAAO,OAAQ7oB,EAAIiH,EAAG,IAAK,CAC7C,IAAMskB,EAAQ1C,EAAO7oB,GACrB,GAAIurB,EAAM,mBAAoB,CAC5B,IAAMhmB,EAAWmD,EAAM,YAAYyjB,GACnC5mB,EAAS,UAAU,sBAAsBgmB,EAAM,WAAW,EAC1DO,EAAQ,sBAAsBP,EAAM,OAAO,WAAW,EACtDhmB,EAAS,UAAU,IAAIumB,CAAO,EAC9BvmB,EAAS,UAAU,mBAAmBoM,CAAU,EAChD,GACF,MAAO,GAAI4Z,EAAM,YAAa,CAC5B,IAAMhmB,EAAWmD,EAAM,KAAK2jB,GAC5B9mB,EAAS,SAAS,sBAAsBgmB,EAAM,WAAW,EACzDhmB,EAAS,SAAS,aAAaoM,CAAU,EACzCpM,EAAS,UAAU,sBAAsBgmB,EAAM,WAAW,EAC1DO,EAAQ,sBAAsBP,EAAM,OAAO,WAAW,EACtDhmB,EAAS,UAAU,IAAIumB,CAAO,EAC9BvmB,EAAS,UAAU,mBAAmBoM,CAAU,EAChD,GACF,MAAO,GAAI4Z,EAAM,gBAAiB,CAChC,IAAMhmB,EAAWmD,EAAM,SAAS4jB,GAChC/mB,EAAS,SAAS,sBAAsBgmB,EAAM,WAAW,EACzDhmB,EAAS,SAAS,aAAaoM,CAAU,EACzCsa,EAAS,SAAS,EAClBF,EAAQ,KAAKR,EAAM,WAAW,EAC9BQ,EAAQ,YAAYpa,CAAU,EAC9Bsa,EAAS,gBAAgBF,CAAO,EAChCxmB,EAAS,UAAU,IAAIgmB,EAAM,MAAQ,GAAK,EAAG,CAAC,EAC9ChmB,EAAS,WAAW,IAAI,EAAGgmB,EAAM,OAAS,GAAK,CAAC,EAChDhmB,EAAS,UAAU,aAAa0mB,CAAQ,EACxC1mB,EAAS,WAAW,aAAa0mB,CAAQ,EACzC,GACF,MAAO,GAAIV,EAAM,aAAc,CAC7B,IAAMhmB,EAAWmD,EAAM,MAAM0jB,GAC7B7mB,EAAS,SAAS,sBAAsBgmB,EAAM,WAAW,EACzDhmB,EAAS,SAAS,aAAaoM,CAAU,EACzC,GACF,MAAO,GAAI4Z,EAAM,kBAAmB,CAClC,IAAMhmB,EAAWmD,EAAM,KAAK6jB,GAC5BhnB,EAAS,UAAU,sBAAsBgmB,EAAM,WAAW,EAC1DhmB,EAAS,UAAU,mBAAmBoM,CAAU,EAChD,GACF,CACF,CACF,CACA,MAAO,CACL,QACA,YACA,OACF,CACF,CACA,SAAS0b,GAAiB,EAAY,CACpC,IAAMxE,EAAS,IAAI+C,GAAY9d,CAAU,EACnCwf,EAAc,CAAC,EACfC,EAAe,CAAC,EACtB,SAASlD,EAAK,EAAQ,CACpB,EAAM,OAASnhB,EACf,EAAY,OAAS,EACrB,EAAa,OAAS,CACxB,CACA,SAASskB,EAAU,EAAO,CACxBF,EAAY,KAAK/B,CAAK,CACxB,CACA,SAASkC,EAAW,EAAa,CAC/BF,EAAa,KAAKG,CAAW,CAC/B,CACA,SAASC,GAAc,CACrB9E,EAAO,MAAMyE,CAAW,CAC1B,CACA,SAASM,EAAgB,EAAQ,CAC/B/E,EAAO,UAAUyE,EAAapkB,CAAM,CACtC,CACA,IAAMR,EAAQ,CACZ,cACA,eACA,OAAQ,KACR,SACA,yBAA0B,CAAC,CAC7B,EACA,MAAO,CACL,OACA,QACA,cACA,kBACA,YACA,YACF,CACF,CACA,SAASmlB,GAAkB,EAAY,CACrC,IAAIC,kBAA+B,IAAI,QACvC,SAAS5mB,EAAI,EAAO,EAAkB,EAAG,CACvC,IAAM6mB,EAAmBD,EAAa,IAAI3lB,CAAK,EAC3C6lB,EAYJ,OAXID,IAAqB,IAAK,IAC5B,EAAc,IAAIV,GAAiBvf,CAAU,EAC7CggB,EAAa,IAAI3lB,EAAO,CAAC6lB,CAAW,CAAC,GAEjC3C,GAAmB0C,EAAiB,QACtC,EAAc,IAAIV,GAAiBvf,CAAU,EAC7CigB,EAAiB,KAAKC,CAAW,GAEjC,EAAcD,EAAiB1C,GAG5B2C,CACT,CACA,SAASnhB,GAAU,CACjB,kBAA+B,IAAI,OACrC,CACA,MAAO,CACL,MACA,SACF,CACF,CAqDA,SAASohB,GAAe,EAAU,EAAS,EAAc,CACvD,IAAIC,EAAY,IAAIC,GACdC,EAAiB,IAAIxpB,EAAWypB,EAAgB,IAAIzpB,EAAW0pB,EAAY,IAAI9W,GAAW+W,EAAiB,IAAIC,GAAkB,CAAE,aAAcC,EAAiB,CAAC,EAAGC,EAAoB,IAAIC,GAAwBC,EAAiB,CAAC,EAAGC,EAAkBxW,EAAa,eAC1QyW,EAAa,EAAGjrB,IAAYN,IAAWA,IAAWM,G,GAAoC,EACtFkrB,EAAyB,IAAI/lB,GAAe,CAChD,QAAS,CACP,YAAa,CACf,EACA,SAAU,CACR,YAAa,CAAE,MAAO,IAAK,EAC3B,WAAY,CAAE,MAAO,IAAIpE,CAAU,EACnC,OAAQ,CAAE,MAAO,CAAE,CACrB,EACA,aAAcoqB,GACd,eAAgBC,EAClB,CAAC,EACKC,EAA2BH,EAAuB,MAAM,EAC9D,EAAyB,QAAQ,gBAAkB,EACnD,IAAMI,EAAgB,IAAI1b,GAC1B0b,EAAc,aACZ,WACA,IAAIzb,GACF,IAAI,aAAa,CAAC,GAAI,GAAI,GAAK,EAAG,GAAI,GAAK,GAAI,EAAG,EAAG,CAAC,EACtD,CACF,CACF,EACA,IAAM0b,EAAiB,IAAIhhD,GAAK+gD,EAAeJ,CAAsB,EAC/D/e,EAAQ,KACd,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,YAAc,GACnB,KAAK,KAAA,EACL,IAAIqf,EAAgB,KAAK,KACzB,KAAK,OAAS,SAAS,EAAQ,EAAO,EAAQ,CAG5C,GAFIrf,EAAM,UAAY,IAClBA,EAAM,aAAe,IAASA,EAAM,cAAgB,IACpD6Y,EAAO,SAAW,EAAG,OACzB,IAAMljB,EAAsBC,EAAS,gBAAgB,EAC/C0pB,EAAiB1pB,EAAS,kBAAkB,EAC5C2pB,EAAoB3pB,EAAS,qBAAqB,EAClD4pB,EAAS5pB,EAAS,MACxB4pB,EAAO,YAAYta,EAAU,EAC7Bsa,EAAO,QAAQ,MAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EACxCA,EAAO,QAAQ,MAAM,QAAQ,EAAI,EACjCA,EAAO,eAAe,EAAK,EAC3B,IAAMC,EAAQJ,IAAA,GAAkC,KAAK,OAAA,EAC/CK,EAAUL,IAAA,GAAkC,KAAK,OAAA,EACvD,IAAK,IAAIrvB,EAAI,EAAG+L,EAAK8c,EAAO,OAAQ7oB,EAAI+L,EAAI,IAAK,CAC/C,IAAMwf,EAAQ1C,EAAO7oB,GACfgtB,EAASzB,EAAM,OACrB,GAAIyB,IAAW,IAAK,GAAG,CACrB,QAAQ,KAAK,wBAAyBzB,EAAO,gBAAgB,EAC7D,QACF,CACA,GAAIyB,EAAO,aAAe,IAASA,EAAO,cAAgB,GAAO,SACjEoB,EAAe,KAAKpB,EAAO,OAAO,EAClC,IAAM2C,EAAqB3C,EAAO,gBAAgB,EAelD,GAdAoB,EAAe,SAASuB,CAAkB,EAC1CtB,EAAc,KAAKrB,EAAO,OAAO,GAC7BoB,EAAe,EAAIS,GAAmBT,EAAe,EAAIS,KACvDT,EAAe,EAAIS,IACrB,EAAc,EAAI,KAAK,MAAMA,EAAkBc,EAAmB,CAAC,EACnE,EAAe,EAAItB,EAAc,EAAIsB,EAAmB,EACxD,EAAO,QAAQ,EAAItB,EAAc,GAE/BD,EAAe,EAAIS,IACrB,EAAc,EAAI,KAAK,MAAMA,EAAkBc,EAAmB,CAAC,EACnE,EAAe,EAAItB,EAAc,EAAIsB,EAAmB,EACxD,EAAO,QAAQ,EAAItB,EAAc,IAGjCrB,EAAO,MAAQ,MAAQyC,IAAU,IAAQC,IAAY,GAAM,CAC7D,IAAME,EAAO,KAAK,OAAA,EAAiF,CAAC,EAA1D,CAAE,UAAWC,GAAe,UAAWA,EAAc,EAC3F7C,EAAO,MAAQ,MACjBA,EAAO,IAAI,QAAQ,EAErB,EAAO,IAAM,IAAInZ,GAAkBua,EAAe,EAAGA,EAAe,EAAGwB,CAAI,EAC3E,EAAO,IAAI,QAAQ,KAAOrE,EAAM,KAAO,aACvCyB,EAAO,OAAO,uBAAuB,CACvC,CACApnB,EAAS,gBAAgBonB,EAAO,GAAG,EACnCpnB,EAAS,MAAM,EACf,IAAMkqB,EAAgB9C,EAAO,iBAAiB,EAC9C,IAAK,IAAI+C,EAAK,EAAGA,EAAKD,EAAe,IAAM,CACzC,IAAME,EAAWhD,EAAO,YAAY+C,CAAE,EACtCzB,EAAU,IACRD,EAAc,EAAI2B,EAAS,EAC3B3B,EAAc,EAAI2B,EAAS,EAC3B3B,EAAc,EAAI2B,EAAS,EAC3B3B,EAAc,EAAI2B,EAAS,CAC7B,EACAR,EAAO,SAASlB,CAAS,EACzBtB,EAAO,eAAezB,EAAOwE,CAAE,EAC/B,EAAY/C,EAAO,WAAW,EAC9BiD,EAAa9nB,EAAOe,EAAQ8jB,EAAO,OAAQzB,EAAO,KAAK,IAAI,CAC7D,CACIyB,EAAO,qBAAuB,IAAQ,KAAK,OAAA,GAC7CkD,EAAQlD,EAAQ9jB,CAAM,EAExB,EAAO,YAAc,EACvB,CACA,EAAgB,KAAK,KACrB,EAAM,YAAc,GACpBtD,EAAS,gBAAgBD,EAAqB2pB,EAAgBC,CAAiB,CACjF,EACA,SAASW,EAAQ,EAAQ,EAAQ,CAC/B,IAAM7lB,EAAWlB,EAAQ,OAAOimB,CAAc,EAC1CL,EAAuB,QAAQ,cAAgB/B,EAAO,cACxD,EAAuB,QAAQ,YAAcA,EAAO,YACpD,EAAyB,QAAQ,YAAcA,EAAO,YACtD,EAAuB,YAAc,GACrC,EAAyB,YAAc,IAErCA,EAAO,UAAY,OACrB,EAAO,QAAU,IAAInZ,GAAkBua,EAAe,EAAGA,EAAe,CAAC,GAE3E,EAAuB,SAAS,YAAY,MAAQpB,EAAO,IAAI,QAC/D,EAAuB,SAAS,WAAW,MAAQA,EAAO,QAC1D,EAAuB,SAAS,OAAO,MAAQA,EAAO,OACtDpnB,EAAS,gBAAgBonB,EAAO,OAAO,EACvCpnB,EAAS,MAAM,EACfA,EAAS,mBAAmBsD,EAAQ,KAAMmB,EAAU0kB,EAAwBK,EAAgB,IAAI,EAChG,EAAyB,SAAS,YAAY,MAAQpC,EAAO,QAAQ,QACrE,EAAyB,SAAS,WAAW,MAAQA,EAAO,QAC5D,EAAyB,SAAS,OAAO,MAAQA,EAAO,OACxDpnB,EAAS,gBAAgBonB,EAAO,GAAG,EACnCpnB,EAAS,MAAM,EACfA,EAAS,mBAAmBsD,EAAQ,KAAMmB,EAAU6kB,EAA0BE,EAAgB,IAAI,CACpG,CACA,SAASe,EAAiB,EAAQ,EAAU,EAAO,EAAM,CACvD,IAAIC,EAAS,KACPC,EAAiB9E,EAAM,eAAiB,GAAOxnB,EAAO,uBAAyBA,EAAO,oBAC5F,GAAIssB,IAAmB,IAAK,GAC1B,EAASA,OAGT,GADA,EAAS9E,EAAM,eAAiB,GAAOmD,EAAoBH,EACvD3oB,EAAS,sBAAwBtC,EAAS,cAAgB,IAAQ,MAAM,QAAQA,EAAS,cAAc,GAAKA,EAAS,eAAe,SAAW,GAAKA,EAAS,iBAAmBA,EAAS,oBAAsB,GAAKA,EAAS,UAAYA,EAAS,UAAY,GAAKA,EAAS,KAAOA,EAAS,UAAY,EAAG,CAC7S,IAAMgtB,EAAOF,EAAO,KAAMG,EAAOjtB,EAAS,KACtCktB,EAAsB5B,EAAe0B,GACrCE,IAAwB,IAAK,KAC/B,EAAsB,CAAC,EACvB,EAAeF,GAAQE,GAEzB,IAAIC,EAAiBD,EAAoBD,GACrCE,IAAmB,IAAK,KAC1B,EAAiBL,EAAO,MAAM,EAC9B,EAAoBG,GAAQE,EAC5BntB,EAAS,iBAAiB,UAAWotB,CAAiB,GAExD,EAASD,CACX,CAoBF,GAlBA,EAAO,QAAUntB,EAAS,QAC1B,EAAO,UAAYA,EAAS,UACxBnD,IAAA,EACF,EAAO,KAAOmD,EAAS,aAAe,KAA6BA,EAAS,KAA/BA,EAAS,WAEtD,EAAO,KAAOA,EAAS,aAAe,KAA6BwrB,EAAWxrB,EAAS,MAA1CA,EAAS,WAExD,EAAO,SAAWA,EAAS,SAC3B,EAAO,UAAYA,EAAS,UAC5B,EAAO,IAAMA,EAAS,IACtB,EAAO,YAAcA,EAAS,YAC9B,EAAO,eAAiBA,EAAS,eACjC,EAAO,iBAAmBA,EAAS,iBACnC,EAAO,gBAAkBA,EAAS,gBAClC,EAAO,kBAAoBA,EAAS,kBACpC,EAAO,iBAAmBA,EAAS,iBACnC,EAAO,mBAAqBA,EAAS,mBACrC,EAAO,UAAYA,EAAS,UACxBioB,EAAM,eAAiB,IAAQ6E,EAAO,yBAA2B,GAAM,CACzE,IAAMpf,EAAqBpL,EAAS,WAAW,IAAIwqB,CAAM,EACzD,EAAmB,MAAQ7E,CAC7B,CACA,OAAO6E,CACT,CACA,SAASH,EAAa,EAAQ,EAAQ,EAAc,EAAO,EAAM,CAC/D,GAAIlsB,EAAO,UAAY,GAAO,OAE9B,GADgBA,EAAO,OAAO,KAAKmF,EAAO,MAChC,IAAMnF,EAAO,QAAUA,EAAO,QAAUA,EAAO,YAClDA,EAAO,YAAcA,EAAO,eAAiB5D,IAAA,KAA2B,CAAC4D,EAAO,eAAiBmqB,EAAU,iBAAiBnqB,CAAM,GAAI,CACzIA,EAAO,gBAAgB,iBAAiB4sB,EAAa,mBAAoB5sB,EAAO,WAAW,EAC3F,IAAMsG,EAAWlB,EAAQ,OAAOpF,CAAM,EAChCT,EAAWS,EAAO,SACxB,GAAI,MAAM,QAAQT,CAAQ,EAAG,CAC3B,IAAMstB,EAASvmB,EAAS,OACxB,IAAK,IAAIwmB,EAAI,EAAGC,EAAKF,EAAO,OAAQC,EAAIC,EAAI,IAAK,CAC/C,IAAMpG,EAAQkG,EAAOC,GACfE,EAAgBztB,EAASonB,EAAM,eACrC,GAAIqG,GAAiBA,EAAc,QAAS,CAC1C,IAAMC,EAAgBb,EAAiBpsB,EAAQgtB,EAAexF,EAAOprB,CAAI,EACzE4D,EAAO,eAAe6B,EAAU7B,EAAQmF,EAAQynB,EAActmB,EAAU2mB,EAAetG,CAAK,EAC5F9kB,EAAS,mBAAmB+qB,EAAc,KAAMtmB,EAAU2mB,EAAejtB,EAAQ2mB,CAAK,EACtF3mB,EAAO,cAAc6B,EAAU7B,EAAQmF,EAAQynB,EAActmB,EAAU2mB,EAAetG,CAAK,CAC7F,CACF,CACF,MAAO,GAAIpnB,EAAS,QAAS,CAC3B,IAAM0tB,EAAgBb,EAAiBpsB,EAAQT,EAAUioB,EAAOprB,CAAI,EACpE4D,EAAO,eAAe6B,EAAU7B,EAAQmF,EAAQynB,EAActmB,EAAU2mB,EAAe,IAAI,EAC3FprB,EAAS,mBAAmB+qB,EAAc,KAAMtmB,EAAU2mB,EAAejtB,EAAQ,IAAI,EACrFA,EAAO,cAAc6B,EAAU7B,EAAQmF,EAAQynB,EAActmB,EAAU2mB,EAAe,IAAI,CAC5F,CACF,CAEF,IAAMC,EAAWltB,EAAO,SACxB,IAAK,IAAI/D,EAAI,EAAGiH,EAAIgqB,EAAS,OAAQjxB,EAAIiH,EAAG,IAC1CgpB,EAAagB,EAASjxB,GAAIkJ,EAAQynB,EAAcpF,EAAOprB,CAAI,CAE/D,CACA,SAASuwB,EAAkB,EAAO,CAEhCle,EADuB,OACd,oBAAoB,UAAWke,CAAiB,EACzD,IAAK,IAAM5S,KAAM8Q,EAAgB,CAC/B,IAAMhjB,EAAQgjB,EAAe9Q,GACvBoT,EAAO1e,EAAM,OAAO,KACtB0e,KAAQtlB,IAEVA,EAD6BslB,EACf,CAAC,QAAQ,EACvB,OAAOtlB,EAAMslB,GAEjB,CACF,CACF,CAWA,SAASC,GAAW,EAAI,CACtB,SAASC,GAAc,CACrB,IAAIC,EAAS,GACP53B,EAAQ,IAAI+d,GACd8Z,EAAmB,KACjBC,EAAoB,IAAI/Z,GAAQ,EAAG,EAAG,EAAG,CAAC,EAChD,MAAO,CACL,QAAS,SAAS,EAAW,CACvB8Z,IAAqBE,GAAa,CAACH,IACrCxwB,EAAG,UAAU2wB,EAAWA,EAAWA,EAAWA,CAAS,EACvD,EAAmBA,EAEvB,EACA,UAAW,SAAS,EAAM,CACxB,EAASC,CACX,EACA,SAAU,SAAS,EAAG,EAAG,EAAG,EAAG,EAAoB,CAC7C9oB,IAAuB,KACzB,GAAKzN,EACL,GAAKA,EACL,GAAKA,GAEPzB,EAAM,IAAImI,EAAGsqB,EAAGjxB,EAAGC,CAAC,EAChBq2B,EAAkB,OAAO93B,CAAK,IAAM,KACtCoH,EAAG,WAAWe,EAAGsqB,EAAGjxB,EAAGC,CAAC,EACxBq2B,EAAkB,KAAK93B,CAAK,EAEhC,EACA,MAAO,UAAW,CAChB,EAAS,GACT,EAAmB,KACnB83B,EAAkB,IAAI,GAAI,EAAG,EAAG,CAAC,CACnC,CACF,CACF,CACA,SAASG,GAAc,CACrB,IAAIL,EAAS,GACTM,EAAW,GACXC,EAAmB,KACnBC,EAAmB,KACnBC,EAAoB,KACxB,MAAO,CACL,YAAa,SAAS,EAAO,CAC3B,EAAW/2B,CACb,EACA,QAAS,SAAS,EAAW,CACvBg3B,EACFC,GAAOnxB,EAAG,UAAU,EAEpBoxB,EAAQpxB,EAAG,UAAU,CAEzB,EACA,QAAS,SAAS,EAAW,CACvB+wB,IAAqBM,GAAa,CAACb,IACrCxwB,EAAG,UAAUqxB,CAAS,EACtB,EAAmBA,EAEvB,EACA,QAAS,SAAS,EAAW,CAE3B,GADIP,IAAU,EAAYQ,GAAcC,IACpCP,IAAqBO,EAAW,CAClC,OAAQA,EAAR,CACE,KAAKC,GACHxxB,EAAG,UAAUA,EAAG,KAAK,EACrB,MACF,KAAKyxB,GACHzxB,EAAG,UAAUA,EAAG,MAAM,EACtB,MACF,KAAK0xB,GACH1xB,EAAG,UAAUA,EAAG,IAAI,EACpB,MACF,KAAK2xB,GACH3xB,EAAG,UAAUA,EAAG,MAAM,EACtB,MACF,KAAK4xB,GACH5xB,EAAG,UAAUA,EAAG,KAAK,EACrB,MACF,KAAK6xB,GACH7xB,EAAG,UAAUA,EAAG,MAAM,EACtB,MACF,KAAK8xB,GACH9xB,EAAG,UAAUA,EAAG,OAAO,EACvB,MACF,KAAK+xB,GACH/xB,EAAG,UAAUA,EAAG,QAAQ,EACxB,MACF,QACEA,EAAG,UAAUA,EAAG,MAAM,CAC1B,CACA,EAAmBuxB,CACrB,CACF,EACA,UAAW,SAAS,EAAM,CACxB,EAASX,CACX,EACA,SAAU,SAAS,EAAO,CACpBK,IAAsBe,IACxBhyB,EAAG,WAAWgyB,CAAK,EACnB,EAAoBA,EAExB,EACA,MAAO,UAAW,CAChB,EAAS,GACT,EAAmB,KACnB,EAAmB,KACnB,EAAoB,IACtB,CACF,CACF,CACA,SAASC,GAAgB,CACvB,IAAIzB,EAAS,GACT0B,EAAqB,KACrBC,EAAqB,KACrBC,EAAoB,KACpBC,EAAyB,KACzBC,EAAqB,KACrBC,EAAsB,KACtBC,EAAsB,KACtBC,EAAsB,KAC1B,MAAO,CACL,QAAS,SAAS,EAAa,CACxBjC,IACCkC,EACFvB,GAAOnxB,EAAG,YAAY,EAEtBoxB,EAAQpxB,EAAG,YAAY,EAG7B,EACA,QAAS,SAAS,EAAa,CACzBkyB,IAAuBS,GAAe,CAACnC,IACzCxwB,EAAG,YAAY2yB,CAAW,EAC1B,EAAqBA,EAEzB,EACA,QAAS,SAAS,EAAa,EAAY,EAAa,EAClDR,IAAuBS,GAAeR,IAAsBS,GAAcR,IAA2BM,KACvG3yB,EAAG,YAAY4yB,EAAaC,EAAYF,CAAW,EACnD,EAAqBC,EACrB,EAAoBC,EACpB,EAAyBF,EAE7B,EACA,MAAO,SAAS,EAAa,EAAc,EAAc,EACnDL,IAAuBQ,GAAeP,IAAwBQ,GAAgBP,IAAwBQ,KACxGhzB,EAAG,UAAU8yB,EAAaC,EAAcC,CAAY,EACpD,EAAqBF,EACrB,EAAsBC,EACtB,EAAsBC,EAE1B,EACA,UAAW,SAAS,EAAM,CACxB,EAASpC,CACX,EACA,SAAU,SAAS,EAAS,CACtB6B,IAAwBQ,IAC1BjzB,EAAG,aAAaizB,CAAO,EACvB,EAAsBA,EAE1B,EACA,MAAO,UAAW,CAChB,EAAS,GACT,EAAqB,KACrB,EAAqB,KACrB,EAAoB,KACpB,EAAyB,KACzB,EAAqB,KACrB,EAAsB,KACtB,EAAsB,KACtB,EAAsB,IACxB,CACF,CACF,CACA,IAAMC,EAAc,IAAI3C,EAClB4C,EAAc,IAAItC,EAClBuC,EAAgB,IAAInB,EACpBoB,kBAA8B,IAAI,QAClCC,kBAAgC,IAAI,QACtCC,EAAsB,CAAC,EACvBC,EAA2B,CAAC,EAC5BC,kBAAqC,IAAI,QACzCC,EAAqB,CAAC,EACtBC,EAAiB,KACjBC,EAAyB,GACzBC,EAAkB,KAClBC,EAAuB,KACvBC,EAAkB,KAClBC,EAAkB,KAClBC,EAA4B,KAC5BC,EAAuB,KACvBC,EAAuB,KACvBC,EAAoB,IAAIxtB,EAAM,EAAG,EAAG,CAAC,EACrCytB,EAAoB,EACpBC,EAA2B,GAC3BC,EAAmB,KACnBC,EAAkB,KAClBC,EAAmB,KACnBC,EAA6B,KAC7BC,EAA4B,KAC1BnmB,EAAcxO,EAAG,aAAaA,EAAG,gCAAgC,EACnE40B,EAAqB,GACrB/e,EAAU,EACRgf,EAAY70B,EAAG,aAAaA,EAAG,OAAO,EACxC60B,EAAU,QAAQ,OAAO,IAAM,GAGxBA,EAAU,QAAQ,WAAW,IAAM,KAC5C,EAAU,WAAW,kBAAkB,KAAKA,CAAS,CAAC,CAAC,EAAE,EACzD,EAAqBhf,GAAW,IAJhC,EAAU,WAAW,cAAc,KAAKgf,CAAS,CAAC,CAAC,EAAE,EACrD,EAAqBhf,GAAW,GAKlC,IAAIif,GAAqB,KACrBC,GAAuB,CAAC,EACtBC,GAAeh1B,EAAG,aAAaA,EAAG,WAAW,EAC7Ci1B,EAAgBj1B,EAAG,aAAaA,EAAG,QAAQ,EAC3Ck1B,GAAiB,IAAIve,GAAQ,CAAC,CAAC,UAAUqe,EAAY,EACrDG,GAAkB,IAAIxe,GAAQ,CAAC,CAAC,UAAUse,CAAa,EAC7D,SAASG,GAAc,EAAM,EAAQ,EAAO,EAAY,CACtD,IAAM7uB,kBAAO,IAAI,WAAW,CAAC,EACvB+K,EAAUtR,EAAG,cAAc,EACjCA,EAAG,YAAYV,EAAMgS,CAAO,EAC5BtR,EAAG,cAAcV,EAAMU,EAAG,mBAAoBA,EAAG,OAAO,EACxDA,EAAG,cAAcV,EAAMU,EAAG,mBAAoBA,EAAG,OAAO,EACxD,IAAK,IAAIb,EAAI,EAAGA,EAAIwN,EAAO,IACrBrN,IAASU,EAAG,YAAcV,IAASU,EAAG,iBACxCA,EAAG,WAAW1F,EAAQ,EAAG0F,EAAG,KAAM,EAAG,EAAGq1B,EAAY,EAAGr1B,EAAG,KAAMA,EAAG,cAAeuG,CAAI,EAEtFvG,EAAG,WAAW1F,EAAS6E,EAAG,EAAGa,EAAG,KAAM,EAAG,EAAG,EAAGA,EAAG,KAAMA,EAAG,cAAeuG,CAAI,EAGlF,OAAO+K,CACT,CACA,IAAMgkB,GAAgB,CAAC,EACvB,GAAct1B,EAAG,YAAco1B,GAAcp1B,EAAG,WAAYA,EAAG,WAAY,CAAC,EAC5E,GAAcA,EAAG,kBAAoBo1B,GAAcp1B,EAAG,iBAAkBA,EAAG,4BAA6B,CAAC,EACzG,GAAcA,EAAG,kBAAoBo1B,GAAcp1B,EAAG,iBAAkBA,EAAG,iBAAkB,EAAG,CAAC,EACjG,GAAcA,EAAG,YAAco1B,GAAcp1B,EAAG,WAAYA,EAAG,WAAY,EAAG,CAAC,EAC/EkzB,EAAY,SAAS,EAAG,EAAG,EAAG,CAAC,EAC/BC,EAAY,SAAS,CAAC,EACtBC,EAAc,SAAS,CAAC,EACxBjC,GAAOnxB,EAAG,UAAU,EACpBmzB,EAAY,QAAQxB,EAAc,EAClC4D,EAAa,EAAK,EAClBC,EAAYC,EAAY,EACxBtE,GAAOnxB,EAAG,SAAS,EACnB01B,GAAYrhB,EAAU,EACtB,SAAS8c,GAAO,EAAI,CACdoC,EAAoBtW,KAAQ,KAC9Bjd,EAAG,OAAOid,CAAE,EACZ,EAAoBA,GAAM,GAE9B,CACA,SAASmU,EAAQ,EAAI,CACfmC,EAAoBtW,KAAQ,KAC9Bjd,EAAG,QAAQid,CAAE,EACb,EAAoBA,GAAM,GAE9B,CACA,SAAS0Y,GAAgB,EAAQ,EAAa,CAY5C,OAXInC,EAAyBl5B,KAAYs7B,IACvC51B,EAAG,gBAAgB1F,EAAQs7B,CAAW,EACtC,EAAyBt7B,GAAUs7B,EAC/Bt7B,IAAW0F,EAAG,mBAChB,EAAyBA,EAAG,aAAe41B,GAEzCt7B,IAAW0F,EAAG,cAChB,EAAyBA,EAAG,kBAAoB41B,GAE3C,GAGX,CACA,SAASC,GAAY,EAAc,EAAa,CAC9C,IAAIC,EAAepC,EACf/pB,EAAc,GAClB,GAAI6H,EAAc,CAChB,EAAeiiB,EAAmB,IAAImC,CAAW,EAC7CE,IAAiB,IAAK,KACxB,EAAe,CAAC,EAChBrC,EAAmB,IAAImC,EAAaE,CAAY,GAElD,IAAM/d,EAAWvG,EAAa,SAC9B,GAAIskB,EAAa,SAAW/d,EAAS,QAAU+d,EAAa,KAAO91B,EAAG,kBAAmB,CACvF,IAAK,IAAIb,EAAI,EAAG+L,EAAK6M,EAAS,OAAQ5Y,EAAI+L,EAAI,IAC5C,EAAa/L,GAAKa,EAAG,kBAAoBb,EAE3C,EAAa,OAAS4Y,EAAS,OAC/B,EAAc,EAChB,CACF,MACM+d,EAAa,KAAO91B,EAAG,OACzB,EAAa,GAAKA,EAAG,KACrB,EAAc,IAGd2J,GACF3J,EAAG,YAAY81B,CAAY,CAE/B,CACA,SAASC,GAAW,EAAS,CAM3B,OALIpC,IAAmBlqB,IACrBzJ,EAAG,WAAWyJ,CAAO,EACrB,EAAiBA,EACV,GAGX,CACA,IAAMusB,GAAe,EAClBC,IAAcj2B,EAAG,UACjBk2B,IAAmBl2B,EAAG,eACtBm2B,IAA0Bn2B,EAAG,qBAChC,EACA,GAAao2B,IAAep2B,EAAG,IAC/B,GAAaq2B,IAAer2B,EAAG,IAC/B,IAAMs2B,EAAa,EAChBC,IAAav2B,EAAG,MAChBw2B,IAAYx2B,EAAG,KACfy2B,IAAiBz2B,EAAG,WACpB02B,IAAiB12B,EAAG,WACpB22B,IAAyB32B,EAAG,oBAC5B42B,IAAiB52B,EAAG,WACpB62B,IAAiB72B,EAAG,WACpB82B,IAAyB92B,EAAG,qBAC5B+2B,IAAyB/2B,EAAG,qBAC5Bg3B,IAAyBh3B,EAAG,qBAC5Bi3B,IAAyBj3B,EAAG,qBAC5Bk3B,IAAsBl3B,EAAG,gBACzBm3B,IAA8Bn3B,EAAG,0BACjCo3B,IAAsBp3B,EAAG,gBACzBq3B,IAA8Br3B,EAAG,wBACpC,EACA,SAAS01B,GAAY,EAAU,EAAe,EAAU,EAAU,EAAoB,EAAe,EAAe,EAAY,EAAY,EAAoB,CAC9J,GAAI4B,IAAajjB,GACXuf,IAA2B,KAC7BxC,EAAQpxB,EAAG,KAAK,EAChB,EAAyB,SAQ7B,GAJI4zB,IAA2B,KAC7BzC,GAAOnxB,EAAG,KAAK,EACf,EAAyB,IAEvBs3B,IAAaC,GACf,IAAID,IAAazD,GAAmB/rB,IAAuBwsB,EAA0B,CAMnF,IALIR,IAAyBmC,IAAehC,IAA8BgC,MACxEj2B,EAAG,cAAcA,EAAG,QAAQ,EAC5B,EAAuBi2B,GACvB,EAA4BA,IAE1BnuB,EACF,OAAQwvB,EAAR,CACE,KAAKvP,GACH/nB,EAAG,kBAAkBA,EAAG,IAAKA,EAAG,oBAAqBA,EAAG,IAAKA,EAAG,mBAAmB,EACnF,MACF,KAAKw3B,GACHx3B,EAAG,UAAUA,EAAG,IAAKA,EAAG,GAAG,EAC3B,MACF,KAAKy3B,GACHz3B,EAAG,kBAAkBA,EAAG,KAAMA,EAAG,oBAAqBA,EAAG,KAAMA,EAAG,GAAG,EACrE,MACF,KAAK03B,GACH13B,EAAG,kBAAkBA,EAAG,KAAMA,EAAG,UAAWA,EAAG,KAAMA,EAAG,SAAS,EACjE,MACF,QACE,QAAQ,MAAM,uCAAwCs3B,CAAQ,CAElE,MAEA,OAAQA,EAAR,CACE,KAAKvP,GACH/nB,EAAG,kBAAkBA,EAAG,UAAWA,EAAG,oBAAqBA,EAAG,IAAKA,EAAG,mBAAmB,EACzF,MACF,KAAKw3B,GACHx3B,EAAG,UAAUA,EAAG,UAAWA,EAAG,GAAG,EACjC,MACF,KAAKy3B,GACHz3B,EAAG,kBAAkBA,EAAG,KAAMA,EAAG,oBAAqBA,EAAG,KAAMA,EAAG,GAAG,EACrE,MACF,KAAK03B,GACH13B,EAAG,UAAUA,EAAG,KAAMA,EAAG,SAAS,EAClC,MACF,QACE,QAAQ,MAAM,uCAAwCs3B,CAAQ,CAElE,CAEF,EAAkB,KAClB,EAAkB,KAClB,EAAuB,KACvB,EAAuB,KACvBlD,EAAkB,IAAI,EAAG,EAAG,CAAC,EAC7B,EAAoB,EACpB,EAAkBkD,EAClB,EAA2BxvB,CAC7B,MAGF,KAA2C6vB,EAC3C,IAAiCC,EACjC,IAAiCC,GAC7BF,IAAkB7D,GAAwBgE,IAAuB7D,KACnEj0B,EAAG,sBAAsBg2B,GAAa2B,GAAgB3B,GAAa8B,EAAmB,EACtF,EAAuBH,EACvB,EAA4BG,IAE1BF,IAAa7D,GAAmB8D,IAAa7D,GAAmB+D,IAAkB7D,GAAwB8D,IAAkB7D,KAC9Hn0B,EAAG,kBAAkBs2B,EAAWsB,GAAWtB,EAAWuB,GAAWvB,EAAWyB,GAAgBzB,EAAW0B,EAAc,EACrH,EAAkBJ,EAClB,EAAkBC,EAClB,EAAuBE,EACvB,EAAuBC,IAErBC,EAAW,OAAO7D,CAAiB,IAAM,IAAS8D,IAAe7D,KACnEr0B,EAAG,WAAWi4B,EAAW,EAAGA,EAAW,EAAGA,EAAW,EAAGC,CAAU,EAClE9D,EAAkB,KAAK6D,CAAU,EACjC,EAAoBC,GAEtB,EAAkBZ,EAClB,EAA2B,EAC7B,CACA,SAASa,EAAY,EAAU,EAAa,CAC1C11B,EAAS,OAAA,EAAsB2uB,EAAQpxB,EAAG,SAAS,EAAImxB,GAAOnxB,EAAG,SAAS,EAC1E,IAAIo4B,EAAY31B,EAAS,OAASC,GAC9B21B,IAAa,EAAY,CAACD,GAC9B7C,EAAa6C,CAAS,EACtB31B,EAAS,WAAaslB,IAAkBtlB,EAAS,cAAgB,GAAQizB,GAAYrhB,EAAU,EAAIqhB,GAAYjzB,EAAS,SAAUA,EAAS,cAAeA,EAAS,SAAUA,EAAS,SAAUA,EAAS,mBAAoBA,EAAS,cAAeA,EAAS,cAAeA,EAAS,WAAYA,EAAS,WAAYA,EAAS,kBAAkB,EAClV0wB,EAAY,QAAQ1wB,EAAS,SAAS,EACtC0wB,EAAY,QAAQ1wB,EAAS,SAAS,EACtC0wB,EAAY,QAAQ1wB,EAAS,UAAU,EACvCywB,EAAY,QAAQzwB,EAAS,UAAU,EACvC,IAAM61B,EAAe71B,EAAS,aAC9B2wB,EAAc,QAAQkF,CAAY,EAC9BA,IACFlF,EAAc,QAAQ3wB,EAAS,gBAAgB,EAC/C2wB,EAAc,QAAQ3wB,EAAS,YAAaA,EAAS,WAAYA,EAAS,eAAe,EACzF2wB,EAAc,MAAM3wB,EAAS,YAAaA,EAAS,aAAcA,EAAS,YAAY,GAExF81B,EAAiB91B,EAAS,cAAeA,EAAS,oBAAqBA,EAAS,kBAAkB,EAClGA,EAAS,kBAAoB,GAAO0uB,GAAOnxB,EAAG,wBAAwB,EAAIoxB,EAAQpxB,EAAG,wBAAwB,CAC/G,CACA,SAASu1B,EAAa,EAAW,CAC3BhB,IAAqB6D,IACnBA,EACFp4B,EAAG,UAAUA,EAAG,EAAE,EAElBA,EAAG,UAAUA,EAAG,GAAG,EAErB,EAAmBo4B,EAEvB,CACA,SAAS5C,EAAY,EAAU,CACzBgD,IAAaC,GAYfrH,EAAQpxB,EAAG,SAAS,GAXpBmxB,GAAOnxB,EAAG,SAAS,EACfw4B,IAAahE,IACXgE,IAAa/C,GACfz1B,EAAG,SAASA,EAAG,IAAI,EACVw4B,IAAaE,GACtB14B,EAAG,SAASA,EAAG,KAAK,EAEpBA,EAAG,SAASA,EAAG,cAAc,IAMnC,EAAkBw4B,CACpB,CACA,SAASG,GAAa,EAAO,CACvB1lB,IAAUwhB,IACRG,GAAoB50B,EAAG,UAAUiT,CAAK,EAC1C,EAAmBA,EAEvB,CACA,SAASslB,EAAiB,EAAe,EAAQ,EAAO,CAClDK,GACFzH,GAAOnxB,EAAG,mBAAmB,GACzB00B,IAA+BmE,GAAUlE,IAA8BzY,KACzElc,EAAG,cAAc64B,EAAQ3c,CAAK,EAC9B,EAA6B2c,EAC7B,EAA4B3c,IAG9BkV,EAAQpxB,EAAG,mBAAmB,CAElC,CACA,SAAS84B,GAAe,EAAa,CAC/BC,EACF5H,GAAOnxB,EAAG,YAAY,EAEtBoxB,EAAQpxB,EAAG,YAAY,CAE3B,CACA,SAASg5B,GAAc,EAAW,CAC5BC,IAAc,IAAK,KAAG,EAAYj5B,EAAG,SAAWwO,EAAc,GAC9DsmB,KAAuBmE,IACzBj5B,EAAG,cAAci5B,CAAS,EAC1B,GAAqBA,EAEzB,CACA,SAASC,GAAY,EAAW,EAAc,EAAW,CACnDD,IAAc,IAAK,KACrB,AAGEA,EAHEnE,KAAuB,KACb90B,EAAG,SAAWwO,EAAc,EAE5BsmB,IAGhB,IAAIqE,EAAepE,GAAqBkE,GACpCE,IAAiB,IAAK,KACxB,EAAe,CAAE,KAAM,IAAK,GAAG,QAAS,IAAK,EAAE,EAC/C,GAAqBF,GAAaE,IAEhCA,EAAa,OAASC,GAAaD,EAAa,UAAYE,KAC1DvE,KAAuBmE,IACzBj5B,EAAG,cAAci5B,CAAS,EAC1B,GAAqBA,GAEvBj5B,EAAG,YAAYo5B,EAAWC,GAAgB/D,GAAc8D,EAAU,EAClE,EAAa,KAAOA,EACpB,EAAa,QAAUC,EAE3B,CACA,SAASC,IAAgB,CACvB,IAAMH,EAAepE,GAAqBD,IACtCqE,IAAiB,IAAK,IAAKA,EAAa,OAAS,IAAK,KACxDn5B,EAAG,YAAYm5B,EAAa,KAAM,IAAI,EACtC,EAAa,KAAO,IAAK,GACzB,EAAa,QAAU,IAAK,GAEhC,CACA,SAASI,IAAuB,CAC9B,GAAI,CACFv5B,EAAG,qBAAqB,MAAMA,EAAI,SAAS,CAC7C,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASC,IAAuB,CAC9B,GAAI,CACFz5B,EAAG,qBAAqB,MAAMA,EAAI,SAAS,CAC7C,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASE,IAAgB,CACvB,GAAI,CACF15B,EAAG,cAAc,MAAMA,EAAI,SAAS,CACtC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASG,IAAgB,CACvB,GAAI,CACF35B,EAAG,cAAc,MAAMA,EAAI,SAAS,CACtC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASI,IAA0B,CACjC,GAAI,CACF55B,EAAG,wBAAwB,MAAMA,EAAI,SAAS,CAChD,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASK,GAA0B,CACjC,GAAI,CACF75B,EAAG,wBAAwB,MAAMA,EAAI,SAAS,CAChD,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASM,IAAe,CACtB,GAAI,CACF95B,EAAG,aAAa,MAAMA,EAAI,SAAS,CACrC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASO,GAAe,CACtB,GAAI,CACF/5B,EAAG,aAAa,MAAMA,EAAI,SAAS,CACrC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASQ,GAAa,CACpB,GAAI,CACFh6B,EAAG,WAAW,MAAMA,EAAI,SAAS,CACnC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASS,IAAa,CACpB,GAAI,CACFj6B,EAAG,WAAW,MAAMA,EAAI,SAAS,CACnC,OAASw5B,EAAO,CACd,QAAQ,MAAM,oBAAqBA,CAAK,CAC1C,CACF,CACA,SAASU,GAAQ,EAAU,CACrBhF,GAAe,OAAOiF,CAAQ,IAAM,KACtCn6B,EAAG,QAAQm6B,EAAS,EAAGA,EAAS,EAAGA,EAAS,EAAGA,EAAS,CAAC,EACzDjF,GAAe,KAAKiF,CAAQ,EAEhC,CACA,SAAShL,GAAS,EAAW,CACvBgG,GAAgB,OAAOiF,CAAS,IAAM,KACxCp6B,EAAG,SAASo6B,EAAU,EAAGA,EAAU,EAAGA,EAAU,EAAGA,EAAU,CAAC,EAC9DjF,GAAgB,KAAKiF,CAAS,EAElC,CACA,SAASC,GAAiB,EAAe,EAAS,CAChD,IAAInpB,EAAUoiB,EAAc,IAAI7pB,CAAO,EACnCyH,IAAY,IAAK,KACnB,kBAA0B,IAAI,QAC9BoiB,EAAc,IAAI7pB,EAASyH,CAAO,GAEpC,IAAIopB,EAAappB,EAAQ,IAAIqpB,CAAa,EACtCD,IAAe,IAAK,KACtB,EAAat6B,EAAG,qBAAqByJ,EAAS8wB,EAAc,IAAI,EAChErpB,EAAQ,IAAIqpB,EAAeD,CAAU,EAEzC,CACA,SAASE,EAAoB,EAAe,EAAS,CAEnD,IAAMF,EADUhH,EAAc,IAAI7pB,CACT,CAAC,CAAC,IAAI8wB,CAAa,EACxClH,EAAY,IAAI5pB,CAAO,IAAM6wB,IAC/Bt6B,EAAG,oBAAoByJ,EAAS6wB,EAAYC,EAAc,mBAAmB,EAC7ElH,EAAY,IAAI5pB,EAAS6wB,CAAU,EAEvC,CACA,SAASruB,IAAQ,CACfjM,EAAG,QAAQA,EAAG,KAAK,EACnBA,EAAG,QAAQA,EAAG,SAAS,EACvBA,EAAG,QAAQA,EAAG,UAAU,EACxBA,EAAG,QAAQA,EAAG,mBAAmB,EACjCA,EAAG,QAAQA,EAAG,YAAY,EAC1BA,EAAG,QAAQA,EAAG,YAAY,EAC1BA,EAAG,QAAQA,EAAG,wBAAwB,EACtCA,EAAG,cAAcA,EAAG,QAAQ,EAC5BA,EAAG,UAAUA,EAAG,IAAKA,EAAG,IAAI,EAC5BA,EAAG,kBAAkBA,EAAG,IAAKA,EAAG,KAAMA,EAAG,IAAKA,EAAG,IAAI,EACrDA,EAAG,WAAW,EAAG,EAAG,EAAG,CAAC,EACxBA,EAAG,UAAU,GAAM,GAAM,GAAM,EAAI,EACnCA,EAAG,WAAW,EAAG,EAAG,EAAG,CAAC,EACxBA,EAAG,UAAU,EAAI,EACjBA,EAAG,UAAUA,EAAG,IAAI,EACpBA,EAAG,WAAW,CAAC,EACfA,EAAG,YAAY,UAAU,EACzBA,EAAG,YAAYA,EAAG,OAAQ,EAAG,UAAU,EACvCA,EAAG,UAAUA,EAAG,KAAMA,EAAG,KAAMA,EAAG,IAAI,EACtCA,EAAG,aAAa,CAAC,EACjBA,EAAG,SAASA,EAAG,IAAI,EACnBA,EAAG,UAAUA,EAAG,GAAG,EACnBA,EAAG,cAAc,EAAG,CAAC,EACrBA,EAAG,cAAcA,EAAG,QAAQ,EAC5BA,EAAG,gBAAgBA,EAAG,YAAa,IAAI,EACvCA,EAAG,gBAAgBA,EAAG,iBAAkB,IAAI,EAC5CA,EAAG,gBAAgBA,EAAG,iBAAkB,IAAI,EAC5CA,EAAG,WAAW,IAAI,EAClBA,EAAG,UAAU,CAAC,EACdA,EAAG,QAAQ,EAAG,EAAGA,EAAG,OAAO,MAAOA,EAAG,OAAO,MAAM,EAClDA,EAAG,SAAS,EAAG,EAAGA,EAAG,OAAO,MAAOA,EAAG,OAAO,MAAM,EACnD,EAAsB,CAAC,EACvB,GAAqB,KACrB,GAAuB,CAAC,EACxB,EAA2B,CAAC,EAC5B,kBAAqC,IAAI,QACzC,EAAqB,CAAC,EACtB,EAAiB,KACjB,EAAyB,GACzB,EAAkB,KAClB,EAAuB,KACvB,EAAkB,KAClB,EAAkB,KAClB,EAA4B,KAC5B,EAAuB,KACvB,EAAuB,KACvB,EAAoB,IAAI4G,EAAM,EAAG,EAAG,CAAC,EACrC,EAAoB,EACpB,EAA2B,GAC3B,EAAmB,KACnB,EAAkB,KAClB,EAAmB,KACnB,EAA6B,KAC7B,EAA4B,KAC5BsuB,GAAe,IAAI,EAAG,EAAGl1B,EAAG,OAAO,MAAOA,EAAG,OAAO,MAAM,EAC1Dm1B,GAAgB,IAAI,EAAG,EAAGn1B,EAAG,OAAO,MAAOA,EAAG,OAAO,MAAM,EAC3DkzB,EAAY,MAAM,EAClBC,EAAY,MAAM,EAClBC,EAAc,MAAM,CACtB,CACA,MAAO,CACL,QAAS,CACP,MAAOF,EACP,MAAOC,EACP,QAASC,CACX,EACA,UACA,UACA,mBACA,eACA,cACA,eACA,cACA,eACA,cACA,gBACA,mBACA,kBACA,iBACA,eACA,iBACA,wBACA,wBACA,aACA,cACA,oBACA,sBACA,gBACA,eACA,iBACA,iBACA,2BACA,0BACA,WACA,YACA,QACF,CACF,CACA,SAASqH,GAAQ,EAAS,EAAS,CACjC,IAAMC,EAAcppB,EAAQ,OAASA,EAAQ,MAAM,MAAQA,EAAQ,MAAM,MAAQA,EAAQ,MAAM,OAAS,EAYxG,OAXIopB,EAAcC,GAChB,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,EAAID,EAAcC,EACjC,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,GAAK,EAAIrpB,EAAQ,OAAO,GAAK,IAE5C,EAAQ,OAAO,EAAIqpB,EAAUD,EAC7B,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,GAAK,EAAIppB,EAAQ,OAAO,GAAK,EAC5C,EAAQ,OAAO,EAAI,GAEdA,CACT,CACA,SAASspB,GAAM,EAAS,EAAS,CAC/B,IAAMF,EAAcppB,EAAQ,OAASA,EAAQ,MAAM,MAAQA,EAAQ,MAAM,MAAQA,EAAQ,MAAM,OAAS,EAYxG,OAXIopB,EAAcC,GAChB,EAAQ,OAAO,EAAIA,EAAUD,EAC7B,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,GAAK,EAAIppB,EAAQ,OAAO,GAAK,EAC5C,EAAQ,OAAO,EAAI,IAEnB,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,EAAIopB,EAAcC,EACjC,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,GAAK,EAAIrpB,EAAQ,OAAO,GAAK,GAEvCA,CACT,CACA,SAASupB,GAAK,EAAS,CAKrB,MAJA,GAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,EAAI,EACnB,EAAQ,OAAO,EAAI,EACZvpB,CACT,CACA,SAASwpB,GAAc,EAAO,EAAQ,EAAQ,EAAM,CAClD,IAAMC,EAAiBC,GAAyB17B,CAAI,EACpD,OAAQ27B,EAAR,CAEE,KAAKC,GACH,OAAOjoB,EAAQC,EACjB,KAAKioB,GACH,OAAOloB,EAAQC,EACjB,KAAKkoB,GACH,OAAOnoB,EAAQC,EAAS,EAC1B,KAAKmoB,GACH,OAAOpoB,EAAQC,EAAS6nB,EAAe,WAAaA,EAAe,WACrE,KAAKO,GACH,OAAOroB,EAAQC,EAAS6nB,EAAe,WAAaA,EAAe,WACrE,KAAKQ,GACH,OAAOtoB,EAAQC,EAAS,EAAI6nB,EAAe,WAAaA,EAAe,WACzE,KAAKS,GACH,OAAOvoB,EAAQC,EAAS,EAAI6nB,EAAe,WAAaA,EAAe,WACzE,KAAKU,GACH,OAAOxoB,EAAQC,EAAS,EAAI6nB,EAAe,WAAaA,EAAe,WACzE,KAAKW,GACH,OAAOzoB,EAAQC,EAAS,EAAI6nB,EAAe,WAAaA,EAAe,WACzE,KAAKY,GACH,OAAO1oB,EAAQC,EAAS,EAAI6nB,EAAe,WAAaA,EAAe,WAEzE,KAAKa,GACL,KAAKC,GACH,OAAO,KAAK,OAAO5oB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,EACtE,KAAK4oB,GACL,KAAKC,GACH,OAAO,KAAK,OAAO9oB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GAEtE,KAAK8oB,GACL,KAAKC,GACH,OAAO,KAAK,IAAIhpB,EAAO,EAAE,EAAI,KAAK,IAAIC,EAAQ,CAAC,EAAI,EACrD,KAAKgpB,GACL,KAAKC,GACH,OAAO,KAAK,IAAIlpB,EAAO,CAAC,EAAI,KAAK,IAAIC,EAAQ,CAAC,EAAI,EAEpD,KAAKkpB,GACL,KAAKC,GACH,OAAO,KAAK,OAAOppB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,EACtE,KAAKopB,GACH,OAAO,KAAK,OAAOrpB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GAEtE,KAAKqpB,GACH,OAAO,KAAK,OAAOtpB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAKspB,GACH,OAAO,KAAK,OAAOvpB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAKupB,GACH,OAAO,KAAK,OAAOxpB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAKwpB,GACH,OAAO,KAAK,OAAOzpB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAKypB,GACH,OAAO,KAAK,OAAO1pB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAK0pB,GACH,OAAO,KAAK,OAAO3pB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAK2pB,GACH,OAAO,KAAK,OAAO5pB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAK4pB,GACH,OAAO,KAAK,OAAO7pB,EAAQ,GAAK,CAAC,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACtE,KAAK6pB,GACH,OAAO,KAAK,OAAO9pB,EAAQ,GAAK,EAAE,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACvE,KAAK8pB,GACH,OAAO,KAAK,OAAO/pB,EAAQ,GAAK,EAAE,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACvE,KAAK+pB,GACH,OAAO,KAAK,OAAOhqB,EAAQ,GAAK,EAAE,EAAI,KAAK,OAAOC,EAAS,GAAK,CAAC,EAAI,GACvE,KAAKgqB,GACH,OAAO,KAAK,OAAOjqB,EAAQ,GAAK,EAAE,EAAI,KAAK,OAAOC,EAAS,GAAK,EAAE,EAAI,GACxE,KAAKiqB,GACH,OAAO,KAAK,OAAOlqB,EAAQ,IAAM,EAAE,EAAI,KAAK,OAAOC,EAAS,GAAK,EAAE,EAAI,GACzE,KAAKkqB,GACH,OAAO,KAAK,OAAOnqB,EAAQ,IAAM,EAAE,EAAI,KAAK,OAAOC,EAAS,IAAM,EAAE,EAAI,GAE1E,KAAKmqB,GACL,KAAKC,GACL,KAAKC,GACH,OAAO,KAAK,KAAKtqB,EAAQ,CAAC,EAAI,KAAK,KAAKC,EAAS,CAAC,EAAI,GAExD,KAAKsqB,GACL,KAAKC,GACH,OAAO,KAAK,KAAKxqB,EAAQ,CAAC,EAAI,KAAK,KAAKC,EAAS,CAAC,EAAI,EACxD,KAAKwqB,GACL,KAAKC,GACH,OAAO,KAAK,KAAK1qB,EAAQ,CAAC,EAAI,KAAK,KAAKC,EAAS,CAAC,EAAI,EAC1D,CACA,MAAU,MACR,+CAA+C+nB,EAAO,SACxD,CACF,CACA,SAASD,GAAyB,EAAM,CACtC,OAAQ17B,EAAR,CACE,KAAKs+B,GACL,KAAKC,GACH,MAAO,CAAE,WAAY,EAAG,WAAY,CAAE,EACxC,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,MAAO,CAAE,WAAY,EAAG,WAAY,CAAE,EACxC,KAAKC,GACL,KAAKC,GACH,MAAO,CAAE,WAAY,EAAG,WAAY,CAAE,EACxC,KAAKC,GACL,KAAKpyB,GACL,KAAK2L,GACH,MAAO,CAAE,WAAY,EAAG,WAAY,CAAE,EACxC,KAAK0mB,GACH,MAAO,CAAE,WAAY,EAAG,WAAY,CAAE,CAC1C,CACA,MAAU,MAAM,wBAAwB9+B,EAAK,EAAE,CACjD,CAOA,SAAS++B,GAAc,EAAK,EAAY,EAAO,EAAY,EAAc,EAAO,EAAM,CACpF,IAAMC,EAAqBrxB,EAAW,IAAI,sCAAsC,EAAIA,EAAW,IAAI,sCAAsC,EAAI,KACvIsxB,EAAuCnrC,IAAc,QAAsB,iBAAiB,KAAKA,EAAU,SAAS,EACpHorC,EAAmB,IAAIz6B,EACvB06B,kBAAiC,IAAI,QACvCC,EACEC,kBAA2B,IAAI,QACjCC,EAAqB,GACzB,GAAI,CACF,EAAqB,OAAO,gBAAoB,KAAe,IAAI,gBAAgB,EAAG,CAAC,CAAC,CAAC,WAAW,IAAI,IAAM,IAChH,MAAc,CACd,CACA,SAASC,EAAa,EAAO,EAAQ,CACnC,OAAOD,EAEL,IAAI,gBAAgB3rB,EAAOC,CAAM,EAC/B1T,GAAgB,QAAQ,CAC9B,CACA,SAASs/B,EAAY,EAAO,EAAgB,EAAS,CACnD,IAAIC,EAAQ,EACN1J,EAAa2J,GAAcv+B,CAAK,EAItC,IAHI40B,EAAW,MAAQ4J,GAAW5J,EAAW,OAAS4J,KACpD,EAAQA,EAAU,KAAK,IAAI5J,EAAW,MAAOA,EAAW,MAAM,GAE5D0J,EAAQ,EAAG,CACb,GAAI,OAAO,iBAAqB,KAAet+B,aAAiB,kBAAoB,OAAO,kBAAsB,KAAeA,aAAiB,mBAAqB,OAAO,YAAgB,KAAeA,aAAiB,aAAe,OAAO,WAAe,KAAeA,aAAiB,WAAY,CAC5S,IAAMwS,EAAQ,KAAK,MAAM8rB,EAAQ1J,EAAW,KAAK,EAC3CniB,EAAS,KAAK,MAAM6rB,EAAQ1J,EAAW,MAAM,EAC/CqJ,IAAa,IAAK,KAAG,EAAWG,EAAa5rB,EAAOC,CAAM,GAC9D,IAAMxT,EAASw/B,EAAiBL,EAAa5rB,EAAOC,CAAM,EAAIwrB,EAM9D,MALA,GAAO,MAAQzrB,EACf,EAAO,OAASC,EAEhBxT,EADuB,WAAW,IAC5B,CAAC,CAAC,UAAUe,EAAO,EAAG,EAAGwS,EAAOC,CAAM,EAC5C,QAAQ,KAAK,uDAAyDmiB,EAAW,MAAQ,IAAMA,EAAW,OAAS,SAAWpiB,EAAQ,IAAMC,EAAS,IAAI,EAClJxT,CACT,CAIE,MAHI,SAAUe,GACZ,QAAQ,KAAK,yDAA2D40B,EAAW,MAAQ,IAAMA,EAAW,OAAS,IAAI,EAEpH50B,CAEX,CACA,OAAOA,CACT,CACA,SAAS0+B,EAA4B,EAAS,CAC5C,OAAO7tB,EAAQ,iBAAmBA,EAAQ,YAAc0d,IAAiB1d,EAAQ,YAAA,IACnF,CACA,SAAS8tB,EAAe,EAAQ,CAC9BC,EAAI,eAAe/kC,CAAM,CAC3B,CACA,SAASglC,EAAkB,EAAoB,EAAU,EAAQ,EAAY,EAAsB,GAAO,CACxG,GAAIC,IAAuB,KAAM,CAC/B,GAAIF,EAAIE,KAAwB,IAAK,GAAG,OAAOF,EAAIE,GACnD,QAAQ,KAAK,2EAA6EA,EAAqB,GAAG,CACpH,CACA,IAAIC,EAAiBC,EA8CrB,GA7CIA,IAAaJ,EAAI,MACfK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,MAC3CK,IAAWL,EAAI,aAAY,EAAiBA,EAAI,MAChDK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,KAErDI,IAAaJ,EAAI,cACfK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,MACnDK,IAAWL,EAAI,iBAAgB,EAAiBA,EAAI,OACpDK,IAAWL,EAAI,eAAc,EAAiBA,EAAI,OAClDK,IAAWL,EAAI,OAAM,EAAiBA,EAAI,KAC1CK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,MAC3CK,IAAWL,EAAI,MAAK,EAAiBA,EAAI,OAE3CI,IAAaJ,EAAI,KACfK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,OAC3CK,IAAWL,EAAI,aAAY,EAAiBA,EAAI,OAChDK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,MAErDI,IAAaJ,EAAI,aACfK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,OACnDK,IAAWL,EAAI,iBAAgB,EAAiBA,EAAI,QACpDK,IAAWL,EAAI,eAAc,EAAiBA,EAAI,QAClDK,IAAWL,EAAI,OAAM,EAAiBA,EAAI,MAC1CK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,OAC3CK,IAAWL,EAAI,MAAK,EAAiBA,EAAI,QAE3CI,IAAaJ,EAAI,cACfK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,QACnDK,IAAWL,EAAI,iBAAgB,EAAiBA,EAAI,SACpDK,IAAWL,EAAI,eAAc,EAAiBA,EAAI,SAClDK,IAAWL,EAAI,OAAM,EAAiBA,EAAI,OAC1CK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,QAC3CK,IAAWL,EAAI,MAAK,EAAiBA,EAAI,SAE3CI,IAAaJ,EAAI,eACfK,IAAWL,EAAI,gBAAe,EAAiBA,EAAI,SACnDK,IAAWL,EAAI,iBAAgB,EAAiBA,EAAI,UACpDK,IAAWL,EAAI,eAAc,EAAiBA,EAAI,UAClDK,IAAWL,EAAI,OAAM,EAAiBA,EAAI,QAC1CK,IAAWL,EAAI,QAAO,EAAiBA,EAAI,SAC3CK,IAAWL,EAAI,MAAK,EAAiBA,EAAI,UAE3CI,IAAaJ,EAAI,KACfK,IAAWL,EAAI,2BAA0B,EAAiBA,EAAI,SAEhEI,IAAaJ,EAAI,KAAM,CACzB,IAAMM,EAAWC,EAAsBC,GAAiB76B,GAAgB,YAAYsZ,CAAU,EAC1FohB,IAAWL,EAAI,QAAO,EAAiBA,EAAI,SAC3CK,IAAWL,EAAI,aAAY,EAAiBA,EAAI,SAChDK,IAAWL,EAAI,gBAAe,EAAiBM,IAAal3B,GAAe42B,EAAI,aAAeA,EAAI,OAClGK,IAAWL,EAAI,yBAAwB,EAAiBA,EAAI,OAC5DK,IAAWL,EAAI,yBAAwB,EAAiBA,EAAI,QAClE,CAIA,OAHIG,IAAmBH,EAAI,MAAQG,IAAmBH,EAAI,MAAQG,IAAmBH,EAAI,OAASG,IAAmBH,EAAI,OAASG,IAAmBH,EAAI,SAAWG,IAAmBH,EAAI,UACzLpyB,EAAW,IAAI,wBAAwB,EAElCuyB,CACT,CACA,SAASM,EAAuB,EAAY,EAAW,CACrD,IAAIC,EAmBJ,OAlBIC,EACEC,IAAc,MAAQA,IAAc9B,IAAmB8B,IAAcC,GACvE,EAAmBb,EAAI,iBACdY,IAAA,KACT,EAAmBZ,EAAI,kBACdY,IAAcnC,KACvB,EAAmBuB,EAAI,iBACvB,QAAQ,KAAK,+FAA+F,GAG1GY,IAAc,MAAQA,IAAc9B,IAAmB8B,IAAcC,GACvE,EAAmBb,EAAI,kBACdY,IAAA,KACT,EAAmBZ,EAAI,mBACdY,IAAcnC,KACvB,EAAmBuB,EAAI,mBAGpBU,CACT,CACA,SAASI,EAAa,EAAS,EAAO,CAQlC,OAPEhB,EAA4B7tB,CAAO,IAAM,IAAQA,EAAQ,sBAAwBA,EAAQ,YAAc0d,IAAiB1d,EAAQ,YAAA,KAC3H,KAAK,KAAK,KAAK,IAAI7Q,EAAM,MAAOA,EAAM,MAAM,CAAC,EAAI,EAC/C6Q,EAAQ,UAAY,IAAK,IAAKA,EAAQ,QAAQ,OAAS,EACzDA,EAAQ,QAAQ,OACdA,EAAQ,qBAAuB,MAAM,QAAQA,EAAQ,KAAK,EAC5D7Q,EAAM,QAAQ,OAEd,CAEX,CACA,SAASiR,EAAiB,EAAO,CAC/B,IAAMJ,EAAUK,EAAM,OACtBL,EAAQ,oBAAoB,UAAWI,CAAgB,EACvD0uB,EAAkB9uB,CAAO,EACrBA,EAAQ,gBACVmtB,EAAe,OAAOntB,CAAO,CAEjC,CACA,SAAS+uB,EAAsB,EAAO,CACpC,IAAM7uB,EAAeG,EAAM,OAC3BH,EAAa,oBAAoB,UAAW6uB,CAAqB,EACjEC,EAAuB9uB,CAAY,CACrC,CACA,SAAS4uB,EAAkB,EAAS,CAClC,IAAMG,EAAoBnwB,EAAW,IAAIkB,CAAO,EAChD,GAAIivB,EAAkB,cAAgB,IAAK,GAAG,OAC9C,IAAMhmC,EAAS+W,EAAQ,OACjBkvB,EAAgB7B,EAAS,IAAIpkC,CAAM,EACzC,GAAIimC,EAAe,CACjB,IAAMnH,EAAemH,EAAcD,EAAkB,YACrD,EAAa,YACTlH,EAAa,YAAc,GAC7BoH,EAAcnvB,CAAO,EAEnB,OAAO,KAAKkvB,CAAa,CAAC,CAAC,SAAW,GACxC7B,EAAS,OAAOpkC,CAAM,CAE1B,CACA6V,EAAW,OAAOkB,CAAO,CAC3B,CACA,SAASmvB,EAAc,EAAS,CAC9B,IAAMF,EAAoBnwB,EAAW,IAAIkB,CAAO,EAChD+tB,EAAI,cAAckB,EAAkB,cAAc,EAClD,IAAMhmC,EAAS+W,EAAQ,OACjBkvB,EAAgB7B,EAAS,IAAIpkC,CAAM,EACzC,OAAOimC,EAAcD,EAAkB,YACvC,EAAK,OAAO,UACd,CACA,SAASD,EAAuB,EAAc,CAC5C,IAAMI,EAAyBtwB,EAAW,IAAIoB,CAAY,EAI1D,GAHIA,EAAa,cACfA,EAAa,aAAa,QAAQ,EAEhCA,EAAa,wBACf,IAAK,IAAIrS,EAAI,EAAGA,EAAI,EAAG,IAAK,CAC1B,GAAI,MAAM,QAAQuhC,EAAuB,mBAAmBvhC,EAAE,EAC5D,IAAK,IAAIwhC,EAAQ,EAAGA,EAAQD,EAAuB,mBAAmBvhC,EAAE,CAAC,OAAQ,IAASkgC,EAAI,kBAAkBqB,EAAuB,mBAAmBvhC,EAAE,CAACwhC,EAAM,OAEnKtB,EAAI,kBAAkBqB,EAAuB,mBAAmBvhC,EAAE,EAEhEuhC,EAAuB,oBAAoBrB,EAAI,mBAAmBqB,EAAuB,mBAAmBvhC,EAAE,CACpH,KACK,CACL,GAAI,MAAM,QAAQuhC,EAAuB,kBAAkB,EACzD,IAAK,IAAIC,EAAQ,EAAGA,EAAQD,EAAuB,mBAAmB,OAAQ,IAASrB,EAAI,kBAAkBqB,EAAuB,mBAAmBC,EAAM,OAE7JtB,EAAI,kBAAkBqB,EAAuB,kBAAkB,EAIjE,GAFIA,EAAuB,oBAAoBrB,EAAI,mBAAmBqB,EAAuB,kBAAkB,EAC3GA,EAAuB,gCAAgCrB,EAAI,kBAAkBqB,EAAuB,8BAA8B,EAClIA,EAAuB,yBACpB,IAAA,IAAIvhC,EAAI,EAAGA,EAAIuhC,EAAuB,yBAAyB,OAAQ,IACtEA,EAAuB,yBAAyBvhC,IAAIkgC,EAAI,mBAAmBqB,EAAuB,yBAAyBvhC,EAAE,EAGjIuhC,EAAuB,0BAA0BrB,EAAI,mBAAmBqB,EAAuB,wBAAwB,CAC7H,CACA,IAAM3oB,EAAWvG,EAAa,SAC9B,IAAK,IAAIrS,EAAI,EAAG+L,EAAK6M,EAAS,OAAQ5Y,EAAI+L,EAAI,IAAK,CACjD,IAAM01B,EAAuBxwB,EAAW,IAAI2H,EAAS5Y,EAAE,EACnDyhC,EAAqB,iBACvBvB,EAAI,cAAcuB,EAAqB,cAAc,EACrD,EAAK,OAAO,YAEdxwB,EAAW,OAAO2H,EAAS5Y,EAAE,CAC/B,CACAiR,EAAW,OAAOoB,CAAY,CAChC,CACA,IAAIqvB,EAAe,EACnB,SAASC,GAAoB,CAC3B,EAAe,CACjB,CACA,SAASC,GAAsB,CAC7B,IAAMC,EAAcH,EAKpB,OAJIG,GAAexpB,EAAa,aAC9B,QAAQ,KAAK,sCAAwCwpB,EAAc,+CAAiDxpB,EAAa,WAAW,EAE9I,GAAgB,EACTwpB,CACT,CACA,SAASC,EAAmB,EAAS,CACnC,IAAMjiC,EAAQ,CAAC,EAef,OAdAA,EAAM,KAAKsS,EAAQ,KAAK,EACxBtS,EAAM,KAAKsS,EAAQ,KAAK,EACxBtS,EAAM,KAAKsS,EAAQ,OAAS,CAAC,EAC7BtS,EAAM,KAAKsS,EAAQ,SAAS,EAC5BtS,EAAM,KAAKsS,EAAQ,SAAS,EAC5BtS,EAAM,KAAKsS,EAAQ,UAAU,EAC7BtS,EAAM,KAAKsS,EAAQ,cAAc,EACjCtS,EAAM,KAAKsS,EAAQ,MAAM,EACzBtS,EAAM,KAAKsS,EAAQ,IAAI,EACvBtS,EAAM,KAAKsS,EAAQ,eAAe,EAClCtS,EAAM,KAAKsS,EAAQ,gBAAgB,EACnCtS,EAAM,KAAKsS,EAAQ,KAAK,EACxBtS,EAAM,KAAKsS,EAAQ,eAAe,EAClCtS,EAAM,KAAKsS,EAAQ,UAAU,EACtBtS,EAAM,KAAK,CACpB,CACA,SAASkiC,EAAa,EAAS,EAAM,CACnC,IAAMX,EAAoBnwB,EAAW,IAAIkB,CAAO,EAEhD,GADIA,EAAQ,gBAAgB6vB,EAAmB7vB,CAAO,EAClDA,EAAQ,wBAA0B,IAASA,EAAQ,QAAU,GAAKivB,EAAkB,YAAcjvB,EAAQ,QAAS,CACrH,IAAM7Q,EAAQ6Q,EAAQ,MACtB,GAAI7Q,IAAU,KACZ,QAAQ,KAAK,yEAAyE,OACjF,GAAIA,EAAM,WAAa,GAC5B,QAAQ,KAAK,wEAAwE,MAChF,CACL2gC,GAAcb,EAAmBjvB,EAAS+vB,CAAI,EAC9C,MACF,CACF,CACAx5B,EAAM,YAAYw3B,EAAI,WAAYkB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,CACzF,CACA,SAASC,EAAkB,EAAS,EAAM,CACxC,IAAMf,EAAoBnwB,EAAW,IAAIkB,CAAO,EAC5CA,EAAQ,QAAU,GAAKivB,EAAkB,YAAcjvB,EAAQ,QACjE8vB,GAAcb,EAAmBjvB,EAAS+vB,CAAI,EAGhDx5B,EAAM,YAAYw3B,EAAI,iBAAkBkB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,CAC/F,CACA,SAASE,EAAa,EAAS,EAAM,CACnC,IAAMhB,EAAoBnwB,EAAW,IAAIkB,CAAO,EAC5CA,EAAQ,QAAU,GAAKivB,EAAkB,YAAcjvB,EAAQ,QACjE8vB,GAAcb,EAAmBjvB,EAAS+vB,CAAI,EAGhDx5B,EAAM,YAAYw3B,EAAI,WAAYkB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,CACzF,CACA,SAASG,GAAe,EAAS,EAAM,CACrC,IAAMjB,EAAoBnwB,EAAW,IAAIkB,CAAO,EAC5CA,EAAQ,QAAU,GAAKivB,EAAkB,YAAcjvB,EAAQ,QACjEmwB,GAAkBlB,EAAmBjvB,EAAS+vB,CAAI,EAGpDx5B,EAAM,YAAYw3B,EAAI,iBAAkBkB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,CAC/F,CACA,IAAMK,GAAe,EAClBC,IAAiBtC,EAAI,QACrBuC,IAAsBvC,EAAI,eAC1BwC,IAAyBxC,EAAI,eAChC,EACMyC,GAAa,EAChB9S,IAAgBqQ,EAAI,SACpB0C,IAA6B1C,EAAI,wBACjC2C,IAA4B3C,EAAI,uBAChC4C,IAAe5C,EAAI,QACnB6C,IAA4B7C,EAAI,uBAChC8C,IAA2B9C,EAAI,oBAClC,EACM+C,EAAc,EACjBC,IAAehD,EAAI,OACnBiD,IAAgBjD,EAAI,QACpBkD,IAAclD,EAAI,MAClB7kB,IAAmB6kB,EAAI,QACvBmD,IAAenD,EAAI,OACnBoD,IAAsBpD,EAAI,QAC1BqD,IAAiBrD,EAAI,SACrBsD,IAAkBtD,EAAI,QACzB,EACA,SAASuD,GAAqB,EAAa,EAAS,CAelD,GAdItxB,EAAQ,OAAA,MAAsBrE,EAAW,IAAI,0BAA0B,IAAM,KAAUqE,EAAQ,YAAA,MAA8BA,EAAQ,YAAc4wB,IAA6B5wB,EAAQ,YAAc0wB,IAA6B1wB,EAAQ,YAAc6wB,IAA4B7wB,EAAQ,YAAA,MAA8BA,EAAQ,YAAc4wB,IAA6B5wB,EAAQ,YAAc0wB,IAA6B1wB,EAAQ,YAAc6wB,KACzb,QAAQ,KAAK,0IAA0I,EAEzJ9C,EAAI,cAActxB,EAAasxB,EAAI,eAAgBqC,GAAapwB,EAAQ,MAAM,EAC9E+tB,EAAI,cAActxB,EAAasxB,EAAI,eAAgBqC,GAAapwB,EAAQ,MAAM,GAC1EvD,IAAgBsxB,EAAI,YAActxB,IAAgBsxB,EAAI,mBACxDA,EAAI,cAActxB,EAAasxB,EAAI,eAAgBqC,GAAapwB,EAAQ,MAAM,EAEhF+tB,EAAI,cAActxB,EAAasxB,EAAI,mBAAoByC,GAAWxwB,EAAQ,UAAU,EACpF+tB,EAAI,cAActxB,EAAasxB,EAAI,mBAAoByC,GAAWxwB,EAAQ,UAAU,EAChFA,EAAQ,kBACV+tB,EAAI,cAActxB,EAAasxB,EAAI,qBAAsBA,EAAI,sBAAsB,EACnFA,EAAI,cAActxB,EAAasxB,EAAI,qBAAsB+C,EAAY9wB,EAAQ,gBAAgB,GAE3FrE,EAAW,IAAI,gCAAgC,IAAM,GAAM,CAG7D,GAFIqE,EAAQ,YAAc0d,IACtB1d,EAAQ,YAAc0wB,IAA6B1wB,EAAQ,YAAc6wB,IACzE7wB,EAAQ,OAAA,MAAsBrE,EAAW,IAAI,0BAA0B,IAAM,GAAO,OACxF,GAAIqE,EAAQ,WAAa,GAAKlB,EAAW,IAAIkB,CAAO,CAAC,CAAC,oBAAqB,CACzE,IAAMhE,EAAYL,EAAW,IAAI,gCAAgC,EACjEoyB,EAAI,cAActxB,EAAaT,EAAU,2BAA4B,KAAK,IAAIgE,EAAQ,WAAYkG,EAAa,iBAAiB,CAAC,CAAC,EAClI,EAAW,IAAIlG,CAAO,CAAC,CAAC,oBAAsBA,EAAQ,UACxD,CACF,CACF,CACA,SAASuxB,GAAY,EAAmB,EAAS,CAC/C,IAAIC,EAAc,GACdvC,EAAkB,cAAgB,IAAK,KACzC,EAAkB,YAAc,GAChCjvB,EAAQ,iBAAiB,UAAWI,CAAgB,GAEtD,IAAMnX,EAAS+W,EAAQ,OACnBkvB,EAAgB7B,EAAS,IAAIpkC,CAAM,EACnCimC,IAAkB,IAAK,KACzB,EAAgB,CAAC,EACjB7B,EAAS,IAAIpkC,EAAQimC,CAAa,GAEpC,IAAMuC,EAAkB9B,EAAmB3vB,CAAO,EAClD,GAAIyxB,IAAoBxC,EAAkB,WAAY,CAChDC,EAAcuC,KAAqB,IAAK,KAC1C,EAAcA,GAAmB,CAC/B,QAAS1D,EAAI,cAAc,EAC3B,UAAW,CACb,EACA,EAAK,OAAO,WACZ,EAAc,IAEhB,EAAc0D,EAAgB,CAAC,YAC/B,IAAM1J,EAAemH,EAAcD,EAAkB,YACjDlH,IAAiB,IAAK,KACxB,EAAckH,EAAkB,WAAW,CAAC,YACxClH,EAAa,YAAc,GAC7BoH,EAAcnvB,CAAO,GAGzB,EAAkB,WAAayxB,EAC/B,EAAkB,eAAiBvC,EAAcuC,EAAgB,CAAC,OACpE,CACA,OAAOD,CACT,CACA,SAAS1B,GAAc,EAAmB,EAAS,EAAM,CACvD,IAAIrzB,EAAcsxB,EAAI,YAClB/tB,EAAQ,oBAAsBA,EAAQ,4BAA0B,EAAc+tB,EAAI,kBAClF/tB,EAAQ,kBAAiB,EAAc+tB,EAAI,YAC/C,IAAMyD,EAAcD,GAAYtC,EAAmBjvB,CAAO,EACpD/W,EAAS+W,EAAQ,OACvBzJ,EAAM,YAAYkG,EAAawyB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,EACpF,IAAM2B,EAAmB5yB,EAAW,IAAI7V,CAAM,EAC9C,GAAIA,EAAO,UAAYyoC,EAAiB,WAAaF,IAAgB,GAAM,CACzEj7B,EAAM,cAAcw3B,EAAI,SAAWgC,CAAI,EACvC,IAAMjjB,EAAmBpZ,GAAgB,aAAaA,GAAgB,iBAAiB,EACjFi+B,EAAmB3xB,EAAQ,aAAe4xB,GAAe,KAAOl+B,GAAgB,aAAasM,EAAQ,UAAU,EAC/G6xB,EAAmB7xB,EAAQ,aAAe4xB,IAAgB9kB,IAAqB6kB,EAAmB5D,EAAI,KAAOA,EAAI,sBACvHA,EAAI,YAAYA,EAAI,oBAAqB/tB,EAAQ,KAAK,EACtD+tB,EAAI,YAAYA,EAAI,+BAAgC/tB,EAAQ,gBAAgB,EAC5E+tB,EAAI,YAAYA,EAAI,iBAAkB/tB,EAAQ,eAAe,EAC7D+tB,EAAI,YAAYA,EAAI,mCAAoC8D,CAAgB,EACxE,IAAI1iC,EAAQq+B,EAAYxtB,EAAQ,MAAO,GAAOkG,EAAa,cAAc,EACzE,EAAQ4rB,GAAiB9xB,EAAS7Q,CAAK,EACvC,IAAMg/B,EAAW7xB,EAAM,QAAQ0D,EAAQ,OAAQA,EAAQ,UAAU,EAC3DouB,EAAS9xB,EAAM,QAAQ0D,EAAQ,IAAI,EACrCyuB,EAAmBT,EAAkBhuB,EAAQ,eAAgBmuB,EAAUC,EAAQpuB,EAAQ,WAAYA,EAAQ,cAAc,EAC7HsxB,GAAqB70B,EAAauD,CAAO,EACzC,IAAI+xB,EACEC,EAAUhyB,EAAQ,QAClBiyB,EAAgBjyB,EAAQ,iBAAmB,GAC3CkyB,EAAiBR,EAAiB,YAAc,IAAK,IAAKF,IAAgB,GAC1EW,EAAYlpC,EAAO,UACnBmpC,EAASvD,EAAa7uB,EAAS7Q,CAAK,EAC1C,GAAI6Q,EAAQ,eACV,EAAmBwuB,EAAuBxuB,EAAQ,SAAWqyB,GAAoBryB,EAAQ,IAAI,EACzFkyB,IACED,EACF17B,EAAM,aAAaw3B,EAAI,WAAY,EAAGU,EAAkBt/B,EAAM,MAAOA,EAAM,MAAM,EAEjFoH,EAAM,WAAWw3B,EAAI,WAAY,EAAGU,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQ,EAAGg/B,EAAUC,EAAQ,IAAI,QAGzG,GAAIpuB,EAAQ,cAAe,CAChC,GAAIgyB,EAAQ,OAAS,EAAG,CAClBC,GAAiBC,GACnB37B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkBuD,EAAQ,EAAE,CAAC,MAAOA,EAAQ,EAAE,CAAC,MAAM,EAElG,IAAK,IAAInkC,EAAI,EAAG+L,EAAKo4B,EAAQ,OAAQnkC,EAAI+L,EAAI,IAC3C,EAASo4B,EAAQnkC,GACbokC,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,WAAYlgC,EAAG,EAAG,EAAGkkC,EAAO,MAAOA,EAAO,OAAQ5D,EAAUC,EAAQ2D,EAAO,IAAI,EAGzGx7B,EAAM,WAAWw3B,EAAI,WAAYlgC,EAAG4gC,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ,EAAG5D,EAAUC,EAAQ2D,EAAO,IAAI,EAGvH,EAAQ,gBAAkB,EAC5B,MACME,GACEC,GACF37B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkBt/B,EAAM,MAAOA,EAAM,MAAM,EAEpFgjC,GACF57B,EAAM,cAAcw3B,EAAI,WAAY,EAAG,EAAG,EAAG5+B,EAAM,MAAOA,EAAM,OAAQg/B,EAAUC,EAAQj/B,EAAM,IAAI,GAGtGoH,EAAM,WAAWw3B,EAAI,WAAY,EAAGU,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQ,EAAGg/B,EAAUC,EAAQj/B,EAAM,IAAI,CAGtH,MAAO,GAAI6Q,EAAQ,oBAAqB,CACtC,GAAIA,EAAQ,yBAA0B,CAChCiyB,GAAiBC,GACnB37B,EAAM,aAAaw3B,EAAI,iBAAkBqE,EAAQ3D,EAAkBuD,EAAQ,EAAE,CAAC,MAAOA,EAAQ,EAAE,CAAC,OAAQ7iC,EAAM,KAAK,EAErH,IAAK,IAAItB,EAAI,EAAG+L,EAAKo4B,EAAQ,OAAQnkC,EAAI+L,EAAI,IAE3C,GADA,EAASo4B,EAAQnkC,GACbmS,EAAQ,SAAA,KAAuB,CACjC,GAAImuB,IAAa,KAAM,CACrB,GAAI8D,EACE,IAAAE,EAAW,CACb,GAAInyB,EAAQ,aAAa,KAAO,EAAG,CACjC,IAAMsyB,EAAkB9I,GAAcuI,EAAO,MAAOA,EAAO,OAAQ/xB,EAAQ,OAAQA,EAAQ,IAAI,EAC/F,IAAK,IAAMuyB,KAAcvyB,EAAQ,aAAc,CAC7C,IAAMwyB,EAAYT,EAAO,KAAK,SAC5BQ,EAAaD,EAAkBP,EAAO,KAAK,mBAC1CQ,EAAa,GAAKD,EAAkBP,EAAO,KAAK,iBACnD,EACAx7B,EAAM,wBAAwBw3B,EAAI,iBAAkBlgC,EAAG,EAAG,EAAG0kC,EAAYR,EAAO,MAAOA,EAAO,OAAQ,EAAG5D,EAAUqE,EAAW,EAAG,CAAC,CACpI,CACAxyB,EAAQ,kBAAkB,CAC5B,MACEzJ,EAAM,wBAAwBw3B,EAAI,iBAAkBlgC,EAAG,EAAG,EAAG,EAAGkkC,EAAO,MAAOA,EAAO,OAAQ5iC,EAAM,MAAOg/B,EAAU4D,EAAO,KAAM,EAAG,CAAC,CAEzI,OAEAx7B,EAAM,qBAAqBw3B,EAAI,iBAAkBlgC,EAAG4gC,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ5iC,EAAM,MAAO,EAAG4iC,EAAO,KAAM,EAAG,CAAC,CAExI,MACE,QAAQ,KAAK,gGAAgG,CAEjH,MACME,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,iBAAkBlgC,EAAG,EAAG,EAAG,EAAGkkC,EAAO,MAAOA,EAAO,OAAQ5iC,EAAM,MAAOg/B,EAAUC,EAAQ2D,EAAO,IAAI,EAG/Hx7B,EAAM,WAAWw3B,EAAI,iBAAkBlgC,EAAG4gC,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ5iC,EAAM,MAAO,EAAGg/B,EAAUC,EAAQ2D,EAAO,IAAI,CAI9I,KAAO,CACDE,GAAiBC,GACnB37B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkBuD,EAAQ,EAAE,CAAC,MAAOA,EAAQ,EAAE,CAAC,MAAM,EAElG,IAAK,IAAInkC,EAAI,EAAG+L,EAAKo4B,EAAQ,OAAQnkC,EAAI+L,EAAI,IAC3C,EAASo4B,EAAQnkC,GACbmS,EAAQ,SAAA,KAaNiyB,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,WAAYlgC,EAAG,EAAG,EAAGkkC,EAAO,MAAOA,EAAO,OAAQ5D,EAAUC,EAAQ2D,EAAO,IAAI,EAGzGx7B,EAAM,WAAWw3B,EAAI,WAAYlgC,EAAG4gC,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ,EAAG5D,EAAUC,EAAQ2D,EAAO,IAAI,EAjBjH5D,IAAa,KASf,QAAQ,KAAK,gGAAgG,EARzG8D,EACEE,GACF57B,EAAM,wBAAwBw3B,EAAI,WAAYlgC,EAAG,EAAG,EAAGkkC,EAAO,MAAOA,EAAO,OAAQ5D,EAAU4D,EAAO,IAAI,EAG3Gx7B,EAAM,qBAAqBw3B,EAAI,WAAYlgC,EAAG4gC,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ,EAAGA,EAAO,IAAI,CAerH,CACF,MAAO,GAAI/xB,EAAQ,mBAAoB,CACrC,GAAIiyB,EAIF,IAHIC,GACF37B,EAAM,aAAaw3B,EAAI,iBAAkBqE,EAAQ3D,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQA,EAAM,KAAK,EAEvGgjC,EAAW,CACb,GAAInyB,EAAQ,aAAa,KAAO,EAAG,CACjC,IAAMsyB,EAAkB9I,GAAcr6B,EAAM,MAAOA,EAAM,OAAQ6Q,EAAQ,OAAQA,EAAQ,IAAI,EAC7F,IAAK,IAAMuyB,KAAcvyB,EAAQ,aAAc,CAC7C,IAAMwyB,EAAYrjC,EAAM,KAAK,SAC3BojC,EAAaD,EAAkBnjC,EAAM,KAAK,mBACzCojC,EAAa,GAAKD,EAAkBnjC,EAAM,KAAK,iBAClD,EACAoH,EAAM,cAAcw3B,EAAI,iBAAkB,EAAG,EAAG,EAAGwE,EAAYpjC,EAAM,MAAOA,EAAM,OAAQ,EAAGg/B,EAAUC,EAAQoE,CAAS,CAC1H,CACAxyB,EAAQ,kBAAkB,CAC5B,MACEzJ,EAAM,cAAcw3B,EAAI,iBAAkB,EAAG,EAAG,EAAG,EAAG5+B,EAAM,MAAOA,EAAM,OAAQA,EAAM,MAAOg/B,EAAUC,EAAQj/B,EAAM,IAAI,CAE9H,OAEAoH,EAAM,WAAWw3B,EAAI,iBAAkB,EAAGU,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQA,EAAM,MAAO,EAAGg/B,EAAUC,EAAQj/B,EAAM,IAAI,CAEvI,MAAO,GAAI6Q,EAAQ,gBACbiyB,GACEC,GACF37B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQA,EAAM,KAAK,EAEjGgjC,GACF57B,EAAM,cAAcw3B,EAAI,WAAY,EAAG,EAAG,EAAG,EAAG5+B,EAAM,MAAOA,EAAM,OAAQA,EAAM,MAAOg/B,EAAUC,EAAQj/B,EAAM,IAAI,GAGtHoH,EAAM,WAAWw3B,EAAI,WAAY,EAAGU,EAAkBt/B,EAAM,MAAOA,EAAM,OAAQA,EAAM,MAAO,EAAGg/B,EAAUC,EAAQj/B,EAAM,IAAI,OAE1H,GAAI6Q,EAAQ,qBACb,IAAAkyB,EAAgB,CAClB,GAAID,EACF17B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkBt/B,EAAM,MAAOA,EAAM,MAAM,MACjF,CACL,IAAIwS,EAAQxS,EAAM,MAAOyS,EAASzS,EAAM,OACxC,IAAK,IAAI,EAAI,EAAG,EAAIijC,EAAQ,IAC1B77B,EAAM,WAAWw3B,EAAI,WAAY,EAAGU,EAAkB9sB,EAAOC,EAAQ,EAAGusB,EAAUC,EAAQ,IAAI,EAC9F,IAAU,EACV,IAAW,CAEf,CACF,OAEA,GAAI4D,EAAQ,OAAS,EAAG,CACtB,GAAIC,GAAiBC,EAAgB,CACnC,IAAMnO,EAAa2J,GAAcsE,EAAQ,EAAE,EAC3Cz7B,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkB1K,EAAW,MAAOA,EAAW,MAAM,CAClG,CACA,IAAK,IAAIl2B,EAAI,EAAG+L,EAAKo4B,EAAQ,OAAQnkC,EAAI+L,EAAI,IAC3C,EAASo4B,EAAQnkC,GACbokC,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,WAAYlgC,EAAG,EAAG,EAAGsgC,EAAUC,EAAQ2D,CAAM,EAGvEx7B,EAAM,WAAWw3B,EAAI,WAAYlgC,EAAG4gC,EAAkBN,EAAUC,EAAQ2D,CAAM,EAGlF,EAAQ,gBAAkB,EAC5B,MACE,GAAIE,EAAe,CACjB,GAAIC,EAAgB,CAClB,IAAMnO,EAAa2J,GAAcv+B,CAAK,EACtCoH,EAAM,aAAaw3B,EAAI,WAAYqE,EAAQ3D,EAAkB1K,EAAW,MAAOA,EAAW,MAAM,CAClG,CACIoO,GACF57B,EAAM,cAAcw3B,EAAI,WAAY,EAAG,EAAG,EAAGI,EAAUC,EAAQj/B,CAAK,CAExE,MACEoH,EAAM,WAAWw3B,EAAI,WAAY,EAAGU,EAAkBN,EAAUC,EAAQj/B,CAAK,EAI/E0+B,EAA4B7tB,CAAO,GACrC8tB,EAAerxB,CAAW,EAE5B,EAAiB,UAAYxT,EAAO,QAChC+W,EAAQ,UAAUA,EAAQ,SAASA,CAAO,CAChD,CACA,EAAkB,UAAYA,EAAQ,OACxC,CACA,SAASmwB,GAAkB,EAAmB,EAAS,EAAM,CAC3D,GAAInwB,EAAQ,MAAM,SAAW,EAAG,OAChC,IAAMwxB,EAAcD,GAAYtC,EAAmBjvB,CAAO,EACpD/W,EAAS+W,EAAQ,OACvBzJ,EAAM,YAAYw3B,EAAI,iBAAkBkB,EAAkB,eAAgBlB,EAAI,SAAWgC,CAAI,EAC7F,IAAM2B,EAAmB5yB,EAAW,IAAI7V,CAAM,EAC9C,GAAIA,EAAO,UAAYyoC,EAAiB,WAAaF,IAAgB,GAAM,CACzEj7B,EAAM,cAAcw3B,EAAI,SAAWgC,CAAI,EACvC,IAAMjjB,EAAmBpZ,GAAgB,aAAaA,GAAgB,iBAAiB,EACjFi+B,EAAmB3xB,EAAQ,aAAe4xB,GAAe,KAAOl+B,GAAgB,aAAasM,EAAQ,UAAU,EAC/G6xB,EAAmB7xB,EAAQ,aAAe4xB,IAAgB9kB,IAAqB6kB,EAAmB5D,EAAI,KAAOA,EAAI,sBACvHA,EAAI,YAAYA,EAAI,oBAAqB/tB,EAAQ,KAAK,EACtD+tB,EAAI,YAAYA,EAAI,+BAAgC/tB,EAAQ,gBAAgB,EAC5E+tB,EAAI,YAAYA,EAAI,iBAAkB/tB,EAAQ,eAAe,EAC7D+tB,EAAI,YAAYA,EAAI,mCAAoC8D,CAAgB,EACxE,IAAMY,EAAezyB,EAAQ,qBAAuBA,EAAQ,MAAM,EAAE,CAAC,oBAC/D0yB,EAAgB1yB,EAAQ,MAAM,IAAMA,EAAQ,MAAM,EAAE,CAAC,cACrD2yB,EAAY,CAAC,EACnB,IAAK,IAAI9kC,EAAI,EAAGA,EAAI,EAAG,IACjB,CAAC4kC,GAAgB,CAACC,EACpB,EAAU7kC,GAAK2/B,EAAYxtB,EAAQ,MAAMnS,GAAI,GAAMqY,EAAa,cAAc,EAE9E,EAAUrY,GAAK6kC,EAAgB1yB,EAAQ,MAAMnS,EAAE,CAAC,MAAQmS,EAAQ,MAAMnS,GAExE,EAAUA,GAAKikC,GAAiB9xB,EAAS2yB,EAAU9kC,EAAE,EAEvD,IAAMsB,EAAQwjC,EAAU,GAAIxE,EAAW7xB,EAAM,QAAQ0D,EAAQ,OAAQA,EAAQ,UAAU,EAAGouB,EAAS9xB,EAAM,QAAQ0D,EAAQ,IAAI,EAAGyuB,EAAmBT,EAAkBhuB,EAAQ,eAAgBmuB,EAAUC,EAAQpuB,EAAQ,UAAU,EAC3NiyB,EAAgBjyB,EAAQ,iBAAmB,GAC3CkyB,EAAiBR,EAAiB,YAAc,IAAK,IAAKF,IAAgB,GAC1EW,EAAYlpC,EAAO,UACrBmpC,EAASvD,EAAa7uB,EAAS7Q,CAAK,EACxCmiC,GAAqBvD,EAAI,iBAAkB/tB,CAAO,EAClD,IAAIgyB,EACJ,GAAIS,EAAc,CACZR,GAAiBC,GACnB37B,EAAM,aAAaw3B,EAAI,iBAAkBqE,EAAQ3D,EAAkBt/B,EAAM,MAAOA,EAAM,MAAM,EAE9F,IAAK,IAAItB,EAAI,EAAGA,EAAI,EAAG,IAAK,CAC1B,EAAU8kC,EAAU9kC,EAAE,CAAC,QACvB,IAAK,IAAIyB,EAAI,EAAGA,EAAI0iC,EAAQ,OAAQ,IAAK,CACvC,IAAMD,EAASC,EAAQ1iC,GACnB0Q,EAAQ,SAAA,KAaNiyB,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,4BAA8BlgC,EAAGyB,EAAG,EAAG,EAAGyiC,EAAO,MAAOA,EAAO,OAAQ5D,EAAUC,EAAQ2D,EAAO,IAAI,EAG9Hx7B,EAAM,WAAWw3B,EAAI,4BAA8BlgC,EAAGyB,EAAGm/B,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ,EAAG5D,EAAUC,EAAQ2D,EAAO,IAAI,EAjBtI5D,IAAa,KASf,QAAQ,KAAK,iGAAiG,EAR1G8D,EACEE,GACF57B,EAAM,wBAAwBw3B,EAAI,4BAA8BlgC,EAAGyB,EAAG,EAAG,EAAGyiC,EAAO,MAAOA,EAAO,OAAQ5D,EAAU4D,EAAO,IAAI,EAGhIx7B,EAAM,qBAAqBw3B,EAAI,4BAA8BlgC,EAAGyB,EAAGm/B,EAAkBsD,EAAO,MAAOA,EAAO,OAAQ,EAAGA,EAAO,IAAI,CAcxI,CACF,CACF,KAAO,CAEL,GADA,EAAU/xB,EAAQ,QACdiyB,GAAiBC,EAAgB,CAC/BF,EAAQ,OAAS,GAAG,IACxB,IAAMjO,EAAa2J,GAAciF,EAAU,EAAE,EAC7Cp8B,EAAM,aAAaw3B,EAAI,iBAAkBqE,EAAQ3D,EAAkB1K,EAAW,MAAOA,EAAW,MAAM,CACxG,CACA,IAAK,IAAIl2B,EAAI,EAAGA,EAAI,EAAG,IACrB,GAAI6kC,EAAe,CACbT,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,4BAA8BlgC,EAAG,EAAG,EAAG,EAAG8kC,EAAU9kC,EAAE,CAAC,MAAO8kC,EAAU9kC,EAAE,CAAC,OAAQsgC,EAAUC,EAAQuE,EAAU9kC,EAAE,CAAC,IAAI,EAGhJ0I,EAAM,WAAWw3B,EAAI,4BAA8BlgC,EAAG,EAAG4gC,EAAkBkE,EAAU9kC,EAAE,CAAC,MAAO8kC,EAAU9kC,EAAE,CAAC,OAAQ,EAAGsgC,EAAUC,EAAQuE,EAAU9kC,EAAE,CAAC,IAAI,EAE5J,IAAK,IAAIyB,EAAI,EAAGA,EAAI0iC,EAAQ,OAAQ,IAAK,CAEvC,IAAMY,EADSZ,EAAQ1iC,EACG,CAAC,MAAMzB,EAAE,CAAC,MAChCokC,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,4BAA8BlgC,EAAGyB,EAAI,EAAG,EAAG,EAAGsjC,EAAY,MAAOA,EAAY,OAAQzE,EAAUC,EAAQwE,EAAY,IAAI,EAGjJr8B,EAAM,WAAWw3B,EAAI,4BAA8BlgC,EAAGyB,EAAI,EAAGm/B,EAAkBmE,EAAY,MAAOA,EAAY,OAAQ,EAAGzE,EAAUC,EAAQwE,EAAY,IAAI,CAE/J,CACF,KAAO,CACDX,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,4BAA8BlgC,EAAG,EAAG,EAAG,EAAGsgC,EAAUC,EAAQuE,EAAU9kC,EAAE,EAGlG0I,EAAM,WAAWw3B,EAAI,4BAA8BlgC,EAAG,EAAG4gC,EAAkBN,EAAUC,EAAQuE,EAAU9kC,EAAE,EAE3G,IAAK,IAAIyB,EAAI,EAAGA,EAAI0iC,EAAQ,OAAQ,IAAK,CACvC,IAAMD,EAASC,EAAQ1iC,GACnB2iC,EACEE,GACF57B,EAAM,cAAcw3B,EAAI,4BAA8BlgC,EAAGyB,EAAI,EAAG,EAAG,EAAG6+B,EAAUC,EAAQ2D,EAAO,MAAMlkC,EAAE,EAGzG0I,EAAM,WAAWw3B,EAAI,4BAA8BlgC,EAAGyB,EAAI,EAAGm/B,EAAkBN,EAAUC,EAAQ2D,EAAO,MAAMlkC,EAAE,CAEpH,CACF,CAEJ,CACIggC,EAA4B7tB,CAAO,GACrC8tB,EAAeC,EAAI,gBAAgB,EAErC,EAAiB,UAAY9kC,EAAO,QAChC+W,EAAQ,UAAUA,EAAQ,SAASA,CAAO,CAChD,CACA,EAAkB,UAAYA,EAAQ,OACxC,CACA,SAAS6yB,GAAwB,EAAa,EAAc,EAAS,EAAY,EAAe,EAAO,CACrG,IAAM1E,EAAW7xB,EAAM,QAAQ0D,EAAQ,OAAQA,EAAQ,UAAU,EAC3DouB,EAAS9xB,EAAM,QAAQ0D,EAAQ,IAAI,EACnCyuB,EAAmBT,EAAkBhuB,EAAQ,eAAgBmuB,EAAUC,EAAQpuB,EAAQ,UAAU,EAEvG,GAAI,CAD2BlB,EAAW,IAAIoB,CACpB,CAAC,CAAC,sBAAuB,CACjD,IAAMyB,EAAQ,KAAK,IAAI,EAAGzB,EAAa,OAASmvB,CAAK,EAC/CztB,EAAS,KAAK,IAAI,EAAG1B,EAAa,QAAUmvB,CAAK,EACnDyD,IAAkB/E,EAAI,YAAc+E,IAAkB/E,EAAI,iBAC5Dx3B,EAAM,WAAWu8B,EAAezD,EAAOZ,EAAkB9sB,EAAOC,EAAQ1B,EAAa,MAAO,EAAGiuB,EAAUC,EAAQ,IAAI,EAErH73B,EAAM,WAAWu8B,EAAezD,EAAOZ,EAAkB9sB,EAAOC,EAAQ,EAAGusB,EAAUC,EAAQ,IAAI,CAErG,CACA73B,EAAM,gBAAgBw3B,EAAI,YAAazJ,CAAW,EAC9CyO,GAAmB7yB,CAAY,EACjC8sB,EAAmB,mCAAmCe,EAAI,YAAaiF,EAAYF,EAAeh0B,EAAW,IAAIkB,CAAO,CAAC,CAAC,eAAgB,EAAGizB,EAAuB/yB,CAAY,CAAC,GACxK4yB,IAAkB/E,EAAI,YAAc+E,GAAiB/E,EAAI,6BAA+B+E,GAAiB/E,EAAI,8BACtHA,EAAI,qBAAqBA,EAAI,YAAaiF,EAAYF,EAAeh0B,EAAW,IAAIkB,CAAO,CAAC,CAAC,eAAgBqvB,CAAK,EAEpH94B,EAAM,gBAAgBw3B,EAAI,YAAa,IAAI,CAC7C,CACA,SAASmF,EAAyB,EAAc,EAAc,EAAe,CAE3E,GADAnF,EAAI,iBAAiBA,EAAI,aAAcoF,CAAY,EAC/CjzB,EAAa,YAAa,CAC5B,IAAMkzB,EAAelzB,EAAa,aAC5ByuB,EAAYyE,GAAgBA,EAAa,eAAiBA,EAAa,KAAO,KAC9E3E,EAAmBD,EAAuBtuB,EAAa,cAAeyuB,CAAS,EAC/E0E,EAAmBnzB,EAAa,cAAgB6tB,EAAI,yBAA2BA,EAAI,iBACnFuF,EAAUL,EAAuB/yB,CAAY,EACtB6yB,GAAmB7yB,CACzB,EACrB8sB,EAAmB,kCAAkCe,EAAI,aAAcuF,EAAS7E,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EAChIqzB,EACTxF,EAAI,+BAA+BA,EAAI,aAAcuF,EAAS7E,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EAEvH6tB,EAAI,oBAAoBA,EAAI,aAAcU,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EAErG6tB,EAAI,wBAAwBA,EAAI,YAAasF,EAAkBtF,EAAI,aAAcoF,CAAY,CAC/F,KAAO,CACL,IAAM1sB,EAAWvG,EAAa,SAC9B,IAAK,IAAI,EAAI,EAAG,EAAIuG,EAAS,OAAQ,IAAK,CACxC,IAAMzG,EAAUyG,EAAS,GACnB0nB,EAAW7xB,EAAM,QAAQ0D,EAAQ,OAAQA,EAAQ,UAAU,EAC3DouB,EAAS9xB,EAAM,QAAQ0D,EAAQ,IAAI,EACnCyuB,EAAmBT,EAAkBhuB,EAAQ,eAAgBmuB,EAAUC,EAAQpuB,EAAQ,UAAU,EACjGszB,EAAUL,EAAuB/yB,CAAY,EAC/CqzB,GAAiBR,GAAmB7yB,CAAY,IAAM,GACxD6tB,EAAI,+BAA+BA,EAAI,aAAcuF,EAAS7E,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EAC9G6yB,GAAmB7yB,CAAY,EACxC8sB,EAAmB,kCAAkCe,EAAI,aAAcuF,EAAS7E,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EAEzI6tB,EAAI,oBAAoBA,EAAI,aAAcU,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,CAEvG,CACF,CACA6tB,EAAI,iBAAiBA,EAAI,aAAc,IAAI,CAC7C,CACA,SAASyF,GAAkB,EAAa,EAAc,CAEpD,GADetzB,GAAgBA,EAAa,wBAChC,MAAU,MAAM,yDAAyD,EAErF,GADA3J,EAAM,gBAAgBw3B,EAAI,YAAazJ,CAAW,EAC9C,EAAEpkB,EAAa,cAAgBA,EAAa,aAAa,gBAC3D,MAAU,MAAM,qEAAqE,GAEnF,CAACpB,EAAW,IAAIoB,EAAa,YAAY,CAAC,CAAC,gBAAkBA,EAAa,aAAa,MAAM,QAAUA,EAAa,OAASA,EAAa,aAAa,MAAM,SAAWA,EAAa,UACvL,EAAa,aAAa,MAAM,MAAQA,EAAa,MACrD,EAAa,aAAa,MAAM,OAASA,EAAa,OACtD,EAAa,aAAa,YAAc,IAE1C0vB,EAAa1vB,EAAa,aAAc,CAAC,EACzC,IAAMuzB,EAAoB30B,EAAW,IAAIoB,EAAa,YAAY,CAAC,CAAC,eAC9DozB,EAAUL,EAAuB/yB,CAAY,EACnD,GAAIA,EAAa,aAAa,SAAWwzB,GACnCX,GAAmB7yB,CAAY,EACjC8sB,EAAmB,mCAAmCe,EAAI,YAAaA,EAAI,iBAAkBA,EAAI,WAAY0F,EAAmB,EAAGH,CAAO,EAE1IvF,EAAI,qBAAqBA,EAAI,YAAaA,EAAI,iBAAkBA,EAAI,WAAY0F,EAAmB,CAAC,OAEjG,GAAIvzB,EAAa,aAAa,SAAWmyB,GAC1CU,GAAmB7yB,CAAY,EACjC8sB,EAAmB,mCAAmCe,EAAI,YAAaA,EAAI,yBAA0BA,EAAI,WAAY0F,EAAmB,EAAGH,CAAO,EAElJvF,EAAI,qBAAqBA,EAAI,YAAaA,EAAI,yBAA0BA,EAAI,WAAY0F,EAAmB,CAAC,OAG9G,MAAU,MAAM,6BAA6B,CAEjD,CACA,SAASE,GAAuB,EAAc,CAC5C,IAAMvE,EAAyBtwB,EAAW,IAAIoB,CAAY,EACpD0zB,EAAS1zB,EAAa,0BAA4B,GACxD,GAAIkvB,EAAuB,sBAAwBlvB,EAAa,aAAc,CAC5E,IAAMkzB,EAAelzB,EAAa,aAIlC,GAHIkvB,EAAuB,wBACzBA,EAAuB,uBAAuB,EAE5CgE,EAAc,CAChB,IAAMS,MAAqB,CACzB,OAAOzE,EAAuB,oBAC9B,OAAOA,EAAuB,uBAC9BgE,EAAa,oBAAoB,UAAWS,CAAY,CAC1D,EACAT,EAAa,iBAAiB,UAAWS,CAAY,EACrD,EAAuB,uBAAyBA,CAClD,CACA,EAAuB,oBAAsBT,CAC/C,CACA,GAAIlzB,EAAa,cAAgB,CAACkvB,EAAuB,0BAA2B,CAClF,GAAIwE,EAAQ,MAAU,MAAM,0DAA0D,EACtFJ,GAAkBpE,EAAuB,mBAAoBlvB,CAAY,CAC3E,MACE,GAAI0zB,EAAQ,CACV,EAAuB,mBAAqB,CAAC,EAC7C,IAAK,IAAI/lC,EAAI,EAAGA,EAAI,EAAG,IAErB,GADA0I,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,mBAAmBvhC,EAAE,EAC/EuhC,EAAuB,mBAAmBvhC,KAAO,IAAK,GACxD,EAAuB,mBAAmBA,GAAKkgC,EAAI,mBAAmB,EACtEmF,EAAyB9D,EAAuB,mBAAmBvhC,GAAIqS,EAAc,EAAK,MACrF,CACL,IAAMmzB,EAAmBnzB,EAAa,cAAgB6tB,EAAI,yBAA2BA,EAAI,iBACnFoF,EAAe/D,EAAuB,mBAAmBvhC,GAC/DkgC,EAAI,iBAAiBA,EAAI,aAAcoF,CAAY,EACnDpF,EAAI,wBAAwBA,EAAI,YAAasF,EAAkBtF,EAAI,aAAcoF,CAAY,CAC/F,CAEJ,MAEE,GADA58B,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,kBAAkB,EAC5EA,EAAuB,qBAAuB,IAAK,GACrD,EAAuB,mBAAqBrB,EAAI,mBAAmB,EACnEmF,EAAyB9D,EAAuB,mBAAoBlvB,EAAc,EAAK,MAClF,CACL,IAAMmzB,EAAmBnzB,EAAa,cAAgB6tB,EAAI,yBAA2BA,EAAI,iBACnFoF,EAAe/D,EAAuB,mBAC5CrB,EAAI,iBAAiBA,EAAI,aAAcoF,CAAY,EACnDpF,EAAI,wBAAwBA,EAAI,YAAasF,EAAkBtF,EAAI,aAAcoF,CAAY,CAC/F,CAGJ58B,EAAM,gBAAgBw3B,EAAI,YAAa,IAAI,CAC7C,CACA,SAAS+F,GAAe,EAAc,EAAc,EAAc,CAChE,IAAM1E,EAAyBtwB,EAAW,IAAIoB,CAAY,EACtD6zB,IAAiB,IAAK,IACxBlB,GAAwBzD,EAAuB,mBAAoBlvB,EAAcA,EAAa,QAAS6tB,EAAI,kBAAmBA,EAAI,WAAY,CAAC,EAE7IqF,IAAiB,IAAK,IACxBO,GAAuBzzB,CAAY,CAEvC,CACA,SAAS8zB,GAAkB,EAAc,CACvC,IAAMh0B,EAAUE,EAAa,QACvBkvB,EAAyBtwB,EAAW,IAAIoB,CAAY,EACpD+uB,EAAoBnwB,EAAW,IAAIkB,CAAO,EAChDE,EAAa,iBAAiB,UAAW6uB,CAAqB,EAC9D,IAAMtoB,EAAWvG,EAAa,SACxB0zB,EAAS1zB,EAAa,0BAA4B,GAClD+zB,EAA0BxtB,EAAS,OAAS,EAQlD,GAPKwtB,IACChF,EAAkB,iBAAmB,IAAK,KAC5C,EAAkB,eAAiBlB,EAAI,cAAc,GAEvD,EAAkB,UAAY/tB,EAAQ,QACtC,EAAK,OAAO,YAEV4zB,EAAQ,CACV,EAAuB,mBAAqB,CAAC,EAC7C,IAAK,IAAI/lC,EAAI,EAAGA,EAAI,EAAG,IACrB,GAAImS,EAAQ,SAAWA,EAAQ,QAAQ,OAAS,EAAG,CACjD,EAAuB,mBAAmBnS,GAAK,CAAC,EAChD,IAAK,IAAIwhC,EAAQ,EAAGA,EAAQrvB,EAAQ,QAAQ,OAAQ,IAClD,EAAuB,mBAAmBnS,EAAE,CAACwhC,GAAStB,EAAI,kBAAkB,CAEhF,KACE,GAAuB,mBAAmBlgC,GAAKkgC,EAAI,kBAAkB,CAG3E,KAAO,CACL,GAAI/tB,EAAQ,SAAWA,EAAQ,QAAQ,OAAS,EAAG,CACjD,EAAuB,mBAAqB,CAAC,EAC7C,IAAK,IAAIqvB,EAAQ,EAAGA,EAAQrvB,EAAQ,QAAQ,OAAQ,IAClD,EAAuB,mBAAmBqvB,GAAStB,EAAI,kBAAkB,CAE7E,KACE,GAAuB,mBAAqBA,EAAI,kBAAkB,EAEpE,GAAIkG,EACF,IAAK,IAAIpmC,EAAI,EAAG+L,EAAK6M,EAAS,OAAQ5Y,EAAI+L,EAAI,IAAK,CACjD,IAAM01B,EAAuBxwB,EAAW,IAAI2H,EAAS5Y,EAAE,EACnDyhC,EAAqB,iBAAmB,IAAK,KAC/C,EAAqB,eAAiBvB,EAAI,cAAc,EACxD,EAAK,OAAO,WAEhB,CAEF,GAAI7tB,EAAa,QAAU,GAAK6yB,GAAmB7yB,CAAY,IAAM,GAAO,CAC1E,EAAuB,+BAAiC6tB,EAAI,kBAAkB,EAC9E,EAAuB,yBAA2B,CAAC,EACnDx3B,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,8BAA8B,EAC5F,IAAK,IAAIvhC,EAAI,EAAGA,EAAI4Y,EAAS,OAAQ,IAAK,CACxC,IAAMytB,EAAWztB,EAAS5Y,GAC1B,EAAuB,yBAAyBA,GAAKkgC,EAAI,mBAAmB,EAC5EA,EAAI,iBAAiBA,EAAI,aAAcqB,EAAuB,yBAAyBvhC,EAAE,EACzF,IAAMsgC,EAAW7xB,EAAM,QAAQ43B,EAAS,OAAQA,EAAS,UAAU,EAC7D9F,EAAS9xB,EAAM,QAAQ43B,EAAS,IAAI,EACpCzF,EAAmBT,EAAkBkG,EAAS,eAAgB/F,EAAUC,EAAQ8F,EAAS,WAAYh0B,EAAa,mBAAqB,EAAI,EAC3IozB,EAAUL,EAAuB/yB,CAAY,EACnD6tB,EAAI,+BAA+BA,EAAI,aAAcuF,EAAS7E,EAAkBvuB,EAAa,MAAOA,EAAa,MAAM,EACvH6tB,EAAI,wBAAwBA,EAAI,YAAaA,EAAI,kBAAoBlgC,EAAGkgC,EAAI,aAAcqB,EAAuB,yBAAyBvhC,EAAE,CAC9I,CACAkgC,EAAI,iBAAiBA,EAAI,aAAc,IAAI,EACvC7tB,EAAa,cACf,EAAuB,yBAA2B6tB,EAAI,mBAAmB,EACzEmF,EAAyB9D,EAAuB,yBAA0BlvB,EAAc,EAAI,GAE9F3J,EAAM,gBAAgBw3B,EAAI,YAAa,IAAI,CAC7C,CACF,CACA,GAAI6F,EAAQ,CACVr9B,EAAM,YAAYw3B,EAAI,iBAAkBkB,EAAkB,cAAc,EACxEqC,GAAqBvD,EAAI,iBAAkB/tB,CAAO,EAClD,IAAK,IAAInS,EAAI,EAAGA,EAAI,EAAG,IACrB,GAAImS,EAAQ,SAAWA,EAAQ,QAAQ,OAAS,EAC9C,IAAK,IAAIqvB,EAAQ,EAAGA,EAAQrvB,EAAQ,QAAQ,OAAQ,IAClD6yB,GAAwBzD,EAAuB,mBAAmBvhC,EAAE,CAACwhC,GAAQnvB,EAAcF,EAAS+tB,EAAI,kBAAmBA,EAAI,4BAA8BlgC,EAAGwhC,CAAK,OAGvKwD,GAAwBzD,EAAuB,mBAAmBvhC,GAAIqS,EAAcF,EAAS+tB,EAAI,kBAAmBA,EAAI,4BAA8BlgC,EAAG,CAAC,EAG1JggC,EAA4B7tB,CAAO,GACrC8tB,EAAeC,EAAI,gBAAgB,EAErCx3B,EAAM,cAAc,CACtB,MAAO,GAAI09B,EAAyB,CAClC,IAAK,IAAI,EAAI,EAAGr6B,EAAK6M,EAAS,OAAQ,EAAI7M,EAAI,IAAK,CACjD,IAAMo5B,EAAavsB,EAAS,GACtB6oB,EAAuBxwB,EAAW,IAAIk0B,CAAU,EACtDz8B,EAAM,YAAYw3B,EAAI,WAAYuB,EAAqB,cAAc,EACrEgC,GAAqBvD,EAAI,WAAYiF,CAAU,EAC/CH,GAAwBzD,EAAuB,mBAAoBlvB,EAAc8yB,EAAYjF,EAAI,kBAAoB,EAAGA,EAAI,WAAY,CAAC,EACrIF,EAA4BmF,CAAU,GACxClF,EAAeC,EAAI,UAAU,CAEjC,CACAx3B,EAAM,cAAc,CACtB,KAAO,CACL,IAAI49B,EAAgBpG,EAAI,WAMxB,IALI7tB,EAAa,uBAAyBA,EAAa,4BACrD,EAAgBA,EAAa,sBAAwB6tB,EAAI,WAAaA,EAAI,kBAE5Ex3B,EAAM,YAAY49B,EAAelF,EAAkB,cAAc,EACjEqC,GAAqB6C,EAAen0B,CAAO,EACvCA,EAAQ,SAAWA,EAAQ,QAAQ,OAAS,EAC9C,IAAK,IAAIqvB,EAAQ,EAAGA,EAAQrvB,EAAQ,QAAQ,OAAQ,IAClD6yB,GAAwBzD,EAAuB,mBAAmBC,GAAQnvB,EAAcF,EAAS+tB,EAAI,kBAAmBoG,EAAe9E,CAAK,OAG9IwD,GAAwBzD,EAAuB,mBAAoBlvB,EAAcF,EAAS+tB,EAAI,kBAAmBoG,EAAe,CAAC,EAE/HtG,EAA4B7tB,CAAO,GACrC8tB,EAAeqG,CAAa,EAE9B59B,EAAM,cAAc,CACtB,CACI2J,EAAa,aACfyzB,GAAuBzzB,CAAY,CAEvC,CACA,SAASk0B,EAAyB,EAAc,CAC9C,IAAM3tB,EAAWvG,EAAa,SAC9B,IAAK,IAAIrS,EAAI,EAAG+L,EAAK6M,EAAS,OAAQ5Y,EAAI+L,EAAI,IAAK,CACjD,IAAMoG,EAAUyG,EAAS5Y,GACzB,GAAIggC,EAA4B7tB,CAAO,EAAG,CACxC,IAAMhX,EAASkX,EAAa,wBAA0B6tB,EAAI,iBAAmBA,EAAI,WAC3EhG,EAAejpB,EAAW,IAAIkB,CAAO,CAAC,CAAC,eAC7CzJ,EAAM,YAAYvN,EAAQ++B,CAAY,EACtC+F,EAAe9kC,CAAM,EACrBuN,EAAM,cAAc,CACtB,CACF,CACF,CACA,IAAM89B,GAAwB,CAAC,EACzBC,EAAwB,CAAC,EAC/B,SAASC,EAA8B,EAAc,CACnD,GAAIr0B,EAAa,QAAU,EAAG,CAC5B,GAAI6yB,GAAmB7yB,CAAY,IAAM,GAAO,CAC9C,IAAMuG,EAAWvG,EAAa,SACxByB,EAAQzB,EAAa,MACrB0B,EAAS1B,EAAa,OACxBs0B,EAAOzG,EAAI,iBACT0G,EAAav0B,EAAa,cAAgB6tB,EAAI,yBAA2BA,EAAI,iBAC7EqB,EAAyBtwB,EAAW,IAAIoB,CAAY,EACpD+zB,EAA0BxtB,EAAS,OAAS,EAClD,GAAIwtB,EACF,IAAK,IAAIpmC,EAAI,EAAGA,EAAI4Y,EAAS,OAAQ,IACnClQ,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,8BAA8B,EAC5FrB,EAAI,wBAAwBA,EAAI,YAAaA,EAAI,kBAAoBlgC,EAAGkgC,EAAI,aAAc,IAAI,EAC9Fx3B,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,kBAAkB,EAChFrB,EAAI,qBAAqBA,EAAI,iBAAkBA,EAAI,kBAAoBlgC,EAAGkgC,EAAI,WAAY,KAAM,CAAC,EAGrGx3B,EAAM,gBAAgBw3B,EAAI,iBAAkBqB,EAAuB,8BAA8B,EACjG74B,EAAM,gBAAgBw3B,EAAI,iBAAkBqB,EAAuB,kBAAkB,EACrF,IAAK,IAAIvhC,EAAI,EAAGA,EAAI4Y,EAAS,OAAQ,IAAK,CAKxC,GAJIvG,EAAa,qBACXA,EAAa,cAAa,GAAQ6tB,EAAI,kBACtC7tB,EAAa,eAAiBA,EAAa,uBAAsB,GAAQ6tB,EAAI,qBAE/EkG,EAAyB,CAC3BlG,EAAI,wBAAwBA,EAAI,iBAAkBA,EAAI,kBAAmBA,EAAI,aAAcqB,EAAuB,yBAAyBvhC,EAAE,EAC7I,IAAMk6B,EAAejpB,EAAW,IAAI2H,EAAS5Y,EAAE,CAAC,CAAC,eACjDkgC,EAAI,qBAAqBA,EAAI,iBAAkBA,EAAI,kBAAmBA,EAAI,WAAYhG,EAAc,CAAC,CACvG,CACAgG,EAAI,gBAAgB,EAAG,EAAGpsB,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,EAAQ4yB,EAAMzG,EAAI,OAAO,EAC3Ed,IAAkC,KACpC,GAAsB,OAAS,EAC/B,EAAsB,OAAS,EAC/BoH,GAAsB,KAAKtG,EAAI,kBAAoBlgC,CAAC,EAChDqS,EAAa,aAAeA,EAAa,qBAAuB,KAClEm0B,GAAsB,KAAKI,CAAU,EACrCH,EAAsB,KAAKG,CAAU,EACrC1G,EAAI,sBAAsBA,EAAI,iBAAkBuG,CAAqB,GAEvEvG,EAAI,sBAAsBA,EAAI,iBAAkBsG,EAAqB,EAEzE,CAGA,GAFA99B,EAAM,gBAAgBw3B,EAAI,iBAAkB,IAAI,EAChDx3B,EAAM,gBAAgBw3B,EAAI,iBAAkB,IAAI,EAC5CkG,EACF,IAAK,IAAIpmC,EAAI,EAAGA,EAAI4Y,EAAS,OAAQ,IAAK,CACxClQ,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,8BAA8B,EAC5FrB,EAAI,wBAAwBA,EAAI,YAAaA,EAAI,kBAAoBlgC,EAAGkgC,EAAI,aAAcqB,EAAuB,yBAAyBvhC,EAAE,EAC5I,IAAMk6B,EAAejpB,EAAW,IAAI2H,EAAS5Y,EAAE,CAAC,CAAC,eACjD0I,EAAM,gBAAgBw3B,EAAI,YAAaqB,EAAuB,kBAAkB,EAChFrB,EAAI,qBAAqBA,EAAI,iBAAkBA,EAAI,kBAAoBlgC,EAAGkgC,EAAI,WAAYhG,EAAc,CAAC,CAC3G,CAEFxxB,EAAM,gBAAgBw3B,EAAI,iBAAkBqB,EAAuB,8BAA8B,CACnG,MACE,GAAIlvB,EAAa,aAAeA,EAAa,qBAAuB,IAAS+sB,EAA+B,CAC1G,IAAMwH,EAAav0B,EAAa,cAAgB6tB,EAAI,yBAA2BA,EAAI,iBACnFA,EAAI,sBAAsBA,EAAI,iBAAkB,CAAC0G,CAAU,CAAC,CAC9D,CAEJ,CACF,CACA,SAASxB,EAAuB,EAAc,CAC5C,OAAO,KAAK,IAAI/sB,EAAa,WAAYhG,EAAa,OAAO,CAC/D,CACA,SAAS6yB,GAAmB,EAAc,CACxC,IAAM3D,EAAyBtwB,EAAW,IAAIoB,CAAY,EAC1D,OAAOA,EAAa,QAAU,GAAKvE,EAAW,IAAI,sCAAsC,IAAM,IAAQyzB,EAAuB,uBAAyB,EACxJ,CACA,SAASS,EAAmB,EAAS,CACnC,IAAM/sC,EAAQwY,EAAK,OAAO,MACtB6xB,EAAe,IAAIntB,CAAO,IAAMld,IAClCqqC,EAAe,IAAIntB,EAASld,CAAK,EACjCkd,EAAQ,OAAO,EAEnB,CACA,SAAS8xB,GAAiB,EAAS,EAAO,CACxC,IAAM9kB,EAAahN,EAAQ,WACrB2pB,EAAS3pB,EAAQ,OACjBhS,EAAOgS,EAAQ,KAWrB,OAVIA,EAAQ,sBAAwB,IAAQA,EAAQ,iBAAmB,IACnEgN,IAAeI,IAAwBJ,IAAe4kB,KACpDl+B,GAAgB,YAAYsZ,CAAU,IAAM7V,IAC1CwyB,IAAA,MAAyB37B,IAAA,OAC3B,QAAQ,KAAK,yFAAyF,EAGxG,QAAQ,MAAM,wDAAyDgf,CAAU,GAG9E7d,CACT,CACA,SAASu+B,GAAc,EAAO,CAW5B,OAVI,OAAO,iBAAqB,KAAev+B,aAAiB,kBAC9D,EAAiB,MAAQA,EAAM,cAAgBA,EAAM,MACrD,EAAiB,OAASA,EAAM,eAAiBA,EAAM,QAC9C,OAAO,WAAe,KAAeA,aAAiB,YAC/D,EAAiB,MAAQA,EAAM,aAC/B,EAAiB,OAASA,EAAM,gBAEhC,EAAiB,MAAQA,EAAM,MAC/B,EAAiB,OAASA,EAAM,QAE3B+9B,CACT,CACA,KAAK,oBAAsBuC,EAC3B,KAAK,kBAAoBD,EACzB,KAAK,aAAeI,EACpB,KAAK,kBAAoBI,EACzB,KAAK,aAAeC,EACpB,KAAK,eAAiBC,GACtB,KAAK,eAAiB4D,GACtB,KAAK,kBAAoBE,GACzB,KAAK,yBAA2BI,EAChC,KAAK,8BAAgCG,EACrC,KAAK,uBAAyBZ,GAC9B,KAAK,wBAA0Bd,GAC/B,KAAK,mBAAqBE,EAC5B,CACA,SAAS2B,GAAW,EAAI,EAAY,CAClC,SAASC,EAAQ,EAAG,EAAa/C,GAAc,CAC7C,IAAI51B,EACEqyB,EAAW36B,GAAgB,YAAYsZ,CAAU,EACvD,GAAI9c,IAAA,KAAwB,OAAOxB,EAAG,cACtC,GAAIwB,IAAMy8B,GAAuB,OAAOj+B,EAAG,uBAC3C,GAAIwB,IAAM08B,GAAuB,OAAOl+B,EAAG,uBAC3C,GAAIwB,IAAM48B,GAAqB,OAAOp+B,EAAG,yBACzC,GAAIwB,IAAMq8B,GAAU,OAAO79B,EAAG,KAC9B,GAAIwB,IAAMu8B,GAAW,OAAO/9B,EAAG,MAC/B,GAAIwB,IAAMs8B,GAAmB,OAAO99B,EAAG,eACvC,GAAIwB,IAAMuK,GAAS,OAAO/L,EAAG,IAC7B,GAAIwB,IAAM28B,GAAiB,OAAOn+B,EAAG,aACrC,GAAIwB,IAAA,KAAiB,OAAOxB,EAAG,MAC/B,GAAIwB,IAAA,KAAqB,OAAOxB,EAAG,WACnC,GAAIwB,IAAM05B,GAAa,OAAOl7B,EAAG,MACjC,GAAIwB,IAAMi6B,GAAW,OAAOz7B,EAAG,IAC/B,GAAIwB,IAAA,KAAkB,OAAOxB,EAAG,KAChC,GAAIwB,IAAM25B,GAAiB,OAAOn7B,EAAG,UACrC,GAAIwB,IAAM45B,GAAsB,OAAOp7B,EAAG,gBAC1C,GAAIwB,IAAMwjC,GAAa,OAAOhlC,EAAG,gBACjC,GAAIwB,IAAMmiC,GAAoB,OAAO3jC,EAAG,cACxC,GAAIwB,IAAM65B,GAAW,OAAOr7B,EAAG,IAC/B,GAAIwB,IAAM85B,GAAkB,OAAOt7B,EAAG,YACtC,GAAIwB,IAAM+5B,GAAU,OAAOv7B,EAAG,GAC9B,GAAIwB,IAAMg6B,GAAiB,OAAOx7B,EAAG,WACrC,GAAIwB,IAAMm6B,GAAmB,OAAO37B,EAAG,aACvC,GAAIwB,IAAMo6B,IAAwBp6B,IAAMq6B,IAAyBr6B,IAAMs6B,IAAyBt6B,IAAMu6B,GAAuB,CAC3H,GAAI4D,IAAal3B,GAAc,CAE7B,GADA,EAAYwE,EAAW,IAAI,oCAAoC,EAC3DK,IAAc,KAAM,CACtB,GAAI9L,IAAMo6B,GAAsB,OAAOtuB,EAAU,8BACjD,GAAI9L,IAAMq6B,GAAuB,OAAOvuB,EAAU,oCAClD,GAAI9L,IAAMs6B,GAAuB,OAAOxuB,EAAU,oCAClD,GAAI9L,IAAMu6B,GAAuB,OAAOzuB,EAAU,mCACpD,MACE,OAAO,IAEX,MAEE,GADA,EAAYL,EAAW,IAAI,+BAA+B,EACtDK,IAAc,KAAM,CACtB,GAAI9L,IAAMo6B,GAAsB,OAAOtuB,EAAU,6BACjD,GAAI9L,IAAMq6B,GAAuB,OAAOvuB,EAAU,8BAClD,GAAI9L,IAAMs6B,GAAuB,OAAOxuB,EAAU,8BAClD,GAAI9L,IAAMu6B,GAAuB,OAAOzuB,EAAU,6BACpD,MACE,OAAO,IAGb,CACA,GAAI9L,IAAM06B,IAA2B16B,IAAMw6B,IAA2Bx6B,IAAM26B,IAA4B36B,IAAMy6B,GAA0B,CAEtI,GADA,EAAYhvB,EAAW,IAAI,gCAAgC,EACvDK,IAAc,KAAM,CACtB,GAAI9L,IAAM06B,GAAyB,OAAO5uB,EAAU,gCACpD,GAAI9L,IAAMw6B,GAAyB,OAAO1uB,EAAU,gCACpD,GAAI9L,IAAM26B,GAA0B,OAAO7uB,EAAU,iCACrD,GAAI9L,IAAMy6B,GAA0B,OAAO3uB,EAAU,gCACvD,MACE,OAAO,IAEX,CACA,GAAI9L,IAAM46B,IAAmB56B,IAAM66B,IAAmB76B,IAAM86B,GAAsB,CAEhF,GADA,EAAYrvB,EAAW,IAAI,8BAA8B,EACrDK,IAAc,KAAM,CACtB,GAAI9L,IAAM46B,IAAmB56B,IAAM66B,GAAiB,OAAOsD,IAAal3B,GAAe6E,EAAU,sBAAwBA,EAAU,qBACnI,GAAI9L,IAAM86B,GAAsB,OAAOqD,IAAal3B,GAAe6E,EAAU,iCAAmCA,EAAU,yBAC5H,MACE,OAAO,IAEX,CACA,GAAI9L,IAAM+6B,IAAwB/6B,IAAMg7B,IAAwBh7B,IAAMi7B,IAAwBj7B,IAAMk7B,IAAwBl7B,IAAMm7B,IAAwBn7B,IAAMo7B,IAAwBp7B,IAAMq7B,IAAwBr7B,IAAMs7B,IAAwBt7B,IAAMu7B,IAAyBv7B,IAAMw7B,IAAyBx7B,IAAMy7B,IAAyBz7B,IAAM07B,IAA0B17B,IAAM27B,IAA0B37B,IAAM47B,GAAwB,CAE7a,GADA,EAAYnwB,EAAW,IAAI,+BAA+B,EACtDK,IAAc,KAAM,CACtB,GAAI9L,IAAM+6B,GAAsB,OAAOoD,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMg7B,GAAsB,OAAOmD,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMi7B,GAAsB,OAAOkD,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMk7B,GAAsB,OAAOiD,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMm7B,GAAsB,OAAOgD,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMo7B,GAAsB,OAAO+C,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMq7B,GAAsB,OAAO8C,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMs7B,GAAsB,OAAO6C,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,6BAC9H,GAAI9L,IAAMu7B,GAAuB,OAAO4C,IAAal3B,GAAe6E,EAAU,sCAAwCA,EAAU,8BAChI,GAAI9L,IAAMw7B,GAAuB,OAAO2C,IAAal3B,GAAe6E,EAAU,sCAAwCA,EAAU,8BAChI,GAAI9L,IAAMy7B,GAAuB,OAAO0C,IAAal3B,GAAe6E,EAAU,sCAAwCA,EAAU,8BAChI,GAAI9L,IAAM07B,GAAwB,OAAOyC,IAAal3B,GAAe6E,EAAU,uCAAyCA,EAAU,+BAClI,GAAI9L,IAAM27B,GAAwB,OAAOwC,IAAal3B,GAAe6E,EAAU,uCAAyCA,EAAU,+BAClI,GAAI9L,IAAM47B,GAAwB,OAAOuC,IAAal3B,GAAe6E,EAAU,uCAAyCA,EAAU,8BACpI,MACE,OAAO,IAEX,CACA,GAAI9L,IAAM67B,IAAoB77B,IAAM87B,IAA0B97B,IAAM+7B,GAA0B,CAE5F,GADA,EAAYtwB,EAAW,IAAI,8BAA8B,EACrDK,IAAc,KAAM,CACtB,GAAI9L,IAAM67B,GAAkB,OAAOsC,IAAal3B,GAAe6E,EAAU,qCAAuCA,EAAU,+BAC1H,GAAI9L,IAAM87B,GAAwB,OAAOhwB,EAAU,qCACnD,GAAI9L,IAAM+7B,GAA0B,OAAOjwB,EAAU,sCACvD,MACE,OAAO,IAEX,CACA,GAAI9L,IAAMg8B,IAAoBh8B,IAAMi8B,IAA2Bj8B,IAAMk8B,IAA0Bl8B,IAAMm8B,GAA+B,CAElI,GADA,EAAY1wB,EAAW,IAAI,8BAA8B,EACrDK,IAAc,KAAM,CACtB,GAAI9L,IAAM67B,GAAkB,OAAO/vB,EAAU,yBAC7C,GAAI9L,IAAMi8B,GAAyB,OAAOnwB,EAAU,gCACpD,GAAI9L,IAAMk8B,GAAwB,OAAOpwB,EAAU,+BACnD,GAAI9L,IAAMm8B,GAA+B,OAAOrwB,EAAU,qCAC5D,MACE,OAAO,IAEX,CAEA,OADI9L,IAAM0+B,GAA2BlgC,EAAG,kBACjCA,EAAGwB,KAAO,IAAK,GAAY,KAARxB,EAAGwB,EAC/B,CACA,MAAO,CAAE,SAAQ,CACnB,CA6tBA,SAAS0kC,GAAe,EAAU,EAAY,CAC5C,SAASC,EAAwB,EAAK,EAAS,CACzCpd,EAAI,mBAAqB,IAC3BA,EAAI,aAAa,EAEnBnZ,EAAQ,MAAM,KAAKmZ,EAAI,MAAM,CAC/B,CACA,SAASqd,EAAmB,EAAU,EAAK,CACzCphB,EAAI,MAAM,OAAOtgB,EAAS,SAAS,MAAOG,GAA0BE,CAAQ,CAAC,EACzEigB,EAAI,OACN,EAAS,QAAQ,MAAQA,EAAI,KAC7B,EAAS,OAAO,MAAQA,EAAI,KACnBA,EAAI,YACb,EAAS,WAAW,MAAQA,EAAI,QAEpC,CACA,SAASqhB,EAAwB,EAAU,EAAU,EAAY,EAAQ,EAA0B,CAC7F5jC,EAAS,qBAEFA,EAAS,sBADlB6jC,EAAsB5hC,EAAUjC,CAAQ,EAG/BA,EAAS,oBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EACxC8jC,EAAoB7hC,EAAUjC,CAAQ,GAC7BA,EAAS,qBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EACxC+jC,EAAqB9hC,EAAUjC,CAAQ,GAC9BA,EAAS,wBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EACxCgkC,EAAwB/hC,EAAUjC,CAAQ,EACtCA,EAAS,wBACXikC,EAAwBhiC,EAAUjC,EAAUkkC,CAAwB,GAE7DlkC,EAAS,sBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EACxCmkC,EAAsBliC,EAAUjC,CAAQ,GAC/BA,EAAS,oBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EAC/BA,EAAS,wBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EACxCokC,EAAwBniC,EAAUjC,CAAQ,GACjCA,EAAS,qBAClB6jC,EAAsB5hC,EAAUjC,CAAQ,EAC/BA,EAAS,qBAClBqkC,EAAoBpiC,EAAUjC,CAAQ,EAClCA,EAAS,sBACXskC,EAAoBriC,EAAUjC,CAAQ,GAE/BA,EAAS,iBAClBukC,EAAsBtiC,EAAUjC,EAAUwkC,EAAY/zB,CAAM,EACnDzQ,EAAS,iBAClBykC,EAAuBxiC,EAAUjC,CAAQ,EAChCA,EAAS,kBAClBiC,EAAS,MAAM,MAAM,KAAKjC,EAAS,KAAK,EACxC,EAAS,QAAQ,MAAQA,EAAS,SACzBA,EAAS,mBAClB,EAAS,mBAAqB,GAElC,CACA,SAAS6jC,EAAsB,EAAU,EAAU,CACjD,EAAS,QAAQ,MAAQ7jC,EAAS,QAC9BA,EAAS,OACXiC,EAAS,QAAQ,MAAM,KAAKjC,EAAS,KAAK,EAExCA,EAAS,UACXiC,EAAS,SAAS,MAAM,KAAKjC,EAAS,QAAQ,CAAC,CAAC,eAAeA,EAAS,iBAAiB,EAEvFA,EAAS,MACX,EAAS,IAAI,MAAQA,EAAS,IAC9B0jC,EAAwB1jC,EAAS,IAAKiC,EAAS,YAAY,GAEzDjC,EAAS,WACX,EAAS,SAAS,MAAQA,EAAS,SACnC0jC,EAAwB1jC,EAAS,SAAUiC,EAAS,iBAAiB,GAEnEjC,EAAS,UACX,EAAS,QAAQ,MAAQA,EAAS,QAClC0jC,EAAwB1jC,EAAS,QAASiC,EAAS,gBAAgB,EACnE,EAAS,UAAU,MAAQjC,EAAS,UAChCA,EAAS,OAASC,KACpB,EAAS,UAAU,OAAS,KAG5BD,EAAS,YACX,EAAS,UAAU,MAAQA,EAAS,UACpC0jC,EAAwB1jC,EAAS,UAAWiC,EAAS,kBAAkB,EACvEA,EAAS,YAAY,MAAM,KAAKjC,EAAS,WAAW,EAChDA,EAAS,OAASC,IACpBgC,EAAS,YAAY,MAAM,OAAO,GAGlCjC,EAAS,kBACX,EAAS,gBAAgB,MAAQA,EAAS,gBAC1C0jC,EAAwB1jC,EAAS,gBAAiBiC,EAAS,wBAAwB,EACnF,EAAS,kBAAkB,MAAQjC,EAAS,kBAC5C,EAAS,iBAAiB,MAAQA,EAAS,kBAEzCA,EAAS,cACX,EAAS,YAAY,MAAQA,EAAS,YACtC0jC,EAAwB1jC,EAAS,YAAaiC,EAAS,oBAAoB,GAEzEjC,EAAS,cACX,EAAS,YAAY,MAAQA,EAAS,YACtC0jC,EAAwB1jC,EAAS,YAAaiC,EAAS,oBAAoB,GAEzEjC,EAAS,UAAY,IACvB,EAAS,UAAU,MAAQA,EAAS,WAEtC,IAAM0N,EAAqBC,EAAW,IAAI3N,CAAQ,EAC5CyiB,EAAS/U,EAAmB,OAC5Bg3B,EAAiBh3B,EAAmB,eACtC+U,IACF,EAAS,OAAO,MAAQA,EACxBkiB,GAAI,KAAKD,CAAc,EACvB,GAAI,GAAK,GACT,GAAI,GAAK,GACT,GAAI,GAAK,GACLjiB,EAAO,eAAiBA,EAAO,wBAA0B,KAC3D,GAAI,GAAK,GACT,GAAI,GAAK,IAEXxgB,EAAS,eAAe,MAAM,eAAe2iC,GAAI,sBAAsBD,EAAG,CAAC,EAC3E,EAAS,WAAW,MAAQliB,EAAO,eAAiBA,EAAO,wBAA0B,GAAQ,GAAK,EAClG,EAAS,aAAa,MAAQziB,EAAS,aACvC,EAAS,IAAI,MAAQA,EAAS,IAC9B,EAAS,gBAAgB,MAAQA,EAAS,iBAExCA,EAAS,WACX,EAAS,SAAS,MAAQA,EAAS,SACnC,EAAS,kBAAkB,MAAQA,EAAS,kBAC5C0jC,EAAwB1jC,EAAS,SAAUiC,EAAS,iBAAiB,GAEnEjC,EAAS,QACX,EAAS,MAAM,MAAQA,EAAS,MAChC,EAAS,eAAe,MAAQA,EAAS,eACzC0jC,EAAwB1jC,EAAS,MAAOiC,EAAS,cAAc,EAEnE,CACA,SAASoiC,EAAoB,EAAU,EAAU,CAC/CpiC,EAAS,QAAQ,MAAM,KAAKjC,EAAS,KAAK,EAC1C,EAAS,QAAQ,MAAQA,EAAS,QAC9BA,EAAS,MACX,EAAS,IAAI,MAAQA,EAAS,IAC9B0jC,EAAwB1jC,EAAS,IAAKiC,EAAS,YAAY,EAE/D,CACA,SAASqiC,EAAoB,EAAU,EAAU,CAC/C,EAAS,SAAS,MAAQtkC,EAAS,SACnC,EAAS,UAAU,MAAQA,EAAS,SAAWA,EAAS,QACxD,EAAS,MAAM,MAAQA,EAAS,KAClC,CACA,SAASukC,EAAsB,EAAU,EAAU,EAAY,EAAQ,CACrEtiC,EAAS,QAAQ,MAAM,KAAKjC,EAAS,KAAK,EAC1C,EAAS,QAAQ,MAAQA,EAAS,QAClC,EAAS,KAAK,MAAQA,EAAS,KAAOwkC,EACtC,EAAS,MAAM,MAAQ/zB,EAAS,GAC5BzQ,EAAS,MACX,EAAS,IAAI,MAAQA,EAAS,IAC9B0jC,EAAwB1jC,EAAS,IAAKiC,EAAS,WAAW,GAExDjC,EAAS,WACX,EAAS,SAAS,MAAQA,EAAS,SACnC0jC,EAAwB1jC,EAAS,SAAUiC,EAAS,iBAAiB,GAEnEjC,EAAS,UAAY,IACvB,EAAS,UAAU,MAAQA,EAAS,UAExC,CACA,SAASykC,EAAuB,EAAU,EAAU,CAClDxiC,EAAS,QAAQ,MAAM,KAAKjC,EAAS,KAAK,EAC1C,EAAS,QAAQ,MAAQA,EAAS,QAClC,EAAS,SAAS,MAAQA,EAAS,SAC/BA,EAAS,MACX,EAAS,IAAI,MAAQA,EAAS,IAC9B0jC,EAAwB1jC,EAAS,IAAKiC,EAAS,YAAY,GAEzDjC,EAAS,WACX,EAAS,SAAS,MAAQA,EAAS,SACnC0jC,EAAwB1jC,EAAS,SAAUiC,EAAS,iBAAiB,GAEnEjC,EAAS,UAAY,IACvB,EAAS,UAAU,MAAQA,EAAS,UAExC,CACA,SAAS+jC,EAAqB,EAAU,EAAU,CAChD9hC,EAAS,SAAS,MAAM,KAAKjC,EAAS,QAAQ,EAC9C,EAAS,UAAU,MAAQ,KAAK,IAAIA,EAAS,UAAW,IAAI,CAC9D,CACA,SAAS8jC,EAAoB,EAAU,EAAU,CAC3C9jC,EAAS,cACX,EAAS,YAAY,MAAQA,EAAS,YAE1C,CACA,SAASgkC,EAAwB,EAAU,EAAU,CACnD,EAAS,UAAU,MAAQhkC,EAAS,UAChCA,EAAS,eACX,EAAS,aAAa,MAAQA,EAAS,aACvC0jC,EAAwB1jC,EAAS,aAAciC,EAAS,qBAAqB,GAE/E,EAAS,UAAU,MAAQjC,EAAS,UAChCA,EAAS,eACX,EAAS,aAAa,MAAQA,EAAS,aACvC0jC,EAAwB1jC,EAAS,aAAciC,EAAS,qBAAqB,GAE3EjC,EAAS,SACX,EAAS,gBAAgB,MAAQA,EAAS,gBAE9C,CACA,SAASikC,EAAwB,EAAU,EAAU,EAA0B,CAC7E,EAAS,IAAI,MAAQjkC,EAAS,IAC1BA,EAAS,MAAQ,IACnBiC,EAAS,WAAW,MAAM,KAAKjC,EAAS,UAAU,CAAC,CAAC,eAAeA,EAAS,KAAK,EACjF,EAAS,eAAe,MAAQA,EAAS,eACrCA,EAAS,gBACX,EAAS,cAAc,MAAQA,EAAS,cACxC0jC,EAAwB1jC,EAAS,cAAeiC,EAAS,sBAAsB,GAE7EjC,EAAS,oBACX,EAAS,kBAAkB,MAAQA,EAAS,kBAC5C0jC,EAAwB1jC,EAAS,kBAAmBiC,EAAS,0BAA0B,IAGvFjC,EAAS,UAAY,IACvB,EAAS,UAAU,MAAQA,EAAS,UACpC,EAAS,mBAAmB,MAAQA,EAAS,mBACzCA,EAAS,eACX,EAAS,aAAa,MAAQA,EAAS,aACvC0jC,EAAwB1jC,EAAS,aAAciC,EAAS,qBAAqB,GAE3EjC,EAAS,wBACX,EAAS,sBAAsB,MAAQA,EAAS,sBAChD0jC,EAAwB1jC,EAAS,sBAAuBiC,EAAS,8BAA8B,GAE7FjC,EAAS,qBACX,EAAS,mBAAmB,MAAQA,EAAS,mBAC7C0jC,EAAwB1jC,EAAS,mBAAoBiC,EAAS,2BAA2B,EACzFA,EAAS,qBAAqB,MAAM,KAAKjC,EAAS,oBAAoB,EAClEA,EAAS,OAASC,IACpBgC,EAAS,qBAAqB,MAAM,OAAO,IAI7CjC,EAAS,WAAa,IACxB,EAAS,WAAW,MAAQA,EAAS,YAEnCA,EAAS,YAAc,IACzB,EAAS,YAAY,MAAQA,EAAS,YACtC,EAAS,eAAe,MAAQA,EAAS,eACzC,EAAS,4BAA4B,MAAQA,EAAS,0BAA0B,GAChF,EAAS,4BAA4B,MAAQA,EAAS,0BAA0B,GAC5EA,EAAS,iBACX,EAAS,eAAe,MAAQA,EAAS,eACzC0jC,EAAwB1jC,EAAS,eAAgBiC,EAAS,uBAAuB,GAE/EjC,EAAS,0BACX,EAAS,wBAAwB,MAAQA,EAAS,wBAClD0jC,EAAwB1jC,EAAS,wBAAyBiC,EAAS,gCAAgC,IAGnGjC,EAAS,aAAe,IAC1B,EAAS,aAAa,MAAQA,EAAS,aACvC,EAAS,uBAAuB,MAAQkkC,EAAyB,QACjEjiC,EAAS,wBAAwB,MAAM,IAAIiiC,EAAyB,MAAOA,EAAyB,MAAM,EACtGlkC,EAAS,kBACX,EAAS,gBAAgB,MAAQA,EAAS,gBAC1C0jC,EAAwB1jC,EAAS,gBAAiBiC,EAAS,wBAAwB,GAErF,EAAS,UAAU,MAAQjC,EAAS,UAChCA,EAAS,eACX,EAAS,aAAa,MAAQA,EAAS,aACvC0jC,EAAwB1jC,EAAS,aAAciC,EAAS,qBAAqB,GAE/E,EAAS,oBAAoB,MAAQjC,EAAS,oBAC9CiC,EAAS,iBAAiB,MAAM,KAAKjC,EAAS,gBAAgB,GAE5DA,EAAS,WAAa,IACxBiC,EAAS,iBAAiB,MAAM,IAAIjC,EAAS,WAAa,KAAK,IAAIA,EAAS,kBAAkB,EAAGA,EAAS,WAAa,KAAK,IAAIA,EAAS,kBAAkB,CAAC,EACxJA,EAAS,gBACX,EAAS,cAAc,MAAQA,EAAS,cACxC0jC,EAAwB1jC,EAAS,cAAeiC,EAAS,sBAAsB,IAGnF,EAAS,kBAAkB,MAAQjC,EAAS,kBAC5CiC,EAAS,cAAc,MAAM,KAAKjC,EAAS,aAAa,EACpDA,EAAS,mBACX,EAAS,iBAAiB,MAAQA,EAAS,iBAC3C0jC,EAAwB1jC,EAAS,iBAAkBiC,EAAS,yBAAyB,GAEnFjC,EAAS,uBACX,EAAS,qBAAqB,MAAQA,EAAS,qBAC/C0jC,EAAwB1jC,EAAS,qBAAsBiC,EAAS,6BAA6B,EAEjG,CACA,SAASkiC,EAAsB,EAAU,EAAU,CAC7CnkC,EAAS,SACX,EAAS,OAAO,MAAQA,EAAS,OAErC,CACA,SAASokC,EAAwB,EAAU,EAAU,CACnD,IAAMnc,EAAQta,EAAW,IAAI3N,CAAQ,CAAC,CAAC,MACvCiC,EAAS,kBAAkB,MAAM,sBAAsBgmB,EAAM,WAAW,EACxE,EAAS,aAAa,MAAQA,EAAM,OAAO,OAAO,KAClD,EAAS,YAAY,MAAQA,EAAM,OAAO,OAAO,GACnD,CACA,MAAO,CACL,qBACA,yBACF,CACF,CACA,SAAS4c,GAAoB,EAAI,EAAM,EAAc,EAAO,CAC1D,IAAI5hC,EAAU,CAAC,EACX6hC,EAAa,CAAC,EACdC,EAAyB,CAAC,EACxBC,EAAmBznC,EAAG,aAAaA,EAAG,2BAA2B,EACvE,SAAS0nC,EAAK,EAAe,EAAS,CACpC,IAAMC,EAAel+B,EAAQ,QAC7B5B,EAAM,oBAAoB0yB,EAAeoN,CAAY,CACvD,CACA,SAASnhC,EAAO,EAAe,EAAS,CACtC,IAAIjH,EAASmG,EAAQ60B,EAAc,IAC/Bh7B,IAAW,IAAK,KAClBqoC,EAAqBrN,CAAa,EAClC,EAAS50B,EAAa40B,CAAa,EACnC,EAAQA,EAAc,IAAMh7B,EAC5Bg7B,EAAc,iBAAiB,UAAWsN,CAAuB,GAEnE,IAAMF,EAAel+B,EAAQ,QAC7B5B,EAAM,iBAAiB0yB,EAAeoN,CAAY,EAClD,IAAMvzC,EAAQwY,EAAK,OAAO,MACtB26B,EAAWhN,EAAc,MAAQnmC,IACnC0zC,EAAiBvN,CAAa,EAC9B,EAAWA,EAAc,IAAMnmC,EAEnC,CACA,SAASuR,EAAa,EAAe,CACnC,IAAMoiC,EAAoBC,EAA0B,EACpD,EAAc,oBAAsBD,EACpC,IAAMxoC,EAASS,EAAG,aAAa,EACzB8F,EAAOy0B,EAAc,OACrB10B,EAAQ00B,EAAc,MAK5B,OAJAv6B,EAAG,WAAWA,EAAG,eAAgBT,CAAM,EACvCS,EAAG,WAAWA,EAAG,eAAgB8F,EAAMD,CAAK,EAC5C7F,EAAG,WAAWA,EAAG,eAAgB,IAAI,EACrCA,EAAG,eAAeA,EAAG,eAAgB+nC,EAAmBxoC,CAAM,EACvDA,CACT,CACA,SAASyoC,GAA4B,CACnC,IAAK,IAAI7oC,EAAI,EAAGA,EAAIsoC,EAAkB,IACpC,GAAID,EAAuB,QAAQroC,CAAC,IAAM,GAExC,OADAqoC,EAAuB,KAAKroC,CAAC,EACtBA,EAIX,OADA,QAAQ,MAAM,uFAAuF,EAC9F,CACT,CACA,SAAS2oC,EAAiB,EAAe,CACvC,IAAMvoC,EAASmG,EAAQ60B,EAAc,IAC/B71B,EAAW61B,EAAc,SACzBxvB,EAAQwvB,EAAc,QAC5Bv6B,EAAG,WAAWA,EAAG,eAAgBT,CAAM,EACvC,IAAK,IAAIJ,EAAI,EAAG+L,EAAKxG,EAAS,OAAQvF,EAAI+L,EAAI,IAAK,CACjD,IAAM+8B,EAAe,MAAM,QAAQvjC,EAASvF,EAAE,EAAIuF,EAASvF,GAAK,CAACuF,EAASvF,EAAE,EAC5E,IAAK,IAAIyB,EAAI,EAAGsnC,EAAKD,EAAa,OAAQrnC,EAAIsnC,EAAI,IAAK,CACrD,IAAMt4B,EAAUq4B,EAAarnC,GAC7B,GAAIunC,EAAkBv4B,EAASzQ,EAAGyB,EAAGmK,CAAK,IAAM,GAAM,CACpD,IAAMW,EAASkE,EAAQ,SACjBw4B,EAAS,MAAM,QAAQx4B,EAAQ,KAAK,EAAIA,EAAQ,MAAQ,CAACA,EAAQ,KAAK,EACxEy4B,EAAc,EAClB,IAAK,IAAIrY,EAAI,EAAGA,EAAIoY,EAAO,OAAQ,IAAK,CACtC,IAAMluC,EAAQkuC,EAAOpY,GACfsY,EAAQC,EAAeruC,CAAK,EAC9B,OAAOA,GAAU,UAAY,OAAOA,GAAU,WAChD,EAAQ,OAAO,GAAKA,EACpB8F,EAAG,cAAcA,EAAG,eAAgB0L,EAAS28B,EAAaz4B,EAAQ,MAAM,GAC/D1V,EAAM,WACf,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAK,EACpB,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAK,EACpB,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,GAAKA,EAAM,SAAS,GACnC,EAAQ,OAAO,IAAMA,EAAM,SAAS,GACpC,EAAQ,OAAO,IAAM,IAErBA,EAAM,QAAQ0V,EAAQ,OAAQy4B,CAAW,EACzC,GAAeC,EAAM,QAAU,aAAa,kBAEhD,CACAtoC,EAAG,cAAcA,EAAG,eAAgB0L,EAAQkE,EAAQ,MAAM,CAC5D,CACF,CACF,CACA5P,EAAG,WAAWA,EAAG,eAAgB,IAAI,CACvC,CACA,SAASmoC,EAAkB,EAAS,EAAO,EAAY,EAAO,CAC5D,IAAMjuC,EAAQ0V,EAAQ,MAChB44B,EAAc5+B,EAAQ,IAAM6+B,EAClC,GAAI19B,EAAMy9B,KAAiB,IAAK,GAM9B,MALA,CAGEz9B,EAAMy9B,GAHJ,OAAOtuC,GAAU,UAAY,OAAOA,GAAU,UAC3BA,EAEAA,EAAM,MAAM,EAE5B,GACF,CACL,IAAMwuC,EAAe39B,EAAMy9B,GAC3B,GAAI,OAAOtuC,GAAU,UAAY,OAAOA,GAAU,UAC5C,IAAAwuC,IAAiBxuC,EAEnB,MADA,GAAMsuC,GAAetuC,EACd,EACT,MAEA,GAAIwuC,EAAa,OAAOxuC,CAAK,IAAM,GAEjC,OADAwuC,EAAa,KAAKxuC,CAAK,EAChB,EAGb,CACA,MAAO,EACT,CACA,SAAS0tC,EAAqB,EAAe,CAC3C,IAAMljC,EAAW61B,EAAc,SAC3B7uB,EAAS,EAEb,IAAK,IAAIvM,EAAI,EAAGiH,EAAI1B,EAAS,OAAQvF,EAAIiH,EAAG,IAAK,CAC/C,IAAM6hC,EAAe,MAAM,QAAQvjC,EAASvF,EAAE,EAAIuF,EAASvF,GAAK,CAACuF,EAASvF,EAAE,EAC5E,IAAK,IAAIyB,EAAI,EAAGsnC,EAAKD,EAAa,OAAQrnC,EAAIsnC,EAAI,IAAK,CACrD,IAAMt4B,EAAUq4B,EAAarnC,GACvBwnC,EAAS,MAAM,QAAQx4B,EAAQ,KAAK,EAAIA,EAAQ,MAAQ,CAACA,EAAQ,KAAK,EAC5E,IAAK,IAAIogB,EAAI,EAAGC,EAAKmY,EAAO,OAAQpY,EAAIC,EAAI,IAAK,CAC/C,IAAM/1B,EAAQkuC,EAAOpY,GACfsY,EAAQC,EAAeruC,CAAK,EAC5ByuC,EAAej9B,EAAS,GACxBk9B,EAAeD,EAAeL,EAAM,SACpCO,EAAaF,EAAeC,EAClC,GAAUA,EACNC,IAAe,GAAK,GAAYA,EAAaP,EAAM,UACrD,GAAU,GAAYO,GAExB,EAAQ,OAAS,IAAI,aAAaP,EAAM,QAAU,aAAa,iBAAiB,EAChF,EAAQ,SAAW58B,EACnB,GAAU48B,EAAM,OAClB,CACF,CACF,CACA,IAAMQ,EAAcp9B,EAAS,GAI7B,OAHIo9B,EAAc,IAAG,GAAU,GAAYA,GAC3C,EAAc,OAASp9B,EACvB,EAAc,QAAU,CAAC,EAClB,IACT,CACA,SAAS68B,EAAe,EAAO,CAC7B,IAAMD,EAAQ,CACZ,SAAU,EAEV,QAAS,CAEX,EAwBA,OAvBI,OAAOpuC,GAAU,UAAY,OAAOA,GAAU,WAChD,EAAM,SAAW,EACjB,EAAM,QAAU,GACPA,EAAM,WACf,EAAM,SAAW,EACjB,EAAM,QAAU,GACPA,EAAM,WAAaA,EAAM,SAClC,EAAM,SAAW,GACjB,EAAM,QAAU,IACPA,EAAM,WACf,EAAM,SAAW,GACjB,EAAM,QAAU,IACPA,EAAM,WACf,EAAM,SAAW,GACjB,EAAM,QAAU,IACPA,EAAM,WACf,EAAM,SAAW,GACjB,EAAM,QAAU,IACPA,EAAM,UACf,QAAQ,KAAK,6EAA6E,EAE1F,QAAQ,KAAK,uDAAwDA,CAAK,EAErEouC,CACT,CACA,SAAST,EAAwB,EAAO,CACtC,IAAMtN,EAAgB5oB,EAAM,OAC5B4oB,EAAc,oBAAoB,UAAWsN,CAAuB,EACpE,IAAMj+B,EAAQ49B,EAAuB,QAAQjN,EAAc,mBAAmB,EAC9EiN,EAAuB,OAAO59B,EAAO,CAAC,EACtC5J,EAAG,aAAa0F,EAAQ60B,EAAc,GAAG,EACzC,OAAO70B,EAAQ60B,EAAc,IAC7B,OAAOgN,EAAWhN,EAAc,GAClC,CACA,SAASvuB,GAAU,CACjB,IAAK,IAAMiR,KAAMvX,EACf1F,EAAG,aAAa0F,EAAQuX,EAAG,EAE7B,EAAyB,CAAC,EAC1B,EAAU,CAAC,EACX,EAAa,CAAC,CAChB,CACA,MAAO,CACL,OACA,SACA,SACF,CACF,CA86DA,SAAS8rB,GAAgB,EAAgB,EAAY,EAAQ,EAAO,EAAK,EAAK,CAC5EC,GAAiB,WAAWC,EAAgBC,CAAM,CAAC,CAAC,UAAU,EAAG,CAAC,CAAC,SAASnK,CAAK,EAC7E5gC,IAAQ,IAAK,GAIfgrC,GAAiB,KAAKH,EAAgB,GAHtC,GAAiB,EAAI9qC,EAAM8qC,GAAiB,EAAI7qC,EAAM6qC,GAAiB,EACvE,GAAiB,EAAI7qC,EAAM6qC,GAAiB,EAAI9qC,EAAM8qC,GAAiB,GAIzEC,EAAe,KAAKG,CAAU,EAC9B,EAAe,GAAKD,GAAiB,EACrC,EAAe,GAAKA,GAAiB,EACrCF,EAAe,aAAaI,EAAgB,CAC9C,CAmjBA,SAASC,GAAW,EAAG,EAAG,CACxB,OAAOjvC,EAAE,EAAID,EAAE,CACjB,CACA,SAASmvC,GAAgB,EAAG,EAAG,CAC7B,OAAOnvC,EAAE,EAAIC,EAAE,CACjB,CA6CA,SAASmvC,GAAkB,EAAK,EAAQ,EAAe,EAAG,CACxD,IAAMC,EAAWnvC,EAAO,SACxB,GAAIgK,EAAI,8BAAgCA,EAAI,MAAM,cAAgBhK,EAAO,MAAM,YAAa,CAC1F,IAAMovC,EAAcplC,EAAI,MACxB,IAAK,IAAInF,EAAI,EAAGA,EAAIuqC,EAAa,IAC/B,IAAK,IAAInrC,EAAI,EAAGA,EAAIkrC,EAAU,IAC5BnvC,EAAO,aAAa6E,EAAIwqC,EAAcprC,EAAG+F,EAAI,aAAanF,EAAGZ,CAAC,CAAC,CAGrE,MACEjE,EAAO,MAAM,IAAIgK,EAAI,MAAOqlC,EAAeF,CAAQ,EAErD,EAAO,YAAc,EACvB,CA4tBA,SAASG,GAAkB,EAAQ,EAAW,EAAK,EAAa,EAAG,EAAG,CACpE,IAAMC,EAAoB3mC,EAAO,SAAS,WAAW,SAIrD,GAHA4mC,GAAQ,oBAAoBD,EAAmBxvC,CAAC,EAChD0vC,GAAM,oBAAoBF,EAAmBzvC,CAAC,EAC/BuI,EAAI,oBAAoBmnC,GAASC,GAAOC,GAAsBC,EACpE,EAAIC,EAAa,OAC1BF,GAAqB,aAAa9mC,EAAO,WAAW,EACpD,IAAMC,EAAWC,EAAU,IAAI,OAAO,WAAW4mC,EAAoB,EACrE,GAAI,IAAW5mC,EAAU,MAAQD,EAAWC,EAAU,KACtD,MAAO,CACL,WAGA,MAAO6mC,GAAyB,MAAM,CAAC,CAAC,aAAa/mC,EAAO,WAAW,EACvE,MAAO7I,EACP,KAAM,KACN,UAAW,KACX,UAAW,KACX,QACF,CACF,CAiIA,SAAS8vC,GAAU,EAAO,EAAO,EAAkB,EAAa,EAAW,EAAa,EAAQ,CAC9F,IAAMC,EAAqBC,GAAK,kBAAkBtnC,CAAK,EACvD,GAAIqnC,EAAqBE,EAAkB,CACzC,IAAMC,EAAiB,IAAI3mC,EAC3BymC,GAAK,oBAAoBtnC,EAAOwnC,CAAc,EAC9CA,EAAe,aAAaC,CAAW,EACvC,IAAMrnC,EAAWC,EAAU,IAAI,OAAO,WAAWmnC,CAAc,EAC/D,GAAIpnC,EAAWC,EAAU,MAAQD,EAAWC,EAAU,IAAK,OAC3DqnC,EAAY,KAAK,CACf,WACA,cAAe,KAAK,KAAKL,CAAkB,EAC3C,MAAOG,EACP,QACA,KAAM,KACN,UAAW,KACX,UAAW,KACX,QACF,CAAC,CACH,CACF,CAiXA,SAASG,IAAY,CACnB,IAAIC,EAAK,EAAGC,EAAK,EAAGxsC,EAAK,EAAGysC,EAAK,EACjC,SAASrhB,EAAK,EAAI,EAAI,EAAI,EAAI,CAC5B,EAAKshB,EACL,EAAKC,EACL,EAAK,GAAKD,EAAK,EAAIE,EAAK,EAAID,EAAKE,EACjC,EAAK,EAAIH,EAAK,EAAIE,EAAKD,EAAKE,CAC9B,CACA,MAAO,CACL,eAAgB,SAAS,EAAI,EAAI,EAAI,EAAI,EAAS,CAChDzhB,EAAKwhB,EAAIE,EAAIC,GAAWD,EAAKJ,GAAKK,GAAWC,EAAKJ,EAAG,CACvD,EACA,yBAA0B,SAAS,EAAI,EAAI,EAAI,EAAI,EAAK,EAAK,EAAK,CAChE,IAAIC,GAAMD,EAAKF,GAAMO,GAAOH,EAAKJ,IAAOO,EAAMC,IAAQJ,EAAKF,GAAMM,EAC7DC,GAAML,EAAKF,GAAMM,GAAOF,EAAKJ,IAAOM,EAAME,IAAQJ,EAAKF,GAAMM,EACjE,GAAMF,EACN,GAAMA,EACN9hB,EAAKwhB,EAAIE,EAAID,EAAIM,CAAE,CACrB,EACA,KAAM,SAAS,EAAG,CAChB,IAAMA,EAAK/uC,EAAIA,EACTivC,EAAKF,EAAK/uC,EAChB,OAAOmuC,EAAKC,EAAKpuC,EAAI4B,EAAKmtC,EAAKV,EAAKY,CACtC,CACF,CACF,CAuGA,SAASC,GAAW,EAAG,EAAI,EAAI,EAAI,EAAI,CACrC,IAAMxqC,GAAMG,EAAKJ,GAAM,GACjBG,GAAMuqC,EAAKxqC,GAAM,GACjBoqC,EAAK/uC,EAAIA,EACTivC,EAAKjvC,EAAI+uC,EACf,OAAQ,EAAIpqC,EAAK,EAAIE,EAAKH,EAAKE,GAAMqqC,GAAM,GAAKtqC,EAAK,EAAIE,EAAK,EAAIH,EAAKE,GAAMmqC,EAAKrqC,EAAK1E,EAAI2E,CAC7F,CACA,SAASyqC,GAAkB,EAAG,EAAG,CAC/B,IAAM5b,EAAI,EAAIxzB,EACd,OAAOwzB,EAAIA,EAAIxuB,CACjB,CACA,SAASqqC,GAAkB,EAAG,EAAG,CAC/B,MAAO,IAAK,EAAIrvC,GAAKA,EAAIgF,CAC3B,CACA,SAASsqC,GAAkB,EAAG,EAAG,CAC/B,OAAOtvC,EAAIA,EAAIgF,CACjB,CACA,SAASuqC,GAAgB,EAAG,EAAI,EAAI,EAAI,CACtC,OAAOH,GAAkBpvC,EAAGyE,CAAE,EAAI4qC,GAAkBrvC,EAAG2E,CAAE,EAAI2qC,GAAkBtvC,EAAG6E,CAAE,CACtF,CACA,SAAS2qC,GAAc,EAAG,EAAG,CAC3B,IAAMhc,EAAI,EAAIxzB,EACd,OAAOwzB,EAAIA,EAAIA,EAAIxuB,CACrB,CACA,SAASyqC,GAAc,EAAG,EAAG,CAC3B,IAAMjc,EAAI,EAAIxzB,EACd,MAAO,GAAIwzB,EAAIA,EAAIxzB,EAAIgF,CACzB,CACA,SAAS0qC,GAAc,EAAG,EAAG,CAC3B,MAAO,IAAK,EAAI1vC,GAAKA,EAAIA,EAAIgF,CAC/B,CACA,SAAS2qC,GAAc,EAAG,EAAG,CAC3B,OAAO3vC,EAAIA,EAAIA,EAAIgF,CACrB,CACA,SAAS4qC,GAAY,EAAG,EAAI,EAAI,EAAI,EAAI,CACtC,OAAOJ,GAAcxvC,EAAGyE,CAAE,EAAIgrC,GAAczvC,EAAG2E,CAAE,EAAI+qC,GAAc1vC,EAAG6E,CAAE,EAAI8qC,GAAc3vC,EAAGmvC,CAAE,CACjG,CA82CA,SAASU,GAAW,EAAM,EAAO,EAAK,EAAK,EAAW,CACpD,IAAIltC,EAAGmtC,EACP,GAAIC,IAAcC,GAAWjmC,EAAMmG,EAAO0U,EAAKqrB,CAAG,EAAI,EACpD,IAAK,EAAI//B,EAAOvN,EAAIiiB,EAAK,GAAKqrB,EAAK,EAAOC,GAAWvtC,EAAGoH,EAAKpH,GAAIoH,EAAKpH,EAAI,GAAImtC,CAAI,OAElF,IAAK,EAAIlrB,EAAMqrB,EAAKttC,GAAKuN,EAAO,GAAK+/B,EAAK,EAAOC,GAAWvtC,EAAGoH,EAAKpH,GAAIoH,EAAKpH,EAAI,GAAImtC,CAAI,EAM3F,OAJIA,GAAQK,GAAOL,EAAMA,EAAK,IAAI,IAChCM,GAAWN,CAAI,EACf,EAAOA,EAAK,MAEPA,CACT,CACA,SAASO,GAAa,EAAO,EAAK,CAChC,GAAI,CAACngC,EAAO,OAAOA,EACnB,AAAU0U,IAAM1U,EAChB,IAAIlL,EAAIkL,EAAOogC,EACf,GAEE,GADA,EAAQ,GACJ,CAACtrC,EAAE,UAAYmrC,GAAOnrC,EAAGA,EAAE,IAAI,GAAKurC,GAAKvrC,EAAE,KAAMA,EAAGA,EAAE,IAAI,IAAM,GAAI,CAGtE,GAFAorC,GAAWprC,CAAC,EACZ,EAAI,EAAMA,EAAE,KACRA,IAAMA,EAAE,KAAM,MAClB,EAAQ,EACV,KACE,GAAIA,EAAE,WAEDsrC,GAAStrC,IAAM4f,GACxB,OAAOA,CACT,CACA,SAAS4rB,GAAa,EAAK,EAAW,EAAK,EAAM,EAAM,EAAS,EAAM,CACpE,GAAI,CAACC,EAAK,OACN,CAACC,GAAQC,GAASC,GAAWH,EAAKI,EAAMC,EAAMH,CAAO,EACzD,IAAII,EAAON,EAAKO,EAAMjwB,EACtB,KAAO0vB,EAAI,OAASA,EAAI,MAGtB,GAFA,EAAOA,EAAI,KACX,EAAOA,EAAI,KACPE,EAAUM,GAAYR,EAAKI,EAAMC,EAAMH,CAAO,EAAIO,GAAMT,CAAG,EAC7DU,EAAU,KAAKH,EAAK,EAAIf,EAAM,CAAC,EAC/BkB,EAAU,KAAKV,EAAI,EAAIR,EAAM,CAAC,EAC9BkB,EAAU,KAAKpwB,EAAK,EAAIkvB,EAAM,CAAC,EAC/BG,GAAWK,CAAG,EACd,EAAM1vB,EAAK,KACX,EAAOA,EAAK,UAId,GADA,EAAMA,EACF0vB,IAAQM,EAAM,CACXL,EAEMA,IAAS,GAClB,EAAMU,GAAuBf,GAAaI,CAAG,EAAGU,EAAWlB,CAAG,EAC9DO,GAAaC,EAAKU,EAAWlB,EAAKY,EAAMC,EAAMH,EAAS,CAAC,GAC/CD,IAAS,GAClBW,GAAYZ,EAAKU,EAAWlB,EAAKY,EAAMC,EAAMH,CAAO,EALpDH,GAAaH,GAAaI,CAAG,EAAGU,EAAWlB,EAAKY,EAAMC,EAAMH,EAAS,CAAC,EAOxE,KACF,CAEJ,CACA,SAASO,GAAM,EAAK,CAClB,IAAMrzC,EAAI4yC,EAAI,KAAM7yC,EAAI6yC,EAAK1uC,EAAI0uC,EAAI,KACrC,GAAIF,GAAK1yC,EAAGD,EAAGmE,CAAC,GAAK,EAAG,MAAO,GAC/B,IAAMuvC,EAAKzzC,EAAE,EAAG0zC,EAAK3zC,EAAE,EAAG9E,EAAKiJ,EAAE,EAAGyvC,EAAK3zC,EAAE,EAAG4zC,EAAK7zC,EAAE,EAAG8zC,EAAK3vC,EAAE,EACzDusC,EAAKgD,EAAKC,EAAKD,EAAKx4C,EAAKw4C,EAAKx4C,EAAKy4C,EAAKz4C,EAAKy4C,EAAKz4C,EAAI64C,EAAKH,EAAKC,EAAKD,EAAKE,EAAKF,EAAKE,EAAKD,EAAKC,EAAKD,EAAKC,EAAIlD,EAAK8C,EAAKC,EAAKD,EAAKx4C,EAAKw4C,EAAKx4C,EAAKy4C,EAAKz4C,EAAKy4C,EAAKz4C,EAAI84C,EAAKJ,EAAKC,EAAKD,EAAKE,EAAKF,EAAKE,EAAKD,EAAKC,EAAKD,EAAKC,EACtN1sC,EAAIjD,EAAE,KACV,KAAOiD,IAAMnH,GAAG,CACd,GAAImH,EAAE,GAAKspC,GAAMtpC,EAAE,GAAKwpC,GAAMxpC,EAAE,GAAK2sC,GAAM3sC,EAAE,GAAK4sC,GAAMC,GAAgBP,EAAIE,EAAID,EAAIE,EAAI34C,EAAI44C,EAAI1sC,EAAE,EAAGA,EAAE,CAAC,GAAKurC,GAAKvrC,EAAE,KAAMA,EAAGA,EAAE,IAAI,GAAK,EAAG,MAAO,GAClJ,EAAIA,EAAE,IACR,CACA,MAAO,EACT,CACA,SAASisC,GAAY,EAAK,EAAM,EAAM,EAAS,CAC7C,IAAMpzC,EAAI4yC,EAAI,KAAM7yC,EAAI6yC,EAAK1uC,EAAI0uC,EAAI,KACrC,GAAIF,GAAK1yC,EAAGD,EAAGmE,CAAC,GAAK,EAAG,MAAO,GAC/B,IAAMuvC,EAAKzzC,EAAE,EAAG0zC,EAAK3zC,EAAE,EAAG9E,EAAKiJ,EAAE,EAAGyvC,EAAK3zC,EAAE,EAAG4zC,EAAK7zC,EAAE,EAAG8zC,EAAK3vC,EAAE,EACzDusC,EAAKgD,EAAKC,EAAKD,EAAKx4C,EAAKw4C,EAAKx4C,EAAKy4C,EAAKz4C,EAAKy4C,EAAKz4C,EAAI64C,EAAKH,EAAKC,EAAKD,EAAKE,EAAKF,EAAKE,EAAKD,EAAKC,EAAKD,EAAKC,EAAIlD,EAAK8C,EAAKC,EAAKD,EAAKx4C,EAAKw4C,EAAKx4C,EAAKy4C,EAAKz4C,EAAKy4C,EAAKz4C,EAAI84C,EAAKJ,EAAKC,EAAKD,EAAKE,EAAKF,EAAKE,EAAKD,EAAKC,EAAKD,EAAKC,EACpNI,EAAOC,GAAOzD,EAAIqD,EAAId,EAAMC,EAAMH,CAAO,EAAGqB,EAAOD,GAAOvD,EAAIoD,EAAIf,EAAMC,EAAMH,CAAO,EACvF3rC,EAAIyrC,EAAI,MAAOnxC,EAAImxC,EAAI,MAC3B,KAAOzrC,GAAKA,EAAE,GAAK8sC,GAAQxyC,GAAKA,EAAE,GAAK0yC,GAAM,CAG3C,GAFIhtC,EAAE,GAAKspC,GAAMtpC,EAAE,GAAKwpC,GAAMxpC,EAAE,GAAK2sC,GAAM3sC,EAAE,GAAK4sC,GAAM5sC,IAAMnH,GAAKmH,IAAMjD,GAAK8vC,GAAgBP,EAAIE,EAAID,EAAIE,EAAI34C,EAAI44C,EAAI1sC,EAAE,EAAGA,EAAE,CAAC,GAAKurC,GAAKvrC,EAAE,KAAMA,EAAGA,EAAE,IAAI,GAAK,IAC9J,EAAIA,EAAE,MACF1F,EAAE,GAAKgvC,GAAMhvC,EAAE,GAAKkvC,GAAMlvC,EAAE,GAAKqyC,GAAMryC,EAAE,GAAKsyC,GAAMtyC,IAAMzB,GAAKyB,IAAMyC,GAAK8vC,GAAgBP,EAAIE,EAAID,EAAIE,EAAI34C,EAAI44C,EAAIpyC,EAAE,EAAGA,EAAE,CAAC,GAAKixC,GAAKjxC,EAAE,KAAMA,EAAGA,EAAE,IAAI,GAAK,GAAG,MAAO,GACxK,EAAIA,EAAE,KACR,CACA,KAAO0F,GAAKA,EAAE,GAAK8sC,GAAM,CACvB,GAAI9sC,EAAE,GAAKspC,GAAMtpC,EAAE,GAAKwpC,GAAMxpC,EAAE,GAAK2sC,GAAM3sC,EAAE,GAAK4sC,GAAM5sC,IAAMnH,GAAKmH,IAAMjD,GAAK8vC,GAAgBP,EAAIE,EAAID,EAAIE,EAAI34C,EAAI44C,EAAI1sC,EAAE,EAAGA,EAAE,CAAC,GAAKurC,GAAKvrC,EAAE,KAAMA,EAAGA,EAAE,IAAI,GAAK,EAAG,MAAO,GACxK,EAAIA,EAAE,KACR,CACA,KAAO1F,GAAKA,EAAE,GAAK0yC,GAAM,CACvB,GAAI1yC,EAAE,GAAKgvC,GAAMhvC,EAAE,GAAKkvC,GAAMlvC,EAAE,GAAKqyC,GAAMryC,EAAE,GAAKsyC,GAAMtyC,IAAMzB,GAAKyB,IAAMyC,GAAK8vC,GAAgBP,EAAIE,EAAID,EAAIE,EAAI34C,EAAI44C,EAAIpyC,EAAE,EAAGA,EAAE,CAAC,GAAKixC,GAAKjxC,EAAE,KAAMA,EAAGA,EAAE,IAAI,GAAK,EAAG,MAAO,GACxK,EAAIA,EAAE,KACR,CACA,MAAO,EACT,CACA,SAAS8xC,GAAuB,EAAO,EAAW,EAAK,CACrD,IAAIpsC,EAAIkL,EACR,EAAG,CACD,IAAMrS,EAAImH,EAAE,KAAMpH,EAAIoH,EAAE,KAAK,KACzB,CAACmrC,GAAOtyC,EAAGD,CAAC,GAAKq0C,GAAWp0C,EAAGmH,EAAGA,EAAE,KAAMpH,CAAC,GAAKs0C,GAAcr0C,EAAGD,CAAC,GAAKs0C,GAAct0C,EAAGC,CAAC,IAC3FszC,EAAU,KAAKtzC,EAAE,EAAIoyC,EAAM,CAAC,EAC5BkB,EAAU,KAAKnsC,EAAE,EAAIirC,EAAM,CAAC,EAC5BkB,EAAU,KAAKvzC,EAAE,EAAIqyC,EAAM,CAAC,EAC5BG,GAAWprC,CAAC,EACZorC,GAAWprC,EAAE,IAAI,EACjB,EAAI,EAAQpH,GAEd,EAAIoH,EAAE,IACR,OAASA,IAAMkL,GACf,OAAOmgC,GAAarrC,CAAC,CACvB,CACA,SAASqsC,GAAY,EAAO,EAAW,EAAK,EAAM,EAAM,EAAS,CAC/D,IAAIxzC,EAAIqS,EACR,EAAG,CACD,IAAItS,EAAIC,EAAE,KAAK,KACf,KAAOD,IAAMC,EAAE,MAAM,CACnB,GAAIA,EAAE,IAAMD,EAAE,GAAKu0C,GAAgBt0C,EAAGD,CAAC,EAAG,CACxC,IAAImE,EAAIqwC,GAAav0C,EAAGD,CAAC,EACzB,EAAIyyC,GAAaxyC,EAAGA,EAAE,IAAI,EAC1B,EAAIwyC,GAAatuC,EAAGA,EAAE,IAAI,EAC1ByuC,GAAa3yC,EAAGszC,EAAWlB,EAAKY,EAAMC,EAAMH,EAAS,CAAC,EACtDH,GAAazuC,EAAGovC,EAAWlB,EAAKY,EAAMC,EAAMH,EAAS,CAAC,EACtD,MACF,CACA,EAAI/yC,EAAE,IACR,CACA,EAAIC,EAAE,IACR,OAASA,IAAMqS,EACjB,CACA,SAASmiC,GAAe,EAAM,EAAa,EAAW,EAAK,CACzD,IAAMC,EAAQ,CAAC,EACX3vC,EAAG4vC,EAAKriC,EAAO0U,EAAKmJ,EACxB,IAAK,EAAI,EAAG,EAAMykB,EAAY,OAAQ7vC,EAAI4vC,EAAK,IAC7C,EAAQC,EAAY7vC,GAAKstC,EACzB,EAAMttC,EAAI4vC,EAAM,EAAIC,EAAY7vC,EAAI,GAAKstC,EAAMlmC,EAAK,OACpD,EAAO8lC,GAAW9lC,EAAMmG,EAAO0U,EAAKqrB,EAAK,EAAK,EAC1CliB,IAASA,EAAK,OAAM,EAAK,QAAU,IACvCukB,EAAM,KAAKG,GAAY1kB,CAAI,CAAC,EAG9B,IADAukB,EAAM,KAAKI,EAAQ,EACd,EAAI,EAAG/vC,EAAI2vC,EAAM,OAAQ,IAC5B,EAAYK,GAAcL,EAAM3vC,GAAIiwC,CAAS,EAE/C,OAAOA,CACT,CACA,SAASF,GAAS,EAAG,EAAG,CACtB,OAAO70C,EAAE,EAAID,EAAE,CACjB,CACA,SAAS+0C,GAAc,EAAM,EAAW,CACtC,IAAME,EAASC,GAAeC,EAAMH,CAAS,EAC7C,GAAI,CAACC,EACH,OAAOD,EAET,IAAMI,EAAgBZ,GAAaS,EAAQE,CAAI,EAE/C,OADA1C,GAAa2C,EAAeA,EAAc,IAAI,EACvC3C,GAAawC,EAAQA,EAAO,IAAI,CACzC,CACA,SAASC,GAAe,EAAM,EAAW,CACvC,IAAI9tC,EAAI4tC,EAAWK,EAAK,KAAW1zC,EAC7B2zC,EAAKH,EAAK,EAAGI,EAAKJ,EAAK,EAC7B,EAAG,CACD,GAAII,GAAMnuC,EAAE,GAAKmuC,GAAMnuC,EAAE,KAAK,GAAKA,EAAE,KAAK,IAAMA,EAAE,EAAG,CACnD,IAAMxG,EAAIwG,EAAE,GAAKmuC,EAAKnuC,EAAE,IAAMA,EAAE,KAAK,EAAIA,EAAE,IAAMA,EAAE,KAAK,EAAIA,EAAE,GAC9D,GAAIxG,GAAK00C,GAAM10C,EAAIy0C,IACjB,EAAKz0C,EACL,EAAIwG,EAAE,EAAIA,EAAE,KAAK,EAAIA,EAAIA,EAAE,KACvBxG,IAAM00C,GAAI,OAAO3zC,CAEzB,CACA,EAAIyF,EAAE,IACR,OAASA,IAAM4tC,GACf,GAAI,CAACrzC,EAAG,OAAO,KACf,IAAMwxC,EAAOxxC,EAAG6zC,EAAK7zC,EAAE,EAAG8zC,EAAK9zC,EAAE,EAC7B+zC,EAAS,IAAUC,EACvB,EAAIh0C,EACJ,GACM2zC,GAAMluC,EAAE,GAAKA,EAAE,GAAKouC,GAAMF,IAAOluC,EAAE,GAAK6sC,GAAgBsB,EAAKE,EAAKH,EAAKD,EAAIE,EAAIC,EAAIC,EAAIF,EAAKE,EAAKJ,EAAKC,EAAIC,EAAInuC,EAAE,EAAGA,EAAE,CAAC,IACxH,EAAM,KAAK,IAAImuC,EAAKnuC,EAAE,CAAC,GAAKkuC,EAAKluC,EAAE,GAC/BktC,GAAcltC,EAAG+tC,CAAI,IAAMQ,EAAMD,GAAUC,IAAQD,IAAWtuC,EAAE,EAAIzF,EAAE,GAAKyF,EAAE,IAAMzF,EAAE,GAAKi0C,GAAqBj0C,EAAGyF,CAAC,MACrH,EAAIA,EACJ,EAASuuC,IAGb,EAAIvuC,EAAE,WACCA,IAAM+rC,GACf,OAAOxxC,CACT,CACA,SAASi0C,GAAqB,EAAG,EAAG,CAClC,OAAOjD,GAAKhxC,EAAE,KAAMA,EAAGyF,EAAE,IAAI,EAAI,GAAKurC,GAAKvrC,EAAE,KAAMzF,EAAGA,EAAE,IAAI,EAAI,CAClE,CACA,SAASqxC,GAAW,EAAO,EAAM,EAAM,EAAS,CAC9C,IAAI5rC,EAAIkL,EACR,GACMlL,EAAE,IAAM,IAAG,EAAE,EAAI+sC,GAAO/sC,EAAE,EAAGA,EAAE,EAAG6rC,EAAMC,EAAMH,CAAO,GACzD,EAAE,MAAQ3rC,EAAE,KACZ,EAAE,MAAQA,EAAE,KACZ,EAAIA,EAAE,WACCA,IAAMkL,GACf,EAAE,MAAM,MAAQ,KAChB,EAAE,MAAQ,KACVujC,GAAWzuC,CAAC,CACd,CACA,SAASyuC,GAAW,EAAM,CACxB,IAAI9wC,EAAGqC,EAAG1C,EAAGgD,EAAGouC,EAAMC,EAAWC,EAAOC,EAAOC,EAAS,EACxD,EAAG,CAKD,IAJA,EAAI/lB,EACJ,EAAO,KACP,EAAO,KACP,EAAY,EACL/oB,GAAG,CAIR,IAHA,IACA,EAAIA,EACJ,EAAQ,EACH,EAAI,EAAGrC,EAAImxC,IACd,IACA,EAAIxxC,EAAE,MACDA,GAHiB,KAMxB,IADA,EAAQwxC,EACDF,EAAQ,GAAKC,EAAQ,GAAKvxC,GAC3BsxC,IAAU,IAAMC,IAAU,GAAK,CAACvxC,GAAK0C,EAAE,GAAK1C,EAAE,IAChD,EAAI0C,EACJ,EAAIA,EAAE,MACN,MAEA,EAAI1C,EACJ,EAAIA,EAAE,MACN,KAEEoxC,EAAM,EAAK,MAAQpuC,EAClB,EAAOA,EACZ,EAAE,MAAQouC,EACV,EAAOpuC,EAET,EAAIhD,CACN,CACA,EAAK,MAAQ,KACb,GAAU,CACZ,OAASqxC,EAAY,GACrB,OAAO5lB,CACT,CACA,SAASgkB,GAAO,EAAG,EAAG,EAAM,EAAM,EAAS,CAWzC,MAVA,IAAKvzC,EAAIqyC,GAAQF,EAAU,EAC3B,GAAK7wC,EAAIgxC,GAAQH,EAAU,EAC3B,GAAKnyC,EAAIA,GAAK,GAAK,SACnB,GAAKA,EAAIA,GAAK,GAAK,UACnB,GAAKA,EAAIA,GAAK,GAAK,UACnB,GAAKA,EAAIA,GAAK,GAAK,WACnB,GAAKsB,EAAIA,GAAK,GAAK,SACnB,GAAKA,EAAIA,GAAK,GAAK,UACnB,GAAKA,EAAIA,GAAK,GAAK,UACnB,GAAKA,EAAIA,GAAK,GAAK,WACZtB,EAAIsB,GAAK,CAClB,CACA,SAAS2yC,GAAY,EAAO,CAC1B,IAAIztC,EAAIkL,EAAO6jC,EAAW7jC,EAC1B,GACMlL,EAAE,EAAI+uC,EAAS,GAAK/uC,EAAE,IAAM+uC,EAAS,GAAK/uC,EAAE,EAAI+uC,EAAS,KAAG,EAAW/uC,GAC3E,EAAIA,EAAE,WACCA,IAAMkL,GACf,OAAO6jC,CACT,CACA,SAASlC,GAAgB,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAK,EAAK,CACzD,OAAQ/4C,EAAKk7C,IAAQxC,EAAKyC,KAAS3C,EAAK0C,IAAQtC,EAAKuC,KAAS3C,EAAK0C,IAAQvC,EAAKwC,KAAS1C,EAAKyC,IAAQxC,EAAKyC,KAAS1C,EAAKyC,IAAQtC,EAAKuC,KAASn7C,EAAKk7C,IAAQvC,EAAKwC,EACnK,CACA,SAAS9B,GAAgB,EAAG,EAAG,CAC7B,OAAOt0C,EAAE,KAAK,IAAMD,EAAE,GAAKC,EAAE,KAAK,IAAMD,EAAE,GAAK,CAACs2C,GAAkBr2C,EAAGD,CAAC,IACrEs0C,GAAcr0C,EAAGD,CAAC,GAAKs0C,GAAct0C,EAAGC,CAAC,GAAKs2C,GAAat2C,EAAGD,CAAC,IAC/D2yC,GAAK1yC,EAAE,KAAMA,EAAGD,EAAE,IAAI,GAAK2yC,GAAK1yC,EAAGD,EAAE,KAAMA,CAAC,IAC7CuyC,GAAOtyC,EAAGD,CAAC,GAAK2yC,GAAK1yC,EAAE,KAAMA,EAAGA,EAAE,IAAI,EAAI,GAAK0yC,GAAK3yC,EAAE,KAAMA,EAAGA,EAAE,IAAI,EAAI,EAC3E,CACA,SAAS2yC,GAAK,EAAG,EAAG,EAAG,CACrB,OAAQjuC,EAAE,EAAI0C,EAAE,IAAMT,EAAE,EAAIjC,EAAE,IAAMA,EAAE,EAAI0C,EAAE,IAAMT,EAAE,EAAIjC,EAAE,EAC5D,CACA,SAAS6tC,GAAO,EAAI,EAAI,CACtB,OAAOxrC,EAAG,IAAME,EAAG,GAAKF,EAAG,IAAME,EAAG,CACtC,CACA,SAASotC,GAAW,EAAI,EAAI,EAAI,EAAI,CAClC,IAAMmC,EAAKC,GAAK9D,GAAK5rC,EAAI2vC,EAAIzvC,CAAE,CAAC,EAC1B0vC,EAAKF,GAAK9D,GAAK5rC,EAAI2vC,EAAIE,CAAE,CAAC,EAC1BC,EAAKJ,GAAK9D,GAAK1rC,EAAI2vC,EAAI7vC,CAAE,CAAC,EAC1B+vC,EAAKL,GAAK9D,GAAK1rC,EAAI2vC,EAAIF,CAAE,CAAC,EAMhC,MADA,GAJIF,IAAOG,GAAME,IAAOC,GACpBN,IAAO,GAAKO,GAAUhwC,EAAIE,EAAIyvC,CAAE,GAChCC,IAAO,GAAKI,GAAUhwC,EAAI6vC,EAAIF,CAAE,GAChCG,IAAO,GAAKE,GAAU9vC,EAAIF,EAAI6vC,CAAE,GAChCE,IAAO,GAAKC,GAAU9vC,EAAIyvC,EAAIE,CAAE,EAEtC,CACA,SAASG,GAAU,EAAG,EAAG,EAAG,CAC1B,OAAOryC,EAAE,GAAK,KAAK,IAAI0C,EAAE,EAAGT,EAAE,CAAC,GAAKjC,EAAE,GAAK,KAAK,IAAI0C,EAAE,EAAGT,EAAE,CAAC,GAAKjC,EAAE,GAAK,KAAK,IAAI0C,EAAE,EAAGT,EAAE,CAAC,GAAKjC,EAAE,GAAK,KAAK,IAAI0C,EAAE,EAAGT,EAAE,CAAC,CACxH,CACA,SAAS8vC,GAAK,EAAK,CACjB,OAAOO,EAAM,EAAI,EAAIA,EAAM,EAAI,GAAK,CACtC,CACA,SAASV,GAAkB,EAAG,EAAG,CAC/B,IAAIlvC,EAAInH,EACR,EAAG,CACD,GAAImH,EAAE,IAAMnH,EAAE,GAAKmH,EAAE,KAAK,IAAMnH,EAAE,GAAKmH,EAAE,IAAMpH,EAAE,GAAKoH,EAAE,KAAK,IAAMpH,EAAE,GAAKq0C,GAAWjtC,EAAGA,EAAE,KAAMnH,EAAGD,CAAC,EAAG,MAAO,GAC9G,EAAIoH,EAAE,IACR,OAASA,IAAMnH,GACf,MAAO,EACT,CACA,SAASq0C,GAAc,EAAG,EAAG,CAC3B,OAAO3B,GAAK1yC,EAAE,KAAMA,EAAGA,EAAE,IAAI,EAAI,EAAI0yC,GAAK1yC,EAAGD,EAAGC,EAAE,IAAI,GAAK,GAAK0yC,GAAK1yC,EAAGA,EAAE,KAAMD,CAAC,GAAK,EAAI2yC,GAAK1yC,EAAGD,EAAGC,EAAE,IAAI,EAAI,GAAK0yC,GAAK1yC,EAAGA,EAAE,KAAMD,CAAC,EAAI,CAC3I,CACA,SAASu2C,GAAa,EAAG,EAAG,CAC1B,IAAInvC,EAAInH,EAAGg3C,EAAS,GACdb,GAAOn2C,EAAE,EAAID,EAAE,GAAK,EAAGq2C,GAAOp2C,EAAE,EAAID,EAAE,GAAK,EACjD,GACMoH,EAAE,EAAIivC,GAAQjvC,EAAE,KAAK,EAAIivC,GAAOjvC,EAAE,KAAK,IAAMA,EAAE,GAAKgvC,GAAOhvC,EAAE,KAAK,EAAIA,EAAE,IAAMivC,EAAMjvC,EAAE,IAAMA,EAAE,KAAK,EAAIA,EAAE,GAAKA,EAAE,IAClH,EAAS,CAAC6vC,GACZ,EAAI7vC,EAAE,WACCA,IAAMnH,GACf,OAAOg3C,CACT,CACA,SAASzC,GAAa,EAAG,EAAG,CAC1B,IAAMxyC,EAAK,IAAIk1C,GAAKj3C,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAG8B,EAAK,IAAIm1C,GAAKl3C,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EAAGm3C,EAAKl3C,EAAE,KAAMm3C,EAAKp3C,EAAE,KAStF,MARA,GAAE,KAAOA,EACT,EAAE,KAAOC,EACT,EAAG,KAAOk3C,EACV,EAAG,KAAOn1C,EACV,EAAG,KAAOA,EACV,EAAG,KAAOD,EACV,EAAG,KAAOA,EACV,EAAG,KAAOq1C,EACHr1C,CACT,CACA,SAASuwC,GAAW,EAAG,EAAG,EAAG,EAAM,CACjC,IAAMlrC,EAAI,IAAI8vC,GAAKnyC,EAAGnE,EAAGsB,CAAC,EAU1B,OATKgwC,GAIH,EAAE,KAAOA,EAAK,KACd,EAAE,KAAOA,EACT,EAAK,KAAK,KAAO9qC,EACjB,EAAK,KAAOA,IANZ,EAAE,KAAOA,EACT,EAAE,KAAOA,GAOJA,CACT,CACA,SAASorC,GAAW,EAAG,CACrB,EAAE,KAAK,KAAOprC,EAAE,KAChB,EAAE,KAAK,KAAOA,EAAE,KACZA,EAAE,QAAO,EAAE,MAAM,MAAQA,EAAE,OAC3BA,EAAE,QAAO,EAAE,MAAM,MAAQA,EAAE,MACjC,CACA,SAAS8vC,GAAK,EAAG,EAAG,EAAG,CACrB,KAAK,EAAInyC,EACT,KAAK,EAAInE,EACT,KAAK,EAAIsB,EACT,KAAK,KAAO,KACZ,KAAK,KAAO,KACZ,KAAK,EAAI,EACT,KAAK,MAAQ,KACb,KAAK,MAAQ,KACb,KAAK,QAAU,EACjB,CACA,SAASkwC,GAAW,EAAM,EAAO,EAAK,EAAK,CACzC,IAAIiF,EAAM,EACV,IAAK,IAAItyC,EAAIuN,EAAO9L,EAAIwgB,EAAMqrB,EAAKttC,EAAIiiB,EAAK,GAAKqrB,EAC/C,IAAQlmC,EAAK3F,GAAK2F,EAAKpH,KAAOoH,EAAKpH,EAAI,GAAKoH,EAAK3F,EAAI,IACrD,EAAIzB,EAEN,OAAOsyC,CACT,CAkCA,SAASC,GAAgB,EAAQ,CAC/B,IAAMtrC,EAAIurC,EAAO,OACbvrC,EAAI,GAAKurC,EAAOvrC,EAAI,EAAE,CAAC,OAAOurC,EAAO,EAAE,GACzCA,EAAO,IAAI,CAEf,CACA,SAASC,GAAW,EAAU,EAAS,CACrC,IAAK,IAAIzyC,EAAI,EAAGA,EAAI0yC,EAAQ,OAAQ,IAClCC,EAAS,KAAKD,EAAQ1yC,EAAE,CAAC,CAAC,EAC1B2yC,EAAS,KAAKD,EAAQ1yC,EAAE,CAAC,CAAC,CAE9B,CAmXA,SAAS4yC,GAAS,EAAQ,EAAS,EAAM,CAEvC,GADA,EAAK,OAAS,CAAC,EACX,MAAM,QAAQC,CAAM,EACtB,IAAK,IAAI7yC,EAAI,EAAGiH,EAAI4rC,EAAO,OAAQ7yC,EAAIiH,EAAG,IAAK,CAC7C,IAAM6rC,EAAQD,EAAO7yC,GACrBoH,EAAK,OAAO,KAAK0rC,EAAM,IAAI,CAC7B,MAEA1rC,EAAK,OAAO,KAAKyrC,EAAO,IAAI,EAI9B,MAFA,GAAK,QAAU,OAAO,OAAO,CAAC,EAAGE,CAAO,EACpCA,EAAQ,cAAgB,IAAK,KAAG,EAAK,QAAQ,YAAcA,EAAQ,YAAY,OAAO,GACnF3rC,CACT,CA6TA,SAAS4rC,GAAO,EAAQ,EAAM,CAE5B,GADA,EAAK,OAAS,CAAC,EACX,MAAM,QAAQH,CAAM,EACtB,IAAK,IAAI7yC,EAAI,EAAGiH,EAAI4rC,EAAO,OAAQ7yC,EAAIiH,EAAG,IAAK,CAC7C,IAAM6rC,EAAQD,EAAO7yC,GACrBoH,EAAK,OAAO,KAAK0rC,EAAM,IAAI,CAC7B,MAEA1rC,EAAK,OAAO,KAAKyrC,EAAO,IAAI,EAE9B,OAAOzrC,CACT,CA2ZA,SAAS6rC,GAAa,EAAO,EAAK,EAAO,CACvC,IAAMC,EAAQ,GAAG3lC,EAAM,EAAE,GAAGA,EAAM,EAAE,GAAGA,EAAM,EAAE,GAAG0U,EAAI,EAAE,GAAGA,EAAI,EAAE,GAAGA,EAAI,IAClEkxB,EAAQ,GAAGlxB,EAAI,EAAE,GAAGA,EAAI,EAAE,GAAGA,EAAI,EAAE,GAAG1U,EAAM,EAAE,GAAGA,EAAM,EAAE,GAAGA,EAAM,IAMtE,OALE6lC,EAAM,IAAIF,CAAK,IAAM,IAAQE,EAAM,IAAID,CAAK,IAAM,GAC7C,IAEPC,EAAM,IAAIF,CAAK,EACfE,EAAM,IAAID,CAAK,EACR,GAEX,CA4jBA,SAASE,GAAa,EAAO,EAAM,EAAY,CAM7C,MALI,CAACxzC,GACL,CAACyzC,GAAczzC,EAAM,cAAgBM,EAAaN,EAC9C,OAAOM,EAAK,mBAAsB,SAC7B,IAAIA,EAAKN,CAAK,EAEhB,MAAM,UAAU,MAAM,KAAKA,CAAK,CACzC,CACA,SAAS0zC,GAAa,EAAQ,CAC5B,OAAO,YAAY,OAAOxvC,CAAM,GAAK,EAAEA,aAAkB,SAC3D,CACA,SAASyvC,GAAiB,EAAO,CAC/B,SAASC,EAAY,EAAG,EAAG,CACzB,OAAOC,EAAM1zC,GAAK0zC,EAAMjyC,EAC1B,CACA,IAAM,EAAIiyC,EAAM,OACVtjB,EAAa,MAAM,CAAC,EAC1B,IAAK,IAAIpwB,EAAI,EAAGA,IAAM,EAAG,EAAEA,EAAG,EAAOA,GAAKA,EAE1C,OADAowB,EAAO,KAAKqjB,CAAW,EAChBrjB,CACT,CACA,SAASujB,GAAY,EAAQ,EAAQ,EAAO,CAC1C,IAAMC,EAAU3K,EAAO,OACjB7Y,EAAS,IAAI6Y,EAAO,YAAY2K,CAAO,EAC7C,IAAK,IAAI5zC,EAAI,EAAG0R,EAAY,EAAGA,IAAckiC,EAAS,EAAE5zC,EAAG,CACzD,IAAM6zC,EAAYn0C,EAAMM,GAAKsM,EAC7B,IAAK,IAAI7K,EAAI,EAAGA,IAAM6K,EAAQ,EAAE7K,EAC9B,EAAO,KAAewnC,EAAO4K,EAAYpyC,EAE7C,CACA,OAAO2uB,CACT,CACA,SAAS0jB,GAAY,EAAU,EAAO,EAAQ,EAAmB,CAC/D,IAAI,EAAI,EAAGj6C,EAAMk6C,EAAS,GAC1B,KAAOl6C,IAAQ,IAAK,IAAKA,EAAIm6C,KAAuB,IAAK,IACvD,EAAMD,EAAS,KAEjB,GAAIl6C,IAAQ,IAAK,GAAG,OACpB,IAAIkB,EAAQlB,EAAIm6C,GAChB,GAAIj5C,IAAU,IAAK,GACnB,IAAI,MAAM,QAAQA,CAAK,EACrB,EACE,GAAQlB,EAAIm6C,GACRj5C,IAAU,IAAK,KACjB24C,EAAM,KAAK75C,EAAI,IAAI,EACnBovC,EAAO,KAAK,MAAMA,EAAQluC,CAAK,GAEjC,EAAMg5C,EAAS,WACRl6C,IAAQ,IAAK,SACjB,GAAIkB,EAAM,UAAY,IAAK,GAChC,EACE,GAAQlB,EAAIm6C,GACRj5C,IAAU,IAAK,KACjB24C,EAAM,KAAK75C,EAAI,IAAI,EACnBkB,EAAM,QAAQkuC,EAAQA,EAAO,MAAM,GAErC,EAAM8K,EAAS,WACRl6C,IAAQ,IAAK,SAEtB,EACE,GAAQA,EAAIm6C,GACRj5C,IAAU,IAAK,KACjB24C,EAAM,KAAK75C,EAAI,IAAI,EACnBovC,EAAO,KAAKluC,CAAK,GAEnB,EAAMg5C,EAAS,WACRl6C,IAAQ,IAAK,GAAA,CAE1B,CACA,SAASo6C,GAAQ,EAAY,EAAM,EAAY,EAAU,EAAM,GAAI,CACjE,IAAMC,EAAOC,EAAW,MAAM,EAC9B,EAAK,KAAO74C,EACZ,IAAM84C,EAAS,CAAC,EAChB,IAAK,IAAIp0C,EAAI,EAAGA,EAAIk0C,EAAK,OAAO,OAAQ,EAAEl0C,EAAG,CAC3C,IAAMq0C,EAAQH,EAAK,OAAOl0C,GACpBs0C,EAAYD,EAAM,aAAa,EAC/BX,EAAQ,CAAC,EACTzK,EAAS,CAAC,EAChB,IAAK,IAAIxnC,EAAI,EAAGA,EAAI4yC,EAAM,MAAM,OAAQ,EAAE5yC,EAAG,CAC3C,IAAMxM,EAAQo/C,EAAM,MAAM5yC,GAAK8yC,EAC/B,GAAI,IAAQC,GAAcv/C,GAASw/C,GACnC,GAAM,KAAKJ,EAAM,MAAM5yC,EAAE,EACzB,IAAK,IAAIovB,EAAI,EAAGA,EAAIyjB,EAAW,EAAEzjB,EAC/BoY,EAAO,KAAKoL,EAAM,OAAO5yC,EAAI6yC,EAAYzjB,EAAE,CAFpB,CAI3B,CACI6iB,EAAM,SAAW,IACrB,EAAM,MAAQL,GAAaK,EAAOW,EAAM,MAAM,WAAW,EACzD,EAAM,OAAShB,GAAapK,EAAQoL,EAAM,OAAO,WAAW,EAC5DD,EAAO,KAAKC,CAAK,EACnB,CACA,EAAK,OAASD,EACd,IAAIM,EAAe,IACnB,IAAK,IAAI10C,EAAI,EAAGA,EAAIk0C,EAAK,OAAO,OAAQ,EAAEl0C,EACpC00C,EAAeR,EAAK,OAAOl0C,EAAE,CAAC,MAAM,KACtC,EAAek0C,EAAK,OAAOl0C,EAAE,CAAC,MAAM,IAGxC,IAAK,IAAIA,EAAI,EAAGA,EAAIk0C,EAAK,OAAO,OAAQ,EAAEl0C,EACxCk0C,EAAK,OAAOl0C,EAAE,CAAC,MAAM,GAAK00C,CAAY,EAGxC,OADAR,EAAK,cAAc,EACZA,CACT,CACA,SAASS,GAAiB,EAAY,EAAiB,EAAG,EAAgBC,EAAY,EAAM,GAAI,CAC1FL,GAAO,IAAG,EAAM,IACpB,IAAMM,EAAYC,EAAc,OAAO,OACjCC,EAAgBC,EAAiBT,EACvC,IAAK,IAAIv0C,EAAI,EAAGA,EAAI60C,EAAW,EAAE70C,EAAG,CAClC,IAAMi1C,EAAiBH,EAAc,OAAO90C,GACtCk1C,EAAqBD,EAAe,cAC1C,GAAIC,IAAuB,QAAUA,IAAuB,SAAU,SACtE,IAAMC,EAAcP,EAAW,OAAO,KAAK,SAAS,EAAO,CACzD,OAAOP,EAAM,OAASY,EAAe,MAAQZ,EAAM,gBAAkBa,CACvE,CAAC,EACD,GAAIC,IAAgB,IAAK,GAAG,SAC5B,IAAIC,EAAkB,EAChBC,EAAqBJ,EAAe,aAAa,EACnDA,EAAe,kBAAkB,4CACnC,EAAkBI,EAAqB,GAEzC,IAAI7K,EAAe,EACb8K,EAAkBH,EAAY,aAAa,EAC7CA,EAAY,kBAAkB,4CAChC,EAAeG,EAAkB,GAEnC,IAAMC,EAAYN,EAAe,MAAM,OAAS,EAC5CO,EACJ,GAAIT,GAAiBE,EAAe,MAAM,GAAI,CAC5C,IAAMQ,EAAaL,EACbM,EAAWL,EAAqBD,EACtC,EAAiBH,EAAe,OAAO,MAAMQ,EAAYC,CAAQ,CACnE,MAAO,GAAIX,GAAiBE,EAAe,MAAMM,GAAY,CAC3D,IAAME,EAAaF,EAAYF,EAAqBD,EAC9CM,EAAWD,EAAaJ,EAAqBD,EACnD,EAAiBH,EAAe,OAAO,MAAMQ,EAAYC,CAAQ,CACnE,KAAO,CACL,IAAMC,EAAcV,EAAe,kBAAkB,EAC/CQ,EAAaL,EACbM,EAAWL,EAAqBD,EACtCO,EAAY,SAASZ,CAAa,EAClC,EAAiBY,EAAY,aAAa,MAAMF,EAAYC,CAAQ,CACtE,CACIR,IAAuB,cAEzB,IAD0BU,GAAW,CAAC,CAAC,UAAUJ,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,UACjE,CAAC,CAAC,QAAQA,CAAc,EAEtC,IAAMK,EAAWV,EAAY,MAAM,OACnC,IAAK,IAAI1zC,EAAI,EAAGA,EAAIo0C,EAAU,EAAEp0C,EAAG,CACjC,IAAMq0C,EAAar0C,EAAI6zC,EAAkB9K,EACzC,GAAI0K,IAAuB,aACzBU,GAAW,wBACTT,EAAY,OACZW,EACAN,EACA,EACAL,EAAY,OACZW,CACF,MACK,CACL,IAAMC,EAAWT,EAAkB9K,EAAe,EAClD,IAAK,IAAI3Z,EAAI,EAAGA,EAAIklB,EAAU,EAAEllB,EAC9B,EAAY,OAAOilB,EAAajlB,IAAM2kB,EAAe3kB,EAEzD,CACF,CACF,CAEA,MADA,GAAW,UAAYmlB,GAChBpB,CACT,CA8qBA,SAASqB,GAA6B,EAAU,CAC9C,OAAQC,EAAS,YAAY,EAA7B,CACE,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,UACH,OAAOC,GACT,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACH,OAAOC,GACT,IAAK,QACH,OAAOC,GACT,IAAK,aACH,OAAOC,GACT,IAAK,OACL,IAAK,UACH,OAAOC,GACT,IAAK,SACH,OAAOC,EACX,CACA,MAAU,MAAM,8CAAgDN,CAAQ,CAC1E,CACA,SAASO,GAAmB,EAAM,CAChC,GAAIC,EAAK,OAAS,IAAK,GACrB,MAAU,MAAM,0DAA0D,EAE5E,IAAMC,EAAYV,GAA6BS,EAAK,IAAI,EACxD,GAAIA,EAAK,QAAU,IAAK,GAAG,CACzB,IAAMhD,EAAQ,CAAC,EAAGzK,EAAS,CAAC,EAC5B6K,GAAY4C,EAAK,KAAMhD,EAAOzK,EAAQ,OAAO,EAC7C,EAAK,MAAQyK,EACb,EAAK,OAASzK,CAChB,CAIE,OAHE0N,EAAU,QAAU,IAAK,GAGpB,IAAIA,EAAUD,EAAK,KAAMA,EAAK,MAAOA,EAAK,OAAQA,EAAK,aAAa,EAFpEC,EAAU,MAAMD,CAAI,CAI/B,CA+sEA,SAASE,IAAM,CACb,OAAO,YAAY,IAAI,CACzB,CAk6DA,SAASC,GAAQ,EAAG,EAAG,CACrB,OAAO37C,EAAE,SAAWD,EAAE,QACxB,CACA,SAAS67C,EAAU,EAAQ,EAAW,EAAa,EAAW,CAC5D,IAAIC,EAAY,GAKhB,GAJIhzC,EAAO,OAAO,KAAKE,EAAU,MAAM,GACtBF,EAAO,QAAQE,EAAWqnC,CAChC,IAAM,KAAO,EAAY,IAEhCyL,IAAc,IAAQC,IAAc,GAAM,CAC5C,IAAM/lB,EAAWltB,EAAO,SACxB,IAAK,IAAI/D,EAAI,EAAGiH,EAAIgqB,EAAS,OAAQjxB,EAAIiH,EAAG,IAC1C6vC,EAAU7lB,EAASjxB,GAAIiE,EAAWqnC,EAAa,EAAI,CAEvD,CACF,CAgaA,SAAS2L,GAAY,EAAQ,CAC3B,IAAMC,EAAW,CAAC,EACdnzC,EAAO,SAAW,IACpBmzC,EAAS,KAAKnzC,CAAM,EAEtB,IAAK,IAAI/D,EAAI,EAAGA,EAAI+D,EAAO,SAAS,OAAQ,IAC1CmzC,EAAS,KAAK,MAAMA,EAAUD,GAAYlzC,EAAO,SAAS/D,EAAE,CAAC,EAE/D,OAAOk3C,CACT,CA0WA,SAASC,GAAS,EAAO,EAAU,EAAU,EAAQ,EAAG,EAAG,EAAG,CAC5DC,GAAQ,IAAIv7C,EAAGsB,EAAGstB,CAAC,CAAC,CAAC,UAAUvhB,CAAM,EACrC,IAAMspC,EAAS6E,EAASzzC,GACxB,GAAI4uC,IAAW,IAAK,GAAG,CACrB,IAAMn/B,EAAWhJ,EAAS,aAAa,UAAU,EACjD,IAAK,IAAIrK,EAAI,EAAGiH,EAAIurC,EAAO,OAAQxyC,EAAIiH,EAAG,IACxCoM,EAAS,OAAOm/B,EAAOxyC,GAAIo3C,GAAQ,EAAGA,GAAQ,EAAGA,GAAQ,CAAC,CAE9D,CACF,C,unEApt8BI,GAAuB,CAAC,EAC5Bz8C,GAAS28C,GAAsB,CAC7B,0BAAA,EACA,gBAAmBxgB,GACnB,iBAAoB/T,GACpB,+BAAkCizB,GAClC,qBAAwB3d,GACxB,mBAAsB7X,GACtB,gBAAmBub,GACnB,kBAAqBoH,GACrB,gBAAmB7Q,GACnB,sBAAyB4nB,GACzB,iBAAoBoV,GACpB,oBAAuB+C,GACvB,kBAAqB5E,GACrB,oBAAuBQ,GACvB,mBAAsBsE,GACtB,yBAA4BH,GAC5B,mBAAsBlF,GACtB,aAAgBtD,GAChB,gBAAmB5F,GACnB,gBAAmBiR,GACnB,qBAAwBtd,GACxB,UAAaqZ,GACb,kBAAqBM,GACrB,iBAAoBlB,GACpB,kBAAqBW,GACrB,gBAAmBV,GACnB,eAAkB6E,GAClB,aAAgB3xD,GAChB,sBAAyBy1C,GACzB,mBAAA,EACA,gBAAmBqP,GACnB,SAAY7B,GACZ,yBAA4BjQ,GAC5B,SAAY4c,GACZ,SAAYjX,GACZ,eAAkB0Y,GAClB,gBAAmB7rD,GACnB,cAAiB4rD,GACjB,oBAAuBjhD,GACvB,mBAAsBD,GACtB,yBAA4Bo8C,GAC5B,aAAgBnxB,GAChB,UAAagvB,GACb,WAAcxL,GACd,iBAAoBuS,GACpB,kBAAqBhL,GACrB,oBAAuBoB,GACvB,qBAAwBZ,GACxB,sBAAyB1pC,GACzB,mBAAsBuqC,GACtB,wBAA2BroB,GAC3B,UAAaiuB,GACb,UAAajpD,EACb,uBAA0B4uC,GAC1B,oBAAuBxwC,GACvB,2BAA8B0jD,GAC9B,0BAA6BC,GAC7B,sBAAyBF,GACzB,4BAA+B4E,GAC/B,iBAAoBlD,GACpB,wBAA2B/yB,GAC3B,wBAA2BF,GAC3B,aAAgB1pD,GAChB,eAAkBo0E,GAClB,0BAA6BzwC,GAC7B,0BAA6BE,GAC7B,gBAAmBwwC,GACnB,sBAAyB0L,GACzB,4BAA+BvlD,GAC/B,qBAAwBqhD,GACxB,sBAAyBC,GACzB,qBAAwBiD,GACxB,iBAAoB92B,GACpB,kBAAqBiD,GACrB,sBAAyBme,GACzB,iBAAoBpe,GACpB,UAAaowB,GACb,cAAiBgB,GACjB,mBAAsBtyB,GACtB,sBAAyB1X,GACzB,qBAAwBqqC,GACxB,gBAAmBiI,GACnB,kBAAqBlX,GACrB,qBAAwBxjC,GACxB,gBAAmBmuC,GACnB,sBAAyB4H,GACzB,cAAiB5N,GACjB,uBAA0BlH,GAC1B,2BAA8BE,GAC9B,0BAA6BmU,GAC7B,gBAAmB/nB,GACnB,uBAA0BrB,GAC1B,iBAAoBkf,GACpB,qBAAwB9L,GACxB,qBAAwByX,GACxB,2BAA8BkF,GAC9B,wBAA2BjH,GAC3B,wBAA2B5tC,GAC3B,yBAA4BwrC,GAC5B,eAAA,EACA,mBAAsBxzB,GACtB,mBAAsBD,GACtB,qBAAwBijB,GACxB,qBAAwBN,GACxB,qBAAwBG,GACxB,kBAAqBgR,GACrB,iBAAoB5B,GACpB,iBAAoBtmB,GACpB,eAAkB5Q,GAClB,qBAAwBonB,GACxB,qCAAA,IACA,qCAAwC5nC,GACxC,UAAamsC,GACb,oBAAuB9vE,GACvB,oBAAuBq9E,GACvB,eAAkBqC,GAClB,2BAA8B/M,GAC9B,2BAA8BC,EAC9B,cAAiB3oC,GACjB,QAAWmsC,GACX,YAAeD,GACf,uBAA0B4E,GAC1B,cAAiBxlD,GACjB,YAAesqB,GACf,sBAAyBykC,GACzB,UAAahY,GACb,UAAa72B,GACb,mBAAsBwf,GACtB,iBAAoB5Q,GACpB,wBAA2B2Q,GAC3B,sBAAyB5Q,GACzB,4BAA+BunB,GAC/B,uBAA0BF,GAC1B,eAAkBma,GAClB,UAAajQ,GACb,kBAAqBplB,GACrB,oBAAuB2vB,GACvB,0BAA6ByF,GAC7B,wBAA2BpI,GAC3B,sBAAyBqE,GACzB,gBAAmB/B,GACnB,eAAkB5sD,GAClB,uBAA0B+3C,GAC1B,2BAA8BE,GAC9B,6BAAgCqN,GAChC,4BAA+B+I,GAC/B,+BAAkC+C,GAClC,kBAAqBtL,GACrB,yBAA4BtG,GAC5B,yBAA4BC,GAC5B,wBAA2BJ,GAC3B,YAAeh0C,GACf,sBAAyBg4C,GACzB,+BAAkCE,GAClC,gBAAmBqI,GACnB,wBAA2B7U,GAC3B,sBAAyBC,GACzB,sBAAyBC,GACzB,oBAAuBkB,GACvB,kBAAqBN,GACrB,kBAAqBmU,GACrB,QAAW1H,GACX,kBAAqB+E,GACrB,WAAcxlC,GACd,gBAAmBge,GACnB,cAAiB7Q,GACjB,qBAAwBlX,GACxB,mBAAsBmX,GACtB,yBAA4BsnB,GAC5B,oBAAuBF,GACvB,UAAa2U,GACb,eAAkBkB,GAClB,SAAY/G,GACZ,UAAa4K,GACb,sBAAyBhL,GACzB,cAAiB8B,GACjB,eAAkBC,GAClB,uBAA0B4C,GAC1B,aAAgBnE,GAChB,iBAAoBD,GACpB,8BAAiCrpC,GACjC,iBAAoBsjB,GACpB,sBAAyBuqB,GACzB,6BAAgCpV,GAChC,8BAAiCD,GACjC,6BAAgChV,GAChC,8BAAiCD,GACjC,yBAA4BxjB,GAC5B,sBAAyBc,GACzB,mBAAsBqgB,GACtB,WAAcnyD,GACd,gBAAmBohF,GACnB,mBAAsBhC,GACtB,aAAgBxV,GAChB,iBAAoBE,GACpB,eAAkBD,GAClB,yBAA4Bnc,GAC5B,oBAAuBD,GACvB,UAAawb,GACb,aAAgB+I,GAChB,mBAAsBmP,GACtB,cAAiBzU,GACjB,YAAegY,GACf,YAAeziD,GACf,YAAewb,GACf,gBAAmBkL,GACnB,SAAY9oD,GACZ,sBAAyBoyE,GACzB,sBAAyBhyB,GACzB,yBAA4BG,GAC5B,wBAA2Bo+B,GAC3B,uBAA0BC,GAC1B,uBAA0BF,GAC1B,sBAAyBF,GACzB,yBAA4BD,GAC5B,yBAA4BD,GAC5B,qBAAwBG,GACxB,gBAAmB51B,GACnB,2BAA8ByL,GAC9B,iBAAoB5f,GACpB,qBAAwByV,GACxB,sBAAyB1V,GACzB,kBAAqBgN,GACrB,8BAAiCkoB,GACjC,+BAAkCD,GAClC,8BAAiCjV,GACjC,+BAAkCD,GAClC,uBAA0BniB,GAC1B,iBAAoByiB,GACpB,eAAkB7Q,GAClB,qBAAwBsnB,GACxB,eAAkBzkC,GAClB,iBAAoB6uB,GACpB,kBAAA,EACA,6BAAgC6U,GAChC,mBAAsBhwB,GACtB,oBAAuB4a,GACvB,kBAAqB5Q,GACrB,wBAA2BonB,GAC3B,wBAA2B7D,GAC3B,aAAgBiJ,GAChB,iBAAoB0Q,GACpB,yBAA4BpnC,GAC5B,uBAA0BojC,GAC1B,cAAiBz0B,GACjB,gCAAmCa,GACnC,gCAAmCF,GACnC,2BAA8BF,GAC9B,2BAA8BD,GAC9B,2BAA8BD,GAC9B,2BAA8BD,GAC9B,uBAA0BqrB,GAC1B,gBAAmB3jC,GACnB,iBAAA,EACA,qBAAA,EACA,mBAAsBzJ,GACtB,SAAY+0C,GACZ,sBAAyBrI,GACzB,UAAahyC,GACb,kBAAqB9G,GACrB,gBAAmBqrD,GACnB,eAAkB1F,GAClB,qBAAwB0E,GACxB,WAAc1K,GACd,mBAAsBJ,GACtB,oBAAuBoL,GACvB,uBAA0BlJ,GAC1B,oBAAuBoG,GACvB,oBAAuBc,GACvB,kBAAqBZ,GACrB,yBAA4BjH,GAC5B,0BAA6BC,GAC7B,eAAkB3U,GAClB,4BAA+BU,GAC/B,gCAAmCkX,GACnC,2BAA8BjvB,GAC9B,qBAAwBF,GACxB,aAAgBkZ,GAChB,qBAAwB9oB,GACxB,eAAkB8N,GAClB,sBAAyBC,GACzB,2BAA8BuB,GAC9B,0BAA6BH,GAC7B,0BAA6BC,GAC7B,0BAA6BC,GAC7B,2BAA8BE,GAC9B,2BAA8BC,GAC9B,yBAA4Bb,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,yBAA4BC,GAC5B,qBAAwBO,GACxB,yBAA4Bf,GAC5B,6BAAgCL,GAChC,6BAAgCE,GAChC,0BAA6BN,GAC7B,0BAA6BC,GAC7B,0BAA6BC,GAC7B,oBAAuBqc,GACvB,cAAiB3c,GACjB,qBAAwB4b,GACxB,2BAA8B/Z,GAC9B,6BAAgCC,GAChC,oBAAuBnB,GACvB,oBAAuBC,GACvB,4BAA+BL,GAC/B,4BAA+BE,GAC/B,yBAA4BN,GAC5B,mBAAsByc,GACtB,aAAgB9c,GAChB,oBAAuBC,GACvB,sBAAyBowB,GACzB,QAAW/O,GACX,cAAiBoV,GACjB,oBAAuBxzC,GACvB,kBAAqBiwC,GACrB,cAAiBrzB,GACjB,qBAAwBC,GACxB,wBAA2B7b,GAC3B,iBAAoBs7B,GACpB,mBAAsBpZ,GACtB,qBAAwB6W,GACxB,4BAA+BriB,GAC/B,iBAAoB+0B,GACpB,kCAAqCvtB,GACrC,4BAA+BF,GAC/B,mBAAsB7e,GACtB,iBAAoBnW,GACpB,UAAaq7C,GACb,gBAAmBjjC,GACnB,cAAiBzY,GACjB,mBAAsBD,GACtB,mBAAsBwjD,GACtB,UAAahB,GACb,kBAAqBQ,GACrB,cAAiBmJ,GACjB,eAAkBzJ,GAClB,cAAiB9sB,GACjB,aAAgBgoB,GAChB,mBAAsBgN,GACtB,gBAAmBrN,GACnB,WAAc9K,GACd,WAAcyB,GACd,mBAAsB+O,GACtB,cAAiB8G,GACjB,wBAA2BvD,GAC3B,gBAAmBhF,GACnB,cAAiBsE,GACjB,oBAAuB0E,GACvB,WAAc9N,GACd,mBAAsBX,GACtB,mBAAsBxtB,GACtB,2BAA8BC,GAC9B,mBAAsBF,GACtB,oBAAuBmjB,GACvB,oBAAuBN,GACvB,oBAAuBG,GACvB,iBAAoBmW,GACpB,oBAAuB9V,GACvB,oBAAuBN,GACvB,oBAAuBG,GACvB,wBAA2BhE,GAC3B,qBAAwBzf,GACxB,wBAA2BuB,GAC3B,UAAamf,GACb,0BAA6B9uB,GAC7B,wBAA2BujC,GAC3B,YAAevQ,GACf,kBAAqB2S,GACrB,iBAAoBvK,GACpB,kBAAqBoI,GACrB,sBAAyBC,GACzB,aAAgB1nD,GAChB,wBAA2Bq0C,GAC3B,0BAA6BD,GAC7B,sBAAyBD,GACzB,iBAAoBwT,GACpB,cAAiBxU,GACjB,0BAA6BjhC,GAC7B,0BAA6BD,GAC7B,yBAA4BkqC,GAC5B,gCAAmCC,GACnC,YAAe0R,GACf,kBAAqBE,GACrB,gBAAmBxlC,EACnB,kBAAqB9D,GACrB,qBAAwBqV,GACxB,uBAA0BsC,GAC1B,wBAA2B9B,GAC3B,oBAAuBD,GACvB,0BAA6BF,GAC7B,0BAA6BC,GAC7B,sBAAyBJ,GACzB,iBAAA,EACA,YAAe/5B,EACf,YAAeH,EACf,YAAe+S,GACf,wBAA2B4+B,GAC3B,iBAAoBgT,GACpB,wBAA2BrN,GAC3B,2BAA8BF,GAC9B,0BAA6BhB,GAC7B,0BAA6BvoC,GAC7B,+BAAkC+iD,GAClC,sBAAyBxhD,GACzB,kBAAqB2wC,GACrB,eAAkB3d,GAClB,2BAA8BiU,GAC9B,sBAAyBwR,GACzB,qBAAwB3T,GACxB,wBAA2BF,GAC3B,eAAkBrhB,GAClB,oBAAuBshB,GACvB,kBAAqBS,GACrB,wBAA2B74C,EAC7B,CAAC,EACG,GAAW,MACX,GAAQ,CAAE,KAAM,EAAG,OAAQ,EAAG,MAAO,EAAG,OAAQ,EAAG,MAAO,EAAG,IAAK,CAAE,EACpE,GAAQ,CAAE,OAAQ,EAAG,IAAK,EAAG,UAAW,EAAG,aAAc,CAAE,EAC3D,GAAe,EACf,GAAe,EACf,GAAgB,EAChB,GAAoB,EAKpB,GAAY,EACZ,GAAW,EAEX,GAAa,EACb,GAAiB,EACjB,GAAmB,EACnB,GAAsB,EACtB,GAAmB,EACnB,GAAiB,EACjB,GAAc,IACd,GAAmB,IACnB,GAA0B,IAC1B,GAAc,IACd,GAAc,IACd,GAAa,IACb,GAAY,IACZ,GAAiB,IACjB,GAAyB,IACzB,GAAiB,IACjB,GAAyB,IACzB,GAAiB,IACjB,GAAyB,IACzB,GAAiB,IACjB,GAAyB,IACzB,GAAyB,IACzB,GAAsB,IACtB,GAA8B,IAC9B,GAAsB,IACtB,GAA8B,IAC9B,GAAa,EACb,GAAc,EACd,GAAY,EACZ,GAAiB,EACjB,GAAa,EACb,GAAoB,EACpB,GAAe,EACf,GAAgB,EAChB,GAAoB,EACpB,GAAe,EACf,GAAe,EAEf,GAAoB,EACpB,GAAsB,EACtB,GAAoB,EAEpB,GAAoB,EACpB,GAAiB,EACjB,GAAqB,EACrB,GAAmB,WACnB,GAAmB,WACnB,GAAY,IACZ,GAAwB,IACxB,GAAwB,IAExB,GAAmC,IACnC,GAA0B,IAC1B,GAAiB,IACjB,GAAsB,KACtB,GAAyB,KACzB,GAAgB,KAChB,GAA6B,KAC7B,GAA6B,KAC7B,GAA4B,KAC5B,GAA4B,KAC5B,GAAe,KACf,GAA4B,KAC5B,GAA4B,KAC5B,GAA2B,KAC3B,GAA2B,KAC3B,GAAmB,KACnB,GAAW,KACX,GAAY,KACZ,GAAoB,KACpB,GAAU,KACV,GAAkB,KAClB,GAAY,KACZ,GAAgB,KAChB,GAAwB,KACxB,GAAwB,KACxB,GAAqB,KACrB,GAAsB,MACtB,GAAc,KACd,GAAY,KACZ,GAAa,KACb,GAAkB,KAClB,GAAuB,KACvB,GAAc,KACd,GAAqB,KACrB,GAAY,KACZ,GAAmB,KACnB,GAAW,KACX,GAAkB,KAClB,GAAmB,KACnB,GAAoB,KACpB,GAAuB,MACvB,GAAwB,MACxB,GAAwB,MACxB,GAAwB,MACxB,GAA0B,MAC1B,GAA0B,MAC1B,GAA2B,MAC3B,GAA2B,MAC3B,GAAkB,MAClB,GAAkB,MAClB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAuB,MACvB,GAAwB,MACxB,GAAwB,MACxB,GAAwB,MACxB,GAAyB,MACzB,GAAyB,MACzB,GAAyB,MACzB,GAAmB,MACnB,GAAyB,MACzB,GAA2B,MAC3B,GAAmB,MACnB,GAA0B,MAC1B,GAAyB,MACzB,GAAgC,MAChC,GAAW,KACX,GAAa,KACb,GAAe,KACf,GAAsB,KACtB,GAAoB,KACpB,GAAoB,KACpB,GAAsB,KACtB,GAAkB,KAClB,GAAmB,KACnB,GAA2B,KAC3B,GAA6B,KAC7B,GAAoB,EACpB,GAAwB,EACxB,GAAsB,EACtB,GAAoB,KACpB,GAAmB,KACnB,GAAkB,KAClB,GAAiB,KACjB,GAAwB,EACxB,GAAuB,EACvB,GAAe,GACf,GAAiB,OACjB,GAAuB,cACvB,GAAsB,aACtB,GAA4B,oBAC5B,GAAiB,SACjB,GAAe,OACf,GAAkB,SAClB,GAAc,KACd,GAAgB,EAChB,GAAgB,KAChB,GAAmB,KACnB,GAAqB,KACrB,GAAqB,KACrB,GAAyB,MACzB,GAAyB,MACzB,GAAkB,KAClB,GAAmB,IACnB,GAAkB,IAClB,GAAmB,IACnB,GAAuB,IACvB,GAAqB,IACrB,GAAsB,IACtB,GAA0B,IAC1B,GAAoB,IACpB,GAAe,IACf,GAAc,IACd,GAAe,IACf,GAAmB,IACnB,GAAiB,IACjB,GAAkB,IAClB,GAAsB,IACtB,GAAgB,IAChB,GAAkB,MAClB,GAAmB,MACnB,GAAkB,MAClB,GAAkB,MAClB,GAAmB,MACnB,GAAkB,MAClB,GAAkB,MAClB,GAAmB,MACnB,GAAkB,MAClB,GAAQ,MACR,GAAQ,SACR,GAAwB,IACxB,GAAyB,KACzBhyB,GAAkB,KAAM,CAC1B,iBAAiB,EAAM,EAAU,CAC3B,KAAK,aAAe,IAAK,KAAG,KAAK,WAAa,CAAC,GACnD,IAAMinF,EAAY,KAAK,WACnBA,EAAUp1D,KAAU,IAAK,KAC3B,EAAUA,GAAQ,CAAC,GAEjBo1D,EAAUp1D,EAAK,CAAC,QAAQq1D,CAAQ,IAAM,IACxCD,EAAUp1D,EAAK,CAAC,KAAKq1D,CAAQ,CAEjC,CACA,iBAAiB,EAAM,EAAU,CAC/B,GAAI,KAAK,aAAe,IAAK,GAAG,MAAO,GACvC,IAAMD,EAAY,KAAK,WACvB,OAAOA,EAAUp1D,KAAU,IAAK,IAAKo1D,EAAUp1D,EAAK,CAAC,QAAQq1D,CAAQ,IAAM,EAC7E,CACA,oBAAoB,EAAM,EAAU,CAClC,GAAI,KAAK,aAAe,IAAK,GAAG,OAEhC,IAAMC,EADY,KAAK,WACSt1D,GAChC,GAAIs1D,IAAkB,IAAK,GAAG,CAC5B,IAAMhrD,EAAQgrD,EAAc,QAAQD,CAAQ,EACxC/qD,IAAU,IACZgrD,EAAc,OAAOhrD,EAAO,CAAC,CAEjC,CACF,CACA,cAAc,EAAO,CACnB,GAAI,KAAK,aAAe,IAAK,GAAG,OAEhC,IAAMgrD,EADY,KAAK,WACSjjD,EAAM,MACtC,GAAIijD,IAAkB,IAAK,GAAG,CAC5B,EAAM,OAAS,KACf,IAAM51D,EAAQ41D,EAAc,MAAM,CAAC,EACnC,IAAK,IAAIz1D,EAAI,EAAGiH,EAAIpH,EAAM,OAAQG,EAAIiH,EAAG,IACvCpH,EAAMG,EAAE,CAAC,KAAK,KAAMwS,CAAK,EAE3B,EAAM,OAAS,IACjB,CACF,CACF,EACI,GAAO,2xBAA+/C,EACtgD,GAAQ,QACRrkC,GAAU,KAAK,GAAK,IACpB,GAAU,IAAM,KAAK,GAuJrB,GAAY,CACd,QAAAowB,GACA,WACA,gBACA,MAAAhC,GACA,mBACA,aACA,eACA,QACA,QACA,YACA,cACA,gBACA,WACA,aACA,mBACA,gBACA,YACA,YACA,gBACA,kBACA,mBACA,gCACA,aACA,cACF,EACI,EAAU,MAAMm5D,CAAS,CAC3B,YAAY,EAAI,EAAG,EAAI,EAAG,CACxB,EAAS,UAAU,UAAY,GAC/B,KAAK,EAAI75D,EACT,KAAK,EAAIsB,CACX,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,CACd,CACA,IAAI,MAAM,EAAO,CACf,KAAK,EAAIpC,CACX,CACA,IAAI,QAAS,CACX,OAAO,KAAK,CACd,CACA,IAAI,OAAO,EAAO,CAChB,KAAK,EAAIA,CACX,CACA,IAAI,EAAG,EAAG,CAGR,MAFA,MAAK,EAAIc,EACT,KAAK,EAAIsB,EACF,IACT,CACA,UAAU,EAAQ,CAGhB,MAFA,MAAK,EAAIw4D,EACT,KAAK,EAAIA,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAI95D,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIsB,EACF,IACT,CACA,aAAa,EAAO,EAAO,CACzB,OAAQsN,EAAR,CACE,IAAK,GACH,KAAK,EAAI1P,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,QACE,MAAU,MAAM,0BAA4B0P,CAAK,CACrD,CACA,OAAO,IACT,CACA,aAAa,EAAO,CAClB,OAAQA,EAAR,CACE,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,QACE,MAAU,MAAM,0BAA4BA,CAAK,CACrD,CACF,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,KAAK,EAAG,KAAK,CAAC,CAC5C,CACA,KAAK,EAAG,CAGN,MAFA,MAAK,EAAIsP,EAAE,EACX,KAAK,EAAIA,EAAE,EACJ,IACT,CACA,IAAI,EAAG,CAGL,MAFA,MAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAGX,MAFA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAGf,MAFA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,gBAAgB,EAAG,EAAG,CAGpB,MAFA,MAAK,GAAK8e,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EACT,IACT,CACA,IAAI,EAAG,CAGL,MAFA,MAAK,GAAK2b,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAGX,MAFA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAGf,MAFA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,SAAS,EAAG,CAGV,MAFA,MAAK,GAAK8e,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,eAAe,EAAQ,CAGrB,MAFA,MAAK,GAAK47C,EACV,KAAK,GAAKA,EACH,IACT,CACA,OAAO,EAAG,CAGR,MAFA,MAAK,GAAK57C,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,aAAa,EAAQ,CACnB,OAAO,KAAK,eAAe,EAAI47C,CAAM,CACvC,CACA,aAAa,EAAG,CACd,IAAM95D,EAAI,KAAK,EAAGsB,EAAI,KAAK,EACrBwF,EAAI/F,EAAE,SAGZ,MAFA,MAAK,EAAI+F,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GACjC,KAAK,EAAIA,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAC1B,IACT,CACA,IAAI,EAAG,CAGL,MAFA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAGoX,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,IAAI,EAAG,CAGL,MAFA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,MAAM,EAAK,EAAK,CAGd,MAFA,MAAK,EAAI,KAAK,IAAIvd,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EACzC,IACT,CACA,YAAY,EAAQ,EAAQ,CAG1B,MAFA,MAAK,EAAI,KAAK,IAAIm5D,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAC3C,IACT,CACA,YAAY,EAAK,EAAK,CACpB,IAAMn4D,EAAS,KAAK,OAAO,EAC3B,OAAO,KAAK,aAAaA,GAAU,CAAC,CAAC,CAAC,eAAe,KAAK,IAAIlB,EAAK,KAAK,IAAIC,EAAKiB,CAAM,CAAC,CAAC,CAC3F,CACA,OAAQ,CAGN,MAFA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,MAAO,CAGL,MAFA,MAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EAClB,IACT,CACA,OAAQ,CAGN,MAFA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,aAAc,CAGZ,MAFA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,QAAS,CAGP,MAFA,MAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACR,IACT,CACA,IAAI,EAAG,CACL,OAAO,KAAK,EAAIqc,EAAE,EAAI,KAAK,EAAIA,EAAE,CACnC,CACA,MAAM,EAAG,CACP,OAAO,KAAK,EAAIA,EAAE,EAAI,KAAK,EAAIA,EAAE,CACnC,CACA,UAAW,CACT,OAAO,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CACzC,CACA,QAAS,CACP,OAAO,KAAK,KAAK,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CAAC,CACpD,CACA,iBAAkB,CAChB,OAAO,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,CAC3C,CACA,WAAY,CACV,OAAO,KAAK,aAAa,KAAK,OAAO,GAAK,CAAC,CAC7C,CACA,OAAQ,CAEN,OADc,KAAK,MAAM,CAAC,KAAK,EAAG,CAAC,KAAK,CAAC,EAAI,KAAK,EAEpD,CACA,QAAQ,EAAG,CACT,IAAM+7C,EAAc,KAAK,KAAK,KAAK,SAAS,EAAI/7C,EAAE,SAAS,CAAC,EAC5D,GAAI+7C,IAAgB,EAAG,OAAO,KAAK,GAAK,EACxC,IAAMC,EAAQ,KAAK,IAAIh8C,CAAC,EAAI+7C,EAC5B,OAAO,KAAK,KAAK5nF,GAAM6nF,EAAO,GAAI,CAAC,CAAC,CACtC,CACA,WAAW,EAAG,CACZ,OAAO,KAAK,KAAK,KAAK,kBAAkBh8C,CAAC,CAAC,CAC5C,CACA,kBAAkB,EAAG,CACnB,IAAMi8C,EAAK,KAAK,EAAIj8C,EAAE,EAAGk8C,EAAK,KAAK,EAAIl8C,EAAE,EACzC,OAAOi8C,EAAKA,EAAKC,EAAKA,CACxB,CACA,oBAAoB,EAAG,CACrB,OAAO,KAAK,IAAI,KAAK,EAAIl8C,EAAE,CAAC,EAAI,KAAK,IAAI,KAAK,EAAIA,EAAE,CAAC,CACvD,CACA,UAAU,EAAQ,CAChB,OAAO,KAAK,UAAU,CAAC,CAAC,eAAerc,CAAM,CAC/C,CACA,KAAK,EAAG,EAAO,CAGb,MAFA,MAAK,IAAMqc,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EACpB,IACT,CACA,YAAY,EAAI,EAAI,EAAO,CAGzB,MAFA,MAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EACzB,IACT,CACA,OAAO,EAAG,CACR,OAAOoS,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,CACxC,CACA,UAAU,EAAO,EAAS,EAAG,CAG3B,MAFA,MAAK,EAAIla,EAAM0M,GACf,KAAK,EAAI1M,EAAM0M,EAAS,GACjB,IACT,CACA,QAAQ,EAAQ,CAAC,EAAG,EAAS,EAAG,CAG9B,MAFA,GAAMA,GAAU,KAAK,EACrB,EAAMA,EAAS,GAAK,KAAK,EAClB1M,CACT,CACA,oBAAoB,EAAW,EAAO,CAGpC,MAFA,MAAK,EAAI4G,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EACtB,IACT,CACA,aAAa,EAAQ,EAAO,CAC1B,IAAMrL,EAAI,KAAK,IAAI82D,CAAK,EAAG93D,EAAI,KAAK,IAAI83D,CAAK,EACvCr6D,EAAI,KAAK,EAAIkuC,EAAO,EACpB5sC,EAAI,KAAK,EAAI4sC,EAAO,EAG1B,MAFA,MAAK,EAAIluC,EAAIuD,EAAIjC,EAAIiB,EAAI2rC,EAAO,EAChC,KAAK,EAAIluC,EAAIuC,EAAIjB,EAAIiC,EAAI2qC,EAAO,EACzB,IACT,CACA,QAAS,CAGP,MAFA,MAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACd,IACT,CACA,EAAE,OAAO,WAAY,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CACF,EACI,GAAU,MAAMosB,CAAS,CAC3B,YAAY,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CACvD,EAAS,UAAU,UAAY,GAC/B,KAAK,SAAW,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACIC,IAAQ,IAAK,IACf,KAAK,IAAIA,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,CAAG,CAExD,CACA,IAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAC/C,IAAMriE,EAAK,KAAK,SAUhB,MATA,GAAG,GAAK6hE,EACR,EAAG,GAAKG,EACR,EAAG,GAAKG,EACR,EAAG,GAAKL,EACR,EAAG,GAAKG,EACR,EAAG,GAAKG,EACR,EAAG,GAAKL,EACR,EAAG,GAAKG,EACR,EAAG,GAAKG,EACD,IACT,CACA,UAAW,CAYT,OAXA,KAAK,IACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,KAAK,EAAG,CACN,IAAMriE,EAAK,KAAK,SACVsiE,EAAKj6D,EAAE,SAUb,MATA,GAAG,GAAKi6D,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACJ,IACT,CACA,aAAa,EAAO,EAAO,EAAO,CAIhC,OAHAC,EAAM,qBAAqB,KAAM,CAAC,EAClCC,EAAM,qBAAqB,KAAM,CAAC,EAClCC,EAAM,qBAAqB,KAAM,CAAC,EAC3B,IACT,CACA,eAAe,EAAG,CAChB,IAAMH,EAAKj6D,EAAE,SAYb,OAXA,KAAK,IACHi6D,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACHA,EAAG,GACL,EACO,IACT,CACA,SAAS,EAAG,CACV,OAAO,KAAK,iBAAiB,KAAMj6D,CAAC,CACtC,CACA,YAAY,EAAG,CACb,OAAO,KAAK,iBAAiBA,EAAG,IAAI,CACtC,CACA,iBAAiB,EAAG,EAAG,CACrB,IAAMq6D,EAAK/7D,EAAE,SACPg8D,EAAKj8D,EAAE,SACP1G,EAAK,KAAK,SACV4iE,EAAMF,EAAG,GAAIG,EAAMH,EAAG,GAAII,EAAMJ,EAAG,GACnCK,EAAML,EAAG,GAAIM,EAAMN,EAAG,GAAIO,EAAMP,EAAG,GACnCQ,EAAMR,EAAG,GAAIS,EAAMT,EAAG,GAAIU,EAAMV,EAAG,GACnCW,EAAMV,EAAG,GAAIW,EAAMX,EAAG,GAAIY,EAAMZ,EAAG,GACnCa,EAAMb,EAAG,GAAIc,EAAMd,EAAG,GAAIe,EAAMf,EAAG,GACnCgB,EAAMhB,EAAG,GAAIiB,EAAMjB,EAAG,GAAIkB,EAAMlB,EAAG,GAUzC,MATA,GAAG,GAAKC,EAAMS,EAAMR,EAAMW,EAAMV,EAAMa,EACtC,EAAG,GAAKf,EAAMU,EAAMT,EAAMY,EAAMX,EAAMc,EACtC,EAAG,GAAKhB,EAAMW,EAAMV,EAAMa,EAAMZ,EAAMe,EACtC,EAAG,GAAKd,EAAMM,EAAML,EAAMQ,EAAMP,EAAMU,EACtC,EAAG,GAAKZ,EAAMO,EAAMN,EAAMS,EAAMR,EAAMW,EACtC,EAAG,GAAKb,EAAMQ,EAAMP,EAAMU,EAAMT,EAAMY,EACtC,EAAG,GAAKX,EAAMG,EAAMF,EAAMK,EAAMJ,EAAMO,EACtC,EAAG,GAAKT,EAAMI,EAAMH,EAAMM,EAAML,EAAMQ,EACtC,EAAG,GAAKV,EAAMK,EAAMJ,EAAMO,EAAMN,EAAMS,EAC/B,IACT,CACA,eAAe,EAAG,CAChB,IAAM7jE,EAAK,KAAK,SAUhB,MATA,GAAG,IAAM6J,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACF,IACT,CACA,aAAc,CACZ,IAAM7J,EAAK,KAAK,SACV2G,EAAI3G,EAAG,GAAI0G,EAAI1G,EAAG,GAAI6K,EAAI7K,EAAG,GAAI8jE,EAAI9jE,EAAG,GAAIoO,EAAIpO,EAAG,GAAI0O,EAAI1O,EAAG,GAAI23B,EAAI33B,EAAG,GAAI+jE,EAAI/jE,EAAG,GAAIyL,EAAIzL,EAAG,GACrG,OAAO2G,EAAIyH,EAAI3C,EAAI9E,EAAI+H,EAAIq1D,EAAIr9D,EAAIo9D,EAAIr4D,EAAI/E,EAAIgI,EAAIipB,EAAI9sB,EAAIi5D,EAAIC,EAAIl5D,EAAIuD,EAAIupB,CAC7E,CACA,QAAS,CACP,IAAM33B,EAAK,KAAK,SAAU6hE,EAAM7hE,EAAG,GAAIgiE,EAAMhiE,EAAG,GAAImiE,EAAMniE,EAAG,GAAI8hE,EAAM9hE,EAAG,GAAIiiE,EAAMjiE,EAAG,GAAIoiE,EAAMpiE,EAAG,GAAI+hE,EAAM/hE,EAAG,GAAIkiE,EAAMliE,EAAG,GAAIqiE,EAAMriE,EAAG,GAAIgkE,EAAM3B,EAAMJ,EAAMG,EAAMF,EAAK+B,EAAM7B,EAAML,EAAMM,EAAMP,EAAKoC,EAAMhC,EAAMJ,EAAMG,EAAMF,EAAKoC,EAAMtC,EAAMmC,EAAMhC,EAAMiC,EAAM9B,EAAM+B,EAC1Q,GAAIC,IAAQ,EAAG,OAAO,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACxD,IAAMC,EAAS,EAAID,EAUnB,MATA,GAAG,GAAKH,EAAMI,EACd,EAAG,IAAMjC,EAAMD,EAAMG,EAAML,GAAOoC,EAClC,EAAG,IAAMhC,EAAMJ,EAAMG,EAAMF,GAAOmC,EAClC,EAAG,GAAKH,EAAMG,EACd,EAAG,IAAM/B,EAAMR,EAAMM,EAAMJ,GAAOqC,EAClC,EAAG,IAAMjC,EAAML,EAAMM,EAAMP,GAAOuC,EAClC,EAAG,GAAKF,EAAME,EACd,EAAG,IAAMpC,EAAMD,EAAMG,EAAML,GAAOuC,EAClC,EAAG,IAAMnC,EAAMJ,EAAMG,EAAMF,GAAOsC,EAC3B,IACT,CACA,WAAY,CACV,IAAInzD,EACE5I,EAAI,KAAK,SAUf,MATA,GAAOA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAK4I,EACP,EAAO5I,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAK4I,EACP,EAAO5I,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAK4I,EACA,IACT,CACA,gBAAgB,EAAS,CACvB,OAAO,KAAK,eAAeumB,CAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CACzD,CACA,mBAAmB,EAAG,CACpB,IAAMnvB,EAAI,KAAK,SAUf,MATA,GAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACT,EAAE,GAAKA,EAAE,GACF,IACT,CACA,eAAe,EAAI,EAAI,EAAI,EAAI,EAAU,EAAI,EAAI,CAC/C,IAAMwC,EAAI,KAAK,IAAIw5D,CAAQ,EACrBx6D,EAAI,KAAK,IAAIw6D,CAAQ,EAY3B,OAXA,KAAK,IACHC,EAAKz5D,EACLy5D,EAAKz6D,EACL,CAACy6D,GAAMz5D,EAAIjJ,EAAKiI,EAAI2wC,GAAM54C,EAAK2iE,EAC/B,CAACC,EAAK36D,EACN26D,EAAK35D,EACL,CAAC25D,GAAM,CAAC36D,EAAIjI,EAAKiJ,EAAI2vC,GAAMA,EAAKiqB,EAChC,EACA,EACA,CACF,EACO,IACT,CAEA,MAAM,EAAI,EAAI,CAEZ,OADA,KAAK,YAAY9d,GAAI,UAAU2d,EAAIE,CAAE,CAAC,EAC/B,IACT,CACA,OAAO,EAAO,CAEZ,OADA,KAAK,YAAY7d,GAAI,aAAa,CAAC6a,CAAK,CAAC,EAClC,IACT,CACA,UAAU,EAAI,EAAI,CAEhB,OADA,KAAK,YAAY7a,GAAI,gBAAgB4d,EAAIE,CAAE,CAAC,EACrC,IACT,CAEA,gBAAgB,EAAG,EAAG,CA0BpB,OAzBIn9D,EAAE,UACJ,KAAK,IACH,EACA,EACAA,EAAE,EACF,EACA,EACAA,EAAE,EACF,EACA,EACA,CACF,EAEA,KAAK,IACH,EACA,EACAA,EACA,EACA,EACAsB,EACA,EACA,EACA,CACF,EAEK,IACT,CACA,aAAa,EAAO,CAClB,IAAMiC,EAAI,KAAK,IAAI22D,CAAK,EAClB33D,EAAI,KAAK,IAAI23D,CAAK,EAYxB,OAXA,KAAK,IACH32D,EACA,CAAChB,EACD,EACAA,EACAgB,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,UAAU,EAAG,EAAG,CAYd,OAXA,KAAK,IACHvD,EACA,EACA,EACA,EACAsB,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CAEA,OAAO,EAAQ,CACb,IAAM5I,EAAK,KAAK,SACVsiE,EAAKoC,EAAO,SAClB,IAAK,IAAIj5D,EAAI,EAAGA,EAAI,EAAG,IACrB,GAAIzL,EAAGyL,KAAO62D,EAAG72D,GAAI,MAAO,GAE9B,MAAO,EACT,CACA,UAAU,EAAO,EAAS,EAAG,CAC3B,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAG,IACrB,KAAK,SAASA,GAAKH,EAAMG,EAAIuM,GAE/B,OAAO,IACT,CACA,QAAQ,EAAQ,CAAC,EAAG,EAAS,EAAG,CAC9B,IAAMhY,EAAK,KAAK,SAUhB,MATA,GAAMgY,GAAUhY,EAAG,GACnB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GACvB,EAAMgY,EAAS,GAAKhY,EAAG,GAChBsL,CACT,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,UAAU,KAAK,QAAQ,CACvD,CACF,EACI,mBAAsB,IAAI2Q,GAO1B,GAAe,CACjB,UACA,WACA,kBACA,WACA,YACA,WACA,YACA,aACA,YACF,EAYI,GAAS,CAAC,EAyCV,GAAmD,oBAAIA,GAAQ,CAAC,CAAC,IACnE,SACA,QACA,EACA,SACA,SACA,EACA,SACA,SACA,QACF,EACI,GAAmD,oBAAIA,GAAQ,CAAC,CAAC,IACnE,UACA,UACA,EACA,UACA,UACA,EACA,UACA,UACA,SACF,EACI,GAAe,EAChB+O,IAAuB,CACtB,SAAUmhB,GACV,UAAWphB,GACX,sBAAuB,CAAC,MAAQ,MAAQ,KAAM,EAC9C,YAAc,GAAU7lB,EACxB,cAAgB,GAAUA,CAC5B,GACCgmB,IAAiB,CAChB,SAAUnW,GACV,UAAWgW,GACX,sBAAuB,CAAC,MAAQ,MAAQ,KAAM,EAC9C,YAAc,GAAU7lB,EAAM,oBAAoB,EAClD,cAAgB,GAAUA,EAAM,oBAAoB,CACtD,GACC+lB,IAA4B,CAC3B,SAAUkhB,GACV,UAAWrhB,GACX,sBAAuB,CAAC,MAAQ,MAAQ,KAAM,EAC9C,YAAc,GAAU5lB,EAAM,aAAa2hD,EAAgC,EAC3E,cAAgB,GAAU3hD,EAAM,aAAa0hD,EAAgC,CAC/E,GACCz7B,IAAsB,CACrB,SAAUpW,GACV,UAAW+V,GACX,sBAAuB,CAAC,MAAQ,MAAQ,KAAM,EAC9C,YAAc,GAAU5lB,EAAM,oBAAoB,CAAC,CAAC,aAAa2hD,EAAgC,EACjG,cAAgB,GAAU3hD,EAAM,aAAa0hD,EAAgC,CAAC,CAAC,oBAAoB,CACrG,CACF,EACI,mBAAiD,IAAI,IAAI,CAAC57B,GAAsBC,EAAyB,CAAC,EAC1G,GAAkB,CACpB,QAAS,GACT,mBAAoBD,GACpB,IAAI,mBAAoB,CACtB,OAAO,KAAK,kBACd,EACA,IAAI,kBAAkB,EAAY,CAChC,GAAI,CAAC+7B,GAA+B,IAAIn8B,CAAU,EAChD,MAAU,MAAM,qCAAqCA,EAAW,GAAG,EAErE,KAAK,mBAAqBA,CAC5B,EACA,QAAS,SAAS,EAAO,EAAkB,EAAkB,CAC3D,GAAI,KAAK,UAAY,IAAS+5C,IAAqBC,GAAoB,CAACD,GAAoB,CAACC,EAC3F,OAAO1/D,EAET,IAAM2/D,EAAoB/d,GAAa6d,EAAiB,CAAC,YACnDG,EAAsBhe,GAAa8d,EAAiB,CAAC,cAC3D,OAAOE,EAAoBD,EAAkB3/D,CAAK,CAAC,CACrD,EACA,sBAAuB,SAAS,EAAO,EAAkB,CACvD,OAAO,KAAK,QAAQA,EAAO,KAAK,mBAAoB0/D,CAAgB,CACtE,EACA,oBAAqB,SAAS,EAAO,EAAkB,CACrD,OAAO,KAAK,QAAQ1/D,EAAOy/D,EAAkB,KAAK,kBAAkB,CACtE,EACA,aAAc,SAAS,EAAY,CACjC,OAAO7d,GAAal8B,EAAW,CAAC,SAClC,EACA,YAAa,SAAS,EAAY,CAEhC,OADIA,IAAe4kB,GAAqBrD,GACjC2a,GAAal8B,EAAW,CAAC,QAClC,EACA,yBAA0B,SAAS,EAAQ,EAAa,KAAK,mBAAoB,CAC/E,OAAOhkB,EAAO,UAAUkgD,GAAal8B,EAAW,CAAC,qBAAqB,CACxE,CACF,EAQI,GAAa,KAAM,CACrB,OAAO,WAAW,EAAO,CAIvB,GAHI,UAAU,KAAK7d,EAAM,GAAG,GAGxB,OAAO,kBAAsB,IAC/B,OAAOA,EAAM,IAEf,IAAIf,EACJ,GAAIe,aAAiB,kBACnB,EAASA,MACJ,CACDi6C,KAAY,IAAK,KAAG,GAAUl7C,GAAgB,QAAQ,GAC1D,GAAQ,MAAQiB,EAAM,MACtB,GAAQ,OAASA,EAAM,OACvB,IAAMyE,EAAUw1C,GAAQ,WAAW,IAAI,EACnCj6C,aAAiB,UACnByE,EAAQ,aAAazE,EAAO,EAAG,CAAC,EAEhCyE,EAAQ,UAAUzE,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,EAE1D,EAASi6C,EACX,CAKE,OAJEh7C,EAAO,MAAQ,MAAQA,EAAO,OAAS,MACzC,QAAQ,KAAK,8EAA+Ee,CAAK,EAC1Ff,EAAO,UAAU,aAAc,EAAG,GAElCA,EAAO,UAAU,WAAW,CAEvC,CACA,OAAO,aAAa,EAAO,CACzB,GAAI,OAAO,iBAAqB,KAAee,aAAiB,kBAAoB,OAAO,kBAAsB,KAAeA,aAAiB,mBAAqB,OAAO,YAAgB,KAAeA,aAAiB,YAAa,CACxO,IAAMf,EAASF,GAAgB,QAAQ,EACvC,EAAO,MAAQiB,EAAM,MACrB,EAAO,OAASA,EAAM,OACtB,IAAMyE,EAAUxF,EAAO,WAAW,IAAI,EACtCwF,EAAQ,UAAUzE,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,EACxD,IAAMg4D,EAAYvzD,EAAQ,aAAa,EAAG,EAAGzE,EAAM,MAAOA,EAAM,MAAM,EAChE8F,EAAOkyD,EAAU,KACvB,IAAK,IAAIt5D,EAAI,EAAGA,EAAIoH,EAAK,OAAQ,IAC/B,EAAKpH,GAAKmB,GAAaiG,EAAKpH,GAAK,GAAG,EAAI,IAG1C,OADA+F,EAAQ,aAAauzD,EAAW,EAAG,CAAC,EAC7B/4D,CACT,CAAO,GAAIe,EAAM,KAAM,CACrB,IAAM8F,EAAO9F,EAAM,KAAK,MAAM,CAAC,EAC/B,IAAK,IAAItB,EAAI,EAAGA,EAAIoH,EAAK,OAAQ,IAC3BA,aAAgB,YAAcA,aAAgB,kBAChD,EAAKpH,GAAK,KAAK,MAAMmB,GAAaiG,EAAKpH,GAAK,GAAG,EAAI,GAAG,EAEtD,EAAKA,GAAKmB,GAAaiG,EAAKpH,EAAE,EAGlC,MAAO,CACL,OACA,MAAOsB,EAAM,MACb,OAAQA,EAAM,MAChB,CACF,CAEE,OADA,QAAQ,KAAK,6FAA6F,EACnGA,CAEX,CACF,EACI,GAAY,EACZ,GAAS,KAAM,CACjB,YAAY,EAAO,KAAM,CACvB,KAAK,SAAW,GAChB,OAAO,eAAe,KAAM,KAAM,CAAE,MAAO,IAAY,CAAC,EACxD,KAAK,KAAOrF,GAAa,EACzB,KAAK,KAAOmL,EACZ,KAAK,UAAY,GACjB,KAAK,QAAU,CACjB,CACA,IAAI,YAAY,EAAO,CACjBrM,IAAU,IAAM,KAAK,SAC3B,CACA,OAAO,EAAM,CACX,IAAMw+D,EAAeC,IAAS,IAAK,IAAK,OAAOA,GAAS,SACxD,GAAI,CAACD,GAAgBC,EAAK,OAAO,KAAK,QAAU,IAAK,GACnD,OAAOA,EAAK,OAAO,KAAK,MAE1B,IAAMC,EAAS,CACb,KAAM,KAAK,KACX,IAAK,EACP,EACMryD,EAAO,KAAK,KAClB,GAAIA,IAAS,KAAM,CACjB,IAAIsyD,EACJ,GAAI,MAAM,QAAQtyD,CAAI,EAAG,CACvB,EAAM,CAAC,EACP,IAAK,IAAIpH,EAAI,EAAGiH,EAAIG,EAAK,OAAQpH,EAAIiH,EAAG,IAClCG,EAAKpH,EAAE,CAAC,cACV05D,EAAI,KAAKr4D,GAAe+F,EAAKpH,EAAE,CAAC,KAAK,CAAC,EAEtC05D,EAAI,KAAKr4D,GAAe+F,EAAKpH,EAAE,CAAC,CAGtC,KACE,GAAMqB,GAAe+F,CAAI,EAE3B,EAAO,IAAMsyD,CACf,CAIA,OAHKH,IACH,EAAK,OAAO,KAAK,MAAQE,GAEpBA,CACT,CACF,EAkBI,GAAa,EACb,GAAU,MAAME,UAAiBrrF,EAAgB,CACnD,YAAY,EAAQqrF,EAAS,cAAe,EAAUA,EAAS,gBAAiB,EAAQl3B,GAAqB,EAAQA,GAAqB,EAAYK,GAAc,EAAYE,GAA0B,EAASzG,GAAY,EAAOkC,GAAkB,EAAak7B,EAAS,mBAAoB,EAAa51B,GAAc,CAC3T,MAAM,EACN,KAAK,UAAY,GACjB,OAAO,eAAe,KAAM,KAAM,CAAE,MAAO,IAAa,CAAC,EACzD,KAAK,KAAO9nC,GAAa,EACzB,KAAK,KAAO,GACZ,KAAK,OAAS,IAAIw/C,GAAOn6C,CAAK,EAC9B,KAAK,QAAU,CAAC,EAChB,KAAK,QAAUyQ,EACf,KAAK,QAAU,EACf,KAAK,MAAQ6nD,EACb,KAAK,MAAQC,EACb,KAAK,UAAYC,EACjB,KAAK,UAAYC,EACjB,KAAK,WAAaC,EAClB,KAAK,OAASl+B,EACd,KAAK,eAAiB,KACtB,KAAK,KAAO37B,EACZ,KAAK,OAAS,IAAIyE,EAAQ,EAAG,CAAC,EAC9B,KAAK,OAAS,IAAIA,EAAQ,EAAG,CAAC,EAC9B,KAAK,OAAS,IAAIA,EAAQ,EAAG,CAAC,EAC9B,KAAK,SAAW,EAChB,KAAK,iBAAmB,GACxB,KAAK,OAAS,IAAI4L,GAClB,KAAK,gBAAkB,GACvB,KAAK,iBAAmB,GACxB,KAAK,MAAQ,GACb,KAAK,gBAAkB,EACvB,KAAK,WAAa2O,EAClB,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,EACf,KAAK,SAAW,KAChB,KAAK,sBAAwB,GAC7B,KAAK,aAAe,CACtB,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAO,IACrB,CACA,IAAI,MAAM,EAAQ,KAAM,CACtB,KAAK,OAAO,KAAOpkB,CACrB,CACA,cAAe,CACb,KAAK,OAAO,eAAe,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,OAAO,EAAG,KAAK,SAAU,KAAK,OAAO,EAAG,KAAK,OAAO,CAAC,CACpI,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,CACzC,CACA,KAAK,EAAQ,CA2BX,MA1BA,MAAK,KAAOK,EAAO,KACnB,KAAK,OAASA,EAAO,OACrB,KAAK,QAAUA,EAAO,QAAQ,MAAM,CAAC,EACrC,KAAK,QAAUA,EAAO,QACtB,KAAK,QAAUA,EAAO,QACtB,KAAK,MAAQA,EAAO,MACpB,KAAK,MAAQA,EAAO,MACpB,KAAK,UAAYA,EAAO,UACxB,KAAK,UAAYA,EAAO,UACxB,KAAK,WAAaA,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,eAAiBA,EAAO,eAC7B,KAAK,KAAOA,EAAO,KACnB,KAAK,OAAO,KAAKA,EAAO,MAAM,EAC9B,KAAK,OAAO,KAAKA,EAAO,MAAM,EAC9B,KAAK,OAAO,KAAKA,EAAO,MAAM,EAC9B,KAAK,SAAWA,EAAO,SACvB,KAAK,iBAAmBA,EAAO,iBAC/B,KAAK,OAAO,KAAKA,EAAO,MAAM,EAC9B,KAAK,gBAAkBA,EAAO,gBAC9B,KAAK,iBAAmBA,EAAO,iBAC/B,KAAK,MAAQA,EAAO,MACpB,KAAK,gBAAkBA,EAAO,gBAC9B,KAAK,WAAaA,EAAO,WACzB,KAAK,SAAW,KAAK,MAAM,KAAK,UAAUA,EAAO,QAAQ,CAAC,EAC1D,KAAK,YAAc,GACZ,IACT,CACA,OAAO,EAAM,CACX,IAAMm+D,EAAeC,IAAS,IAAK,IAAK,OAAOA,GAAS,SACxD,GAAI,CAACD,GAAgBC,EAAK,SAAS,KAAK,QAAU,IAAK,GACrD,OAAOA,EAAK,SAAS,KAAK,MAE5B,IAAMC,EAAS,CACb,SAAU,CACR,QAAS,IACT,KAAM,UACN,UAAW,gBACb,EACA,KAAM,KAAK,KACX,KAAM,KAAK,KACX,MAAO,KAAK,OAAO,OAAOD,CAAI,CAAC,CAAC,KAChC,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,CAAC,KAAK,OAAO,EAAG,KAAK,OAAO,CAAC,EACrC,OAAQ,CAAC,KAAK,OAAO,EAAG,KAAK,OAAO,CAAC,EACrC,OAAQ,CAAC,KAAK,OAAO,EAAG,KAAK,OAAO,CAAC,EACrC,SAAU,KAAK,SACf,KAAM,CAAC,KAAK,MAAO,KAAK,KAAK,EAC7B,OAAQ,KAAK,OACb,eAAgB,KAAK,eACrB,KAAM,KAAK,KACX,WAAY,KAAK,WACjB,UAAW,KAAK,UAChB,UAAW,KAAK,UAChB,WAAY,KAAK,WACjB,MAAO,KAAK,MACZ,gBAAiB,KAAK,gBACtB,iBAAkB,KAAK,iBACvB,gBAAiB,KAAK,eACxB,EAKA,OAJI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,OAAS,IAAG,EAAO,SAAW,KAAK,UAC7DD,IACH,EAAK,SAAS,KAAK,MAAQE,GAEtBA,CACT,CACA,SAAU,CACR,KAAK,cAAc,CAAE,KAAM,SAAU,CAAC,CACxC,CACA,YAAY,EAAI,CACd,GAAI,KAAK,UAAY5hB,GAAW,OAAOlzC,EAEvC,GADAA,EAAG,aAAa,KAAK,MAAM,EACvBA,EAAG,EAAI,GAAKA,EAAG,EAAI,EACrB,OAAQ,KAAK,MAAb,CACE,KAAK69B,GACH,EAAG,GAAW,KAAK,MAAM79B,EAAG,CAAC,EAC7B,MACF,KAAK89B,GACH,EAAG,EAAI99B,EAAG,EAAI,EAAI,EAAI,EACtB,MACF,KAAK+9B,GACC,KAAK,IAAI,KAAK,MAAM/9B,EAAG,CAAC,EAAI,CAAC,IAAM,EACrC,EAAG,EAAI,KAAK,KAAKA,EAAG,CAAC,EAAIA,EAAG,EAE5B,EAAG,GAAW,KAAK,MAAMA,EAAG,CAAC,CAGnC,CAEF,GAAIA,EAAG,EAAI,GAAKA,EAAG,EAAI,EACrB,OAAQ,KAAK,MAAb,CACE,KAAK69B,GACH,EAAG,GAAW,KAAK,MAAM79B,EAAG,CAAC,EAC7B,MACF,KAAK89B,GACH,EAAG,EAAI99B,EAAG,EAAI,EAAI,EAAI,EACtB,MACF,KAAK+9B,GACC,KAAK,IAAI,KAAK,MAAM/9B,EAAG,CAAC,EAAI,CAAC,IAAM,EACrC,EAAG,EAAI,KAAK,KAAKA,EAAG,CAAC,EAAIA,EAAG,EAE5B,EAAG,GAAW,KAAK,MAAMA,EAAG,CAAC,CAGnC,CAKF,OAHI,KAAK,QACP,EAAG,EAAI,EAAIA,EAAG,GAETA,CACT,CACA,IAAI,YAAY,EAAO,CACjB5J,IAAU,KACZ,KAAK,UACL,KAAK,OAAO,YAAc,GAE9B,CACA,IAAI,iBAAiB,EAAO,CACtBA,IAAU,IACZ,KAAK,cAET,CACF,EACA,GAAQ,cAAgB,KACxB,GAAQ,gBAAkB88C,GAC1B,GAAQ,mBAAqB,EACzB,GAAU,MAAMoiB,CAAS,CAC3B,YAAY,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CACtC,EAAS,UAAU,UAAY,GAC/B,KAAK,EAAIp+D,EACT,KAAK,EAAIsB,EACT,KAAK,EAAIstB,EACT,KAAK,EAAIyvC,CACX,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,CACd,CACA,IAAI,MAAM,EAAO,CACf,KAAK,EAAIn/D,CACX,CACA,IAAI,QAAS,CACX,OAAO,KAAK,CACd,CACA,IAAI,OAAO,EAAO,CAChB,KAAK,EAAIA,CACX,CACA,IAAI,EAAG,EAAG,EAAG,EAAG,CAKd,MAJA,MAAK,EAAIc,EACT,KAAK,EAAIsB,EACT,KAAK,EAAIstB,EACT,KAAK,EAAIyvC,EACF,IACT,CACA,UAAU,EAAQ,CAKhB,MAJA,MAAK,EAAIvE,EACT,KAAK,EAAIA,EACT,KAAK,EAAIA,EACT,KAAK,EAAIA,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAI95D,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIsB,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIstB,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIyvC,EACF,IACT,CACA,aAAa,EAAO,EAAO,CACzB,OAAQzvD,EAAR,CACE,IAAK,GACH,KAAK,EAAI1P,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,QACE,MAAU,MAAM,0BAA4B0P,CAAK,CACrD,CACA,OAAO,IACT,CACA,aAAa,EAAO,CAClB,OAAQA,EAAR,CACE,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,QACE,MAAU,MAAM,0BAA4BA,CAAK,CACrD,CACF,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,CAC5D,CACA,KAAK,EAAG,CAKN,MAJA,MAAK,EAAIsP,EAAE,EACX,KAAK,EAAIA,EAAE,EACX,KAAK,EAAIA,EAAE,EACX,KAAK,EAAIA,EAAE,IAAM,IAAK,GAAU,EAANA,EAAE,EACrB,IACT,CACA,IAAI,EAAG,CAKL,MAJA,MAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAKX,MAJA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAKf,MAJA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,gBAAgB,EAAG,EAAG,CAKpB,MAJA,MAAK,GAAK8e,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EACT,IACT,CACA,IAAI,EAAG,CAKL,MAJA,MAAK,GAAK2b,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAKX,MAJA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAKf,MAJA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,SAAS,EAAG,CAKV,MAJA,MAAK,GAAK8e,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,eAAe,EAAQ,CAKrB,MAJA,MAAK,GAAK47C,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,aAAa,EAAG,CACd,IAAM95D,EAAI,KAAK,EAAGsB,EAAI,KAAK,EAAGstB,EAAI,KAAK,EAAGyvC,EAAI,KAAK,EAC7Cv3D,EAAI/F,EAAE,SAKZ,MAJA,MAAK,EAAI+F,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EAAI9nB,EAAE,IAAMu3D,EAClD,KAAK,EAAIv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EAAI9nB,EAAE,IAAMu3D,EAClD,KAAK,EAAIv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,IAAM8nB,EAAI9nB,EAAE,IAAMu3D,EACnD,KAAK,EAAIv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,IAAM8nB,EAAI9nB,EAAE,IAAMu3D,EAC5C,IACT,CACA,aAAa,EAAQ,CACnB,OAAO,KAAK,eAAe,EAAIvE,CAAM,CACvC,CACA,2BAA2B,EAAG,CAC5B,KAAK,EAAI,EAAI,KAAK,KAAKh2D,EAAE,CAAC,EAC1B,IAAMvB,EAAI,KAAK,KAAK,EAAIuB,EAAE,EAAIA,EAAE,CAAC,EAUjC,OATIvB,EAAI,MACN,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,IAET,KAAK,EAAIuB,EAAE,EAAIvB,EACf,KAAK,EAAIuB,EAAE,EAAIvB,EACf,KAAK,EAAIuB,EAAE,EAAIvB,GAEV,IACT,CACA,+BAA+B,EAAG,CAChC,IAAI83D,EAAOr6D,EAAGsB,EAAGstB,EACX0vC,EAAU,IAAMC,EAAW,GAAK7lE,EAAKqI,EAAE,SAAUy9D,EAAM9lE,EAAG,GAAI+lE,EAAM/lE,EAAG,GAAIgmE,EAAMhmE,EAAG,GAAIimE,EAAMjmE,EAAG,GAAIkmE,EAAMlmE,EAAG,GAAImmE,EAAMnmE,EAAG,GAAIomE,EAAMpmE,EAAG,GAAIqmE,EAAMrmE,EAAG,GAAIsmE,EAAMtmE,EAAG,IACxK,GAAI,KAAK,IAAI+lE,EAAME,CAAG,EAAIL,GAAW,KAAK,IAAII,EAAMI,CAAG,EAAIR,GAAW,KAAK,IAAIO,EAAME,CAAG,EAAIT,EAAS,CACnG,GAAI,KAAK,IAAIG,EAAME,CAAG,EAAIJ,GAAY,KAAK,IAAIG,EAAMI,CAAG,EAAIP,GAAY,KAAK,IAAIM,EAAME,CAAG,EAAIR,GAAY,KAAK,IAAIC,EAAMI,EAAMI,EAAM,CAAC,EAAIT,EAExI,OADA,KAAK,IAAI,EAAG,EAAG,EAAG,CAAC,EACZ,KAET,EAAQ,KAAK,GACb,IAAMU,GAAMT,EAAM,GAAK,EACjBU,GAAMN,EAAM,GAAK,EACjBO,GAAMH,EAAM,GAAK,EACjBI,GAAMX,EAAME,GAAO,EACnBU,GAAMX,EAAMI,GAAO,EACnBQ,GAAMT,EAAME,GAAO,EAiCzB,OAhCIE,EAAKC,GAAMD,EAAKE,EACdF,EAAKX,GACP,EAAI,EACJ,EAAI,WACJ,EAAI,aAEJ,EAAI,KAAK,KAAKW,CAAE,EAChB,EAAIG,EAAKp/D,EACT,EAAIq/D,EAAKr/D,GAEFk/D,EAAKC,EACVD,EAAKZ,GACP,EAAI,WACJ,EAAI,EACJ,EAAI,aAEJ,EAAI,KAAK,KAAKY,CAAE,EAChB,EAAIE,EAAK99D,EACT,EAAIg+D,EAAKh+D,GAGP69D,EAAKb,GACP,EAAI,WACJ,EAAI,WACJ,EAAI,IAEJ,EAAI,KAAK,KAAKa,CAAE,EAChB,EAAIE,EAAKzwC,EACT,EAAI0wC,EAAK1wC,GAGb,KAAK,IAAI5uB,EAAGsB,EAAGstB,EAAGyrC,CAAK,EAChB,IACT,CACA,IAAI93D,EAAI,KAAK,MAAMw8D,EAAMF,IAAQE,EAAMF,IAAQH,EAAMI,IAAQJ,EAAMI,IAAQH,EAAMF,IAAQE,EAAMF,EAAI,EAMnG,OALI,KAAK,IAAIl8D,CAAC,EAAI,OAAM,EAAI,GAC5B,KAAK,GAAKw8D,EAAMF,GAAOt8D,EACvB,KAAK,GAAKm8D,EAAMI,GAAOv8D,EACvB,KAAK,GAAKo8D,EAAMF,GAAOl8D,EACvB,KAAK,EAAI,KAAK,MAAMi8D,EAAMI,EAAMI,EAAM,GAAK,CAAC,EACrC,IACT,CACA,sBAAsB,EAAG,CACvB,IAAMl4D,EAAI/F,EAAE,SAKZ,MAJA,MAAK,EAAI+F,EAAE,IACX,KAAK,EAAIA,EAAE,IACX,KAAK,EAAIA,EAAE,IACX,KAAK,EAAIA,EAAE,IACJ,IACT,CACA,IAAI,EAAG,CAKL,MAJA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAGoX,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,IAAI,EAAG,CAKL,MAJA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,MAAM,EAAK,EAAK,CAKd,MAJA,MAAK,EAAI,KAAK,IAAIvd,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EACzC,IACT,CACA,YAAY,EAAQ,EAAQ,CAK1B,MAJA,MAAK,EAAI,KAAK,IAAIm5D,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAC3C,IACT,CACA,YAAY,EAAK,EAAK,CACpB,IAAMn4D,EAAS,KAAK,OAAO,EAC3B,OAAO,KAAK,aAAaA,GAAU,CAAC,CAAC,CAAC,eAAe,KAAK,IAAIlB,EAAK,KAAK,IAAIC,EAAKiB,CAAM,CAAC,CAAC,CAC3F,CACA,OAAQ,CAKN,MAJA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,MAAO,CAKL,MAJA,MAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EAClB,IACT,CACA,OAAQ,CAKN,MAJA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,aAAc,CAKZ,MAJA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,QAAS,CAKP,MAJA,MAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACR,IACT,CACA,IAAI,EAAG,CACL,OAAO,KAAK,EAAIqc,EAAE,EAAI,KAAK,EAAIA,EAAE,EAAI,KAAK,EAAIA,EAAE,EAAI,KAAK,EAAIA,EAAE,CACjE,CACA,UAAW,CACT,OAAO,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CAC7E,CACA,QAAS,CACP,OAAO,KAAK,KAAK,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CAAC,CACxF,CACA,iBAAkB,CAChB,OAAO,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,CACjF,CACA,WAAY,CACV,OAAO,KAAK,aAAa,KAAK,OAAO,GAAK,CAAC,CAC7C,CACA,UAAU,EAAQ,CAChB,OAAO,KAAK,UAAU,CAAC,CAAC,eAAerc,CAAM,CAC/C,CACA,KAAK,EAAG,EAAO,CAKb,MAJA,MAAK,IAAMqc,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EACpB,IACT,CACA,YAAY,EAAI,EAAI,EAAO,CAKzB,MAJA,MAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EACzB,IACT,CACA,OAAO,EAAG,CACR,OAAOoS,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,CAC5E,CACA,UAAU,EAAO,EAAS,EAAG,CAK3B,MAJA,MAAK,EAAIla,EAAM0M,GACf,KAAK,EAAI1M,EAAM0M,EAAS,GACxB,KAAK,EAAI1M,EAAM0M,EAAS,GACxB,KAAK,EAAI1M,EAAM0M,EAAS,GACjB,IACT,CACA,QAAQ,EAAQ,CAAC,EAAG,EAAS,EAAG,CAK9B,MAJA,GAAMA,GAAU,KAAK,EACrB,EAAMA,EAAS,GAAK,KAAK,EACzB,EAAMA,EAAS,GAAK,KAAK,EACzB,EAAMA,EAAS,GAAK,KAAK,EAClB1M,CACT,CACA,oBAAoB,EAAW,EAAO,CAKpC,MAJA,MAAK,EAAI4G,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EACtB,IACT,CACA,QAAS,CAKP,MAJA,MAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACd,IACT,CACA,EAAE,OAAO,WAAY,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CACF,EACI,GAAe,cAAcn8B,EAAgB,CAC/C,YAAY,EAAQ,EAAG,EAAS,EAAG,EAAU,CAAC,EAAG,CAC/C,MAAM,EACN,KAAK,eAAiB,GACtB,KAAK,MAAQwlC,EACb,KAAK,OAASC,EACd,KAAK,MAAQ,EACb,KAAK,QAAU,IAAIyD,GAAQ,EAAG,EAAG1D,EAAOC,CAAM,EAC9C,KAAK,YAAc,GACnB,KAAK,SAAW,IAAIyD,GAAQ,EAAG,EAAG1D,EAAOC,CAAM,EAC/C,IAAMzS,EAAQ,CAAE,QAAO,SAAQ,MAAO,CAAE,EACxC,EAAU,OAAO,OAAO,CACtB,gBAAiB,GACjB,eAAgB,KAChB,UAAWwhC,GACX,YAAa,GACb,cAAe,GACf,mBAAoB,GACpB,qBAAsB,GACtB,aAAc,KACd,QAAS,EACT,MAAO,CACT,EAAGiQ,CAAO,EACV,IAAM5gC,EAAU,IAAIwpC,GAAQr6C,EAAOyxC,EAAQ,QAASA,EAAQ,MAAOA,EAAQ,MAAOA,EAAQ,UAAWA,EAAQ,UAAWA,EAAQ,OAAQA,EAAQ,KAAMA,EAAQ,WAAYA,EAAQ,UAAU,EAC5L,EAAQ,MAAQ,GAChB,EAAQ,gBAAkBA,EAAQ,gBAClC,EAAQ,eAAiBA,EAAQ,eACjC,KAAK,SAAW,CAAC,EACjB,IAAMvlC,EAAQulC,EAAQ,MACtB,IAAK,IAAI/yC,EAAI,EAAGA,EAAIwN,EAAO,IACzB,KAAK,SAASxN,GAAKmS,EAAQ,MAAM,EACjC,KAAK,SAASnS,EAAE,CAAC,sBAAwB,GAE3C,KAAK,YAAc+yC,EAAQ,YAC3B,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,mBAAqBA,EAAQ,mBAClC,KAAK,qBAAuBA,EAAQ,qBACpC,KAAK,aAAeA,EAAQ,aAC5B,KAAK,QAAUA,EAAQ,OACzB,CACA,IAAI,SAAU,CACZ,OAAO,KAAK,SAAS,EACvB,CACA,IAAI,QAAQ,EAAO,CACjB,KAAK,SAAS,GAAKh4C,CACrB,CACA,QAAQ,EAAO,EAAQ,EAAQ,EAAG,CAChC,GAAI,KAAK,QAAU+Y,GAAS,KAAK,SAAWC,GAAU,KAAK,QAAU8e,EAAO,CAC1E,KAAK,MAAQ/e,EACb,KAAK,OAASC,EACd,KAAK,MAAQ8e,EACb,IAAK,IAAI7yB,EAAI,EAAG+L,EAAK,KAAK,SAAS,OAAQ/L,EAAI+L,EAAI,IACjD,KAAK,SAAS/L,EAAE,CAAC,MAAM,MAAQ8T,EAC/B,KAAK,SAAS9T,EAAE,CAAC,MAAM,OAAS+T,EAChC,KAAK,SAAS/T,EAAE,CAAC,MAAM,MAAQ6yB,EAEjC,KAAK,QAAQ,CACf,CACA,KAAK,SAAS,IAAI,EAAG,EAAG/e,EAAOC,CAAM,EACrC,KAAK,QAAQ,IAAI,EAAG,EAAGD,EAAOC,CAAM,CACtC,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,CACzC,CACA,KAAK,EAAQ,CACX,KAAK,MAAQ3Y,EAAO,MACpB,KAAK,OAASA,EAAO,OACrB,KAAK,MAAQA,EAAO,MACpB,KAAK,QAAQ,KAAKA,EAAO,OAAO,EAChC,KAAK,YAAcA,EAAO,YAC1B,KAAK,SAAS,KAAKA,EAAO,QAAQ,EAClC,KAAK,SAAS,OAAS,EACvB,IAAK,IAAI4E,EAAI,EAAG+L,EAAK3Q,EAAO,SAAS,OAAQ4E,EAAI+L,EAAI,IACnD,KAAK,SAAS/L,GAAK5E,EAAO,SAAS4E,EAAE,CAAC,MAAM,EAC5C,KAAK,SAASA,EAAE,CAAC,sBAAwB,GAE3C,IAAMsB,EAAQ,OAAO,OAAO,CAAC,EAAGlG,EAAO,QAAQ,KAAK,EAQpD,MAPA,MAAK,QAAQ,OAAS,IAAIqgD,GAAOn6C,CAAK,EACtC,KAAK,YAAclG,EAAO,YAC1B,KAAK,cAAgBA,EAAO,cAC5B,KAAK,mBAAqBA,EAAO,mBACjC,KAAK,qBAAuBA,EAAO,qBAC/BA,EAAO,eAAiB,OAAM,KAAK,aAAeA,EAAO,aAAa,MAAM,GAChF,KAAK,QAAUA,EAAO,QACf,IACT,CACA,SAAU,CACR,KAAK,cAAc,CAAE,KAAM,SAAU,CAAC,CACxC,CACF,EACI,GAAoB,cAAcwgD,EAAa,CACjD,YAAY,EAAQ,EAAG,EAAS,EAAG,EAAU,CAAC,EAAG,CAC/C,MAAM9nC,EAAOC,EAAQg/B,CAAO,EAC5B,KAAK,oBAAsB,EAC7B,CACF,EACI,GAAmB,cAAc4I,EAAQ,CAC3C,YAAY,EAAO,KAAM,EAAQ,EAAG,EAAS,EAAG,EAAQ,EAAG,CACzD,MAAM,IAAI,EACV,KAAK,mBAAqB,GAC1B,KAAK,MAAQ,CAAE,OAAM,QAAO,SAAQ,OAAM,EAC1C,KAAK,UAAY9rB,GACjB,KAAK,UAAYA,GACjB,KAAK,MAAQ4S,GACb,KAAK,gBAAkB,GACvB,KAAK,MAAQ,GACb,KAAK,gBAAkB,EACvB,KAAK,6BAA+B,IAAI,GAC1C,CACA,eAAe,EAAY,CACzB,KAAK,aAAa,IAAIiC,CAAU,CAClC,CACA,mBAAoB,CAClB,KAAK,aAAa,MAAM,CAC1B,CACF,EACI,GAAyB,cAAc7wB,EAAkB,CAC3D,YAAY,EAAQ,EAAG,EAAS,EAAG,EAAQ,EAAG,EAAU,CAAC,EAAG,CAC1D,MAAMC,EAAOC,EAAQg/B,CAAO,EAC5B,KAAK,yBAA2B,GAChC,KAAK,MAAQlgB,EACb,KAAK,QAAU,IAAIva,GAAiB,KAAMxE,EAAOC,EAAQ8e,CAAK,EAC9D,KAAK,QAAQ,sBAAwB,EACvC,CACF,EACI,GAAgB,cAAc8oB,EAAQ,CACxC,YAAY,EAAO,KAAM,EAAQ,EAAG,EAAS,EAAG,EAAQ,EAAG,CACzD,MAAM,IAAI,EACV,KAAK,gBAAkB,GACvB,KAAK,MAAQ,CAAE,OAAM,QAAO,SAAQ,OAAM,EAC1C,KAAK,UAAY9rB,GACjB,KAAK,UAAYA,GACjB,KAAK,MAAQ4S,GACb,KAAK,gBAAkB,GACvB,KAAK,MAAQ,GACb,KAAK,gBAAkB,CACzB,CACF,EACI,GAAsB,cAAc5uB,EAAkB,CACxD,YAAY,EAAQ,EAAG,EAAS,EAAG,EAAQ,EAAG,EAAU,CAAC,EAAG,CAC1D,MAAMC,EAAOC,EAAQg/B,CAAO,EAC5B,KAAK,sBAAwB,GAC7B,KAAK,MAAQlgB,EACb,KAAK,QAAU,IAAIipB,GAAc,KAAMhoC,EAAOC,EAAQ8e,CAAK,EAC3D,KAAK,QAAQ,sBAAwB,EACvC,CACF,EACI,GAAa,KAAM,CACrB,YAAY,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CACtC,KAAK,aAAe,GACpB,KAAK,GAAKh3B,EACV,KAAK,GAAKsB,EACV,KAAK,GAAKstB,EACV,KAAK,GAAKyvC,CACZ,CACA,OAAO,UAAU,EAAK,EAAW,EAAM,EAAY,EAAM,EAAY,EAAG,CACtE,IAAIvuB,EAAKyvB,EAAKC,EAAa,GAAIrsB,EAAKosB,EAAKC,EAAa,GAAIC,EAAKF,EAAKC,EAAa,GAAIE,EAAKH,EAAKC,EAAa,GACtGxvB,EAAK2vB,EAAKC,EAAa,GAAIxsB,EAAKusB,EAAKC,EAAa,GAAIC,EAAKF,EAAKC,EAAa,GAAIE,EAAKH,EAAKC,EAAa,GAC9G,GAAIp+D,IAAM,EACR,EAAIqU,EAAY,GAAKi6B,EACrB,EAAIj6B,EAAY,GAAKs9B,EACrB,EAAIt9B,EAAY,GAAK4pD,EACrB,EAAI5pD,EAAY,GAAK6pD,OAGvB,GAAIl+D,IAAM,EACR,EAAIqU,EAAY,GAAKm6B,EACrB,EAAIn6B,EAAY,GAAKu9B,EACrB,EAAIv9B,EAAY,GAAKgqD,EACrB,EAAIhqD,EAAY,GAAKiqD,MAGvB,IAAIJ,IAAOI,GAAMhwB,IAAOE,GAAMmD,IAAOC,GAAMqsB,IAAOI,EAAI,CACpD,IAAIt9D,EAAI,EAAIf,EACN0B,EAAM4sC,EAAKE,EAAKmD,EAAKC,EAAKqsB,EAAKI,EAAKH,EAAKI,EAAIC,EAAM78D,GAAO,EAAI,EAAI,GAAI88D,EAAS,EAAI98D,EAAMA,EAC/F,GAAI88D,SAAyB,CAC3B,IAAM78D,EAAM,KAAK,KAAK68D,CAAM,EAAGjsB,EAAM,KAAK,MAAM5wC,EAAKD,EAAM68D,CAAG,EAC9D,EAAI,KAAK,IAAIx9D,EAAIwxC,CAAG,EAAI5wC,EACxB,EAAI,KAAK,IAAI3B,EAAIuyC,CAAG,EAAI5wC,CAC1B,CACA,IAAM88D,EAAOz+D,EAAIu+D,EAKjB,GAJA,EAAKjwB,EAAKvtC,EAAIytC,EAAKiwB,EACnB,EAAK9sB,EAAK5wC,EAAI6wC,EAAK6sB,EACnB,EAAKR,EAAKl9D,EAAIs9D,EAAKI,EACnB,EAAKP,EAAKn9D,EAAIu9D,EAAKG,EACf19D,IAAM,EAAIf,EAAG,CACf,IAAM4F,EAAI,EAAI,KAAK,KAAK0oC,EAAKA,EAAKqD,EAAKA,EAAKssB,EAAKA,EAAKC,EAAKA,CAAE,EAC7D,GAAMt4D,EACN,GAAMA,EACN,GAAMA,EACN,GAAMA,CACR,CACF,CACA,EAAIyO,GAAai6B,EACjB,EAAIj6B,EAAY,GAAKs9B,EACrB,EAAIt9B,EAAY,GAAK4pD,EACrB,EAAI5pD,EAAY,GAAK6pD,CAJrB,CAKF,CACA,OAAO,wBAAwB,EAAK,EAAW,EAAM,EAAY,EAAM,EAAY,CACjF,IAAM5vB,EAAKyvB,EAAKC,GACVrsB,EAAKosB,EAAKC,EAAa,GACvBC,EAAKF,EAAKC,EAAa,GACvBE,EAAKH,EAAKC,EAAa,GACvBxvB,EAAK2vB,EAAKC,GACVxsB,EAAKusB,EAAKC,EAAa,GACvBC,EAAKF,EAAKC,EAAa,GACvBE,EAAKH,EAAKC,EAAa,GAK7B,MAJA,GAAI/pD,GAAai6B,EAAKgwB,EAAKJ,EAAK1vB,EAAKmD,EAAK0sB,EAAKJ,EAAKrsB,EACpD,EAAIv9B,EAAY,GAAKs9B,EAAK2sB,EAAKJ,EAAKtsB,EAAKqsB,EAAKzvB,EAAKF,EAAK+vB,EACxD,EAAIhqD,EAAY,GAAK4pD,EAAKK,EAAKJ,EAAKG,EAAK/vB,EAAKsD,EAAKD,EAAKnD,EACxD,EAAIn6B,EAAY,GAAK6pD,EAAKI,EAAKhwB,EAAKE,EAAKmD,EAAKC,EAAKqsB,EAAKI,EACjDz2D,CACT,CACA,IAAI,GAAI,CACN,OAAO,KAAK,EACd,CACA,IAAI,EAAE,EAAO,CACX,KAAK,GAAKlK,EACV,KAAK,kBAAkB,CACzB,CACA,IAAI,GAAI,CACN,OAAO,KAAK,EACd,CACA,IAAI,EAAE,EAAO,CACX,KAAK,GAAKA,EACV,KAAK,kBAAkB,CACzB,CACA,IAAI,GAAI,CACN,OAAO,KAAK,EACd,CACA,IAAI,EAAE,EAAO,CACX,KAAK,GAAKA,EACV,KAAK,kBAAkB,CACzB,CACA,IAAI,GAAI,CACN,OAAO,KAAK,EACd,CACA,IAAI,EAAE,EAAO,CACX,KAAK,GAAKA,EACV,KAAK,kBAAkB,CACzB,CACA,IAAI,EAAG,EAAG,EAAG,EAAG,CAMd,MALA,MAAK,GAAKc,EACV,KAAK,GAAKsB,EACV,KAAK,GAAKstB,EACV,KAAK,GAAKyvC,EACV,KAAK,kBAAkB,EAChB,IACT,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,EAAE,CAChE,CACA,KAAK,EAAY,CAMf,MALA,MAAK,GAAK6B,EAAW,EACrB,KAAK,GAAKA,EAAW,EACrB,KAAK,GAAKA,EAAW,EACrB,KAAK,GAAKA,EAAW,EACrB,KAAK,kBAAkB,EAChB,IACT,CACA,aAAa,EAAO,EAAS,GAAM,CACjC,IAAMlgE,EAAImgE,EAAM,GAAI7+D,EAAI6+D,EAAM,GAAIvxC,EAAIuxC,EAAM,GAAIt8D,EAAQs8D,EAAM,OACxDj9D,EAAM,KAAK,IACXC,EAAM,KAAK,IACXysC,EAAK1sC,EAAIlD,EAAI,CAAC,EACdoD,EAAKF,EAAI5B,EAAI,CAAC,EACduuC,EAAK3sC,EAAI0rB,EAAI,CAAC,EACdwxC,EAAKj9D,EAAInD,EAAI,CAAC,EACdqD,EAAKF,EAAI7B,EAAI,CAAC,EACd++D,EAAKl9D,EAAIyrB,EAAI,CAAC,EACpB,OAAQ/qB,EAAR,CACE,IAAK,MACH,KAAK,GAAKu8D,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,IAAK,MACH,KAAK,GAAKD,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,IAAK,MACH,KAAK,GAAKD,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,IAAK,MACH,KAAK,GAAKD,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,IAAK,MACH,KAAK,GAAKD,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,IAAK,MACH,KAAK,GAAKD,EAAKh9D,EAAKysC,EAAKD,EAAKvsC,EAAKg9D,EACnC,KAAK,GAAKzwB,EAAKvsC,EAAKwsC,EAAKuwB,EAAKh9D,EAAKi9D,EACnC,KAAK,GAAKzwB,EAAKxsC,EAAKi9D,EAAKD,EAAK/8D,EAAKwsC,EACnC,KAAK,GAAKD,EAAKxsC,EAAKysC,EAAKuwB,EAAK/8D,EAAKg9D,EACnC,MACF,QACE,QAAQ,KAAK,mEAAqEx8D,CAAK,CAC3F,CAEA,OADI2H,IAAW,IAAM,KAAK,kBAAkB,EACrC,IACT,CACA,iBAAiB,EAAM,EAAO,CAC5B,IAAM80D,EAAYjG,EAAQ,EAAG93D,EAAI,KAAK,IAAI+9D,CAAS,EAMnD,MALA,MAAK,GAAKC,EAAK,EAAIh+D,EACnB,KAAK,GAAKg+D,EAAK,EAAIh+D,EACnB,KAAK,GAAKg+D,EAAK,EAAIh+D,EACnB,KAAK,GAAK,KAAK,IAAI+9D,CAAS,EAC5B,KAAK,kBAAkB,EAChB,IACT,CACA,sBAAsB,EAAG,CACvB,IAAM5nE,EAAKqI,EAAE,SAAUy9D,EAAM9lE,EAAG,GAAI+lE,EAAM/lE,EAAG,GAAIgmE,EAAMhmE,EAAG,GAAIimE,EAAMjmE,EAAG,GAAIkmE,EAAMlmE,EAAG,GAAImmE,EAAMnmE,EAAG,GAAIomE,EAAMpmE,EAAG,GAAIqmE,EAAMrmE,EAAG,GAAIsmE,EAAMtmE,EAAG,IAAK8nE,EAAQhC,EAAMI,EAAMI,EACjK,GAAIwB,EAAQ,EAAG,CACb,IAAMj+D,EAAI,GAAM,KAAK,KAAKi+D,EAAQ,CAAC,EACnC,KAAK,GAAK,IAAOj+D,EACjB,KAAK,IAAMw8D,EAAMF,GAAOt8D,EACxB,KAAK,IAAMm8D,EAAMI,GAAOv8D,EACxB,KAAK,IAAMo8D,EAAMF,GAAOl8D,CAC1B,MAAO,GAAIi8D,EAAMI,GAAOJ,EAAMQ,EAAK,CACjC,IAAMz8D,EAAI,EAAI,KAAK,KAAK,EAAIi8D,EAAMI,EAAMI,CAAG,EAC3C,KAAK,IAAMD,EAAMF,GAAOt8D,EACxB,KAAK,GAAK,IAAOA,EACjB,KAAK,IAAMk8D,EAAME,GAAOp8D,EACxB,KAAK,IAAMm8D,EAAMI,GAAOv8D,CAC1B,MAAO,GAAIq8D,EAAMI,EAAK,CACpB,IAAMz8D,EAAI,EAAI,KAAK,KAAK,EAAIq8D,EAAMJ,EAAMQ,CAAG,EAC3C,KAAK,IAAMN,EAAMI,GAAOv8D,EACxB,KAAK,IAAMk8D,EAAME,GAAOp8D,EACxB,KAAK,GAAK,IAAOA,EACjB,KAAK,IAAMs8D,EAAME,GAAOx8D,CAC1B,KAAO,CACL,IAAMA,EAAI,EAAI,KAAK,KAAK,EAAIy8D,EAAMR,EAAMI,CAAG,EAC3C,KAAK,IAAMD,EAAMF,GAAOl8D,EACxB,KAAK,IAAMm8D,EAAMI,GAAOv8D,EACxB,KAAK,IAAMs8D,EAAME,GAAOx8D,EACxB,KAAK,GAAK,IAAOA,CACnB,CAEA,OADA,KAAK,kBAAkB,EAChB,IACT,CACA,mBAAmB,EAAO,EAAK,CAC7B,IAAIwD,EAAI06D,EAAM,IAAIC,CAAG,EAAI,EAoBzB,OAnBI36D,UACF,EAAI,EACA,KAAK,IAAI06D,EAAM,CAAC,EAAI,KAAK,IAAIA,EAAM,CAAC,GACtC,KAAK,GAAK,CAACA,EAAM,EACjB,KAAK,GAAKA,EAAM,EAChB,KAAK,GAAK,EACV,KAAK,GAAK16D,IAEV,KAAK,GAAK,EACV,KAAK,GAAK,CAAC06D,EAAM,EACjB,KAAK,GAAKA,EAAM,EAChB,KAAK,GAAK16D,KAGZ,KAAK,GAAK06D,EAAM,EAAIC,EAAI,EAAID,EAAM,EAAIC,EAAI,EAC1C,KAAK,GAAKD,EAAM,EAAIC,EAAI,EAAID,EAAM,EAAIC,EAAI,EAC1C,KAAK,GAAKD,EAAM,EAAIC,EAAI,EAAID,EAAM,EAAIC,EAAI,EAC1C,KAAK,GAAK36D,GAEL,KAAK,UAAU,CACxB,CACA,QAAQ,EAAG,CACT,MAAO,GAAI,KAAK,KAAK,KAAK,IAAI1zB,GAAM,KAAK,IAAIyxB,CAAC,EAAG,GAAI,CAAC,CAAC,CAAC,CAC1D,CACA,cAAc,EAAG,EAAM,CACrB,IAAMu2D,EAAQ,KAAK,QAAQv2D,CAAC,EAC5B,GAAIu2D,IAAU,EAAG,OAAO,KACxB,IAAM74D,EAAI,KAAK,IAAI,EAAG5B,EAAOy6D,CAAK,EAElC,OADA,KAAK,MAAMv2D,EAAGtC,CAAC,EACR,IACT,CACA,UAAW,CACT,OAAO,KAAK,IAAI,EAAG,EAAG,EAAG,CAAC,CAC5B,CACA,QAAS,CACP,OAAO,KAAK,UAAU,CACxB,CACA,WAAY,CAKV,MAJA,MAAK,IAAM,GACX,KAAK,IAAM,GACX,KAAK,IAAM,GACX,KAAK,kBAAkB,EAChB,IACT,CACA,IAAI,EAAG,CACL,OAAO,KAAK,GAAK0c,EAAE,GAAK,KAAK,GAAKA,EAAE,GAAK,KAAK,GAAKA,EAAE,GAAK,KAAK,GAAKA,EAAE,EACxE,CACA,UAAW,CACT,OAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,EACpF,CACA,QAAS,CACP,OAAO,KAAK,KAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,EAAE,CAChG,CACA,WAAY,CACV,IAAI9S,EAAI,KAAK,OAAO,EAcpB,OAbIA,IAAM,GACR,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,GAAK,IAEV,EAAI,EAAIA,EACR,KAAK,IAAeA,EACpB,KAAK,IAAeA,EACpB,KAAK,IAAeA,EACpB,KAAK,IAAeA,GAEtB,KAAK,kBAAkB,EAChB,IACT,CACA,SAAS,EAAG,CACV,OAAO,KAAK,oBAAoB,KAAMtH,CAAC,CACzC,CACA,YAAY,EAAG,CACb,OAAO,KAAK,oBAAoBA,EAAG,IAAI,CACzC,CACA,oBAAoB,EAAG,EAAG,CACxB,IAAM68D,EAAMthE,EAAE,GAAIuhE,EAAMvhE,EAAE,GAAIwhE,EAAMxhE,EAAE,GAAIyhE,EAAMzhE,EAAE,GAC5C0hE,EAAM3hE,EAAE,GAAI4hE,EAAM5hE,EAAE,GAAI6hE,EAAM7hE,EAAE,GAAI8hE,EAAM9hE,EAAE,GAMlD,MALA,MAAK,GAAKuhE,EAAMO,EAAMJ,EAAMC,EAAMH,EAAMK,EAAMJ,EAAMG,EACpD,KAAK,GAAKJ,EAAMM,EAAMJ,EAAME,EAAMH,EAAME,EAAMJ,EAAMM,EACpD,KAAK,GAAKJ,EAAMK,EAAMJ,EAAMG,EAAMN,EAAMK,EAAMJ,EAAMG,EACpD,KAAK,GAAKD,EAAMI,EAAMP,EAAMI,EAAMH,EAAMI,EAAMH,EAAMI,EACpD,KAAK,kBAAkB,EAChB,IACT,CACA,MAAM,EAAI,EAAG,CACX,GAAI,IAAM,EAAG,OAAO,KACpB,GAAI,IAAM,EAAG,OAAO,KAAK,KAAKE,CAAE,EAChC,IAAMnhE,EAAI,KAAK,GAAIsB,EAAI,KAAK,GAAIstB,EAAI,KAAK,GAAIyvC,EAAI,KAAK,GAClD+C,EAAe/C,EAAI8C,EAAG,GAAKnhE,EAAImhE,EAAG,GAAK7/D,EAAI6/D,EAAG,GAAKvyC,EAAIuyC,EAAG,GAU9D,GATIC,EAAe,GACjB,KAAK,GAAK,CAACD,EAAG,GACd,KAAK,GAAK,CAACA,EAAG,GACd,KAAK,GAAK,CAACA,EAAG,GACd,KAAK,GAAK,CAACA,EAAG,GACd,EAAe,CAACC,GAEhB,KAAK,KAAKD,CAAE,EAEVC,GAAgB,EAKlB,MAJA,MAAK,GAAK/C,EACV,KAAK,GAAKr+D,EACV,KAAK,GAAKsB,EACV,KAAK,GAAKstB,EACH,KAET,IAAMyyC,EAAkB,EAAID,EAAeA,EAC3C,GAAIC,UAAmC,CACrC,IAAM9+D,EAAI,EAAI,EAMd,MALA,MAAK,GAAKA,EAAI87D,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAK97D,EAAIvC,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAKuC,EAAIjB,EAAI,EAAI,KAAK,GAC3B,KAAK,GAAKiB,EAAIqsB,EAAI,EAAI,KAAK,GAC3B,KAAK,UAAU,EACR,IACT,CACA,IAAM0yC,EAAe,KAAK,KAAKD,CAAe,EACxCE,EAAY,KAAK,MAAMD,EAAcF,CAAY,EACjDI,EAAS,KAAK,KAAK,EAAI,GAAKD,CAAS,EAAID,EAAcG,EAAS,KAAK,IAAI,EAAIF,CAAS,EAAID,EAMhG,MALA,MAAK,GAAKjD,EAAImD,EAAS,KAAK,GAAKC,EACjC,KAAK,GAAKzhE,EAAIwhE,EAAS,KAAK,GAAKC,EACjC,KAAK,GAAKngE,EAAIkgE,EAAS,KAAK,GAAKC,EACjC,KAAK,GAAK7yC,EAAI4yC,EAAS,KAAK,GAAKC,EACjC,KAAK,kBAAkB,EAChB,IACT,CACA,iBAAiB,EAAI,EAAI,EAAG,CAC1B,OAAO,KAAK,KAAKC,CAAE,CAAC,CAAC,MAAMP,EAAI3/D,CAAC,CAClC,CACA,QAAS,CACP,IAAMmgE,EAAS,EAAI,KAAK,GAAK,KAAK,OAAO,EACnCC,EAAS,EAAI,KAAK,GAAK,KAAK,OAAO,EACnC9xB,EAAK,KAAK,OAAO,EACjB+xB,EAAK,KAAK,KAAK,EAAI/xB,CAAE,EACrBgyB,EAAK,KAAK,KAAKhyB,CAAE,EACvB,OAAO,KAAK,IACV+xB,EAAK,KAAK,IAAIF,CAAM,EACpBE,EAAK,KAAK,IAAIF,CAAM,EACpBG,EAAK,KAAK,IAAIF,CAAM,EACpBE,EAAK,KAAK,IAAIF,CAAM,CACtB,CACF,CACA,OAAO,EAAY,CACjB,OAAO1B,EAAW,KAAO,KAAK,IAAMA,EAAW,KAAO,KAAK,IAAMA,EAAW,KAAO,KAAK,IAAMA,EAAW,KAAO,KAAK,EACvH,CACA,UAAU,EAAO,EAAS,EAAG,CAM3B,MALA,MAAK,GAAKl8D,EAAM0M,GAChB,KAAK,GAAK1M,EAAM0M,EAAS,GACzB,KAAK,GAAK1M,EAAM0M,EAAS,GACzB,KAAK,GAAK1M,EAAM0M,EAAS,GACzB,KAAK,kBAAkB,EAChB,IACT,CACA,QAAQ,EAAQ,CAAC,EAAG,EAAS,EAAG,CAK9B,MAJA,GAAMA,GAAU,KAAK,GACrB,EAAMA,EAAS,GAAK,KAAK,GACzB,EAAMA,EAAS,GAAK,KAAK,GACzB,EAAMA,EAAS,GAAK,KAAK,GAClB1M,CACT,CACA,oBAAoB,EAAW,EAAO,CAMpC,MALA,MAAK,GAAK4G,EAAU,KAAKgE,CAAK,EAC9B,KAAK,GAAKhE,EAAU,KAAKgE,CAAK,EAC9B,KAAK,GAAKhE,EAAU,KAAKgE,CAAK,EAC9B,KAAK,GAAKhE,EAAU,KAAKgE,CAAK,EAC9B,KAAK,kBAAkB,EAChB,IACT,CACA,QAAS,CACP,OAAO,KAAK,QAAQ,CACtB,CACA,UAAU,EAAU,CAElB,MADA,MAAK,kBAAoBpE,EAClB,IACT,CACA,mBAAoB,CACpB,CACA,EAAE,OAAO,WAAY,CACnB,MAAM,KAAK,GACX,MAAM,KAAK,GACX,MAAM,KAAK,GACX,MAAM,KAAK,EACb,CACF,EACI,EAAU,MAAMu3D,CAAS,CAC3B,YAAY,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,CAC/B,EAAS,UAAU,UAAY,GAC/B,KAAK,EAAI/hE,EACT,KAAK,EAAIsB,EACT,KAAK,EAAIstB,CACX,CACA,IAAI,EAAG,EAAG,EAAG,CAKX,OAJIA,IAAM,IAAK,KAAG,EAAI,KAAK,GAC3B,KAAK,EAAI5uB,EACT,KAAK,EAAIsB,EACT,KAAK,EAAIstB,EACF,IACT,CACA,UAAU,EAAQ,CAIhB,MAHA,MAAK,EAAIkrC,EACT,KAAK,EAAIA,EACT,KAAK,EAAIA,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAI95D,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIsB,EACF,IACT,CACA,KAAK,EAAG,CAEN,MADA,MAAK,EAAIstB,EACF,IACT,CACA,aAAa,EAAO,EAAO,CACzB,OAAQhgB,EAAR,CACE,IAAK,GACH,KAAK,EAAI1P,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,IAAK,GACH,KAAK,EAAIA,EACT,MACF,QACE,MAAU,MAAM,0BAA4B0P,CAAK,CACrD,CACA,OAAO,IACT,CACA,aAAa,EAAO,CAClB,OAAQA,EAAR,CACE,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,IAAK,GACH,OAAO,KAAK,EACd,QACE,MAAU,MAAM,0BAA4BA,CAAK,CACrD,CACF,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,CACpD,CACA,KAAK,EAAG,CAIN,MAHA,MAAK,EAAIsP,EAAE,EACX,KAAK,EAAIA,EAAE,EACX,KAAK,EAAIA,EAAE,EACJ,IACT,CACA,IAAI,EAAG,CAIL,MAHA,MAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAIX,MAHA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAIf,MAHA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,gBAAgB,EAAG,EAAG,CAIpB,MAHA,MAAK,GAAK8e,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EAChB,KAAK,GAAK2b,EAAE,EAAI3b,EACT,IACT,CACA,IAAI,EAAG,CAIL,MAHA,MAAK,GAAK2b,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,UAAU,EAAG,CAIX,MAHA,MAAK,GAAK3b,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,WAAW,EAAG,EAAG,CAIf,MAHA,MAAK,EAAIlD,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,SAAS,EAAG,CAIV,MAHA,MAAK,GAAK8e,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,eAAe,EAAQ,CAIrB,MAHA,MAAK,GAAK47C,EACV,KAAK,GAAKA,EACV,KAAK,GAAKA,EACH,IACT,CACA,gBAAgB,EAAG,EAAG,CAIpB,MAHA,MAAK,EAAIz6D,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACjB,KAAK,EAAIC,EAAE,EAAID,EAAE,EACV,IACT,CACA,WAAW,EAAO,CAChB,OAAO,KAAK,gBAAgBghD,GAAc,aAAa+f,CAAK,CAAC,CAC/D,CACA,eAAe,EAAM,EAAO,CAC1B,OAAO,KAAK,gBAAgB/f,GAAc,iBAAiBmgB,EAAMlG,CAAK,CAAC,CACzE,CACA,aAAa,EAAG,CACd,IAAMr6D,EAAI,KAAK,EAAGsB,EAAI,KAAK,EAAGstB,EAAI,KAAK,EACjC9nB,EAAI/F,EAAE,SAIZ,MAHA,MAAK,EAAI+F,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EACtC,KAAK,EAAI9nB,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EACtC,KAAK,EAAI9nB,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EAC/B,IACT,CACA,kBAAkB,EAAG,CACnB,OAAO,KAAK,aAAa7tB,CAAC,CAAC,CAAC,UAAU,CACxC,CACA,aAAa,EAAG,CACd,IAAMf,EAAI,KAAK,EAAGsB,EAAI,KAAK,EAAGstB,EAAI,KAAK,EACjC9nB,EAAI/F,EAAE,SACNs9D,EAAI,GAAKv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,IAAM8nB,EAAI9nB,EAAE,KAInD,MAHA,MAAK,GAAKA,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EAAI9nB,EAAE,KAAOu3D,EACpD,KAAK,GAAKv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EAAI9nB,EAAE,KAAOu3D,EACpD,KAAK,GAAKv3D,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,IAAM8nB,EAAI9nB,EAAE,KAAOu3D,EAC9C,IACT,CACA,gBAAgB,EAAG,CACjB,IAAM2D,EAAK,KAAK,EAAGC,EAAK,KAAK,EAAGC,EAAK,KAAK,EACpCztB,EAAK3wC,EAAE,EAAGq+D,EAAKr+D,EAAE,EAAGs+D,EAAKt+D,EAAE,EAAGu+D,EAAKv+D,EAAE,EACrCm5D,EAAK,GAAKkF,EAAKD,EAAKE,EAAKH,GACzB9E,EAAK,GAAKiF,EAAKJ,EAAKvtB,EAAKytB,GACzBI,EAAK,GAAK7tB,EAAKwtB,EAAKE,EAAKH,GAI/B,MAHA,MAAK,EAAIA,EAAKK,EAAKpF,EAAKkF,EAAKG,EAAKF,EAAKjF,EACvC,KAAK,EAAI8E,EAAKI,EAAKlF,EAAKiF,EAAKnF,EAAKxoB,EAAK6tB,EACvC,KAAK,EAAIJ,EAAKG,EAAKC,EAAK7tB,EAAK0oB,EAAKgF,EAAKlF,EAChC,IACT,CACA,QAAQ,EAAQ,CACd,OAAO,KAAK,aAAa5vD,EAAO,kBAAkB,CAAC,CAAC,aAAaA,EAAO,gBAAgB,CAC1F,CACA,UAAU,EAAQ,CAChB,OAAO,KAAK,aAAaA,EAAO,uBAAuB,CAAC,CAAC,aAAaA,EAAO,WAAW,CAC1F,CACA,mBAAmB,EAAG,CACpB,IAAMrN,EAAI,KAAK,EAAGsB,EAAI,KAAK,EAAGstB,EAAI,KAAK,EACjC9nB,EAAI/F,EAAE,SAIZ,MAHA,MAAK,EAAI+F,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EACtC,KAAK,EAAI9nB,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,GAAK8nB,EACtC,KAAK,EAAI9nB,EAAE,GAAK9G,EAAI8G,EAAE,GAAKxF,EAAIwF,EAAE,IAAM8nB,EAChC,KAAK,UAAU,CACxB,CACA,OAAO,EAAG,CAIR,MAHA,MAAK,GAAK1Q,EAAE,EACZ,KAAK,GAAKA,EAAE,EACZ,KAAK,GAAKA,EAAE,EACL,IACT,CACA,aAAa,EAAQ,CACnB,OAAO,KAAK,eAAe,EAAI47C,CAAM,CACvC,CACA,IAAI,EAAG,CAIL,MAHA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAG57C,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,IAAI,EAAG,CAIL,MAHA,MAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EAC7B,KAAK,EAAI,KAAK,IAAI,KAAK,EAAGA,EAAE,CAAC,EACtB,IACT,CACA,MAAM,EAAK,EAAK,CAId,MAHA,MAAK,EAAI,KAAK,IAAIvd,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EAChD,KAAK,EAAI,KAAK,IAAID,EAAI,EAAG,KAAK,IAAIC,EAAI,EAAG,KAAK,CAAC,CAAC,EACzC,IACT,CACA,YAAY,EAAQ,EAAQ,CAI1B,MAHA,MAAK,EAAI,KAAK,IAAIm5D,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAClD,KAAK,EAAI,KAAK,IAAID,EAAQ,KAAK,IAAIC,EAAQ,KAAK,CAAC,CAAC,EAC3C,IACT,CACA,YAAY,EAAK,EAAK,CACpB,IAAMn4D,EAAS,KAAK,OAAO,EAC3B,OAAO,KAAK,aAAaA,GAAU,CAAC,CAAC,CAAC,eAAe,KAAK,IAAIlB,EAAK,KAAK,IAAIC,EAAKiB,CAAM,CAAC,CAAC,CAC3F,CACA,OAAQ,CAIN,MAHA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,MAAO,CAIL,MAHA,MAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EACzB,KAAK,EAAI,KAAK,KAAK,KAAK,CAAC,EAClB,IACT,CACA,OAAQ,CAIN,MAHA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,aAAc,CAIZ,MAHA,MAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EAC1B,KAAK,EAAI,KAAK,MAAM,KAAK,CAAC,EACnB,IACT,CACA,QAAS,CAIP,MAHA,MAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACf,KAAK,EAAI,CAAC,KAAK,EACR,IACT,CACA,IAAI,EAAG,CACL,OAAO,KAAK,EAAIqc,EAAE,EAAI,KAAK,EAAIA,EAAE,EAAI,KAAK,EAAIA,EAAE,CAClD,CAEA,UAAW,CACT,OAAO,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CAC3D,CACA,QAAS,CACP,OAAO,KAAK,KAAK,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,CAAC,CACtE,CACA,iBAAkB,CAChB,OAAO,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,EAAI,KAAK,IAAI,KAAK,CAAC,CAC9D,CACA,WAAY,CACV,OAAO,KAAK,aAAa,KAAK,OAAO,GAAK,CAAC,CAC7C,CACA,UAAU,EAAQ,CAChB,OAAO,KAAK,UAAU,CAAC,CAAC,eAAerc,CAAM,CAC/C,CACA,KAAK,EAAG,EAAO,CAIb,MAHA,MAAK,IAAMqc,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EAC3B,KAAK,IAAMoS,EAAE,EAAI,KAAK,GAAKpS,EACpB,IACT,CACA,YAAY,EAAI,EAAI,EAAO,CAIzB,MAHA,MAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EAChC,KAAK,EAAI1F,EAAG,GAAKE,EAAG,EAAIF,EAAG,GAAK0F,EACzB,IACT,CACA,MAAM,EAAG,CACP,OAAO,KAAK,aAAa,KAAMoS,CAAC,CAClC,CACA,aAAa,EAAG,EAAG,CACjB,IAAM40B,EAAKzzC,EAAE,EAAG2zC,EAAK3zC,EAAE,EAAGkjE,EAAKljE,EAAE,EAC3B0zC,EAAK3zC,EAAE,EAAG6zC,EAAK7zC,EAAE,EAAGojE,EAAKpjE,EAAE,EAIjC,MAHA,MAAK,EAAI4zC,EAAKwvB,EAAKD,EAAKtvB,EACxB,KAAK,EAAIsvB,EAAKxvB,EAAKD,EAAK0vB,EACxB,KAAK,EAAI1vB,EAAKG,EAAKD,EAAKD,EACjB,IACT,CACA,gBAAgB,EAAG,CACjB,IAAMknB,EAAc/7C,EAAE,SAAS,EAC/B,GAAI+7C,IAAgB,EAAG,OAAO,KAAK,IAAI,EAAG,EAAG,CAAC,EAC9C,IAAMH,EAAS57C,EAAE,IAAI,IAAI,EAAI+7C,EAC7B,OAAO,KAAK,KAAK/7C,CAAC,CAAC,CAAC,eAAe47C,CAAM,CAC3C,CACA,eAAe,EAAa,CAE1B,OADA3Z,GAAU,KAAK,IAAI,CAAC,CAAC,gBAAgBsiB,CAAW,EACzC,KAAK,IAAItiB,EAAS,CAC3B,CACA,QAAQ,EAAQ,CACd,OAAO,KAAK,IAAIA,GAAU,KAAKl3C,CAAM,CAAC,CAAC,eAAe,EAAI,KAAK,IAAIA,CAAM,CAAC,CAAC,CAC7E,CACA,QAAQ,EAAG,CACT,IAAMgxD,EAAc,KAAK,KAAK,KAAK,SAAS,EAAI/7C,EAAE,SAAS,CAAC,EAC5D,GAAI+7C,IAAgB,EAAG,OAAO,KAAK,GAAK,EACxC,IAAMC,EAAQ,KAAK,IAAIh8C,CAAC,EAAI+7C,EAC5B,OAAO,KAAK,KAAK5nF,GAAM6nF,EAAO,GAAI,CAAC,CAAC,CACtC,CACA,WAAW,EAAG,CACZ,OAAO,KAAK,KAAK,KAAK,kBAAkBh8C,CAAC,CAAC,CAC5C,CACA,kBAAkB,EAAG,CACnB,IAAMi8C,EAAK,KAAK,EAAIj8C,EAAE,EAAGk8C,EAAK,KAAK,EAAIl8C,EAAE,EAAGwkD,EAAK,KAAK,EAAIxkD,EAAE,EAC5D,OAAOi8C,EAAKA,EAAKC,EAAKA,EAAKsI,EAAKA,CAClC,CACA,oBAAoB,EAAG,CACrB,OAAO,KAAK,IAAI,KAAK,EAAIxkD,EAAE,CAAC,EAAI,KAAK,IAAI,KAAK,EAAIA,EAAE,CAAC,EAAI,KAAK,IAAI,KAAK,EAAIA,EAAE,CAAC,CAChF,CACA,iBAAiB,EAAG,CAClB,OAAO,KAAK,uBAAuB3b,EAAE,OAAQA,EAAE,IAAKA,EAAE,KAAK,CAC7D,CACA,uBAAuB,EAAQ,EAAK,EAAO,CACzC,IAAMogE,EAAe,KAAK,IAAIC,CAAG,EAAIC,EAIrC,MAHA,MAAK,EAAIF,EAAe,KAAK,IAAIzI,CAAK,EACtC,KAAK,EAAI,KAAK,IAAI0I,CAAG,EAAIC,EACzB,KAAK,EAAIF,EAAe,KAAK,IAAIzI,CAAK,EAC/B,IACT,CACA,mBAAmB,EAAG,CACpB,OAAO,KAAK,yBAAyB32D,EAAE,OAAQA,EAAE,MAAOA,EAAE,CAAC,CAC7D,CACA,yBAAyB,EAAQ,EAAO,EAAG,CAIzC,MAHA,MAAK,EAAIs/D,EAAS,KAAK,IAAI3I,CAAK,EAChC,KAAK,EAAI54D,EACT,KAAK,EAAIuhE,EAAS,KAAK,IAAI3I,CAAK,EACzB,IACT,CACA,sBAAsB,EAAG,CACvB,IAAMpzD,EAAI/F,EAAE,SAIZ,MAHA,MAAK,EAAI+F,EAAE,IACX,KAAK,EAAIA,EAAE,IACX,KAAK,EAAIA,EAAE,IACJ,IACT,CACA,mBAAmB,EAAG,CACpB,IAAMk2D,EAAK,KAAK,oBAAoBj8D,EAAG,CAAC,CAAC,CAAC,OAAO,EAC3Cm8D,EAAK,KAAK,oBAAoBn8D,EAAG,CAAC,CAAC,CAAC,OAAO,EAC3C+hE,EAAK,KAAK,oBAAoB/hE,EAAG,CAAC,CAAC,CAAC,OAAO,EAIjD,MAHA,MAAK,EAAIi8D,EACT,KAAK,EAAIE,EACT,KAAK,EAAI4F,EACF,IACT,CACA,oBAAoB,EAAG,EAAO,CAC5B,OAAO,KAAK,UAAU/hE,EAAE,SAAU6N,EAAQ,CAAC,CAC7C,CACA,qBAAqB,EAAG,EAAO,CAC7B,OAAO,KAAK,UAAU7N,EAAE,SAAU6N,EAAQ,CAAC,CAC7C,CACA,aAAa,EAAG,CAId,MAHA,MAAK,EAAI,EAAE,GACX,KAAK,EAAI,EAAE,GACX,KAAK,EAAI,EAAE,GACJ,IACT,CACA,aAAa,EAAG,CAId,MAHA,MAAK,EAAIrL,EAAE,EACX,KAAK,EAAIA,EAAE,EACX,KAAK,EAAIA,EAAE,EACJ,IACT,CACA,OAAO,EAAG,CACR,OAAO2a,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,GAAKA,EAAE,IAAM,KAAK,CAC1D,CACA,UAAU,EAAO,EAAS,EAAG,CAI3B,MAHA,MAAK,EAAIla,EAAM0M,GACf,KAAK,EAAI1M,EAAM0M,EAAS,GACxB,KAAK,EAAI1M,EAAM0M,EAAS,GACjB,IACT,CACA,QAAQ,EAAQ,CAAC,EAAG,EAAS,EAAG,CAI9B,MAHA,GAAMA,GAAU,KAAK,EACrB,EAAMA,EAAS,GAAK,KAAK,EACzB,EAAMA,EAAS,GAAK,KAAK,EAClB1M,CACT,CACA,oBAAoB,EAAW,EAAO,CAIpC,MAHA,MAAK,EAAI4G,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EAC7B,KAAK,EAAIhE,EAAU,KAAKgE,CAAK,EACtB,IACT,CACA,QAAS,CAIP,MAHA,MAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACrB,KAAK,EAAI,KAAK,OAAO,EACd,IACT,CACA,iBAAkB,CAChB,IAAMsrD,EAAQ,KAAK,OAAO,EAAI,KAAK,GAAK,EAClC7wD,EAAI,KAAK,OAAO,EAAI,EAAI,EACxB9F,EAAI,KAAK,KAAK,EAAI8F,EAAIA,CAAC,EAI7B,MAHA,MAAK,EAAI9F,EAAI,KAAK,IAAI22D,CAAK,EAC3B,KAAK,EAAI7wD,EACT,KAAK,EAAI9F,EAAI,KAAK,IAAI22D,CAAK,EACpB,IACT,CACA,EAAE,OAAO,WAAY,CACnB,MAAM,KAAK,EACX,MAAM,KAAK,EACX,MAAM,KAAK,CACb,CACF,EACI,mBAA4B,IAAItxD,EAChC,mBAAgC,IAAImxC,GACpC,GAAO,KAAM,CACf,YAAY,EAAM,IAAInxC,EAAQ,IAAU,IAAU,GAAQ,EAAG,EAAM,IAAIA,EAAQ,KAAW,KAAW,IAAS,EAAG,CAC/G,KAAK,OAAS,GACd,KAAK,IAAMjI,EACX,KAAK,IAAMC,CACb,CACA,IAAI,EAAK,EAAK,CAGZ,OAFA,KAAK,IAAI,KAAKD,CAAG,EACjB,KAAK,IAAI,KAAKC,CAAG,EACV,IACT,CACA,aAAa,EAAO,CAClB,KAAK,UAAU,EACf,IAAK,IAAIuD,EAAI,EAAG+L,EAAKlM,EAAM,OAAQG,EAAI+L,EAAI,GAAK,EAC9C,KAAK,cAAcqwC,GAAU,UAAUv8C,EAAOG,CAAC,CAAC,EAElD,OAAO,IACT,CACA,uBAAuB,EAAW,CAChC,KAAK,UAAU,EACf,IAAK,IAAIA,EAAI,EAAG+L,EAAKtF,EAAU,MAAOzG,EAAI+L,EAAI,IAC5C,KAAK,cAAcqwC,GAAU,oBAAoB31C,EAAWzG,CAAC,CAAC,EAEhE,OAAO,IACT,CACA,cAAc,EAAQ,CACpB,KAAK,UAAU,EACf,IAAK,IAAIA,EAAI,EAAG+L,EAAKymC,EAAO,OAAQxyC,EAAI+L,EAAI,IAC1C,KAAK,cAAcymC,EAAOxyC,EAAE,EAE9B,OAAO,IACT,CACA,qBAAqB,EAAQ,EAAM,CACjC,IAAM4+D,EAAWxiB,GAAU,KAAKz1C,CAAI,CAAC,CAAC,eAAe,EAAG,EAGxD,OAFA,KAAK,IAAI,KAAKojC,CAAM,CAAC,CAAC,IAAI60B,CAAQ,EAClC,KAAK,IAAI,KAAK70B,CAAM,CAAC,CAAC,IAAI60B,CAAQ,EAC3B,IACT,CACA,cAAc,EAAQ,EAAU,GAAO,CAErC,OADA,KAAK,UAAU,EACR,KAAK,eAAe76D,EAAQ86D,CAAO,CAC5C,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,CACzC,CACA,KAAK,EAAK,CAGR,OAFA,KAAK,IAAI,KAAKC,EAAI,GAAG,EACrB,KAAK,IAAI,KAAKA,EAAI,GAAG,EACd,IACT,CACA,WAAY,CAGV,MAFA,MAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,IACvC,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,KAChC,IACT,CACA,SAAU,CACR,OAAO,KAAK,IAAI,EAAI,KAAK,IAAI,GAAK,KAAK,IAAI,EAAI,KAAK,IAAI,GAAK,KAAK,IAAI,EAAI,KAAK,IAAI,CACrF,CACA,UAAU,EAAQ,CAChB,OAAO,KAAK,QAAQ,EAAI3jE,EAAO,IAAI,EAAG,EAAG,CAAC,EAAIA,EAAO,WAAW,KAAK,IAAK,KAAK,GAAG,CAAC,CAAC,eAAe,EAAG,CACxG,CACA,QAAQ,EAAQ,CACd,OAAO,KAAK,QAAQ,EAAIA,EAAO,IAAI,EAAG,EAAG,CAAC,EAAIA,EAAO,WAAW,KAAK,IAAK,KAAK,GAAG,CACpF,CACA,cAAc,EAAO,CAGnB,OAFA,KAAK,IAAI,IAAIyI,CAAK,EAClB,KAAK,IAAI,IAAIA,CAAK,EACX,IACT,CACA,eAAe,EAAQ,CAGrB,OAFA,KAAK,IAAI,IAAIm7D,CAAM,EACnB,KAAK,IAAI,IAAIA,CAAM,EACZ,IACT,CACA,eAAe,EAAQ,CAGrB,OAFA,KAAK,IAAI,UAAU,CAACpJ,CAAM,EAC1B,KAAK,IAAI,UAAUA,CAAM,EAClB,IACT,CACA,eAAe,EAAQ,EAAU,GAAO,CACtC5xD,EAAO,kBAAkB,GAAO,EAAK,EACrC,IAAMsG,EAAWtG,EAAO,SACxB,GAAIsG,IAAa,IAAK,GAAG,CACvB,IAAMqgC,EAAoBrgC,EAAS,aAAa,UAAU,EAC1D,GAAIw0D,IAAY,IAAQn0B,IAAsB,IAAK,IAAK3mC,EAAO,kBAAoB,GACjF,IAAK,IAAI/D,EAAI,EAAGiH,EAAIyjC,EAAkB,MAAO1qC,EAAIiH,EAAG,IAC9ClD,EAAO,SAAW,GACpBA,EAAO,kBAAkB/D,EAAGo8C,EAAS,EAErCA,GAAU,oBAAoB1R,EAAmB1qC,CAAC,EAEpDo8C,GAAU,aAAar4C,EAAO,WAAW,EACzC,KAAK,cAAcq4C,EAAS,OAG1Br4C,EAAO,cAAgB,IAAK,IAM1BsG,EAAS,cAAgB,MAC3BA,EAAS,mBAAmB,EAE9BgyC,GAAO,KAAKhyC,EAAS,WAAW,IAR5BtG,EAAO,cAAgB,MACzBA,EAAO,mBAAmB,EAE5Bs4C,GAAO,KAAKt4C,EAAO,WAAW,GAOhCs4C,GAAO,aAAat4C,EAAO,WAAW,EACtC,KAAK,MAAMs4C,EAAM,CAErB,CACA,IAAMprB,EAAWltB,EAAO,SACxB,IAAK,IAAI/D,EAAI,EAAGiH,EAAIgqB,EAAS,OAAQjxB,EAAIiH,EAAG,IAC1C,KAAK,eAAegqB,EAASjxB,GAAI6+D,CAAO,EAE1C,OAAO,IACT,CACA,cAAc,EAAO,CACnB,OAAOj7D,EAAM,GAAK,KAAK,IAAI,GAAKA,EAAM,GAAK,KAAK,IAAI,GAAKA,EAAM,GAAK,KAAK,IAAI,GAAKA,EAAM,GAAK,KAAK,IAAI,GAAKA,EAAM,GAAK,KAAK,IAAI,GAAKA,EAAM,GAAK,KAAK,IAAI,CAC1J,CACA,YAAY,EAAK,CACf,OAAO,KAAK,IAAI,GAAKk7D,EAAI,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,CACtK,CACA,aAAa,EAAO,EAAQ,CAC1B,OAAO3jE,EAAO,KACXyI,EAAM,EAAI,KAAK,IAAI,IAAM,KAAK,IAAI,EAAI,KAAK,IAAI,IAC/CA,EAAM,EAAI,KAAK,IAAI,IAAM,KAAK,IAAI,EAAI,KAAK,IAAI,IAC/CA,EAAM,EAAI,KAAK,IAAI,IAAM,KAAK,IAAI,EAAI,KAAK,IAAI,EAClD,CACF,CACA,cAAc,EAAK,CACjB,OAAOk7D,EAAI,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,GAAKA,EAAI,IAAI,GAAK,KAAK,IAAI,CACtK,CACA,iBAAiB,EAAQ,CAEvB,OADA,KAAK,WAAWE,EAAO,OAAQ5iB,EAAS,EACjCA,GAAU,kBAAkB4iB,EAAO,MAAM,GAAKA,EAAO,OAASA,EAAO,MAC9E,CACA,gBAAgB,EAAO,CACrB,IAAIxiE,EAAKC,EAsBT,OArBI4T,EAAM,OAAO,EAAI,GACnB,EAAMA,EAAM,OAAO,EAAI,KAAK,IAAI,EAChC,EAAMA,EAAM,OAAO,EAAI,KAAK,IAAI,IAEhC,EAAMA,EAAM,OAAO,EAAI,KAAK,IAAI,EAChC,EAAMA,EAAM,OAAO,EAAI,KAAK,IAAI,GAE9BA,EAAM,OAAO,EAAI,GACnB,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,IAEjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,GAE/BA,EAAM,OAAO,EAAI,GACnB,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,IAEjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,EACjC,GAAOA,EAAM,OAAO,EAAI,KAAK,IAAI,GAE5B7T,GAAO,CAAC6T,EAAM,UAAY5T,GAAO,CAAC4T,EAAM,QACjD,CACA,mBAAmB,EAAU,CAC3B,GAAI,KAAK,QAAQ,EACf,MAAO,GAET,KAAK,UAAUusC,EAAO,EACtBC,GAAS,WAAW,KAAK,IAAKD,EAAO,EACrCN,GAAM,WAAW2iB,EAAS,EAAGriB,EAAO,EACpCL,GAAM,WAAW0iB,EAAS,EAAGriB,EAAO,EACpCJ,GAAM,WAAWyiB,EAAS,EAAGriB,EAAO,EACpCH,GAAI,WAAWF,GAAOD,EAAK,EAC3BI,GAAI,WAAWF,GAAOD,EAAK,EAC3BI,GAAI,WAAWL,GAAOE,EAAK,EAC3B,IAAI96C,EAAO,CACT,EACA,CAAC+6C,GAAI,EACLA,GAAI,EACJ,EACA,CAACC,GAAI,EACLA,GAAI,EACJ,EACA,CAACC,GAAI,EACLA,GAAI,EACJF,GAAI,EACJ,EACA,CAACA,GAAI,EACLC,GAAI,EACJ,EACA,CAACA,GAAI,EACLC,GAAI,EACJ,EACA,CAACA,GAAI,EACL,CAACF,GAAI,EACLA,GAAI,EACJ,EACA,CAACC,GAAI,EACLA,GAAI,EACJ,EACA,CAACC,GAAI,EACLA,GAAI,EACJ,CACF,EAUA,MATI,CAACn7C,GAAWE,EAAM46C,GAAOC,GAAOC,GAAOK,EAAQ,IAGnD,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC7B,CAACr7C,GAAWE,EAAM46C,GAAOC,GAAOC,GAAOK,EAAQ,GAC1C,IAETC,GAAgB,aAAaL,GAAKC,EAAG,EACrC,EAAO,CAACI,GAAgB,EAAGA,GAAgB,EAAGA,GAAgB,CAAC,EACxDt7C,GAAWE,EAAM46C,GAAOC,GAAOC,GAAOK,EAAQ,EACvD,CACA,WAAW,EAAO,EAAQ,CACxB,OAAO1hD,EAAO,KAAKyI,CAAK,CAAC,CAAC,MAAM,KAAK,IAAK,KAAK,GAAG,CACpD,CACA,gBAAgB,EAAO,CACrB,OAAO,KAAK,WAAWA,EAAOw4C,EAAS,CAAC,CAAC,WAAWx4C,CAAK,CAC3D,CACA,kBAAkB,EAAQ,CAOxB,OANI,KAAK,QAAQ,EACfzI,EAAO,UAAU,GAEjB,KAAK,UAAUA,EAAO,MAAM,EAC5B,EAAO,OAAS,KAAK,QAAQihD,EAAS,CAAC,CAAC,OAAO,EAAI,IAE9CjhD,CACT,CACA,UAAU,EAAK,CAIb,OAHA,KAAK,IAAI,IAAI2jE,EAAI,GAAG,EACpB,KAAK,IAAI,IAAIA,EAAI,GAAG,EAChB,KAAK,QAAQ,GAAG,KAAK,UAAU,EAC5B,IACT,CACA,MAAM,EAAK,CAGT,OAFA,KAAK,IAAI,IAAIA,EAAI,GAAG,EACpB,KAAK,IAAI,IAAIA,EAAI,GAAG,EACb,IACT,CACA,aAAa,EAAQ,CAWnB,OAVI,KAAK,QAAQ,IACjB3iB,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE9c,GAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa8c,CAAM,EACtE,KAAK,cAAc9c,EAAO,GACnB,IACT,CACA,UAAU,EAAQ,CAGhB,OAFA,KAAK,IAAI,IAAI5vC,CAAM,EACnB,KAAK,IAAI,IAAIA,CAAM,EACZ,IACT,CACA,OAAO,EAAK,CACV,OAAOuyD,EAAI,IAAI,OAAO,KAAK,GAAG,GAAKA,EAAI,IAAI,OAAO,KAAK,GAAG,CAC5D,CACF,EACI,GAAU,iBACI,IAAIr6D,kBACJ,IAAIA,kBACJ,IAAIA,kBACJ,IAAIA,kBACJ,IAAIA,kBACJ,IAAIA,kBACJ,IAAIA,kBACJ,IAAIA,CACtB,EACI,mBAA4B,IAAIA,EAChC,mBAAyB,IAAIy3C,GAC7B,mBAAwB,IAAIz3C,EAC5B,mBAAwB,IAAIA,EAC5B,mBAAwB,IAAIA,EAC5B,mBAAsB,IAAIA,EAC1B,mBAAsB,IAAIA,EAC1B,mBAAsB,IAAIA,EAC1B,mBAA0B,IAAIA,EAC9B,mBAA2B,IAAIA,EAC/B,mBAAkC,IAAIA,EACtC,mBAA4B,IAAIA,EAchC,mBAAyB,IAAIy3C,GAC7B,mBAAwB,IAAIz3C,EAC5B,mBAAwB,IAAIA,EAC5B,GAAS,KAAM,CACjB,YAAY,EAAS,IAAIA,EAAW,EAAS,GAAI,CAC/C,KAAK,SAAW,GAChB,KAAK,OAASslC,EACd,KAAK,OAAS20B,CAChB,CACA,IAAI,EAAQ,EAAQ,CAGlB,OAFA,KAAK,OAAO,KAAK30B,CAAM,EACvB,KAAK,OAAS20B,EACP,IACT,CACA,cAAc,EAAQ,EAAgB,CACpC,IAAM30B,EAAS,KAAK,OAChBm1B,IAAmB,IAAK,GAG1BniB,GAAO,cAAcvK,CAAM,CAAC,CAAC,UAAUzI,CAAM,EAF7CA,EAAO,KAAKm1B,CAAc,EAI5B,IAAIC,EAAc,EAClB,IAAK,IAAIn/D,EAAI,EAAG+L,EAAKymC,EAAO,OAAQxyC,EAAI+L,EAAI,IAC1C,EAAc,KAAK,IAAIozD,EAAap1B,EAAO,kBAAkByI,EAAOxyC,EAAE,CAAC,EAGzE,MADA,MAAK,OAAS,KAAK,KAAKm/D,CAAW,EAC5B,IACT,CACA,KAAK,EAAQ,CAGX,OAFA,KAAK,OAAO,KAAKH,EAAO,MAAM,EAC9B,KAAK,OAASA,EAAO,OACd,IACT,CACA,SAAU,CACR,OAAO,KAAK,OAAS,CACvB,CACA,WAAY,CAGV,OAFA,KAAK,OAAO,IAAI,EAAG,EAAG,CAAC,EACvB,KAAK,OAAS,GACP,IACT,CACA,cAAc,EAAO,CACnB,OAAOp7D,EAAM,kBAAkB,KAAK,MAAM,GAAK,KAAK,OAAS,KAAK,MACpE,CACA,gBAAgB,EAAO,CACrB,OAAOA,EAAM,WAAW,KAAK,MAAM,EAAI,KAAK,MAC9C,CACA,iBAAiB,EAAQ,CACvB,IAAMw7D,EAAY,KAAK,OAASJ,EAAO,OACvC,OAAOA,EAAO,OAAO,kBAAkB,KAAK,MAAM,GAAKI,EAAYA,CACrE,CACA,cAAc,EAAK,CACjB,OAAON,EAAI,iBAAiB,IAAI,CAClC,CACA,gBAAgB,EAAO,CACrB,OAAO,KAAK,IAAIzuD,EAAM,gBAAgB,KAAK,MAAM,CAAC,GAAK,KAAK,MAC9D,CACA,WAAW,EAAO,EAAQ,CACxB,IAAMgvD,EAAgB,KAAK,OAAO,kBAAkBz7D,CAAK,EAMzD,OALAzI,EAAO,KAAKyI,CAAK,EACby7D,EAAgB,KAAK,OAAS,KAAK,SACrClkE,EAAO,IAAI,KAAK,MAAM,CAAC,CAAC,UAAU,EAClCA,EAAO,eAAe,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,GAE7CA,CACT,CACA,eAAe,EAAQ,CAOrB,OANI,KAAK,QAAQ,GACfA,EAAO,UAAU,EACVA,IAETA,EAAO,IAAI,KAAK,OAAQ,KAAK,MAAM,EACnCA,EAAO,eAAe,KAAK,MAAM,EAC1BA,EACT,CACA,aAAa,EAAQ,CAGnB,OAFA,KAAK,OAAO,aAAa89D,CAAM,EAC/B,KAAK,QAAuBA,EAAO,kBAAkB,EAC9C,IACT,CACA,UAAU,EAAQ,CAEhB,OADA,KAAK,OAAO,IAAI1sD,CAAM,EACf,IACT,CACA,cAAc,EAAO,CACnB,GAAI,KAAK,QAAQ,EAGf,OAFA,KAAK,OAAO,KAAK3I,CAAK,EACtB,KAAK,OAAS,EACP,KAETo5C,GAAM,WAAWp5C,EAAO,KAAK,MAAM,EACnC,IAAM07D,EAAWtiB,GAAM,SAAS,EAChC,GAAIsiB,EAAW,KAAK,OAAS,KAAK,OAAQ,CACxC,IAAM5hE,EAAS,KAAK,KAAK4hE,CAAQ,EAC3BC,GAAS7hE,EAAS,KAAK,QAAU,GACvC,KAAK,OAAO,gBAAgBs/C,GAAOuiB,EAAQ7hE,CAAM,EACjD,KAAK,QAAU6hE,CACjB,CACA,OAAO,IACT,CACA,MAAM,EAAQ,CAeZ,OAdIP,EAAO,QAAQ,EACV,KAEL,KAAK,QAAQ,GACf,KAAK,KAAKA,CAAM,EACT,OAEL,KAAK,OAAO,OAAOA,EAAO,MAAM,IAAM,GACxC,KAAK,OAAS,KAAK,IAAI,KAAK,OAAQA,EAAO,MAAM,GAEjD/hB,GAAM,WAAW+hB,EAAO,OAAQ,KAAK,MAAM,CAAC,CAAC,UAAUA,EAAO,MAAM,EACpE,KAAK,cAAchiB,GAAM,KAAKgiB,EAAO,MAAM,CAAC,CAAC,IAAI/hB,EAAK,CAAC,EACvD,KAAK,cAAcD,GAAM,KAAKgiB,EAAO,MAAM,CAAC,CAAC,IAAI/hB,EAAK,CAAC,GAElD,KACT,CACA,OAAO,EAAQ,CACb,OAAO+hB,EAAO,OAAO,OAAO,KAAK,MAAM,GAAKA,EAAO,SAAW,KAAK,MACrE,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,CACzC,CACF,EACI,mBAA4B,IAAIv6D,EAChC,mBAA6B,IAAIA,EACjC,mBAA0B,IAAIA,EAC9B,mBAAwB,IAAIA,EAC5B,mBAAyB,IAAIA,EAC7B,mBAAyB,IAAIA,EAC7B,mBAA4B,IAAIA,EAChC,GAAM,KAAM,CACd,YAAY,EAAS,IAAIA,EAAW,EAAY,IAAIA,EAAQ,EAAG,EAAG,EAAE,EAAG,CACrE,KAAK,OAAS+6D,EACd,KAAK,UAAYC,CACnB,CACA,IAAI,EAAQ,EAAW,CAGrB,OAFA,KAAK,OAAO,KAAKD,CAAM,EACvB,KAAK,UAAU,KAAKC,CAAS,EACtB,IACT,CACA,KAAK,EAAK,CAGR,OAFA,KAAK,OAAO,KAAKj8D,EAAI,MAAM,EAC3B,KAAK,UAAU,KAAKA,EAAI,SAAS,EAC1B,IACT,CACA,GAAG,EAAG,EAAQ,CACZ,OAAOrI,EAAO,KAAK,KAAK,MAAM,CAAC,CAAC,gBAAgB,KAAK,UAAWkC,CAAC,CACnE,CACA,OAAO,EAAG,CAER,OADA,KAAK,UAAU,KAAK0c,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,UAAU,EAC3C,IACT,CACA,OAAO,EAAG,CAER,OADA,KAAK,OAAO,KAAK,KAAK,GAAG1c,EAAG8/C,EAAS,CAAC,EAC/B,IACT,CACA,oBAAoB,EAAO,EAAQ,CACjChiD,EAAO,WAAWyI,EAAO,KAAK,MAAM,EACpC,IAAM87D,EAAoBvkE,EAAO,IAAI,KAAK,SAAS,EAInD,OAHIukE,EAAoB,EACfvkE,EAAO,KAAK,KAAK,MAAM,EAEzBA,EAAO,KAAK,KAAK,MAAM,CAAC,CAAC,gBAAgB,KAAK,UAAWukE,CAAiB,CACnF,CACA,gBAAgB,EAAO,CACrB,OAAO,KAAK,KAAK,KAAK,kBAAkB97D,CAAK,CAAC,CAChD,CACA,kBAAkB,EAAO,CACvB,IAAM87D,EAAoBviB,GAAU,WAAWv5C,EAAO,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,SAAS,EAKrF,OAJI87D,EAAoB,EACf,KAAK,OAAO,kBAAkB97D,CAAK,GAE5Cu5C,GAAU,KAAK,KAAK,MAAM,CAAC,CAAC,gBAAgB,KAAK,UAAWuiB,CAAiB,EACtEviB,GAAU,kBAAkBv5C,CAAK,EAC1C,CACA,oBAAoB,EAAI,EAAI,EAAoB,EAAwB,CACtEw5C,GAAW,KAAKr7C,CAAE,CAAC,CAAC,IAAIE,CAAE,CAAC,CAAC,eAAe,EAAG,EAC9Co7C,GAAQ,KAAKp7C,CAAE,CAAC,CAAC,IAAIF,CAAE,CAAC,CAAC,UAAU,EACnCu7C,GAAM,KAAK,KAAK,MAAM,CAAC,CAAC,IAAIF,EAAU,EACtC,IAAMuiB,EAAY59D,EAAG,WAAWE,CAAE,EAAI,GAChC29D,EAAM,CAAC,KAAK,UAAU,IAAIviB,EAAO,EACjCwiB,EAAKviB,GAAM,IAAI,KAAK,SAAS,EAC7BxgD,EAAK,CAACwgD,GAAM,IAAID,EAAO,EACvB,EAAIC,GAAM,SAAS,EACnBob,EAAM,KAAK,IAAI,EAAIkH,EAAMA,CAAG,EAC9BE,EAAI7D,EAAI8D,EAASC,EACrB,GAAItH,EAAM,EAAG,CAIX,GAHA,EAAKkH,EAAM9iE,EAAK+iE,EAChB,EAAKD,EAAMC,EAAK/iE,EAChB,EAAS6iE,EAAYjH,EACjBoH,GAAM,EAAG,CACX,GAAI7D,GAAM,CAAC+D,EAAQ,CACjB,GAAI/D,GAAM+D,EAAQ,CAChB,IAAMC,EAAS,EAAIvH,EACnB,GAAMuH,EACN,GAAMA,EACN,EAAUH,GAAMA,EAAKF,EAAM3D,EAAK,EAAI4D,GAAM5D,GAAM2D,EAAME,EAAK7D,EAAK,EAAIn/D,GAAM,CAC5E,KACE,GAAK6iE,EACL,EAAK,KAAK,IAAI,EAAG,EAAEC,EAAM3D,EAAK4D,EAAG,EACjC,EAAU,CAACC,EAAKA,EAAK7D,GAAMA,EAAK,EAAIn/D,GAAM,CAE9C,KACE,GAAK,CAAC6iE,EACN,EAAK,KAAK,IAAI,EAAG,EAAEC,EAAM3D,EAAK4D,EAAG,EACjC,EAAU,CAACC,EAAKA,EAAK7D,GAAMA,EAAK,EAAIn/D,GAAM,CAE9C,MACMm/D,GAAM,CAAC+D,GACT,EAAK,KAAK,IAAI,EAAG,EAAE,CAACJ,EAAMD,EAAYE,EAAG,EACzC,EAAKC,EAAK,EAAI,CAACH,EAAY,KAAK,IAAI,KAAK,IAAI,CAACA,EAAW,CAAC7iE,CAAE,EAAG6iE,CAAS,EACxE,EAAU,CAACG,EAAKA,EAAK7D,GAAMA,EAAK,EAAIn/D,GAAM,GACjCm/D,GAAM+D,GACf,EAAK,EACL,EAAK,KAAK,IAAI,KAAK,IAAI,CAACL,EAAW,CAAC7iE,CAAE,EAAG6iE,CAAS,EAClD,EAAU1D,GAAMA,EAAK,EAAIn/D,GAAM,IAE/B,EAAK,KAAK,IAAI,EAAG,EAAE8iE,EAAMD,EAAYE,EAAG,EACxC,EAAKC,EAAK,EAAIH,EAAY,KAAK,IAAI,KAAK,IAAI,CAACA,EAAW,CAAC7iE,CAAE,EAAG6iE,CAAS,EACvE,EAAU,CAACG,EAAKA,EAAK7D,GAAMA,EAAK,EAAIn/D,GAAM,EAGhD,KACE,GAAK8iE,EAAM,EAAI,CAACD,EAAYA,EAC5B,EAAK,KAAK,IAAI,EAAG,EAAEC,EAAM3D,EAAK4D,EAAG,EACjC,EAAU,CAACC,EAAKA,EAAK7D,GAAMA,EAAK,EAAIn/D,GAAM,EAQ5C,OANIojE,GACFA,EAAmB,KAAK,KAAK,MAAM,CAAC,CAAC,gBAAgB,KAAK,UAAWJ,CAAE,EAErEK,GACFA,EAAuB,KAAK/iB,EAAU,CAAC,CAAC,gBAAgBC,GAAS4e,CAAE,EAE9D8D,CACT,CACA,gBAAgB,EAAQ,EAAQ,CAC9B5iB,GAAU,WAAW6hB,EAAO,OAAQ,KAAK,MAAM,EAC/C,IAAMoB,EAAMjjB,GAAU,IAAI,KAAK,SAAS,EAClC/gD,EAAK+gD,GAAU,IAAIA,EAAS,EAAIijB,EAAMA,EACtCC,EAAUrB,EAAO,OAASA,EAAO,OACvC,GAAI5iE,EAAKikE,EAAS,OAAO,KACzB,IAAMC,EAAM,KAAK,KAAKD,EAAUjkE,CAAE,EAC5BwvC,EAAKw0B,EAAME,EACXx0B,EAAKs0B,EAAME,EAGjB,OAFIx0B,EAAK,EAAU,KACfF,EAAK,EAAU,KAAK,GAAGE,EAAI3wC,CAAM,EAC9B,KAAK,GAAGywC,EAAIzwC,CAAM,CAC3B,CACA,iBAAiB,EAAQ,CACvB,OAAO,KAAK,kBAAkB6jE,EAAO,MAAM,GAAKA,EAAO,OAASA,EAAO,MACzE,CACA,gBAAgB,EAAO,CACrB,IAAMlJ,EAAczlD,EAAM,OAAO,IAAI,KAAK,SAAS,EACnD,GAAIylD,IAAgB,EAIlB,OAHIzlD,EAAM,gBAAgB,KAAK,MAAM,IAAM,EAClC,EAEF,KAET,IAAMhT,EAAI,EAAE,KAAK,OAAO,IAAIgT,EAAM,MAAM,EAAIA,EAAM,UAAYylD,EAC9D,OAAOz4D,GAAK,EAAIA,EAAI,IACtB,CACA,eAAe,EAAO,EAAQ,CAC5B,IAAMA,EAAI,KAAK,gBAAgBgT,CAAK,EAIpC,OAHIhT,IAAM,KACD,KAEF,KAAK,GAAGA,EAAGlC,CAAM,CAC1B,CACA,gBAAgB,EAAO,CACrB,IAAMolE,EAAclwD,EAAM,gBAAgB,KAAK,MAAM,EAQrD,OAPIkwD,IAAgB,GAGAlwD,EAAM,OAAO,IAAI,KAAK,SAC5B,EAAIkwD,EAAc,CAIlC,CACA,aAAa,EAAK,EAAQ,CACxB,IAAIC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAC/BC,EAAU,EAAI,KAAK,UAAU,EAAGC,EAAU,EAAI,KAAK,UAAU,EAAGC,EAAU,EAAI,KAAK,UAAU,EAC7FxB,EAAS,KAAK,OA6BpB,OA5BIsB,GAAW,GACb,GAAQhC,EAAI,IAAI,EAAIU,EAAO,GAAKsB,EAChC,GAAQhC,EAAI,IAAI,EAAIU,EAAO,GAAKsB,IAEhC,GAAQhC,EAAI,IAAI,EAAIU,EAAO,GAAKsB,EAChC,GAAQhC,EAAI,IAAI,EAAIU,EAAO,GAAKsB,GAE9BC,GAAW,GACb,GAASjC,EAAI,IAAI,EAAIU,EAAO,GAAKuB,EACjC,GAASjC,EAAI,IAAI,EAAIU,EAAO,GAAKuB,IAEjC,GAASjC,EAAI,IAAI,EAAIU,EAAO,GAAKuB,EACjC,GAASjC,EAAI,IAAI,EAAIU,EAAO,GAAKuB,GAE/BP,EAAOG,GAASD,EAAQD,KACxBC,EAAQF,GAAQ,MAAMA,CAAI,KAAG,EAAOE,IACpCC,EAAQF,GAAQ,MAAMA,CAAI,KAAG,EAAOE,GACpCK,GAAW,GACb,GAASlC,EAAI,IAAI,EAAIU,EAAO,GAAKwB,EACjC,GAASlC,EAAI,IAAI,EAAIU,EAAO,GAAKwB,IAEjC,GAASlC,EAAI,IAAI,EAAIU,EAAO,GAAKwB,EACjC,GAASlC,EAAI,IAAI,EAAIU,EAAO,GAAKwB,GAE/BR,EAAOK,GAASD,EAAQH,MACxBG,EAAQJ,GAAQA,IAASA,KAAM,EAAOI,IACtCC,EAAQJ,GAAQA,IAASA,KAAM,EAAOI,GACtCJ,EAAO,GAAU,KACd,KAAK,GAAGD,GAAQ,EAAIA,EAAOC,EAAMtlE,CAAM,CAChD,CACA,cAAc,EAAK,CACjB,OAAO,KAAK,aAAa2jE,EAAK3hB,EAAS,IAAM,IAC/C,CACA,kBAAkB,EAAG,EAAG,EAAG,EAAiB,EAAQ,CAClDI,GAAO,WAAWtiD,EAAGC,CAAC,EACtBsiD,GAAO,WAAWp+C,EAAGlE,CAAC,EACtBuiD,GAAU,aAAaF,GAAQC,EAAM,EACrC,IAAIyjB,EAAM,KAAK,UAAU,IAAIxjB,EAAS,EAClCyjB,EACJ,GAAID,EAAM,EAAG,CACX,GAAIE,EAAiB,OAAO,KAC5B,EAAQ,CACV,MAAO,GAAIF,EAAM,EACf,EAAQ,GACR,EAAM,CAACA,OAEP,OAAO,KAET3jB,GAAM,WAAW,KAAK,OAAQpiD,CAAC,EAC/B,IAAMkmE,EAASF,EAAQ,KAAK,UAAU,IAAI1jB,GAAO,aAAaF,GAAOE,EAAM,CAAC,EAC5E,GAAI4jB,EAAS,EACX,OAAO,KAET,IAAMC,EAASH,EAAQ,KAAK,UAAU,IAAI3jB,GAAO,MAAMD,EAAK,CAAC,EAI7D,GAHI+jB,EAAS,GAGTD,EAASC,EAASJ,EACpB,OAAO,KAET,IAAMK,EAAM,CAACJ,EAAQ5jB,GAAM,IAAIG,EAAS,EAIxC,OAHI6jB,EAAM,EACD,KAEF,KAAK,GAAGA,EAAML,EAAK9lE,CAAM,CAClC,CACA,aAAa,EAAS,CAGpB,OAFA,KAAK,OAAO,aAAa4wB,CAAO,EAChC,KAAK,UAAU,mBAAmBA,CAAO,EAClC,IACT,CACA,OAAO,EAAK,CACV,OAAOvoB,EAAI,OAAO,OAAO,KAAK,MAAM,GAAKA,EAAI,UAAU,OAAO,KAAK,SAAS,CAC9E,CACA,OAAQ,CACN,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,CACzC,CACF,EACI,GAAU,MAAM+9D,CAAS,CAC3B,YAAY,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAC1F,EAAS,UAAU,UAAY,GAC/B,KAAK,SAAW,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACInL,IAAQ,IAAK,IACf,KAAK,IAAIA,EAAKC,EAAKC,EAAKkL,EAAKjL,EAAKC,EAAKC,EAAKgL,EAAK/K,EAAKC,EAAKC,EAAK8K,EAAKC,EAAKC,EAAKC,EAAKC,CAAG,CAE3F,CACA,IAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAClF,IAAMvtE,EAAK,KAAK,SAiBhB,MAhBA,GAAG,GAAK6hE,EACR,EAAG,GAAKC,EACR,EAAG,GAAKC,EACR,EAAG,IAAMkL,EACT,EAAG,GAAKjL,EACR,EAAG,GAAKC,EACR,EAAG,GAAKC,EACR,EAAG,IAAMgL,EACT,EAAG,GAAK/K,EACR,EAAG,GAAKC,EACR,EAAG,IAAMC,EACT,EAAG,IAAM8K,EACT,EAAG,GAAKC,EACR,EAAG,GAAKC,EACR,EAAG,IAAMC,EACT,EAAG,IAAMC,EACF,IACT,CACA,UAAW,CAmBT,OAlBA,KAAK,IACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,OAAQ,CACN,OAAO,IAAIP,EAAS,CAAC,CAAC,UAAU,KAAK,QAAQ,CAC/C,CACA,KAAK,EAAG,CACN,IAAMhtE,EAAK,KAAK,SACVsiE,EAAKj6D,EAAE,SAiBb,MAhBA,GAAG,GAAKi6D,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKA,EAAG,GACX,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACL,IACT,CACA,aAAa,EAAG,CACd,IAAMtiE,EAAK,KAAK,SAAUsiE,EAAKj6D,EAAE,SAIjC,MAHA,GAAG,IAAMi6D,EAAG,IACZ,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMA,EAAG,IACL,IACT,CACA,eAAe,EAAG,CAChB,IAAMA,EAAKj6D,EAAE,SAmBb,OAlBA,KAAK,IACHi6D,EAAG,GACHA,EAAG,GACHA,EAAG,GACH,EACAA,EAAG,GACHA,EAAG,GACHA,EAAG,GACH,EACAA,EAAG,GACHA,EAAG,GACHA,EAAG,GACH,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,aAAa,EAAO,EAAO,EAAO,CAIhC,OAHAC,EAAM,oBAAoB,KAAM,CAAC,EACjCC,EAAM,oBAAoB,KAAM,CAAC,EACjCC,EAAM,oBAAoB,KAAM,CAAC,EAC1B,IACT,CACA,UAAU,EAAO,EAAO,EAAO,CAmB7B,OAlBA,KAAK,IACHF,EAAM,EACNC,EAAM,EACNC,EAAM,EACN,EACAF,EAAM,EACNC,EAAM,EACNC,EAAM,EACN,EACAF,EAAM,EACNC,EAAM,EACNC,EAAM,EACN,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,gBAAgB,EAAG,CACjB,IAAMziE,EAAK,KAAK,SACVsiE,EAAKj6D,EAAE,SACPmlE,EAAS,EAAIpkB,GAAM,oBAAoB/gD,EAAG,CAAC,CAAC,CAAC,OAAO,EACpDolE,EAAS,EAAIrkB,GAAM,oBAAoB/gD,EAAG,CAAC,CAAC,CAAC,OAAO,EACpDqlE,EAAS,EAAItkB,GAAM,oBAAoB/gD,EAAG,CAAC,CAAC,CAAC,OAAO,EAiB1D,MAhBA,GAAG,GAAKi6D,EAAG,GAAKkL,EAChB,EAAG,GAAKlL,EAAG,GAAKkL,EAChB,EAAG,GAAKlL,EAAG,GAAKkL,EAChB,EAAG,GAAK,EACR,EAAG,GAAKlL,EAAG,GAAKmL,EAChB,EAAG,GAAKnL,EAAG,GAAKmL,EAChB,EAAG,GAAKnL,EAAG,GAAKmL,EAChB,EAAG,GAAK,EACR,EAAG,GAAKnL,EAAG,GAAKoL,EAChB,EAAG,GAAKpL,EAAG,GAAKoL,EAChB,EAAG,IAAMpL,EAAG,IAAMoL,EAClB,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACF,IACT,CACA,sBAAsB,EAAO,CAC3B,IAAM1tE,EAAK,KAAK,SACVsH,EAAImgE,EAAM,EAAG7+D,EAAI6+D,EAAM,EAAGvxC,EAAIuxC,EAAM,EACpC,EAAI,KAAK,IAAIngE,CAAC,EAAGZ,EAAI,KAAK,IAAIY,CAAC,EAC/BuD,EAAI,KAAK,IAAIjC,CAAC,EAAGk7D,EAAI,KAAK,IAAIl7D,CAAC,EAC/BwF,EAAI,KAAK,IAAI8nB,CAAC,EAAGxnB,EAAI,KAAK,IAAIwnB,CAAC,EACrC,GAAIuxC,EAAM,QAAU,MAAO,CACzB,IAAM/E,EAAK,EAAIt0D,EAAGu/D,EAAK,EAAIj/D,EAAGi0D,EAAKj8D,EAAI0H,EAAGw/D,EAAKlnE,EAAIgI,EACnD,EAAG,GAAK7D,EAAIuD,EACZ,EAAG,GAAK,CAACvD,EAAI6D,EACb,EAAG,GAAKo1D,EACR,EAAG,GAAK6J,EAAKhL,EAAKmB,EAClB,EAAG,GAAKpB,EAAKkL,EAAK9J,EAClB,EAAG,GAAK,CAACp9D,EAAImE,EACb,EAAG,GAAK+iE,EAAKlL,EAAKoB,EAClB,EAAG,GAAKnB,EAAKgL,EAAK7J,EAClB,EAAG,IAAM,EAAIj5D,CACf,MAAO,GAAI48D,EAAM,QAAU,MAAO,CAChC,IAAMoG,EAAKhjE,EAAIuD,EAAG0/D,EAAKjjE,EAAI6D,EAAGq/D,EAAKjK,EAAI11D,EAAG4/D,EAAKlK,EAAIp1D,EACnD,EAAG,GAAKm/D,EAAKG,EAAKtnE,EAClB,EAAG,GAAKqnE,EAAKrnE,EAAIonE,EACjB,EAAG,GAAK,EAAIhK,EACZ,EAAG,GAAK,EAAIp1D,EACZ,EAAG,GAAK,EAAIN,EACZ,EAAG,GAAK,CAAC1H,EACT,EAAG,GAAKonE,EAAKpnE,EAAIqnE,EACjB,EAAG,GAAKC,EAAKH,EAAKnnE,EAClB,EAAG,IAAM,EAAImE,CACf,MAAO,GAAI48D,EAAM,QAAU,MAAO,CAChC,IAAMoG,EAAKhjE,EAAIuD,EAAG0/D,EAAKjjE,EAAI6D,EAAGq/D,EAAKjK,EAAI11D,EAAG4/D,EAAKlK,EAAIp1D,EACnD,EAAG,GAAKm/D,EAAKG,EAAKtnE,EAClB,EAAG,GAAK,CAAC,EAAIgI,EACb,EAAG,GAAKq/D,EAAKD,EAAKpnE,EAClB,EAAG,GAAKonE,EAAKC,EAAKrnE,EAClB,EAAG,GAAK,EAAI0H,EACZ,EAAG,GAAK4/D,EAAKH,EAAKnnE,EAClB,EAAG,GAAK,CAAC,EAAIo9D,EACb,EAAG,GAAKp9D,EACR,EAAG,IAAM,EAAImE,CACf,MAAO,GAAI48D,EAAM,QAAU,MAAO,CAChC,IAAM/E,EAAK,EAAIt0D,EAAGu/D,EAAK,EAAIj/D,EAAGi0D,EAAKj8D,EAAI0H,EAAGw/D,EAAKlnE,EAAIgI,EACnD,EAAG,GAAK7D,EAAIuD,EACZ,EAAG,GAAKu0D,EAAKmB,EAAI6J,EACjB,EAAG,GAAKjL,EAAKoB,EAAI8J,EACjB,EAAG,GAAK/iE,EAAI6D,EACZ,EAAG,GAAKk/D,EAAK9J,EAAIpB,EACjB,EAAG,GAAKiL,EAAK7J,EAAInB,EACjB,EAAG,GAAK,CAACmB,EACT,EAAG,GAAKp9D,EAAImE,EACZ,EAAG,IAAM,EAAIA,CACf,MAAO,GAAI48D,EAAM,QAAU,MAAO,CAChC,IAAMwG,EAAK,EAAIpjE,EAAGqjE,EAAK,EAAIpK,EAAGqK,EAAKznE,EAAImE,EAAGujE,EAAK1nE,EAAIo9D,EACnD,EAAG,GAAKj5D,EAAIuD,EACZ,EAAG,GAAKggE,EAAKH,EAAKv/D,EAClB,EAAG,GAAKy/D,EAAKz/D,EAAIw/D,EACjB,EAAG,GAAKx/D,EACR,EAAG,GAAK,EAAIN,EACZ,EAAG,GAAK,CAAC1H,EAAI0H,EACb,EAAG,GAAK,CAAC01D,EAAI11D,EACb,EAAG,GAAK8/D,EAAKx/D,EAAIy/D,EACjB,EAAG,IAAMF,EAAKG,EAAK1/D,CACrB,MAAO,GAAI+4D,EAAM,QAAU,MAAO,CAChC,IAAMwG,EAAK,EAAIpjE,EAAGqjE,EAAK,EAAIpK,EAAGqK,EAAKznE,EAAImE,EAAGujE,EAAK1nE,EAAIo9D,EACnD,EAAG,GAAKj5D,EAAIuD,EACZ,EAAG,GAAK,CAACM,EACT,EAAG,GAAKo1D,EAAI11D,EACZ,EAAG,GAAK6/D,EAAKv/D,EAAI0/D,EACjB,EAAG,GAAK,EAAIhgE,EACZ,EAAG,GAAK8/D,EAAKx/D,EAAIy/D,EACjB,EAAG,GAAKA,EAAKz/D,EAAIw/D,EACjB,EAAG,GAAKxnE,EAAI0H,EACZ,EAAG,IAAMggE,EAAK1/D,EAAIu/D,CACpB,CAQA,MAPA,GAAG,GAAK,EACR,EAAG,GAAK,EACR,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACT,EAAG,IAAM,EACF,IACT,CACA,2BAA2B,EAAG,CAC5B,OAAO,KAAK,QAAQ3kB,GAAOl+C,EAAGm+C,EAAI,CACpC,CACA,OAAO,EAAK,EAAQ,EAAI,CACtB,IAAMvpD,EAAK,KAAK,SA2BhB,OA1BA0pD,GAAG,WAAW2kB,EAAKznE,CAAM,EACrB8iD,GAAG,SAAS,IAAM,IACpB,GAAG,EAAI,GAETA,GAAG,UAAU,EACbF,GAAG,aAAa8kB,EAAI5kB,EAAE,EAClBF,GAAG,SAAS,IAAM,IAChB,KAAK,IAAI8kB,EAAG,CAAC,IAAM,EACrB,GAAG,GAAK,KAER,GAAG,GAAK,KAEV5kB,GAAG,UAAU,EACbF,GAAG,aAAa8kB,EAAI5kB,EAAE,GAExBF,GAAG,UAAU,EACbC,GAAG,aAAaC,GAAIF,EAAE,EACtB,EAAG,GAAKA,GAAG,EACX,EAAG,GAAKC,GAAG,EACX,EAAG,GAAKC,GAAG,EACX,EAAG,GAAKF,GAAG,EACX,EAAG,GAAKC,GAAG,EACX,EAAG,GAAKC,GAAG,EACX,EAAG,GAAKF,GAAG,EACX,EAAG,GAAKC,GAAG,EACX,EAAG,IAAMC,GAAG,EACL,IACT,CACA,SAAS,EAAG,CACV,OAAO,KAAK,iBAAiB,KAAMrhD,CAAC,CACtC,CACA,YAAY,EAAG,CACb,OAAO,KAAK,iBAAiBA,EAAG,IAAI,CACtC,CACA,iBAAiB,EAAG,EAAG,CACrB,IAAMq6D,EAAK/7D,EAAE,SACPg8D,EAAKj8D,EAAE,SACP1G,EAAK,KAAK,SACV4iE,EAAMF,EAAG,GAAIG,EAAMH,EAAG,GAAII,EAAMJ,EAAG,GAAI6L,EAAM7L,EAAG,IAChDK,EAAML,EAAG,GAAIM,EAAMN,EAAG,GAAIO,EAAMP,EAAG,GAAI8L,EAAM9L,EAAG,IAChDQ,EAAMR,EAAG,GAAIS,EAAMT,EAAG,GAAIU,EAAMV,EAAG,IAAK+L,EAAM/L,EAAG,IACjDgM,EAAMhM,EAAG,GAAIiM,EAAMjM,EAAG,GAAIkM,EAAMlM,EAAG,IAAKmM,EAAMnM,EAAG,IACjDW,EAAMV,EAAG,GAAIW,EAAMX,EAAG,GAAIY,EAAMZ,EAAG,GAAImM,EAAMnM,EAAG,IAChDa,EAAMb,EAAG,GAAIc,EAAMd,EAAG,GAAIe,EAAMf,EAAG,GAAIoM,EAAMpM,EAAG,IAChDgB,EAAMhB,EAAG,GAAIiB,EAAMjB,EAAG,GAAIkB,EAAMlB,EAAG,IAAKqM,EAAMrM,EAAG,IACjDsM,EAAMtM,EAAG,GAAIuM,GAAMvM,EAAG,GAAIwM,GAAMxM,EAAG,IAAKyM,GAAMzM,EAAG,IAiBvD,MAhBA,GAAG,GAAKC,EAAMS,EAAMR,EAAMW,EAAMV,EAAMa,EAAM4K,EAAMU,EAClD,EAAG,GAAKrM,EAAMU,EAAMT,EAAMY,EAAMX,EAAMc,EAAM2K,EAAMW,GAClD,EAAG,GAAKtM,EAAMW,EAAMV,EAAMa,EAAMZ,EAAMe,EAAM0K,EAAMY,GAClD,EAAG,IAAMvM,EAAMkM,EAAMjM,EAAMkM,EAAMjM,EAAMkM,EAAMT,EAAMa,GACnD,EAAG,GAAKrM,EAAMM,EAAML,EAAMQ,EAAMP,EAAMU,EAAM6K,EAAMS,EAClD,EAAG,GAAKlM,EAAMO,EAAMN,EAAMS,EAAMR,EAAMW,EAAM4K,EAAMU,GAClD,EAAG,GAAKnM,EAAMQ,EAAMP,EAAMU,EAAMT,EAAMY,EAAM2K,EAAMW,GAClD,EAAG,IAAMpM,EAAM+L,EAAM9L,EAAM+L,EAAM9L,EAAM+L,EAAMR,EAAMY,GACnD,EAAG,GAAKlM,EAAMG,EAAMF,EAAMK,EAAMJ,EAAMO,EAAM8K,EAAMQ,EAClD,EAAG,GAAK/L,EAAMI,EAAMH,EAAMM,EAAML,EAAMQ,EAAM6K,EAAMS,GAClD,EAAG,IAAMhM,EAAMK,EAAMJ,EAAMO,EAAMN,EAAMS,EAAM4K,EAAMU,GACnD,EAAG,IAAMjM,EAAM4L,EAAM3L,EAAM4L,EAAM3L,EAAM4L,EAAMP,EAAMW,GACnD,EAAG,GAAKV,EAAMrL,EAAMsL,EAAMnL,EAAMoL,EAAMjL,EAAMkL,EAAMI,EAClD,EAAG,GAAKP,EAAMpL,EAAMqL,EAAMlL,EAAMmL,EAAMhL,EAAMiL,EAAMK,GAClD,EAAG,IAAMR,EAAMnL,EAAMoL,EAAMjL,EAAMkL,EAAM/K,EAAMgL,EAAMM,GACnD,EAAG,IAAMT,EAAMI,EAAMH,EAAMI,EAAMH,EAAMI,EAAMH,EAAMO,GAC5C,IACT,CACA,eAAe,EAAG,CAChB,IAAMpvE,EAAK,KAAK,SAiBhB,MAhBA,GAAG,IAAM6J,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,KAAOA,EACV,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,KAAOA,EACV,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,KAAOA,EACV,EAAG,KAAOA,EACV,EAAG,IAAMA,EACT,EAAG,IAAMA,EACT,EAAG,KAAOA,EACV,EAAG,KAAOA,EACH,IACT,CACA,aAAc,CACZ,IAAM7J,EAAK,KAAK,SACV6hE,EAAM7hE,EAAG,GAAI8hE,EAAM9hE,EAAG,GAAI+hE,EAAM/hE,EAAG,GAAIitE,EAAMjtE,EAAG,IAChDgiE,EAAMhiE,EAAG,GAAIiiE,EAAMjiE,EAAG,GAAIkiE,EAAMliE,EAAG,GAAIktE,EAAMltE,EAAG,IAChDmiE,EAAMniE,EAAG,GAAIoiE,EAAMpiE,EAAG,GAAIqiE,EAAMriE,EAAG,IAAKmtE,EAAMntE,EAAG,IACjDotE,EAAMptE,EAAG,GAAIqtE,EAAMrtE,EAAG,GAAIstE,EAAMttE,EAAG,IAAKutE,EAAMvtE,EAAG,IACvD,OAAOotE,GAAO,CAACH,EAAM/K,EAAME,EAAML,EAAMmL,EAAM9K,EAAM6K,EAAMhL,EAAMI,EAAMP,EAAMoL,EAAM7K,EAAMN,EAAME,EAAMkL,EAAMrL,EAAMI,EAAMiL,GAAOE,GAAO,CAACxL,EAAMK,EAAMiL,EAAMtL,EAAMqL,EAAM7K,EAAM4K,EAAMjL,EAAMK,EAAMN,EAAMC,EAAMmL,EAAMpL,EAAMmL,EAAM/K,EAAM8K,EAAM/K,EAAMC,GAAOmL,GAAO,CAACzL,EAAMqL,EAAM9K,EAAMP,EAAMI,EAAMkL,EAAMF,EAAMjL,EAAMI,EAAMN,EAAME,EAAMmL,EAAMF,EAAMhL,EAAME,EAAML,EAAMoL,EAAM/K,GAAOoL,GAAO,CAACxL,EAAME,EAAME,EAAMN,EAAMK,EAAME,EAAMP,EAAMI,EAAMI,EAAMN,EAAMC,EAAMI,EAAMN,EAAME,EAAMK,EAAMP,EAAMI,EAAMC,EACtd,CACA,WAAY,CACV,IAAMniE,EAAK,KAAK,SACZiR,EAmBJ,MAlBA,GAAOjR,EAAG,GACV,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKiR,EACR,EAAOjR,EAAG,GACV,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKiR,EACR,EAAOjR,EAAG,GACV,EAAG,GAAKA,EAAG,GACX,EAAG,GAAKiR,EACR,EAAOjR,EAAG,GACV,EAAG,GAAKA,EAAG,IACX,EAAG,IAAMiR,EACT,EAAOjR,EAAG,GACV,EAAG,GAAKA,EAAG,IACX,EAAG,IAAMiR,EACT,EAAOjR,EAAG,IACV,EAAG,IAAMA,EAAG,IACZ,EAAG,IAAMiR,EACF,IACT,CACA,YAAY,EAAG,EAAG,EAAG,CACnB,IAAMjR,EAAK,KAAK,SAUhB,OATIsH,EAAE,WACJ,EAAG,IAAMA,EAAE,EACX,EAAG,IAAMA,EAAE,EACX,EAAG,IAAMA,EAAE,IAEX,EAAG,IAAMA,EACT,EAAG,IAAMsB,EACT,EAAG,IAAMstB,GAEJ,IACT,CACA,QAAS,CACP,IAAMl2B,EAAK,KAAK,SAAU6hE,EAAM7hE,EAAG,GAAIgiE,EAAMhiE,EAAG,GAAImiE,EAAMniE,EAAG,GAAIotE,EAAMptE,EAAG,GAAI8hE,EAAM9hE,EAAG,GAAIiiE,EAAMjiE,EAAG,GAAIoiE,EAAMpiE,EAAG,GAAIqtE,EAAMrtE,EAAG,GAAI+hE,EAAM/hE,EAAG,GAAIkiE,EAAMliE,EAAG,GAAIqiE,EAAMriE,EAAG,IAAKstE,EAAMttE,EAAG,IAAKitE,EAAMjtE,EAAG,IAAKktE,EAAMltE,EAAG,IAAKmtE,EAAMntE,EAAG,IAAKutE,EAAMvtE,EAAG,IAAKgkE,EAAM9B,EAAMiL,EAAME,EAAMH,EAAM7K,EAAMgL,EAAMH,EAAM9K,EAAMkL,EAAMrL,EAAMkL,EAAMG,EAAMpL,EAAME,EAAMmL,EAAMtL,EAAMI,EAAMkL,EAAKtJ,EAAMgJ,EAAM5K,EAAMgL,EAAMtL,EAAMoL,EAAME,EAAMJ,EAAM7K,EAAMkL,EAAMxL,EAAMqL,EAAMG,EAAMvL,EAAMK,EAAMmL,EAAMzL,EAAMO,EAAMkL,EAAKrJ,EAAMnC,EAAMmL,EAAMG,EAAMJ,EAAM/K,EAAMmL,EAAMJ,EAAMhL,EAAMqL,EAAMxL,EAAMoL,EAAMI,EAAMvL,EAAME,EAAMsL,EAAMzL,EAAMI,EAAMqL,EAAK8B,EAAMpC,EAAM/K,EAAME,EAAML,EAAMmL,EAAM9K,EAAM6K,EAAMhL,EAAMI,EAAMP,EAAMoL,EAAM7K,EAAMN,EAAME,EAAMkL,EAAMrL,EAAMI,EAAMiL,EACzqBhJ,EAAMtC,EAAMmC,EAAMhC,EAAMiC,EAAM9B,EAAM+B,EAAMkJ,EAAMiC,EACtD,GAAIlL,IAAQ,EAAG,OAAO,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC7E,IAAMC,EAAS,EAAID,EAiBnB,MAhBA,GAAG,GAAKH,EAAMI,EACd,EAAG,IAAM8I,EAAM7K,EAAM+K,EAAMlL,EAAMiL,EAAMC,EAAMF,EAAM/K,EAAMmL,EAAMtL,EAAMmL,EAAMG,EAAMpL,EAAMC,EAAMoL,EAAMvL,EAAMK,EAAMkL,GAAOnJ,EACtH,EAAG,IAAMnC,EAAMkL,EAAMC,EAAMF,EAAM9K,EAAMgL,EAAMF,EAAM/K,EAAMkL,EAAMrL,EAAMmL,EAAME,EAAMpL,EAAME,EAAMoL,EAAMvL,EAAMI,EAAMmL,GAAOnJ,EACtH,EAAG,IAAMlC,EAAME,EAAMgL,EAAMnL,EAAMI,EAAM+K,EAAMlL,EAAMC,EAAMkL,EAAMrL,EAAMK,EAAMgL,EAAMpL,EAAME,EAAMmL,EAAMtL,EAAMI,EAAMkL,GAAOlJ,EACtH,EAAG,GAAKH,EAAMG,EACd,EAAG,IAAMrC,EAAMoL,EAAMC,EAAMH,EAAM5K,EAAM+K,EAAMH,EAAM9K,EAAMmL,EAAMzL,EAAMsL,EAAMG,EAAMvL,EAAMI,EAAMoL,EAAM1L,EAAMQ,EAAMkL,GAAOnJ,EACtH,EAAG,IAAM6I,EAAM7K,EAAMgL,EAAMtL,EAAMqL,EAAMC,EAAMH,EAAM9K,EAAMkL,EAAMxL,EAAMsL,EAAME,EAAMvL,EAAMK,EAAMoL,EAAM1L,EAAMO,EAAMmL,GAAOnJ,EACtH,EAAG,IAAMtC,EAAMO,EAAM+K,EAAMrL,EAAMK,EAAMgL,EAAMrL,EAAMI,EAAMkL,EAAMxL,EAAMQ,EAAMgL,EAAMvL,EAAMK,EAAMmL,EAAMzL,EAAMO,EAAMkL,GAAOlJ,EACtH,EAAG,GAAKF,EAAME,EACd,EAAG,IAAM6I,EAAM/K,EAAMkL,EAAMrL,EAAMmL,EAAME,EAAMH,EAAMjL,EAAMsL,EAAMzL,EAAMqL,EAAMI,EAAMvL,EAAMC,EAAMuL,EAAM1L,EAAMK,EAAMqL,GAAOnJ,EACtH,EAAG,KAAOtC,EAAMoL,EAAME,EAAMH,EAAMhL,EAAMmL,EAAMH,EAAMjL,EAAMqL,EAAMxL,EAAMqL,EAAMG,EAAMvL,EAAME,EAAMuL,EAAM1L,EAAMI,EAAMsL,GAAOnJ,EACvH,EAAG,KAAOrC,EAAME,EAAMmL,EAAMtL,EAAMI,EAAMkL,EAAMrL,EAAMC,EAAMqL,EAAMxL,EAAMK,EAAMmL,EAAMvL,EAAME,EAAMsL,EAAMzL,EAAMI,EAAMqL,GAAOlJ,EACvH,EAAG,IAAMiL,EAAMjL,EACf,EAAG,KAAOrC,EAAMmL,EAAM/K,EAAM8K,EAAM/K,EAAMC,EAAM8K,EAAMjL,EAAMK,EAAMR,EAAMqL,EAAM7K,EAAMN,EAAMC,EAAMmL,EAAMtL,EAAMK,EAAMiL,GAAO/I,EACvH,EAAG,KAAO6I,EAAMhL,EAAME,EAAML,EAAMoL,EAAM/K,EAAM8K,EAAMjL,EAAMI,EAAMP,EAAMqL,EAAM9K,EAAMN,EAAME,EAAMmL,EAAMtL,EAAMI,EAAMkL,GAAO/I,EACvH,EAAG,KAAOtC,EAAMI,EAAMC,EAAMJ,EAAME,EAAME,EAAMJ,EAAMC,EAAMI,EAAMP,EAAMK,EAAME,EAAMN,EAAME,EAAMK,EAAMR,EAAMI,EAAMI,GAAO+B,EAChH,IACT,CACA,MAAM,EAAG,CACP,IAAMpkE,EAAK,KAAK,SACVsH,EAAIke,EAAE,EAAG5c,EAAI4c,EAAE,EAAG0Q,EAAI1Q,EAAE,EAa9B,MAZA,GAAG,IAAMle,EACT,EAAG,IAAMsB,EACT,EAAG,IAAMstB,EACT,EAAG,IAAM5uB,EACT,EAAG,IAAMsB,EACT,EAAG,IAAMstB,EACT,EAAG,IAAM5uB,EACT,EAAG,IAAMsB,EACT,EAAG,KAAOstB,EACV,EAAG,IAAM5uB,EACT,EAAG,IAAMsB,EACT,EAAG,KAAOstB,EACH,IACT,CACA,mBAAoB,CAClB,IAAMl2B,EAAK,KAAK,SACVsvE,EAAWtvE,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GACtDuvE,EAAWvvE,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GACtDwvE,EAAWxvE,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAAMA,EAAG,IAC7D,OAAO,KAAK,KAAK,KAAK,IAAIsvE,EAAUC,EAAUC,CAAQ,CAAC,CACzD,CACA,gBAAgB,EAAG,EAAG,EAAG,CAwCvB,OAvCIloE,EAAE,UACJ,KAAK,IACH,EACA,EACA,EACAA,EAAE,EACF,EACA,EACA,EACAA,EAAE,EACF,EACA,EACA,EACAA,EAAE,EACF,EACA,EACA,EACA,CACF,EAEA,KAAK,IACH,EACA,EACA,EACAA,EACA,EACA,EACA,EACAsB,EACA,EACA,EACA,EACAstB,EACA,EACA,EACA,EACA,CACF,EAEK,IACT,CACA,cAAc,EAAO,CACnB,IAAMrrB,EAAI,KAAK,IAAI22D,CAAK,EAAG33D,EAAI,KAAK,IAAI23D,CAAK,EAmB7C,OAlBA,KAAK,IACH,EACA,EACA,EACA,EACA,EACA32D,EACA,CAAChB,EACD,EACA,EACAA,EACAgB,EACA,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,cAAc,EAAO,CACnB,IAAMA,EAAI,KAAK,IAAI22D,CAAK,EAAG33D,EAAI,KAAK,IAAI23D,CAAK,EAmB7C,OAlBA,KAAK,IACH32D,EACA,EACAhB,EACA,EACA,EACA,EACA,EACA,EACA,CAACA,EACD,EACAgB,EACA,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,cAAc,EAAO,CACnB,IAAMA,EAAI,KAAK,IAAI22D,CAAK,EAAG33D,EAAI,KAAK,IAAI23D,CAAK,EAmB7C,OAlBA,KAAK,IACH32D,EACA,CAAChB,EACD,EACA,EACAA,EACAgB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACO,IACT,CACA,iBAAiB,EAAM,EAAO,CAC5B,IAAMA,EAAI,KAAK,IAAI82D,CAAK,EAClB93D,EAAI,KAAK,IAAI83D,CAAK,EAClB74D,EAAI,EAAI+B,EACRvD,EAAIugE,EAAK,EAAGj/D,EAAIi/D,EAAK,EAAG3xC,EAAI2xC,EAAK,EACjCtD,EAAKz7D,EAAIxB,EAAGm9D,EAAK37D,EAAIF,EAmB3B,OAlBA,KAAK,IACH27D,EAAKj9D,EAAIuD,EACT05D,EAAK37D,EAAIiB,EAAIqsB,EACbquC,EAAKruC,EAAIrsB,EAAIjB,EACb,EACA27D,EAAK37D,EAAIiB,EAAIqsB,EACbuuC,EAAK77D,E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O,EAAIA,EAAO,EAAIA,EAAO,CAAC,CAAC,CACnF,CACF,CACA,KAAK,EAAQ,CAGX,OAFA,MAAM,KAAK3jE,CAAM,EACjB,KAAK,WAAa,OAAO,OAAO,CAAC,EAAGA,EAAO,UAAU,EAC9C,IACT,CACA,OAAO,SAAS,EAAM,CACpB,OAAO,IAAIm4F,EAAoBnsF,EAAK,SAAUA,EAAK,QAASA,EAAK,OAAQA,EAAK,OAAO,CACvF,CACF,EACI,GAAuB,MAAM0tF,UAA8B7pC,EAAmB,CAChF,YAAY,EAAS,EAAG,EAAS,EAAG,CAClC,IAAM5tD,GAAK,EAAI,KAAK,KAAK,CAAC,GAAK,EACzB,EAAI,EAAIA,EACRs1C,EAAW,CAEf,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EAEA,EACA,CAAC,EACD,CAACt1C,EACD,EACA,CAAC,EACDA,EACA,EACA,EACA,CAACA,EACD,EACA,EACAA,EAEA,CAAC,EACD,CAACA,EACD,EACA,CAAC,EACDA,EACA,EACA,EACA,CAACA,EACD,EACA,EACAA,EACA,EAEA,CAACA,EACD,EACA,CAAC,EACDA,EACA,EACA,CAAC,EACD,CAACA,EACD,EACA,EACAA,EACA,EACA,CACF,EA+GA,MAAMs1C,EAAU,CA7Gd,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA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"}