vendor: 16,031 bytes, line 1
1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[792],{40686:function(e,t,s){s.d(t,{S1:function(){return r}});var n=s(67294);var r=function(e,t){var s=t.threshold,r=void 0===s?0:s,o=t.root,i=void 0===o?null:o,a=t.rootMargin,c=void 0===a?"0%":a,l=t.freezeOnceVisible,u=void 0!==l&&l,h=(0,n.useState)(),p=h[0],d=h[1],f=(null===p||void 0===p?void 0:p.isIntersecting)&&u,m=function(e){var t=e[0];d(t)};return(0,n.useEffect)((function(){var t=null===e||void 0===e?void 0:e.current;if(!!window.IntersectionObserver&&!f&&t){var s=new IntersectionObserver(m,{threshold:r,root:i,rootMargin:c});return s.observe(t),function(){return s.disconnect()}}}),[e,JSON.stringify(r),i,c,f]),p}},1217:function(e,t,s){s.d(t,{E:function(){return r}});var n=s(2212);class r extends n.aNw{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(e){return new l(e)})),this.register((function(e){return new m(e)})),this.register((function(e){return new g(e)})),this.register((function(e){return new u(e)})),this.register((function(e){return new h(e)})),this.register((function(e){return new p(e)})),this.register((function(e){return new d(e)})),this.register((function(e){return new f(e)})),this.register((function(e){return new a(e)})),this.register((function(e){return new y(e)}))}load(e,t,s,r){const o=this;let i;i=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:n.Zp0.extractUrlBase(e),this.manager.itemStart(e);const a=function(t){r?r(t):console.error(t),o.manager.itemError(e),o.manager.itemEnd(e)},c=new n.hH6(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,(function(s){try{o.parse(s,i,(function(s){t(s),o.manager.itemEnd(e)}),a)}catch(n){a(n)}}),s,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,r){let o;const a={},l={};if("string"===typeof e)o=e;else{if(n.Zp0.decodeText(new Uint8Array(e,0,4))===x){try{a[i.KHR_BINARY_GLTF]=new b(e)}catch(p){return void(r&&r(p))}o=a[i.KHR_BINARY_GLTF].content}else o=n.Zp0.decodeText(new Uint8Array(e))}const u=JSON.parse(o);if(void 0===u.asset||u.asset.version[0]<2)return void(r&&r(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const h=new $(u,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});h.fileLoader.setRequestHeader(this.requestHeader);for(let n=0;n<this.pluginCallbacks.length;n++){const e=this.pluginCallbacks[n](h);l[e.name]=e,a[e.name]=!0}if(u.extensionsUsed)for(let n=0;n<u.extensionsUsed.length;++n){const e=u.extensionsUsed[n],t=u.extensionsRequired||[];switch(e){case i.KHR_MATERIALS_UNLIT:a[e]=new c;break;case i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:a[e]=new R;break;case i.KHR_DRACO_MESH_COMPRESSION:a[e]=new M(u,this.dracoLoader);break;case i.KHR_TEXTURE_TRANSFORM:a[e]=new A;break;case i.KHR_MESH_QUANTIZATION:a[e]=new S;break;default:t.indexOf(e)>=0&&void 0===l[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}h.setExtensions(a),h.setPlugins(l),h.parse(s,r)}parseAsync(e,t){const s=this;return new Promise((function(n,r){s.parse(e,t,n,r)}))}}function o(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const i={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class a{constructor(e){this.parser=e,this.name=i.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,n=t.length;s<n;s++){const n=t[s];n.extensions&&n.extensions[this.name]&&void 0!==n.extensions[this.name].light&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){const t=this.parser,s="light:"+e;let r=t.cache.get(s);if(r)return r;const o=t.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e];let a;const c=new n.Ilk(16777215);void 0!==i.color&&c.fromArray(i.color);const l=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new n.Ox3(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new n.cek(c),a.distance=l;break;case"spot":a=new n.PMe(c),a.distance=l,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),a.decay=2,void 0!==i.intensity&&(a.intensity=i.intensity),a.name=t.createUniqueName(i.name||"light_"+e),r=Promise.resolve(a),t.cache.add(s,r),r}createNodeAttachment(e){const t=this,s=this.parser,n=s.json.nodes[e],r=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then((function(e){return s._getNodeRef(t.cache,r,e)}))}}class c{constructor(){this.name=i.KHR_MATERIALS_UNLIT}getMaterialType(){return n.vBJ}extendParams(e,t,s){const r=[];e.color=new n.Ilk(1,1,1),e.opacity=1;const o=t.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const t=o.baseColorFactor;e.color.fromArray(t),e.opacity=t[3]}void 0!==o.baseColorTexture&&r.push(s.assignTexture(e,"map",o.baseColorTexture))}return Promise.all(r)}}class l{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser,r=s.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];if(void 0!==i.clearcoatFactor&&(t.clearcoat=i.clearcoatFactor),void 0!==i.clearcoatTexture&&o.push(s.assignTexture(t,"clearcoatMap",i.clearcoatTexture)),void 0!==i.clearcoatRoughnessFactor&&(t.clearcoatRoughness=i.clearcoatRoughnessFactor),void 0!==i.clearcoatRoughnessTexture&&o.push(s.assignTexture(t,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),void 0!==i.clearcoatNormalTexture&&(o.push(s.assignTexture(t,"clearcoatNormalMap",i.clearcoatNormalTexture)),void 0!==i.clearcoatNormalTexture.scale)){const e=i.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new n.FM8(e,e)}return Promise.all(o)}}class u{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser,r=s.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[];t.sheenColor=new n.Ilk(0,0,0),t.sheenRoughness=0,t.sheen=1;const i=r.extensions[this.name];return void 0!==i.sheenColorFactor&&t.sheenColor.fromArray(i.sheenColorFactor),void 0!==i.sheenRoughnessFactor&&(t.sheenRoughness=i.sheenRoughnessFactor),void 0!==i.sheenColorTexture&&o.push(s.assignTexture(t,"sheenColorMap",i.sheenColorTexture)),void 0!==i.sheenRoughnessTexture&&o.push(s.assignTexture(t,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(o)}}class h{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser,n=s.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const r=[],o=n.extensions[this.name];return void 0!==o.transmissionFactor&&(t.transmission=o.transmissionFactor),void 0!==o.transmissionTexture&&r.push(s.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(r)}}class p{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser,r=s.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];t.thickness=void 0!==i.thicknessFactor?i.thicknessFactor:0,void 0!==i.thicknessTexture&&o.push(s.assignTexture(t,"thicknessMap",i.thicknessTexture)),t.attenuationDistance=i.attenuationDistance||0;const a=i.attenuationColor||[1,1,1];return t.attenuationColor=new n.Ilk(a[0],a[1],a[2]),Promise.all(o)}}class d{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const n=s.extensions[this.name];return t.ior=void 0!==n.ior?n.ior:1.5,Promise.resolve()}}class f{constructor(e){this.parser=e,this.name=i.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?n.EJi:null}extendMaterialParams(e,t){const s=this.parser,r=s.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();const o=[],i=r.extensions[this.name];t.specularIntensity=void 0!==i.specularFactor?i.specularFactor:1,void 0!==i.specularTexture&&o.push(s.assignTexture(t,"specularIntensityMap",i.specularTexture));const a=i.specularColorFactor||[1,1,1];return t.specularColor=new n.Ilk(a[0],a[1],a[2]),void 0!==i.specularColorTexture&&o.push(s.assignTexture(t,"specularColorMap",i.specularColorTexture).then((function(e){e.encoding=n.knz}))),Promise.all(o)}}class m{constructor(e){this.parser=e,this.name=i.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,n=s.textures[e];if(!n.extensions||!n.extensions[this.name])return null;const r=n.extensions[this.name],o=s.images[r.source],i=t.options.ktx2Loader;if(!i){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,o,i)}}class g{constructor(e){this.parser=e,this.name=i.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,n=s.json,r=n.textures[e];if(!r.extensions||!r.extensions[t])return null;const o=r.extensions[t],i=n.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return this.detectSupport().then((function(r){if(r)return s.loadTextureImage(e,i,a);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class y{constructor(e){this.name=i.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([n,r.ready]).then((function(t){const s=e.byteOffset||0,n=e.byteLength||0,o=e.count,i=e.byteStride,a=new ArrayBuffer(o*i),c=new Uint8Array(t[0],s,n);return r.decodeGltfBuffer(new Uint8Array(a),o,i,c,e.mode,e.filter),a}))}return null}}const x="glTF",T=1313821514,v=5130562;class b{constructor(e){this.name=i.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:n.Zp0.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==x)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,r=new DataView(e,12);let o=0;for(;o<s;){const t=r.getUint32(o,!0);o+=4;const s=r.getUint32(o,!0);if(o+=4,s===T){const s=new Uint8Array(e,12+o,t);this.content=n.Zp0.decodeText(s)}else if(s===v){const s=12+o;this.body=e.slice(s,s+t)}o+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class M{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=i.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const s=this.json,n=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,i={},a={},c={};for(const l in o){const e=V[l]||l.toLowerCase();i[e]=o[l]}for(const l in e.attributes){const t=V[l]||l.toLowerCase();if(void 0!==o[l]){const n=s.accessors[e.attributes[l]],r=H[n.componentType];c[t]=r,a[t]=!0===n.normalized}}return t.getDependency("bufferView",r).then((function(e){return new Promise((function(t){n.decodeDracoFile(e,(function(e){for(const t in e.attributes){const s=e.attributes[t],n=a[t];void 0!==n&&(s.normalized=n)}t(e)}),i,c)}))}))}}class A{constructor(){this.name=i.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),void 0===t.offset&&void 0===t.rotation&&void 0===t.scale||(e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}class w extends n.Wid{constructor(e){super(),this.isGLTFSpecularGlossinessMaterial=!0;const t=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),s=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),r=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),o=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),i=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
1","material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.specularColor = specularFactor;"].join("\n"),a={specular:{value:(new n.Ilk).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=a,this.onBeforeCompile=function(e){for(const t in a)e.uniforms[t]=a[t];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",t).replace("#include <metalnessmap_pars_fragment>",s).replace("#include <roughnessmap_fragment>",r).replace("#include <metalnessmap_fragment>",o).replace("#include <lights_physical_fragment>",i)},Object.defineProperties(this,{specular:{get:function(){return a.specular.value},set:function(e){a.specular.value=e}},specularMap:{get:function(){return a.specularMap.value},set:function(e){a.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return a.glossiness.value},set:function(e){a.glossiness.value=e}},glossinessMap:{get:function(){return a.glossinessMap.value},set:function(e){a.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class R{constructor(){this.name=i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return w}extendParams(e,t,s){const r=t.extensions[this.name];e.color=new n.Ilk(1,1,1),e.opacity=1;const o=[];if(Array.isArray(r.diffuseFactor)){const t=r.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==r.diffuseTexture&&o.push(s.assignTexture(e,"map",r.diffuseTexture)),e.emissive=new n.Ilk(0,0,0),e.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,e.specular=new n.Ilk(1,1,1),Array.isArray(r.specularFactor)&&e.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){const t=r.specularGlossinessTexture;o.push(s.assignTexture(e,"glossinessMap",t)),o.push(s.assignTexture(e,"specularMap",t))}return Promise.all(o)}createMaterial(e){const t=new w(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=n.IOt,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t.refractionRatio=.98,t}}
1class S{constructor(){this.name=i.KHR_MESH_QUANTIZATION}}class E extends n._C8{constructor(e,t,s,n){super(e,t,s,n)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,n=this.valueSize,r=e*n*3+n;for(let o=0;o!==n;o++)t[o]=s[r+o];return t}}E.prototype.beforeStart_=E.prototype.copySampleValue_,E.prototype.afterEnd_=E.prototype.copySampleValue_,E.prototype.interpolate_=function(e,t,s,n){const r=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,c=3*i,l=n-t,u=(s-t)/l,h=u*u,p=h*u,d=e*c,f=d-c,m=-2*p+3*h,g=p-h,y=1-m,x=g-h+u;for(let T=0;T!==i;T++){const e=o[f+T+i],t=o[f+T+a]*l,s=o[d+T+i],n=o[d+T]*l;r[T]=y*e+x*t+m*s+g*n}return r};const _=new n._fP;class L extends E{interpolate_(e,t,s,n){const r=super.interpolate_(e,t,s,n);return _.fromArray(r).normalize().toArray(r),r}}const I=0,P=1,k=2,C=3,O=4,N=5,F=6,H={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},U={9728:n.TyD,9729:n.wem,9984:n.YLQ,9985:n.qyh,9986:n.aH4,9987:n.D1R},D={33071:n.uWy,33648:n.OoA,10497:n.rpg},G={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},V={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},B={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},j={CUBICSPLINE:void 0,LINEAR:n.NMF,STEP:n.Syv},K="OPAQUE",z="MASK",q="BLEND";function X(e,t,s){for(const n in s.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=s.extensions[n])}function W(e,t){void 0!==t.extras&&("object"===typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function J(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,n=t.weights.length;s<n;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,n=s.length;t<n;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function Z(e){const t=e.extensions&&e.extensions[i.KHR_DRACO_MESH_COMPRESSION];let s;return s=t?"draco:"+t.bufferView+":"+t.indices+":"+Y(t.attributes):e.indices+":"+Y(e.attributes)+":"+e.mode,s}function Y(e){let t="";const s=Object.keys(e).sort();for(let n=0,r=s.length;n<r;n++)t+=s[n]+":"+e[s[n]]+";";return t}function Q(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}class ${constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new o,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.textureCache={},this.nodeNamesUsed={},"undefined"!==typeof createImageBitmap&&!1===/Firefox|Safari/.test(navigator.userAgent)?this.textureLoader=new n.QRU(this.options.manager):this.textureLoader=new n.dpR(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new n.hH6(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,n=this.json,r=this.extensions;this.cache.removeAll(),this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])})).then((function(t){const o={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:s,userData:{}};X(r,o,n),W(o,n),Promise.all(s._invokeAll((function(e){return e.afterRoot&&e.afterRoot(o)}
vendor: 4,335 bytes, line 1
1))).then((function(){e(o)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let n=0,r=t.length;n<r;n++){const s=t[n].joints;for(let t=0,n=s.length;t<n;t++)e[s[t]].isBone=!0}for(let n=0,r=e.length;n<r;n++){const t=e[n];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(s[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const n=s.clone(),r=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[n,o]of e.children.entries())r(o,t.children[n])};return r(s,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const n=e(t[s]);if(n)return n}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let n=0;n<t.length;n++){const r=e(t[n]);r&&s.push(r)}return s}getDependency(e,t){const s=e+":"+t;let n=this.cache.get(s);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this.loadNode(t);break;case"mesh":n=this._invokeOne((function(e){return e.loadMesh&&e.loadMesh(t)}));break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne((function(e){return e.loadBufferView&&e.loadBufferView(t)}));break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne((function(e){return e.loadMaterial&&e.loadMaterial(t)}));break;case"texture":n=this._invokeOne((function(e){return e.loadTexture&&e.loadTexture(t)}));break;case"skin":n=this.loadSkin(t);break;case"animation":n=this.loadAnimation(t);break;case"camera":n=this.loadCamera(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(s,n)}return n}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map((function(t,n){return s.getDependency(e,n)}))),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],s=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[i.KHR_BINARY_GLTF].body);const r=this.options;return new Promise((function(e,o){s.load(n.Zp0.resolveURL(t.uri,r.path),e,void 0,(function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){const s=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+s)}))}loadAccessor(e){const t=this,s=this.json,r=this.json.accessors[e];if(void 0===r.bufferView&&void 0===r.sparse)return Promise.resolve(null);const o=[];return void 0!==r.bufferView?o.push(this.getDependency("bufferView",r.bufferView)):o.push(null),void 0!==r.sparse&&(o.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(o).then((function(e){const o=e[0],i=G[r.type],a=H[r.componentType],c=a.BYTES_PER_ELEMENT,l=c*i,u=r.byteOffset||0,h=void 0!==r.bufferView?s.bufferViews[r.bufferView].byteStride:void 0,p=!0===r.normalized;let d,f;if(h&&h!==l){const e=Math.floor(u/h),s="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+e+":"+r.count;let l=t.cache.get(s);l||(d=new a(o,e*h,r.count*h/c),l=new n.vpT(d,h/c),t.cache.add(s,l)),f=new n.kB5(l,i,u%h/c,p)}else d=null===o?new a(r.count*i):new a(o,u,r.count*i),f=new n.TlE(d,i,p);if(void 0!==r.sparse){const t=G.SCALAR,s=H[r.sparse.indices.componentType],c=r.sparse.indices.byteOffset||0,l=r.sparse.values.byteOffset||0,u=new s(e[1],c,r.sparse.count*t),h=new a(e[2],l,r.sparse.count*i);null!==o&&(f=new n.TlE(f.array.slice(),f.itemSize,f.normalized));for(let e=0,n=u.length;e<n;e++){const t=u[e];if(f.setX(t,h[e*i]),i>=2&&f.setY(t,h[e*i+1]),i>=3&&f.setZ(t,h[e*i+2]),i>=4&&f.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return f}))}loadTexture(e){const t=this.json,s=this.options,n=t.textures[e],r=t.images[n.source];let o=this.textureLoader;if(r.uri){const e=s.manager.getHandler(r.uri);null!==e&&(o=e)}return this.loadTextureImage(e,r,o)}
1loadTextureImage(e,t,s){const r=this,o=this.json,i=this.options,a=o.textures[e],c=(t.uri||t.bufferView)+":"+a.sampler;if(this.textureCache[c])return this.textureCache[c];const l=self.URL||self.webkitURL;let u=t.uri||"",h=!1;if(void 0!==t.bufferView)u=r.getDependency("bufferView",t.bufferView).then((function(e){h=!0;const s=new Blob([e],{type:t.mimeType});return u=l.createObjectURL(s),u}));else if(void 0===t.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const p=Promise.resolve(u).then((function(e){return new Promise((function(t,r){let o=t;!0===s.isImageBitmapLoader&&(o=function(e){const s=new n.xEZ(e);s.needsUpdate=!0,t(s)}),s.load(n.Zp0.resolveURL(e,i.path),o,void 0,r)}))})).then((function(t){!0===h&&l.revokeObjectURL(u),t.flipY=!1,a.name&&(t.name=a.name);const s=(o.samplers||{})[a.sampler]||{};return t.magFilter=U[s.magFilter]||n.wem,t.minFilter=U[s.minFilter]||n.D1R,t.wrapS=D[s.wrapS]||n.rpg,t.wrapT=D[s.wrapT]||n.rpg,r.associations.set(t,{textures:e}),t})).catch((function(){return console.error("THREE.GLTFLoader: Couldn't load texture",u),null}));return this.textureCache[c]=p,p}assignTexture(e,t,s){const n=this;return this.getDependency("texture",s.index).then((function(r){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[i.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[i.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(r);r=n.extensions[i.KHR_TEXTURE_TRANSFORM].extendTexture(r,e),n.associations.set(r,t)}}return e[t]=r,r}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const r=void 0===t.attributes.tangent,o=void 0!==t.attributes.color,i=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new n.UY4,n.F5T.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new n.nls,n.F5T.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(r||o||i){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),r&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return n.Wid}loadMaterial(e){const t=this,s=this.json,r=this.extensions,o=s.materials[e];let a;const c={},l=o.extensions||{},u=[];if(l[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=r[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];a=e.getMaterialType(),u.push(e.extendParams(c,o,t))}else if(l[i.KHR_MATERIALS_UNLIT]){const e=r[i.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),u.push(e.extendParams(c,o,t))}else{const s=o.pbrMetallicRoughness||{};if(c.color=new n.Ilk(1,1,1),c.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;c.color.fromArray(e),c.opacity=e[3]}void 0!==s.baseColorTexture&&u.push(t.assignTexture(c,"map",s.baseColorTexture)),c.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,c.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(u.push(t.assignTexture(c,"metalnessMap",s.metallicRoughnessTexture)),u.push(t.assignTexture(c,"roughnessMap",s.metallicRoughnessTexture))),a=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),u.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,c)}))))}!0===o.doubleSided&&(c.side=n.ehD);const h=o.alphaMode||K;if(h===q?(c.transparent=!0,c.depthWrite=!1):(c.format=n.UCm,c.transparent=!1,h===z&&(c.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&a!==n.vBJ&&(u.push(t.assignTexture(c,"normalMap",o.normalTexture)),c.normalScale=new n.FM8(1,1),void 0!==o.normalTexture.scale)){const e=o.normalTexture.scale;c.normalScale.set(e,e)}return void 0!==o.occlusionTexture&&a!==n.vBJ&&(u.push(t.assignTexture(c,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(c.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&a!==n.vBJ&&(c.emissive=(new n.Ilk).fromArray(o.emissiveFactor)),void 0!==o.emissiveTexture&&a!==n.vBJ&&u.push(t.assignTexture(c,"emissiveMap",o.emissiveTexture)),Promise.all(u).then((function(){let s;return s=a===w?r[i.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(c):new a(c),o.name&&(s.name=o.name),s.map&&(s.map.encoding=n.knz),s.emissiveMap&&(s.emissiveMap.encoding=n.knz),W(s,o),t.associations.set(s,{materials:e}),o.extensions&&X(r,s,o),s}))}createUniqueName(e){const t=n.iUV.sanitizeNodeName(e||"");let s=t;for(let n=1;this.nodeNamesUsed[s];++n)s=t+"_"+n;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,r=this.primitiveCache;function o(e){return s[i.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return te(s,e,t)}))}const a=[];for(let c=0,l=e.length;c<l;c++){const s=e[c],l=Z(s),u=r[l];if(u)a.push(u.promise);else{let e;e=s.extensions&&s.extensions[i.KHR_DRACO_MESH_COMPRESSION]?o(s):te(new n.u9r,s,t),r[l]={primitive:s,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){const t=this,s=this.json,r=this.extensions,o=s.meshes[e],i=o.primitives,a=[];for(let l=0,u=i.length;l<u;l++){const e=void 0===i[l].material?(void 0===(c=this.cache).DefaultMaterial&&(c.DefaultMaterial=new n.Wid({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:n.Wl3})),c.DefaultMaterial):this.getDependency("material",i[l].material);a.push(e)}var c;return a.push(t.loadGeometries(i)),Promise.all(a).then((function(s){const a=s.slice(0,s.length-1),c=s[s.length-1],l=[];for(let h=0,p=c.length;h<p;h++){const s=c[h],u=i[h];let p;const d=a[h];if(u.mode===O||u.mode===N||u.mode===F||void 0===u.mode)p=!0===o.isSkinnedMesh?new n.TUv(s,d):new n.Kj0(s,d),!0!==p.isSkinnedMesh||p.geometry.attributes.skinWeight.normalized||p.normalizeSkinWeights(),u.mode===N?p.geometry=se(p.geometry,n.UlW):u.mode===F&&(p.geometry=se(p.geometry,n.z$h));else if(u.mode===P)p=new n.ejS(s,d);else if(u.mode===C)p=new n.x12(s,d);else if(u.mode===k)p=new n.blk(s,d);else{if(u.mode!==I)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+u.mode);p=new n.woe(s,d)}Object.keys(p.geometry.morphAttributes).length>0&&J(p,o),p.name=t.createUniqueName(o.name||"mesh_"+e),W(p,o),u.extensions&&X(r,p,u),t.assignFinalMaterial(p),l.push(p)}for(let n=0,r=l.length;n<r;n++)t.associations.set(l[n],{meshes:e,primitives:n});if(1===l.length)return l[0];const u=new n.ZAu;t.associations.set(u,{meshes:e});for(let e=0,t=l.length;e<t;e++)u.add(l[e]);return u}))}loadCamera(e){let t;const s=this.json.cameras[e],r=s[s.type];if(r)return"perspective"===s.type?t=new n.cPb(n.M8C.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):"orthographic"===s.type&&(t=new n.iKG(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),s.name&&(t.name=this.createUniqueName(s.name)),W(t,s),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],s={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(s):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return s.inverseBindMatrices=e,s}))}loadAnimation(e){const t=this.json.animations[e],s=[],r=[],o=[],i=[],a=[];for(let n=0,c=t.channels.length;n<c;n++){const e=t.channels[n],c=t.samplers[e.sampler],l=e.target,u=void 0!==l.node?l.node:l.id,h=void 0!==t.parameters?t.parameters[c.input]:c.input,p=void 0!==t.parameters?t.parameters[c.output]:c.output;s.push(this.getDependency("node",u)),r.push(this.getDependency("accessor",h)),o.push(this.getDependency("accessor",p)),i.push(c),a.push(l)}return Promise.all([Promise.all(s),Promise.all(r),Promise.all(o),Promise.all(i),Promise.all(a)]).then((function(s){const r=s[0],o=s[1],i=s[2],a=s[3],c=s[4],l=[];for(let e=0,t=r.length;e<t;e++){const t=r[e],s=o[e],u=i[e],h=a[e],p=c[e];if(void 0===t)continue;let d;switch(t.updateMatrix(),t.matrixAutoUpdate=!0,B[p.path]){case B.weights:d=n.dUE;break;case B.rotation:d=n.iLg;break;case B.position:case B.scale:default:d=n.yC1}const f=t.name?t.name:t.uuid,m=void 0!==h.interpolation?j[h.interpolation]:n.NMF,g=[];B[p.path]===B.weights?t.traverse((function(e){e.morphTargetInfluences&&g.push(e.name?e.name:e.uuid)})):g.push(f);let y=u.array;if(u.normalized){const e=Q(y.constructor),t=new Float32Array(y.length);for(let s=0,n=y.length;s<n;s++)t[s]=y[s]*e;y=t}for(let e=0,r=g.length;e<r;e++){const t=new d(g[e]+"."+B[p.path],s.array,y,m);"CUBICSPLINE"===h.interpolation&&(t.createInterpolant=function(e){return new(this instanceof n.iLg?L:E)(this.times,this.values,this.getValueSize()/3,e)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),l.push(t)}}
1const u=t.name?t.name:"animation_"+e;return new n.m7l(u,void 0,l)}))}createNodeMesh(e){const t=this.json,s=this,n=t.nodes[e];return void 0===n.mesh?null:s.getDependency("mesh",n.mesh).then((function(e){const t=s._getNodeRef(s.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse((function(e){if(e.isMesh)for(let t=0,s=n.weights.length;t<s;t++)e.morphTargetInfluences[t]=n.weights[t]})),t}))}loadNode(e){const t=this.json,s=this.extensions,r=this,o=t.nodes[e],i=o.name?r.createUniqueName(o.name):"";return function(){const t=[],s=r._invokeOne((function(t){return t.createNodeMesh&&t.createNodeMesh(e)}));return s&&t.push(s),void 0!==o.camera&&t.push(r.getDependency("camera",o.camera).then((function(e){return r._getNodeRef(r.cameraCache,o.camera,e)}))),r._invokeAll((function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)})).forEach((function(e){t.push(e)})),Promise.all(t)}().then((function(t){let a;if(a=!0===o.isBone?new n.N$j:t.length>1?new n.ZAu:1===t.length?t[0]:new n.Tme,a!==t[0])for(let e=0,s=t.length;e<s;e++)a.add(t[e]);if(o.name&&(a.userData.name=o.name,a.name=i),W(a,o),o.extensions&&X(s,a,o),void 0!==o.matrix){const e=new n.yGw;e.fromArray(o.matrix),a.applyMatrix4(e)}else void 0!==o.translation&&a.position.fromArray(o.translation),void 0!==o.rotation&&a.quaternion.fromArray(o.rotation),void 0!==o.scale&&a.scale.fromArray(o.scale);return r.associations.has(a)||r.associations.set(a,{}),r.associations.get(a).nodes=e,a}))}loadScene(e){const t=this.json,s=this.extensions,r=this.json.scenes[e],o=this,i=new n.ZAu;r.name&&(i.name=o.createUniqueName(r.name)),W(i,r),r.extensions&&X(s,i,r);const a=r.nodes||[],c=[];for(let n=0,l=a.length;n<l;n++)c.push(ee(a[n],i,t,o));return Promise.all(c).then((function(){return o.associations=(e=>{const t=new Map;for(const[s,r]of o.associations)(s instanceof n.F5T||s instanceof n.xEZ)&&t.set(s,r);return e.traverse((e=>{const s=o.associations.get(e);null!=s&&t.set(e,s)})),t})(i),i}))}}function ee(e,t,s,r){const o=s.nodes[e];return r.getDependency("node",e).then((function(e){if(void 0===o.skin)return e;let t;return r.getDependency("skin",o.skin).then((function(e){t=e;const s=[];for(let n=0,o=t.joints.length;n<o;n++)s.push(r.getDependency("node",t.joints[n]));return Promise.all(s)})).then((function(s){return e.traverse((function(e){if(!e.isMesh)return;const r=[],o=[];for(let i=0,a=s.length;i<a;i++){const e=s[i];if(e){r.push(e);const s=new n.yGw;void 0!==t.inverseBindMatrices&&s.fromArray(t.inverseBindMatrices.array,16*i),o.push(s)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[i])}e.bind(new n.OdW(r,o),e.matrixWorld)})),e}))})).then((function(e){t.add(e);const n=[];if(o.children){const t=o.children;for(let o=0,i=t.length;o<i;o++){const i=t[o];n.push(ee(i,e,s,r))}}return Promise.all(n)}))}function te(e,t,s){const r=t.attributes,o=[];function i(t,n){return s.getDependency("accessor",t).then((function(t){e.setAttribute(n,t)}))}for(const n in r){const t=V[n]||n.toLowerCase();t in e.attributes||o.push(i(r[n],t))}if(void 0!==t.indices&&!e.index){const n=s.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));o.push(n)}return W(e,t),function(e,t,s){const r=t.attributes,o=new n.ZzF;if(void 0===r.POSITION)return;{const e=s.json.accessors[r.POSITION],t=e.min,i=e.max;if(void 0===t||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new n.Pa4(t[0],t[1],t[2]),new n.Pa4(i[0],i[1],i[2])),e.normalized){const t=Q(H[e.componentType]);o.min.multiplyScalar(t),o.max.multiplyScalar(t)}}const i=t.targets;if(void 0!==i){const e=new n.Pa4,t=new n.Pa4;for(let n=0,r=i.length;n<r;n++){const r=i[n];if(void 0!==r.POSITION){const n=s.json.accessors[r.POSITION],o=n.min,i=n.max;if(void 0!==o&&void 0!==i){if(t.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),t.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),t.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),n.normalized){const e=Q(H[n.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(e)}e.boundingBox=o;const a=new n.aLr;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,e.boundingSphere=a}(e,t,s),Promise.all(o).then((function(){return void 0!==t.targets?function(e,t,s){let n=!1,r=!1;for(let a=0,c=t.length;a<c;a++){const e=t[a];if(void 0!==e.POSITION&&(n=!0),void 0!==e.NORMAL&&(r=!0),n&&r)break}if(!n&&!r)return Promise.resolve(e);const o=[],i=[];for(let a=0,c=t.length;a<c;a++){const c=t[a];if(n){const t=void 0!==c.POSITION?s.getDependency("accessor",c.POSITION):e.attributes.position;o.push(t)}if(r){const t=void 0!==c.NORMAL?s.getDependency("accessor",c.NORMAL):e.attributes.normal;i.push(t)}}return Promise.all([Promise.all(o),Promise.all(i)]).then((function(t){const s=t[0],o=t[1];return n&&(e.morphAttributes.position=s),r&&(e.morphAttributes.normal=o),e.morphTargetsRelative=!0,e}))}(e,t.targets,s):e}))}function se(e,t){let s=e.getIndex();if(null===s){const t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<n.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}const r=s.count-2,o=[];if(t===n.z$h)for(let n=1;n<=r;n++)o.push(s.getX(0)),o.push(s.getX(n)),o.push(s.getX(n+1));else for(let n=0;n<r;n++)n%2===0?(o.push(s.getX(n)),o.push(s.getX(n+1)),o.push(s.getX(n+2))):(o.push(s.getX(n+2)),o.push(s.getX(n+1)),o.push(s.getX(n)));o.length/3!==r&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=e.clone();return i.setIndex(o),i}},81367:function(e,t,s){s.d(t,{u:function(){return r}});var n=s(2212);class r extends n.aNw{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,s,r){const o=this,i=new n.hH6(o.manager);i.setPath(o.path),i.setRequestHeader(o.requestHeader),i.setWithCredentials(o.withCredentials),i.load(e,(function(s){try{t(o.parse(s))}catch(n){r?r(n):console.error(n),o.manager.itemError(e)}}),s,r)}parse(e){const t=this;function s(e,t,s,n,o,i,a,c){if(0==t||0==s)return void e.lineTo(c.x,c.y);n=n*Math.PI/180,t=Math.abs(t),s=Math.abs(s);const l=(a.x-c.x)/2,u=(a.y-c.y)/2,h=Math.cos(n)*l+Math.sin(n)*u,p=-Math.sin(n)*l+Math.cos(n)*u;
1let d=t*t,f=s*s;const m=h*h,g=p*p,y=m/d+g/f;if(y>1){const e=Math.sqrt(y);d=(t*=e)*t,f=(s*=e)*s}const x=d*g+f*m,T=(d*f-x)/x;let v=Math.sqrt(Math.max(0,T));o===i&&(v=-v);const b=v*t*p/s,M=-v*s*h/t,A=Math.cos(n)*b-Math.sin(n)*M+(a.x+c.x)/2,w=Math.sin(n)*b+Math.cos(n)*M+(a.y+c.y)/2,R=r(1,0,(h-b)/t,(p-M)/s),S=r((h-b)/t,(p-M)/s,(-h-b)/t,(-p-M)/s)%(2*Math.PI);e.currentPath.absellipse(A,w,t,s,R,R+S,0===i,n)}function r(e,t,s,n){const r=e*s+t*n,o=Math.sqrt(e*e+t*t)*Math.sqrt(s*s+n*n);let i=Math.acos(Math.max(-1,Math.min(1,r/o)));return e*n-t*s<0&&(i=-i),i}function o(e,t){t=Object.assign({},t);let s={};if(e.hasAttribute("class")){const t=e.getAttribute("class").split(/\s/).filter(Boolean).map((e=>e.trim()));for(let e=0;e<t.length;e++)s=Object.assign(s,f["."+t[e]])}function n(n,r,o){void 0===o&&(o=function(e){return e.startsWith("url")&&console.warn("SVGLoader: url access in attributes is not implemented."),e}),e.hasAttribute(n)&&(t[r]=o(e.getAttribute(n))),s[n]&&(t[r]=o(s[n])),e.style&&""!==e.style[n]&&(t[r]=o(e.style[n]))}function r(e){return Math.max(0,Math.min(1,u(e)))}function o(e){return Math.max(0,u(e))}return e.hasAttribute("id")&&(s=Object.assign(s,f["#"+e.getAttribute("id")])),n("fill","fill"),n("fill-opacity","fillOpacity",r),n("fill-rule","fillRule"),n("opacity","opacity",r),n("stroke","stroke"),n("stroke-opacity","strokeOpacity",r),n("stroke-width","strokeWidth",o),n("stroke-linejoin","strokeLineJoin"),n("stroke-linecap","strokeLineCap"),n("stroke-miterlimit","strokeMiterLimit",o),n("visibility","visibility"),t}function i(e,t){return e-(t-e)}function a(e,t,s){if("string"!==typeof e)throw new TypeError("Invalid input: "+typeof e);const n={SEPARATOR:/[ \t\r\n\,.\-+]/,WHITESPACE:/[ \t\r\n]/,DIGIT:/[\d]/,SIGN:/[-+]/,POINT:/\./,COMMA:/,/,EXP:/e/i,FLAGS:/[01]/};let r=0,o=!0,i="",a="";const c=[];function l(e,t,s){const n=new SyntaxError('Unexpected character "'+e+'" at index '+t+".");throw n.partial=s,n}function u(){""!==i&&(""===a?c.push(Number(i)):c.push(Number(i)*Math.pow(10,Number(a)))),i="",a=""}let h;const p=e.length;for(let d=0;d<p;d++)if(h=e[d],Array.isArray(t)&&t.includes(c.length%s)&&n.FLAGS.test(h))r=1,i=h,u();else{if(0===r){if(n.WHITESPACE.test(h))continue;if(n.DIGIT.test(h)||n.SIGN.test(h)){r=1,i=h;continue}if(n.POINT.test(h)){r=2,i=h;continue}n.COMMA.test(h)&&(o&&l(h,d,c),o=!0)}if(1===r){if(n.DIGIT.test(h)){i+=h;continue}if(n.POINT.test(h)){i+=h,r=2;continue}if(n.EXP.test(h)){r=3;continue}n.SIGN.test(h)&&1===i.length&&n.SIGN.test(i[0])&&l(h,d,c)}if(2===r){if(n.DIGIT.test(h)){i+=h;continue}if(n.EXP.test(h)){r=3;continue}n.POINT.test(h)&&"."===i[i.length-1]&&l(h,d,c)}if(3===r){if(n.DIGIT.test(h)){a+=h;continue}if(n.SIGN.test(h)){if(""===a){a+=h;continue}1===a.length&&n.SIGN.test(a)&&l(h,d,c)}}n.WHITESPACE.test(h)?(u(),r=0,o=!1):n.COMMA.test(h)?(u(),r=0,o=!0):n.SIGN.test(h)?(u(),r=1,i=h):n.POINT.test(h)?(u(),r=2,i=h):l(h,d,c)}return u(),c}const c=["mm","cm","in","pt","pc","px"],l={mm:{mm:1,cm:.1,in:1/25.4,pt:72/25.4,pc:6/25.4,px:-1},cm:{mm:10,cm:1,in:1/2.54,pt:72/2.54,pc:6/2.54,px:-1},in:{mm:25.4,cm:2.54,in:1,pt:72,pc:6,px:-1}
1,pt:{mm:25.4/72,cm:2.54/72,in:1/72,pt:1,pc:6/72,px:-1},pc:{mm:25.4/6,cm:2.54/6,in:1/6,pt:12,pc:1,px:-1},px:{px:1}};function u(e){let s,n="px";if("string"===typeof e||e instanceof String)for(let t=0,r=c.length;t<r;t++){const s=c[t];if(e.endsWith(s)){n=s,e=e.substring(0,e.length-s.length);break}}return"px"===n&&"px"!==t.defaultUnit?s=l.in[t.defaultUnit]/t.defaultDPI:(s=l[n][t.defaultUnit],s<0&&(s=l[n].in*t.defaultDPI)),s*parseFloat(e)}function h(e){const t=e.elements;return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function p(e){const t=e.elements;return Math.sqrt(t[3]*t[3]+t[4]*t[4])}const d=[],f={},m=[],g=new n.Vkp,y=new n.Vkp,x=new n.Vkp,T=new n.Vkp,v=new n.FM8,b=new n.Pa4,M=new n.Vkp,A=(new DOMParser).parseFromString(e,"image/svg+xml");!function e(t,r){if(1!==t.nodeType)return;const c=function(e){if(!(e.hasAttribute("transform")||"use"===e.nodeName&&(e.hasAttribute("x")||e.hasAttribute("y"))))return null;const t=function(e){const t=new n.Vkp,s=g;if("use"===e.nodeName&&(e.hasAttribute("x")||e.hasAttribute("y"))){const s=u(e.getAttribute("x")),n=u(e.getAttribute("y"));t.translate(s,n)}if(e.hasAttribute("transform")){const n=e.getAttribute("transform").split(")");for(let e=n.length-1;e>=0;e--){const r=n[e].trim();if(""===r)continue;const o=r.indexOf("("),i=r.length;if(o>
10&&o<i){const e=r.substr(0,o),t=a(r.substr(o+1,i-o-1));switch(s.identity(),e){case"translate":if(t.length>=1){const e=t[0];let n=e;t.length>=2&&(n=t[1]),s.translate(e,n)}break;case"rotate":if(t.length>=1){let e=0,n=0,r=0;e=-t[0]*Math.PI/180,t.length>=3&&(n=t[1],r=t[2]),y.identity().translate(-n,-r),x.identity().rotate(e),T.multiplyMatrices(x,y),y.identity().translate(n,r),s.multiplyMatrices(y,T)}break;case"scale":if(t.length>=1){const e=t[0];let n=e;t.length>=2&&(n=t[1]),s.scale(e,n)}break;case"skewX":1===t.length&&s.set(1,Math.tan(t[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===t.length&&s.set(1,0,0,Math.tan(t[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===t.length&&s.set(t[0],t[2],t[4],t[1],t[3],t[5],0,0,1)}}t.premultiply(s)}}return t}(e);m.length>0&&t.premultiply(m[m.length-1]);return M.copy(t),m.push(t),t}(t);let l=!0,A=null;switch(t.nodeName){case"svg":break;case"style":!function(e){if(!e.sheet||!e.sheet.cssRules||!e.sheet.cssRules.length)return;for(let t=0;t<e.sheet.cssRules.length;t++){const s=e.sheet.cssRules[t];if(1!==s.type)continue;const n=s.selectorText.split(/,/gm).filter(Boolean).map((e=>e.trim()));for(let e=0;e<n.length;e++)f[n[e]]=Object.assign(f[n[e]]||{},s.style)}}(t);break;case"g":r=o(t,r);break;case"path":r=o(t,r),t.hasAttribute("d")&&(A=function(e){const t=new n.T_1,r=new n.FM8,o=new n.FM8,c=new n.FM8;let l=!0,u=!1;const h=e.getAttribute("d").match(/[a-df-z][^a-df-z]*/gi);for(let n=0,p=h.length;n<p;n++){const e=h[n],p=e.charAt(0),d=e.substr(1).trim();let f;switch(!0===l&&(u=!0,l=!1),p){case"M":f=a(d);for(let e=0,s=f.length;e<s;e+=2)r.x=f[e+0],r.y=f[e+1],o.x=r.x,o.y=r.y,0===e?t.moveTo(r.x,r.y):t.lineTo(r.x,r.y),0===e&&c.copy(r);break;case"H":f=a(d);for(let e=0,s=f.length;e<s;e++)r.x=f[e],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"V":f=a(d);for(let e=0,s=f.length;e<s;e++)r.y=f[e],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"L":f=a(d);for(let e=0,s=f.length;e<s;e+=2)r.x=f[e+0],r.y=f[e+1],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"C":f=a(d);for(let e=0,s=f.length;e<s;e+=6)t.bezierCurveTo(f[e+0],f[e+1],f[e+2],f[e+3],f[e+4],f[e+5]),o.x=f[e+2],o.y=f[e+3],r.x=f[e+4],r.y=f[e+5],0===e&&!0===u&&c.copy(r);break;case"S":f=a(d);for(let e=0,s=f.length;e<s;e+=4)t.bezierCurveTo(i(r.x,o.x),i(r.y,o.y),f[e+0],f[e+1],f[e+2],f[e+3]),o.x=f[e+0],o.y=f[e+1],r.x=f[e+2],r.y=f[e+3],0===e&&!0===u&&c.copy(r);break;case"Q":f=a(d);for(let e=0,s=f.length;e<s;e+=4)t.quadraticCurveTo(f[e+0],f[e+1],f[e+2],f[e+3]),o.x=f[e+0],o.y=f[e+1],r.x=f[e+2],r.y=f[e+3],0===e&&!0===u&&c.copy(r);break;case"T":f=a(d);for(let e=0,s=f.length;e<s;e+=2){const s=i(r.x,o.x),n=i(r.y,o.y);t.quadraticCurveTo(s,n,f[e+0],f[e+1]),o.x=s,o.y=n,r.x=f[e+0],r.y=f[e+1],0===e&&!0===u&&c.copy(r)}break;case"A":f=a(d,[3,4],7);for(let e=0,n=f.length;e<n;e+=7){if(f[e+5]==r.x&&f[e+6]==r.y)continue;const n=r.clone();r.x=f[e+5],r.y=f[e+6],o.x=r.x,o.y=r.y,s(t,f[e],f[e+1],f[e+2],f[e+3],f[e+4],n,r),0===e&&!0===u&&c.copy(r)}break;case"m":f=a(d);for(let e=0,s=f.length;e<s;e+=2)r.x+=f[e+0],r.y+=f[e+1],o.x=r.x,o.y=r.y,0===e?t.moveTo(r.x,r.y):t.lineTo(r.x,r.y),0===e&&c.copy(r);break;case"h":f=a(d);for(let e=0,s=f.length;e<s;e++)r.x+=f[e],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"v":f=a(d);for(let e=0,s=f.length;e<s;e++)r.y+=f[e],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"l":f=a(d);for(let e=0,s=f.length;e<s;e+=2)r.x+=f[e+0],r.y+=f[e+1],o.x=r.x,o.y=r.y,t.lineTo(r.x,r.y),0===e&&!0===u&&c.copy(r);break;case"c":f=a(d);for(let e=0,s=f.length;e<s;e+=6)t.bezierCurveTo(r.x+f[e+0],r.y+f[e+1],r.x+f[e+2],r.y+f[e+3],r.x+f[e+4],r.y+f[e+5]),o.x=r.x+f[e+2],o.y=r.y+f[e+3],r.x+=f[e+4],r.y+=f[e+5],0===e&&!0===u&&c.copy(r);break;case"s":f=a(d);for(let e=0,s=f.length;e<s;e+=4)t.bezierCurveTo(i(r.x,o.x),i(r.y,o.y),r.x+f[e+0],r.y+f[e+1],r.x+f[e+2],r.y+f[e+3]),o.x=r.x+f[e+0],o.y=r.y+f[e+1],r.x+=f[e+2],r.y+=f[e+3],0===e&&!0===u&&c.copy(r);break;case"q":f=a(d);for(let e=0,s=f.length;e<s;e+=4)t.quadraticCurveTo(r.x+f[e+0],r.y+f[e+1],r.x+f[e+2],r.y+f[e+3]),o.x=r.x+f[e+0],o.y=r.y+f[e+1],r.x+=f[e+2],r.y+=f[e+3],0===e&&!0===u&&c.copy(r);break;case"t":f=a(d);for(let e=0,s=f.length;e<s;e+=2){const s=i(r.x,o.x),n=i(r.y,o.y);t.quadraticCurveTo(s,n,r.x+f[e+0],r.y+f[e+1]),o.x=s,o.y=n,r.x=r.x+f[e+0],r.y=r.y+f[e+1],0===e&&!0===u&&c.copy(r)}break;case"a":f=a(d,[3,4],7);for(let e=0,n=f.length;e<n;e+=7){if(0==f[e+5]&&0==f[e+6])continue;const n=r.clone();r.x+=f[e+5],r.y+=f[e+6],o.x=r.x,o.y=r.y,s(t,f[e],f[e+1],f[e+2],f[e+3],f[e+4],n,r),0===e&&!0===u&&c.copy(r)}break;case"Z":case"z":t.currentPath.autoClose=!0,t.currentPath.curves.length>0&&(r.copy(c),t.currentPath.currentPoint.copy(r),l=!0);break;default:console.warn(e)}u=!1}return t}(t));break;
1case"rect":r=o(t,r),A=function(e){const t=u(e.getAttribute("x")||0),s=u(e.getAttribute("y")||0),r=u(e.getAttribute("rx")||e.getAttribute("ry")||0),o=u(e.getAttribute("ry")||e.getAttribute("rx")||0),i=u(e.getAttribute("width")),a=u(e.getAttribute("height")),c=.448084975506,l=new n.T_1;l.moveTo(t+r,s),l.lineTo(t+i-r,s),(0!==r||0!==o)&&l.bezierCurveTo(t+i-r*c,s,t+i,s+o*c,t+i,s+o);l.lineTo(t+i,s+a-o),(0!==r||0!==o)&&l.bezierCurveTo(t+i,s+a-o*c,t+i-r*c,s+a,t+i-r,s+a);l.lineTo(t+r,s+a),(0!==r||0!==o)&&l.bezierCurveTo(t+r*c,s+a,t,s+a-o*c,t,s+a-o);l.lineTo(t,s+o),(0!==r||0!==o)&&l.bezierCurveTo(t,s+o*c,t+r*c,s,t+r,s);return l}(t);break;case"polygon":r=o(t,r),A=function(e){function t(e,t,s){const n=u(t),i=u(s);0===o?r.moveTo(n,i):r.lineTo(n,i),o++}const s=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,r=new n.T_1;let o=0;return e.getAttribute("points").replace(s,t),r.currentPath.autoClose=!0,r}(t);break;case"polyline":r=o(t,r),A=function(e){function t(e,t,s){const n=u(t),i=u(s);0===o?r.moveTo(n,i):r.lineTo(n,i),o++}const s=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,r=new n.T_1;let o=0;return e.getAttribute("points").replace(s,t),r.currentPath.autoClose=!1,r}(t);break;case"circle":r=o(t,r),A=function(e){const t=u(e.getAttribute("cx")||0),s=u(e.getAttribute("cy")||0),r=u(e.getAttribute("r")||0),o=new n.y$t;o.absarc(t,s,r,0,2*Math.PI);const i=new n.T_1;return i.subPaths.push(o),i}(t);break;case"ellipse":r=o(t,r),A=function(e){const t=u(e.getAttribute("cx")||0),s=u(e.getAttribute("cy")||0),r=u(e.getAttribute("rx")||0),o=u(e.getAttribute("ry")||0),i=new n.y$t;i.absellipse(t,s,r,o,0,2*Math.PI);const a=new n.T_1;return a.subPaths.push(i),a}(t);break;case"line":r=o(t,r),A=function(e){const t=u(e.getAttribute("x1")||0),s=u(e.getAttribute("y1")||0),r=u(e.getAttribute("x2")||0),o=u(e.getAttribute("y2")||0),i=new n.T_1;return i.moveTo(t,s),i.lineTo(r,o),i.currentPath.autoClose=!1,i}(t);break;case"defs":l=!1;break;case"use":r=o(t,r);const c=t.href.baseVal.substring(1),h=t.viewportElement.getElementById(c);h?e(h,r):console.warn("SVGLoader: 'use node' references non-existent node id: "+c)}if(A&&(void 0!==r.fill&&"none"!==r.fill&&A.color.setStyle(r.fill),function(e,t){function s(e){b.set(e.x,e.y,1).applyMatrix3(t),e.set(b.x,b.y)}const n=function(e){return 0!==e.elements[1]||0!==e.elements[3]}(t),r=e.subPaths;for(let o=0,i=r.length;o<i;o++){const e=r[o].curves;for(let r=0;r<e.length;r++){const o=e[r];o.isLineCurve?(s(o.v1),s(o.v2)):o.isCubicBezierCurve?(s(o.v0),s(o.v1),s(o.v2),s(o.v3)):o.isQuadraticBezierCurve?(s(o.v0),s(o.v1),s(o.v2)):o.isEllipseCurve&&(n&&console.warn("SVGLoader: Elliptic arc or ellipse rotation or skewing is not implemented."),v.set(o.aX,o.aY),s(v),o.aX=v.x,o.aY=v.y,o.xRadius*=h(t),o.yRadius*=p(t))}}}(A,M),d.push(A),A.userData={node:t,style:r}),l){const s=t.childNodes;for(let t=0;t<s.length;t++)e(s[t],r)}c&&(m.pop(),m.length>0?M.copy(m[m.length-1]):M.identity())}(A.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4});return{paths:d,xml:A.documentElement}}static createShapes(e){const t=999999999,s=0,r=1,o=2,i=3,a=4,c=5,l=6,u={loc:s,t:0};function h(e,t,n,r){const i=e.x,a=t.x,c=n.x,l=r.x,h=e.y,d=t.y,f=n.y,m=r.y,g=(l-c)*(h-f)-(m-f)*(i-c),y=(m-f)*(a-i)-(l-c)*(d-h),x=g/y,T=((a-i)*(h-f)-(d-h)*(i-c))/y;if(0===y&&0!==g||x<=0||x>=1||T<0||T>1)return null;if(0===g&&0===y){for(let c=0;c<2;c++){if(p(0===c?n:r,e,t),u.loc==s){const e=0===c?n:r;return{x:e.x,y:e.y,t:u.t}}if(u.loc==o){return{x:+(i+u.t*(a-i)).toPrecision(10),y:+(h+u.t*(d-h)).toPrecision(10),t:u.t}}}return null}for(let o=0;o<2;o++)if(p(0===o?n:r,e,t),u.loc==s){const e=0===o?n:r;return{x:e.x,y:e.y,t:u.t}}return{x:+(i+x*(a-i)).toPrecision(10),y:+(h+x*(d-h)).toPrecision(10),t:x}}function p(e,t,n){const h=n.x-t.x,p=n.y-t.y,d=e.x-t.x,f=e.y-t.y,m=h*f-d*p;if(e.x===t.x&&e.y===t.y)return u.loc=s,void(u.t=0);if(e.x===n.x&&e.y===n.y)return u.loc=r,void(u.t=1);if(m<-Number.EPSILON)return void(u.loc=i);if(m>Number.EPSILON)return void(u.loc=a);
1if(h*d<0||p*f<0)return void(u.loc=c);if(Math.sqrt(h*h+p*p)<Math.sqrt(d*d+f*f))return void(u.loc=l);let g;g=0!==h?d/h:f/p,u.loc=o,u.t=g}function d(e,t,s){const r=new n.FM8;t.getCenter(r);const o=[];return s.forEach((t=>{if(t.boundingBox.containsPoint(r)){(function(e,t){const s=[],r=[];for(let o=1;o<e.length;o++){const i=e[o-1],a=e[o];for(let e=1;e<t.length;e++){const o=h(i,a,t[e-1],t[e]);null!==o&&void 0===s.find((e=>e.t<=o.t+Number.EPSILON&&e.t>=o.t-Number.EPSILON))&&(s.push(o),r.push(new n.FM8(o.x,o.y)))}}return r})(e,t.points).forEach((e=>{o.push({identifier:t.identifier,isCW:t.isCW,point:e})}))}})),o.sort(((e,t)=>e.point.x-t.point.x)),o}let f=0,m=t,g=-999999999,y=e.subPaths.map((e=>{const s=e.getPoints();let r=-999999999,o=t,i=-999999999,a=t;for(let t=0;t<s.length;t++){const e=s[t];e.y>r&&(r=e.y),e.y<o&&(o=e.y),e.x>i&&(i=e.x),e.x<a&&(a=e.x)}return g<=i&&(g=i+1),m>=a&&(m=a-1),{curves:e.curves,points:s,isCW:n.iDF.isClockWise(s),identifier:f++,boundingBox:new n.TUj(new n.FM8(a,o),new n.FM8(i,r))}}));y=y.filter((e=>e.points.length>1));const x=y.map((t=>function(e,t,s,r,o){null!==o&&void 0!==o&&""!==o||(o="nonzero");const i=new n.FM8;e.boundingBox.getCenter(i);const a=d([new n.FM8(s,i.y),new n.FM8(r,i.y)],e.boundingBox,t);a.sort(((e,t)=>e.point.x-t.point.x));const c=[],l=[];a.forEach((t=>{t.identifier===e.identifier?c.push(t):l.push(t)}));const u=c[0].point.x,h=[];let p=0;for(;p<l.length&&l[p].point.x<u;)h.length>0&&h[h.length-1]===l[p].identifier?h.pop():h.push(l[p].identifier),p++;if(h.push(e.identifier),"evenodd"===o){const t=h.length%2===0,s=h[h.length-2];return{identifier:e.identifier,isHole:t,for:s}}if("nonzero"===o){let s=!0,n=null,r=null;for(let e=0;e<h.length;e++){const o=h[e];s?(r=t[o].isCW,s=!1,n=o):r!==t[o].isCW&&(r=t[o].isCW,s=!0)}return{identifier:e.identifier,isHole:s,for:n}}console.warn('fill-rule: "'+o+'" is currently not implemented.')}(t,y,m,g,e.userData.style.fillRule))),T=[];return y.forEach((e=>{if(!x[e.identifier].isHole){const t=new n.bnF;t.curves=e.curves;x.filter((t=>t.isHole&&t.for===e.identifier)).forEach((e=>{const s=y[e.identifier],r=new n.y$t;r.curves=s.curves,t.holes.push(r)})),T.push(t)}})),T}static getStrokeStyle(e,t,s,n,r){return{strokeColor:t=void 0!==t?t:"#000",strokeWidth:e=void 0!==e?e:1,strokeLineJoin:s=void 0!==s?s:"miter",strokeLineCap:n=void 0!==n?n:"butt",strokeMiterLimit:r=void 0!==r?r:4}}static pointsToStroke(e,t,s,o){const i=[],a=[],c=[];if(0===r.pointsToStrokeWithBuffers(e,t,s,o,i,a,c))return null;const l=new n.u9r;return l.setAttribute("position",new n.a$l(i,3)),l.setAttribute("normal",new n.a$l(a,3)),l.setAttribute("uv",new n.a$l(c,2)),l}static pointsToStrokeWithBuffers(e,t,s,r,o,i,a,c){const l=new n.FM8,u=new n.FM8,h=new n.FM8,p=new n.FM8,d=new n.FM8,f=new n.FM8,m=new n.FM8,g=new n.FM8,y=new n.FM8,x=new n.FM8,T=new n.FM8,v=new n.FM8,b=new n.FM8,M=new n.FM8,A=new n.FM8,w=new n.FM8,R=new n.FM8;s=void 0!==s?s:12,r=void 0!==r?r:.001,c=void 0!==c?c:0;const S=(e=function(e){let t=!1;for(let n=1,o=e.length-1;n<o;n++)if(e[n].distanceTo(e[n+1])<r){t=!0;break}if(!t)return e;const s=[];s.push(e[0]);for(let n=1,o=e.length-1;n<o;n++)e[n].distanceTo(e[n+1])>=r&&s.push(e[n]);return s.push(e[e.length-1]),s}(e)).length;if(S<2)return 0;const E=e[0].equals(e[S-1]);let _,L,I=e[0];const P=t.strokeWidth/2,k=1/(S-1);let C,O,N,F,H=0,U=!1,D=0,G=3*c,V=2*c;B(e[0],e[1],l).multiplyScalar(P),g.copy(e[0]).sub(l),y.copy(e[0]).add(l),x.copy(g),T.copy(y);for(let n=1;n<S;n++){_=e[n],L=n===S-1?E?e[1]:void 0:e[n+1];const s=l;if(B(I,_,s),h.copy(s).multiplyScalar(P),v.copy(_).sub(h),b.copy(_).add(h),C=H+k,O=!1,void 0!==L){B(_,L,u),h.copy(u).multiplyScalar(P),M.copy(_).sub(h),A.copy(_).add(h),N=!0,h.subVectors(L,I),s.dot(h)<0&&(N=!1),1===n&&(U=N),h.subVectors(L,_),h.normalize();const e=Math.abs(s.dot(h));if(0!==e){const s=P/e;h.multiplyScalar(-s),p.subVectors(_,I),d.copy(p).setLength(s).add(h),w.copy(d).negate();const n=d.length(),r=p.length();p.divideScalar(r),f.subVectors(L,_);const o=f.length();switch(f.divideScalar(o),p.dot(w)<r&&f.dot(w)<o&&(O=!0),R.copy(d).add(_),w.add(_),F=!1,O?N?(A.copy(w),b.copy(w)):(M.copy(w),v.copy(w)):z(),t.strokeLineJoin){case"bevel":q(N,O,C);break;case"round":X(N,O),N?K(_,v,M,C,0):K(_,A,b,C,1);break;case"miter":case"miter-clip":default:const e=P*t.strokeMiterLimit/n;if(e<1){if("miter-clip"!==t.strokeLineJoin){q(N,O,C);break}X(N,O),N?(f.subVectors(R,v).multiplyScalar(e).add(v),m.subVectors(R,M).multiplyScalar(e).add(M),j(v,C,0),j(f,C,0),j(_,C,.5),j(_,C,.5),j(f,C,0),j(m,C,0),j(_,C,.5),j(m,C,0),j(M,C,0)):(f.subVectors(R,b).multiplyScalar(e).add(b),m.subVectors(R,A).multiplyScalar(e).add(A),j(b,C,1),j(f,C,1),j(_,C,.5),j(_,C,.5),j(f,C,1),j(m,C,1),j(_,C,.5),j(m,C,1),j(A,C,1))}else O?(N?(j(y,H,1),j(g,H,0),j(R,C,0),j(y,H,1),j(R,C,0),j(w,C,1)):(j(y,H,1),j(g,H,0),j(R,C,1),j(g,H,0),j(w,C,0),j(R,C,1)),N?M.copy(R):A.copy(R)):N?(j(v,C,0),j(R,C,0),j(_,C,.5),j(_,C,.5),j(R,C,0),j(M,C,0)):(j(b,C,1),j(R,C,1),j(_,C,.5),j(_,C,.5),j(R,C,1),j(A,C,1)),F=!0}}else z()}else z();E||n!==S-1||W(e[0],x,T,N,!0,H),H=C,I=_,g.copy(M),y.copy(A)}if(E){if(O&&o){let e=R,t=w;U!==N&&(e=w,t=R),N?(F||U)&&(t.toArray(o,0),t.toArray(o,9),F&&e.toArray(o,3)):!F&&U||(t.toArray(o,3),t.toArray(o,9),F&&e.toArray(o,0))}}else W(_,v,b,N,!1,C);return D;function B(e,t,s){return s.subVectors(t,e),s.set(-s.y,s.x).normalize()}function j(e,t,s){o&&(o[G]=e.x,o[G+1]=e.y,o[G+2]=0,i&&(i[G]=0,i[G+1]=0,i[G+2]=1),G+=3,a&&(a[V]=t,a[V+1]=s,V+=2)),D+=3}function K(e,t,n,r,o){l.copy(t).sub(e).normalize(),u.copy(n).sub(e).normalize();let i=Math.PI;const a=l.dot(u);Math.abs(a)<1&&(i=Math.abs(Math.acos(a))),i/=s,h.copy(t);for(let c=0,l=s-1;c<l;
1c++)p.copy(h).rotateAround(e,i),j(h,r,o),j(p,r,o),j(e,r,.5),h.copy(p);j(p,r,o),j(n,r,o),j(e,r,.5)}function z(){j(y,H,1),j(g,H,0),j(v,C,0),j(y,H,1),j(v,C,1),j(b,C,0)}function q(e,t,s){t?e?(j(y,H,1),j(g,H,0),j(v,C,0),j(y,H,1),j(v,C,0),j(w,C,1),j(v,s,0),j(M,s,0),j(w,s,.5)):(j(y,H,1),j(g,H,0),j(b,C,1),j(g,H,0),j(w,C,0),j(b,C,1),j(b,s,1),j(A,s,0),j(w,s,.5)):e?(j(v,s,0),j(M,s,0),j(_,s,.5)):(j(b,s,1),j(A,s,0),j(_,s,.5))}function X(e,t){t&&(e?(j(y,H,1),j(g,H,0),j(v,C,0),j(y,H,1),j(v,C,0),j(w,C,1),j(v,H,0),j(_,C,.5),j(w,C,1),j(_,C,.5),j(M,H,0),j(w,C,1)):(j(y,H,1),j(g,H,0),j(b,C,1),j(g,H,0),j(w,C,0),j(b,C,1),j(b,H,1),j(w,C,0),j(_,C,.5),j(_,C,.5),j(w,C,0),j(A,H,1)))}function W(e,s,n,r,i,a){switch(t.strokeLineCap){case"round":i?K(e,n,s,a,.5):K(e,s,n,a,.5);break;case"square":if(i)l.subVectors(s,e),u.set(l.y,-l.x),h.addVectors(l,u).add(e),p.subVectors(u,l).add(e),r?(h.toArray(o,3),p.toArray(o,0),p.toArray(o,9)):(h.toArray(o,3),h.toArray(o,9),p.toArray(o,0));else{l.subVectors(n,e),u.set(l.y,-l.x),h.addVectors(l,u).add(e),p.subVectors(u,l).add(e);const t=o.length;r?(h.toArray(o,t-3),p.toArray(o,t-6),p.toArray(o,t-12)):(h.toArray(o,t-6),p.toArray(o,t-3),p.toArray(o,t-12))}}}}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.