@needle-tools/engine 4.15.0-next.f391a30 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/components.needle.json +1 -1
  2. package/dist/{gltf-progressive-CTlvpS3A.js → gltf-progressive-Bm_6aEi4.js} +1 -1
  3. package/dist/{gltf-progressive-CMwJPwEt.umd.cjs → gltf-progressive-BttGBXw6.umd.cjs} +1 -1
  4. package/dist/{gltf-progressive-DYL3SLVb.min.js → gltf-progressive-T5WKTux5.min.js} +1 -1
  5. package/dist/materialx-CJyQZtjt.min.js +90 -0
  6. package/dist/materialx-DMs1E08Z.js +4636 -0
  7. package/dist/materialx-DaKKOoVk.umd.cjs +90 -0
  8. package/dist/{needle-engine.bundle-DsTdfmeb.min.js → needle-engine.bundle-CBq_OMnI.min.js} +122 -124
  9. package/dist/{needle-engine.bundle-DB4kLWO_.js → needle-engine.bundle-DGyiwNWR.js} +3226 -3232
  10. package/dist/{needle-engine.bundle-C1BFRZDF.umd.cjs → needle-engine.bundle-JN3eiiYc.umd.cjs} +113 -115
  11. package/dist/needle-engine.d.ts +52 -33
  12. package/dist/needle-engine.js +288 -287
  13. package/dist/needle-engine.min.js +1 -1
  14. package/dist/needle-engine.umd.cjs +1 -1
  15. package/dist/{postprocessing-BN-f4viE.min.js → postprocessing-06AXuvdv.min.js} +1 -1
  16. package/dist/{postprocessing-De9ZpJrk.js → postprocessing-CI2x8Cln.js} +1 -1
  17. package/dist/{postprocessing-DYmYOVm4.umd.cjs → postprocessing-CPDcA21P.umd.cjs} +1 -1
  18. package/dist/{three-examples-BHqRVpO_.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +12 -12
  19. package/dist/{three-examples-C0ZCCA_K.js → three-examples-CMYCd5nH.js} +192 -182
  20. package/dist/{three-examples-DmTY8tGr.min.js → three-examples-CQl1fFZp.min.js} +14 -14
  21. package/lib/engine/api.d.ts +2 -0
  22. package/lib/engine/api.js +2 -0
  23. package/lib/engine/api.js.map +1 -1
  24. package/lib/engine/debug/debug.js +1 -1
  25. package/lib/engine/debug/debug.js.map +1 -1
  26. package/lib/engine/debug/debug_spatial_console.js +1 -1
  27. package/lib/engine/debug/debug_spatial_console.js.map +1 -1
  28. package/lib/engine/engine_accessibility.d.ts +1 -1
  29. package/lib/engine/engine_accessibility.js +1 -1
  30. package/lib/engine/engine_accessibility.js.map +1 -1
  31. package/lib/engine/engine_context.d.ts +1 -1
  32. package/lib/engine/engine_context.js +2 -2
  33. package/lib/engine/engine_context.js.map +1 -1
  34. package/lib/engine/engine_create_objects.js +1 -1
  35. package/lib/engine/engine_create_objects.js.map +1 -1
  36. package/lib/engine/engine_gizmos.js +1 -1
  37. package/lib/engine/engine_gizmos.js.map +1 -1
  38. package/lib/engine/engine_license.js +2 -7
  39. package/lib/engine/engine_license.js.map +1 -1
  40. package/lib/engine/engine_test_utils.d.ts +39 -0
  41. package/lib/engine/engine_test_utils.js +84 -0
  42. package/lib/engine/engine_test_utils.js.map +1 -0
  43. package/lib/engine/engine_utils.js +2 -2
  44. package/lib/engine/engine_utils.js.map +1 -1
  45. package/lib/engine/export/gltf/index.js +1 -1
  46. package/lib/engine/export/gltf/index.js.map +1 -1
  47. package/lib/engine/webcomponents/logo-element.d.ts +3 -6
  48. package/lib/engine/webcomponents/logo-element.js +0 -18
  49. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  50. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  51. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  52. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +7 -10
  53. package/lib/engine/webcomponents/needle menu/needle-menu.js +4 -14
  54. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  55. package/lib/engine/webcomponents/needle-engine.ar-overlay.js +1 -10
  56. package/lib/engine/webcomponents/needle-engine.ar-overlay.js.map +1 -1
  57. package/lib/engine/webcomponents/needle-engine.d.ts +0 -3
  58. package/lib/engine/webcomponents/needle-engine.js +0 -10
  59. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  60. package/lib/engine-components/Component.js +1 -0
  61. package/lib/engine-components/Component.js.map +1 -1
  62. package/lib/engine-components/ReflectionProbe.d.ts +2 -24
  63. package/lib/engine-components/ReflectionProbe.js +2 -28
  64. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  65. package/lib/engine-components/Skybox.js +2 -4
  66. package/lib/engine-components/Skybox.js.map +1 -1
  67. package/lib/engine-components/export/gltf/GltfExport.js +1 -1
  68. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -1
  69. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +2 -2
  70. package/lib/engine-components/export/usdz/USDZExporter.js +1 -1
  71. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  72. package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.js +2 -2
  73. package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.js.map +1 -1
  74. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  75. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
  76. package/package.json +14 -18
  77. package/plugins/common/buildinfo.js +10 -46
  78. package/plugins/common/files.js +1 -2
  79. package/plugins/common/license.js +69 -144
  80. package/plugins/common/logger.js +11 -172
  81. package/plugins/common/worker.js +4 -5
  82. package/plugins/types/userconfig.d.ts +2 -40
  83. package/plugins/vite/alias.js +5 -6
  84. package/plugins/vite/asap.js +5 -6
  85. package/plugins/vite/build-pipeline.js +41 -224
  86. package/plugins/vite/buildinfo.js +6 -66
  87. package/plugins/vite/copyfiles.js +12 -41
  88. package/plugins/vite/custom-element-data.js +16 -26
  89. package/plugins/vite/defines.js +5 -8
  90. package/plugins/vite/dependencies.js +10 -16
  91. package/plugins/vite/dependency-watcher.js +7 -35
  92. package/plugins/vite/drop-client.js +5 -7
  93. package/plugins/vite/drop.js +14 -16
  94. package/plugins/vite/editor-connection.js +16 -18
  95. package/plugins/vite/imports-logger.js +2 -12
  96. package/plugins/vite/index.js +3 -8
  97. package/plugins/vite/local-files.js +441 -2
  98. package/plugins/vite/logger.client.js +35 -45
  99. package/plugins/vite/logger.js +3 -6
  100. package/plugins/vite/meta.js +4 -18
  101. package/plugins/vite/needle-app.js +3 -4
  102. package/plugins/vite/peer.js +1 -2
  103. package/plugins/vite/pwa.js +17 -33
  104. package/plugins/vite/reload.js +2 -24
  105. package/src/engine/api.ts +3 -0
  106. package/src/engine/debug/debug.ts +1 -1
  107. package/src/engine/debug/debug_spatial_console.ts +1 -5
  108. package/src/engine/engine_accessibility.ts +1 -2
  109. package/src/engine/engine_context.ts +2 -2
  110. package/src/engine/engine_create_objects.ts +1 -1
  111. package/src/engine/engine_gizmos.ts +5 -9
  112. package/src/engine/engine_license.ts +2 -7
  113. package/src/engine/engine_test_utils.ts +109 -0
  114. package/src/engine/engine_utils.ts +2 -2
  115. package/src/engine/export/gltf/index.ts +1 -1
  116. package/src/engine/webcomponents/logo-element.ts +3 -20
  117. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -6
  118. package/src/engine/webcomponents/needle menu/needle-menu.ts +11 -23
  119. package/src/engine/webcomponents/needle-engine.ar-overlay.ts +2 -13
  120. package/src/engine/webcomponents/needle-engine.ts +1 -13
  121. package/src/engine-components/Component.ts +2 -1
  122. package/src/engine-components/ReflectionProbe.ts +9 -33
  123. package/src/engine-components/Skybox.ts +2 -4
  124. package/src/engine-components/export/gltf/GltfExport.ts +1 -1
  125. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2 -2
  126. package/src/engine-components/export/usdz/USDZExporter.ts +1 -1
  127. package/src/engine-components/export/usdz/extensions/behavior/PhysicsExtension.ts +2 -2
  128. package/src/include/draco/draco_decoder.js +34 -0
  129. package/src/include/draco/draco_decoder.wasm +0 -0
  130. package/src/include/draco/draco_wasm_wrapper.js +117 -0
  131. package/src/include/ktx2/basis_transcoder.js +19 -0
  132. package/src/include/ktx2/basis_transcoder.wasm +0 -0
  133. package/src/include/needle/arial-msdf.json +1472 -0
  134. package/src/include/needle/arial.png +0 -0
  135. package/src/include/needle/poweredbyneedle.webp +0 -0
  136. package/dist/materialx-4jJLLe9Q.js +0 -4174
  137. package/dist/materialx-Bt9FHwco.min.js +0 -158
  138. package/dist/materialx-NDD0y4JY.umd.cjs +0 -158
  139. package/lib/engine/export/gltf/EXT_mesh_gpu_instancing_exporter.js.map +0 -1
  140. package/plugins/common/needle-engine-skill.md +0 -175
  141. package/plugins/vite/ai.js +0 -71
  142. package/plugins/vite/local-files-analysis.js +0 -789
  143. package/plugins/vite/local-files-core.js +0 -992
  144. package/plugins/vite/local-files-internals.js +0 -28
  145. package/plugins/vite/local-files-types.d.ts +0 -111
  146. package/plugins/vite/local-files-utils.js +0 -359
  147. package/plugins/vite/logging.js +0 -129
  148. /package/lib/{engine/export/gltf → include/three}/EXT_mesh_gpu_instancing_exporter.d.ts +0 -0
  149. /package/lib/{engine/export/gltf → include/three}/EXT_mesh_gpu_instancing_exporter.js +0 -0
  150. /package/src/{engine/export/gltf → include/three}/EXT_mesh_gpu_instancing_exporter.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Mesh as q, SphereGeometry as ui, Vector3 as P, MeshBasicMaterial as Qt, Node as fa, PerspectiveCamera as gs, NodeFrame as Ia, NodeBuilder as ma, GLSLNodeParser as Ea, ShaderLib as wt, UniformsUtils as gi, UniformsLib as Un, normalView as ba, defaultShaderStages as Yn, ShaderChunk as Ca, Material as en, TrianglesDrawMode as Ba, TriangleFanDrawMode as qs, TriangleStripDrawMode as Do, Matrix4 as ue, Loader as kt, LoaderUtils as tn, FileLoader as It, MeshPhysicalMaterial as Tt, Vector2 as Le, Color as Se, LinearSRGBColorSpace as Xe, SRGBColorSpace as ge, SpotLight as Ro, PointLight as zs, DirectionalLight as _o, InstancedMesh as wa, Quaternion as Te, InstancedBufferAttribute as ya, Object3D as xt, TextureLoader as di, ImageBitmapLoader as Qa, BufferAttribute as st, InterleavedBuffer as xa, LinearMipmapLinearFilter as jn, NearestMipmapLinearFilter as Mo, LinearMipmapNearestFilter as Fo, NearestMipmapNearestFilter as pi, LinearFilter as rt, NearestFilter as cs, RepeatWrapping as on, MirroredRepeatWrapping as ko, ClampToEdgeWrapping as ls, PointsMaterial as _n, LineBasicMaterial as Ft, MeshStandardMaterial as fi, DoubleSide as Ii, PropertyBinding as Lt, BufferGeometry as ut, SkinnedMesh as Lo, LineSegments as hs, Line as pt, LineLoop as Sa, Points as is, Group as nn, MathUtils as Qe, OrthographicCamera as No, Skeleton as Uo, AnimationClip as Go, Bone as Ys, InterpolateDiscrete as Po, InterpolateLinear as mi, InterleavedBufferAttribute as $t, Texture as Ks, VectorKeyframeTrack as Js, NumberKeyframeTrack as Vs, QuaternionKeyframeTrack as Ws, ColorManagement as Ve, FrontSide as Oo, Interpolant as Ta, Box3 as ds, Sphere as Ei, RGBA_S3TC_DXT1_Format as Xs, RGB_PVRTC_4BPPV1_Format as va, RGB_ETC2_Format as Ho, RGB_ETC1_Format as Da, RGBA_S3TC_DXT5_Format as Zs, RGBA_PVRTC_4BPPV1_Format as Ra, RGBA_ETC2_EAC_Format as jo, RGBA_BPTC_Format as $s, RGB_BPTC_UNSIGNED_Format as _a, RGBA_ASTC_4x4_Format as os, RGBAFormat as zt, FloatType as mt, HalfFloatType as We, UnsignedByteType as dt, CompressedCubeTexture as Ma, CompressedArrayTexture as Fa, CompressedTexture as Gn, NoColorSpace as us, RGBA_S3TC_DXT3_Format as Mi, RGB_S3TC_DXT1_Format as Fi, RGBA_ASTC_6x6_Format as ki, RGBFormat as ei, RedFormat as gn, RGFormat as Mn, UnsignedInt101111Type as qo, UnsignedInt5999Type as zo, DataTexture as ka, Data3DTexture as La, ExtrudeGeometry as Na, ShapePath as Ua, Raycaster as bi, CylinderGeometry as Ye, BoxGeometry as je, Float32BufferAttribute as Fe, OctahedronGeometry as Kn, TorusGeometry as bn, Euler as qt, Controls as Yo, PlaneGeometry as Ci, DataTextureLoader as Ko, DataUtils as dn, Vector4 as Nt, Curve as Ga, MeshPhongMaterial as Pn, MeshLambertMaterial as Pa, EquirectangularReflectionMapping as Oa, AmbientLight as Ha, Uint16BufferAttribute as ja, Matrix3 as Jo, ShapeUtils as qa, DefaultLoadingManager as za, Ray as Ya, Plane as Ka, MOUSE as fn, TOUCH as pn, Spherical as Li, ShaderMaterial as Vo, Uniform$1 as Ja, Scene as ti, WebGLRenderer as Va, CanvasTexture as Wo, REVISION as Wa, Source as Xa, InstancedBufferGeometry as Za, InstancedInterleavedBuffer as ni, WireframeGeometry as $a, Line3 as eA } from "./three-Bvk2VKbF.js";
2
- class gh extends q {
2
+ class ph extends q {
3
3
  constructor(e, t, s, n = 128) {
4
4
  if (t <= 0 || s <= 0 || n <= 0)
5
5
  throw new Error("GroundedSkybox height, radius, and resolution must be positive.");
@@ -431,7 +431,7 @@ rs.Panel = function(A, e, t) {
431
431
  }
432
432
  };
433
433
  };
434
- function dh(A, e = 1e-4) {
434
+ function fh(A, e = 1e-4) {
435
435
  e = Math.max(e, Number.EPSILON);
436
436
  const t = {}, s = A.getIndex(), n = A.getAttribute("position"), i = s ? s.count : n.count;
437
437
  let o = 0;
@@ -2101,7 +2101,7 @@ function Hi(A, e, t) {
2101
2101
  return e.targets !== void 0 ? RA(A, e.targets, t) : A;
2102
2102
  });
2103
2103
  }
2104
- var Th = (function() {
2104
+ var Dh = (function() {
2105
2105
  var A = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb", t = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]), s = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
2106
2106
  if (typeof WebAssembly != "object")
2107
2107
  return {
@@ -2198,7 +2198,7 @@ var Th = (function() {
2198
2198
  };
2199
2199
  })();
2200
2200
  const Bs = /* @__PURE__ */ new WeakMap();
2201
- class vh extends kt {
2201
+ class Rh extends kt {
2202
2202
  constructor(e) {
2203
2203
  super(e), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = {
2204
2204
  position: "POSITION",
@@ -3085,7 +3085,7 @@ function Er(A) {
3085
3085
  const e = A.dataFormatDescriptor[0];
3086
3086
  return e.colorPrimaries === jA ? e.transferFunction === qi ? ge : Xe : e.colorPrimaries === qA ? e.transferFunction === qi ? rc : ac : e.colorPrimaries === HA ? us : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), us);
3087
3087
  }
3088
- class Dh extends Na {
3088
+ class _h extends Na {
3089
3089
  constructor(e, t = {}) {
3090
3090
  const s = t.font;
3091
3091
  if (s === void 0)
@@ -3097,7 +3097,7 @@ class Dh extends Na {
3097
3097
  this.type = "TextGeometry";
3098
3098
  }
3099
3099
  }
3100
- class Rh extends kt {
3100
+ class Mh extends kt {
3101
3101
  constructor(e) {
3102
3102
  super(e);
3103
3103
  }
@@ -3171,7 +3171,7 @@ const Wt = new bi(), He = new P(), Ht = new P(), ye = new Te(), Ki = {
3171
3171
  Y: new P(0, 1, 0),
3172
3172
  Z: new P(0, 0, 1)
3173
3173
  }, vs = { type: "change" }, Ji = { type: "mouseDown", mode: null }, Vi = { type: "mouseUp", mode: null }, Wi = { type: "objectChange" };
3174
- class _h extends Yo {
3174
+ class Fh extends Yo {
3175
3175
  constructor(e, t = null) {
3176
3176
  super(void 0, t);
3177
3177
  const s = new mc(this);
@@ -4154,7 +4154,7 @@ var li = function(A) {
4154
4154
  }, Nc = function(A, e, t, s, n) {
4155
4155
  Ge(A, e, 101010256), Ge(A, e + 8, t), Ge(A, e + 10, t), Ge(A, e + 12, s), Ge(A, e + 16, n);
4156
4156
  };
4157
- function Mh(A, e) {
4157
+ function kh(A, e) {
4158
4158
  e || (e = {});
4159
4159
  var t = {}, s = [];
4160
4160
  Sr(A, "", t, e);
@@ -4182,7 +4182,7 @@ function Mh(A, e) {
4182
4182
  }
4183
4183
  return Nc(B, n, s.length, D, Q), B;
4184
4184
  }
4185
- class Fh extends Ko {
4185
+ class Uc extends Ko {
4186
4186
  constructor(e) {
4187
4187
  super(e), this.type = We;
4188
4188
  }
@@ -5100,7 +5100,11 @@ class Fh extends Ko {
5100
5100
  return super.load(e, i, s, n);
5101
5101
  }
5102
5102
  }
5103
- class kh extends Ko {
5103
+ const Lh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5104
+ __proto__: null,
5105
+ EXRLoader: Uc
5106
+ }, Symbol.toStringTag, { value: "Module" }));
5107
+ class Gc extends Ko {
5104
5108
  constructor(e) {
5105
5109
  super(e), this.type = We;
5106
5110
  }
@@ -5246,6 +5250,10 @@ class kh extends Ko {
5246
5250
  return super.load(e, i, s, n);
5247
5251
  }
5248
5252
  }
5253
+ const Nh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5254
+ __proto__: null,
5255
+ RGBELoader: Gc
5256
+ }, Symbol.toStringTag, { value: "Module" }));
5249
5257
  function Tr(A, e, t) {
5250
5258
  const s = t.length - A - 1;
5251
5259
  if (e >= t[s])
@@ -5257,7 +5265,7 @@ function Tr(A, e, t) {
5257
5265
  e < t[o] ? i = o : n = o, o = Math.floor((n + i) / 2);
5258
5266
  return o;
5259
5267
  }
5260
- function Uc(A, e, t, s) {
5268
+ function Pc(A, e, t, s) {
5261
5269
  const n = [], i = [], o = [];
5262
5270
  n[0] = 1;
5263
5271
  for (let r = 1; r <= t; ++r) {
@@ -5271,15 +5279,15 @@ function Uc(A, e, t, s) {
5271
5279
  }
5272
5280
  return n;
5273
5281
  }
5274
- function Gc(A, e, t, s) {
5275
- const n = Tr(A, s, e), i = Uc(n, s, A, e), o = new Nt(0, 0, 0, 0);
5282
+ function Oc(A, e, t, s) {
5283
+ const n = Tr(A, s, e), i = Pc(n, s, A, e), o = new Nt(0, 0, 0, 0);
5276
5284
  for (let r = 0; r <= A; ++r) {
5277
5285
  const a = t[n - A + r], c = i[r], l = a.w * c;
5278
5286
  o.x += a.x * l, o.y += a.y * l, o.z += a.z * l, o.w += a.w * c;
5279
5287
  }
5280
5288
  return o;
5281
5289
  }
5282
- function Pc(A, e, t, s, n) {
5290
+ function Hc(A, e, t, s, n) {
5283
5291
  const i = [];
5284
5292
  for (let h = 0; h <= t; ++h)
5285
5293
  i[h] = 0;
@@ -5330,8 +5338,8 @@ function Pc(A, e, t, s, n) {
5330
5338
  }
5331
5339
  return o;
5332
5340
  }
5333
- function Oc(A, e, t, s, n) {
5334
- const i = n < A ? n : A, o = [], r = Tr(A, s, e), a = Pc(r, s, A, i, e), c = [];
5341
+ function jc(A, e, t, s, n) {
5342
+ const i = n < A ? n : A, o = [], r = Tr(A, s, e), a = Hc(r, s, A, i, e), c = [];
5335
5343
  for (let l = 0; l < t.length; ++l) {
5336
5344
  const h = t[l].clone(), g = h.w;
5337
5345
  h.x *= g, h.y *= g, h.z *= g, c[l] = h;
@@ -5346,7 +5354,7 @@ function Oc(A, e, t, s, n) {
5346
5354
  o[l] = new Nt(0, 0, 0);
5347
5355
  return o;
5348
5356
  }
5349
- function Hc(A, e) {
5357
+ function qc(A, e) {
5350
5358
  let t = 1;
5351
5359
  for (let n = 2; n <= A; ++n)
5352
5360
  t *= n;
@@ -5357,7 +5365,7 @@ function Hc(A, e) {
5357
5365
  s *= n;
5358
5366
  return t / s;
5359
5367
  }
5360
- function jc(A) {
5368
+ function zc(A) {
5361
5369
  const e = A.length, t = [], s = [];
5362
5370
  for (let i = 0; i < e; ++i) {
5363
5371
  const o = A[i];
@@ -5367,16 +5375,16 @@ function jc(A) {
5367
5375
  for (let i = 0; i < e; ++i) {
5368
5376
  const o = t[i].clone();
5369
5377
  for (let r = 1; r <= i; ++r)
5370
- o.sub(n[i - r].clone().multiplyScalar(Hc(i, r) * s[r]));
5378
+ o.sub(n[i - r].clone().multiplyScalar(qc(i, r) * s[r]));
5371
5379
  n[i] = o.divideScalar(s[0]);
5372
5380
  }
5373
5381
  return n;
5374
5382
  }
5375
- function qc(A, e, t, s, n) {
5376
- const i = Oc(A, e, t, s, n);
5377
- return jc(i);
5383
+ function Yc(A, e, t, s, n) {
5384
+ const i = jc(A, e, t, s, n);
5385
+ return zc(i);
5378
5386
  }
5379
- class zc extends Ga {
5387
+ class Kc extends Ga {
5380
5388
  constructor(e, t, s, n, i) {
5381
5389
  super(), this.degree = e, this.knots = t, this.controlPoints = [], this.startKnot = n || 0, this.endKnot = i || this.knots.length - 1;
5382
5390
  for (let o = 0; o < s.length; ++o) {
@@ -5385,16 +5393,16 @@ class zc extends Ga {
5385
5393
  }
5386
5394
  }
5387
5395
  getPoint(e, t = new P()) {
5388
- const s = t, n = this.knots[this.startKnot] + e * (this.knots[this.endKnot] - this.knots[this.startKnot]), i = Gc(this.degree, this.knots, this.controlPoints, n);
5396
+ const s = t, n = this.knots[this.startKnot] + e * (this.knots[this.endKnot] - this.knots[this.startKnot]), i = Oc(this.degree, this.knots, this.controlPoints, n);
5389
5397
  return i.w !== 1 && i.divideScalar(i.w), s.set(i.x, i.y, i.z);
5390
5398
  }
5391
5399
  getTangent(e, t = new P()) {
5392
- const s = t, n = this.knots[0] + e * (this.knots[this.knots.length - 1] - this.knots[0]), i = qc(this.degree, this.knots, this.controlPoints, n, 1);
5400
+ const s = t, n = this.knots[0] + e * (this.knots[this.knots.length - 1] - this.knots[0]), i = Yc(this.degree, this.knots, this.controlPoints, n, 1);
5393
5401
  return s.copy(i[1]).normalize(), s;
5394
5402
  }
5395
5403
  }
5396
5404
  let re, De, ze;
5397
- class Lh extends kt {
5405
+ class Uh extends kt {
5398
5406
  constructor(e) {
5399
5407
  super(e);
5400
5408
  }
@@ -5409,30 +5417,30 @@ class Lh extends kt {
5409
5417
  }, s, n);
5410
5418
  }
5411
5419
  parse(e, t) {
5412
- if (Xc(e))
5413
- re = new Wc().parse(e);
5420
+ if ($c(e))
5421
+ re = new Zc().parse(e);
5414
5422
  else {
5415
5423
  const n = Rr(e);
5416
- if (!Zc(n))
5424
+ if (!el(n))
5417
5425
  throw new Error("THREE.FBXLoader: Unknown format.");
5418
5426
  if (ao(n) < 7e3)
5419
5427
  throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + ao(n));
5420
- re = new Vc().parse(n);
5428
+ re = new Xc().parse(n);
5421
5429
  }
5422
5430
  const s = new di(this.manager).setPath(this.resourcePath || t).setCrossOrigin(this.crossOrigin);
5423
- return new Yc(s, this.manager).parse(re);
5431
+ return new Jc(s, this.manager).parse(re);
5424
5432
  }
5425
5433
  getFbxTree() {
5426
5434
  return re;
5427
5435
  }
5428
5436
  }
5429
- class Yc {
5437
+ class Jc {
5430
5438
  constructor(e, t) {
5431
5439
  this.textureLoader = e, this.manager = t;
5432
5440
  }
5433
5441
  parse() {
5434
5442
  De = this.parseConnections();
5435
- const e = this.parseImages(), t = this.parseTextures(e), s = this.parseMaterials(t), n = this.parseDeformers(), i = new Kc().parse(n);
5443
+ const e = this.parseImages(), t = this.parseTextures(e), s = this.parseMaterials(t), n = this.parseDeformers(), i = new Vc().parse(n);
5436
5444
  return this.parseScene(n, i, s), ze;
5437
5445
  }
5438
5446
  // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )
@@ -5721,7 +5729,7 @@ class Yc {
5721
5729
  }
5722
5730
  a.isSkinnedMesh && (a.computeBoundingBox(), a.computeBoundingSphere(), a.boundingBox.expandByScalar(3), a.boundingSphere.radius *= 3);
5723
5731
  });
5724
- const r = new Jc().parse();
5732
+ const r = new Wc().parse();
5725
5733
  ze.children.length === 1 && ze.children[0].isGroup && (ze.children[0].animations = r, ze = ze.children[0]), ze.animations = r;
5726
5734
  }
5727
5735
  // parse nodes in FBXTree.Objects.Model
@@ -5936,7 +5944,7 @@ class Yc {
5936
5944
  }
5937
5945
  }
5938
5946
  }
5939
- class Kc {
5947
+ class Vc {
5940
5948
  constructor() {
5941
5949
  this.negativeMaterialIndices = !1;
5942
5950
  }
@@ -6223,11 +6231,11 @@ class Kc {
6223
6231
  for (let h = 0; h < s; ++h)
6224
6232
  i.push(i[h]);
6225
6233
  }
6226
- const l = new zc(s, n, i, r, a).getPoints(i.length * 12);
6234
+ const l = new Kc(s, n, i, r, a).getPoints(i.length * 12);
6227
6235
  return new ut().setFromPoints(l);
6228
6236
  }
6229
6237
  }
6230
- class Jc {
6238
+ class Wc {
6231
6239
  // take raw animation clips and turn them into three.js animation clips
6232
6240
  parse() {
6233
6241
  const e = [], t = this.parseClips();
@@ -6271,7 +6279,7 @@ class Jc {
6271
6279
  for (const s in t) {
6272
6280
  const n = {
6273
6281
  id: t[s].id,
6274
- times: t[s].KeyTime.a.map($c),
6282
+ times: t[s].KeyTime.a.map(tl),
6275
6283
  values: t[s].KeyValueFloat.a
6276
6284
  }, i = De.get(n.id);
6277
6285
  if (i !== void 0) {
@@ -6485,7 +6493,7 @@ class Jc {
6485
6493
  return [i, o];
6486
6494
  }
6487
6495
  }
6488
- class Vc {
6496
+ class Xc {
6489
6497
  getPrevNode() {
6490
6498
  return this.nodeStack[this.currentIndent - 2];
6491
6499
  }
@@ -6539,7 +6547,7 @@ class Vc {
6539
6547
  let h = i.split(",").slice(3);
6540
6548
  h = h.map(function(g) {
6541
6549
  return g.trim().replace(/^"/, "");
6542
- }), n = "connections", i = [c, l], tl(i, h), o[n] === void 0 && (o[n] = []);
6550
+ }), n = "connections", i = [c, l], sl(i, h), o[n] === void 0 && (o[n] = []);
6543
6551
  }
6544
6552
  n === "Node" && (o.id = i), n in o && Array.isArray(o[n]) ? o[n].push(i) : n !== "a" ? o[n] = i : o.a = i, this.setCurrentProp(o, n), n === "a" && i.slice(-1) !== "," && (o.a = ks(i));
6545
6553
  }
@@ -6580,7 +6588,7 @@ class Vc {
6580
6588
  }, this.setCurrentProp(this.getPrevNode(), i);
6581
6589
  }
6582
6590
  }
6583
- class Wc {
6591
+ class Zc {
6584
6592
  parse(e) {
6585
6593
  const t = new ro(e);
6586
6594
  t.skip(23);
@@ -6809,11 +6817,11 @@ class vr {
6809
6817
  this[e] = t;
6810
6818
  }
6811
6819
  }
6812
- function Xc(A) {
6820
+ function $c(A) {
6813
6821
  const e = "Kaydara FBX Binary \0";
6814
6822
  return A.byteLength >= e.length && e === Rr(A, 0, e.length);
6815
6823
  }
6816
- function Zc(A) {
6824
+ function el(A) {
6817
6825
  const e = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"];
6818
6826
  let t = 0;
6819
6827
  function s(n) {
@@ -6831,10 +6839,10 @@ function ao(A) {
6831
6839
  return parseInt(t[1]);
6832
6840
  throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.");
6833
6841
  }
6834
- function $c(A) {
6842
+ function tl(A) {
6835
6843
  return A / 46186158e3;
6836
6844
  }
6837
- const el = [];
6845
+ const nl = [];
6838
6846
  function Xn(A, e, t, s) {
6839
6847
  let n;
6840
6848
  switch (s.mappingType) {
@@ -6855,7 +6863,7 @@ function Xn(A, e, t, s) {
6855
6863
  }
6856
6864
  s.referenceType === "IndexToDirect" && (n = s.indices[n]);
6857
6865
  const i = n * s.dataSize, o = i + s.dataSize;
6858
- return nl(el, s.buffer, i, o);
6866
+ return il(nl, s.buffer, i, o);
6859
6867
  }
6860
6868
  const Fs = new qt(), ln = new P();
6861
6869
  function Dr(A) {
@@ -6920,16 +6928,16 @@ function ks(A) {
6920
6928
  function Rr(A, e, t) {
6921
6929
  return e === void 0 && (e = 0), t === void 0 && (t = A.byteLength), new TextDecoder().decode(new Uint8Array(A, e, t));
6922
6930
  }
6923
- function tl(A, e) {
6931
+ function sl(A, e) {
6924
6932
  for (let t = 0, s = A.length, n = e.length; t < n; t++, s++)
6925
6933
  A[s] = e[t];
6926
6934
  }
6927
- function nl(A, e, t, s) {
6935
+ function il(A, e, t, s) {
6928
6936
  for (let n = t, i = 0; n < s; n++, i++)
6929
6937
  A[i] = e[n];
6930
6938
  return A;
6931
6939
  }
6932
- class sl extends kt {
6940
+ class ol extends kt {
6933
6941
  constructor(e) {
6934
6942
  super(e);
6935
6943
  }
@@ -6991,11 +6999,11 @@ class sl extends kt {
6991
6999
  } else
6992
7000
  n[h] = g;
6993
7001
  }
6994
- const r = new il(this.resourcePath || t, this.materialOptions);
7002
+ const r = new rl(this.resourcePath || t, this.materialOptions);
6995
7003
  return r.setCrossOrigin(this.crossOrigin), r.setManager(this.manager), r.setMaterials(o), r;
6996
7004
  }
6997
7005
  }
6998
- class il {
7006
+ class rl {
6999
7007
  constructor(e = "", t = {}) {
7000
7008
  this.baseUrl = e, this.options = t, this.materialsInfo = {}, this.materials = {}, this.materialsArray = [], this.nameLookup = {}, this.crossOrigin = "anonymous", this.side = this.options.side !== void 0 ? this.options.side : Oo, this.wrap = this.options.wrap !== void 0 ? this.options.wrap : on;
7001
7009
  }
@@ -7121,8 +7129,8 @@ class il {
7121
7129
  return t !== void 0 && (a.mapping = t), a;
7122
7130
  }
7123
7131
  }
7124
- const ol = /^[og]\s*(.+)?/, rl = /^mtllib /, al = /^usemtl /, Al = /^usemap /, Ao = /\s+/, co = new P(), Ls = new P(), lo = new P(), ho = new P(), lt = new P(), Zn = new Se();
7125
- function cl() {
7132
+ const al = /^[og]\s*(.+)?/, Al = /^mtllib /, cl = /^usemtl /, ll = /^usemap /, Ao = /\s+/, co = new P(), Ls = new P(), lo = new P(), ho = new P(), lt = new P(), Zn = new Se();
7133
+ function hl() {
7126
7134
  const A = {
7127
7135
  objects: [],
7128
7136
  object: {},
@@ -7282,9 +7290,9 @@ function cl() {
7282
7290
  };
7283
7291
  return A.startObject("", !1), A;
7284
7292
  }
7285
- class Nh extends kt {
7293
+ class Gh extends kt {
7286
7294
  constructor(e) {
7287
- super(e), this.materials = null, this.materialsLoader = new sl(e);
7295
+ super(e), this.materials = null, this.materialsLoader = new ol(e);
7288
7296
  }
7289
7297
  load(e, t, s, n) {
7290
7298
  const i = this, o = new It(this.manager);
@@ -7317,7 +7325,7 @@ class Nh extends kt {
7317
7325
  return this.materials = e, this;
7318
7326
  }
7319
7327
  parse(e, t = !1) {
7320
- const s = new cl();
7328
+ const s = new hl();
7321
7329
  e.indexOf(`\r
7322
7330
  `) !== -1 && (e = e.replace(/\r\n/g, `
7323
7331
  `)), e.indexOf(`\\
@@ -7398,14 +7406,14 @@ class Nh extends kt {
7398
7406
  } else if (c === "p") {
7399
7407
  const h = a.slice(1).trim().split(" ");
7400
7408
  s.addPointGeometry(h);
7401
- } else if ((i = ol.exec(a)) !== null) {
7409
+ } else if ((i = al.exec(a)) !== null) {
7402
7410
  const l = (" " + i[0].slice(1).trim()).slice(1);
7403
7411
  s.startObject(l);
7404
- } else if (al.test(a))
7412
+ } else if (cl.test(a))
7405
7413
  s.object.startMaterial(a.substring(7).trim(), s.materialLibraries);
7406
- else if (rl.test(a))
7407
- s.materialLibraries.push(a.substring(7).trim());
7408
7414
  else if (Al.test(a))
7415
+ s.materialLibraries.push(a.substring(7).trim());
7416
+ else if (ll.test(a))
7409
7417
  console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
7410
7418
  else if (c === "s") {
7411
7419
  if (i = a.split(" "), i.length > 1) {
@@ -7466,7 +7474,7 @@ class Nh extends kt {
7466
7474
  return t;
7467
7475
  }
7468
7476
  }
7469
- const uo = { type: "change" }, xi = { type: "start" }, _r = { type: "end" }, ll = { type: "endMovement" }, $n = new Ya(), go = new Ka(), hl = Math.cos(70 * Qe.DEG2RAD), Me = new P();
7477
+ const uo = { type: "change" }, xi = { type: "start" }, _r = { type: "end" }, ul = { type: "endMovement" }, $n = new Ya(), go = new Ka(), gl = Math.cos(70 * Qe.DEG2RAD), Me = new P();
7470
7478
  new P();
7471
7479
  const Ke = 2 * Math.PI, de = {
7472
7480
  NONE: -1,
@@ -7478,9 +7486,9 @@ const Ke = 2 * Math.PI, de = {
7478
7486
  TOUCH_DOLLY_PAN: 5,
7479
7487
  TOUCH_DOLLY_ROTATE: 6
7480
7488
  }, Xt = 1e-6;
7481
- let Uh = class extends Yo {
7489
+ let Ph = class extends Yo {
7482
7490
  constructor(e, t = null) {
7483
- super(e, t), this.state = de.NONE, this.enabled = !0, this.target = new P(), this.cursor = new P(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: fn.ROTATE, MIDDLE: fn.DOLLY, RIGHT: fn.PAN }, this.touches = { ONE: pn.ROTATE, TWO: pn.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new P(), this._lastQuaternion = new Te(), this._lastTargetPosition = new P(), this._quat = new Te().setFromUnitVectors(e.up, new P(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new Li(), this._sphericalDelta = new Li(), this._scale = 1, this._currentScale = 1, this._panOffset = new P(), this._rotateStart = new Le(), this._rotateEnd = new Le(), this._rotateDelta = new Le(), this._panStart = new Le(), this._panEnd = new Le(), this._panDelta = new Le(), this._dollyStart = new Le(), this._dollyEnd = new Le(), this._dollyDelta = new Le(), this._dollyDirection = new P(), this._mouse = new Le(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._lastIsDamping = !1, this._isDamping = !1, this._onPointerMove = gl.bind(this), this._onPointerDown = ul.bind(this), this._onPointerUp = dl.bind(this), this._onContextMenu = Cl.bind(this), this._onMouseWheel = Il.bind(this), this._onKeyDown = ml.bind(this), this._onTouchStart = El.bind(this), this._onTouchMove = bl.bind(this), this._onMouseDown = pl.bind(this), this._onMouseMove = fl.bind(this), this._interceptControlDown = Bl.bind(this), this._interceptControlUp = wl.bind(this), this.domElement !== null && this.connect(), this.update();
7491
+ super(e, t), this.state = de.NONE, this.enabled = !0, this.target = new P(), this.cursor = new P(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: fn.ROTATE, MIDDLE: fn.DOLLY, RIGHT: fn.PAN }, this.touches = { ONE: pn.ROTATE, TWO: pn.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new P(), this._lastQuaternion = new Te(), this._lastTargetPosition = new P(), this._quat = new Te().setFromUnitVectors(e.up, new P(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new Li(), this._sphericalDelta = new Li(), this._scale = 1, this._currentScale = 1, this._panOffset = new P(), this._rotateStart = new Le(), this._rotateEnd = new Le(), this._rotateDelta = new Le(), this._panStart = new Le(), this._panEnd = new Le(), this._panDelta = new Le(), this._dollyStart = new Le(), this._dollyEnd = new Le(), this._dollyDelta = new Le(), this._dollyDirection = new P(), this._mouse = new Le(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._lastIsDamping = !1, this._isDamping = !1, this._onPointerMove = pl.bind(this), this._onPointerDown = dl.bind(this), this._onPointerUp = fl.bind(this), this._onContextMenu = wl.bind(this), this._onMouseWheel = El.bind(this), this._onKeyDown = bl.bind(this), this._onTouchStart = Cl.bind(this), this._onTouchMove = Bl.bind(this), this._onMouseDown = Il.bind(this), this._onMouseMove = ml.bind(this), this._interceptControlDown = yl.bind(this), this._interceptControlUp = Ql.bind(this), this.domElement !== null && this.connect(), this.update();
7484
7492
  }
7485
7493
  connect() {
7486
7494
  this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
@@ -7541,12 +7549,12 @@ let Uh = class extends Yo {
7541
7549
  c.unproject(this.object), this.object.position.sub(c).add(r), this.object.updateMatrixWorld(), o = Me.length();
7542
7550
  } else
7543
7551
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
7544
- o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : ($n.origin.copy(this.object.position), $n.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot($n.direction)) < hl ? this.object.lookAt(this.target) : (go.setFromNormalAndCoplanarPoint(this.object.up, this.target), $n.intersectPlane(go, this.target))));
7552
+ o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : ($n.origin.copy(this.object.position), $n.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot($n.direction)) < gl ? this.object.lookAt(this.target) : (go.setFromNormalAndCoplanarPoint(this.object.up, this.target), $n.intersectPlane(go, this.target))));
7545
7553
  } else if (this.object.isOrthographicCamera) {
7546
7554
  const o = this.object.zoom;
7547
7555
  this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), Math.abs(o - this.object.zoom) > Xt && (this.object.updateProjectionMatrix(), i = !0);
7548
7556
  }
7549
- return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) > Xt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > Xt || this._lastTargetPosition.distanceToSquared(this.target) > Xt ? (this.dispatchEvent(uo), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this._lastIsDamping = !0, this._isDamping = !0, !0) : (this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this.state === de.NONE && (this._lastIsDamping = this._isDamping, this._isDamping = !1), this._lastIsDamping && !this._isDamping && this.state === de.NONE && (this._isDamping = !1, this._lastIsDamping = !1, this.dispatchEvent(ll)), this._performCursorZoom = !1, !1);
7557
+ return this._scale = 1, i || this._lastPosition.distanceToSquared(this.object.position) > Xt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > Xt || this._lastTargetPosition.distanceToSquared(this.target) > Xt ? (this.dispatchEvent(uo), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this._lastIsDamping = !0, this._isDamping = !0, !0) : (this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), this.state === de.NONE && (this._lastIsDamping = this._isDamping, this._isDamping = !1), this._lastIsDamping && !this._isDamping && this.state === de.NONE && (this._isDamping = !1, this._lastIsDamping = !1, this.dispatchEvent(ul)), this._performCursorZoom = !1, !1);
7550
7558
  }
7551
7559
  _getAutoRotationAngle(e) {
7552
7560
  return e !== null ? Ke / 60 * this.autoRotateSpeed * e : Ke / 60 / 60 * this.autoRotateSpeed;
@@ -7737,13 +7745,13 @@ let Uh = class extends Yo {
7737
7745
  return e.ctrlKey && !this._controlActive && (s.deltaY *= 10), s;
7738
7746
  }
7739
7747
  };
7740
- function ul(A) {
7748
+ function dl(A) {
7741
7749
  this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(A.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), window.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(A) && (this._addPointer(A), A.pointerType === "touch" ? this._onTouchStart(A) : this._onMouseDown(A)));
7742
7750
  }
7743
- function gl(A) {
7751
+ function pl(A) {
7744
7752
  this.enabled !== !1 && (A.pointerType === "touch" ? this._onTouchMove(A) : this._onMouseMove(A));
7745
7753
  }
7746
- function dl(A) {
7754
+ function fl(A) {
7747
7755
  switch (this._removePointer(A), this._pointers.length) {
7748
7756
  case 0:
7749
7757
  this.domElement.releasePointerCapture(A.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), window.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(_r), this.state = de.NONE;
@@ -7754,7 +7762,7 @@ function dl(A) {
7754
7762
  break;
7755
7763
  }
7756
7764
  }
7757
- function pl(A) {
7765
+ function Il(A) {
7758
7766
  let e;
7759
7767
  switch (A.button) {
7760
7768
  case 0:
@@ -7797,7 +7805,7 @@ function pl(A) {
7797
7805
  }
7798
7806
  this.state !== de.NONE && this.dispatchEvent(xi);
7799
7807
  }
7800
- function fl(A) {
7808
+ function ml(A) {
7801
7809
  switch (this.state) {
7802
7810
  case de.ROTATE:
7803
7811
  if (this.enableRotate === !1) return;
@@ -7813,13 +7821,13 @@ function fl(A) {
7813
7821
  break;
7814
7822
  }
7815
7823
  }
7816
- function Il(A) {
7824
+ function El(A) {
7817
7825
  this.enabled === !1 || this.enableZoom === !1 || this.state !== de.NONE || (A.preventDefault(), this.dispatchEvent(xi), this._handleMouseWheel(this._customWheelEvent(A)), this.dispatchEvent(_r));
7818
7826
  }
7819
- function ml(A) {
7827
+ function bl(A) {
7820
7828
  this.enabled === !1 || this.enablePan === !1 || this._handleKeyDown(A);
7821
7829
  }
7822
- function El(A) {
7830
+ function Cl(A) {
7823
7831
  switch (this._trackPointer(A), this._pointers.length) {
7824
7832
  case 1:
7825
7833
  switch (this.touches.ONE) {
@@ -7854,7 +7862,7 @@ function El(A) {
7854
7862
  }
7855
7863
  this.state !== de.NONE && this.dispatchEvent(xi);
7856
7864
  }
7857
- function bl(A) {
7865
+ function Bl(A) {
7858
7866
  switch (this._trackPointer(A), this.state) {
7859
7867
  case de.TOUCH_ROTATE:
7860
7868
  if (this.enableRotate === !1) return;
@@ -7876,16 +7884,16 @@ function bl(A) {
7876
7884
  this.state = de.NONE;
7877
7885
  }
7878
7886
  }
7879
- function Cl(A) {
7887
+ function wl(A) {
7880
7888
  this.enabled !== !1 && A.preventDefault();
7881
7889
  }
7882
- function Bl(A) {
7890
+ function yl(A) {
7883
7891
  A.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
7884
7892
  }
7885
- function wl(A) {
7893
+ function Ql(A) {
7886
7894
  A.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
7887
7895
  }
7888
- class Ph extends pt {
7896
+ class Hh extends pt {
7889
7897
  constructor(e, t = 1, s = 16, n = 2) {
7890
7898
  const i = new ut(), o = s + n * 2, r = new Float32Array((o * 3 + 3) * 3);
7891
7899
  i.setAttribute("position", new st(r, 3));
@@ -7909,7 +7917,7 @@ class Ph extends pt {
7909
7917
  this.geometry.dispose(), this.material[0].dispose(), this.material[1].dispose();
7910
7918
  }
7911
7919
  }
7912
- const Oh = {
7920
+ const jh = {
7913
7921
  name: "HorizontalBlurShader",
7914
7922
  uniforms: {
7915
7923
  tDiffuse: { value: null },
@@ -7955,7 +7963,7 @@ const Oh = {
7955
7963
 
7956
7964
  }`
7957
7965
  )
7958
- }, Hh = {
7966
+ }, qh = {
7959
7967
  name: "VerticalBlurShader",
7960
7968
  uniforms: {
7961
7969
  tDiffuse: { value: null },
@@ -8066,33 +8074,33 @@ const po = {
8066
8074
  class Mr {
8067
8075
  constructor() {
8068
8076
  this.pluginCallbacks = [], this.register(function(e) {
8069
- return new Ml(e);
8070
- }), this.register(function(e) {
8071
- return new Fl(e);
8072
- }), this.register(function(e) {
8073
- return new Ul(e);
8077
+ return new kl(e);
8074
8078
  }), this.register(function(e) {
8075
- return new Gl(e);
8079
+ return new Ll(e);
8076
8080
  }), this.register(function(e) {
8077
8081
  return new Pl(e);
8078
8082
  }), this.register(function(e) {
8079
8083
  return new Ol(e);
8080
8084
  }), this.register(function(e) {
8081
- return new kl(e);
8085
+ return new Hl(e);
8082
8086
  }), this.register(function(e) {
8083
- return new Ll(e);
8087
+ return new jl(e);
8084
8088
  }), this.register(function(e) {
8085
8089
  return new Nl(e);
8086
8090
  }), this.register(function(e) {
8087
- return new Hl(e);
8091
+ return new Ul(e);
8088
8092
  }), this.register(function(e) {
8089
- return new jl(e);
8093
+ return new Gl(e);
8090
8094
  }), this.register(function(e) {
8091
8095
  return new ql(e);
8092
8096
  }), this.register(function(e) {
8093
8097
  return new zl(e);
8094
8098
  }), this.register(function(e) {
8095
8099
  return new Yl(e);
8100
+ }), this.register(function(e) {
8101
+ return new Kl(e);
8102
+ }), this.register(function(e) {
8103
+ return new Jl(e);
8096
8104
  });
8097
8105
  }
8098
8106
  register(e) {
@@ -8109,7 +8117,7 @@ class Mr {
8109
8117
  * @param {Object} options options
8110
8118
  */
8111
8119
  parse(e, t, s, n) {
8112
- const i = new _l(), o = [];
8120
+ const i = new Fl(), o = [];
8113
8121
  for (let r = 0, a = this.pluginCallbacks.length; r < a; r++)
8114
8122
  o.push(this.pluginCallbacks[r](i));
8115
8123
  i.setPlugins(o), i.write(e, t, n).catch(s);
@@ -8160,19 +8168,19 @@ const fo = {
8160
8168
  position: "translation",
8161
8169
  quaternion: "rotation",
8162
8170
  morphTargetInfluences: "weights"
8163
- }, yl = new Se(), Io = 12, Ql = 1179937895, xl = 2, mo = 8, Sl = 1313821514, Tl = 5130562;
8171
+ }, xl = new Se(), Io = 12, Sl = 1179937895, Tl = 2, mo = 8, vl = 1313821514, Dl = 5130562;
8164
8172
  function Nn(A, e) {
8165
8173
  return A.length === e.length && A.every(function(t, s) {
8166
8174
  return t === e[s];
8167
8175
  });
8168
8176
  }
8169
- function vl(A) {
8177
+ function Rl(A) {
8170
8178
  return new TextEncoder().encode(A).buffer;
8171
8179
  }
8172
- function Dl(A) {
8180
+ function _l(A) {
8173
8181
  return Nn(A.elements, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
8174
8182
  }
8175
- function Rl(A, e, t) {
8183
+ function Ml(A, e, t) {
8176
8184
  const s = {
8177
8185
  min: new Array(A.itemSize).fill(Number.POSITIVE_INFINITY),
8178
8186
  max: new Array(A.itemSize).fill(Number.NEGATIVE_INFINITY)
@@ -8210,7 +8218,7 @@ function bo(A, e) {
8210
8218
  quality: t
8211
8219
  });
8212
8220
  }
8213
- class _l {
8221
+ class Fl {
8214
8222
  constructor() {
8215
8223
  this.plugins = [], this.options = {}, this.pending = [], this.buffers = [], this.byteOffset = 0, this.buffers = [], this.nodeMap = /* @__PURE__ */ new Map(), this.skins = [], this.extensionsUsed = {}, this.extensionsRequired = {}, this.uids = /* @__PURE__ */ new Map(), this.uid = 0, this.json = {
8216
8224
  asset: {
@@ -8252,11 +8260,11 @@ class _l {
8252
8260
  const g = new FileReader();
8253
8261
  g.readAsArrayBuffer(c), g.onloadend = function() {
8254
8262
  const d = Ps(g.result), f = new DataView(new ArrayBuffer(mo));
8255
- f.setUint32(0, d.byteLength, !0), f.setUint32(4, Tl, !0);
8256
- const I = Ps(vl(JSON.stringify(o)), 32), m = new DataView(new ArrayBuffer(mo));
8257
- m.setUint32(0, I.byteLength, !0), m.setUint32(4, Sl, !0);
8263
+ f.setUint32(0, d.byteLength, !0), f.setUint32(4, Dl, !0);
8264
+ const I = Ps(Rl(JSON.stringify(o)), 32), m = new DataView(new ArrayBuffer(mo));
8265
+ m.setUint32(0, I.byteLength, !0), m.setUint32(4, vl, !0);
8258
8266
  const C = new ArrayBuffer(Io), w = new DataView(C);
8259
- w.setUint32(0, Ql, !0), w.setUint32(4, xl, !0);
8267
+ w.setUint32(0, Sl, !0), w.setUint32(4, Tl, !0);
8260
8268
  const b = Io + m.byteLength + I.byteLength + f.byteLength + d.byteLength;
8261
8269
  w.setUint32(8, b, !0);
8262
8270
  const B = new Blob([
@@ -8495,7 +8503,7 @@ class _l {
8495
8503
  else
8496
8504
  throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: " + e.array.constructor.name);
8497
8505
  if (s === void 0 && (s = 0), (n === void 0 || n === 1 / 0) && (n = e.count), n === 0) return null;
8498
- const a = Rl(e, s, n);
8506
+ const a = Ml(e, s, n);
8499
8507
  let c;
8500
8508
  t !== void 0 && (c = e === t.index ? Ae.ELEMENT_ARRAY_BUFFER : Ae.ARRAY_BUFFER);
8501
8509
  const l = this.processBufferView(e, r, s, n, c), h = {
@@ -8895,7 +8903,7 @@ class _l {
8895
8903
  const a = e.quaternion.toArray(), c = e.position.toArray(), l = e.scale.toArray();
8896
8904
  Nn(a, [0, 0, 0, 1]) || (o.rotation = a), Nn(c, [0, 0, 0]) || (o.translation = c), Nn(l, [1, 1, 1]) || (o.scale = l);
8897
8905
  } else
8898
- e.matrixAutoUpdate && e.updateMatrix(), Dl(e.matrix) === !1 && (o.matrix = e.matrix.elements);
8906
+ e.matrixAutoUpdate && e.updateMatrix(), _l(e.matrix) === !1 && (o.matrix = e.matrix.elements);
8899
8907
  if (e.name !== "" && (o.name = String(e.name)), this.serializeUserData(e, o), e.isMesh || e.isLine || e.isPoints) {
8900
8908
  const a = this.processMesh(e);
8901
8909
  a !== null && (o.mesh = a);
@@ -8972,7 +8980,7 @@ class _l {
8972
8980
  e(this.plugins[t]);
8973
8981
  }
8974
8982
  }
8975
- class Ml {
8983
+ class kl {
8976
8984
  constructor(e) {
8977
8985
  this.writer = e, this.name = "KHR_lights_punctual";
8978
8986
  }
@@ -8988,7 +8996,7 @@ class Ml {
8988
8996
  r.push(o), t.extensions = t.extensions || {}, t.extensions[this.name] = { light: r.length - 1 };
8989
8997
  }
8990
8998
  }
8991
- class Fl {
8999
+ class Ll {
8992
9000
  constructor(e) {
8993
9001
  this.writer = e, this.name = "KHR_materials_unlit";
8994
9002
  }
@@ -8998,7 +9006,7 @@ class Fl {
8998
9006
  t.extensions = t.extensions || {}, t.extensions[this.name] = {}, n[this.name] = !0, t.pbrMetallicRoughness.metallicFactor = 0, t.pbrMetallicRoughness.roughnessFactor = 0.9;
8999
9007
  }
9000
9008
  }
9001
- class kl {
9009
+ class Nl {
9002
9010
  constructor(e) {
9003
9011
  this.writer = e, this.name = "KHR_materials_clearcoat";
9004
9012
  }
@@ -9029,7 +9037,7 @@ class kl {
9029
9037
  t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9030
9038
  }
9031
9039
  }
9032
- class Ll {
9040
+ class Ul {
9033
9041
  constructor(e) {
9034
9042
  this.writer = e, this.name = "KHR_materials_dispersion";
9035
9043
  }
@@ -9039,7 +9047,7 @@ class Ll {
9039
9047
  i.dispersion = e.dispersion, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9040
9048
  }
9041
9049
  }
9042
- class Nl {
9050
+ class Gl {
9043
9051
  constructor(e) {
9044
9052
  this.writer = e, this.name = "KHR_materials_iridescence";
9045
9053
  }
@@ -9063,7 +9071,7 @@ class Nl {
9063
9071
  t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9064
9072
  }
9065
9073
  }
9066
- class Ul {
9074
+ class Pl {
9067
9075
  constructor(e) {
9068
9076
  this.writer = e, this.name = "KHR_materials_transmission";
9069
9077
  }
@@ -9080,7 +9088,7 @@ class Ul {
9080
9088
  t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9081
9089
  }
9082
9090
  }
9083
- class Gl {
9091
+ class Ol {
9084
9092
  constructor(e) {
9085
9093
  this.writer = e, this.name = "KHR_materials_volume";
9086
9094
  }
@@ -9097,7 +9105,7 @@ class Gl {
9097
9105
  e.attenuationDistance !== 1 / 0 && (i.attenuationDistance = e.attenuationDistance), i.attenuationColor = e.attenuationColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9098
9106
  }
9099
9107
  }
9100
- class Pl {
9108
+ class Hl {
9101
9109
  constructor(e) {
9102
9110
  this.writer = e, this.name = "KHR_materials_ior";
9103
9111
  }
@@ -9107,12 +9115,12 @@ class Pl {
9107
9115
  i.ior = e.ior, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9108
9116
  }
9109
9117
  }
9110
- class Ol {
9118
+ class jl {
9111
9119
  constructor(e) {
9112
9120
  this.writer = e, this.name = "KHR_materials_specular";
9113
9121
  }
9114
9122
  writeMaterial(e, t) {
9115
- if (!e.isMeshPhysicalMaterial || e.specularIntensity === 1 && e.specularColor.equals(yl) && !e.specularIntensityMap && !e.specularColorMap) return;
9123
+ if (!e.isMeshPhysicalMaterial || e.specularIntensity === 1 && e.specularColor.equals(xl) && !e.specularIntensityMap && !e.specularColorMap) return;
9116
9124
  const s = this.writer, n = s.extensionsUsed, i = {};
9117
9125
  if (e.specularIntensityMap) {
9118
9126
  const o = {
@@ -9131,7 +9139,7 @@ class Ol {
9131
9139
  i.specularFactor = e.specularIntensity, i.specularColorFactor = e.specularColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9132
9140
  }
9133
9141
  }
9134
- class Hl {
9142
+ class ql {
9135
9143
  constructor(e) {
9136
9144
  this.writer = e, this.name = "KHR_materials_sheen";
9137
9145
  }
@@ -9155,7 +9163,7 @@ class Hl {
9155
9163
  i.sheenRoughnessFactor = e.sheenRoughness, i.sheenColorFactor = e.sheenColor.toArray(), t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9156
9164
  }
9157
9165
  }
9158
- class jl {
9166
+ class zl {
9159
9167
  constructor(e) {
9160
9168
  this.writer = e, this.name = "KHR_materials_anisotropy";
9161
9169
  }
@@ -9169,7 +9177,7 @@ class jl {
9169
9177
  i.anisotropyStrength = e.anisotropy, i.anisotropyRotation = e.anisotropyRotation, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9170
9178
  }
9171
9179
  }
9172
- class ql {
9180
+ class Yl {
9173
9181
  constructor(e) {
9174
9182
  this.writer = e, this.name = "KHR_materials_emissive_strength";
9175
9183
  }
@@ -9179,7 +9187,7 @@ class ql {
9179
9187
  i.emissiveStrength = e.emissiveIntensity, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9180
9188
  }
9181
9189
  }
9182
- class zl {
9190
+ class Kl {
9183
9191
  constructor(e) {
9184
9192
  this.writer = e, this.name = "EXT_materials_bump";
9185
9193
  }
@@ -9196,7 +9204,7 @@ class zl {
9196
9204
  i.bumpFactor = e.bumpScale, t.extensions = t.extensions || {}, t.extensions[this.name] = i, n[this.name] = !0;
9197
9205
  }
9198
9206
  }
9199
- class Yl {
9207
+ class Jl {
9200
9208
  constructor(e) {
9201
9209
  this.writer = e, this.name = "EXT_mesh_gpu_instancing";
9202
9210
  }
@@ -9309,17 +9317,17 @@ async function kr(A) {
9309
9317
  return e.json();
9310
9318
  throw new Error(e.statusText);
9311
9319
  }
9312
- async function Kl(A) {
9320
+ async function Vl(A) {
9313
9321
  if (!A)
9314
9322
  throw new Error("No basePath supplied");
9315
9323
  return await kr(`${A}/profilesList.json`);
9316
9324
  }
9317
- async function Jl(A, e, t = null, s = !0) {
9325
+ async function Wl(A, e, t = null, s = !0) {
9318
9326
  if (!A)
9319
9327
  throw new Error("No xrInputSource supplied");
9320
9328
  if (!e)
9321
9329
  throw new Error("No basePath supplied");
9322
- const n = await Kl(e);
9330
+ const n = await Vl(e);
9323
9331
  let i;
9324
9332
  if (A.profiles.some((a) => {
9325
9333
  const c = n[a];
@@ -9352,13 +9360,13 @@ async function Jl(A, e, t = null, s = !0) {
9352
9360
  }
9353
9361
  return { profile: o, assetPath: r };
9354
9362
  }
9355
- const Vl = {
9363
+ const Xl = {
9356
9364
  xAxis: 0,
9357
9365
  yAxis: 0,
9358
9366
  button: 0,
9359
9367
  state: ve.ComponentState.DEFAULT
9360
9368
  };
9361
- function Wl(A = 0, e = 0) {
9369
+ function Zl(A = 0, e = 0) {
9362
9370
  let t = A, s = e;
9363
9371
  if (Math.sqrt(A * A + e * e) > 1) {
9364
9372
  const o = Math.atan2(e, A);
@@ -9369,9 +9377,9 @@ function Wl(A = 0, e = 0) {
9369
9377
  normalizedYAxis: s * 0.5 + 0.5
9370
9378
  };
9371
9379
  }
9372
- class Xl {
9380
+ class $l {
9373
9381
  constructor(e) {
9374
- this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === ve.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Vl);
9382
+ this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === ve.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Xl);
9375
9383
  }
9376
9384
  /**
9377
9385
  * Computes the visual response's interpolation weight based on component state
@@ -9387,7 +9395,7 @@ class Xl {
9387
9395
  button: s,
9388
9396
  state: n
9389
9397
  }) {
9390
- const { normalizedXAxis: i, normalizedYAxis: o } = Wl(e, t);
9398
+ const { normalizedXAxis: i, normalizedYAxis: o } = Zl(e, t);
9391
9399
  switch (this.componentProperty) {
9392
9400
  case ve.ComponentProperty.X_AXIS:
9393
9401
  this.value = this.states.includes(n) ? i : 0.5;
@@ -9406,7 +9414,7 @@ class Xl {
9406
9414
  }
9407
9415
  }
9408
9416
  }
9409
- class Zl {
9417
+ class eh {
9410
9418
  /**
9411
9419
  * @param {Object} componentId - Id of the component
9412
9420
  * @param {Object} componentDescription - Description of the component to be created
@@ -9415,7 +9423,7 @@ class Zl {
9415
9423
  if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0)
9416
9424
  throw new Error("Invalid arguments supplied");
9417
9425
  this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((s) => {
9418
- const n = new Xl(t.visualResponses[s]);
9426
+ const n = new $l(t.visualResponses[s]);
9419
9427
  this.visualResponses[s] = n;
9420
9428
  }), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
9421
9429
  state: ve.ComponentState.DEFAULT,
@@ -9441,7 +9449,7 @@ class Zl {
9441
9449
  });
9442
9450
  }
9443
9451
  }
9444
- class $l {
9452
+ class th {
9445
9453
  /**
9446
9454
  * @param {Object} xrInputSource - The XRInputSource to build the MotionController around
9447
9455
  * @param {Object} profile - The best matched profile description for the supplied xrInputSource
@@ -9454,7 +9462,7 @@ class $l {
9454
9462
  throw new Error("No profile supplied");
9455
9463
  this.xrInputSource = e, this.assetUrl = s, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((n) => {
9456
9464
  const i = this.layoutDescription.components[n];
9457
- this.components[n] = new Zl(n, i);
9465
+ this.components[n] = new eh(n, i);
9458
9466
  }), this.updateFromGamepad();
9459
9467
  }
9460
9468
  get gripSpace() {
@@ -9481,8 +9489,8 @@ class $l {
9481
9489
  });
9482
9490
  }
9483
9491
  }
9484
- const eh = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", th = "generic-trigger";
9485
- class nh extends xt {
9492
+ const nh = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", sh = "generic-trigger";
9493
+ class ih extends xt {
9486
9494
  constructor() {
9487
9495
  super(), this.motionController = null, this.envMap = null;
9488
9496
  }
@@ -9512,7 +9520,7 @@ class nh extends xt {
9512
9520
  }));
9513
9521
  }
9514
9522
  }
9515
- function sh(A, e) {
9523
+ function oh(A, e) {
9516
9524
  Object.values(A.components).forEach((t) => {
9517
9525
  const { type: s, touchPointNodeName: n, visualResponses: i } = t;
9518
9526
  if (s === ve.ComponentType.TOUCHPAD)
@@ -9538,26 +9546,26 @@ function sh(A, e) {
9538
9546
  });
9539
9547
  }
9540
9548
  function Co(A, e) {
9541
- sh(A.motionController, e), A.envMap && e.traverse((t) => {
9549
+ oh(A.motionController, e), A.envMap && e.traverse((t) => {
9542
9550
  t.isMesh && (t.material.envMap = A.envMap, t.material.needsUpdate = !0);
9543
9551
  }), A.layers.mask != 0 && e.traverse((t) => {
9544
9552
  t.layers.mask = A.layers.mask;
9545
9553
  }), A.add(e);
9546
9554
  }
9547
- class jh {
9555
+ class zh {
9548
9556
  constructor(e = null, t = null) {
9549
- this.gltfLoader = e, this.path = eh, this._assetCache = {}, this.onLoad = t, this.gltfLoader || (this.gltfLoader = new Zo());
9557
+ this.gltfLoader = e, this.path = nh, this._assetCache = {}, this.onLoad = t, this.gltfLoader || (this.gltfLoader = new Zo());
9550
9558
  }
9551
9559
  setPath(e) {
9552
9560
  return this.path = e, this;
9553
9561
  }
9554
9562
  createControllerModel(e) {
9555
- const t = new nh();
9563
+ const t = new ih();
9556
9564
  let s = null;
9557
9565
  return e.addEventListener("connected", (n) => {
9558
9566
  const i = n.data;
9559
- i.targetRayMode !== "tracked-pointer" || !i.gamepad || i.hand || Jl(i, this.path, th).then(({ profile: o, assetPath: r }) => {
9560
- t.motionController = new $l(
9567
+ i.targetRayMode !== "tracked-pointer" || !i.gamepad || i.hand || Wl(i, this.path, sh).then(({ profile: o, assetPath: r }) => {
9568
+ t.motionController = new th(
9561
9569
  i,
9562
9570
  o,
9563
9571
  r
@@ -9587,10 +9595,10 @@ class jh {
9587
9595
  }), t;
9588
9596
  }
9589
9597
  }
9590
- const ih = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/";
9591
- class qh {
9598
+ const rh = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/";
9599
+ class Yh {
9592
9600
  constructor(e, t, s, n, i = null, o = null) {
9593
- this.controller = t, this.handModel = e, this.bones = [], i === null && (i = new Zo(), i.setPath(s || ih)), i.load(`${n}.glb`, (r) => {
9601
+ this.controller = t, this.handModel = e, this.bones = [], i === null && (i = new Zo(), i.setPath(s || rh)), i.load(`${n}.glb`, (r) => {
9594
9602
  const a = r.scene.children[0];
9595
9603
  this.handModel.add(a), a.layers.mask = this.handModel.layers.mask;
9596
9604
  const c = a.getObjectByProperty("type", "SkinnedMesh");
@@ -10177,7 +10185,7 @@ let yt, sn;
10177
10185
  function xo(A, e, t) {
10178
10186
  return Bt.set(0, 0, -e, 1).applyMatrix4(A.projectionMatrix), Bt.multiplyScalar(1 / Bt.w), Bt.x = sn / t.width, Bt.y = sn / t.height, Bt.applyMatrix4(A.projectionMatrixInverse), Bt.multiplyScalar(1 / Bt.w), Math.abs(Math.max(Bt.x, Bt.y));
10179
10187
  }
10180
- function oh(A, e) {
10188
+ function ah(A, e) {
10181
10189
  const t = A.matrixWorld, s = A.geometry, n = s.attributes.instanceStart, i = s.attributes.instanceEnd, o = Math.min(s.instanceCount, n.count);
10182
10190
  for (let r = 0, a = o; r < a; r++) {
10183
10191
  Pe.start.fromBufferAttribute(n, r), Pe.end.fromBufferAttribute(i, r), Pe.applyMatrix4(t);
@@ -10194,7 +10202,7 @@ function oh(A, e) {
10194
10202
  });
10195
10203
  }
10196
10204
  }
10197
- function rh(A, e, t) {
10205
+ function Ah(A, e, t) {
10198
10206
  const s = e.projectionMatrix, i = A.material.resolution, o = A.matrixWorld, r = A.geometry, a = r.attributes.instanceStart, c = r.attributes.instanceEnd, l = Math.min(r.instanceCount, a.count), h = -e.near;
10199
10207
  yt.at(1, Ct), Ct.w = 1, Ct.applyMatrix4(e.matrixWorldInverse), Ct.applyMatrix4(s), Ct.multiplyScalar(1 / Ct.w), Ct.x *= i.x / 2, Ct.y *= i.y / 2, Ct.z = 0, Hs.copy(Ct), js.multiplyMatrices(e.matrixWorldInverse, o);
10200
10208
  for (let g = 0, d = l; g < d; g++) {
@@ -10227,7 +10235,7 @@ function rh(A, e, t) {
10227
10235
  }
10228
10236
  }
10229
10237
  }
10230
- class ah extends q {
10238
+ class ch extends q {
10231
10239
  constructor(e = new Lr(), t = new Nr({ color: Math.random() * 16777215 })) {
10232
10240
  super(e, t), this.isLineSegments2 = !0, this.type = "LineSegments2";
10233
10241
  }
@@ -10263,14 +10271,14 @@ class ah extends q {
10263
10271
  const h = Math.max(n.near, ns.distanceToPoint(yt.origin));
10264
10272
  l = xo(n, h, a.resolution);
10265
10273
  }
10266
- ns.expandByScalar(l), yt.intersectsBox(ns) !== !1 && (s ? oh(this, t) : rh(this, n, t));
10274
+ ns.expandByScalar(l), yt.intersectsBox(ns) !== !1 && (s ? ah(this, t) : Ah(this, n, t));
10267
10275
  }
10268
10276
  onBeforeRender(e) {
10269
10277
  const t = this.material.uniforms;
10270
10278
  t && t.resolution && (e.getViewport(Os), this.material.uniforms.resolution.value.set(Os.z, Os.w));
10271
10279
  }
10272
10280
  }
10273
- class Ah extends Lr {
10281
+ class lh extends Lr {
10274
10282
  constructor() {
10275
10283
  super(), this.isLineGeometry = !0, this.type = "LineGeometry";
10276
10284
  }
@@ -10291,14 +10299,14 @@ class Ah extends Lr {
10291
10299
  return this.setPositions(t.attributes.position.array), this;
10292
10300
  }
10293
10301
  }
10294
- class zh extends ah {
10295
- constructor(e = new Ah(), t = new Nr({ color: Math.random() * 16777215 })) {
10302
+ class Kh extends ch {
10303
+ constructor(e = new lh(), t = new Nr({ color: Math.random() * 16777215 })) {
10296
10304
  super(e, t), this.isLine2 = !0, this.type = "Line2";
10297
10305
  }
10298
10306
  }
10299
- class Yh extends q {
10307
+ class Jh extends q {
10300
10308
  constructor(e) {
10301
- const t = new ch(e), s = new Ci(t.image.width * 1e-3, t.image.height * 1e-3), n = new Qt({ map: t, toneMapped: !1, transparent: !0 });
10309
+ const t = new hh(e), s = new Ci(t.image.width * 1e-3, t.image.height * 1e-3), n = new Qt({ map: t, toneMapped: !1, transparent: !0 });
10302
10310
  super(s, n);
10303
10311
  function i(o) {
10304
10312
  n.map.dispatchDOMEvent(o);
@@ -10308,7 +10316,7 @@ class Yh extends q {
10308
10316
  };
10309
10317
  }
10310
10318
  }
10311
- class ch extends Wo {
10319
+ class hh extends Wo {
10312
10320
  constructor(e) {
10313
10321
  super(So(e)), this.dom = e, this.anisotropy = 16, this.colorSpace = ge, this.minFilter = rt, this.magFilter = rt;
10314
10322
  const t = new MutationObserver(() => {
@@ -10317,7 +10325,7 @@ class ch extends Wo {
10317
10325
  t.observe(e, s), this.observer = t;
10318
10326
  }
10319
10327
  dispatchDOMEvent(e) {
10320
- e.data && lh(this.dom, e.type, e.data.x, e.data.y);
10328
+ e.data && uh(this.dom, e.type, e.data.x, e.data.y);
10321
10329
  }
10322
10330
  update() {
10323
10331
  this.image = So(this.dom), this.needsUpdate = !0, this.scheduleUpdate = null;
@@ -10429,7 +10437,7 @@ function So(A) {
10429
10437
  ), h = new s(l);
10430
10438
  return l.clearRect(0, 0, c.width, c.height), r(A), c;
10431
10439
  }
10432
- function lh(A, e, t, s) {
10440
+ function uh(A, e, t, s) {
10433
10441
  const n = {
10434
10442
  clientX: t * A.offsetWidth + A.offsetLeft,
10435
10443
  clientY: s * A.offsetHeight + A.offsetTop,
@@ -10452,7 +10460,7 @@ function lh(A, e, t, s) {
10452
10460
  o(A);
10453
10461
  }
10454
10462
  const As = new Le(), un = { type: "", data: As }, To = new bi();
10455
- class Kh extends nn {
10463
+ class Vh extends nn {
10456
10464
  listenToPointerEvents(e, t) {
10457
10465
  const s = this, n = new bi(), i = e.domElement;
10458
10466
  function o(r) {
@@ -10487,7 +10495,7 @@ class Kh extends nn {
10487
10495
  }
10488
10496
  }
10489
10497
  const Dn = new P(), Rn = new P(), vo = new Jo();
10490
- class Jh extends hs {
10498
+ class Wh extends hs {
10491
10499
  constructor(e, t = 1, s = 16711680) {
10492
10500
  const n = new ut(), i = e.geometry.attributes.normal.count, o = new Fe(i * 2 * 3, 3);
10493
10501
  n.setAttribute("position", o), super(n, new Ft({ color: s, toneMapped: !1 })), this.object = e, this.size = t, this.type = "VertexNormalsHelper", this.matrixAutoUpdate = !1, this.update();
@@ -10507,7 +10515,7 @@ class Jh extends hs {
10507
10515
  this.geometry.dispose(), this.material.dispose();
10508
10516
  }
10509
10517
  }
10510
- class Vh {
10518
+ class Xh {
10511
10519
  constructor() {
10512
10520
  this.isPass = !0, this.enabled = !0, this.needsSwap = !0, this.clear = !1, this.renderToScreen = !1;
10513
10521
  }
@@ -10520,44 +10528,46 @@ class Vh {
10520
10528
  }
10521
10529
  }
10522
10530
  new No(-1, 1, 1, -1, 0, 1);
10523
- class hh extends ut {
10531
+ class gh extends ut {
10524
10532
  constructor() {
10525
10533
  super(), this.setAttribute("position", new Fe([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new Fe([0, 2, 0, 0, 2, 0], 2));
10526
10534
  }
10527
10535
  }
10528
- new hh();
10536
+ new gh();
10529
10537
  export {
10530
- vh as DRACOLoader,
10531
- Fh as EXRLoader,
10532
- Lh as FBXLoader,
10538
+ Rh as DRACOLoader,
10539
+ Uc as EXRLoader,
10540
+ Lh as EXRLoader$1,
10541
+ Uh as FBXLoader,
10533
10542
  lc as Font,
10534
- Rh as FontLoader,
10543
+ Mh as FontLoader,
10535
10544
  Mr as GLTFExporter,
10536
10545
  Zo as GLTFLoader,
10537
- gh as GroundedSkybox,
10538
- Yh as HTMLMesh,
10539
- Oh as HorizontalBlurShader,
10540
- Kh as InteractiveGroup,
10546
+ ph as GroundedSkybox,
10547
+ Jh as HTMLMesh,
10548
+ jh as HorizontalBlurShader,
10549
+ Vh as InteractiveGroup,
10541
10550
  ft as KTX2Loader,
10542
- zh as Line2,
10543
- Ah as LineGeometry,
10551
+ Kh as Line2,
10552
+ lh as LineGeometry,
10544
10553
  Nr as LineMaterial,
10545
- Th as MeshoptDecoder,
10546
- Nh as OBJLoader,
10547
- Uh as OrbitControls,
10548
- Vh as Pass,
10549
- Ph as PositionalAudioHelper,
10550
- kh as RGBELoader,
10554
+ Dh as MeshoptDecoder,
10555
+ Gh as OBJLoader,
10556
+ Ph as OrbitControls,
10557
+ Xh as Pass,
10558
+ Hh as PositionalAudioHelper,
10559
+ Gc as RGBELoader,
10560
+ Nh as RGBELoader$1,
10551
10561
  rs as Stats,
10552
- Dh as TextGeometry,
10553
- _h as TransformControls,
10562
+ _h as TextGeometry,
10563
+ Fh as TransformControls,
10554
10564
  Ec as TransformControlsGizmo,
10555
- Jh as VertexNormalsHelper,
10556
- Hh as VerticalBlurShader,
10557
- jh as XRControllerModelFactory,
10558
- qh as XRHandMeshModel,
10559
- dh as mergeVertices,
10565
+ Wh as VertexNormalsHelper,
10566
+ qh as VerticalBlurShader,
10567
+ zh as XRControllerModelFactory,
10568
+ Yh as XRHandMeshModel,
10569
+ fh as mergeVertices,
10560
10570
  nt as nodeFrame,
10561
10571
  io as strToU8,
10562
- Mh as zipSync
10572
+ kh as zipSync
10563
10573
  };