belowjs 1.7.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/belowjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as m from "three";
2
- import { Controls as sr, Vector3 as v, MOUSE as We, TOUCH as Ke, Quaternion as $e, Spherical as qs, Vector2 as k, Ray as is, Plane as _n, MathUtils as st, TrianglesDrawMode as ir, TriangleFanDrawMode as zs, TriangleStripDrawMode as Pn, Loader as ri, LoaderUtils as mt, FileLoader as xe, MeshPhysicalMaterial as ue, Color as Ee, LinearSRGBColorSpace as le, SRGBColorSpace as Ce, SpotLight as nr, PointLight as or, DirectionalLight as rr, Matrix4 as P, InstancedMesh as ai, InstancedBufferAttribute as ar, Object3D as ns, TextureLoader as lr, ImageBitmapLoader as cr, BufferAttribute as ne, InterleavedBuffer as Ar, InterleavedBufferAttribute as Fe, LinearMipmapLinearFilter as os, NearestMipmapLinearFilter as hr, LinearMipmapNearestFilter as dr, NearestMipmapNearestFilter as ur, LinearFilter as Ge, NearestFilter as Gn, RepeatWrapping as js, MirroredRepeatWrapping as gr, ClampToEdgeWrapping as pr, PointsMaterial as Un, Material as gs, LineBasicMaterial as fr, MeshStandardMaterial as li, DoubleSide as mr, MeshBasicMaterial as ke, PropertyBinding as br, BufferGeometry as rs, SkinnedMesh as Cr, Mesh as as, LineSegments as Er, Line as yr, LineLoop as Ir, Points as Nn, Group as Xe, PerspectiveCamera as Br, OrthographicCamera as Vn, Skeleton as wr, AnimationClip as Sr, Bone as vr, InterpolateDiscrete as Mr, InterpolateLinear as On, Texture as Ei, VectorKeyframeTrack as yi, NumberKeyframeTrack as Ii, QuaternionKeyframeTrack as Bi, ColorManagement as Ks, FrontSide as xr, Interpolant as Qr, Box3 as it, Sphere as Et, CompressedCubeTexture as Tr, CompressedArrayTexture as Rr, CompressedTexture as Hn, NoColorSpace as wi, RGBA_BPTC_Format as Ys, RGBA_S3TC_DXT5_Format as Js, RGBA_S3TC_DXT3_Format as Si, RGB_S3TC_DXT1_Format as vi, RGBA_S3TC_DXT1_Format as Ws, RGBA_ASTC_6x6_Format as Mi, RGBA_ASTC_4x4_Format as jt, RGBA_ETC2_EAC_Format as qn, RGB_ETC2_Format as zn, RedFormat as gt, RGFormat as pt, RGBAFormat as Ye, UnsignedByteType as re, HalfFloatType as Je, FloatType as bt, DataTexture as jn, Data3DTexture as Dr, RGB_PVRTC_4BPPV1_Format as Lr, RGB_ETC1_Format as Fr, RGBA_PVRTC_4BPPV1_Format as kr, RGB_BPTC_UNSIGNED_Format as _r, Euler as Kn, TextureUtils as Pr, LoadingManager as Gr, EventDispatcher as vt, Frustum as Ur, DefaultLoadingManager as ls, Matrix3 as Yn, Float32BufferAttribute as Jt, WebGLRenderer as Nr, WebGLRenderTarget as xi, ShaderMaterial as Jn, OneFactor as Vr, ZeroFactor as Or, CustomBlending as Hr, Box2 as qr, Matrix2 as zr, Vector4 as nt, SphereGeometry as Wn, BoxGeometry as jr, DynamicDrawUsage as Kr, InstancedBufferGeometry as Yr, InstancedInterleavedBuffer as Xs, WireframeGeometry as Jr, ShaderLib as Kt, UniformsUtils as Xn, UniformsLib as Yt, Line3 as Wr } from "three";
2
+ import { Controls as ir, Vector3 as v, MOUSE as We, TOUCH as Ke, Quaternion as $e, Spherical as qs, Vector2 as k, Ray as is, Plane as Pn, MathUtils as st, TrianglesDrawMode as nr, TriangleFanDrawMode as zs, TriangleStripDrawMode as Gn, Loader as ai, LoaderUtils as mt, FileLoader as xe, MeshPhysicalMaterial as ue, Color as Ee, LinearSRGBColorSpace as le, SRGBColorSpace as Ce, SpotLight as or, PointLight as rr, DirectionalLight as ar, Matrix4 as P, InstancedMesh as li, InstancedBufferAttribute as lr, Object3D as ns, TextureLoader as cr, ImageBitmapLoader as Ar, BufferAttribute as ne, InterleavedBuffer as hr, InterleavedBufferAttribute as Fe, LinearMipmapLinearFilter as os, NearestMipmapLinearFilter as dr, LinearMipmapNearestFilter as ur, NearestMipmapNearestFilter as gr, LinearFilter as Ge, NearestFilter as Un, RepeatWrapping as js, MirroredRepeatWrapping as pr, ClampToEdgeWrapping as fr, PointsMaterial as Nn, Material as gs, LineBasicMaterial as mr, MeshStandardMaterial as ci, DoubleSide as br, MeshBasicMaterial as ke, PropertyBinding as Cr, BufferGeometry as rs, SkinnedMesh as Er, Mesh as as, LineSegments as yr, Line as Ir, LineLoop as Br, Points as Vn, Group as Xe, PerspectiveCamera as wr, OrthographicCamera as On, Skeleton as Sr, AnimationClip as vr, Bone as Mr, InterpolateDiscrete as xr, InterpolateLinear as Hn, Texture as yi, VectorKeyframeTrack as Ii, NumberKeyframeTrack as Bi, QuaternionKeyframeTrack as wi, ColorManagement as Ks, FrontSide as Qr, Interpolant as Tr, Box3 as it, Sphere as Et, CompressedCubeTexture as Rr, CompressedArrayTexture as Dr, CompressedTexture as qn, NoColorSpace as Si, RGBA_BPTC_Format as Ys, RGBA_S3TC_DXT5_Format as Js, RGBA_S3TC_DXT3_Format as vi, RGB_S3TC_DXT1_Format as Mi, RGBA_S3TC_DXT1_Format as Ws, RGBA_ASTC_6x6_Format as xi, RGBA_ASTC_4x4_Format as jt, RGBA_ETC2_EAC_Format as zn, RGB_ETC2_Format as jn, RedFormat as gt, RGFormat as pt, RGBAFormat as Ye, UnsignedByteType as re, HalfFloatType as Je, FloatType as bt, DataTexture as Kn, Data3DTexture as Lr, RGB_PVRTC_4BPPV1_Format as Fr, RGB_ETC1_Format as kr, RGBA_PVRTC_4BPPV1_Format as _r, RGB_BPTC_UNSIGNED_Format as Pr, Euler as Yn, TextureUtils as Gr, LoadingManager as Ur, EventDispatcher as vt, Frustum as Nr, DefaultLoadingManager as ls, Matrix3 as Jn, Float32BufferAttribute as Jt, WebGLRenderer as Vr, WebGLRenderTarget as Qi, ShaderMaterial as Wn, OneFactor as Or, ZeroFactor as Hr, CustomBlending as qr, Box2 as zr, Matrix2 as jr, Vector4 as nt, SphereGeometry as Xn, BoxGeometry as Kr, DynamicDrawUsage as Yr, InstancedBufferGeometry as Jr, InstancedInterleavedBuffer as Xs, WireframeGeometry as Wr, ShaderLib as Kt, UniformsUtils as Zn, UniformsLib as Yt, Line3 as Xr } from "three";
3
3
  class yt {
4
4
  /**
5
5
  * Creates a new EventSystem instance
@@ -143,7 +143,7 @@ class cs {
143
143
  return Array.isArray(t) ? t.some((i) => s(e, i)) : s(e, t);
144
144
  }
145
145
  }
146
- class Xr {
146
+ class Zr {
147
147
  constructor(e = {}) {
148
148
  this.config = e, this.scene = new m.Scene(), this.init();
149
149
  }
@@ -164,7 +164,7 @@ class Xr {
164
164
  this.scene.clear();
165
165
  }
166
166
  }
167
- const Qi = { type: "change" }, ci = { type: "start" }, Zn = { type: "end" }, Mt = new is(), Ti = new _n(), Zr = Math.cos(70 * st.DEG2RAD), U = new v(), J = 2 * Math.PI, _ = {
167
+ const Ti = { type: "change" }, Ai = { type: "start" }, $n = { type: "end" }, Mt = new is(), Ri = new Pn(), $r = Math.cos(70 * st.DEG2RAD), U = new v(), J = 2 * Math.PI, _ = {
168
168
  NONE: -1,
169
169
  ROTATE: 0,
170
170
  DOLLY: 1,
@@ -174,7 +174,7 @@ const Qi = { type: "change" }, ci = { type: "start" }, Zn = { type: "end" }, Mt
174
174
  TOUCH_DOLLY_PAN: 5,
175
175
  TOUCH_DOLLY_ROTATE: 6
176
176
  }, ps = 1e-6;
177
- class $r extends sr {
177
+ class ea extends ir {
178
178
  /**
179
179
  * Constructs a new controls instance.
180
180
  *
@@ -182,7 +182,7 @@ class $r extends sr {
182
182
  * @param {?HTMLDOMElement} domElement - The HTML element used for event listeners.
183
183
  */
184
184
  constructor(e, t = null) {
185
- super(e, t), this.state = _.NONE, this.target = new v(), this.cursor = new v(), 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.keyRotateSpeed = 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: We.ROTATE, MIDDLE: We.DOLLY, RIGHT: We.PAN }, this.touches = { ONE: Ke.ROTATE, TWO: Ke.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new v(), this._lastQuaternion = new $e(), this._lastTargetPosition = new v(), this._quat = new $e().setFromUnitVectors(e.up, new v(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new qs(), this._sphericalDelta = new qs(), this._scale = 1, this._panOffset = new v(), this._rotateStart = new k(), this._rotateEnd = new k(), this._rotateDelta = new k(), this._panStart = new k(), this._panEnd = new k(), this._panDelta = new k(), this._dollyStart = new k(), this._dollyEnd = new k(), this._dollyDelta = new k(), this._dollyDirection = new v(), this._mouse = new k(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = ta.bind(this), this._onPointerDown = ea.bind(this), this._onPointerUp = sa.bind(this), this._onContextMenu = ca.bind(this), this._onMouseWheel = oa.bind(this), this._onKeyDown = ra.bind(this), this._onTouchStart = aa.bind(this), this._onTouchMove = la.bind(this), this._onMouseDown = ia.bind(this), this._onMouseMove = na.bind(this), this._interceptControlDown = Aa.bind(this), this._interceptControlUp = ha.bind(this), this.domElement !== null && this.connect(this.domElement), this.update();
185
+ super(e, t), this.state = _.NONE, this.target = new v(), this.cursor = new v(), 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.keyRotateSpeed = 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: We.ROTATE, MIDDLE: We.DOLLY, RIGHT: We.PAN }, this.touches = { ONE: Ke.ROTATE, TWO: Ke.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new v(), this._lastQuaternion = new $e(), this._lastTargetPosition = new v(), this._quat = new $e().setFromUnitVectors(e.up, new v(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new qs(), this._sphericalDelta = new qs(), this._scale = 1, this._panOffset = new v(), this._rotateStart = new k(), this._rotateEnd = new k(), this._rotateDelta = new k(), this._panStart = new k(), this._panEnd = new k(), this._panDelta = new k(), this._dollyStart = new k(), this._dollyEnd = new k(), this._dollyDelta = new k(), this._dollyDirection = new v(), this._mouse = new k(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = sa.bind(this), this._onPointerDown = ta.bind(this), this._onPointerUp = ia.bind(this), this._onContextMenu = Aa.bind(this), this._onMouseWheel = ra.bind(this), this._onKeyDown = aa.bind(this), this._onTouchStart = la.bind(this), this._onTouchMove = ca.bind(this), this._onMouseDown = na.bind(this), this._onMouseMove = oa.bind(this), this._interceptControlDown = ha.bind(this), this._interceptControlUp = da.bind(this), this.domElement !== null && this.connect(this.domElement), this.update();
186
186
  }
187
187
  connect(e) {
188
188
  super.connect(e), 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";
@@ -243,7 +243,7 @@ class $r extends sr {
243
243
  * was called, or the initial state.
244
244
  */
245
245
  reset() {
246
- this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(Qi), this.update(), this.state = _.NONE;
246
+ this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(Ti), this.update(), this.state = _.NONE;
247
247
  }
248
248
  update(e = null) {
249
249
  const t = this.object.position;
@@ -273,12 +273,12 @@ class $r extends sr {
273
273
  c.unproject(this.object), this.object.position.sub(c).add(r), this.object.updateMatrixWorld(), o = U.length();
274
274
  } else
275
275
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
276
- o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : (Mt.origin.copy(this.object.position), Mt.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(Mt.direction)) < Zr ? this.object.lookAt(this.target) : (Ti.setFromNormalAndCoplanarPoint(this.object.up, this.target), Mt.intersectPlane(Ti, this.target))));
276
+ o !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(o).add(this.object.position) : (Mt.origin.copy(this.object.position), Mt.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(Mt.direction)) < $r ? this.object.lookAt(this.target) : (Ri.setFromNormalAndCoplanarPoint(this.object.up, this.target), Mt.intersectPlane(Ri, this.target))));
277
277
  } else if (this.object.isOrthographicCamera) {
278
278
  const o = this.object.zoom;
279
279
  this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), o !== this.object.zoom && (this.object.updateProjectionMatrix(), n = !0);
280
280
  }
281
- return this._scale = 1, this._performCursorZoom = !1, n || this._lastPosition.distanceToSquared(this.object.position) > ps || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > ps || this._lastTargetPosition.distanceToSquared(this.target) > ps ? (this.dispatchEvent(Qi), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
281
+ return this._scale = 1, this._performCursorZoom = !1, n || this._lastPosition.distanceToSquared(this.object.position) > ps || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > ps || this._lastTargetPosition.distanceToSquared(this.target) > ps ? (this.dispatchEvent(Ti), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
282
282
  }
283
283
  _getAutoRotationAngle(e) {
284
284
  return e !== null ? J / 60 * this.autoRotateSpeed * e : J / 60 / 60 * this.autoRotateSpeed;
@@ -470,16 +470,16 @@ class $r extends sr {
470
470
  return e.ctrlKey && !this._controlActive && (s.deltaY *= 10), s;
471
471
  }
472
472
  }
473
- function ea(a) {
473
+ function ta(a) {
474
474
  this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(a.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(a) && (this._addPointer(a), a.pointerType === "touch" ? this._onTouchStart(a) : this._onMouseDown(a)));
475
475
  }
476
- function ta(a) {
476
+ function sa(a) {
477
477
  this.enabled !== !1 && (a.pointerType === "touch" ? this._onTouchMove(a) : this._onMouseMove(a));
478
478
  }
479
- function sa(a) {
479
+ function ia(a) {
480
480
  switch (this._removePointer(a), this._pointers.length) {
481
481
  case 0:
482
- this.domElement.releasePointerCapture(a.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(Zn), this.state = _.NONE;
482
+ this.domElement.releasePointerCapture(a.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent($n), this.state = _.NONE;
483
483
  break;
484
484
  case 1:
485
485
  const e = this._pointers[0], t = this._pointerPositions[e];
@@ -487,7 +487,7 @@ function sa(a) {
487
487
  break;
488
488
  }
489
489
  }
490
- function ia(a) {
490
+ function na(a) {
491
491
  let e;
492
492
  switch (a.button) {
493
493
  case 0:
@@ -528,9 +528,9 @@ function ia(a) {
528
528
  default:
529
529
  this.state = _.NONE;
530
530
  }
531
- this.state !== _.NONE && this.dispatchEvent(ci);
531
+ this.state !== _.NONE && this.dispatchEvent(Ai);
532
532
  }
533
- function na(a) {
533
+ function oa(a) {
534
534
  switch (this.state) {
535
535
  case _.ROTATE:
536
536
  if (this.enableRotate === !1) return;
@@ -546,13 +546,13 @@ function na(a) {
546
546
  break;
547
547
  }
548
548
  }
549
- function oa(a) {
550
- this.enabled === !1 || this.enableZoom === !1 || this.state !== _.NONE || (a.preventDefault(), this.dispatchEvent(ci), this._handleMouseWheel(this._customWheelEvent(a)), this.dispatchEvent(Zn));
551
- }
552
549
  function ra(a) {
553
- this.enabled !== !1 && this._handleKeyDown(a);
550
+ this.enabled === !1 || this.enableZoom === !1 || this.state !== _.NONE || (a.preventDefault(), this.dispatchEvent(Ai), this._handleMouseWheel(this._customWheelEvent(a)), this.dispatchEvent($n));
554
551
  }
555
552
  function aa(a) {
553
+ this.enabled !== !1 && this._handleKeyDown(a);
554
+ }
555
+ function la(a) {
556
556
  switch (this._trackPointer(a), this._pointers.length) {
557
557
  case 1:
558
558
  switch (this.touches.ONE) {
@@ -585,9 +585,9 @@ function aa(a) {
585
585
  default:
586
586
  this.state = _.NONE;
587
587
  }
588
- this.state !== _.NONE && this.dispatchEvent(ci);
588
+ this.state !== _.NONE && this.dispatchEvent(Ai);
589
589
  }
590
- function la(a) {
590
+ function ca(a) {
591
591
  switch (this._trackPointer(a), this.state) {
592
592
  case _.TOUCH_ROTATE:
593
593
  if (this.enableRotate === !1) return;
@@ -609,16 +609,16 @@ function la(a) {
609
609
  this.state = _.NONE;
610
610
  }
611
611
  }
612
- function ca(a) {
612
+ function Aa(a) {
613
613
  this.enabled !== !1 && a.preventDefault();
614
614
  }
615
- function Aa(a) {
615
+ function ha(a) {
616
616
  a.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
617
617
  }
618
- function ha(a) {
618
+ function da(a) {
619
619
  a.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
620
620
  }
621
- class da extends yt {
621
+ class ua extends yt {
622
622
  /**
623
623
  * Creates a new Camera instance
624
624
  *
@@ -639,7 +639,7 @@ class da extends yt {
639
639
  }
640
640
  initControls(e) {
641
641
  if (!this.controls) {
642
- this.controls = new $r(this.camera, e);
642
+ this.controls = new ea(this.camera, e);
643
643
  const t = this.config.desktop || {};
644
644
  this.controls.enableDamping = t.enableDamping ?? !0, this.controls.dampingFactor = t.dampingFactor ?? 0.08, this.controls.maxDistance = t.maxDistance ?? 100, this.controls.minDistance = t.minDistance ?? 0.5, this.controls.addEventListener("change", () => {
645
645
  this.emit("change");
@@ -734,7 +734,7 @@ class da extends yt {
734
734
  this.focusAnimation && (cancelAnimationFrame(this.focusAnimation), this.focusAnimation = null), this.controls && this.controls.dispose(), this.removeAllListeners();
735
735
  }
736
736
  }
737
- function ua(a) {
737
+ function ga(a) {
738
738
  let e = 0;
739
739
  for (const s in a.attributes) {
740
740
  const i = a.getAttribute(s);
@@ -743,10 +743,10 @@ function ua(a) {
743
743
  const t = a.getIndex();
744
744
  return e += t ? t.count * t.itemSize * t.array.BYTES_PER_ELEMENT : 0, e;
745
745
  }
746
- function Ri(a, e) {
747
- if (e === ir)
746
+ function Di(a, e) {
747
+ if (e === nr)
748
748
  return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), a;
749
- if (e === zs || e === Pn) {
749
+ if (e === zs || e === Gn) {
750
750
  let t = a.getIndex();
751
751
  if (t === null) {
752
752
  const o = [], r = a.getAttribute("position");
@@ -770,7 +770,7 @@ function Ri(a, e) {
770
770
  } else
771
771
  return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e), a;
772
772
  }
773
- class Ne extends ri {
773
+ class Ne extends ai {
774
774
  /**
775
775
  * Constructs a new glTF loader.
776
776
  *
@@ -778,39 +778,39 @@ class Ne extends ri {
778
778
  */
779
779
  constructor(e) {
780
780
  super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
781
- return new ba(t);
782
- }), this.register(function(t) {
783
781
  return new Ca(t);
784
782
  }), this.register(function(t) {
785
- return new xa(t);
783
+ return new Ea(t);
786
784
  }), this.register(function(t) {
787
785
  return new Qa(t);
788
786
  }), this.register(function(t) {
789
787
  return new Ta(t);
790
788
  }), this.register(function(t) {
791
- return new ya(t);
789
+ return new Ra(t);
792
790
  }), this.register(function(t) {
793
791
  return new Ia(t);
794
792
  }), this.register(function(t) {
795
793
  return new Ba(t);
796
794
  }), this.register(function(t) {
797
795
  return new wa(t);
798
- }), this.register(function(t) {
799
- return new ma(t);
800
796
  }), this.register(function(t) {
801
797
  return new Sa(t);
802
798
  }), this.register(function(t) {
803
- return new Ea(t);
804
- }), this.register(function(t) {
805
- return new Ma(t);
799
+ return new ba(t);
806
800
  }), this.register(function(t) {
807
801
  return new va(t);
808
802
  }), this.register(function(t) {
809
- return new pa(t);
803
+ return new ya(t);
804
+ }), this.register(function(t) {
805
+ return new xa(t);
810
806
  }), this.register(function(t) {
811
- return new Ra(t);
807
+ return new Ma(t);
808
+ }), this.register(function(t) {
809
+ return new fa(t);
812
810
  }), this.register(function(t) {
813
811
  return new Da(t);
812
+ }), this.register(function(t) {
813
+ return new La(t);
814
814
  });
815
815
  }
816
816
  /**
@@ -910,9 +910,9 @@ class Ne extends ri {
910
910
  if (typeof e == "string")
911
911
  n = JSON.parse(e);
912
912
  else if (e instanceof ArrayBuffer)
913
- if (l.decode(new Uint8Array(e, 0, 4)) === $n) {
913
+ if (l.decode(new Uint8Array(e, 0, 4)) === eo) {
914
914
  try {
915
- o[D.KHR_BINARY_GLTF] = new La(e);
915
+ o[D.KHR_BINARY_GLTF] = new Fa(e);
916
916
  } catch (h) {
917
917
  i && i(h);
918
918
  return;
@@ -926,7 +926,7 @@ class Ne extends ri {
926
926
  i && i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
927
927
  return;
928
928
  }
929
- const c = new ja(n, {
929
+ const c = new Ka(n, {
930
930
  path: t || this.resourcePath || "",
931
931
  crossOrigin: this.crossOrigin,
932
932
  requestHeader: this.requestHeader,
@@ -944,16 +944,16 @@ class Ne extends ri {
944
944
  const h = n.extensionsUsed[A], d = n.extensionsRequired || [];
945
945
  switch (h) {
946
946
  case D.KHR_MATERIALS_UNLIT:
947
- o[h] = new fa();
947
+ o[h] = new ma();
948
948
  break;
949
949
  case D.KHR_DRACO_MESH_COMPRESSION:
950
- o[h] = new Fa(n, this.dracoLoader);
950
+ o[h] = new ka(n, this.dracoLoader);
951
951
  break;
952
952
  case D.KHR_TEXTURE_TRANSFORM:
953
- o[h] = new ka();
953
+ o[h] = new _a();
954
954
  break;
955
955
  case D.KHR_MESH_QUANTIZATION:
956
- o[h] = new _a();
956
+ o[h] = new Pa();
957
957
  break;
958
958
  default:
959
959
  d.indexOf(h) >= 0 && r[h] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + h + '".');
@@ -976,7 +976,7 @@ class Ne extends ri {
976
976
  });
977
977
  }
978
978
  }
979
- function ga() {
979
+ function pa() {
980
980
  let a = {};
981
981
  return {
982
982
  get: function(e) {
@@ -1017,7 +1017,7 @@ const D = {
1017
1017
  EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression",
1018
1018
  EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing"
1019
1019
  };
1020
- class pa {
1020
+ class fa {
1021
1021
  constructor(e) {
1022
1022
  this.parser = e, this.name = D.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
1023
1023
  }
@@ -1039,13 +1039,13 @@ class pa {
1039
1039
  const h = l.range !== void 0 ? l.range : 0;
1040
1040
  switch (l.type) {
1041
1041
  case "directional":
1042
- c = new rr(A), c.target.position.set(0, 0, -1), c.add(c.target);
1042
+ c = new ar(A), c.target.position.set(0, 0, -1), c.add(c.target);
1043
1043
  break;
1044
1044
  case "point":
1045
- c = new or(A), c.distance = h;
1045
+ c = new rr(A), c.distance = h;
1046
1046
  break;
1047
1047
  case "spot":
1048
- c = new nr(A), c.distance = h, l.spot = l.spot || {}, l.spot.innerConeAngle = l.spot.innerConeAngle !== void 0 ? l.spot.innerConeAngle : 0, l.spot.outerConeAngle = l.spot.outerConeAngle !== void 0 ? l.spot.outerConeAngle : Math.PI / 4, c.angle = l.spot.outerConeAngle, c.penumbra = 1 - l.spot.innerConeAngle / l.spot.outerConeAngle, c.target.position.set(0, 0, -1), c.add(c.target);
1048
+ c = new or(A), c.distance = h, l.spot = l.spot || {}, l.spot.innerConeAngle = l.spot.innerConeAngle !== void 0 ? l.spot.innerConeAngle : 0, l.spot.outerConeAngle = l.spot.outerConeAngle !== void 0 ? l.spot.outerConeAngle : Math.PI / 4, c.angle = l.spot.outerConeAngle, c.penumbra = 1 - l.spot.innerConeAngle / l.spot.outerConeAngle, c.target.position.set(0, 0, -1), c.add(c.target);
1049
1049
  break;
1050
1050
  default:
1051
1051
  throw new Error("THREE.GLTFLoader: Unexpected light type: " + l.type);
@@ -1063,7 +1063,7 @@ class pa {
1063
1063
  });
1064
1064
  }
1065
1065
  }
1066
- class fa {
1066
+ class ma {
1067
1067
  constructor() {
1068
1068
  this.name = D.KHR_MATERIALS_UNLIT;
1069
1069
  }
@@ -1084,7 +1084,7 @@ class fa {
1084
1084
  return Promise.all(i);
1085
1085
  }
1086
1086
  }
1087
- class ma {
1087
+ class ba {
1088
1088
  constructor(e) {
1089
1089
  this.parser = e, this.name = D.KHR_MATERIALS_EMISSIVE_STRENGTH;
1090
1090
  }
@@ -1096,7 +1096,7 @@ class ma {
1096
1096
  return n !== void 0 && (t.emissiveIntensity = n), Promise.resolve();
1097
1097
  }
1098
1098
  }
1099
- class ba {
1099
+ class Ca {
1100
1100
  constructor(e) {
1101
1101
  this.parser = e, this.name = D.KHR_MATERIALS_CLEARCOAT;
1102
1102
  }
@@ -1116,7 +1116,7 @@ class ba {
1116
1116
  return Promise.all(n);
1117
1117
  }
1118
1118
  }
1119
- class Ca {
1119
+ class Ea {
1120
1120
  constructor(e) {
1121
1121
  this.parser = e, this.name = D.KHR_MATERIALS_DISPERSION;
1122
1122
  }
@@ -1132,7 +1132,7 @@ class Ca {
1132
1132
  return t.dispersion = n.dispersion !== void 0 ? n.dispersion : 0, Promise.resolve();
1133
1133
  }
1134
1134
  }
1135
- class Ea {
1135
+ class ya {
1136
1136
  constructor(e) {
1137
1137
  this.parser = e, this.name = D.KHR_MATERIALS_IRIDESCENCE;
1138
1138
  }
@@ -1148,7 +1148,7 @@ class Ea {
1148
1148
  return o.iridescenceFactor !== void 0 && (t.iridescence = o.iridescenceFactor), o.iridescenceTexture !== void 0 && n.push(s.assignTexture(t, "iridescenceMap", o.iridescenceTexture)), o.iridescenceIor !== void 0 && (t.iridescenceIOR = o.iridescenceIor), t.iridescenceThicknessRange === void 0 && (t.iridescenceThicknessRange = [100, 400]), o.iridescenceThicknessMinimum !== void 0 && (t.iridescenceThicknessRange[0] = o.iridescenceThicknessMinimum), o.iridescenceThicknessMaximum !== void 0 && (t.iridescenceThicknessRange[1] = o.iridescenceThicknessMaximum), o.iridescenceThicknessTexture !== void 0 && n.push(s.assignTexture(t, "iridescenceThicknessMap", o.iridescenceThicknessTexture)), Promise.all(n);
1149
1149
  }
1150
1150
  }
1151
- class ya {
1151
+ class Ia {
1152
1152
  constructor(e) {
1153
1153
  this.parser = e, this.name = D.KHR_MATERIALS_SHEEN;
1154
1154
  }
@@ -1170,7 +1170,7 @@ class ya {
1170
1170
  return o.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = o.sheenRoughnessFactor), o.sheenColorTexture !== void 0 && n.push(s.assignTexture(t, "sheenColorMap", o.sheenColorTexture, Ce)), o.sheenRoughnessTexture !== void 0 && n.push(s.assignTexture(t, "sheenRoughnessMap", o.sheenRoughnessTexture)), Promise.all(n);
1171
1171
  }
1172
1172
  }
1173
- class Ia {
1173
+ class Ba {
1174
1174
  constructor(e) {
1175
1175
  this.parser = e, this.name = D.KHR_MATERIALS_TRANSMISSION;
1176
1176
  }
@@ -1186,7 +1186,7 @@ class Ia {
1186
1186
  return o.transmissionFactor !== void 0 && (t.transmission = o.transmissionFactor), o.transmissionTexture !== void 0 && n.push(s.assignTexture(t, "transmissionMap", o.transmissionTexture)), Promise.all(n);
1187
1187
  }
1188
1188
  }
1189
- class Ba {
1189
+ class wa {
1190
1190
  constructor(e) {
1191
1191
  this.parser = e, this.name = D.KHR_MATERIALS_VOLUME;
1192
1192
  }
@@ -1204,7 +1204,7 @@ class Ba {
1204
1204
  return t.attenuationColor = new Ee().setRGB(r[0], r[1], r[2], le), Promise.all(n);
1205
1205
  }
1206
1206
  }
1207
- class wa {
1207
+ class Sa {
1208
1208
  constructor(e) {
1209
1209
  this.parser = e, this.name = D.KHR_MATERIALS_IOR;
1210
1210
  }
@@ -1220,7 +1220,7 @@ class wa {
1220
1220
  return t.ior = n.ior !== void 0 ? n.ior : 1.5, Promise.resolve();
1221
1221
  }
1222
1222
  }
1223
- class Sa {
1223
+ class va {
1224
1224
  constructor(e) {
1225
1225
  this.parser = e, this.name = D.KHR_MATERIALS_SPECULAR;
1226
1226
  }
@@ -1238,7 +1238,7 @@ class Sa {
1238
1238
  return t.specularColor = new Ee().setRGB(r[0], r[1], r[2], le), o.specularColorTexture !== void 0 && n.push(s.assignTexture(t, "specularColorMap", o.specularColorTexture, Ce)), Promise.all(n);
1239
1239
  }
1240
1240
  }
1241
- class va {
1241
+ class Ma {
1242
1242
  constructor(e) {
1243
1243
  this.parser = e, this.name = D.EXT_MATERIALS_BUMP;
1244
1244
  }
@@ -1254,7 +1254,7 @@ class va {
1254
1254
  return t.bumpScale = o.bumpFactor !== void 0 ? o.bumpFactor : 1, o.bumpTexture !== void 0 && n.push(s.assignTexture(t, "bumpMap", o.bumpTexture)), Promise.all(n);
1255
1255
  }
1256
1256
  }
1257
- class Ma {
1257
+ class xa {
1258
1258
  constructor(e) {
1259
1259
  this.parser = e, this.name = D.KHR_MATERIALS_ANISOTROPY;
1260
1260
  }
@@ -1270,7 +1270,7 @@ class Ma {
1270
1270
  return o.anisotropyStrength !== void 0 && (t.anisotropy = o.anisotropyStrength), o.anisotropyRotation !== void 0 && (t.anisotropyRotation = o.anisotropyRotation), o.anisotropyTexture !== void 0 && n.push(s.assignTexture(t, "anisotropyMap", o.anisotropyTexture)), Promise.all(n);
1271
1271
  }
1272
1272
  }
1273
- class xa {
1273
+ class Qa {
1274
1274
  constructor(e) {
1275
1275
  this.parser = e, this.name = D.KHR_TEXTURE_BASISU;
1276
1276
  }
@@ -1287,7 +1287,7 @@ class xa {
1287
1287
  return t.loadTextureImage(e, n.source, o);
1288
1288
  }
1289
1289
  }
1290
- class Qa {
1290
+ class Ta {
1291
1291
  constructor(e) {
1292
1292
  this.parser = e, this.name = D.EXT_TEXTURE_WEBP;
1293
1293
  }
@@ -1304,7 +1304,7 @@ class Qa {
1304
1304
  return s.loadTextureImage(e, o.source, l);
1305
1305
  }
1306
1306
  }
1307
- class Ta {
1307
+ class Ra {
1308
1308
  constructor(e) {
1309
1309
  this.parser = e, this.name = D.EXT_TEXTURE_AVIF;
1310
1310
  }
@@ -1321,7 +1321,7 @@ class Ta {
1321
1321
  return s.loadTextureImage(e, o.source, l);
1322
1322
  }
1323
1323
  }
1324
- class Ra {
1324
+ class Da {
1325
1325
  constructor(e) {
1326
1326
  this.name = D.EXT_MESHOPT_COMPRESSION, this.parser = e;
1327
1327
  }
@@ -1347,7 +1347,7 @@ class Ra {
1347
1347
  return null;
1348
1348
  }
1349
1349
  }
1350
- class Da {
1350
+ class La {
1351
1351
  constructor(e) {
1352
1352
  this.name = D.EXT_MESH_GPU_INSTANCING, this.parser = e;
1353
1353
  }
@@ -1365,13 +1365,13 @@ class Da {
1365
1365
  return r.length < 1 ? null : (r.push(this.parser.createNodeMesh(e)), Promise.all(r).then((c) => {
1366
1366
  const A = c.pop(), h = A.isGroup ? A.children : [A], d = c[0].count, u = [];
1367
1367
  for (const g of h) {
1368
- const p = new P(), b = new v(), E = new $e(), C = new v(1, 1, 1), y = new ai(g.geometry, g.material, d);
1368
+ const p = new P(), b = new v(), E = new $e(), C = new v(1, 1, 1), y = new li(g.geometry, g.material, d);
1369
1369
  for (let f = 0; f < d; f++)
1370
1370
  l.TRANSLATION && b.fromBufferAttribute(l.TRANSLATION, f), l.ROTATION && E.fromBufferAttribute(l.ROTATION, f), l.SCALE && C.fromBufferAttribute(l.SCALE, f), y.setMatrixAt(f, p.compose(b, E, C));
1371
1371
  for (const f in l)
1372
1372
  if (f === "_COLOR_0") {
1373
1373
  const I = l[f];
1374
- y.instanceColor = new ar(I.array, I.itemSize, I.normalized);
1374
+ y.instanceColor = new lr(I.array, I.itemSize, I.normalized);
1375
1375
  } else f !== "TRANSLATION" && f !== "ROTATION" && f !== "SCALE" && g.geometry.setAttribute(f, l[f]);
1376
1376
  ns.prototype.copy.call(y, g), this.parser.assignFinalMaterial(y), u.push(y);
1377
1377
  }
@@ -1379,8 +1379,8 @@ class Da {
1379
1379
  }));
1380
1380
  }
1381
1381
  }
1382
- const $n = "glTF", rt = 12, Di = { JSON: 1313821514, BIN: 5130562 };
1383
- class La {
1382
+ const eo = "glTF", rt = 12, Li = { JSON: 1313821514, BIN: 5130562 };
1383
+ class Fa {
1384
1384
  constructor(e) {
1385
1385
  this.name = D.KHR_BINARY_GLTF, this.content = null, this.body = null;
1386
1386
  const t = new DataView(e, 0, rt), s = new TextDecoder();
@@ -1388,7 +1388,7 @@ class La {
1388
1388
  magic: s.decode(new Uint8Array(e.slice(0, 4))),
1389
1389
  version: t.getUint32(4, !0),
1390
1390
  length: t.getUint32(8, !0)
1391
- }, this.header.magic !== $n)
1391
+ }, this.header.magic !== eo)
1392
1392
  throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
1393
1393
  if (this.header.version < 2)
1394
1394
  throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
@@ -1398,10 +1398,10 @@ class La {
1398
1398
  const r = n.getUint32(o, !0);
1399
1399
  o += 4;
1400
1400
  const l = n.getUint32(o, !0);
1401
- if (o += 4, l === Di.JSON) {
1401
+ if (o += 4, l === Li.JSON) {
1402
1402
  const c = new Uint8Array(e, rt + o, r);
1403
1403
  this.content = s.decode(c);
1404
- } else if (l === Di.BIN) {
1404
+ } else if (l === Li.BIN) {
1405
1405
  const c = rt + o;
1406
1406
  this.body = e.slice(c, c + r);
1407
1407
  }
@@ -1411,7 +1411,7 @@ class La {
1411
1411
  throw new Error("THREE.GLTFLoader: JSON content not found.");
1412
1412
  }
1413
1413
  }
1414
- class Fa {
1414
+ class ka {
1415
1415
  constructor(e, t) {
1416
1416
  if (!t)
1417
1417
  throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
@@ -1443,7 +1443,7 @@ class Fa {
1443
1443
  });
1444
1444
  }
1445
1445
  }
1446
- class ka {
1446
+ class _a {
1447
1447
  constructor() {
1448
1448
  this.name = D.KHR_TEXTURE_TRANSFORM;
1449
1449
  }
@@ -1451,12 +1451,12 @@ class ka {
1451
1451
  return (t.texCoord === void 0 || t.texCoord === e.channel) && t.offset === void 0 && t.rotation === void 0 && t.scale === void 0 || (e = e.clone(), t.texCoord !== void 0 && (e.channel = t.texCoord), t.offset !== void 0 && e.offset.fromArray(t.offset), t.rotation !== void 0 && (e.rotation = t.rotation), t.scale !== void 0 && e.repeat.fromArray(t.scale), e.needsUpdate = !0), e;
1452
1452
  }
1453
1453
  }
1454
- class _a {
1454
+ class Pa {
1455
1455
  constructor() {
1456
1456
  this.name = D.KHR_MESH_QUANTIZATION;
1457
1457
  }
1458
1458
  }
1459
- class eo extends Qr {
1459
+ class to extends Tr {
1460
1460
  constructor(e, t, s, i) {
1461
1461
  super(e, t, s, i);
1462
1462
  }
@@ -1475,11 +1475,11 @@ class eo extends Qr {
1475
1475
  return n;
1476
1476
  }
1477
1477
  }
1478
- const Pa = new $e();
1479
- class Ga extends eo {
1478
+ const Ga = new $e();
1479
+ class Ua extends to {
1480
1480
  interpolate_(e, t, s, i) {
1481
1481
  const n = super.interpolate_(e, t, s, i);
1482
- return Pa.fromArray(n).normalize().toArray(n), n;
1482
+ return Ga.fromArray(n).normalize().toArray(n), n;
1483
1483
  }
1484
1484
  }
1485
1485
  const ie = {
@@ -1497,16 +1497,16 @@ const ie = {
1497
1497
  5123: Uint16Array,
1498
1498
  5125: Uint32Array,
1499
1499
  5126: Float32Array
1500
- }, Li = {
1501
- 9728: Gn,
1500
+ }, Fi = {
1501
+ 9728: Un,
1502
1502
  9729: Ge,
1503
- 9984: ur,
1504
- 9985: dr,
1505
- 9986: hr,
1503
+ 9984: gr,
1504
+ 9985: ur,
1505
+ 9986: dr,
1506
1506
  9987: os
1507
- }, Fi = {
1508
- 33071: pr,
1509
- 33648: gr,
1507
+ }, ki = {
1508
+ 33071: fr,
1509
+ 33648: pr,
1510
1510
  10497: js
1511
1511
  }, fs = {
1512
1512
  SCALAR: 1,
@@ -1532,26 +1532,26 @@ const ie = {
1532
1532
  translation: "position",
1533
1533
  rotation: "quaternion",
1534
1534
  weights: "morphTargetInfluences"
1535
- }, Ua = {
1535
+ }, Na = {
1536
1536
  CUBICSPLINE: void 0,
1537
1537
  // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
1538
1538
  // keyframe track will be initialized with a default interpolation type, then modified.
1539
- LINEAR: On,
1540
- STEP: Mr
1539
+ LINEAR: Hn,
1540
+ STEP: xr
1541
1541
  }, ms = {
1542
1542
  OPAQUE: "OPAQUE",
1543
1543
  MASK: "MASK",
1544
1544
  BLEND: "BLEND"
1545
1545
  };
1546
- function Na(a) {
1547
- return a.DefaultMaterial === void 0 && (a.DefaultMaterial = new li({
1546
+ function Va(a) {
1547
+ return a.DefaultMaterial === void 0 && (a.DefaultMaterial = new ci({
1548
1548
  color: 16777215,
1549
1549
  emissive: 0,
1550
1550
  metalness: 1,
1551
1551
  roughness: 1,
1552
1552
  transparent: !1,
1553
1553
  depthTest: !0,
1554
- side: xr
1554
+ side: Qr
1555
1555
  })), a.DefaultMaterial;
1556
1556
  }
1557
1557
  function Re(a, e, t) {
@@ -1561,7 +1561,7 @@ function Re(a, e, t) {
1561
1561
  function be(a, e) {
1562
1562
  e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(a.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
1563
1563
  }
1564
- function Va(a, e, t) {
1564
+ function Oa(a, e, t) {
1565
1565
  let s = !1, i = !1, n = !1;
1566
1566
  for (let c = 0, A = e.length; c < A; c++) {
1567
1567
  const h = e[c];
@@ -1593,7 +1593,7 @@ function Va(a, e, t) {
1593
1593
  return s && (a.morphAttributes.position = A), i && (a.morphAttributes.normal = h), n && (a.morphAttributes.color = d), a.morphTargetsRelative = !0, a;
1594
1594
  });
1595
1595
  }
1596
- function Oa(a, e) {
1596
+ function Ha(a, e) {
1597
1597
  if (a.updateMorphTargets(), e.weights !== void 0)
1598
1598
  for (let t = 0, s = e.weights.length; t < s; t++)
1599
1599
  a.morphTargetInfluences[t] = e.weights[t];
@@ -1607,7 +1607,7 @@ function Oa(a, e) {
1607
1607
  console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
1608
1608
  }
1609
1609
  }
1610
- function Ha(a) {
1610
+ function qa(a) {
1611
1611
  let e;
1612
1612
  const t = a.extensions && a.extensions[D.KHR_DRACO_MESH_COMPRESSION];
1613
1613
  if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + bs(t.attributes) : e = a.indices + ":" + bs(a.attributes) + ":" + a.mode, a.targets !== void 0)
@@ -1636,13 +1636,13 @@ function $s(a) {
1636
1636
  throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
1637
1637
  }
1638
1638
  }
1639
- function qa(a) {
1639
+ function za(a) {
1640
1640
  return a.search(/\.jpe?g($|\?)/i) > 0 || a.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : a.search(/\.webp($|\?)/i) > 0 || a.search(/^data\:image\/webp/) === 0 ? "image/webp" : a.search(/\.ktx2($|\?)/i) > 0 || a.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png";
1641
1641
  }
1642
- const za = new P();
1643
- class ja {
1642
+ const ja = new P();
1643
+ class Ka {
1644
1644
  constructor(e = {}, t = {}) {
1645
- this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new ga(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
1645
+ this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new pa(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
1646
1646
  let s = !1, i = -1, n = !1, o = -1;
1647
1647
  if (typeof navigator < "u") {
1648
1648
  const r = navigator.userAgent;
@@ -1650,7 +1650,7 @@ class ja {
1650
1650
  const l = r.match(/Version\/(\d+)/);
1651
1651
  i = s && l ? parseInt(l[1], 10) : -1, n = r.indexOf("Firefox") > -1, o = n ? r.match(/Firefox\/([0-9]+)\./)[1] : -1;
1652
1652
  }
1653
- typeof createImageBitmap > "u" || s && i < 17 || n && o < 98 ? this.textureLoader = new lr(this.options.manager) : this.textureLoader = new cr(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new xe(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
1653
+ typeof createImageBitmap > "u" || s && i < 17 || n && o < 98 ? this.textureLoader = new cr(this.options.manager) : this.textureLoader = new Ar(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.textureLoader.setRequestHeader(this.options.requestHeader), this.fileLoader = new xe(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), this.options.crossOrigin === "use-credentials" && this.fileLoader.setWithCredentials(!0);
1654
1654
  }
1655
1655
  setExtensions(e) {
1656
1656
  this.extensions = e;
@@ -1900,7 +1900,7 @@ class ja {
1900
1900
  if (u && u !== h) {
1901
1901
  const E = Math.floor(d / u), C = "InterleavedBuffer:" + i.bufferView + ":" + i.componentType + ":" + E + ":" + i.count;
1902
1902
  let y = t.cache.get(C);
1903
- y || (p = new c(r, E * u, i.count * u / A), y = new Ar(p, u / A), t.cache.add(C, y)), b = new Fe(y, l, d % u / A, g);
1903
+ y || (p = new c(r, E * u, i.count * u / A), y = new hr(p, u / A), t.cache.add(C, y)), b = new Fe(y, l, d % u / A, g);
1904
1904
  } else
1905
1905
  r === null ? p = new c(i.count * l) : p = new c(r, d, i.count * l), b = new ne(p, l, g);
1906
1906
  if (i.sparse !== void 0) {
@@ -1938,7 +1938,7 @@ class ja {
1938
1938
  const c = this.loadImageSource(t, s).then(function(A) {
1939
1939
  A.flipY = !1, A.name = o.name || r.name || "", A.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (A.name = r.uri);
1940
1940
  const d = (n.samplers || {})[o.sampler] || {};
1941
- return A.magFilter = Li[d.magFilter] || Ge, A.minFilter = Li[d.minFilter] || os, A.wrapS = Fi[d.wrapS] || js, A.wrapT = Fi[d.wrapT] || js, A.generateMipmaps = !A.isCompressedTexture && A.minFilter !== Gn && A.minFilter !== Ge, i.associations.set(A, { textures: e }), A;
1941
+ return A.magFilter = Fi[d.magFilter] || Ge, A.minFilter = Fi[d.minFilter] || os, A.wrapS = ki[d.wrapS] || js, A.wrapT = ki[d.wrapT] || js, A.generateMipmaps = !A.isCompressedTexture && A.minFilter !== Un && A.minFilter !== Ge, i.associations.set(A, { textures: e }), A;
1942
1942
  }).catch(function() {
1943
1943
  return null;
1944
1944
  });
@@ -1962,12 +1962,12 @@ class ja {
1962
1962
  return new Promise(function(d, u) {
1963
1963
  let g = d;
1964
1964
  t.isImageBitmapLoader === !0 && (g = function(p) {
1965
- const b = new Ei(p);
1965
+ const b = new yi(p);
1966
1966
  b.needsUpdate = !0, d(b);
1967
1967
  }), t.load(mt.resolveURL(h, n.path), g, void 0, u);
1968
1968
  });
1969
1969
  }).then(function(h) {
1970
- return c === !0 && r.revokeObjectURL(l), be(h, o), h.userData.mimeType = o.mimeType || qa(o.uri), h;
1970
+ return c === !0 && r.revokeObjectURL(l), be(h, o), h.userData.mimeType = o.mimeType || za(o.uri), h;
1971
1971
  }).catch(function(h) {
1972
1972
  throw console.error("THREE.GLTFLoader: Couldn't load texture", l), h;
1973
1973
  });
@@ -2014,11 +2014,11 @@ class ja {
2014
2014
  if (e.isPoints) {
2015
2015
  const r = "PointsMaterial:" + s.uuid;
2016
2016
  let l = this.cache.get(r);
2017
- l || (l = new Un(), gs.prototype.copy.call(l, s), l.color.copy(s.color), l.map = s.map, l.sizeAttenuation = !1, this.cache.add(r, l)), s = l;
2017
+ l || (l = new Nn(), gs.prototype.copy.call(l, s), l.color.copy(s.color), l.map = s.map, l.sizeAttenuation = !1, this.cache.add(r, l)), s = l;
2018
2018
  } else if (e.isLine) {
2019
2019
  const r = "LineBasicMaterial:" + s.uuid;
2020
2020
  let l = this.cache.get(r);
2021
- l || (l = new fr(), gs.prototype.copy.call(l, s), l.color.copy(s.color), l.map = s.map, this.cache.add(r, l)), s = l;
2021
+ l || (l = new mr(), gs.prototype.copy.call(l, s), l.color.copy(s.color), l.map = s.map, this.cache.add(r, l)), s = l;
2022
2022
  }
2023
2023
  if (i || n || o) {
2024
2024
  let r = "ClonedMaterial:" + s.uuid + ":";
@@ -2029,7 +2029,7 @@ class ja {
2029
2029
  e.material = s;
2030
2030
  }
2031
2031
  getMaterialType() {
2032
- return li;
2032
+ return ci;
2033
2033
  }
2034
2034
  /**
2035
2035
  * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials
@@ -2057,7 +2057,7 @@ class ja {
2057
2057
  return d.extendMaterialParams && d.extendMaterialParams(e, r);
2058
2058
  })));
2059
2059
  }
2060
- n.doubleSided === !0 && (r.side = mr);
2060
+ n.doubleSided === !0 && (r.side = br);
2061
2061
  const A = n.alphaMode || ms.OPAQUE;
2062
2062
  if (A === ms.BLEND ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, A === ms.MASK && (r.alphaTest = n.alphaCutoff !== void 0 ? n.alphaCutoff : 0.5)), n.normalTexture !== void 0 && o !== ke && (c.push(t.assignTexture(r, "normalMap", n.normalTexture)), r.normalScale = new k(1, 1), n.normalTexture.scale !== void 0)) {
2063
2063
  const h = n.normalTexture.scale;
@@ -2080,7 +2080,7 @@ class ja {
2080
2080
  * @return {string}
2081
2081
  */
2082
2082
  createUniqueName(e) {
2083
- const t = br.sanitizeNodeName(e || "");
2083
+ const t = Cr.sanitizeNodeName(e || "");
2084
2084
  return t in this.nodeNamesUsed ? t + "_" + ++this.nodeNamesUsed[t] : (this.nodeNamesUsed[t] = 0, t);
2085
2085
  }
2086
2086
  /**
@@ -2096,17 +2096,17 @@ class ja {
2096
2096
  const t = this, s = this.extensions, i = this.primitiveCache;
2097
2097
  function n(r) {
2098
2098
  return s[D.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r, t).then(function(l) {
2099
- return ki(l, r, t);
2099
+ return _i(l, r, t);
2100
2100
  });
2101
2101
  }
2102
2102
  const o = [];
2103
2103
  for (let r = 0, l = e.length; r < l; r++) {
2104
- const c = e[r], A = Ha(c), h = i[A];
2104
+ const c = e[r], A = qa(c), h = i[A];
2105
2105
  if (h)
2106
2106
  o.push(h.promise);
2107
2107
  else {
2108
2108
  let d;
2109
- c.extensions && c.extensions[D.KHR_DRACO_MESH_COMPRESSION] ? d = n(c) : d = ki(new rs(), c, t), i[A] = { primitive: c, promise: d }, o.push(d);
2109
+ c.extensions && c.extensions[D.KHR_DRACO_MESH_COMPRESSION] ? d = n(c) : d = _i(new rs(), c, t), i[A] = { primitive: c, promise: d }, o.push(d);
2110
2110
  }
2111
2111
  }
2112
2112
  return Promise.all(o);
@@ -2121,7 +2121,7 @@ class ja {
2121
2121
  loadMesh(e) {
2122
2122
  const t = this, s = this.json, i = this.extensions, n = s.meshes[e], o = n.primitives, r = [];
2123
2123
  for (let l = 0, c = o.length; l < c; l++) {
2124
- const A = o[l].material === void 0 ? Na(this.cache) : this.getDependency("material", o[l].material);
2124
+ const A = o[l].material === void 0 ? Va(this.cache) : this.getDependency("material", o[l].material);
2125
2125
  r.push(A);
2126
2126
  }
2127
2127
  return r.push(t.loadGeometries(o)), Promise.all(r).then(function(l) {
@@ -2131,18 +2131,18 @@ class ja {
2131
2131
  let E;
2132
2132
  const C = c[u];
2133
2133
  if (b.mode === ie.TRIANGLES || b.mode === ie.TRIANGLE_STRIP || b.mode === ie.TRIANGLE_FAN || b.mode === void 0)
2134
- E = n.isSkinnedMesh === !0 ? new Cr(p, C) : new as(p, C), E.isSkinnedMesh === !0 && E.normalizeSkinWeights(), b.mode === ie.TRIANGLE_STRIP ? E.geometry = Ri(E.geometry, Pn) : b.mode === ie.TRIANGLE_FAN && (E.geometry = Ri(E.geometry, zs));
2134
+ E = n.isSkinnedMesh === !0 ? new Er(p, C) : new as(p, C), E.isSkinnedMesh === !0 && E.normalizeSkinWeights(), b.mode === ie.TRIANGLE_STRIP ? E.geometry = Di(E.geometry, Gn) : b.mode === ie.TRIANGLE_FAN && (E.geometry = Di(E.geometry, zs));
2135
2135
  else if (b.mode === ie.LINES)
2136
- E = new Er(p, C);
2137
- else if (b.mode === ie.LINE_STRIP)
2138
2136
  E = new yr(p, C);
2139
- else if (b.mode === ie.LINE_LOOP)
2137
+ else if (b.mode === ie.LINE_STRIP)
2140
2138
  E = new Ir(p, C);
2139
+ else if (b.mode === ie.LINE_LOOP)
2140
+ E = new Br(p, C);
2141
2141
  else if (b.mode === ie.POINTS)
2142
- E = new Nn(p, C);
2142
+ E = new Vn(p, C);
2143
2143
  else
2144
2144
  throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + b.mode);
2145
- Object.keys(E.geometry.morphAttributes).length > 0 && Oa(E, n), E.name = t.createUniqueName(n.name || "mesh_" + e), be(E, n), b.extensions && Re(i, E, b), t.assignFinalMaterial(E), h.push(E);
2145
+ Object.keys(E.geometry.morphAttributes).length > 0 && Ha(E, n), E.name = t.createUniqueName(n.name || "mesh_" + e), be(E, n), b.extensions && Re(i, E, b), t.assignFinalMaterial(E), h.push(E);
2146
2146
  }
2147
2147
  for (let u = 0, g = h.length; u < g; u++)
2148
2148
  t.associations.set(h[u], {
@@ -2172,7 +2172,7 @@ class ja {
2172
2172
  console.warn("THREE.GLTFLoader: Missing camera parameters.");
2173
2173
  return;
2174
2174
  }
2175
- return s.type === "perspective" ? t = new Br(st.radToDeg(i.yfov), i.aspectRatio || 1, i.znear || 1, i.zfar || 2e6) : s.type === "orthographic" && (t = new Vn(-i.xmag, i.xmag, i.ymag, -i.ymag, i.znear, i.zfar)), s.name && (t.name = this.createUniqueName(s.name)), be(t, s), Promise.resolve(t);
2175
+ return s.type === "perspective" ? t = new wr(st.radToDeg(i.yfov), i.aspectRatio || 1, i.znear || 1, i.zfar || 2e6) : s.type === "orthographic" && (t = new On(-i.xmag, i.xmag, i.ymag, -i.ymag, i.znear, i.zfar)), s.name && (t.name = this.createUniqueName(s.name)), be(t, s), Promise.resolve(t);
2176
2176
  }
2177
2177
  /**
2178
2178
  * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins
@@ -2196,7 +2196,7 @@ class ja {
2196
2196
  } else
2197
2197
  console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', t.joints[c]);
2198
2198
  }
2199
- return new wr(r, l);
2199
+ return new Sr(r, l);
2200
2200
  });
2201
2201
  }
2202
2202
  /**
@@ -2229,7 +2229,7 @@ class ja {
2229
2229
  for (let x = 0; x < S.length; x++)
2230
2230
  E.push(S[x]);
2231
2231
  }
2232
- return new Sr(n, void 0, E);
2232
+ return new vr(n, void 0, E);
2233
2233
  });
2234
2234
  }
2235
2235
  createNodeMesh(e) {
@@ -2262,7 +2262,7 @@ class ja {
2262
2262
  ]).then(function(c) {
2263
2263
  const A = c[0], h = c[1], d = c[2];
2264
2264
  d !== null && A.traverse(function(u) {
2265
- u.isSkinnedMesh && u.bind(d, za);
2265
+ u.isSkinnedMesh && u.bind(d, ja);
2266
2266
  });
2267
2267
  for (let u = 0, g = h.length; u < g; u++)
2268
2268
  A.add(h[u]);
@@ -2286,7 +2286,7 @@ class ja {
2286
2286
  r.push(c);
2287
2287
  }), this.nodeCache[e] = Promise.all(r).then(function(c) {
2288
2288
  let A;
2289
- if (n.isBone === !0 ? A = new vr() : c.length > 1 ? A = new Xe() : c.length === 1 ? A = c[0] : A = new ns(), A !== c[0])
2289
+ if (n.isBone === !0 ? A = new Mr() : c.length > 1 ? A = new Xe() : c.length === 1 ? A = c[0] : A = new ns(), A !== c[0])
2290
2290
  for (let h = 0, d = c.length; h < d; h++)
2291
2291
  A.add(c[h]);
2292
2292
  if (n.name && (A.userData.name = n.name, A.name = o), be(A, n), n.extensions && Re(s, A, n), n.matrix !== void 0) {
@@ -2322,7 +2322,7 @@ class ja {
2322
2322
  const c = (A) => {
2323
2323
  const h = /* @__PURE__ */ new Map();
2324
2324
  for (const [d, u] of i.associations)
2325
- (d instanceof gs || d instanceof Ei) && h.set(d, u);
2325
+ (d instanceof gs || d instanceof yi) && h.set(d, u);
2326
2326
  return A.traverse((d) => {
2327
2327
  const u = i.associations.get(d);
2328
2328
  u != null && h.set(d, u);
@@ -2339,29 +2339,29 @@ class ja {
2339
2339
  let c;
2340
2340
  switch (Ie[n.path]) {
2341
2341
  case Ie.weights:
2342
- c = Ii;
2342
+ c = Bi;
2343
2343
  break;
2344
2344
  case Ie.rotation:
2345
- c = Bi;
2345
+ c = wi;
2346
2346
  break;
2347
2347
  case Ie.translation:
2348
2348
  case Ie.scale:
2349
- c = yi;
2349
+ c = Ii;
2350
2350
  break;
2351
2351
  default:
2352
2352
  switch (s.itemSize) {
2353
2353
  case 1:
2354
- c = Ii;
2354
+ c = Bi;
2355
2355
  break;
2356
2356
  case 2:
2357
2357
  case 3:
2358
2358
  default:
2359
- c = yi;
2359
+ c = Ii;
2360
2360
  break;
2361
2361
  }
2362
2362
  break;
2363
2363
  }
2364
- const A = i.interpolation !== void 0 ? Ua[i.interpolation] : On, h = this._getArrayFromAccessor(s);
2364
+ const A = i.interpolation !== void 0 ? Na[i.interpolation] : Hn, h = this._getArrayFromAccessor(s);
2365
2365
  for (let d = 0, u = l.length; d < u; d++) {
2366
2366
  const g = new c(
2367
2367
  l[d] + "." + Ie[n.path],
@@ -2385,12 +2385,12 @@ class ja {
2385
2385
  }
2386
2386
  _createCubicSplineTrackInterpolant(e) {
2387
2387
  e.createInterpolant = function(s) {
2388
- const i = this instanceof Bi ? Ga : eo;
2388
+ const i = this instanceof wi ? Ua : to;
2389
2389
  return new i(this.times, this.values, this.getValueSize() / 3, s);
2390
2390
  }, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
2391
2391
  }
2392
2392
  }
2393
- function Ka(a, e, t) {
2393
+ function Ya(a, e, t) {
2394
2394
  const s = e.attributes, i = new it();
2395
2395
  if (s.POSITION !== void 0) {
2396
2396
  const r = t.json.accessors[s.POSITION], l = r.min, c = r.max;
@@ -2431,7 +2431,7 @@ function Ka(a, e, t) {
2431
2431
  const o = new Et();
2432
2432
  i.getCenter(o.center), o.radius = i.min.distanceTo(i.max) / 2, a.boundingSphere = o;
2433
2433
  }
2434
- function ki(a, e, t) {
2434
+ function _i(a, e, t) {
2435
2435
  const s = e.attributes, i = [];
2436
2436
  function n(o, r) {
2437
2437
  return t.getDependency("accessor", o).then(function(l) {
@@ -2448,12 +2448,12 @@ function ki(a, e, t) {
2448
2448
  });
2449
2449
  i.push(o);
2450
2450
  }
2451
- return Ks.workingColorSpace !== le && "COLOR_0" in s && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Ks.workingColorSpace}" not supported.`), be(a, e), Ka(a, e, t), Promise.all(i).then(function() {
2452
- return e.targets !== void 0 ? Va(a, e.targets, t) : a;
2451
+ return Ks.workingColorSpace !== le && "COLOR_0" in s && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Ks.workingColorSpace}" not supported.`), be(a, e), Ya(a, e, t), Promise.all(i).then(function() {
2452
+ return e.targets !== void 0 ? Oa(a, e.targets, t) : a;
2453
2453
  });
2454
2454
  }
2455
2455
  const Cs = /* @__PURE__ */ new WeakMap();
2456
- class to extends ri {
2456
+ class so extends ai {
2457
2457
  /**
2458
2458
  * Constructs a new Draco loader.
2459
2459
  *
@@ -2589,7 +2589,7 @@ class to extends ri {
2589
2589
  return e ? t.push(this._loadLibrary("draco_decoder.js", "text")) : (t.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), t.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(t).then((s) => {
2590
2590
  const i = s[0];
2591
2591
  e || (this.decoderConfig.wasmBinary = s[1]);
2592
- const n = Ya.toString(), o = [
2592
+ const n = Ja.toString(), o = [
2593
2593
  "/* draco decoder */",
2594
2594
  i,
2595
2595
  "",
@@ -2637,7 +2637,7 @@ class to extends ri {
2637
2637
  return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
2638
2638
  }
2639
2639
  }
2640
- function Ya() {
2640
+ function Ja() {
2641
2641
  let a, e;
2642
2642
  onmessage = function(o) {
2643
2643
  const r = o.data;
@@ -2727,7 +2727,7 @@ function Ya() {
2727
2727
  }
2728
2728
  }
2729
2729
  }
2730
- class Ja {
2730
+ class Wa {
2731
2731
  /**
2732
2732
  * Constructs a new Worker pool.
2733
2733
  *
@@ -2793,8 +2793,8 @@ class Ja {
2793
2793
  this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
2794
2794
  }
2795
2795
  }
2796
- const Wa = 0, _i = 2, Xa = 1, Pi = 2, Za = 0, $a = 1, el = 10, tl = 0, so = 9, io = 15, no = 16, oo = 22, ro = 37, ao = 43, lo = 76, co = 83, Ao = 97, ho = 100, uo = 103, go = 109, sl = 131, il = 132, nl = 133, ol = 134, rl = 137, al = 138, ll = 141, cl = 142, Al = 145, hl = 146, po = 148, fo = 152, dl = 157, ul = 158, mo = 165, bo = 166, Ai = 1000066e3;
2797
- class gl {
2796
+ const Xa = 0, Pi = 2, Za = 1, Gi = 2, $a = 0, el = 1, tl = 10, sl = 0, io = 9, no = 15, oo = 16, ro = 22, ao = 37, lo = 43, co = 76, Ao = 83, ho = 97, uo = 100, go = 103, po = 109, il = 131, nl = 132, ol = 133, rl = 134, al = 137, ll = 138, cl = 141, Al = 142, hl = 145, dl = 146, fo = 148, mo = 152, ul = 157, gl = 158, bo = 165, Co = 166, hi = 1000066e3;
2797
+ class pl {
2798
2798
  constructor() {
2799
2799
  this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{ vendorId: 0, descriptorType: 0, descriptorBlockSize: 0, versionNumber: 2, colorModel: 0, colorPrimaries: 1, transferFunction: 2, flags: 0, texelBlockDimension: [0, 0, 0, 0], bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0], samples: [] }], this.keyValue = {}, this.globalData = null;
2800
2800
  }
@@ -2839,13 +2839,13 @@ class at {
2839
2839
  }
2840
2840
  }
2841
2841
  const K = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
2842
- function Gi(a) {
2842
+ function Ui(a) {
2843
2843
  return new TextDecoder().decode(a);
2844
2844
  }
2845
- function pl(a) {
2845
+ function fl(a) {
2846
2846
  const e = new Uint8Array(a.buffer, a.byteOffset, K.length);
2847
2847
  if (e[0] !== K[0] || e[1] !== K[1] || e[2] !== K[2] || e[3] !== K[3] || e[4] !== K[4] || e[5] !== K[5] || e[6] !== K[6] || e[7] !== K[7] || e[8] !== K[8] || e[9] !== K[9] || e[10] !== K[10] || e[11] !== K[11]) throw new Error("Missing KTX 2.0 identifier.");
2848
- const t = new gl(), s = 17 * Uint32Array.BYTES_PER_ELEMENT, i = new at(a, K.length, s, !0);
2848
+ const t = new pl(), s = 17 * Uint32Array.BYTES_PER_ELEMENT, i = new at(a, K.length, s, !0);
2849
2849
  t.vkFormat = i._nextUint32(), t.typeSize = i._nextUint32(), t.pixelWidth = i._nextUint32(), t.pixelHeight = i._nextUint32(), t.pixelDepth = i._nextUint32(), t.layerCount = i._nextUint32(), t.faceCount = i._nextUint32();
2850
2850
  const n = i._nextUint32();
2851
2851
  t.supercompressionScheme = i._nextUint32();
@@ -2859,9 +2859,9 @@ function pl(a) {
2859
2859
  t.dataFormatDescriptor.length = 0, t.dataFormatDescriptor.push(g);
2860
2860
  const b = new at(a, l, c, !0);
2861
2861
  for (; b._offset < c; ) {
2862
- const F = b._nextUint32(), j = b._scan(F), ye = Gi(j);
2862
+ const F = b._nextUint32(), j = b._scan(F), ye = Ui(j);
2863
2863
  if (t.keyValue[ye] = b._nextUint8Array(F - j.byteLength - 1), ye.match(/^ktx/i)) {
2864
- const ot = Gi(t.keyValue[ye]);
2864
+ const ot = Ui(t.keyValue[ye]);
2865
2865
  t.keyValue[ye] = ot.substring(0, ot.lastIndexOf("\0"));
2866
2866
  }
2867
2867
  b._skip(F % 4 ? 4 - F % 4 : 0);
@@ -2876,9 +2876,9 @@ let Es, me, ei;
2876
2876
  const ys = { env: { emscripten_notify_memory_growth: function(a) {
2877
2877
  ei = new Uint8Array(me.exports.memory.buffer);
2878
2878
  } } };
2879
- let fl = class {
2879
+ let ml = class {
2880
2880
  init() {
2881
- return Es || (Es = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Ui).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, ys)).then(this._init) : WebAssembly.instantiate(Buffer.from(Ui, "base64"), ys).then(this._init), Es);
2881
+ return Es || (Es = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Ni).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, ys)).then(this._init) : WebAssembly.instantiate(Buffer.from(Ni, "base64"), ys).then(this._init), Es);
2882
2882
  }
2883
2883
  _init(e) {
2884
2884
  me = e.instance, ys.env.emscripten_notify_memory_growth(0);
@@ -2891,16 +2891,16 @@ let fl = class {
2891
2891
  return me.exports.free(i), me.exports.free(n), r;
2892
2892
  }
2893
2893
  };
2894
- const Ui = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", ml = "display-p3", bl = "display-p3-linear", Is = /* @__PURE__ */ new WeakMap();
2894
+ const Ni = "AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ", bl = "display-p3", Cl = "display-p3-linear", Is = /* @__PURE__ */ new WeakMap();
2895
2895
  let Bs = 0, ws;
2896
- class ee extends ri {
2896
+ class ee extends ai {
2897
2897
  /**
2898
2898
  * Constructs a new KTX2 loader.
2899
2899
  *
2900
2900
  * @param {LoadingManager} [manager] - The loading manager.
2901
2901
  */
2902
2902
  constructor(e) {
2903
- super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Ja(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
2903
+ super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Wa(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
2904
2904
  'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
2905
2905
  );
2906
2906
  }
@@ -3038,12 +3038,12 @@ class ee extends ri {
3038
3038
  if (s === "error") return Promise.reject(i);
3039
3039
  let h;
3040
3040
  if (t.faceCount === 6)
3041
- h = new Tr(n, l, c);
3041
+ h = new Rr(n, l, c);
3042
3042
  else {
3043
3043
  const d = n[0].mipmaps;
3044
- h = t.layerCount > 1 ? new Rr(d, o, r, t.layerCount, l, c) : new Hn(d, o, r, l, c);
3044
+ h = t.layerCount > 1 ? new Dr(d, o, r, t.layerCount, l, c) : new qn(d, o, r, l, c);
3045
3045
  }
3046
- return h.minFilter = n[0].mipmaps.length === 1 ? Ge : os, h.magFilter = Ge, h.generateMipmaps = !1, h.needsUpdate = !0, h.colorSpace = Co(t), h.premultiplyAlpha = !!(A & Xa), h;
3046
+ return h.minFilter = n[0].mipmaps.length === 1 ? Ge : os, h.magFilter = Ge, h.generateMipmaps = !1, h.needsUpdate = !0, h.colorSpace = Eo(t), h.premultiplyAlpha = !!(A & Za), h;
3047
3047
  }
3048
3048
  /**
3049
3049
  * @private
@@ -3052,9 +3052,9 @@ class ee extends ri {
3052
3052
  * @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
3053
3053
  */
3054
3054
  async _createTexture(e, t = {}) {
3055
- const s = pl(new Uint8Array(e)), i = s.vkFormat === Ai && s.dataFormatDescriptor[0].colorModel === 167;
3056
- if (!(s.vkFormat === tl || i && !this.workerConfig.astcHDRSupported))
3057
- return El(s);
3055
+ const s = fl(new Uint8Array(e)), i = s.vkFormat === hi && s.dataFormatDescriptor[0].colorModel === 167;
3056
+ if (!(s.vkFormat === sl || i && !this.workerConfig.astcHDRSupported))
3057
+ return yl(s);
3058
3058
  const o = t, r = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: o }, [e])).then((l) => this._createTextureFrom(l.data, s));
3059
3059
  return Is.set(e, { promise: r }), r;
3060
3060
  }
@@ -3096,14 +3096,14 @@ ee.TranscoderFormat = {
3096
3096
  ee.EngineFormat = {
3097
3097
  RGBAFormat: Ye,
3098
3098
  RGBA_ASTC_4x4_Format: jt,
3099
- RGB_BPTC_UNSIGNED_Format: _r,
3099
+ RGB_BPTC_UNSIGNED_Format: Pr,
3100
3100
  RGBA_BPTC_Format: Ys,
3101
- RGBA_ETC2_EAC_Format: qn,
3102
- RGBA_PVRTC_4BPPV1_Format: kr,
3101
+ RGBA_ETC2_EAC_Format: zn,
3102
+ RGBA_PVRTC_4BPPV1_Format: _r,
3103
3103
  RGBA_S3TC_DXT5_Format: Js,
3104
- RGB_ETC1_Format: Fr,
3105
- RGB_ETC2_Format: zn,
3106
- RGB_PVRTC_4BPPV1_Format: Lr,
3104
+ RGB_ETC1_Format: kr,
3105
+ RGB_ETC2_Format: jn,
3106
+ RGB_PVRTC_4BPPV1_Format: Fr,
3107
3107
  RGBA_S3TC_DXT1_Format: Ws
3108
3108
  };
3109
3109
  ee.EngineType = {
@@ -3170,8 +3170,8 @@ ee.BasisWorker = function() {
3170
3170
  const Oe = p.getImageLevelInfo(z, Ve, Q);
3171
3171
  Q === 0 && z === 0 && Ve === 0 && (Oe.origWidth % 4 !== 0 || Oe.origHeight % 4 !== 0) && console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), I > 1 ? (j = Oe.origWidth, ye = Oe.origHeight) : (j = Oe.width, ye = Oe.height);
3172
3172
  let He = new Uint8Array(p.getImageTranscodedSizeInBytes(z, Ve, 0, S));
3173
- const tr = p.transcodeImage(He, z, Ve, Q, S, 0, -1, -1);
3174
- if (R === i.HalfFloatType && (He = new Uint16Array(He.buffer, He.byteOffset, He.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !tr)
3173
+ const sr = p.transcodeImage(He, z, Ve, Q, S, 0, -1, -1);
3174
+ if (R === i.HalfFloatType && (He = new Uint16Array(He.buffer, He.byteOffset, He.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !sr)
3175
3175
  throw b(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
3176
3176
  F.push(He);
3177
3177
  }
@@ -3308,71 +3308,71 @@ ee.BasisWorker = function() {
3308
3308
  return b;
3309
3309
  }
3310
3310
  };
3311
- const Cl = /* @__PURE__ */ new Set([Ye, pt, gt]), Ss = {
3312
- [go]: Ye,
3313
- [Ao]: Ye,
3314
- [ro]: Ye,
3311
+ const El = /* @__PURE__ */ new Set([Ye, pt, gt]), Ss = {
3312
+ [po]: Ye,
3313
+ [ho]: Ye,
3315
3314
  [ao]: Ye,
3316
- [uo]: pt,
3317
- [co]: pt,
3318
- [no]: pt,
3315
+ [lo]: Ye,
3316
+ [go]: pt,
3317
+ [Ao]: pt,
3319
3318
  [oo]: pt,
3320
- [ho]: gt,
3321
- [lo]: gt,
3319
+ [ro]: pt,
3320
+ [uo]: gt,
3321
+ [co]: gt,
3322
+ [no]: gt,
3322
3323
  [io]: gt,
3323
- [so]: gt,
3324
- [po]: zn,
3325
- [fo]: qn,
3326
- [Ai]: jt,
3324
+ [fo]: jn,
3325
+ [mo]: zn,
3326
+ [hi]: jt,
3327
+ [gl]: jt,
3327
3328
  [ul]: jt,
3328
- [dl]: jt,
3329
- [bo]: Mi,
3330
- [mo]: Mi,
3331
- [nl]: Ws,
3329
+ [Co]: xi,
3330
+ [bo]: xi,
3332
3331
  [ol]: Ws,
3333
- [sl]: vi,
3334
- [il]: vi,
3335
- [al]: Si,
3336
- [rl]: Si,
3332
+ [rl]: Ws,
3333
+ [il]: Mi,
3334
+ [nl]: Mi,
3335
+ [ll]: vi,
3336
+ [al]: vi,
3337
+ [Al]: Js,
3337
3338
  [cl]: Js,
3338
- [ll]: Js,
3339
- [hl]: Ys,
3340
- [Al]: Ys
3339
+ [dl]: Ys,
3340
+ [hl]: Ys
3341
3341
  }, vs = {
3342
+ [po]: bt,
3343
+ [ho]: Je,
3344
+ [ao]: re,
3345
+ [lo]: re,
3342
3346
  [go]: bt,
3343
3347
  [Ao]: Je,
3348
+ [oo]: re,
3344
3349
  [ro]: re,
3345
- [ao]: re,
3346
3350
  [uo]: bt,
3347
3351
  [co]: Je,
3348
3352
  [no]: re,
3349
- [oo]: re,
3350
- [ho]: bt,
3351
- [lo]: Je,
3352
3353
  [io]: re,
3353
- [so]: re,
3354
- [po]: re,
3355
3354
  [fo]: re,
3356
- [Ai]: Je,
3357
- [bo]: re,
3358
- [mo]: re
3355
+ [mo]: re,
3356
+ [hi]: Je,
3357
+ [Co]: re,
3358
+ [bo]: re
3359
3359
  };
3360
- async function El(a) {
3360
+ async function yl(a) {
3361
3361
  const { vkFormat: e } = a;
3362
3362
  if (Ss[e] === void 0)
3363
3363
  throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
3364
3364
  let t;
3365
- a.supercompressionScheme === _i && (ws || (ws = new Promise(async (n) => {
3366
- const o = new fl();
3365
+ a.supercompressionScheme === Pi && (ws || (ws = new Promise(async (n) => {
3366
+ const o = new ml();
3367
3367
  await o.init(), n(o);
3368
3368
  })), t = await ws);
3369
3369
  const s = [];
3370
3370
  for (let n = 0; n < a.levels.length; n++) {
3371
3371
  const o = Math.max(1, a.pixelWidth >> n), r = Math.max(1, a.pixelHeight >> n), l = a.pixelDepth ? Math.max(1, a.pixelDepth >> n) : 0, c = a.levels[n];
3372
3372
  let A;
3373
- if (a.supercompressionScheme === Wa)
3373
+ if (a.supercompressionScheme === Xa)
3374
3374
  A = c.levelData;
3375
- else if (a.supercompressionScheme === _i)
3375
+ else if (a.supercompressionScheme === Pi)
3376
3376
  A = t.decode(c.levelData, c.uncompressedByteLength);
3377
3377
  else
3378
3378
  throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
@@ -3393,19 +3393,19 @@ async function El(a) {
3393
3393
  });
3394
3394
  }
3395
3395
  let i;
3396
- if (Cl.has(Ss[e]))
3397
- i = a.pixelDepth === 0 ? new jn(s[0].data, a.pixelWidth, a.pixelHeight) : new Dr(s[0].data, a.pixelWidth, a.pixelHeight, a.pixelDepth);
3396
+ if (El.has(Ss[e]))
3397
+ i = a.pixelDepth === 0 ? new Kn(s[0].data, a.pixelWidth, a.pixelHeight) : new Lr(s[0].data, a.pixelWidth, a.pixelHeight, a.pixelDepth);
3398
3398
  else {
3399
3399
  if (a.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
3400
- i = new Hn(s, a.pixelWidth, a.pixelHeight), i.minFilter = s.length === 1 ? Ge : os, i.magFilter = Ge;
3400
+ i = new qn(s, a.pixelWidth, a.pixelHeight), i.minFilter = s.length === 1 ? Ge : os, i.magFilter = Ge;
3401
3401
  }
3402
- return i.mipmaps = s, i.type = vs[e], i.format = Ss[e], i.colorSpace = Co(a), i.needsUpdate = !0, Promise.resolve(i);
3402
+ return i.mipmaps = s, i.type = vs[e], i.format = Ss[e], i.colorSpace = Eo(a), i.needsUpdate = !0, Promise.resolve(i);
3403
3403
  }
3404
- function Co(a) {
3404
+ function Eo(a) {
3405
3405
  const e = a.dataFormatDescriptor[0];
3406
- return e.colorPrimaries === $a ? e.transferFunction === Pi ? Ce : le : e.colorPrimaries === el ? e.transferFunction === Pi ? ml : bl : e.colorPrimaries === Za ? wi : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), wi);
3406
+ return e.colorPrimaries === el ? e.transferFunction === Gi ? Ce : le : e.colorPrimaries === tl ? e.transferFunction === Gi ? bl : Cl : e.colorPrimaries === $a ? Si : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), Si);
3407
3407
  }
3408
- var yl = function() {
3408
+ var Il = function() {
3409
3409
  var a = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok: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;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp: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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;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:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;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:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb", t = new Uint8Array([
3410
3410
  0,
3411
3411
  97,
@@ -3618,7 +3618,7 @@ var yl = function() {
3618
3618
  }
3619
3619
  };
3620
3620
  }();
3621
- function Il(a) {
3621
+ function Bl(a) {
3622
3622
  if (!a) return;
3623
3623
  (Array.isArray(a) ? a : [a]).forEach((t) => {
3624
3624
  t && (Object.keys(t).forEach((s) => {
@@ -3629,15 +3629,15 @@ function Il(a) {
3629
3629
  }
3630
3630
  function Ms(a) {
3631
3631
  !a || !a.traverse || a.traverse((e) => {
3632
- e.geometry && e.geometry.dispose(), e.material && Il(e.material);
3632
+ e.geometry && e.geometry.dispose(), e.material && Bl(e.material);
3633
3633
  });
3634
3634
  }
3635
- function Bl() {
3635
+ function wl() {
3636
3636
  m.Cache && typeof m.Cache.clear == "function" && m.Cache.clear();
3637
3637
  }
3638
3638
  class $ {
3639
3639
  constructor(e = null) {
3640
- this.renderer = e, this.isIOSWebKit = $.isIOSWebKit(), this.platformKey = $.getPlatformKey(), this.loader = new Ne(), this.dracoLoader = new to(), this.ktx2Loader = null, this.loadQueue = Promise.resolve(), this.activeIOSLoad = !1, this.dracoLoader.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.6/"), this.isIOSWebKit && typeof this.dracoLoader.setWorkerLimit == "function" && this.dracoLoader.setWorkerLimit(1), this.loader.setDRACOLoader(this.dracoLoader), this.loader.setMeshoptDecoder(yl), this.loader.register((t) => ({
3640
+ this.renderer = e, this.isIOSWebKit = $.isIOSWebKit(), this.platformKey = $.getPlatformKey(), this.loader = new Ne(), this.dracoLoader = new so(), this.ktx2Loader = null, this.loadQueue = Promise.resolve(), this.activeIOSLoad = !1, this.dracoLoader.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.6/"), this.isIOSWebKit && typeof this.dracoLoader.setWorkerLimit == "function" && this.dracoLoader.setWorkerLimit(1), this.loader.setDRACOLoader(this.dracoLoader), this.loader.setMeshoptDecoder(Il), this.loader.register((t) => ({
3641
3641
  name: "KHR_materials_pbrSpecularGlossiness",
3642
3642
  extendMaterialParams: async (s, i) => {
3643
3643
  const n = t.json.materials[s];
@@ -3819,7 +3819,7 @@ class $ {
3819
3819
  }
3820
3820
  releaseParserCaches(e) {
3821
3821
  const t = e?.parser;
3822
- t && (t.cache && typeof t.cache.removeAll == "function" && t.cache.removeAll(), t.associations && typeof t.associations.clear == "function" && t.associations.clear(), t.primitiveCache = {}, t.nodeCache = {}, t.meshCache = { refs: {}, uses: {} }, t.cameraCache = { refs: {}, uses: {} }, t.lightCache = { refs: {}, uses: {} }, t.sourceCache = {}, t.textureCache = {}, t.nodeNamesUsed = {}, t.json = null, t.extensions = null, t.plugins = null, t.options = null, t.textureLoader = null, e.parser = null, Bl());
3822
+ t && (t.cache && typeof t.cache.removeAll == "function" && t.cache.removeAll(), t.associations && typeof t.associations.clear == "function" && t.associations.clear(), t.primitiveCache = {}, t.nodeCache = {}, t.meshCache = { refs: {}, uses: {} }, t.cameraCache = { refs: {}, uses: {} }, t.lightCache = { refs: {}, uses: {} }, t.sourceCache = {}, t.textureCache = {}, t.nodeNamesUsed = {}, t.json = null, t.extensions = null, t.plugins = null, t.options = null, t.textureLoader = null, e.parser = null, wl());
3823
3823
  }
3824
3824
  dispose() {
3825
3825
  this.dracoLoader && this.dracoLoader.dispose(), this.cache.forEach((e) => {
@@ -3838,7 +3838,7 @@ class $ {
3838
3838
  }
3839
3839
  $.sharedKTX2Loaders = /* @__PURE__ */ new Map();
3840
3840
  $.sharedKTX2SetupComplete = /* @__PURE__ */ new Map();
3841
- let wl = class {
3841
+ let Sl = class {
3842
3842
  get unloadPriorityCallback() {
3843
3843
  return this._unloadPriorityCallback;
3844
3844
  }
@@ -3955,7 +3955,7 @@ let wl = class {
3955
3955
  this.scheduled = !1, this.unloadUnusedContent();
3956
3956
  }));
3957
3957
  }
3958
- }, Ni = class extends Error {
3958
+ }, Vi = class extends Error {
3959
3959
  constructor() {
3960
3960
  super("PriorityQueue: Item removed"), this.name = "PriorityQueueItemRemovedError";
3961
3961
  }
@@ -3995,9 +3995,9 @@ let wl = class {
3995
3995
  if (i !== -1) {
3996
3996
  const n = s.get(e);
3997
3997
  n.promise.catch((o) => {
3998
- if (!(o instanceof Ni))
3998
+ if (!(o instanceof Vi))
3999
3999
  throw o;
4000
- }), n.reject(new Ni()), t.splice(i, 1), s.delete(e);
4000
+ }), n.reject(new Vi()), t.splice(i, 1), s.delete(e);
4001
4001
  }
4002
4002
  }
4003
4003
  removeByFilter(e) {
@@ -4031,8 +4031,8 @@ let wl = class {
4031
4031
  this.scheduled || (this.schedulingCallback(this._runjobs), this.scheduled = !0);
4032
4032
  }
4033
4033
  };
4034
- const _e = -1, Be = 0, xt = 1, Qt = 2, Qs = 3, ae = 4, Vi = 6378137, Sl = 6356752314245179e-9;
4035
- function vl(a, e = null, t = null) {
4034
+ const _e = -1, Be = 0, xt = 1, Qt = 2, Qs = 3, ae = 4, Oi = 6378137, vl = 6356752314245179e-9;
4035
+ function Ml(a, e = null, t = null) {
4036
4036
  const s = [];
4037
4037
  for (s.push(a), s.push(null), s.push(0); s.length > 0; ) {
4038
4038
  const i = s.pop(), n = s.pop(), o = s.pop();
@@ -4058,11 +4058,11 @@ function Ue(a) {
4058
4058
  t += String.fromCharCode(e.getUint8(s));
4059
4059
  return t;
4060
4060
  }
4061
- const Ml = new TextDecoder();
4062
- function hi(a) {
4063
- return Ml.decode(a);
4064
- }
4061
+ const xl = new TextDecoder();
4065
4062
  function di(a) {
4063
+ return xl.decode(a);
4064
+ }
4065
+ function ui(a) {
4066
4066
  return a.replace(/[\\/][^\\/]+$/, "") + "/";
4067
4067
  }
4068
4068
  let It = class {
@@ -4077,7 +4077,7 @@ let It = class {
4077
4077
  if (!t.ok)
4078
4078
  throw new Error(`Failed to load file "${e}" with status ${t.status} : ${t.statusText}`);
4079
4079
  return t.arrayBuffer();
4080
- }).then((t) => (this.workingPath === "" && (this.workingPath = di(e)), this.parse(t)));
4080
+ }).then((t) => (this.workingPath === "" && (this.workingPath = ui(e)), this.parse(t)));
4081
4081
  }
4082
4082
  resolveExternalURL(e) {
4083
4083
  return new URL(e, this.workingPath).href;
@@ -4086,7 +4086,7 @@ let It = class {
4086
4086
  throw new Error("LoaderBase: Parse not implemented.");
4087
4087
  }
4088
4088
  };
4089
- function Oi(a) {
4089
+ function Hi(a) {
4090
4090
  if (!a)
4091
4091
  return null;
4092
4092
  let e = a.length;
@@ -4104,9 +4104,9 @@ function Wt(a) {
4104
4104
  return a === ae || a === _e;
4105
4105
  }
4106
4106
  function Qe(a, e) {
4107
- return Eo(a) && a.traversal.lastFrameVisited === e && a.traversal.used;
4107
+ return yo(a) && a.traversal.lastFrameVisited === e && a.traversal.used;
4108
4108
  }
4109
- function Eo(a) {
4109
+ function yo(a) {
4110
4110
  return !!a.traversal;
4111
4111
  }
4112
4112
  function Bt(a) {
@@ -4126,33 +4126,33 @@ function ti(a, e, t = !1) {
4126
4126
  ti(s[i], e, t);
4127
4127
  }
4128
4128
  }
4129
- function yo(a, e) {
4129
+ function Io(a, e) {
4130
4130
  if (As(a, e), a.traversal.usedLastFrame && (Xt(a), a.traversal.wasSetActive && (a.traversal.active = !0), (!a.traversal.active || et(a)) && Bt(a))) {
4131
4131
  const t = a.children;
4132
4132
  for (let s = 0, i = t.length; s < i; s++)
4133
- yo(t[s], e);
4133
+ Io(t[s], e);
4134
4134
  }
4135
4135
  }
4136
4136
  function Xt(a) {
4137
4137
  a.traversal.used = !0;
4138
4138
  }
4139
- function xl(a, e) {
4139
+ function Ql(a, e) {
4140
4140
  return !(a.traversal.error <= e.errorTarget && !et(a) || e.maxDepth > 0 && a.internal.depth + 1 >= e.maxDepth || !Bt(a));
4141
4141
  }
4142
- function Io(a, e) {
4142
+ function Bo(a, e) {
4143
4143
  const { frameCount: t } = e, { children: s } = a;
4144
4144
  for (let i = 0, n = s.length; i < n; i++) {
4145
4145
  const o = s[i];
4146
- Qe(o, t) && (o.traversal.active && (o.traversal.kicked = !0, o.traversal.active = !1), Io(o, e));
4146
+ Qe(o, t) && (o.traversal.active && (o.traversal.kicked = !0, o.traversal.active = !1), Bo(o, e));
4147
4147
  }
4148
4148
  }
4149
- function Hi(a) {
4149
+ function qi(a) {
4150
4150
  return !et(a) && (!a.internal.hasContent || Wt(a.internal.loadingState));
4151
4151
  }
4152
- function Bo(a, e) {
4152
+ function wo(a, e) {
4153
4153
  if (As(a, e), !a.traversal.inFrustum)
4154
4154
  return;
4155
- if (!xl(a, e)) {
4155
+ if (!Ql(a, e)) {
4156
4156
  Xt(a);
4157
4157
  return;
4158
4158
  }
@@ -4160,7 +4160,7 @@ function Bo(a, e) {
4160
4160
  const i = a.children;
4161
4161
  for (let n = 0, o = i.length; n < o; n++) {
4162
4162
  const r = i[n];
4163
- Bo(r, e), t = t || Qe(r, e.frameCount), s = s || r.traversal.inFrustum;
4163
+ wo(r, e), t = t || Qe(r, e.frameCount), s = s || r.traversal.inFrustum;
4164
4164
  }
4165
4165
  if (a.refine === "REPLACE" && !s && i.length !== 0) {
4166
4166
  a.traversal.inFrustum = !1, e.markTileUsed(a);
@@ -4172,7 +4172,7 @@ function Bo(a, e) {
4172
4172
  for (let n = 0, o = i.length; n < o; n++)
4173
4173
  ti(i[n], e);
4174
4174
  }
4175
- function wo(a, e) {
4175
+ function So(a, e) {
4176
4176
  const t = e.frameCount;
4177
4177
  if (!Qe(a, t))
4178
4178
  return;
@@ -4186,7 +4186,7 @@ function wo(a, e) {
4186
4186
  a.traversal.isLeaf = !0;
4187
4187
  else
4188
4188
  for (let o = 0, r = s.length; o < r; o++)
4189
- wo(s[o], e);
4189
+ So(s[o], e);
4190
4190
  let n = !0;
4191
4191
  for (let o = 0, r = s.length; o < r; o++) {
4192
4192
  const l = s[o];
@@ -4194,88 +4194,88 @@ function wo(a, e) {
4194
4194
  }
4195
4195
  a.traversal.allUsedChildrenProcessed = n && Bt(a);
4196
4196
  }
4197
- function So(a, e) {
4197
+ function vo(a, e) {
4198
4198
  if (!Qe(a, e.frameCount))
4199
4199
  return;
4200
4200
  const t = a.internal.hasContent, s = Wt(a.internal.loadingState) && t, i = a.children;
4201
4201
  if (a.traversal.isLeaf) {
4202
4202
  if (!et(a) && (a.traversal.active = !0, Bt(a) && (!a.internal.hasContent || !Wt(a.internal.loadingState))))
4203
4203
  for (let r = 0, l = i.length; r < l; r++)
4204
- yo(i[r], e);
4204
+ Io(i[r], e);
4205
4205
  return;
4206
4206
  }
4207
4207
  let n = i.length > 0;
4208
4208
  for (let r = 0, l = i.length; r < l; r++) {
4209
4209
  const c = i[r];
4210
- So(c, e), Qe(c, e.frameCount) && !(c.traversal.active && Hi(c)) && !c.traversal.allChildrenReady && (n = !1);
4210
+ vo(c, e), Qe(c, e.frameCount) && !(c.traversal.active && qi(c)) && !c.traversal.allChildrenReady && (n = !1);
4211
4211
  }
4212
4212
  a.traversal.allChildrenReady = n;
4213
- const o = a.traversal.active && Hi(a);
4214
- !et(a) && !n && !o && a.traversal.wasSetActive && (s || !a.internal.hasContent) && (a.traversal.active = !0, Io(a, e));
4213
+ const o = a.traversal.active && qi(a);
4214
+ !et(a) && !n && !o && a.traversal.wasSetActive && (s || !a.internal.hasContent) && (a.traversal.active = !0, Bo(a, e));
4215
4215
  }
4216
- function vo(a, e) {
4216
+ function Mo(a, e) {
4217
4217
  var t;
4218
4218
  const s = Qe(a, e.frameCount);
4219
- if (s && ((a.internal.hasUnrenderableContent || a.internal.hasRenderableContent && a.refine === "ADD") && (a.traversal.active = !0), (a.traversal.active || a.traversal.kicked) && a.internal.hasContent ? (e.markTileUsed(a), (a.internal.hasUnrenderableContent || a.traversal.allUsedChildrenProcessed) && e.queueTileForDownload(a), a.internal.loadingState !== ae && (a.traversal.active = !1)) : a.traversal.active = !1, a.traversal.visible = a.internal.hasRenderableContent && a.traversal.active && a.traversal.inFrustum && a.internal.loadingState === ae, e.stats.used++, a.traversal.inFrustum && e.stats.inFrustum++), s || Eo(a) && (t = a.traversal) != null && t.usedLastFrame) {
4219
+ if (s && ((a.internal.hasUnrenderableContent || a.internal.hasRenderableContent && a.refine === "ADD") && (a.traversal.active = !0), (a.traversal.active || a.traversal.kicked) && a.internal.hasContent ? (e.markTileUsed(a), (a.internal.hasUnrenderableContent || a.traversal.allUsedChildrenProcessed) && e.queueTileForDownload(a), a.internal.loadingState !== ae && (a.traversal.active = !1)) : a.traversal.active = !1, a.traversal.visible = a.internal.hasRenderableContent && a.traversal.active && a.traversal.inFrustum && a.internal.loadingState === ae, e.stats.used++, a.traversal.inFrustum && e.stats.inFrustum++), s || yo(a) && (t = a.traversal) != null && t.usedLastFrame) {
4220
4220
  let i = !1, n = !1;
4221
4221
  s ? (i = a.traversal.active, e.displayActiveTiles ? n = a.traversal.active || a.traversal.visible : n = a.traversal.visible) : As(a, e), a.internal.hasRenderableContent && a.internal.loadingState === ae && (a.traversal.wasSetActive !== i && (e.stats.active += i ? 1 : -1, e.invokeOnePlugin((r) => r.setTileActive && r.setTileActive(a, i))), a.traversal.wasSetVisible !== n && (e.stats.visible += n ? 1 : -1, e.invokeOnePlugin((r) => r.setTileVisible && r.setTileVisible(a, n)))), a.traversal.wasSetActive = i, a.traversal.wasSetVisible = n, a.traversal.usedLastFrame = s;
4222
4222
  const o = a.children;
4223
4223
  for (let r = 0, l = o.length; r < l; r++) {
4224
4224
  const c = o[r];
4225
- vo(c, e);
4225
+ Mo(c, e);
4226
4226
  }
4227
4227
  }
4228
4228
  }
4229
- function Ql(a, e) {
4230
- Bo(a, e), wo(a, e), So(a, e), vo(a, e);
4229
+ function Tl(a, e) {
4230
+ wo(a, e), So(a, e), vo(a, e), Mo(a, e);
4231
4231
  }
4232
4232
  const Rt = {
4233
4233
  inView: !1,
4234
4234
  error: 1 / 0,
4235
4235
  distanceFromCamera: 1 / 0
4236
- }, Mo = !0;
4237
- function xo(a) {
4236
+ }, xo = !0;
4237
+ function Qo(a) {
4238
4238
  return a === ae || a === _e;
4239
4239
  }
4240
4240
  function Te(a, e) {
4241
- return Qo(a) && a.traversal.lastFrameVisited === e && a.traversal.used;
4241
+ return To(a) && a.traversal.lastFrameVisited === e && a.traversal.used;
4242
4242
  }
4243
- function Qo(a) {
4243
+ function To(a) {
4244
4244
  return !!a.traversal;
4245
4245
  }
4246
- function ui(a) {
4246
+ function gi(a) {
4247
4247
  return a.children.length === 0 || !!a.children[0].internal;
4248
4248
  }
4249
- function gi(a) {
4249
+ function pi(a) {
4250
4250
  return a.internal.hasUnrenderableContent || a.parent && a.parent.geometricError < a.geometricError;
4251
4251
  }
4252
- function pi(a, e) {
4252
+ function fi(a, e) {
4253
4253
  a.traversal.lastFrameVisited !== e.frameCount && (a.traversal.lastFrameVisited = e.frameCount, a.traversal.used = !1, a.traversal.inFrustum = !1, a.traversal.isLeaf = !1, a.traversal.visible = !1, a.traversal.active = !1, a.traversal.error = 1 / 0, a.traversal.distanceFromCamera = 1 / 0, a.traversal.allChildrenReady = !1, e.calculateTileViewErrorWithPlugin(a, Rt), a.traversal.inFrustum = Rt.inView, a.traversal.error = Rt.error, a.traversal.distanceFromCamera = Rt.distanceFromCamera);
4254
4254
  }
4255
4255
  function si(a, e, t = !1) {
4256
- if (e.ensureChildrenArePreprocessed(a), pi(a, e), ii(a, e, t), gi(a) && ui(a)) {
4256
+ if (e.ensureChildrenArePreprocessed(a), fi(a, e), ii(a, e, t), pi(a) && gi(a)) {
4257
4257
  const s = a.children;
4258
4258
  for (let i = 0, n = s.length; i < n; i++)
4259
4259
  si(s[i], e, t);
4260
4260
  }
4261
4261
  }
4262
- function To(a, e) {
4263
- if (e.ensureChildrenArePreprocessed(a), Te(a, e.frameCount) && (a.internal.hasContent && e.queueTileForDownload(a), ui(a))) {
4262
+ function Ro(a, e) {
4263
+ if (e.ensureChildrenArePreprocessed(a), Te(a, e.frameCount) && (a.internal.hasContent && e.queueTileForDownload(a), gi(a))) {
4264
4264
  const t = a.children;
4265
4265
  for (let s = 0, i = t.length; s < i; s++)
4266
- To(t[s], e);
4266
+ Ro(t[s], e);
4267
4267
  }
4268
4268
  }
4269
4269
  function ii(a, e, t = !1) {
4270
4270
  a.traversal.used || (t || (a.traversal.used = !0, e.stats.used++), e.markTileUsed(a), a.traversal.inFrustum === !0 && e.stats.inFrustum++);
4271
4271
  }
4272
- function Tl(a, e) {
4273
- return !(a.traversal.error <= e.errorTarget && !gi(a) || e.maxDepth > 0 && a.internal.depth + 1 >= e.maxDepth || !ui(a));
4272
+ function Rl(a, e) {
4273
+ return !(a.traversal.error <= e.errorTarget && !pi(a) || e.maxDepth > 0 && a.internal.depth + 1 >= e.maxDepth || !gi(a));
4274
4274
  }
4275
- function Ro(a, e) {
4276
- if (e.ensureChildrenArePreprocessed(a), pi(a, e), !a.traversal.inFrustum)
4275
+ function Do(a, e) {
4276
+ if (e.ensureChildrenArePreprocessed(a), fi(a, e), !a.traversal.inFrustum)
4277
4277
  return;
4278
- if (!Tl(a, e)) {
4278
+ if (!Rl(a, e)) {
4279
4279
  ii(a, e);
4280
4280
  return;
4281
4281
  }
@@ -4283,7 +4283,7 @@ function Ro(a, e) {
4283
4283
  const i = a.children;
4284
4284
  for (let n = 0, o = i.length; n < o; n++) {
4285
4285
  const r = i[n];
4286
- Ro(r, e), t = t || Te(r, e.frameCount), s = s || r.traversal.inFrustum;
4286
+ Do(r, e), t = t || Te(r, e.frameCount), s = s || r.traversal.inFrustum;
4287
4287
  }
4288
4288
  if (a.refine === "REPLACE" && !s && i.length !== 0) {
4289
4289
  a.traversal.inFrustum = !1;
@@ -4291,11 +4291,11 @@ function Ro(a, e) {
4291
4291
  si(i[n], e, !0);
4292
4292
  return;
4293
4293
  }
4294
- if (ii(a, e), a.refine === "REPLACE" && (t && a.internal.depth !== 0 || Mo))
4294
+ if (ii(a, e), a.refine === "REPLACE" && (t && a.internal.depth !== 0 || xo))
4295
4295
  for (let n = 0, o = i.length; n < o; n++)
4296
4296
  si(i[n], e);
4297
4297
  }
4298
- function Do(a, e) {
4298
+ function Lo(a, e) {
4299
4299
  const t = e.frameCount;
4300
4300
  if (!Te(a, t))
4301
4301
  return;
@@ -4311,16 +4311,16 @@ function Do(a, e) {
4311
4311
  let n = !0;
4312
4312
  for (let o = 0, r = s.length; o < r; o++) {
4313
4313
  const l = s[o];
4314
- if (Do(l, e), Te(l, t)) {
4315
- const c = !gi(l);
4316
- let A = !l.internal.hasContent || l.internal.hasRenderableContent && xo(l.internal.loadingState) || l.internal.hasUnrenderableContent && l.internal.loadingState === _e;
4314
+ if (Lo(l, e), Te(l, t)) {
4315
+ const c = !pi(l);
4316
+ let A = !l.internal.hasContent || l.internal.hasRenderableContent && Qo(l.internal.loadingState) || l.internal.hasUnrenderableContent && l.internal.loadingState === _e;
4317
4317
  A = c && A || l.traversal.allChildrenReady, n = n && A;
4318
4318
  }
4319
4319
  }
4320
4320
  a.traversal.allChildrenReady = n;
4321
4321
  }
4322
4322
  }
4323
- function Lo(a, e) {
4323
+ function Fo(a, e) {
4324
4324
  const t = e.stats;
4325
4325
  if (!Te(a, e.frameCount))
4326
4326
  return;
@@ -4328,32 +4328,32 @@ function Lo(a, e) {
4328
4328
  a.internal.loadingState === ae ? (a.traversal.inFrustum && (a.traversal.visible = !0, t.visible++), a.traversal.active = !0, t.active++) : a.internal.hasContent && e.queueTileForDownload(a);
4329
4329
  return;
4330
4330
  }
4331
- const s = a.children, i = a.internal.hasContent, n = xo(a.internal.loadingState) && i, o = (e.errorTarget + 1) * e.errorThreshold, r = a.traversal.error <= o, l = a.refine === "ADD", c = a.traversal.allChildrenReady || a.internal.depth === 0 && !Mo;
4331
+ const s = a.children, i = a.internal.hasContent, n = Qo(a.internal.loadingState) && i, o = (e.errorTarget + 1) * e.errorThreshold, r = a.traversal.error <= o, l = a.refine === "ADD", c = a.traversal.allChildrenReady || a.internal.depth === 0 && !xo;
4332
4332
  if (i && (r || l) && e.queueTileForDownload(a), (r && n && !c || n && l) && (a.traversal.inFrustum && (a.traversal.visible = !0, t.visible++), a.traversal.active = !0, t.active++), !l && r && !c)
4333
4333
  for (let A = 0, h = s.length; A < h; A++) {
4334
4334
  const d = s[A];
4335
- Te(d, e.frameCount) && To(d, e);
4335
+ Te(d, e.frameCount) && Ro(d, e);
4336
4336
  }
4337
4337
  else
4338
4338
  for (let A = 0, h = s.length; A < h; A++)
4339
- Lo(s[A], e);
4339
+ Fo(s[A], e);
4340
4340
  }
4341
- function Fo(a, e) {
4341
+ function ko(a, e) {
4342
4342
  const t = Te(a, e.frameCount);
4343
- if (t || Qo(a) && a.traversal.usedLastFrame) {
4343
+ if (t || To(a) && a.traversal.usedLastFrame) {
4344
4344
  let s = !1, i = !1;
4345
- t ? (s = a.traversal.active, e.displayActiveTiles ? i = a.traversal.active || a.traversal.visible : i = a.traversal.visible) : pi(a, e), a.internal.hasRenderableContent && a.internal.loadingState === ae && (a.traversal.wasSetActive !== s && e.invokeOnePlugin((o) => o.setTileActive && o.setTileActive(a, s)), a.traversal.wasSetVisible !== i && e.invokeOnePlugin((o) => o.setTileVisible && o.setTileVisible(a, i))), a.traversal.wasSetActive = s, a.traversal.wasSetVisible = i, a.traversal.usedLastFrame = t;
4345
+ t ? (s = a.traversal.active, e.displayActiveTiles ? i = a.traversal.active || a.traversal.visible : i = a.traversal.visible) : fi(a, e), a.internal.hasRenderableContent && a.internal.loadingState === ae && (a.traversal.wasSetActive !== s && e.invokeOnePlugin((o) => o.setTileActive && o.setTileActive(a, s)), a.traversal.wasSetVisible !== i && e.invokeOnePlugin((o) => o.setTileVisible && o.setTileVisible(a, i))), a.traversal.wasSetActive = s, a.traversal.wasSetVisible = i, a.traversal.usedLastFrame = t;
4346
4346
  const n = a.children;
4347
4347
  for (let o = 0, r = n.length; o < r; o++) {
4348
4348
  const l = n[o];
4349
- Fo(l, e);
4349
+ ko(l, e);
4350
4350
  }
4351
4351
  }
4352
4352
  }
4353
- function Rl(a, e) {
4354
- Ro(a, e), Do(a, e), Lo(a, e), Fo(a, e);
4353
+ function Dl(a, e) {
4354
+ Do(a, e), Lo(a, e), Fo(a, e), ko(a, e);
4355
4355
  }
4356
- function Dl(a) {
4356
+ function Ll(a) {
4357
4357
  let e = null;
4358
4358
  return () => {
4359
4359
  e === null && (e = requestAnimationFrame(() => {
@@ -4361,21 +4361,21 @@ function Dl(a) {
4361
4361
  }));
4362
4362
  };
4363
4363
  }
4364
- const qi = Symbol("PLUGIN_REGISTERED"), we = {
4364
+ const zi = Symbol("PLUGIN_REGISTERED"), we = {
4365
4365
  inView: !0,
4366
4366
  error: 0,
4367
4367
  distance: 1 / 0
4368
4368
  }, Ts = (a, e) => {
4369
4369
  const t = a.priority || 0, s = e.priority || 0;
4370
4370
  return t !== s ? t > s ? 1 : -1 : !a.traversal || !e.traversal ? 0 : a.traversal.used !== e.traversal.used ? a.traversal.used ? 1 : -1 : a.traversal.error !== e.traversal.error ? a.traversal.error > e.traversal.error ? 1 : -1 : a.traversal.distanceFromCamera !== e.traversal.distanceFromCamera ? a.traversal.distanceFromCamera > e.traversal.distanceFromCamera ? -1 : 1 : a.internal.depthFromRenderedParent !== e.internal.depthFromRenderedParent ? a.internal.depthFromRenderedParent > e.internal.depthFromRenderedParent ? -1 : 1 : 0;
4371
- }, Ll = (a, e) => {
4371
+ }, Fl = (a, e) => {
4372
4372
  const t = a.priority || 0, s = e.priority || 0;
4373
4373
  return t !== s ? t > s ? 1 : -1 : !a.traversal || !e.traversal ? 0 : a.traversal.used !== e.traversal.used ? a.traversal.used ? 1 : -1 : a.traversal.inFrustum !== e.traversal.inFrustum ? a.traversal.inFrustum ? 1 : -1 : a.internal.hasUnrenderableContent !== e.internal.hasUnrenderableContent ? a.internal.hasUnrenderableContent ? 1 : -1 : a.traversal.distanceFromCamera !== e.traversal.distanceFromCamera ? a.traversal.distanceFromCamera > e.traversal.distanceFromCamera ? -1 : 1 : 0;
4374
- }, Fl = (a, e) => {
4374
+ }, kl = (a, e) => {
4375
4375
  const t = a.priority || 0, s = e.priority || 0;
4376
4376
  return t !== s ? t > s ? 1 : -1 : !a.traversal || !e.traversal ? 0 : a.traversal.lastFrameVisited !== e.traversal.lastFrameVisited ? a.traversal.lastFrameVisited > e.traversal.lastFrameVisited ? -1 : 1 : a.internal.depthFromRenderedParent !== e.internal.depthFromRenderedParent ? a.internal.depthFromRenderedParent > e.internal.depthFromRenderedParent ? 1 : -1 : a.internal.loadingState !== e.internal.loadingState ? a.internal.loadingState > e.internal.loadingState ? -1 : 1 : a.internal.hasUnrenderableContent !== e.internal.hasUnrenderableContent ? a.internal.hasUnrenderableContent ? -1 : 1 : a.traversal.error !== e.traversal.error ? a.traversal.error > e.traversal.error ? -1 : 1 : 0;
4377
4377
  };
4378
- class kl {
4378
+ class _l {
4379
4379
  get root() {
4380
4380
  const e = this.rootTileset;
4381
4381
  return e ? e.root : null;
@@ -4395,8 +4395,8 @@ class kl {
4395
4395
  }
4396
4396
  constructor(e = null) {
4397
4397
  this.rootLoadingState = Be, this.rootTileset = null, this.rootURL = e, this.fetchOptions = {}, this.plugins = [], this.queuedTiles = [], this.cachedSinceLoadComplete = /* @__PURE__ */ new Set(), this.isLoading = !1;
4398
- const t = new wl();
4399
- t.unloadPriorityCallback = Fl;
4398
+ const t = new Sl();
4399
+ t.unloadPriorityCallback = kl;
4400
4400
  const s = new xs();
4401
4401
  s.maxJobs = 25, s.priorityCallback = Ts;
4402
4402
  const i = new xs();
@@ -4418,13 +4418,13 @@ class kl {
4418
4418
  active: 0,
4419
4419
  visible: 0,
4420
4420
  tilesProcessed: 0
4421
- }, this.frameCount = 0, this._dispatchNeedsUpdateEvent = Dl(() => {
4421
+ }, this.frameCount = 0, this._dispatchNeedsUpdateEvent = Ll(() => {
4422
4422
  this.dispatchEvent({ type: "needs-update" });
4423
4423
  }), this.errorTarget = 16, this._errorThreshold = 1 / 0, this.displayActiveTiles = !1, this.maxDepth = 1 / 0, this.optimizedLoadStrategy = !1, this.loadSiblings = !0, this.maxTilesProcessed = 250;
4424
4424
  }
4425
4425
  // Plugins
4426
4426
  registerPlugin(e) {
4427
- if (e[qi] === !0)
4427
+ if (e[zi] === !0)
4428
4428
  throw new Error("TilesRendererBase: A plugin can only be registered to a single tileset");
4429
4429
  e.loadRootTileSet && !e.loadRootTileset && (console.warn('TilesRendererBase: Plugin implements deprecated "loadRootTileSet" method. Please rename to "loadRootTileset".'), e.loadRootTileset = e.loadRootTileSet), e.preprocessTileSet && !e.preprocessTileset && (console.warn('TilesRendererBase: Plugin implements deprecated "preprocessTileSet" method. Please rename to "preprocessTileset".'), e.preprocessTileset = e.preprocessTileSet);
4430
4430
  const t = this.plugins, s = e.priority || 0;
@@ -4434,7 +4434,7 @@ class kl {
4434
4434
  i = n;
4435
4435
  break;
4436
4436
  }
4437
- t.splice(i, 0, e), e[qi] = !0, e.init && e.init(this);
4437
+ t.splice(i, 0, e), e[zi] = !0, e.init && e.init(this);
4438
4438
  }
4439
4439
  unregisterPlugin(e) {
4440
4440
  const t = this.plugins;
@@ -4466,7 +4466,7 @@ class kl {
4466
4466
  }
4467
4467
  // Public API
4468
4468
  traverse(e, t, s = !0) {
4469
- this.root && vl(this.root, (i, ...n) => (s && this.ensureChildrenArePreprocessed(i, !0), e ? e(i, ...n) : !1), t);
4469
+ this.root && Ml(this.root, (i, ...n) => (s && this.ensureChildrenArePreprocessed(i, !0), e ? e(i, ...n) : !1), t);
4470
4470
  }
4471
4471
  getAttributions(e = []) {
4472
4472
  return this.invokeAllPlugins((t) => t !== this && t.getAttributions && t.getAttributions(e)), e;
@@ -4504,8 +4504,8 @@ class kl {
4504
4504
  return;
4505
4505
  }
4506
4506
  this.dispatchEvent({ type: "update-before" }), s.inFrustum = 0, s.used = 0, s.active = 0, s.visible = 0, s.tilesProcessed = 0, this.frameCount++, t.forEach((d) => e.markUnused(d)), t.clear();
4507
- const A = l ? Ll : Ts;
4508
- n.priorityCallback = A, o.priorityCallback = A, this.prepareForTraversal(), l ? Ql(i, this) : Rl(i, this), this.removeUnusedPendingTiles();
4507
+ const A = l ? Fl : Ts;
4508
+ n.priorityCallback = A, o.priorityCallback = A, this.prepareForTraversal(), l ? Tl(i, this) : Dl(i, this), this.removeUnusedPendingTiles();
4509
4509
  const h = this.queuedTiles;
4510
4510
  h.sort(e.unloadPriorityCallback);
4511
4511
  for (let d = 0, u = h.length; d < u && !e.isFull(); d++)
@@ -4581,7 +4581,7 @@ class kl {
4581
4581
  depth: -1,
4582
4582
  depthFromRenderedParent: -1
4583
4583
  }, (i = e.content) != null && i.uri) {
4584
- const n = Oi(e.content.uri), o = !!(n && /json$/.test(n));
4584
+ const n = Hi(e.content.uri), o = !!(n && /json$/.test(n));
4585
4585
  e.internal.hasContent = !0, e.internal.hasUnrenderableContent = o, e.internal.hasRenderableContent = !o;
4586
4586
  } else
4587
4587
  e.internal.hasContent = !1, e.internal.hasUnrenderableContent = !1, e.internal.hasRenderableContent = !1;
@@ -4704,7 +4704,7 @@ class kl {
4704
4704
  return;
4705
4705
  let t = !1, s = null, i = new URL(e.content.uri, e.internal.basePath + "/").toString();
4706
4706
  this.invokeAllPlugins((u) => i = u.preprocessURL ? u.preprocessURL(i, e) : i);
4707
- const n = this.stats, o = this.lruCache, r = this.downloadQueue, l = this.parseQueue, c = this.loadingTiles, A = Oi(i), h = new AbortController(), d = h.signal;
4707
+ const n = this.stats, o = this.lruCache, r = this.downloadQueue, l = this.parseQueue, c = this.loadingTiles, A = Hi(i), h = new AbortController(), d = h.signal;
4708
4708
  if (o.add(e, (u) => {
4709
4709
  h.abort(), t ? u.children.length = 0 : this.invokeAllPlugins((g) => {
4710
4710
  g.disposeTile && g.disposeTile(u);
@@ -4755,7 +4755,7 @@ class kl {
4755
4755
  });
4756
4756
  }
4757
4757
  }
4758
- function ko(a, e, t, s, i, n) {
4758
+ function _o(a, e, t, s, i, n) {
4759
4759
  let o;
4760
4760
  switch (s) {
4761
4761
  case "SCALAR":
@@ -4811,7 +4811,7 @@ let hs = class {
4811
4811
  let n = null;
4812
4812
  if (s !== 0) {
4813
4813
  const o = new Uint8Array(e, t, s);
4814
- n = JSON.parse(hi(o));
4814
+ n = JSON.parse(di(o));
4815
4815
  } else
4816
4816
  n = {};
4817
4817
  this.header = n;
@@ -4831,7 +4831,7 @@ let hs = class {
4831
4831
  const { buffer: r, binOffset: l, binLength: c } = this, A = o.byteOffset || 0, h = o.type || i, d = o.componentType || s;
4832
4832
  if ("type" in o && i && o.type !== i)
4833
4833
  throw new Error("FeatureTable: Specified type does not match expected type.");
4834
- const u = l + A, g = ko(r, u, t, h, d, e);
4834
+ const u = l + A, g = _o(r, u, t, h, d, e);
4835
4835
  if (u + g.byteLength > l + c)
4836
4836
  throw new Error("FeatureTable: Feature data read outside binary body length.");
4837
4837
  return g;
@@ -4843,7 +4843,7 @@ let hs = class {
4843
4843
  return s.slice(i + e, i + e + t);
4844
4844
  }
4845
4845
  };
4846
- class _l {
4846
+ class Pl {
4847
4847
  constructor(e) {
4848
4848
  this.batchTable = e;
4849
4849
  const t = e.header.extensions["3DTILES_batch_table_hierarchy"];
@@ -4868,7 +4868,7 @@ class _l {
4868
4868
  return e;
4869
4869
  {
4870
4870
  const { buffer: i, binOffset: n } = this.batchTable, o = e.byteOffset, r = e.componentType || "UNSIGNED_SHORT", l = n + o;
4871
- return ko(i, l, t, "SCALAR", r, s);
4871
+ return _o(i, l, t, "SCALAR", r, s);
4872
4872
  }
4873
4873
  }
4874
4874
  getDataFromId(e, t = {}) {
@@ -4888,14 +4888,14 @@ class _l {
4888
4888
  return t;
4889
4889
  }
4890
4890
  }
4891
- class fi extends hs {
4891
+ class mi extends hs {
4892
4892
  get batchSize() {
4893
4893
  return console.warn("BatchTable.batchSize has been deprecated and replaced with BatchTable.count."), this.count;
4894
4894
  }
4895
4895
  constructor(e, t, s, i, n) {
4896
4896
  super(e, s, i, n), this.count = t, this.extensions = {};
4897
4897
  const o = this.header.extensions;
4898
- o && o["3DTILES_batch_table_hierarchy"] && (this.extensions["3DTILES_batch_table_hierarchy"] = new _l(this));
4898
+ o && o["3DTILES_batch_table_hierarchy"] && (this.extensions["3DTILES_batch_table_hierarchy"] = new Pl(this));
4899
4899
  }
4900
4900
  getData(e, t = null, s = null) {
4901
4901
  return console.warn("BatchTable: BatchTable.getData is deprecated. Use BatchTable.getDataFromId to get allproperties for an id or BatchTable.getPropertyArray for getting an array of value for a property."), super.getData(e, this.count, t, s);
@@ -4915,7 +4915,7 @@ class fi extends hs {
4915
4915
  return super.getData(e, this.count);
4916
4916
  }
4917
4917
  }
4918
- let Pl = class extends It {
4918
+ let Gl = class extends It {
4919
4919
  parse(e) {
4920
4920
  const t = new DataView(e), s = Ue(t);
4921
4921
  console.assert(s === "b3dm");
@@ -4934,7 +4934,7 @@ let Pl = class extends It {
4934
4934
  ), u = A + o + r, g = e.slice(
4935
4935
  u,
4936
4936
  u + l + c
4937
- ), p = new fi(
4937
+ ), p = new mi(
4938
4938
  g,
4939
4939
  d.getData("BATCH_LENGTH"),
4940
4940
  0,
@@ -4948,7 +4948,7 @@ let Pl = class extends It {
4948
4948
  glbBytes: E
4949
4949
  };
4950
4950
  }
4951
- }, Gl = class extends It {
4951
+ }, Ul = class extends It {
4952
4952
  parse(e) {
4953
4953
  const t = new DataView(e), s = Ue(t);
4954
4954
  console.assert(s === "i3dm");
@@ -4967,7 +4967,7 @@ let Pl = class extends It {
4967
4967
  ), g = h + o + r, p = e.slice(
4968
4968
  g,
4969
4969
  g + l + c
4970
- ), b = new fi(
4970
+ ), b = new mi(
4971
4971
  p,
4972
4972
  u.getData("INSTANCES_LENGTH"),
4973
4973
  0,
@@ -4978,8 +4978,8 @@ let Pl = class extends It {
4978
4978
  if (A)
4979
4979
  y = C, f = Promise.resolve();
4980
4980
  else {
4981
- const w = this.resolveExternalURL(hi(C));
4982
- I = di(w), f = fetch(w, this.fetchOptions).then((B) => {
4981
+ const w = this.resolveExternalURL(di(C));
4982
+ I = ui(w), f = fetch(w, this.fetchOptions).then((B) => {
4983
4983
  if (!B.ok)
4984
4984
  throw new Error(`I3DMLoaderBase : Failed to load file "${w}" with status ${B.status} : ${B.statusText}`);
4985
4985
  return B.arrayBuffer();
@@ -4995,7 +4995,7 @@ let Pl = class extends It {
4995
4995
  gltfWorkingPath: I
4996
4996
  }));
4997
4997
  }
4998
- }, Ul = class extends It {
4998
+ }, Nl = class extends It {
4999
4999
  parse(e) {
5000
5000
  const t = new DataView(e), s = Ue(t);
5001
5001
  console.assert(s === "pnts");
@@ -5014,7 +5014,7 @@ let Pl = class extends It {
5014
5014
  ), u = A + o + r, g = e.slice(
5015
5015
  u,
5016
5016
  u + l + c
5017
- ), p = new fi(
5017
+ ), p = new mi(
5018
5018
  g,
5019
5019
  d.getData("BATCH_LENGTH") || d.getData("POINTS_LENGTH"),
5020
5020
  0,
@@ -5027,7 +5027,7 @@ let Pl = class extends It {
5027
5027
  batchTable: p
5028
5028
  });
5029
5029
  }
5030
- }, Nl = class extends It {
5030
+ }, Vl = class extends It {
5031
5031
  parse(e) {
5032
5032
  const t = new DataView(e), s = Ue(t);
5033
5033
  console.assert(s === "cmpt", 'CMPTLoader: The magic bytes equal "cmpt".');
@@ -5051,15 +5051,15 @@ let Pl = class extends It {
5051
5051
  };
5052
5052
  }
5053
5053
  };
5054
- function Vl(a) {
5054
+ function Ol(a) {
5055
5055
  const { x: e, y: t, z: s } = a;
5056
5056
  a.x = s, a.y = e, a.z = t;
5057
5057
  }
5058
- function Ol(a) {
5058
+ function Hl(a) {
5059
5059
  return -a + Math.PI / 2;
5060
5060
  }
5061
- const zi = /* @__PURE__ */ new qs(), Se = /* @__PURE__ */ new v(), W = /* @__PURE__ */ new v(), Rs = /* @__PURE__ */ new v(), se = /* @__PURE__ */ new P(), ce = /* @__PURE__ */ new P(), ji = /* @__PURE__ */ new P(), Ds = /* @__PURE__ */ new Et(), X = /* @__PURE__ */ new Kn(), Ki = /* @__PURE__ */ new v(), Yi = /* @__PURE__ */ new v(), Ji = /* @__PURE__ */ new v(), De = /* @__PURE__ */ new v(), Dt = /* @__PURE__ */ new is(), Hl = 1e-12, ql = 0.1, Lt = 0, Wi = 1, Ft = 2;
5062
- let _o = class {
5061
+ const ji = /* @__PURE__ */ new qs(), Se = /* @__PURE__ */ new v(), W = /* @__PURE__ */ new v(), Rs = /* @__PURE__ */ new v(), se = /* @__PURE__ */ new P(), ce = /* @__PURE__ */ new P(), Ki = /* @__PURE__ */ new P(), Ds = /* @__PURE__ */ new Et(), X = /* @__PURE__ */ new Yn(), Yi = /* @__PURE__ */ new v(), Ji = /* @__PURE__ */ new v(), Wi = /* @__PURE__ */ new v(), De = /* @__PURE__ */ new v(), Dt = /* @__PURE__ */ new is(), ql = 1e-12, zl = 0.1, Lt = 0, Xi = 1, Ft = 2;
5062
+ let Po = class {
5063
5063
  constructor(e = 1, t = 1, s = 1) {
5064
5064
  this.name = "", this.radius = new v(e, t, s);
5065
5065
  }
@@ -5068,7 +5068,7 @@ let _o = class {
5068
5068
  }
5069
5069
  // returns a frame with Z indicating altitude, Y pointing north, X pointing east
5070
5070
  getEastNorthUpFrame(e, t, s, i) {
5071
- return s.isMatrix4 && (i = s, s = 0, console.warn('Ellipsoid: The signature for "getEastNorthUpFrame" has changed.')), this.getEastNorthUpAxes(e, t, Ki, Yi, Ji), this.getCartographicToPosition(e, t, s, De), i.makeBasis(Ki, Yi, Ji).setPosition(De);
5071
+ return s.isMatrix4 && (i = s, s = 0, console.warn('Ellipsoid: The signature for "getEastNorthUpFrame" has changed.')), this.getEastNorthUpAxes(e, t, Yi, Ji, Wi), this.getCartographicToPosition(e, t, s, De), i.makeBasis(Yi, Ji, Wi).setPosition(De);
5072
5072
  }
5073
5073
  // returns a frame with z indicating altitude and az, el, roll rotation within that frame
5074
5074
  // - azimuth: measured off of true north, increasing towards "east" (z-axis)
@@ -5081,10 +5081,10 @@ let _o = class {
5081
5081
  // OBJECT_FRAME: oriented such that "+Y" is up and "+Z" is forward.
5082
5082
  // CAMERA_FRAME: oriented such that "+Y" is up and "-Z" is forward.
5083
5083
  getObjectFrame(e, t, s, i, n, o, r, l = Ft) {
5084
- return this.getEastNorthUpFrame(e, t, s, se), X.set(n, o, -i, "ZXY"), r.makeRotationFromEuler(X).premultiply(se), l === Wi ? (X.set(Math.PI / 2, 0, 0, "XYZ"), ce.makeRotationFromEuler(X), r.multiply(ce)) : l === Ft && (X.set(-Math.PI / 2, 0, Math.PI, "XYZ"), ce.makeRotationFromEuler(X), r.multiply(ce)), r;
5084
+ return this.getEastNorthUpFrame(e, t, s, se), X.set(n, o, -i, "ZXY"), r.makeRotationFromEuler(X).premultiply(se), l === Xi ? (X.set(Math.PI / 2, 0, 0, "XYZ"), ce.makeRotationFromEuler(X), r.multiply(ce)) : l === Ft && (X.set(-Math.PI / 2, 0, Math.PI, "XYZ"), ce.makeRotationFromEuler(X), r.multiply(ce)), r;
5085
5085
  }
5086
5086
  getCartographicFromObjectFrame(e, t, s = Ft) {
5087
- return s === Wi ? (X.set(-Math.PI / 2, 0, 0, "XYZ"), ce.makeRotationFromEuler(X).premultiply(e)) : s === Ft ? (X.set(-Math.PI / 2, 0, Math.PI, "XYZ"), ce.makeRotationFromEuler(X).premultiply(e)) : ce.copy(e), De.setFromMatrixPosition(ce), this.getPositionToCartographic(De, t), this.getEastNorthUpFrame(t.lat, t.lon, 0, se).invert(), ce.premultiply(se), X.setFromRotationMatrix(ce, "ZXY"), t.azimuth = -X.z, t.elevation = X.x, t.roll = X.y, t;
5087
+ return s === Xi ? (X.set(-Math.PI / 2, 0, 0, "XYZ"), ce.makeRotationFromEuler(X).premultiply(e)) : s === Ft ? (X.set(-Math.PI / 2, 0, Math.PI, "XYZ"), ce.makeRotationFromEuler(X).premultiply(e)) : ce.copy(e), De.setFromMatrixPosition(ce), this.getPositionToCartographic(De, t), this.getEastNorthUpFrame(t.lat, t.lon, 0, se).invert(), ce.premultiply(se), X.setFromRotationMatrix(ce, "ZXY"), t.azimuth = -X.z, t.elevation = X.x, t.roll = X.y, t;
5088
5088
  }
5089
5089
  getEastNorthUpAxes(e, t, s, i, n, o = De) {
5090
5090
  this.getCartographicToPosition(e, t, 0, o), this.getCartographicToNormal(e, t, n), s.set(-o.y, o.x, 0).normalize(), i.crossVectors(n, s).normalize();
@@ -5093,7 +5093,7 @@ let _o = class {
5093
5093
  // elevation: measured off of the horizon, increasing towards sky
5094
5094
  // roll: rotation around northern axis
5095
5095
  getAzElRollFromRotationMatrix(e, t, s, i, n = Lt) {
5096
- return console.warn('Ellipsoid: "getAzElRollFromRotationMatrix" is deprecated. Use "getCartographicFromObjectFrame", instead.'), this.getCartographicToPosition(e, t, 0, De), ji.copy(s).setPosition(De), this.getCartographicFromObjectFrame(ji, i, n), delete i.height, delete i.lat, delete i.lon, i;
5096
+ return console.warn('Ellipsoid: "getAzElRollFromRotationMatrix" is deprecated. Use "getCartographicFromObjectFrame", instead.'), this.getCartographicToPosition(e, t, 0, De), Ki.copy(s).setPosition(De), this.getCartographicFromObjectFrame(Ki, i, n), delete i.height, delete i.lat, delete i.lon, i;
5097
5097
  }
5098
5098
  getRotationMatrixFromAzElRoll(e, t, s, i, n, o, r = Lt) {
5099
5099
  return console.warn('Ellipsoid: "getRotationMatrixFromAzElRoll" function has been deprecated. Use "getObjectFrame", instead.'), this.getObjectFrame(e, t, 0, s, i, n, o, r), o.setPosition(0, 0, 0), o;
@@ -5114,7 +5114,7 @@ let _o = class {
5114
5114
  return t.lon = Math.atan2(Se.y, Se.x), t.lat = Math.asin(Se.z), t.height = Math.sign(s.dot(e)) * s.length(), t;
5115
5115
  }
5116
5116
  getCartographicToNormal(e, t, s) {
5117
- return zi.set(1, Ol(e), t), s.setFromSpherical(zi).normalize(), Vl(s), s;
5117
+ return ji.set(1, Hl(e), t), s.setFromSpherical(ji).normalize(), Ol(s), s;
5118
5118
  }
5119
5119
  getPositionToNormal(e, t) {
5120
5120
  const s = this.radius;
@@ -5122,7 +5122,7 @@ let _o = class {
5122
5122
  }
5123
5123
  getPositionToSurfacePoint(e, t) {
5124
5124
  const s = this.radius, i = 1 / s.x ** 2, n = 1 / s.y ** 2, o = 1 / s.z ** 2, r = e.x * e.x * i, l = e.y * e.y * n, c = e.z * e.z * o, A = r + l + c, h = Math.sqrt(1 / A), d = W.copy(e).multiplyScalar(h);
5125
- if (A < ql)
5125
+ if (A < zl)
5126
5126
  return isFinite(h) ? t.copy(d) : null;
5127
5127
  const u = Rs.set(
5128
5128
  d.x * i * 2,
@@ -5134,7 +5134,7 @@ let _o = class {
5134
5134
  g -= p, C = 1 / (1 + g * i), y = 1 / (1 + g * n), f = 1 / (1 + g * o), I = C * C, w = y * y, B = f * f, M = I * C, S = w * y, x = B * f, b = r * I + l * w + c * B - 1, E = r * M * i + l * S * n + c * x * o;
5135
5135
  const R = -2 * E;
5136
5136
  p = b / R;
5137
- } while (Math.abs(b) > Hl);
5137
+ } while (Math.abs(b) > ql);
5138
5138
  return t.set(
5139
5139
  e.x * C,
5140
5140
  e.y * y,
@@ -5166,12 +5166,12 @@ let _o = class {
5166
5166
  return new this.constructor().copy(this);
5167
5167
  }
5168
5168
  };
5169
- const ds = new _o(Vi, Vi, Sl);
5169
+ const ds = new Po(Oi, Oi, vl);
5170
5170
  ds.name = "WGS84 Earth";
5171
5171
  const kt = /* @__PURE__ */ new v(), _t = /* @__PURE__ */ new v(), Z = /* @__PURE__ */ new v(), Pt = /* @__PURE__ */ new is();
5172
- let Xi = class {
5172
+ let Zi = class {
5173
5173
  constructor(e = new it(), t = new P()) {
5174
- this.box = e.clone(), this.transform = t.clone(), this.inverseTransform = new P(), this.points = new Array(8).fill().map(() => new v()), this.planes = new Array(6).fill().map(() => new _n());
5174
+ this.box = e.clone(), this.transform = t.clone(), this.inverseTransform = new P(), this.points = new Array(8).fill().map(() => new v()), this.planes = new Array(6).fill().map(() => new Pn());
5175
5175
  }
5176
5176
  copy(e) {
5177
5177
  return this.box.copy(e.box), this.transform.copy(e.transform), this.update(), this;
@@ -5263,19 +5263,19 @@ let Xi = class {
5263
5263
  return !0;
5264
5264
  }
5265
5265
  };
5266
- const Ls = 1e-13, ft = Math.PI, Fs = ft / 2, lt = /* @__PURE__ */ new v(), Le = /* @__PURE__ */ new v(), oe = /* @__PURE__ */ new v(), T = /* @__PURE__ */ new v(), Y = /* @__PURE__ */ new P(), zl = /* @__PURE__ */ new it(), Zi = /* @__PURE__ */ new P();
5266
+ const Ls = 1e-13, ft = Math.PI, Fs = ft / 2, lt = /* @__PURE__ */ new v(), Le = /* @__PURE__ */ new v(), oe = /* @__PURE__ */ new v(), T = /* @__PURE__ */ new v(), Y = /* @__PURE__ */ new P(), jl = /* @__PURE__ */ new it(), $i = /* @__PURE__ */ new P();
5267
5267
  function ve(a, e) {
5268
5268
  e.radius = Math.max(e.radius, a.distanceToSquared(e.center));
5269
5269
  }
5270
- function $i(a) {
5270
+ function en(a) {
5271
5271
  return a.x !== a.y;
5272
5272
  }
5273
- let jl = class extends _o {
5273
+ let Kl = class extends Po {
5274
5274
  constructor(e = 1, t = 1, s = 1, i = -Fs, n = Fs, o = 0, r = 2 * ft, l = 0, c = 0) {
5275
5275
  super(e, t, s), this.latStart = i, this.latEnd = n, this.lonStart = o, this.lonEnd = r, this.heightStart = l, this.heightEnd = c;
5276
5276
  }
5277
5277
  getBoundingBox(e, t) {
5278
- $i(this.radius) && console.warn("EllipsoidRegion: Triaxial ellipsoids are not supported.");
5278
+ en(this.radius) && console.warn("EllipsoidRegion: Triaxial ellipsoids are not supported.");
5279
5279
  const {
5280
5280
  latStart: s,
5281
5281
  latEnd: i,
@@ -5290,7 +5290,7 @@ let jl = class extends _o {
5290
5290
  g.setScalar(1 / 0), p.setScalar(-1 / 0), o - n <= ft ? (this.getCartographicToNormal(c, A, oe), Le.set(0, 0, 1), lt.crossVectors(Le, oe).normalize(), Le.crossVectors(oe, lt).normalize(), t.makeBasis(lt, Le, oe), Y.copy(t).invert(), this.getCartographicToPosition(u, n, l, T).applyMatrix4(Y), p.x = Math.abs(T.x), g.x = -p.x, this.getCartographicToPosition(i, n, l, T).applyMatrix4(Y), p.y = T.y, this.getCartographicToPosition(i, A, l, T).applyMatrix4(Y), p.y = Math.max(T.y, p.y), this.getCartographicToPosition(s, n, l, T).applyMatrix4(Y), g.y = T.y, this.getCartographicToPosition(s, A, l, T).applyMatrix4(Y), g.y = Math.min(T.y, g.y), this.getCartographicToPosition(c, A, l, T).applyMatrix4(Y), p.z = T.z, this.getCartographicToPosition(s, n, r, T).applyMatrix4(Y), g.z = T.z, this.getCartographicToPosition(i, n, r, T).applyMatrix4(Y), g.z = Math.min(T.z, g.z)) : (this.getCartographicToPosition(u, A, l, oe), oe.z = 0, oe.length() < 1e-10 ? oe.set(1, 0, 0) : oe.normalize(), Le.set(0, 0, 1), lt.crossVectors(oe, Le).normalize(), t.makeBasis(lt, Le, oe), Y.copy(t).invert(), this.getCartographicToPosition(u, A + Fs, l, T).applyMatrix4(Y), p.x = Math.abs(T.x), g.x = -p.x, this.getCartographicToPosition(i, 0, d ? r : l, T).applyMatrix4(Y), p.y = T.y, this.getCartographicToPosition(s, 0, h ? r : l, T).applyMatrix4(Y), g.y = T.y, this.getCartographicToPosition(u, A, l, T).applyMatrix4(Y), p.z = T.z, this.getCartographicToPosition(u, o, l, T).applyMatrix4(Y), g.z = T.z), e.getCenter(T), e.min.sub(T).multiplyScalar(1 + Ls), e.max.sub(T).multiplyScalar(1 + Ls), T.applyMatrix4(t), t.setPosition(T);
5291
5291
  }
5292
5292
  getBoundingSphere(e) {
5293
- $i(this.radius) && console.warn("EllipsoidRegion: Triaxial ellipsoids are not supported."), this.getBoundingBox(zl, Zi), e.center.setFromMatrixPosition(Zi), e.radius = 0;
5293
+ en(this.radius) && console.warn("EllipsoidRegion: Triaxial ellipsoids are not supported."), this.getBoundingBox(jl, $i), e.center.setFromMatrixPosition($i), e.radius = 0;
5294
5294
  const {
5295
5295
  latStart: t,
5296
5296
  latEnd: s,
@@ -5303,27 +5303,27 @@ let jl = class extends _o {
5303
5303
  A ? d = t : h ? d = s : d = 0, this.getCartographicToPosition(d, i, r, T), ve(T, e), this.getCartographicToPosition(s, i, r, T), ve(T, e), this.getCartographicToPosition(s, c, r, T), ve(T, e), this.getCartographicToPosition(t, i, r, T), ve(T, e), this.getCartographicToPosition(t, c, r, T), ve(T, e), this.getCartographicToPosition(l, c, r, T), ve(T, e), this.getCartographicToPosition(t, i, o, T), ve(T, e), n - i > ft && (this.getCartographicToPosition(d, c + ft, r, T), ve(T, e)), e.radius = Math.sqrt(e.radius) * (1 + Ls);
5304
5304
  }
5305
5305
  };
5306
- function Kl(a) {
5306
+ function Yl(a) {
5307
5307
  if (!a)
5308
5308
  return 0;
5309
5309
  const { format: e, type: t, image: s } = a, { width: i, height: n } = s;
5310
- let o = Pr.getByteLength(i, n, e, t);
5310
+ let o = Gr.getByteLength(i, n, e, t);
5311
5311
  return o *= a.generateMipmaps ? 4 / 3 : 1, o;
5312
5312
  }
5313
- function Yl(a) {
5313
+ function Jl(a) {
5314
5314
  const e = /* @__PURE__ */ new Set();
5315
5315
  let t = 0;
5316
5316
  return a.traverse((s) => {
5317
- if (s.geometry && !e.has(s.geometry) && (t += ua(s.geometry), e.add(s.geometry)), s.material) {
5317
+ if (s.geometry && !e.has(s.geometry) && (t += ga(s.geometry), e.add(s.geometry)), s.material) {
5318
5318
  const i = s.material;
5319
5319
  for (const n in i) {
5320
5320
  const o = i[n];
5321
- o && o.isTexture && !e.has(o) && (t += Kl(o), e.add(o));
5321
+ o && o.isTexture && !e.has(o) && (t += Yl(o), e.add(o));
5322
5322
  }
5323
5323
  }
5324
5324
  }), t;
5325
5325
  }
5326
- class Po extends Pl {
5326
+ class Go extends Gl {
5327
5327
  constructor(e = ls) {
5328
5328
  super(), this.manager = e, this.adjustmentTransform = new P();
5329
5329
  }
@@ -5342,27 +5342,27 @@ class Po extends Pl {
5342
5342
  });
5343
5343
  }
5344
5344
  }
5345
- function Jl(a) {
5345
+ function Wl(a) {
5346
5346
  const e = a >> 11, t = a >> 5 & 63, s = a & 31, i = Math.round(e / 31 * 255), n = Math.round(t / 63 * 255), o = Math.round(s / 31 * 255);
5347
5347
  return [i, n, o];
5348
5348
  }
5349
5349
  const ct = /* @__PURE__ */ new k();
5350
- function Wl(a, e, t = new v()) {
5350
+ function Xl(a, e, t = new v()) {
5351
5351
  ct.set(a, e).divideScalar(256).multiplyScalar(2).subScalar(1), t.set(ct.x, ct.y, 1 - Math.abs(ct.x) - Math.abs(ct.y));
5352
5352
  const s = st.clamp(-t.z, 0, 1);
5353
5353
  return t.x >= 0 ? t.setX(t.x - s) : t.setX(t.x + s), t.y >= 0 ? t.setY(t.y - s) : t.setY(t.y + s), t.normalize(), t;
5354
5354
  }
5355
- const en = {
5355
+ const tn = {
5356
5356
  RGB: "color",
5357
5357
  POSITION: "position"
5358
5358
  };
5359
- class Go extends Ul {
5359
+ class Uo extends Nl {
5360
5360
  constructor(e = ls) {
5361
5361
  super(), this.manager = e;
5362
5362
  }
5363
5363
  parse(e) {
5364
5364
  return super.parse(e).then(async (t) => {
5365
- const { featureTable: s, batchTable: i } = t, n = new Un(), o = s.header.extensions, r = new v();
5365
+ const { featureTable: s, batchTable: i } = t, n = new Nn(), o = s.header.extensions, r = new v();
5366
5366
  let l;
5367
5367
  if (o && o["3DTILES_draco_point_compression"]) {
5368
5368
  const { byteOffset: h, byteLength: d, properties: u } = o["3DTILES_draco_point_compression"], g = this.manager.getHandler("draco.drc");
@@ -5370,8 +5370,8 @@ class Go extends Ul {
5370
5370
  throw new Error("PNTSLoader: dracoLoader not available.");
5371
5371
  const p = {};
5372
5372
  for (const C in u)
5373
- if (C in en && C in u) {
5374
- const y = en[C];
5373
+ if (C in tn && C in u) {
5374
+ const y = tn[C];
5375
5375
  p[y] = u[C];
5376
5376
  }
5377
5377
  const b = {
@@ -5400,7 +5400,7 @@ class Go extends Ul {
5400
5400
  else if (g !== null) {
5401
5401
  const w = new Float32Array(h * 3), B = new v();
5402
5402
  for (let M = 0; M < h; M++) {
5403
- const S = g[M * 2], x = g[M * 2 + 1], R = Wl(S, x, B);
5403
+ const S = g[M * 2], x = g[M * 2 + 1], R = Xl(S, x, B);
5404
5404
  w[M * 3] = R.x, w[M * 3 + 1] = R.y, w[M * 3 + 2] = R.z;
5405
5405
  }
5406
5406
  l.setAttribute("normal", new ne(w, 3, !1));
@@ -5412,7 +5412,7 @@ class Go extends Ul {
5412
5412
  else if (E !== null) {
5413
5413
  const w = new Uint8Array(h * 3);
5414
5414
  for (let B = 0; B < h; B++) {
5415
- const M = Jl(E[B]);
5415
+ const M = Wl(E[B]);
5416
5416
  for (let S = 0; S < 3; S++) {
5417
5417
  const x = 3 * B + S;
5418
5418
  w[x] = M[S];
@@ -5426,22 +5426,22 @@ class Go extends Ul {
5426
5426
  B < 1 && (n.opacity = B, n.transparent = !0, n.depthWrite = !1);
5427
5427
  }
5428
5428
  }
5429
- const c = new Nn(l, n);
5429
+ const c = new Vn(l, n);
5430
5430
  c.position.copy(r), t.scene = c, t.scene.featureTable = s, t.scene.batchTable = i;
5431
5431
  const A = s.getData("RTC_CENTER", 1, "FLOAT", "VEC3");
5432
5432
  return A && (t.scene.position.x += A[0], t.scene.position.y += A[1], t.scene.position.z += A[2]), t;
5433
5433
  });
5434
5434
  }
5435
5435
  }
5436
- const Gt = /* @__PURE__ */ new v(), qe = /* @__PURE__ */ new v(), ze = /* @__PURE__ */ new v(), ks = /* @__PURE__ */ new v(), Ut = /* @__PURE__ */ new $e(), Nt = /* @__PURE__ */ new v(), je = /* @__PURE__ */ new P(), tn = /* @__PURE__ */ new P(), sn = /* @__PURE__ */ new v(), nn = /* @__PURE__ */ new P(), _s = /* @__PURE__ */ new $e(), Ps = {};
5437
- function on(a, e, t, s) {
5436
+ const Gt = /* @__PURE__ */ new v(), qe = /* @__PURE__ */ new v(), ze = /* @__PURE__ */ new v(), ks = /* @__PURE__ */ new v(), Ut = /* @__PURE__ */ new $e(), Nt = /* @__PURE__ */ new v(), je = /* @__PURE__ */ new P(), sn = /* @__PURE__ */ new P(), nn = /* @__PURE__ */ new v(), on = /* @__PURE__ */ new P(), _s = /* @__PURE__ */ new $e(), Ps = {};
5437
+ function rn(a, e, t, s) {
5438
5438
  if (a = a / t * 2 - 1, e = e / t * 2 - 1, s.x = a, s.y = e, s.z = 1 - Math.abs(a) - Math.abs(e), s.z < 0) {
5439
5439
  const i = s.x;
5440
5440
  s.x = (1 - Math.abs(s.y)) * (i >= 0 ? 1 : -1), s.y = (1 - Math.abs(i)) * (s.y >= 0 ? 1 : -1);
5441
5441
  }
5442
5442
  return s.normalize(), s;
5443
5443
  }
5444
- class Uo extends Gl {
5444
+ class No extends Ul {
5445
5445
  constructor(e = ls) {
5446
5446
  super(), this.manager = e, this.adjustmentTransform = new P(), this.ellipsoid = ds.clone();
5447
5447
  }
@@ -5473,7 +5473,7 @@ class Uo extends Gl {
5473
5473
  u.scene.updateMatrixWorld(), u.scene.traverse((Q) => {
5474
5474
  if (Q.isMesh) {
5475
5475
  q.push(Q);
5476
- const { geometry: te, material: z } = Q, F = new ai(te, z, g);
5476
+ const { geometry: te, material: z } = Q, F = new li(te, z, g);
5477
5477
  F.position.copy(R), S && (F.position.x += S[0], F.position.y += S[1], F.position.z += S[2]), L.push(F);
5478
5478
  }
5479
5479
  });
@@ -5494,12 +5494,12 @@ class Uo extends Gl {
5494
5494
  ze,
5495
5495
  qe,
5496
5496
  Gt
5497
- ), Ut.setFromRotationMatrix(je)) : I && w && (on(
5497
+ ), Ut.setFromRotationMatrix(je)) : I && w && (rn(
5498
5498
  I[Q * 2 + 0],
5499
5499
  I[Q * 2 + 1],
5500
5500
  65535,
5501
5501
  qe
5502
- ), on(
5502
+ ), rn(
5503
5503
  w[Q * 2 + 0],
5504
5504
  w[Q * 2 + 1],
5505
5505
  65535,
@@ -5515,9 +5515,9 @@ class Uo extends Gl {
5515
5515
  ), M && Nt.multiplyScalar(M[Q]);
5516
5516
  for (let te = 0, z = L.length; te < z; te++) {
5517
5517
  const F = L[te];
5518
- _s.copy(Ut), x && (F.updateMatrixWorld(), sn.copy(ks).applyMatrix4(F.matrixWorld), this.ellipsoid.getPositionToCartographic(sn, Ps), this.ellipsoid.getEastNorthUpFrame(Ps.lat, Ps.lon, nn), _s.setFromRotationMatrix(nn)), je.compose(ks, _s, Nt).multiply(d);
5518
+ _s.copy(Ut), x && (F.updateMatrixWorld(), nn.copy(ks).applyMatrix4(F.matrixWorld), this.ellipsoid.getPositionToCartographic(nn, Ps), this.ellipsoid.getEastNorthUpFrame(Ps.lat, Ps.lon, on), _s.setFromRotationMatrix(on)), je.compose(ks, _s, Nt).multiply(d);
5519
5519
  const j = q[te];
5520
- tn.multiplyMatrices(je, j.matrixWorld), F.setMatrixAt(Q, tn);
5520
+ sn.multiplyMatrices(je, j.matrixWorld), F.setMatrixAt(Q, sn);
5521
5521
  }
5522
5522
  }
5523
5523
  u.scene.clear(), u.scene.add(...L), u.batchTable = i, u.featureTable = s, u.scene.batchTable = i, u.scene.featureTable = s, o(u);
@@ -5526,7 +5526,7 @@ class Uo extends Gl {
5526
5526
  });
5527
5527
  }
5528
5528
  }
5529
- class Xl extends Nl {
5529
+ class Zl extends Vl {
5530
5530
  constructor(e = ls) {
5531
5531
  super(), this.manager = e, this.adjustmentTransform = new P(), this.ellipsoid = ds.clone();
5532
5532
  }
@@ -5536,21 +5536,21 @@ class Xl extends Nl {
5536
5536
  const { type: l, buffer: c } = t.tiles[r];
5537
5537
  switch (l) {
5538
5538
  case "b3dm": {
5539
- const A = c.slice(), h = new Po(s);
5539
+ const A = c.slice(), h = new Go(s);
5540
5540
  h.workingPath = this.workingPath, h.fetchOptions = this.fetchOptions, h.adjustmentTransform.copy(n);
5541
5541
  const d = h.parse(A.buffer);
5542
5542
  o.push(d);
5543
5543
  break;
5544
5544
  }
5545
5545
  case "pnts": {
5546
- const A = c.slice(), h = new Go(s);
5546
+ const A = c.slice(), h = new Uo(s);
5547
5547
  h.workingPath = this.workingPath, h.fetchOptions = this.fetchOptions;
5548
5548
  const d = h.parse(A.buffer);
5549
5549
  o.push(d);
5550
5550
  break;
5551
5551
  }
5552
5552
  case "i3dm": {
5553
- const A = c.slice(), h = new Uo(s);
5553
+ const A = c.slice(), h = new No(s);
5554
5554
  h.workingPath = this.workingPath, h.fetchOptions = this.fetchOptions, h.ellipsoid.copy(i), h.adjustmentTransform.copy(n);
5555
5555
  const d = h.parse(A.buffer);
5556
5556
  o.push(d);
@@ -5570,7 +5570,7 @@ class Xl extends Nl {
5570
5570
  }
5571
5571
  }
5572
5572
  const At = /* @__PURE__ */ new P();
5573
- class Zl extends Xe {
5573
+ class $l extends Xe {
5574
5574
  constructor(e) {
5575
5575
  super(), this.isTilesGroup = !0, this.name = "TilesRenderer.TilesGroup", this.tilesRenderer = e, this.matrixWorldInverse = new P();
5576
5576
  }
@@ -5601,44 +5601,44 @@ class Zl extends Xe {
5601
5601
  this.parent && e && this.parent.updateWorldMatrix(e, !1), this.updateMatrixWorld(!0);
5602
5602
  }
5603
5603
  }
5604
- const No = /* @__PURE__ */ new is(), Gs = /* @__PURE__ */ new v(), Vt = [];
5605
- function Vo(a, e) {
5604
+ const Vo = /* @__PURE__ */ new is(), Gs = /* @__PURE__ */ new v(), Vt = [];
5605
+ function Oo(a, e) {
5606
5606
  return a.distance - e.distance;
5607
5607
  }
5608
- function Oo(a, e, t, s) {
5608
+ function Ho(a, e, t, s) {
5609
5609
  const { scene: i } = a.engineData;
5610
5610
  t.invokeOnePlugin((n) => n.raycastTile && n.raycastTile(a, i, e, s)) || e.intersectObject(i, !0, s);
5611
5611
  }
5612
- function $l(a, e, t) {
5613
- Oo(a, e, t, Vt), Vt.sort(Vo);
5612
+ function ec(a, e, t) {
5613
+ Ho(a, e, t, Vt), Vt.sort(Oo);
5614
5614
  const s = Vt[0] || null;
5615
5615
  return Vt.length = 0, s;
5616
5616
  }
5617
- function Ho(a) {
5617
+ function qo(a) {
5618
5618
  return "traversal" in a;
5619
5619
  }
5620
- function qo(a, e, t, s = null) {
5620
+ function zo(a, e, t, s = null) {
5621
5621
  const { group: i, activeTiles: n } = a;
5622
- s === null && (s = No, s.copy(t.ray).applyMatrix4(i.matrixWorldInverse));
5622
+ s === null && (s = Vo, s.copy(t.ray).applyMatrix4(i.matrixWorldInverse));
5623
5623
  const o = [], r = e.children;
5624
5624
  for (let A = 0, h = r.length; A < h; A++) {
5625
5625
  const d = r[A];
5626
- !Ho(d) || !d.traversal.used || d.engineData.boundingVolume.intersectRay(s, Gs) !== null && (Gs.applyMatrix4(i.matrixWorld), o.push({
5626
+ !qo(d) || !d.traversal.used || d.engineData.boundingVolume.intersectRay(s, Gs) !== null && (Gs.applyMatrix4(i.matrixWorld), o.push({
5627
5627
  distance: Gs.distanceToSquared(t.ray.origin),
5628
5628
  tile: d
5629
5629
  }));
5630
5630
  }
5631
- o.sort(Vo);
5631
+ o.sort(Oo);
5632
5632
  let l = null, c = 1 / 0;
5633
5633
  if (n.has(e)) {
5634
- const A = $l(e, t, a);
5634
+ const A = ec(e, t, a);
5635
5635
  A && (l = A, c = A.distance * A.distance);
5636
5636
  }
5637
5637
  for (let A = 0, h = o.length; A < h; A++) {
5638
5638
  const d = o[A], u = d.distance, g = d.tile;
5639
5639
  if (u > c)
5640
5640
  break;
5641
- const p = qo(a, g, t, s);
5641
+ const p = zo(a, g, t, s);
5642
5642
  if (p) {
5643
5643
  const b = p.distance * p.distance;
5644
5644
  b < c && (l = p, c = b);
@@ -5646,19 +5646,19 @@ function qo(a, e, t, s = null) {
5646
5646
  }
5647
5647
  return l;
5648
5648
  }
5649
- function zo(a, e, t, s, i = null) {
5650
- if (!Ho(e))
5649
+ function jo(a, e, t, s, i = null) {
5650
+ if (!qo(e))
5651
5651
  return;
5652
5652
  const { group: n, activeTiles: o } = a, { boundingVolume: r } = e.engineData;
5653
- if (i === null && (i = No, i.copy(t.ray).applyMatrix4(n.matrixWorldInverse)), !e.traversal.used || !r.intersectsRay(i))
5653
+ if (i === null && (i = Vo, i.copy(t.ray).applyMatrix4(n.matrixWorldInverse)), !e.traversal.used || !r.intersectsRay(i))
5654
5654
  return;
5655
- o.has(e) && Oo(e, t, a, s);
5655
+ o.has(e) && Ho(e, t, a, s);
5656
5656
  const l = e.children;
5657
5657
  for (let c = 0, A = l.length; c < A; c++)
5658
- zo(a, l[c], t, s, i);
5658
+ jo(a, l[c], t, s, i);
5659
5659
  }
5660
- const ge = /* @__PURE__ */ new v(), pe = /* @__PURE__ */ new v(), fe = /* @__PURE__ */ new v(), rn = /* @__PURE__ */ new v(), an = /* @__PURE__ */ new v();
5661
- class ec {
5660
+ const ge = /* @__PURE__ */ new v(), pe = /* @__PURE__ */ new v(), fe = /* @__PURE__ */ new v(), an = /* @__PURE__ */ new v(), ln = /* @__PURE__ */ new v();
5661
+ class tc {
5662
5662
  constructor() {
5663
5663
  this.sphere = null, this.obb = null, this.region = null, this.regionObb = null;
5664
5664
  }
@@ -5669,7 +5669,7 @@ class ec {
5669
5669
  intersectRay(e, t = null) {
5670
5670
  const s = this.sphere, i = this.obb || this.regionObb;
5671
5671
  let n = -1 / 0, o = -1 / 0;
5672
- s && e.intersectSphere(s, rn) && (n = s.containsPoint(e.origin) ? 0 : e.origin.distanceToSquared(rn)), i && i.intersectRay(e, an) && (o = i.containsPoint(e.origin) ? 0 : e.origin.distanceToSquared(an));
5672
+ s && e.intersectSphere(s, an) && (n = s.containsPoint(e.origin) ? 0 : e.origin.distanceToSquared(an)), i && i.intersectRay(e, ln) && (o = i.containsPoint(e.origin) ? 0 : e.origin.distanceToSquared(ln));
5673
5673
  const r = Math.max(n, o);
5674
5674
  return r === -1 / 0 ? null : (e.at(Math.sqrt(r), t), t);
5675
5675
  }
@@ -5713,7 +5713,7 @@ class ec {
5713
5713
  }
5714
5714
  }
5715
5715
  setObbData(e, t) {
5716
- const s = new Xi();
5716
+ const s = new Zi();
5717
5717
  ge.set(e[3], e[4], e[5]), pe.set(e[6], e[7], e[8]), fe.set(e[9], e[10], e[11]);
5718
5718
  const i = ge.length(), n = pe.length(), o = fe.length();
5719
5719
  ge.normalize(), pe.normalize(), fe.normalize(), i === 0 && ge.crossVectors(pe, fe), n === 0 && pe.crossVectors(ge, fe), o === 0 && fe.crossVectors(ge, pe), s.transform.set(
@@ -5740,7 +5740,7 @@ class ec {
5740
5740
  o.center.set(e, t, s), o.radius = i, o.applyMatrix4(n), this.sphere = o;
5741
5741
  }
5742
5742
  setRegionData(e, t, s, i, n, o, r) {
5743
- const l = new jl(
5743
+ const l = new Kl(
5744
5744
  ...e.radius,
5745
5745
  s,
5746
5746
  n,
@@ -5748,13 +5748,13 @@ class ec {
5748
5748
  i,
5749
5749
  o,
5750
5750
  r
5751
- ), c = new Xi();
5751
+ ), c = new Zi();
5752
5752
  l.getBoundingBox(c.box, c.transform), c.update(), this.region = l, this.regionObb = c;
5753
5753
  }
5754
5754
  }
5755
- const tc = /* @__PURE__ */ new Yn();
5756
- function sc(a, e, t, s) {
5757
- const i = tc.set(
5755
+ const sc = /* @__PURE__ */ new Jn();
5756
+ function ic(a, e, t, s) {
5757
+ const i = sc.set(
5758
5758
  a.normal.x,
5759
5759
  a.normal.y,
5760
5760
  a.normal.z,
@@ -5767,7 +5767,7 @@ function sc(a, e, t, s) {
5767
5767
  );
5768
5768
  return s.set(-a.constant, -e.constant, -t.constant), s.applyMatrix3(i.invert()), s;
5769
5769
  }
5770
- class ic extends Ur {
5770
+ class nc extends Nr {
5771
5771
  constructor() {
5772
5772
  super(), this.points = Array(8).fill().map(() => new v());
5773
5773
  }
@@ -5794,23 +5794,23 @@ class ic extends Ur {
5794
5794
  [e[1], e[2], e[5]]
5795
5795
  // Far bottom right
5796
5796
  ].forEach((s, i) => {
5797
- sc(s[0], s[1], s[2], t[i]);
5797
+ ic(s[0], s[1], s[2], t[i]);
5798
5798
  });
5799
5799
  }
5800
5800
  }
5801
- const ln = /* @__PURE__ */ new P(), cn = /* @__PURE__ */ new Kn(), jo = Symbol("INITIAL_FRUSTUM_CULLED"), Ot = /* @__PURE__ */ new P(), ht = /* @__PURE__ */ new v(), Us = /* @__PURE__ */ new k(), nc = /* @__PURE__ */ new v(1, 0, 0), oc = /* @__PURE__ */ new v(0, 1, 0);
5802
- function An(a, e) {
5801
+ const cn = /* @__PURE__ */ new P(), An = /* @__PURE__ */ new Yn(), Ko = Symbol("INITIAL_FRUSTUM_CULLED"), Ot = /* @__PURE__ */ new P(), ht = /* @__PURE__ */ new v(), Us = /* @__PURE__ */ new k(), oc = /* @__PURE__ */ new v(1, 0, 0), rc = /* @__PURE__ */ new v(0, 1, 0);
5802
+ function hn(a, e) {
5803
5803
  a.traverse((t) => {
5804
- t.frustumCulled = t[jo] && e;
5804
+ t.frustumCulled = t[Ko] && e;
5805
5805
  });
5806
5806
  }
5807
- let rc = class extends kl {
5807
+ let ac = class extends _l {
5808
5808
  get autoDisableRendererCulling() {
5809
5809
  return this._autoDisableRendererCulling;
5810
5810
  }
5811
5811
  set autoDisableRendererCulling(e) {
5812
5812
  this._autoDisableRendererCulling !== e && (super._autoDisableRendererCulling = e, this.forEachLoadedModel((t) => {
5813
- An(t, !e);
5813
+ hn(t, !e);
5814
5814
  }));
5815
5815
  }
5816
5816
  get optimizeRaycast() {
@@ -5820,7 +5820,7 @@ let rc = class extends kl {
5820
5820
  console.warn('TilesRenderer: The "optimizeRaycast" option has been deprecated.'), this._optimizeRaycast = e;
5821
5821
  }
5822
5822
  constructor(...e) {
5823
- super(...e), this.group = new Zl(this), this.ellipsoid = ds.clone(), this.cameras = [], this.cameraMap = /* @__PURE__ */ new Map(), this.cameraInfo = [], this._optimizeRaycast = !0, this._upRotationMatrix = new P(), this._bytesUsed = /* @__PURE__ */ new WeakMap(), this._autoDisableRendererCulling = !0, this.manager = new Gr(), this._listeners = {};
5823
+ super(...e), this.group = new $l(this), this.ellipsoid = ds.clone(), this.cameras = [], this.cameraMap = /* @__PURE__ */ new Map(), this.cameraInfo = [], this._optimizeRaycast = !0, this._upRotationMatrix = new P(), this._bytesUsed = /* @__PURE__ */ new WeakMap(), this._autoDisableRendererCulling = !0, this.manager = new Ur(), this._listeners = {};
5824
5824
  }
5825
5825
  addEventListener(e, t) {
5826
5826
  e === "load-tile-set" && (console.warn('TilesRenderer: "load-tile-set" event has been deprecated. Use "load-tileset" instead.'), e = "load-tileset"), vt.prototype.addEventListener.call(this, e, t);
@@ -5868,10 +5868,10 @@ let rc = class extends kl {
5868
5868
  raycast(e, t) {
5869
5869
  if (this.root)
5870
5870
  if (e.firstHitOnly) {
5871
- const s = qo(this, this.root, e);
5871
+ const s = zo(this, this.root, e);
5872
5872
  s && t.push(s);
5873
5873
  } else
5874
- zo(this, this.root, e, t);
5874
+ jo(this, this.root, e, t);
5875
5875
  }
5876
5876
  hasCamera(e) {
5877
5877
  return this.cameraMap.has(e);
@@ -5904,10 +5904,10 @@ let rc = class extends kl {
5904
5904
  const { asset: s, extensions: i = {} } = t;
5905
5905
  switch ((s && s.gltfUpAxis || "y").toLowerCase()) {
5906
5906
  case "x":
5907
- this._upRotationMatrix.makeRotationAxis(oc, -Math.PI / 2);
5907
+ this._upRotationMatrix.makeRotationAxis(rc, -Math.PI / 2);
5908
5908
  break;
5909
5909
  case "y":
5910
- this._upRotationMatrix.makeRotationAxis(nc, Math.PI / 2);
5910
+ this._upRotationMatrix.makeRotationAxis(oc, Math.PI / 2);
5911
5911
  break;
5912
5912
  }
5913
5913
  if ("3DTILES_ellipsoid" in i) {
@@ -5923,7 +5923,7 @@ let rc = class extends kl {
5923
5923
  i.pop();
5924
5924
  for (; i.length < t.length; )
5925
5925
  i.push({
5926
- frustum: new ic(),
5926
+ frustum: new nc(),
5927
5927
  isOrthographic: !1,
5928
5928
  sseDenominator: -1,
5929
5929
  // used if isOrthographic:false
@@ -5960,31 +5960,31 @@ let rc = class extends kl {
5960
5960
  i.elements[l] = r[l];
5961
5961
  }
5962
5962
  s && i.premultiply(s.engineData.transform);
5963
- const n = new P().copy(i).invert(), o = new ec();
5963
+ const n = new P().copy(i).invert(), o = new tc();
5964
5964
  "sphere" in e.boundingVolume && o.setSphereData(...e.boundingVolume.sphere, i), "box" in e.boundingVolume && o.setObbData(e.boundingVolume.box, i), "region" in e.boundingVolume && o.setRegionData(this.ellipsoid, ...e.boundingVolume.region), e.engineData.transform = i, e.engineData.transformInverse = n, e.engineData.boundingVolume = o, e.engineData.geometry = null, e.engineData.materials = null, e.engineData.textures = null;
5965
5965
  }
5966
5966
  async parseTile(e, t, s, i, n) {
5967
- const o = t.engineData, r = di(i), l = this.fetchOptions, c = this.manager;
5967
+ const o = t.engineData, r = ui(i), l = this.fetchOptions, c = this.manager;
5968
5968
  let A = null;
5969
5969
  const h = o.transform, d = this._upRotationMatrix, u = (Ue(e) || s).toLowerCase();
5970
5970
  switch (u) {
5971
5971
  case "b3dm": {
5972
- const f = new Po(c);
5972
+ const f = new Go(c);
5973
5973
  f.workingPath = r, f.fetchOptions = l, f.adjustmentTransform.copy(d), A = f.parse(e);
5974
5974
  break;
5975
5975
  }
5976
5976
  case "pnts": {
5977
- const f = new Go(c);
5977
+ const f = new Uo(c);
5978
5978
  f.workingPath = r, f.fetchOptions = l, A = f.parse(e);
5979
5979
  break;
5980
5980
  }
5981
5981
  case "i3dm": {
5982
- const f = new Uo(c);
5982
+ const f = new No(c);
5983
5983
  f.workingPath = r, f.fetchOptions = l, f.adjustmentTransform.copy(d), f.ellipsoid.copy(this.ellipsoid), A = f.parse(e);
5984
5984
  break;
5985
5985
  }
5986
5986
  case "cmpt": {
5987
- const f = new Xl(c);
5987
+ const f = new Zl(c);
5988
5988
  f.workingPath = r, f.fetchOptions = l, f.adjustmentTransform.copy(d), f.ellipsoid.copy(this.ellipsoid), A = f.parse(e).then((I) => I.scene);
5989
5989
  break;
5990
5990
  }
@@ -6011,8 +6011,8 @@ let rc = class extends kl {
6011
6011
  throw new Error(`TilesRenderer: Content type "${u}" not supported.`);
6012
6012
  let p, b;
6013
6013
  g.isObject3D ? (p = g, b = null) : (p = g.scene, b = g), p.updateMatrix(), p.matrix.premultiply(h), p.matrix.decompose(p.position, p.quaternion, p.scale), await this.invokeAllPlugins((f) => f.processTileModel && f.processTileModel(p, t)), p.traverse((f) => {
6014
- f[jo] = f.frustumCulled;
6015
- }), An(p, !this.autoDisableRendererCulling);
6014
+ f[Ko] = f.frustumCulled;
6015
+ }), hn(p, !this.autoDisableRendererCulling);
6016
6016
  const E = [], C = [], y = [];
6017
6017
  if (p.traverse((f) => {
6018
6018
  if (f.geometry && C.push(f.geometry), f.material) {
@@ -6057,7 +6057,7 @@ let rc = class extends kl {
6057
6057
  }
6058
6058
  calculateBytesUsed(e, t) {
6059
6059
  const s = this._bytesUsed;
6060
- return !s.has(e) && t && s.set(e, Yl(t)), s.get(e) ?? null;
6060
+ return !s.has(e) && t && s.set(e, Jl(t)), s.get(e) ?? null;
6061
6061
  }
6062
6062
  calculateTileViewError(e, t) {
6063
6063
  const s = e.engineData, i = this.cameras, n = this.cameraInfo, o = s.boundingVolume;
@@ -6081,7 +6081,7 @@ let rc = class extends kl {
6081
6081
  setLatLonToYUp(e, t) {
6082
6082
  console.warn("TilesRenderer: setLatLonToYUp is deprecated. Use the ReorientationPlugin, instead.");
6083
6083
  const { ellipsoid: s, group: i } = this;
6084
- cn.set(Math.PI / 2, Math.PI / 2, 0), ln.makeRotationFromEuler(cn), s.getEastNorthUpFrame(e, t, 0, i.matrix).multiply(ln).invert().decompose(
6084
+ An.set(Math.PI / 2, Math.PI / 2, 0), cn.makeRotationFromEuler(An), s.getEastNorthUpFrame(e, t, 0, i.matrix).multiply(cn).invert().decompose(
6085
6085
  i.position,
6086
6086
  i.quaternion,
6087
6087
  i.scale
@@ -6097,16 +6097,16 @@ function Zt(a) {
6097
6097
  function Ns(a) {
6098
6098
  return Zt(a) ? 8 : 4;
6099
6099
  }
6100
- function ac(a, e) {
6100
+ function lc(a, e) {
6101
6101
  if (!a)
6102
6102
  return [0, 0, 0];
6103
6103
  const t = a.implicitTilingData.x, s = a.implicitTilingData.y, i = a.implicitTilingData.z, n = 2 * t + e % 2, o = 2 * s + Math.floor(e / 2) % 2, r = Zt(a) ? 2 * i + Math.floor(e / 4) % 2 : 0;
6104
6104
  return [n, o, r];
6105
6105
  }
6106
- class hn {
6106
+ class dn {
6107
6107
  constructor(e, t) {
6108
6108
  this.parent = e, this.children = [], this.geometricError = 0, this.boundingVolume = null;
6109
- const [s, i, n] = ac(e, t);
6109
+ const [s, i, n] = lc(e, t);
6110
6110
  this.implicitTilingData = {
6111
6111
  level: e.implicitTilingData.level + 1,
6112
6112
  root: e.implicitTilingData.root,
@@ -6128,7 +6128,7 @@ class hn {
6128
6128
  };
6129
6129
  }
6130
6130
  }
6131
- class lc extends It {
6131
+ class cc extends It {
6132
6132
  constructor(e) {
6133
6133
  super(), this.tile = e, this.rootTile = e.implicitTilingData.root, this.workingPath = null;
6134
6134
  }
@@ -6157,7 +6157,7 @@ class lc extends It {
6157
6157
  s += 8;
6158
6158
  const r = t.getUint32(s, !0);
6159
6159
  s += 8;
6160
- const l = JSON.parse(hi(new Uint8Array(e, s, o)));
6160
+ const l = JSON.parse(di(new Uint8Array(e, s, o)));
6161
6161
  s += o;
6162
6162
  const c = e.slice(s, s + r);
6163
6163
  return {
@@ -6390,7 +6390,7 @@ class lc extends It {
6390
6390
  * @private
6391
6391
  */
6392
6392
  expandSubtree(e, t) {
6393
- const s = hn.clone(e);
6393
+ const s = dn.clone(e);
6394
6394
  for (let o = 0; t && o < t._contentAvailabilityBitstreams.length; o++)
6395
6395
  if (t && this.getBit(t._contentAvailabilityBitstreams[o], 0)) {
6396
6396
  s.content = { uri: this.parseImplicitURI(e, this.rootTile.content.uri) };
@@ -6458,7 +6458,7 @@ class lc extends It {
6458
6458
  * @private
6459
6459
  */
6460
6460
  deriveChildTile(e, t, s, i) {
6461
- const n = new hn(t, i);
6461
+ const n = new dn(t, i);
6462
6462
  n.boundingVolume = this.getTileBoundingVolume(n), n.geometricError = this.getGeometricError(n);
6463
6463
  for (let o = 0; e && o < e._contentAvailabilityBitstreams.length; o++)
6464
6464
  if (e && this.getBit(e._contentAvailabilityBitstreams[o], s)) {
@@ -6583,7 +6583,7 @@ class lc extends It {
6583
6583
  return n.pathname = n.pathname.substring(0, n.pathname.lastIndexOf("/")), new URL(n.pathname + "/" + s, this.workingPath + "/").toString();
6584
6584
  }
6585
6585
  }
6586
- class cc {
6586
+ class Ac {
6587
6587
  constructor() {
6588
6588
  this.name = "IMPLICIT_TILING_PLUGIN";
6589
6589
  }
@@ -6606,7 +6606,7 @@ class cc {
6606
6606
  }
6607
6607
  parseTile(e, t, s) {
6608
6608
  if (/^subtree$/i.test(s)) {
6609
- const i = new lc(t);
6609
+ const i = new cc(t);
6610
6610
  return i.workingPath = t.internal.basePath, i.fetchOptions = this.tiles.fetchOptions, i.parse(e);
6611
6611
  }
6612
6612
  }
@@ -6624,21 +6624,21 @@ class cc {
6624
6624
  }), e.children.length = 0);
6625
6625
  }
6626
6626
  }
6627
- const Ac = new Vn(-1, 1, 1, -1, 0, 1);
6628
- class hc extends rs {
6627
+ const hc = new On(-1, 1, 1, -1, 0, 1);
6628
+ class dc extends rs {
6629
6629
  constructor() {
6630
6630
  super(), this.setAttribute("position", new Jt([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new Jt([0, 2, 0, 0, 2, 0], 2));
6631
6631
  }
6632
6632
  }
6633
- const dc = new hc();
6634
- class Ko {
6633
+ const uc = new dc();
6634
+ class Yo {
6635
6635
  /**
6636
6636
  * Constructs a new full screen quad.
6637
6637
  *
6638
6638
  * @param {?Material} material - The material to render te full screen quad with.
6639
6639
  */
6640
6640
  constructor(e) {
6641
- this._mesh = new as(dc, e);
6641
+ this._mesh = new as(uc, e);
6642
6642
  }
6643
6643
  /**
6644
6644
  * Frees the GPU-related resources allocated by this instance. Call this
@@ -6653,7 +6653,7 @@ class Ko {
6653
6653
  * @param {WebGLRenderer} renderer - The renderer.
6654
6654
  */
6655
6655
  render(e) {
6656
- e.render(this._mesh, Ac);
6656
+ e.render(this._mesh, hc);
6657
6657
  }
6658
6658
  /**
6659
6659
  * The quad's material.
@@ -6670,10 +6670,10 @@ class Ko {
6670
6670
  function N(a, e, t) {
6671
6671
  return a && e in a ? a[e] : t;
6672
6672
  }
6673
- function Yo(a) {
6673
+ function Jo(a) {
6674
6674
  return a !== "BOOLEAN" && a !== "STRING" && a !== "ENUM";
6675
6675
  }
6676
- function uc(a) {
6676
+ function gc(a) {
6677
6677
  return /^FLOAT/.test(a);
6678
6678
  }
6679
6679
  function wt(a) {
@@ -6682,7 +6682,7 @@ function wt(a) {
6682
6682
  function St(a) {
6683
6683
  return /^MAT/.test(a);
6684
6684
  }
6685
- function Jo(a, e, t, s = null) {
6685
+ function Wo(a, e, t, s = null) {
6686
6686
  return St(t) || wt(t) ? s.fromArray(a, e) : a[e];
6687
6687
  }
6688
6688
  function ni(a) {
@@ -6697,9 +6697,9 @@ function ni(a) {
6697
6697
  case "VEC4":
6698
6698
  return new nt();
6699
6699
  case "MAT2":
6700
- return new zr();
6700
+ return new jr();
6701
6701
  case "MAT3":
6702
- return new Yn();
6702
+ return new Jn();
6703
6703
  case "MAT4":
6704
6704
  return new P();
6705
6705
  case "BOOLEAN":
@@ -6712,7 +6712,7 @@ function ni(a) {
6712
6712
  return 0;
6713
6713
  }
6714
6714
  }
6715
- function dn(a, e) {
6715
+ function un(a, e) {
6716
6716
  if (e == null)
6717
6717
  return !1;
6718
6718
  switch (a) {
@@ -6770,7 +6770,7 @@ function Ct(a, e = null) {
6770
6770
  }
6771
6771
  throw new Error("ClassProperty: invalid type.");
6772
6772
  }
6773
- function gc(a, e = null) {
6773
+ function pc(a, e = null) {
6774
6774
  if (a.array) {
6775
6775
  e = e && Array.isArray(e) ? e : [], e.length = a.count;
6776
6776
  for (let t = 0, s = e.length; t < s; t++)
@@ -6812,7 +6812,7 @@ function $t(a, e = null) {
6812
6812
  else
6813
6813
  return t;
6814
6814
  }
6815
- function pc(a, e) {
6815
+ function fc(a, e) {
6816
6816
  if (a.noData === null)
6817
6817
  return e;
6818
6818
  const t = a.noData, s = a.type;
@@ -6841,7 +6841,7 @@ function pc(a, e) {
6841
6841
  return t === o;
6842
6842
  }
6843
6843
  }
6844
- function fc(a, e) {
6844
+ function mc(a, e) {
6845
6845
  switch (a) {
6846
6846
  case "INT8":
6847
6847
  return Math.max(e / 127, -1);
@@ -6862,7 +6862,7 @@ function fc(a, e) {
6862
6862
  return Number(e) / 18446744073709552e3;
6863
6863
  }
6864
6864
  }
6865
- function mc(a, e) {
6865
+ function bc(a, e) {
6866
6866
  const {
6867
6867
  type: t,
6868
6868
  componentType: s,
@@ -6889,16 +6889,16 @@ function mc(a, e) {
6889
6889
  return h;
6890
6890
  }
6891
6891
  function A(h) {
6892
- return o && (h = fc(s, h)), (o || uc(s)) && (h = h * i + n), h;
6892
+ return o && (h = mc(s, h)), (o || gc(s)) && (h = h * i + n), h;
6893
6893
  }
6894
6894
  }
6895
- function mi(a, e, t = null) {
6895
+ function bi(a, e, t = null) {
6896
6896
  if (a.array) {
6897
6897
  Array.isArray(e) || (e = new Array(a.count || 0)), e.length = t !== null ? t : a.count;
6898
6898
  for (let s = 0, i = e.length; s < i; s++)
6899
- dn(a.type, e[s]) || (e[s] = ni(a));
6899
+ un(a.type, e[s]) || (e[s] = ni(a));
6900
6900
  } else
6901
- dn(a.type, e) || (e = ni(a));
6901
+ un(a.type, e) || (e = ni(a));
6902
6902
  return e;
6903
6903
  }
6904
6904
  function es(a, e) {
@@ -6906,10 +6906,10 @@ function es(a, e) {
6906
6906
  t in a || delete e[t];
6907
6907
  for (const t in a) {
6908
6908
  const s = a[t];
6909
- e[t] = mi(s, e[t]);
6909
+ e[t] = bi(s, e[t]);
6910
6910
  }
6911
6911
  }
6912
- function bc(a) {
6912
+ function Cc(a) {
6913
6913
  switch (a) {
6914
6914
  case "ENUM":
6915
6915
  return 1;
@@ -6943,7 +6943,7 @@ class us {
6943
6943
  // shape the given target to match the data type of the property
6944
6944
  // enums are set to their integer value
6945
6945
  shapeToProperty(e, t = null) {
6946
- return mi(this, e, t);
6946
+ return bi(this, e, t);
6947
6947
  }
6948
6948
  // resolve the given object to the default value for the property for a single element
6949
6949
  // enums are set to a default string
@@ -6953,11 +6953,11 @@ class us {
6953
6953
  // resolve the target to the default value for the property for every element if it's an array
6954
6954
  // enums are set to a default string
6955
6955
  resolveDefault(e) {
6956
- return gc(this, e);
6956
+ return pc(this, e);
6957
6957
  }
6958
6958
  // converts any instances of no data to the default value
6959
6959
  resolveNoData(e) {
6960
- return pc(this, e);
6960
+ return fc(this, e);
6961
6961
  }
6962
6962
  // converts enums integers in the given target to strings
6963
6963
  resolveEnumsToStrings(e) {
@@ -6976,10 +6976,10 @@ class us {
6976
6976
  }
6977
6977
  // apply scales
6978
6978
  adjustValueScaleOffset(e) {
6979
- return Yo(this.type) ? mc(this, e) : e;
6979
+ return Jo(this.type) ? bc(this, e) : e;
6980
6980
  }
6981
6981
  }
6982
- class bi {
6982
+ class Ci {
6983
6983
  constructor(e, t = {}, s = {}, i = null) {
6984
6984
  this.definition = e, this.class = t[e.class], this.className = e.class, this.enums = s, this.data = i, this.name = "name" in e ? e.name : null, this.properties = null;
6985
6985
  }
@@ -6998,14 +6998,14 @@ class bi {
6998
6998
  this.properties = t;
6999
6999
  }
7000
7000
  }
7001
- class Cc extends us {
7001
+ class Ec extends us {
7002
7002
  constructor(e, t, s = null) {
7003
7003
  super(e, t, s), this.attribute = s?.attribute ?? null;
7004
7004
  }
7005
7005
  }
7006
- class Ec extends bi {
7006
+ class yc extends Ci {
7007
7007
  constructor(...e) {
7008
- super(...e), this.isPropertyAttributeAccessor = !0, this._initProperties(Cc);
7008
+ super(...e), this.isPropertyAttributeAccessor = !0, this._initProperties(Ec);
7009
7009
  }
7010
7010
  getData(e, t, s = {}) {
7011
7011
  const i = this.properties;
@@ -7037,9 +7037,9 @@ class Ec extends bi {
7037
7037
  return i = n.adjustValueScaleOffset(i), i = n.resolveEnumsToStrings(i), i = n.resolveNoData(i), i;
7038
7038
  }
7039
7039
  }
7040
- class yc extends us {
7040
+ class Ic extends us {
7041
7041
  constructor(e, t, s = null) {
7042
- super(e, t, s), this.values = s?.values ?? null, this.valueLength = bc(this.type), this.arrayOffsets = N(s, "arrayOffsets", null), this.stringOffsets = N(s, "stringOffsets", null), this.arrayOffsetType = N(s, "arrayOffsetType", "UINT32"), this.stringOffsetType = N(s, "stringOffsetType", "UINT32");
7042
+ super(e, t, s), this.values = s?.values ?? null, this.valueLength = Cc(this.type), this.arrayOffsets = N(s, "arrayOffsets", null), this.stringOffsets = N(s, "stringOffsets", null), this.arrayOffsetType = N(s, "arrayOffsetType", "UINT32"), this.stringOffsetType = N(s, "stringOffsetType", "UINT32");
7043
7043
  }
7044
7044
  // returns the necessary array length based on the array offsets if present
7045
7045
  getArrayLengthFromId(e, t) {
@@ -7061,9 +7061,9 @@ class yc extends us {
7061
7061
  return s;
7062
7062
  }
7063
7063
  }
7064
- class Ic extends bi {
7064
+ class Bc extends Ci {
7065
7065
  constructor(...e) {
7066
- super(...e), this.isPropertyTableAccessor = !0, this.count = this.definition.count, this._initProperties(yc);
7066
+ super(...e), this.isPropertyTableAccessor = !0, this.count = this.definition.count, this._initProperties(Ic);
7067
7067
  }
7068
7068
  getData(e, t = {}) {
7069
7069
  const s = this.properties;
@@ -7075,8 +7075,8 @@ class Ic extends bi {
7075
7075
  // reads an individual element
7076
7076
  _readValueAtIndex(e, t, s, i = null) {
7077
7077
  const n = this.properties[e], { componentType: o, type: r } = n, l = this.data, c = l[n.values], A = Ct(o, r), h = new A(c), d = n.getIndexOffsetFromId(l, t);
7078
- if (Yo(r) || r === "ENUM")
7079
- return Jo(h, (d + s) * n.valueLength, r, i);
7078
+ if (Jo(r) || r === "ENUM")
7079
+ return Wo(h, (d + s) * n.valueLength, r, i);
7080
7080
  if (r === "STRING") {
7081
7081
  let u = d + s, g = 0;
7082
7082
  if (n.stringOffsets !== null) {
@@ -7109,13 +7109,13 @@ class Ic extends bi {
7109
7109
  return s = i.adjustValueScaleOffset(s), s = i.resolveEnumsToStrings(s), s = i.resolveNoData(s), s;
7110
7110
  }
7111
7111
  }
7112
- const dt = /* @__PURE__ */ new qr();
7113
- class un {
7112
+ const dt = /* @__PURE__ */ new zr();
7113
+ class gn {
7114
7114
  constructor() {
7115
- this._renderer = new Nr(), this._target = new xi(1, 1), this._texTarget = new xi(), this._quad = new Ko(new Jn({
7116
- blending: Hr,
7117
- blendDst: Or,
7118
- blendSrc: Vr,
7115
+ this._renderer = new Vr(), this._target = new Qi(1, 1), this._texTarget = new Qi(), this._quad = new Yo(new Wn({
7116
+ blending: qr,
7117
+ blendDst: Hr,
7118
+ blendSrc: Or,
7119
7119
  uniforms: {
7120
7120
  map: { value: null },
7121
7121
  pixel: { value: new k() }
@@ -7169,28 +7169,28 @@ class un {
7169
7169
  const Me = /* @__PURE__ */ new class {
7170
7170
  constructor() {
7171
7171
  let a = null;
7172
- Object.getOwnPropertyNames(un.prototype).forEach((e) => {
7173
- e !== "constructor" && (this[e] = (...t) => (a = a || new un(), a[e](...t)));
7172
+ Object.getOwnPropertyNames(gn.prototype).forEach((e) => {
7173
+ e !== "constructor" && (this[e] = (...t) => (a = a || new gn(), a[e](...t)));
7174
7174
  });
7175
7175
  }
7176
- }(), gn = /* @__PURE__ */ new k(), pn = /* @__PURE__ */ new k(), fn = /* @__PURE__ */ new k();
7177
- function Bc(a, e) {
7176
+ }(), pn = /* @__PURE__ */ new k(), fn = /* @__PURE__ */ new k(), mn = /* @__PURE__ */ new k();
7177
+ function wc(a, e) {
7178
7178
  return e === 0 ? a.getAttribute("uv") : a.getAttribute(`uv${e}`);
7179
7179
  }
7180
- function Wo(a, e, t = new Array(3)) {
7180
+ function Xo(a, e, t = new Array(3)) {
7181
7181
  let s = 3 * e, i = 3 * e + 1, n = 3 * e + 2;
7182
7182
  return a.index && (s = a.index.getX(s), i = a.index.getX(i), n = a.index.getX(n)), t[0] = s, t[1] = i, t[2] = n, t;
7183
7183
  }
7184
- function Xo(a, e, t, s, i) {
7185
- const [n, o, r] = s, l = Bc(a, e);
7186
- gn.fromBufferAttribute(l, n), pn.fromBufferAttribute(l, o), fn.fromBufferAttribute(l, r), i.set(0, 0, 0).addScaledVector(gn, t.x).addScaledVector(pn, t.y).addScaledVector(fn, t.z);
7184
+ function Zo(a, e, t, s, i) {
7185
+ const [n, o, r] = s, l = wc(a, e);
7186
+ pn.fromBufferAttribute(l, n), fn.fromBufferAttribute(l, o), mn.fromBufferAttribute(l, r), i.set(0, 0, 0).addScaledVector(pn, t.x).addScaledVector(fn, t.y).addScaledVector(mn, t.z);
7187
7187
  }
7188
- function Zo(a, e, t, s) {
7188
+ function $o(a, e, t, s) {
7189
7189
  const i = a.x - Math.floor(a.x), n = a.y - Math.floor(a.y), o = Math.floor(i * e % e), r = Math.floor(n * t % t);
7190
7190
  return s.set(o, r), s;
7191
7191
  }
7192
- const mn = /* @__PURE__ */ new k(), bn = /* @__PURE__ */ new k(), Cn = /* @__PURE__ */ new k();
7193
- class wc extends us {
7192
+ const bn = /* @__PURE__ */ new k(), Cn = /* @__PURE__ */ new k(), En = /* @__PURE__ */ new k();
7193
+ class Sc extends us {
7194
7194
  constructor(e, t, s = null) {
7195
7195
  super(e, t, s), this.channels = N(s, "channels", [0]), this.index = N(s, "index", null), this.texCoord = N(s, "texCoord", null), this.valueLength = parseInt(this.type.replace(/[^0-9]/g, "")) || 1;
7196
7196
  }
@@ -7199,12 +7199,12 @@ class wc extends us {
7199
7199
  const i = this.type;
7200
7200
  if (i === "BOOLEAN" || i === "STRING")
7201
7201
  throw new Error("PropertyTextureAccessor: BOOLEAN and STRING types not supported.");
7202
- return Jo(e, t * this.valueLength, i, s);
7202
+ return Wo(e, t * this.valueLength, i, s);
7203
7203
  }
7204
7204
  }
7205
- class Sc extends bi {
7205
+ class vc extends Ci {
7206
7206
  constructor(...e) {
7207
- super(...e), this.isPropertyTextureAccessor = !0, this._asyncRead = !1, this._initProperties(wc);
7207
+ super(...e), this.isPropertyTextureAccessor = !0, this._asyncRead = !1, this._initProperties(Sc);
7208
7208
  }
7209
7209
  // Reads the full set of property data
7210
7210
  getData(e, t, s, i = {}) {
@@ -7230,13 +7230,13 @@ class Sc extends bi {
7230
7230
  getPropertyValuesAtTexel(e, t, s, i, n = []) {
7231
7231
  for (; n.length < e.length; ) n.push(null);
7232
7232
  n.length = e.length, Me.increaseSizeTo(n.length);
7233
- const o = this.data, r = this.definition.properties, l = this.properties, c = Wo(i, t);
7233
+ const o = this.data, r = this.definition.properties, l = this.properties, c = Xo(i, t);
7234
7234
  for (let d = 0, u = e.length; d < u; d++) {
7235
7235
  const g = e[d];
7236
7236
  if (!r[g])
7237
7237
  continue;
7238
7238
  const p = l[g], b = o[p.index];
7239
- Xo(i, p.texCoord, s, c, mn), Zo(mn, b.image.width, b.image.height, bn), Cn.set(d, 0), Me.renderPixelToTarget(b, bn, Cn);
7239
+ Zo(i, p.texCoord, s, c, bn), $o(bn, b.image.width, b.image.height, Cn), En.set(d, 0), Me.renderPixelToTarget(b, Cn, En);
7240
7240
  }
7241
7241
  const A = new Uint8Array(e.length * 4);
7242
7242
  if (this._asyncRead)
@@ -7245,7 +7245,7 @@ class Sc extends bi {
7245
7245
  function h() {
7246
7246
  for (let d = 0, u = e.length; d < u; d++) {
7247
7247
  const g = e[d], p = l[g], b = p.type;
7248
- if (n[d] = mi(p, n[d]), p) {
7248
+ if (n[d] = bi(p, n[d]), p) {
7249
7249
  if (!r[g]) {
7250
7250
  n[d] = p.resolveDefault(n);
7251
7251
  continue;
@@ -7269,16 +7269,16 @@ class Sc extends bi {
7269
7269
  });
7270
7270
  }
7271
7271
  }
7272
- class En {
7272
+ class yn {
7273
7273
  constructor(e, t, s, i = null, n = null) {
7274
7274
  const {
7275
7275
  schema: o,
7276
7276
  propertyTables: r = [],
7277
7277
  propertyTextures: l = [],
7278
7278
  propertyAttributes: c = []
7279
- } = e, { enums: A, classes: h } = o, d = r.map((p) => new Ic(p, h, A, s));
7279
+ } = e, { enums: A, classes: h } = o, d = r.map((p) => new Bc(p, h, A, s));
7280
7280
  let u = [], g = [];
7281
- i && (i.propertyTextures && (u = i.propertyTextures.map((p) => new Sc(l[p], h, A, t))), i.propertyAttributes && (g = i.propertyAttributes.map((p) => new Ec(c[p], h, A)))), this.schema = o, this.tableAccessors = d, this.textureAccessors = u, this.attributeAccessors = g, this.object = n, this.textures = t, this.nodeMetadata = i;
7281
+ i && (i.propertyTextures && (u = i.propertyTextures.map((p) => new vc(l[p], h, A, t))), i.propertyAttributes && (g = i.propertyAttributes.map((p) => new yc(c[p], h, A)))), this.schema = o, this.tableAccessors = d, this.textureAccessors = u, this.attributeAccessors = g, this.object = n, this.textures = t, this.nodeMetadata = i;
7282
7282
  }
7283
7283
  // Property Tables
7284
7284
  getPropertyTableData(e, t, s = null) {
@@ -7358,7 +7358,7 @@ class En {
7358
7358
  }
7359
7359
  }
7360
7360
  const ut = "EXT_structural_metadata";
7361
- function vc(a, e = []) {
7361
+ function Mc(a, e = []) {
7362
7362
  var t;
7363
7363
  const s = ((t = a.json.textures) == null ? void 0 : t.length) || 0, i = new Array(s).fill(null);
7364
7364
  return e.forEach(({ properties: n }) => {
@@ -7368,7 +7368,7 @@ function vc(a, e = []) {
7368
7368
  }
7369
7369
  }), Promise.all(i);
7370
7370
  }
7371
- function Mc(a, e = []) {
7371
+ function xc(a, e = []) {
7372
7372
  var t;
7373
7373
  const s = ((t = a.json.bufferViews) == null ? void 0 : t.length) || 0, i = new Array(s).fill(null);
7374
7374
  return e.forEach(({ properties: n }) => {
@@ -7378,7 +7378,7 @@ function Mc(a, e = []) {
7378
7378
  }
7379
7379
  }), Promise.all(i);
7380
7380
  }
7381
- class xc {
7381
+ class Qc {
7382
7382
  constructor(e) {
7383
7383
  this.parser = e, this.name = ut;
7384
7384
  }
@@ -7394,28 +7394,28 @@ class xc {
7394
7394
  });
7395
7395
  }
7396
7396
  const [o, r] = await Promise.all([
7397
- vc(t, n.propertyTextures),
7398
- Mc(t, n.propertyTables),
7397
+ Mc(t, n.propertyTextures),
7398
+ xc(t, n.propertyTables),
7399
7399
  i
7400
- ]), l = new En(n, o, r);
7400
+ ]), l = new yn(n, o, r);
7401
7401
  e.userData.structuralMetadata = l, e.traverse((c) => {
7402
7402
  var A;
7403
7403
  if (t.associations.has(c)) {
7404
7404
  const { meshes: h, primitives: d } = t.associations.get(c), u = (A = t.json.meshes[h]) == null ? void 0 : A.primitives[d];
7405
7405
  if (u && u.extensions && u.extensions[ut]) {
7406
7406
  const g = u.extensions[ut];
7407
- c.userData.structuralMetadata = new En(n, o, r, g, c);
7407
+ c.userData.structuralMetadata = new yn(n, o, r, g, c);
7408
7408
  } else
7409
7409
  c.userData.structuralMetadata = l;
7410
7410
  }
7411
7411
  });
7412
7412
  }
7413
7413
  }
7414
- const yn = /* @__PURE__ */ new k(), In = /* @__PURE__ */ new k(), Bn = /* @__PURE__ */ new k();
7415
- function Qc(a) {
7414
+ const In = /* @__PURE__ */ new k(), Bn = /* @__PURE__ */ new k(), wn = /* @__PURE__ */ new k();
7415
+ function Tc(a) {
7416
7416
  return a.x > a.y && a.x > a.z ? 0 : a.y > a.z ? 1 : 2;
7417
7417
  }
7418
- class Tc {
7418
+ class Rc {
7419
7419
  constructor(e, t, s) {
7420
7420
  this.geometry = e, this.textures = t, this.data = s, this._asyncRead = !1, this.featureIds = s.featureIds.map((i) => {
7421
7421
  const { texture: n, ...o } = i, r = {
@@ -7449,12 +7449,12 @@ class Tc {
7449
7449
  getFeatures(e, t) {
7450
7450
  const { geometry: s, textures: i, featureIds: n } = this, o = new Array(n.length).fill(null), r = n.length;
7451
7451
  Me.increaseSizeTo(r);
7452
- const l = Wo(s, e), c = l[Qc(t)];
7452
+ const l = Xo(s, e), c = l[Tc(t)];
7453
7453
  for (let d = 0, u = n.length; d < u; d++) {
7454
7454
  const g = n[d], p = "nullFeatureId" in g ? g.nullFeatureId : null;
7455
7455
  if ("texture" in g) {
7456
7456
  const b = i[g.texture.index];
7457
- Xo(s, g.texture.texCoord, t, l, yn), Zo(yn, b.image.width, b.image.height, In), Bn.set(d, 0), Me.renderPixelToTarget(i[g.texture.index], In, Bn);
7457
+ Zo(s, g.texture.texCoord, t, l, In), $o(In, b.image.width, b.image.height, Bn), wn.set(d, 0), Me.renderPixelToTarget(i[g.texture.index], Bn, wn);
7458
7458
  } else if ("attribute" in g) {
7459
7459
  const b = s.getAttribute(`_feature_id_${g.attribute}`).getX(c);
7460
7460
  b !== p && (o[d] = b);
@@ -7488,7 +7488,7 @@ class Tc {
7488
7488
  }
7489
7489
  }
7490
7490
  const ts = "EXT_mesh_features";
7491
- function wn(a, e, t) {
7491
+ function Sn(a, e, t) {
7492
7492
  a.traverse((s) => {
7493
7493
  var i;
7494
7494
  if (e.associations.has(s)) {
@@ -7497,7 +7497,7 @@ function wn(a, e, t) {
7497
7497
  }
7498
7498
  });
7499
7499
  }
7500
- class Rc {
7500
+ class Dc {
7501
7501
  constructor(e) {
7502
7502
  this.parser = e, this.name = ts;
7503
7503
  }
@@ -7507,7 +7507,7 @@ class Rc {
7507
7507
  if (!i || !i.includes(ts))
7508
7508
  return;
7509
7509
  const n = ((s = t.json.textures) == null ? void 0 : s.length) || 0, o = new Array(n).fill(null);
7510
- wn(e, t, (l, { featureIds: c }) => {
7510
+ Sn(e, t, (l, { featureIds: c }) => {
7511
7511
  c.forEach((A) => {
7512
7512
  if (A.texture && o[A.texture.index] === null) {
7513
7513
  const h = A.texture.index;
@@ -7516,12 +7516,12 @@ class Rc {
7516
7516
  });
7517
7517
  });
7518
7518
  const r = await Promise.all(o);
7519
- wn(e, t, (l, c) => {
7520
- l.userData.meshFeatures = new Tc(l.geometry, r, c);
7519
+ Sn(e, t, (l, c) => {
7520
+ l.userData.meshFeatures = new Rc(l.geometry, r, c);
7521
7521
  });
7522
7522
  }
7523
7523
  }
7524
- class Dc {
7524
+ class Lc {
7525
7525
  constructor() {
7526
7526
  this.name = "CESIUM_RTC";
7527
7527
  }
@@ -7532,7 +7532,7 @@ class Dc {
7532
7532
  }
7533
7533
  }
7534
7534
  }
7535
- class Lc {
7535
+ class Fc {
7536
7536
  constructor(e) {
7537
7537
  e = {
7538
7538
  metadata: !0,
@@ -7547,18 +7547,18 @@ class Lc {
7547
7547
  }
7548
7548
  init(e) {
7549
7549
  const t = new Ne(e.manager);
7550
- this.dracoLoader && (t.setDRACOLoader(this.dracoLoader), e.manager.addHandler(this._dracoRegex, this.dracoLoader)), this.ktxLoader && t.setKTX2Loader(this.ktxLoader), this.meshoptDecoder && t.setMeshoptDecoder(this.meshoptDecoder), this.rtc && t.register(() => new Dc()), this.metadata && (t.register(() => new xc()), t.register(() => new Rc())), this.plugins.forEach((s) => t.register(s)), e.manager.addHandler(this._gltfRegex, t), this.tiles = e, this._loader = t;
7550
+ this.dracoLoader && (t.setDRACOLoader(this.dracoLoader), e.manager.addHandler(this._dracoRegex, this.dracoLoader)), this.ktxLoader && t.setKTX2Loader(this.ktxLoader), this.meshoptDecoder && t.setMeshoptDecoder(this.meshoptDecoder), this.rtc && t.register(() => new Lc()), this.metadata && (t.register(() => new Qc()), t.register(() => new Dc())), this.plugins.forEach((s) => t.register(s)), e.manager.addHandler(this._gltfRegex, t), this.tiles = e, this._loader = t;
7551
7551
  }
7552
7552
  dispose() {
7553
7553
  this.tiles.manager.removeHandler(this._gltfRegex), this.tiles.manager.removeHandler(this._dracoRegex), this.autoDispose && (this.ktxLoader.dispose(), this.dracoLoader.dispose());
7554
7554
  }
7555
7555
  }
7556
- const { clamp: _A } = st;
7557
- new Ko(new ke());
7558
- const Fc = new jn(new Uint8Array([255, 255, 255, 255]), 1, 1);
7559
- Fc.needsUpdate = !0;
7560
- const kc = "https://unpkg.com/three@0.179.1/examples/jsm/libs/draco/gltf/", _c = "https://unpkg.com/three@0.179.1/examples/jsm/libs/basis/";
7561
- class Pc extends rc {
7556
+ const { clamp: PA } = st;
7557
+ new Yo(new ke());
7558
+ const kc = new Kn(new Uint8Array([255, 255, 255, 255]), 1, 1);
7559
+ kc.needsUpdate = !0;
7560
+ const _c = "https://unpkg.com/three@0.179.1/examples/jsm/libs/draco/gltf/", Pc = "https://unpkg.com/three@0.179.1/examples/jsm/libs/basis/";
7561
+ class Gc extends ac {
7562
7562
  preprocessTileset(e, t, s = null) {
7563
7563
  const i = e.asset?.version || "1.0", [n] = i.split(".").map((r) => parseInt(r, 10));
7564
7564
  console.assert(
@@ -7569,7 +7569,7 @@ class Pc extends rc {
7569
7569
  o = new URL(o, window.location.href).toString(), this.preprocessNode(e.root, o, s);
7570
7570
  }
7571
7571
  }
7572
- class Gc {
7572
+ class Uc {
7573
7573
  constructor(e = null, t = null) {
7574
7574
  this.renderer = e, this.camera = t, this.activeTilesets = /* @__PURE__ */ new Set(), this.tilesetStates = /* @__PURE__ */ new Map(), this.pendingQueueTasks = [], this._resolutionVec2 = new m.Vector2();
7575
7575
  }
@@ -7754,11 +7754,11 @@ class Gc {
7754
7754
  configureGltfExtensions(e, t = {}) {
7755
7755
  if (t.enableGltfExtensions === !1)
7756
7756
  return null;
7757
- const s = new to();
7758
- s.setDecoderPath(t.dracoDecoderPath || kc);
7757
+ const s = new so();
7758
+ s.setDecoderPath(t.dracoDecoderPath || _c);
7759
7759
  const i = new ee();
7760
- i.setTranscoderPath(t.ktx2TranscoderPath || _c), this.renderer && i.detectSupport(this.renderer);
7761
- const n = new Lc({
7760
+ i.setTranscoderPath(t.ktx2TranscoderPath || Pc), this.renderer && i.detectSupport(this.renderer);
7761
+ const n = new Fc({
7762
7762
  rtc: !0,
7763
7763
  dracoLoader: s,
7764
7764
  ktxLoader: i
@@ -7938,8 +7938,8 @@ class Gc {
7938
7938
  }
7939
7939
  load(e, t = {}) {
7940
7940
  return new Promise((s, i) => {
7941
- const n = new Pc(e);
7942
- n.registerPlugin(new cc()), this.configureScheduling(n), this.applyOptions(n, t), this.configureGltfExtensions(n, t);
7941
+ const n = new Gc(e);
7942
+ n.registerPlugin(new Ac()), this.configureScheduling(n), this.applyOptions(n, t), this.configureGltfExtensions(n, t);
7943
7943
  const o = new m.Group(), r = new m.Group(), l = new m.Group();
7944
7944
  o.add(r), r.add(l);
7945
7945
  const c = n.group;
@@ -8091,7 +8091,7 @@ class tt {
8091
8091
  }
8092
8092
  tt.xrSessionIsGranted = !1;
8093
8093
  tt.registerSessionGrantedListener();
8094
- class Uc {
8094
+ class Nc {
8095
8095
  constructor(e, t, s, i = null) {
8096
8096
  this.renderer = e, this.camera = t, this.scene = s, this.container = i || document.body, this.isVRSupported = !1, this.isVRPresenting = !1, this.isQuest2 = !1, this.isQuest3 = !1, this.vrButton = null, this.onSessionStart = null, this.onSessionEnd = null;
8097
8097
  }
@@ -8276,23 +8276,23 @@ const G = {
8276
8276
  VISIBILITY: "visibility"
8277
8277
  })
8278
8278
  };
8279
- async function $o(a) {
8279
+ async function er(a) {
8280
8280
  const e = await fetch(a);
8281
8281
  if (e.ok)
8282
8282
  return e.json();
8283
8283
  throw new Error(e.statusText);
8284
8284
  }
8285
- async function Nc(a) {
8285
+ async function Vc(a) {
8286
8286
  if (!a)
8287
8287
  throw new Error("No basePath supplied");
8288
- return await $o(`${a}/profilesList.json`);
8288
+ return await er(`${a}/profilesList.json`);
8289
8289
  }
8290
- async function Vc(a, e, t = null, s = !0) {
8290
+ async function Oc(a, e, t = null, s = !0) {
8291
8291
  if (!a)
8292
8292
  throw new Error("No xrInputSource supplied");
8293
8293
  if (!e)
8294
8294
  throw new Error("No basePath supplied");
8295
- const i = await Nc(e);
8295
+ const i = await Vc(e);
8296
8296
  let n;
8297
8297
  if (a.profiles.some((l) => {
8298
8298
  const c = i[l];
@@ -8313,7 +8313,7 @@ async function Vc(a, e, t = null, s = !0) {
8313
8313
  deprecated: !!l.deprecated
8314
8314
  };
8315
8315
  }
8316
- const o = await $o(n.profilePath);
8316
+ const o = await er(n.profilePath);
8317
8317
  let r;
8318
8318
  if (s) {
8319
8319
  let l;
@@ -8325,13 +8325,13 @@ async function Vc(a, e, t = null, s = !0) {
8325
8325
  }
8326
8326
  return { profile: o, assetPath: r };
8327
8327
  }
8328
- const Oc = {
8328
+ const Hc = {
8329
8329
  xAxis: 0,
8330
8330
  yAxis: 0,
8331
8331
  button: 0,
8332
8332
  state: G.ComponentState.DEFAULT
8333
8333
  };
8334
- function Hc(a = 0, e = 0) {
8334
+ function qc(a = 0, e = 0) {
8335
8335
  let t = a, s = e;
8336
8336
  if (Math.sqrt(a * a + e * e) > 1) {
8337
8337
  const o = Math.atan2(e, a);
@@ -8342,9 +8342,9 @@ function Hc(a = 0, e = 0) {
8342
8342
  normalizedYAxis: s * 0.5 + 0.5
8343
8343
  };
8344
8344
  }
8345
- class qc {
8345
+ class zc {
8346
8346
  constructor(e) {
8347
- this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === G.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Oc);
8347
+ this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === G.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Hc);
8348
8348
  }
8349
8349
  /**
8350
8350
  * Computes the visual response's interpolation weight based on component state
@@ -8360,7 +8360,7 @@ class qc {
8360
8360
  button: s,
8361
8361
  state: i
8362
8362
  }) {
8363
- const { normalizedXAxis: n, normalizedYAxis: o } = Hc(e, t);
8363
+ const { normalizedXAxis: n, normalizedYAxis: o } = qc(e, t);
8364
8364
  switch (this.componentProperty) {
8365
8365
  case G.ComponentProperty.X_AXIS:
8366
8366
  this.value = this.states.includes(i) ? n : 0.5;
@@ -8379,7 +8379,7 @@ class qc {
8379
8379
  }
8380
8380
  }
8381
8381
  }
8382
- class zc {
8382
+ class jc {
8383
8383
  /**
8384
8384
  * @param {Object} componentId - Id of the component
8385
8385
  * @param {Object} componentDescription - Description of the component to be created
@@ -8388,7 +8388,7 @@ class zc {
8388
8388
  if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0)
8389
8389
  throw new Error("Invalid arguments supplied");
8390
8390
  this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((s) => {
8391
- const i = new qc(t.visualResponses[s]);
8391
+ const i = new zc(t.visualResponses[s]);
8392
8392
  this.visualResponses[s] = i;
8393
8393
  }), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
8394
8394
  state: G.ComponentState.DEFAULT,
@@ -8414,7 +8414,7 @@ class zc {
8414
8414
  });
8415
8415
  }
8416
8416
  }
8417
- class jc {
8417
+ class Kc {
8418
8418
  /**
8419
8419
  * @param {Object} xrInputSource - The XRInputSource to build the MotionController around
8420
8420
  * @param {Object} profile - The best matched profile description for the supplied xrInputSource
@@ -8427,7 +8427,7 @@ class jc {
8427
8427
  throw new Error("No profile supplied");
8428
8428
  this.xrInputSource = e, this.assetUrl = s, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((i) => {
8429
8429
  const n = this.layoutDescription.components[i];
8430
- this.components[i] = new zc(i, n);
8430
+ this.components[i] = new jc(i, n);
8431
8431
  }), this.updateFromGamepad();
8432
8432
  }
8433
8433
  get gripSpace() {
@@ -8454,8 +8454,8 @@ class jc {
8454
8454
  });
8455
8455
  }
8456
8456
  }
8457
- const Kc = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Yc = "generic-trigger";
8458
- class Jc extends ns {
8457
+ const Yc = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Jc = "generic-trigger";
8458
+ class Wc extends ns {
8459
8459
  /**
8460
8460
  * Constructs a new XR controller model.
8461
8461
  */
@@ -8497,12 +8497,12 @@ class Jc extends ns {
8497
8497
  }));
8498
8498
  }
8499
8499
  }
8500
- function Wc(a, e) {
8500
+ function Xc(a, e) {
8501
8501
  Object.values(a.components).forEach((t) => {
8502
8502
  const { type: s, touchPointNodeName: i, visualResponses: n } = t;
8503
8503
  if (s === G.ComponentType.TOUCHPAD)
8504
8504
  if (t.touchPointNode = e.getObjectByName(i), t.touchPointNode) {
8505
- const o = new Wn(1e-3), r = new ke({ color: 255 }), l = new as(o, r);
8505
+ const o = new Xn(1e-3), r = new ke({ color: 255 }), l = new as(o, r);
8506
8506
  t.touchPointNode.add(l);
8507
8507
  } else
8508
8508
  console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);
@@ -8522,12 +8522,12 @@ function Wc(a, e) {
8522
8522
  });
8523
8523
  });
8524
8524
  }
8525
- function Sn(a, e) {
8526
- Wc(a.motionController, e), a.envMap && e.traverse((t) => {
8525
+ function vn(a, e) {
8526
+ Xc(a.motionController, e), a.envMap && e.traverse((t) => {
8527
8527
  t.isMesh && (t.material.envMap = a.envMap, t.material.needsUpdate = !0);
8528
8528
  }), a.add(e);
8529
8529
  }
8530
- class Xc {
8530
+ class Zc {
8531
8531
  /**
8532
8532
  * Constructs a new XR controller model factory.
8533
8533
  *
@@ -8535,7 +8535,7 @@ class Xc {
8535
8535
  * @param {?Function} [onLoad=null] - A callback that is executed when a controller model has been loaded.
8536
8536
  */
8537
8537
  constructor(e = null, t = null) {
8538
- this.gltfLoader = e, this.path = Kc, this._assetCache = {}, this.onLoad = t, this.gltfLoader || (this.gltfLoader = new Ne());
8538
+ this.gltfLoader = e, this.path = Yc, this._assetCache = {}, this.onLoad = t, this.gltfLoader || (this.gltfLoader = new Ne());
8539
8539
  }
8540
8540
  /**
8541
8541
  * Sets the path to the model repository.
@@ -8553,26 +8553,26 @@ class Xc {
8553
8553
  * @return {XRControllerModel} The XR controller model.
8554
8554
  */
8555
8555
  createControllerModel(e) {
8556
- const t = new Jc();
8556
+ const t = new Wc();
8557
8557
  let s = null;
8558
8558
  return e.addEventListener("connected", (i) => {
8559
8559
  const n = i.data;
8560
- n.targetRayMode !== "tracked-pointer" || !n.gamepad || n.hand || Vc(n, this.path, Yc).then(({ profile: o, assetPath: r }) => {
8561
- t.motionController = new jc(
8560
+ n.targetRayMode !== "tracked-pointer" || !n.gamepad || n.hand || Oc(n, this.path, Jc).then(({ profile: o, assetPath: r }) => {
8561
+ t.motionController = new Kc(
8562
8562
  n,
8563
8563
  o,
8564
8564
  r
8565
8565
  );
8566
8566
  const l = this._assetCache[t.motionController.assetUrl];
8567
8567
  if (l)
8568
- s = l.scene.clone(), Sn(t, s), this.onLoad && this.onLoad(s);
8568
+ s = l.scene.clone(), vn(t, s), this.onLoad && this.onLoad(s);
8569
8569
  else {
8570
8570
  if (!this.gltfLoader)
8571
8571
  throw new Error("GLTFLoader not set.");
8572
8572
  this.gltfLoader.setPath(""), this.gltfLoader.load(
8573
8573
  t.motionController.assetUrl,
8574
8574
  (c) => {
8575
- this._assetCache[t.motionController.assetUrl] = c, s = c.scene.clone(), Sn(t, s), this.onLoad && this.onLoad(s);
8575
+ this._assetCache[t.motionController.assetUrl] = c, s = c.scene.clone(), vn(t, s), this.onLoad && this.onLoad(s);
8576
8576
  },
8577
8577
  null,
8578
8578
  () => {
@@ -8588,7 +8588,7 @@ class Xc {
8588
8588
  }), t;
8589
8589
  }
8590
8590
  }
8591
- class Zc {
8591
+ class $c {
8592
8592
  constructor(e, t) {
8593
8593
  this.renderer = e, this.camera = t, this.controller1 = null, this.controller2 = null, this.controllerGrip1 = null, this.controllerGrip2 = null, this.controllers = [], this.controllerGrips = [], this.buttonStates = /* @__PURE__ */ new Map(), this.inputDeadzone = 0.15, this.turnSmoothingFactor = 0.1, this.lastTurnInput = 0, this.onSelectStart = null, this.onSelectEnd = null, this.onSqueezeStart = null, this.onSqueezeEnd = null, this.onModeToggle = null, this.onMovementStart = null, this.onMovementStop = null, this.handsActive = !1, this.handStates = {
8594
8594
  left: { pinch: !1, fist: !1, direction: new m.Vector3() },
@@ -8646,7 +8646,7 @@ class Zc {
8646
8646
  }
8647
8647
  }
8648
8648
  initControllers() {
8649
- const e = new Xc();
8649
+ const e = new Zc();
8650
8650
  for (let t = 0; t < 2; t++) {
8651
8651
  const s = this.renderer.xr.getController(t), i = this.renderer.xr.getControllerGrip(t);
8652
8652
  i.add(e.createControllerModel(i)), this.camera.parent.add(s), this.camera.parent.add(i), this.controllers.push(s), this.controllerGrips.push(i);
@@ -8770,7 +8770,7 @@ class Zc {
8770
8770
  }), this.controller1 = null, this.controller2 = null, this.controllerGrip1 = null, this.controllerGrip2 = null, this.controllers = [], this.controllerGrips = [], this.buttonStates.clear();
8771
8771
  }
8772
8772
  }
8773
- class $c {
8773
+ class eA {
8774
8774
  constructor(e, t) {
8775
8775
  this.scene = e, this.camera = t, this.style = {
8776
8776
  neutralColor: 14870768,
@@ -8959,7 +8959,7 @@ class $c {
8959
8959
  this.lastSnapTurnTime = 0;
8960
8960
  }
8961
8961
  }
8962
- class eA {
8962
+ class tA {
8963
8963
  constructor(e, t) {
8964
8964
  this.camera = e, this.renderer = t, this.MOVE_SPEED = 2, this.TURN_SPEED = 1.5, this.FLY_SPEED = 1, this.currentSpeed = 0, this.targetSpeed = 0, this.currentBoostLevel = 0, this.targetBoostLevel = 0, this.SPEED_RAMP_RATE = 3, this.BOOST_RAMP_RATE = 6, this.handMoveActive = !1, this.handMoveBoost = !1, this.handMoveDirection = new m.Vector3(), this.isMoving = !1, this.inputDeadzone = 0.15, this.turnSmoothingFactor = 0.1, this.lastTurnInput = 0, this.comfortSettings = {
8965
8965
  locomotionMode: "smooth",
@@ -9148,7 +9148,7 @@ class eA {
9148
9148
  };
9149
9149
  }
9150
9150
  }
9151
- class tA {
9151
+ class sA {
9152
9152
  constructor() {
9153
9153
  this.soundEnabled = !1, this.audioContext = null, this._basePath = "./sound/", this.dpvSound = null, this.dpvHighSound = null, this.ambienceSound = null, this.currentMovementSound = null, this.currentBoostSound = null, this.currentAmbienceSound = null, this.baseGainNode = null, this.boostGainNode = null, this.ambienceGainNode = null, this.baseVolumeMultiplier = 1.52, this.boostVolumeMultiplier = 1.01, this.ambienceVolume = 0.1;
9154
9154
  }
@@ -9283,7 +9283,7 @@ class tA {
9283
9283
  this.dpvSound = null, this.dpvHighSound = null, this.ambienceSound = null, this.currentMovementSound = null, this.currentBoostSound = null, this.currentAmbienceSound = null, this.baseGainNode = null, this.boostGainNode = null, this.ambienceGainNode = null, this.soundEnabled = !1;
9284
9284
  }
9285
9285
  }
9286
- class sA {
9286
+ class iA {
9287
9287
  /**
9288
9288
  * Creates a new VRManager instance
9289
9289
  *
@@ -9294,7 +9294,7 @@ class sA {
9294
9294
  * @param {boolean} [enableAudio=false] - Enable VR audio system
9295
9295
  */
9296
9296
  constructor(e, t, s, i = "./sound/", n = !1, o = null) {
9297
- this.renderer = e, this.camera = t, this.scene = s, this.audioPath = i, this.enableAudio = n, this.container = o, this.vrCore = new Uc(e, t, s, o), this.vrControllers = new Zc(e, t), this.vrTeleport = new $c(s, t), this.vrLocomotion = new eA(t, e), this.vrAudio = this.enableAudio ? new tA() : null, this.isVRSupported = !1, this.isVRPresenting = !1, this.controller1 = null, this.controller2 = null, this.controllerGrip1 = null, this.controllerGrip2 = null, this.controllers = [], this.controllerGrips = [], this._preVRCameraState = {
9297
+ this.renderer = e, this.camera = t, this.scene = s, this.audioPath = i, this.enableAudio = n, this.container = o, this.vrCore = new Nc(e, t, s, o), this.vrControllers = new $c(e, t), this.vrTeleport = new eA(s, t), this.vrLocomotion = new tA(t, e), this.vrAudio = this.enableAudio ? new sA() : null, this.isVRSupported = !1, this.isVRPresenting = !1, this.controller1 = null, this.controller2 = null, this.controllerGrip1 = null, this.controllerGrip2 = null, this.controllers = [], this.controllerGrips = [], this._preVRCameraState = {
9298
9298
  target: null,
9299
9299
  position: null,
9300
9300
  zoom: null,
@@ -9562,7 +9562,7 @@ class sA {
9562
9562
  return this.vrLocomotion.normalizeAngle(e);
9563
9563
  }
9564
9564
  }
9565
- class iA {
9565
+ class nA {
9566
9566
  /**
9567
9567
  * Constructs a new AR button.
9568
9568
  *
@@ -9624,7 +9624,7 @@ class iA {
9624
9624
  }
9625
9625
  }
9626
9626
  }
9627
- class nA {
9627
+ class oA {
9628
9628
  constructor(e, t, s, i = null) {
9629
9629
  this.renderer = e, this.camera = t, this.scene = s, this.container = i || document.body, this.isARSupported = !1, this.isARPresenting = !1, this.isQuest2 = !1, this.isQuest3 = !1, this.arButton = null, this.buttonObserver = null, this.onSessionStart = null, this.onSessionEnd = null;
9630
9630
  }
@@ -9658,7 +9658,7 @@ class nA {
9658
9658
  requiredFeatures: ["local"],
9659
9659
  optionalFeatures: this.getOptionalFeatures()
9660
9660
  };
9661
- this.arButton = iA.createButton(this.renderer, e), this.arButton.innerHTML = '<span class="ar-icon">👁️</span>ENTER AR', this.arButton.className = "ar-button--glass ar-button-available", this.arButton.disabled = !1, this.arButton.style.cssText = `
9661
+ this.arButton = nA.createButton(this.renderer, e), this.arButton.innerHTML = '<span class="ar-icon">👁️</span>ENTER AR', this.arButton.className = "ar-button--glass ar-button-available", this.arButton.disabled = !1, this.arButton.style.cssText = `
9662
9662
  position: fixed !important;
9663
9663
  bottom: 140px !important;
9664
9664
  left: 50% !important;
@@ -9745,8 +9745,8 @@ class nA {
9745
9745
  this.buttonObserver && (this.buttonObserver.disconnect(), this.buttonObserver = null), this.arButton && this.arButton.parentNode && this.arButton.parentNode.removeChild(this.arButton), this.isQuest2 = !1, this.isQuest3 = !1, this.isARSupported = !1, this.isARPresenting = !1;
9746
9746
  }
9747
9747
  }
9748
- const vn = new P(), Mn = new v();
9749
- class xn {
9748
+ const Mn = new P(), xn = new v();
9749
+ class Qn {
9750
9750
  /**
9751
9751
  * Constructs a new XR hand primitive model.
9752
9752
  *
@@ -9759,9 +9759,9 @@ class xn {
9759
9759
  constructor(e, t, s, i, n) {
9760
9760
  this.controller = t, this.handModel = e, this.envMap = null;
9761
9761
  let o;
9762
- !n || !n.primitive || n.primitive === "sphere" ? o = new Wn(1, 10, 10) : n.primitive === "box" && (o = new jr(1, 1, 1));
9763
- const r = new li();
9764
- this.handMesh = new ai(o, r, 30), this.handMesh.frustumCulled = !1, this.handMesh.instanceMatrix.setUsage(Kr), this.handMesh.castShadow = !0, this.handMesh.receiveShadow = !0, this.handModel.add(this.handMesh), this.joints = [
9762
+ !n || !n.primitive || n.primitive === "sphere" ? o = new Xn(1, 10, 10) : n.primitive === "box" && (o = new Kr(1, 1, 1));
9763
+ const r = new ci();
9764
+ this.handMesh = new li(o, r, 30), this.handMesh.frustumCulled = !1, this.handMesh.instanceMatrix.setUsage(Yr), this.handMesh.castShadow = !0, this.handMesh.receiveShadow = !0, this.handModel.add(this.handMesh), this.joints = [
9765
9765
  "wrist",
9766
9766
  "thumb-metacarpal",
9767
9767
  "thumb-phalanx-proximal",
@@ -9797,13 +9797,13 @@ class xn {
9797
9797
  let s = 0;
9798
9798
  for (let i = 0; i < this.joints.length; i++) {
9799
9799
  const n = t[this.joints[i]];
9800
- n.visible && (Mn.setScalar(n.jointRadius || 8e-3), vn.compose(n.position, n.quaternion, Mn), this.handMesh.setMatrixAt(i, vn), s++);
9800
+ n.visible && (xn.setScalar(n.jointRadius || 8e-3), Mn.compose(n.position, n.quaternion, xn), this.handMesh.setMatrixAt(i, Mn), s++);
9801
9801
  }
9802
9802
  this.handMesh.count = s, this.handMesh.instanceMatrix.needsUpdate = !0;
9803
9803
  }
9804
9804
  }
9805
- const oA = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/";
9806
- class rA {
9805
+ const rA = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/";
9806
+ class aA {
9807
9807
  /**
9808
9808
  * Constructs a new XR hand mesh model.
9809
9809
  *
@@ -9815,7 +9815,7 @@ class rA {
9815
9815
  * @param {?Function} [onLoad=null] - A callback that is executed when a controller model has been loaded.
9816
9816
  */
9817
9817
  constructor(e, t, s, i, n = null, o = null) {
9818
- this.controller = t, this.handModel = e, this.bones = [], n === null && (n = new Ne(), n.setPath(s || oA)), n.load(`${i}.glb`, (r) => {
9818
+ this.controller = t, this.handModel = e, this.bones = [], n === null && (n = new Ne(), n.setPath(s || rA)), n.load(`${i}.glb`, (r) => {
9819
9819
  const l = r.scene.children[0];
9820
9820
  this.handModel.add(l);
9821
9821
  const c = l.getObjectByProperty("type", "SkinnedMesh");
@@ -9868,7 +9868,7 @@ class rA {
9868
9868
  }
9869
9869
  }
9870
9870
  }
9871
- class aA extends ns {
9871
+ class lA extends ns {
9872
9872
  /**
9873
9873
  * Constructs a new XR hand model.
9874
9874
  *
@@ -9887,7 +9887,7 @@ class aA extends ns {
9887
9887
  super.updateMatrixWorld(e), this.motionController && this.motionController.updateMesh();
9888
9888
  }
9889
9889
  }
9890
- class lA {
9890
+ class cA {
9891
9891
  /**
9892
9892
  * Constructs a new XR hand model factory.
9893
9893
  *
@@ -9914,18 +9914,18 @@ class lA {
9914
9914
  * @return {XRHandModel} The XR hand model.
9915
9915
  */
9916
9916
  createHandModel(e, t) {
9917
- const s = new aA(e);
9917
+ const s = new lA(e);
9918
9918
  return e.addEventListener("connected", (i) => {
9919
9919
  const n = i.data;
9920
- n.hand && !s.motionController && (s.xrInputSource = n, t === void 0 || t === "spheres" ? s.motionController = new xn(s, e, this.path, n.handedness, { primitive: "sphere" }) : t === "boxes" ? s.motionController = new xn(s, e, this.path, n.handedness, { primitive: "box" }) : t === "mesh" && (s.motionController = new rA(s, e, this.path, n.handedness, this.gltfLoader, this.onLoad))), e.visible = !0;
9920
+ n.hand && !s.motionController && (s.xrInputSource = n, t === void 0 || t === "spheres" ? s.motionController = new Qn(s, e, this.path, n.handedness, { primitive: "sphere" }) : t === "boxes" ? s.motionController = new Qn(s, e, this.path, n.handedness, { primitive: "box" }) : t === "mesh" && (s.motionController = new aA(s, e, this.path, n.handedness, this.gltfLoader, this.onLoad))), e.visible = !0;
9921
9921
  }), e.addEventListener("disconnected", () => {
9922
9922
  e.visible = !1;
9923
9923
  }), s;
9924
9924
  }
9925
9925
  }
9926
- class cA {
9926
+ class AA {
9927
9927
  constructor(e) {
9928
- this.renderer = e, this.handModelFactory = new lA(), this.hand1 = null, this.hand2 = null, this.interactionEnabled = !0, this.dragging = !1, this.scaling = !1, this.rotating = !1, this.dragStartPos = new m.Vector3(), this.scaleStartDistance = 0, this.rotateStartAngle = 0, this.pinchIntent = {
9928
+ this.renderer = e, this.handModelFactory = new cA(), this.hand1 = null, this.hand2 = null, this.interactionEnabled = !0, this.dragging = !1, this.scaling = !1, this.rotating = !1, this.dragStartPos = new m.Vector3(), this.scaleStartDistance = 0, this.rotateStartAngle = 0, this.pinchIntent = {
9929
9929
  hand1Start: 0,
9930
9930
  hand2Start: 0,
9931
9931
  delay: 100
@@ -10039,7 +10039,7 @@ class cA {
10039
10039
  this.hand1 && this.hand1.clear(), this.hand2 && this.hand2.clear(), this.stop();
10040
10040
  }
10041
10041
  }
10042
- class AA extends yt {
10042
+ class hA extends yt {
10043
10043
  constructor(e, t, s, i = {}, n = null) {
10044
10044
  super(), this.renderer = e, this.camera = t, this.scene = s, this.config = {
10045
10045
  enableHandTracking: !0,
@@ -10048,7 +10048,7 @@ class AA extends yt {
10048
10048
  worldCubeSize: 1e3,
10049
10049
  worldCubeOpacity: 0.1,
10050
10050
  ...i
10051
- }, this.container = n, this.arCore = new nA(e, t, s, n), this.handTracking = this.config.enableHandTracking ? new cA(e) : null, this.modelGroup = new m.Group(), this.modelGroup.name = "AR Model Group", this.scene.add(this.modelGroup), this.currentModel = null, this.pendingModel = null, this.pendingModelConfig = null, this.currentModelScale = this.config.defaultScale, this.worldCube = null, this.config.enableWorldCube && this.createWorldCube(), this.isARPresenting = !1, this.previousGestureType = null, this.init();
10051
+ }, this.container = n, this.arCore = new oA(e, t, s, n), this.handTracking = this.config.enableHandTracking ? new AA(e) : null, this.modelGroup = new m.Group(), this.modelGroup.name = "AR Model Group", this.scene.add(this.modelGroup), this.currentModel = null, this.pendingModel = null, this.pendingModelConfig = null, this.currentModelScale = this.config.defaultScale, this.worldCube = null, this.config.enableWorldCube && this.createWorldCube(), this.isARPresenting = !1, this.previousGestureType = null, this.init();
10052
10052
  }
10053
10053
  init() {
10054
10054
  this.arCore.init(), this.handTracking && (this.handTracking.init(this.scene), this.handTracking.onGestureStart = (e) => {
@@ -10138,7 +10138,7 @@ class AA extends yt {
10138
10138
  this.arCore && this.arCore.dispose(), this.handTracking && this.handTracking.dispose(), this.worldCube && (this.scene.remove(this.worldCube), this.worldCube.geometry.dispose(), this.worldCube.material.dispose()), this.modelGroup && this.scene.remove(this.modelGroup), this.isARPresenting = !1, this.currentModel = null;
10139
10139
  }
10140
10140
  }
10141
- class Qn {
10141
+ class Tn {
10142
10142
  /**
10143
10143
  * Initialize debug commands with a BelowViewer instance
10144
10144
  *
@@ -10312,7 +10312,7 @@ class Qn {
10312
10312
  typeof window > "u" || (delete window.camera, delete window.scene, delete window.vertices, delete window.models, delete window.particles, delete window.vr, delete window.stereo, delete window.debugHelp, delete window.belowViewer);
10313
10313
  }
10314
10314
  }
10315
- class hA extends yt {
10315
+ class dA extends yt {
10316
10316
  /**
10317
10317
  * Creates a new BelowViewer instance
10318
10318
  *
@@ -10416,7 +10416,7 @@ class hA extends yt {
10416
10416
  }
10417
10417
  init() {
10418
10418
  try {
10419
- this.initRenderer(), this.sceneManager = new Xr(this.config.scene), this.cameraManager = new da(this.config.camera), this.modelLoader = new $(this.renderer), this.tilesetLoader = new Gc(this.renderer, this.cameraManager.camera), this.isConstrainedSafari = this.modelLoader?.isIOSWebKit || !1, this.initStereo(), this.renderer?.getPixelRatio ? this.originalPixelRatio = this.renderer.getPixelRatio() : typeof window < "u" && (this.originalPixelRatio = window.devicePixelRatio || 1), this.pixelRatioBeforeThrottle = this.originalPixelRatio, this.isVREnabled && this.initVR(), this.isAREnabled && this.initAR(), this.cameraManager.initControls(this.renderer.domElement), this.setupEventListeners(), this.startRenderLoop(), this.isInitialized = !0, typeof window < "u" && Qn.init(this), this.emit("initialized");
10419
+ this.initRenderer(), this.sceneManager = new Zr(this.config.scene), this.cameraManager = new ua(this.config.camera), this.modelLoader = new $(this.renderer), this.tilesetLoader = new Uc(this.renderer, this.cameraManager.camera), this.isConstrainedSafari = this.modelLoader?.isIOSWebKit || !1, this.initStereo(), this.renderer?.getPixelRatio ? this.originalPixelRatio = this.renderer.getPixelRatio() : typeof window < "u" && (this.originalPixelRatio = window.devicePixelRatio || 1), this.pixelRatioBeforeThrottle = this.originalPixelRatio, this.isVREnabled && this.initVR(), this.isAREnabled && this.initAR(), this.cameraManager.initControls(this.renderer.domElement), this.setupEventListeners(), this.startRenderLoop(), this.isInitialized = !0, typeof window < "u" && Tn.init(this), this.emit("initialized");
10420
10420
  } catch (e) {
10421
10421
  console.error("Failed to initialize BelowViewer:", e), this.emit("error", e);
10422
10422
  }
@@ -10444,7 +10444,7 @@ class hA extends yt {
10444
10444
  initVR() {
10445
10445
  this.dolly = new m.Group(), this.dolly.add(this.cameraManager.camera), this.sceneManager.scene.add(this.dolly);
10446
10446
  const e = this.config.audioPath || "./sound/", t = this.config.enableVRAudio === !0;
10447
- this.vrManager = new sA(this.renderer, this.cameraManager.camera, this.sceneManager.scene, e, t, this.container), this.vrManager.setControls(this.cameraManager.controls), this.config.initialPositions && this.vrManager.setInitialPositions(this.config.initialPositions), this.vrManager.onModeToggle = () => {
10447
+ this.vrManager = new iA(this.renderer, this.cameraManager.camera, this.sceneManager.scene, e, t, this.container), this.vrManager.setControls(this.cameraManager.controls), this.config.initialPositions && this.vrManager.setInitialPositions(this.config.initialPositions), this.vrManager.onModeToggle = () => {
10448
10448
  this.emit("vr-mode-toggle");
10449
10449
  }, this.vrManager.onMovementStart = () => {
10450
10450
  this.emit("vr-movement-start");
@@ -10464,7 +10464,7 @@ class hA extends yt {
10464
10464
  }
10465
10465
  initAR() {
10466
10466
  const e = this.config.ar?.settings || {};
10467
- this.arManager = new AA(
10467
+ this.arManager = new hA(
10468
10468
  this.renderer,
10469
10469
  this.cameraManager.camera,
10470
10470
  this.sceneManager.scene,
@@ -10819,7 +10819,7 @@ class hA extends yt {
10819
10819
  * @since 1.0.0
10820
10820
  */
10821
10821
  dispose() {
10822
- this.currentAbortController && this.currentAbortController.abort(), typeof window < "u" && Qn.cleanup(), this.vrManager && (this.vrManager.dispose(), this.vrManager = null), this.arManager && (this.arManager.dispose(), this.arManager = null), this.renderer && this.renderer.setAnimationLoop(null), this.loadedModels.forEach(({ model: e, tileset: t }) => {
10822
+ this.currentAbortController && this.currentAbortController.abort(), typeof window < "u" && Tn.cleanup(), this.vrManager && (this.vrManager.dispose(), this.vrManager = null), this.arManager && (this.arManager.dispose(), this.arManager = null), this.renderer && this.renderer.setAnimationLoop(null), this.loadedModels.forEach(({ model: e, tileset: t }) => {
10823
10823
  e.parent && e.parent.remove(e), t && this.tilesetLoader && this.tilesetLoader.disposeTileset(t), Ms(e);
10824
10824
  }), this.loadedModels = [], this.cameraManager && (this.cameraManager.dispose(), this.cameraManager = null), this.renderer && (this.renderer.dispose(), this.renderer.domElement && this.renderer.domElement.parentNode && this.renderer.domElement.parentNode.removeChild(this.renderer.domElement), this.renderer = null), this.modelLoader && (this.modelLoader.dispose(), this.modelLoader = null), this.tilesetLoader && (this.tilesetLoader.dispose(), this.tilesetLoader = null), window.removeEventListener("resize", this.onWindowResize.bind(this)), this.removeAllListeners(), this.isInitialized = !1;
10825
10825
  }
@@ -10933,8 +10933,8 @@ class hA extends yt {
10933
10933
  t && e.vr && this.vrManager ? this.vrManager.applyVRPositions(e) : !t && e.desktop && this.applyDesktopPositions(e.desktop);
10934
10934
  }
10935
10935
  }
10936
- const Tn = new it(), Ht = new v();
10937
- class er extends Yr {
10936
+ const Rn = new it(), Ht = new v();
10937
+ class tr extends Jr {
10938
10938
  /**
10939
10939
  * Constructs a new line segments geometry.
10940
10940
  */
@@ -11004,7 +11004,7 @@ class er extends Yr {
11004
11004
  * @return {LineSegmentsGeometry} A reference to this geometry.
11005
11005
  */
11006
11006
  fromMesh(e) {
11007
- return this.fromWireframeGeometry(new Jr(e.geometry)), this;
11007
+ return this.fromWireframeGeometry(new Wr(e.geometry)), this;
11008
11008
  }
11009
11009
  /**
11010
11010
  * Setups this line segments geometry from the given line segments.
@@ -11020,7 +11020,7 @@ class er extends Yr {
11020
11020
  computeBoundingBox() {
11021
11021
  this.boundingBox === null && (this.boundingBox = new it());
11022
11022
  const e = this.attributes.instanceStart, t = this.attributes.instanceEnd;
11023
- e !== void 0 && t !== void 0 && (this.boundingBox.setFromBufferAttribute(e), Tn.setFromBufferAttribute(t), this.boundingBox.union(Tn));
11023
+ e !== void 0 && t !== void 0 && (this.boundingBox.setFromBufferAttribute(e), Rn.setFromBufferAttribute(t), this.boundingBox.union(Rn));
11024
11024
  }
11025
11025
  computeBoundingSphere() {
11026
11026
  this.boundingSphere === null && (this.boundingSphere = new Et()), this.boundingBox === null && this.computeBoundingBox();
@@ -11048,7 +11048,7 @@ Yt.line = {
11048
11048
  // todo FIX - maybe change to totalSize
11049
11049
  };
11050
11050
  Kt.line = {
11051
- uniforms: Xn.merge([
11051
+ uniforms: Zn.merge([
11052
11052
  Yt.common,
11053
11053
  Yt.fog,
11054
11054
  Yt.line
@@ -11431,7 +11431,7 @@ Kt.line = {
11431
11431
  `
11432
11432
  )
11433
11433
  };
11434
- class ss extends Jn {
11434
+ class ss extends Wn {
11435
11435
  /**
11436
11436
  * Constructs a new line segments geometry.
11437
11437
  *
@@ -11444,7 +11444,7 @@ class ss extends Jn {
11444
11444
  constructor(e) {
11445
11445
  super({
11446
11446
  type: "LineMaterial",
11447
- uniforms: Xn.clone(Kt.line.uniforms),
11447
+ uniforms: Zn.clone(Kt.line.uniforms),
11448
11448
  vertexShader: Kt.line.vertexShader,
11449
11449
  fragmentShader: Kt.line.fragmentShader,
11450
11450
  clipping: !0
@@ -11586,12 +11586,12 @@ class ss extends Jn {
11586
11586
  this.defines && (e === !0 !== this.alphaToCoverage && (this.needsUpdate = !0), e === !0 ? this.defines.USE_ALPHA_TO_COVERAGE = "" : delete this.defines.USE_ALPHA_TO_COVERAGE);
11587
11587
  }
11588
11588
  }
11589
- const Vs = new nt(), Rn = new v(), Dn = new v(), V = new nt(), O = new nt(), Ae = new nt(), Os = new v(), Hs = new P(), H = new Wr(), Ln = new v(), qt = new it(), zt = new Et(), he = new nt();
11589
+ const Vs = new nt(), Dn = new v(), Ln = new v(), V = new nt(), O = new nt(), Ae = new nt(), Os = new v(), Hs = new P(), H = new Xr(), Fn = new v(), qt = new it(), zt = new Et(), he = new nt();
11590
11590
  let de, Pe;
11591
- function Fn(a, e, t) {
11591
+ function kn(a, e, t) {
11592
11592
  return he.set(0, 0, -e, 1).applyMatrix4(a.projectionMatrix), he.multiplyScalar(1 / he.w), he.x = Pe / t.width, he.y = Pe / t.height, he.applyMatrix4(a.projectionMatrixInverse), he.multiplyScalar(1 / he.w), Math.abs(Math.max(he.x, he.y));
11593
11593
  }
11594
- function dA(a, e) {
11594
+ function uA(a, e) {
11595
11595
  const t = a.matrixWorld, s = a.geometry, i = s.attributes.instanceStart, n = s.attributes.instanceEnd, o = Math.min(s.instanceCount, i.count);
11596
11596
  for (let r = 0, l = o; r < l; r++) {
11597
11597
  H.start.fromBufferAttribute(i, r), H.end.fromBufferAttribute(n, r), H.applyMatrix4(t);
@@ -11608,7 +11608,7 @@ function dA(a, e) {
11608
11608
  });
11609
11609
  }
11610
11610
  }
11611
- function uA(a, e, t) {
11611
+ function gA(a, e, t) {
11612
11612
  const s = e.projectionMatrix, n = a.material.resolution, o = a.matrixWorld, r = a.geometry, l = r.attributes.instanceStart, c = r.attributes.instanceEnd, A = Math.min(r.instanceCount, l.count), h = -e.near;
11613
11613
  de.at(1, Ae), Ae.w = 1, Ae.applyMatrix4(e.matrixWorldInverse), Ae.applyMatrix4(s), Ae.multiplyScalar(1 / Ae.w), Ae.x *= n.x / 2, Ae.y *= n.y / 2, Ae.z = 0, Os.copy(Ae), Hs.multiplyMatrices(e.matrixWorldInverse, o);
11614
11614
  for (let d = 0, u = A; d < u; d++) {
@@ -11623,8 +11623,8 @@ function uA(a, e, t) {
11623
11623
  }
11624
11624
  V.applyMatrix4(s), O.applyMatrix4(s), V.multiplyScalar(1 / V.w), O.multiplyScalar(1 / O.w), V.x *= n.x / 2, V.y *= n.y / 2, O.x *= n.x / 2, O.y *= n.y / 2, H.start.copy(V), H.start.z = 0, H.end.copy(O), H.end.z = 0;
11625
11625
  const p = H.closestPointToPointParameter(Os, !0);
11626
- H.at(p, Ln);
11627
- const b = st.lerp(V.z, O.z, p), E = b >= -1 && b <= 1, C = Os.distanceTo(Ln) < Pe * 0.5;
11626
+ H.at(p, Fn);
11627
+ const b = st.lerp(V.z, O.z, p), E = b >= -1 && b <= 1, C = Os.distanceTo(Fn) < Pe * 0.5;
11628
11628
  if (E && C) {
11629
11629
  H.start.fromBufferAttribute(l, d), H.end.fromBufferAttribute(c, d), H.start.applyMatrix4(o), H.end.applyMatrix4(o);
11630
11630
  const y = new v(), f = new v();
@@ -11641,14 +11641,14 @@ function uA(a, e, t) {
11641
11641
  }
11642
11642
  }
11643
11643
  }
11644
- class gA extends as {
11644
+ class pA extends as {
11645
11645
  /**
11646
11646
  * Constructs a new wide line.
11647
11647
  *
11648
11648
  * @param {LineSegmentsGeometry} [geometry] - The line geometry.
11649
11649
  * @param {LineMaterial} [material] - The line material.
11650
11650
  */
11651
- constructor(e = new er(), t = new ss({ color: Math.random() * 16777215 })) {
11651
+ constructor(e = new tr(), t = new ss({ color: Math.random() * 16777215 })) {
11652
11652
  super(e, t), this.isLineSegments2 = !0, this.type = "LineSegments2";
11653
11653
  }
11654
11654
  /**
@@ -11661,7 +11661,7 @@ class gA extends as {
11661
11661
  computeLineDistances() {
11662
11662
  const e = this.geometry, t = e.attributes.instanceStart, s = e.attributes.instanceEnd, i = new Float32Array(2 * t.count);
11663
11663
  for (let o = 0, r = 0, l = t.count; o < l; o++, r += 2)
11664
- Rn.fromBufferAttribute(t, o), Dn.fromBufferAttribute(s, o), i[r] = r === 0 ? 0 : i[r - 1], i[r + 1] = i[r] + Rn.distanceTo(Dn);
11664
+ Dn.fromBufferAttribute(t, o), Ln.fromBufferAttribute(s, o), i[r] = r === 0 ? 0 : i[r - 1], i[r + 1] = i[r] + Dn.distanceTo(Ln);
11665
11665
  const n = new Xs(i, 2, 1);
11666
11666
  return e.setAttribute("instanceDistanceStart", new Fe(n, 1, 0)), e.setAttribute("instanceDistanceEnd", new Fe(n, 1, 1)), this;
11667
11667
  }
@@ -11683,7 +11683,7 @@ class gA extends as {
11683
11683
  c = Pe * 0.5;
11684
11684
  else {
11685
11685
  const h = Math.max(i.near, zt.distanceToPoint(de.origin));
11686
- c = Fn(i, h, l.resolution);
11686
+ c = kn(i, h, l.resolution);
11687
11687
  }
11688
11688
  if (zt.radius += c, de.intersectsSphere(zt) === !1)
11689
11689
  return;
@@ -11693,16 +11693,16 @@ class gA extends as {
11693
11693
  A = Pe * 0.5;
11694
11694
  else {
11695
11695
  const h = Math.max(i.near, qt.distanceToPoint(de.origin));
11696
- A = Fn(i, h, l.resolution);
11696
+ A = kn(i, h, l.resolution);
11697
11697
  }
11698
- qt.expandByScalar(A), de.intersectsBox(qt) !== !1 && (s ? dA(this, t) : uA(this, i, t));
11698
+ qt.expandByScalar(A), de.intersectsBox(qt) !== !1 && (s ? uA(this, t) : gA(this, i, t));
11699
11699
  }
11700
11700
  onBeforeRender(e) {
11701
11701
  const t = this.material.uniforms;
11702
11702
  t && t.resolution && (e.getViewport(Vs), this.material.uniforms.resolution.value.set(Vs.z, Vs.w));
11703
11703
  }
11704
11704
  }
11705
- class oi extends er {
11705
+ class oi extends tr {
11706
11706
  /**
11707
11707
  * Constructs a new line geometry.
11708
11708
  */
@@ -11756,7 +11756,7 @@ class oi extends er {
11756
11756
  return this.setPositions(t.attributes.position.array), this;
11757
11757
  }
11758
11758
  }
11759
- class kn extends gA {
11759
+ class _n extends pA {
11760
11760
  /**
11761
11761
  * Constructs a new wide line.
11762
11762
  *
@@ -11767,7 +11767,7 @@ class kn extends gA {
11767
11767
  super(e, t), this.isLine2 = !0, this.type = "Line2";
11768
11768
  }
11769
11769
  }
11770
- class pA {
11770
+ class fA {
11771
11771
  /**
11772
11772
  * Set the objects to use for raycasting during measurement
11773
11773
  *
@@ -11971,7 +11971,7 @@ class pA {
11971
11971
  this.desktopMeasurementPoints[1].position.x,
11972
11972
  this.desktopMeasurementPoints[1].position.y,
11973
11973
  this.desktopMeasurementPoints[1].position.z
11974
- ]), this.desktopMeasurementLine = new kn(e, this.desktopLineMaterial), this.desktopMeasurementLine.computeLineDistances(), this.scene.add(this.desktopMeasurementLine);
11974
+ ]), this.desktopMeasurementLine = new _n(e, this.desktopLineMaterial), this.desktopMeasurementLine.computeLineDistances(), this.scene.add(this.desktopMeasurementLine);
11975
11975
  const t = this.desktopMeasurementPoints[0].position.distanceTo(this.desktopMeasurementPoints[1].position);
11976
11976
  if (this.createMeasurementDisplay(t), this.measurementSprite) {
11977
11977
  const s = new m.Vector3();
@@ -12121,7 +12121,7 @@ class pA {
12121
12121
  t.x,
12122
12122
  t.y,
12123
12123
  t.z
12124
- ]), this.unifiedMeasurementLine = new kn(s, this.desktopLineMaterial), this.unifiedMeasurementLine.computeLineDistances(), this.unifiedMeasurementLine.userData.isMeasurementLine = !0, this.scene.add(this.unifiedMeasurementLine);
12124
+ ]), this.unifiedMeasurementLine = new _n(s, this.desktopLineMaterial), this.unifiedMeasurementLine.computeLineDistances(), this.unifiedMeasurementLine.userData.isMeasurementLine = !0, this.scene.add(this.unifiedMeasurementLine);
12125
12125
  const i = e.distanceTo(t);
12126
12126
  this.createMeasurementDisplay(i);
12127
12127
  const n = i * 100 <= 20 ? 0.125 : 0.5;
@@ -12309,7 +12309,7 @@ class pA {
12309
12309
  }
12310
12310
  }
12311
12311
  }
12312
- class Ci {
12312
+ class Ei {
12313
12313
  constructor(e, t = {}) {
12314
12314
  this.vrManager = e, this.isComfortMode = !1, this._iconRendered = !1, this.lastToggleAt = 0, this.options = {
12315
12315
  containerId: t.containerId || "modelSelector",
@@ -12603,10 +12603,10 @@ class Ci {
12603
12603
  this.vrManager = null;
12604
12604
  }
12605
12605
  static create(e, t = {}) {
12606
- return new Ci(e, t);
12606
+ return new Ei(e, t);
12607
12607
  }
12608
12608
  }
12609
- class fA {
12609
+ class mA {
12610
12610
  constructor(e) {
12611
12611
  this.scene = e, this.particleBounds = {
12612
12612
  min: new m.Vector3(-50, -25, -50),
@@ -12808,7 +12808,7 @@ class fA {
12808
12808
  this.particles && (this.scene.remove(this.particles), this.particles.geometry && this.particles.geometry.dispose(), this.particles.material && this.particles.material.dispose(), this.particles = null);
12809
12809
  }
12810
12810
  }
12811
- class mA {
12811
+ class bA {
12812
12812
  constructor(e) {
12813
12813
  this.scene = e, this.controllerSpotlight = null, this.spotlightTarget = null, this.isQuest2 = !1, this.isQuest3 = !1, this.detectQuestDevice(), this.createSpotlight();
12814
12814
  }
@@ -12915,7 +12915,7 @@ class mA {
12915
12915
  this.controllerSpotlight && (this.scene.remove(this.controllerSpotlight), this.controllerSpotlight = null), this.spotlightTarget && (this.scene.remove(this.spotlightTarget), this.spotlightTarget = null);
12916
12916
  }
12917
12917
  }
12918
- class bA {
12918
+ class CA {
12919
12919
  constructor(e) {
12920
12920
  this.scene = e, this.overheadLight = null, this.clearModeDirectionalLight = null, this.clearModeHemisphereLight = null, this.isTransitioning = !1, this.currentMode = "survey", this.pendingAnimations = /* @__PURE__ */ new Set(), this.isDisposed = !1, this.initializeLighting();
12921
12921
  }
@@ -13009,9 +13009,9 @@ class bA {
13009
13009
  });
13010
13010
  }
13011
13011
  }
13012
- class CA {
13012
+ class EA {
13013
13013
  constructor(e, t, s) {
13014
- this.scene = e, this.renderer = t, this.camera = s, this.isDiveModeEnabled = !1, this.currentVRMode = null, this.lighting = new bA(e), this.particles = new fA(e), this.torch = new mA(e), this.isQuest2 = !1, this.isQuest3 = !1, this._fallbackHandedness = /* @__PURE__ */ new Map(), this.detectQuestDevice(), this.applyModeSettings();
13014
+ this.scene = e, this.renderer = t, this.camera = s, this.isDiveModeEnabled = !1, this.currentVRMode = null, this.lighting = new CA(e), this.particles = new mA(e), this.torch = new bA(e), this.isQuest2 = !1, this.isQuest3 = !1, this._fallbackHandedness = /* @__PURE__ */ new Map(), this.detectQuestDevice(), this.applyModeSettings();
13015
13015
  }
13016
13016
  /**
13017
13017
  * Toggle between dive and survey modes
@@ -13202,7 +13202,7 @@ class CA {
13202
13202
  this.lighting.dispose(), this.particles.dispose(), this.torch.dispose();
13203
13203
  }
13204
13204
  }
13205
- class EA extends yt {
13205
+ class yA extends yt {
13206
13206
  /**
13207
13207
  * @param {Object} options
13208
13208
  * @param {HTMLElement} options.domElement - Element used for pointer lock
@@ -13310,7 +13310,12 @@ class EA extends yt {
13310
13310
  this.pointerLocked && this.exitFlyMode();
13311
13311
  }
13312
13312
  }
13313
- class PA extends yt {
13313
+ class ri extends yt {
13314
+ static _isEditableTarget(e) {
13315
+ if (!(e instanceof HTMLElement)) return !1;
13316
+ const t = e.tagName;
13317
+ return t === "INPUT" || t === "SELECT" || t === "TEXTAREA" || e.isContentEditable;
13318
+ }
13314
13319
  /**
13315
13320
  * Creates a new ModelViewer instance
13316
13321
  *
@@ -13365,7 +13370,7 @@ class PA extends yt {
13365
13370
  ...this.config.audioPath && { audioPath: this.config.audioPath },
13366
13371
  ...typeof this.config.enableVRAudio < "u" && { enableVRAudio: this.config.enableVRAudio }
13367
13372
  };
13368
- if (this.belowViewer = new hA(this.container, e), this.setupEventForwarding(), this.setupRecoveryHandlers(), this.belowViewer.on("initialized", () => {
13373
+ if (this.belowViewer = new dA(this.container, e), this.setupEventForwarding(), this.setupRecoveryHandlers(), this.belowViewer.on("initialized", () => {
13369
13374
  this.setupRecoveryHandlers(), this.setupFocusInteraction(), this._maybeAttachMeasurementSystem(), this._maybeAttachVRComfortGlyph(), this._maybeAttachDiveSystem(), this._maybeAttachScreenshotButton(), this._maybeAttachFullscreenButton(), this._maybeAttachFlyControls();
13370
13375
  }), this.belowViewer.isInitialized && (this.setupRecoveryHandlers(), this.setupFocusInteraction(), this._maybeAttachMeasurementSystem(), this._maybeAttachVRComfortGlyph(), this._maybeAttachDiveSystem(), this._maybeAttachScreenshotButton(), this._maybeAttachFullscreenButton(), this._maybeAttachFlyControls()), Object.keys(this.config.models).length > 0 && (this.createUI(), this.populateDropdown(), this.config.autoLoadFirst)) {
13371
13376
  const t = Object.keys(this.config.models)[0];
@@ -13374,7 +13379,7 @@ class PA extends yt {
13374
13379
  }
13375
13380
  _maybeAttachMeasurementSystem() {
13376
13381
  if (!this.config.enableMeasurement || this.measurementSystem) return;
13377
- this.measurementSystem = new pA({
13382
+ this.measurementSystem = new fA({
13378
13383
  scene: this.belowViewer.sceneManager.scene,
13379
13384
  camera: this.belowViewer.cameraManager.camera,
13380
13385
  renderer: this.belowViewer.renderer,
@@ -13418,7 +13423,7 @@ class PA extends yt {
13418
13423
  }
13419
13424
  async _maybeAttachVRComfortGlyph() {
13420
13425
  if (!this.config.enableVRComfortGlyph || this.comfortGlyph || !this.belowViewer.vrManager || !this.belowViewer.vrManager.vrCore || (await this.belowViewer.vrManager.vrCore.checkVRSupported(), !this.belowViewer.vrManager.vrCore.isVRSupported)) return;
13421
- this.comfortGlyph = new Ci(this.belowViewer.vrManager, {
13426
+ this.comfortGlyph = new Ei(this.belowViewer.vrManager, {
13422
13427
  position: "bottom-right",
13423
13428
  offsetX: 20,
13424
13429
  offsetY: 70
@@ -13456,24 +13461,26 @@ class PA extends yt {
13456
13461
  };
13457
13462
  }
13458
13463
  document.addEventListener("keydown", (i) => {
13459
- i.code === "KeyC" && (i.ctrlKey || i.metaKey) && (i.preventDefault(), this.comfortGlyph && this.comfortGlyph.toggle());
13464
+ ri._isEditableTarget(i.target) || i.code === "KeyC" && (i.ctrlKey || i.metaKey) && (i.preventDefault(), this.comfortGlyph && this.comfortGlyph.toggle());
13460
13465
  }), window.addEventListener("beforeunload", () => this.comfortGlyph && this.comfortGlyph.dispose());
13461
13466
  }
13462
13467
  _maybeAttachDiveSystem() {
13463
13468
  if (!this.config.enableDiveSystem || this.diveSystem) return;
13464
- this.diveSystem = new CA(
13469
+ this.diveSystem = new EA(
13465
13470
  this.belowViewer.sceneManager.scene,
13466
13471
  this.belowViewer.renderer,
13467
13472
  this.belowViewer.cameraManager.camera
13468
13473
  ), setTimeout(() => {
13469
13474
  this.diveSystem.initializeToggleSwitch();
13470
13475
  }, 100), document.addEventListener("keydown", (t) => {
13471
- if (t.code === "KeyZ" && !t.ctrlKey && !t.metaKey && !t.altKey) {
13472
- if (this.belowViewer?.arManager?.isActive?.())
13473
- return;
13474
- t.preventDefault(), this.diveSystem && this.diveSystem.toggleDiveMode();
13476
+ if (!ri._isEditableTarget(t.target)) {
13477
+ if (t.code === "KeyZ" && !t.ctrlKey && !t.metaKey && !t.altKey) {
13478
+ if (this.belowViewer?.arManager?.isActive?.())
13479
+ return;
13480
+ t.preventDefault(), this.diveSystem && this.diveSystem.toggleDiveMode();
13481
+ }
13482
+ t.code === "KeyH" && !t.ctrlKey && !t.metaKey && !t.altKey && (t.preventDefault(), this.takeScreenshot());
13475
13483
  }
13476
- t.code === "KeyH" && !t.ctrlKey && !t.metaKey && !t.altKey && (t.preventDefault(), this.takeScreenshot());
13477
13484
  });
13478
13485
  const e = (t) => {
13479
13486
  if (this.diveSystem) {
@@ -13506,7 +13513,7 @@ class PA extends yt {
13506
13513
  }
13507
13514
  _maybeAttachFlyControls() {
13508
13515
  if (!this.config.enableFlyControls || this.flyControls || !this.belowViewer?.cameraManager || !this.belowViewer?.renderer) return;
13509
- this.flyControls = new EA({
13516
+ this.flyControls = new yA({
13510
13517
  domElement: this.belowViewer.renderer.domElement,
13511
13518
  camera: this.belowViewer.cameraManager.camera,
13512
13519
  controls: this.belowViewer.cameraManager.controls,
@@ -14423,16 +14430,16 @@ class PA extends yt {
14423
14430
  }
14424
14431
  }
14425
14432
  export {
14426
- hA as BelowViewer,
14427
- da as Camera,
14433
+ dA as BelowViewer,
14434
+ ua as Camera,
14428
14435
  cs as ConfigValidator,
14429
14436
  yt as EventSystem,
14430
- EA as FlyControls,
14431
- kn as Line2,
14437
+ yA as FlyControls,
14438
+ _n as Line2,
14432
14439
  oi as LineGeometry,
14433
14440
  ss as LineMaterial,
14434
14441
  $ as ModelLoader,
14435
- PA as ModelViewer,
14436
- Xr as Scene,
14437
- sA as VRManager
14442
+ ri as ModelViewer,
14443
+ Zr as Scene,
14444
+ iA as VRManager
14438
14445
  };