@jdultra/threedtiles 13.0.12 → 13.0.14

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.
@@ -1,24 +1,24 @@
1
1
  var Wt = Object.defineProperty;
2
2
  var Xt = (o, e, a) => e in o ? Wt(o, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : o[e] = a;
3
3
  var ge = (o, e, a) => Xt(o, typeof e != "symbol" ? e + "" : e, a);
4
- import * as m from "three";
5
- import { Matrix3 as Ma, Vector3 as S, Box3 as Ra, Matrix4 as De, Ray as Zt, BufferGeometry as Sa, BufferAttribute as le, TrianglesDrawMode as $t, TriangleFanDrawMode as ma, TriangleStripDrawMode as ut, Loader as Fa, LoaderUtils as Ne, FileLoader as Be, Color as he, LinearSRGBColorSpace as K, SpotLight as eA, PointLight as aA, DirectionalLight as tA, MeshBasicMaterial as Te, SRGBColorSpace as re, MeshPhysicalMaterial as ee, Vector2 as Ct, Quaternion as Bt, InstancedMesh as AA, InstancedBufferAttribute as Qa, Object3D as pt, TextureLoader as iA, ImageBitmapLoader as sA, InterleavedBuffer as rA, InterleavedBufferAttribute as nA, LinearFilter as He, LinearMipmapLinearFilter as va, RepeatWrapping as ya, NearestFilter as M, PointsMaterial as oA, Material as ea, LineBasicMaterial as cA, MeshStandardMaterial as Ua, DoubleSide as dA, PropertyBinding as bA, SkinnedMesh as lA, Mesh as wa, LineSegments as hA, Line as gA, LineLoop as fA, Points as IA, Group as aa, PerspectiveCamera as uA, MathUtils as CA, OrthographicCamera as Et, Skeleton as BA, AnimationClip as pA, Bone as EA, InterpolateLinear as mt, ColorManagement as xa, NearestMipmapNearestFilter as mA, LinearMipmapNearestFilter as QA, NearestMipmapLinearFilter as yA, ClampToEdgeWrapping as wA, MirroredRepeatWrapping as xA, InterpolateDiscrete as kA, FrontSide as Ze, Texture as Na, VectorKeyframeTrack as Pa, NumberKeyframeTrack as _a, QuaternionKeyframeTrack as Ha, Sphere as DA, Interpolant as jA, CompressedCubeTexture as MA, CompressedArrayTexture as RA, CompressedTexture as qa, RGBAFormat as $, RGBA_ASTC_4x4_Format as Qt, RGB_BPTC_UNSIGNED_Format as SA, RGBA_BPTC_Format as FA, RGBA_ETC2_EAC_Format as vA, RGBA_PVRTC_4BPPV1_Format as TA, RGBA_S3TC_DXT5_Format as LA, RGB_ETC1_Format as GA, RGB_ETC2_Format as UA, RGB_PVRTC_4BPPV1_Format as NA, RGBA_S3TC_DXT1_Format as PA, UnsignedByteType as X, HalfFloatType as we, FloatType as F, DataTexture as Le, Data3DTexture as _A, NoColorSpace as HA, RGFormat as Ge, RedFormat as Ue, RGBA_ASTC_6x6_Format as Oa, WebGL3DRenderTarget as ne, ShaderMaterial as ta, AlwaysDepth as qA, InstancedBufferGeometry as Ja, DynamicDrawUsage as Ka, Scene as OA, PlaneGeometry as JA } from "three";
6
- class Zi {
4
+ import * as E from "three";
5
+ import { Matrix3 as Ra, Vector3 as S, Box3 as Sa, Matrix4 as je, Ray as Zt, BufferGeometry as va, BufferAttribute as le, TrianglesDrawMode as $t, TriangleFanDrawMode as Qa, TriangleStripDrawMode as It, Loader as Fa, LoaderUtils as Pe, FileLoader as Be, Color as he, LinearSRGBColorSpace as K, SpotLight as eA, PointLight as aA, DirectionalLight as tA, MeshBasicMaterial as Le, SRGBColorSpace as re, MeshPhysicalMaterial as ee, Vector2 as pt, Quaternion as Ct, InstancedMesh as AA, InstancedBufferAttribute as ya, Object3D as Bt, TextureLoader as iA, ImageBitmapLoader as sA, InterleavedBuffer as rA, InterleavedBufferAttribute as nA, LinearFilter as Ce, LinearMipmapLinearFilter as $e, RepeatWrapping as wa, NearestFilter as M, PointsMaterial as oA, Material as aa, LineBasicMaterial as cA, MeshStandardMaterial as Ua, DoubleSide as dA, PropertyBinding as bA, SkinnedMesh as lA, Mesh as xa, LineSegments as hA, Line as gA, LineLoop as fA, Points as uA, Group as ta, PerspectiveCamera as IA, MathUtils as pA, OrthographicCamera as mt, Skeleton as CA, AnimationClip as BA, Bone as mA, InterpolateLinear as Et, ColorManagement as ka, NearestMipmapNearestFilter as EA, LinearMipmapNearestFilter as QA, NearestMipmapLinearFilter as yA, ClampToEdgeWrapping as wA, MirroredRepeatWrapping as xA, InterpolateDiscrete as kA, FrontSide as Ze, Texture as Na, VectorKeyframeTrack as Pa, NumberKeyframeTrack as _a, QuaternionKeyframeTrack as Ha, Sphere as DA, Interpolant as jA, CompressedCubeTexture as MA, CompressedArrayTexture as RA, CompressedTexture as qa, RGBAFormat as $, RGBA_ASTC_4x4_Format as Qt, RGB_BPTC_UNSIGNED_Format as SA, RGBA_BPTC_Format as vA, RGBA_ETC2_EAC_Format as FA, RGBA_PVRTC_4BPPV1_Format as TA, RGBA_S3TC_DXT5_Format as LA, RGB_ETC1_Format as GA, RGB_ETC2_Format as UA, RGB_PVRTC_4BPPV1_Format as NA, RGBA_S3TC_DXT1_Format as PA, UnsignedByteType as X, HalfFloatType as xe, FloatType as v, DataTexture as Ge, Data3DTexture as _A, NoColorSpace as HA, RGFormat as Ue, RedFormat as Ne, RGBA_ASTC_6x6_Format as Oa, WebGL3DRenderTarget as ne, ShaderMaterial as Aa, InstancedBufferGeometry as Ja, DynamicDrawUsage as Ka, Scene as qA, PlaneGeometry as OA } from "three";
6
+ class $i {
7
7
  constructor() {
8
- this.cullMap = [], this.cullMaterial = new m.MeshBasicMaterial({ vertexColors: !0 }), this.cullMaterial.side = m.FrontSide, this.cullTarget = this._createCullTarget(), this.cullPixels = new Uint8Array(4 * this.cullTarget.width * this.cullTarget.height);
8
+ this.cullMap = [], this.cullMaterial = new E.MeshBasicMaterial({ vertexColors: !0 }), this.cullMaterial.side = E.FrontSide, this.cullTarget = this._createCullTarget(), this.cullPixels = new Uint8Array(4 * this.cullTarget.width * this.cullTarget.height);
9
9
  }
10
10
  setSide(e) {
11
11
  this.cullMaterial.side = e;
12
12
  }
13
13
  _createCullTarget() {
14
- const e = new m.WebGLRenderTarget(Math.floor(0.05 * window.innerWidth), Math.floor(0.05 * window.innerHeight));
15
- return e.texture.format = m.RGBAFormat, e.texture.colorSpace = m.LinearSRGBColorSpace, e.texture.minFilter = m.NearestFilter, e.texture.magFilter = m.NearestFilter, e.texture.generateMipmaps = !1, e.stencilBuffer = !1, e.depthBuffer = !0, e.depthTexture = new m.DepthTexture(), e.depthTexture.format = m.DepthFormat, e.depthTexture.type = m.UnsignedShortType, e;
14
+ const e = new E.WebGLRenderTarget(Math.floor(0.05 * window.innerWidth), Math.floor(0.05 * window.innerHeight));
15
+ return e.texture.format = E.RGBAFormat, e.texture.colorSpace = E.LinearSRGBColorSpace, e.texture.minFilter = E.NearestFilter, e.texture.magFilter = E.NearestFilter, e.texture.generateMipmaps = !1, e.stencilBuffer = !1, e.depthBuffer = !0, e.depthTexture = new E.DepthTexture(), e.depthTexture.format = E.DepthFormat, e.depthTexture.type = E.UnsignedShortType, e;
16
16
  }
17
17
  update(e, a, t) {
18
18
  let A = a.getRenderTarget(), i = e.overrideMaterial;
19
19
  e.overrideMaterial = this.cullMaterial, a.setRenderTarget(this.cullTarget), a.render(e, t), e.overrideMaterial = i, a.setRenderTarget(A), a.readRenderTargetPixels(this.cullTarget, 0, 0, this.cullTarget.width, this.cullTarget.height, this.cullPixels), this.cullMap = [];
20
20
  for (let s = 0; s < this.cullPixels.length; s += 4) {
21
- const r = m.MathUtils.clamp(this.cullPixels[s], 0, 255) << 16 ^ m.MathUtils.clamp(this.cullPixels[s + 1], 0, 255) << 8 ^ m.MathUtils.clamp(this.cullPixels[s + 2], 0, 255);
21
+ const r = E.MathUtils.clamp(this.cullPixels[s], 0, 255) << 16 ^ E.MathUtils.clamp(this.cullPixels[s + 1], 0, 255) << 8 ^ E.MathUtils.clamp(this.cullPixels[s + 2], 0, 255);
22
22
  this.cullMap[r] = !0;
23
23
  }
24
24
  }
@@ -26,10 +26,10 @@ class Zi {
26
26
  return this.cullMap[e];
27
27
  }
28
28
  }
29
- const J = new Ma(), G = new S(), za = new S(), Va = new Ra(), Ke = new De(), Ya = new De(), Wa = new Zt();
29
+ const J = new Ra(), G = new S(), za = new S(), Va = new Sa(), Ke = new je(), Ya = new je(), Wa = new Zt();
30
30
  class se {
31
31
  constructor(e) {
32
- this.center = new S(e[0], e[1], e[2]), this.e1 = new S(e[3], e[4], e[5]), this.e2 = new S(e[6], e[7], e[8]), this.e3 = new S(e[9], e[10], e[11]), this.halfSize = new S(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new Ma(), this.rotationMatrix.set(this.e1.x, this.e1.y, this.e1.z, this.e2.x, this.e2.y, this.e2.z, this.e3.x, this.e3.y, this.e3.z);
32
+ this.center = new S(e[0], e[1], e[2]), this.e1 = new S(e[3], e[4], e[5]), this.e2 = new S(e[6], e[7], e[8]), this.e3 = new S(e[9], e[10], e[11]), this.halfSize = new S(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new Ra(), this.rotationMatrix.set(this.e1.x, this.e1.y, this.e1.z, this.e2.x, this.e2.y, this.e2.z, this.e3.x, this.e3.y, this.e3.z);
33
33
  }
34
34
  copy(e) {
35
35
  this.center.copy(e.center), this.rotationMatrix.copy(e.rotationMatrix), this.halfSize.copy(e.halfSize);
@@ -159,14 +159,14 @@ class yt {
159
159
  return Array.from(this.keys()).map((a) => ({ key: a, value: this.get(a) }));
160
160
  }
161
161
  }
162
- const KA = new TextDecoder();
162
+ const JA = new TextDecoder();
163
163
  class wt {
164
164
  constructor(e, a, t, A) {
165
165
  this.buffer = e, this.binOffset = a + t, this.binLength = A;
166
166
  let i = null;
167
167
  if (t !== 0) try {
168
168
  const s = new Uint8Array(e, a, t);
169
- i = JSON.parse(KA.decode(s));
169
+ i = JSON.parse(JA.decode(s));
170
170
  } catch {
171
171
  i = {};
172
172
  }
@@ -183,10 +183,10 @@ class wt {
183
183
  if (s instanceof Object) {
184
184
  if (Array.isArray(s)) return s;
185
185
  {
186
- const { buffer: r, binOffset: c, binLength: n } = this, d = s.byteOffset || 0, b = s.type || A, l = s.componentType || t;
186
+ const { buffer: r, binOffset: c, binLength: n } = this, b = s.byteOffset || 0, d = s.type || A, l = s.componentType || t;
187
187
  if ("type" in s && A && s.type !== A) throw new Error("FeatureTable: Specified type does not match expected type.");
188
188
  let g, h;
189
- switch (b) {
189
+ switch (d) {
190
190
  case "SCALAR":
191
191
  g = 1;
192
192
  break;
@@ -202,7 +202,7 @@ class wt {
202
202
  default:
203
203
  throw new Error(`FeatureTable : Feature type not provided for "${e}".`);
204
204
  }
205
- const f = c + d, I = a * g;
205
+ const f = c + b, I = a * g;
206
206
  switch (l) {
207
207
  case "BYTE":
208
208
  h = new Int8Array(r, f, I);
@@ -238,7 +238,7 @@ class wt {
238
238
  return s;
239
239
  }
240
240
  }
241
- class zA extends wt {
241
+ class KA extends wt {
242
242
  constructor(e, a, t, A, i) {
243
243
  super(e, t, A, i), this.batchSize = a;
244
244
  }
@@ -249,31 +249,31 @@ class zA extends wt {
249
249
  function Xa(o) {
250
250
  let e, a, t, A = -1, i = 0;
251
251
  for (let n = 0; n < o.length; ++n) {
252
- const d = o[n];
253
- if (e === void 0 && (e = d.array.constructor), e !== d.array.constructor) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
254
- if (a === void 0 && (a = d.itemSize), a !== d.itemSize) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
255
- if (t === void 0 && (t = d.normalized), t !== d.normalized) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
256
- if (A === -1 && (A = d.gpuType), A !== d.gpuType) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
257
- i += d.count * a;
252
+ const b = o[n];
253
+ if (e === void 0 && (e = b.array.constructor), e !== b.array.constructor) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
254
+ if (a === void 0 && (a = b.itemSize), a !== b.itemSize) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
255
+ if (t === void 0 && (t = b.normalized), t !== b.normalized) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
256
+ if (A === -1 && (A = b.gpuType), A !== b.gpuType) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
257
+ i += b.count * a;
258
258
  }
259
259
  const s = new e(i), r = new le(s, a, t);
260
260
  let c = 0;
261
261
  for (let n = 0; n < o.length; ++n) {
262
- const d = o[n];
263
- if (d.isInterleavedBufferAttribute) {
264
- const b = c / a;
265
- for (let l = 0, g = d.count; l < g; l++) for (let h = 0; h < a; h++) {
266
- const f = d.getComponent(l, h);
267
- r.setComponent(l + b, h, f);
262
+ const b = o[n];
263
+ if (b.isInterleavedBufferAttribute) {
264
+ const d = c / a;
265
+ for (let l = 0, g = b.count; l < g; l++) for (let h = 0; h < a; h++) {
266
+ const f = b.getComponent(l, h);
267
+ r.setComponent(l + d, h, f);
268
268
  }
269
- } else s.set(d.array, c);
270
- c += d.count * a;
269
+ } else s.set(b.array, c);
270
+ c += b.count * a;
271
271
  }
272
272
  return A !== void 0 && (r.gpuType = A), r;
273
273
  }
274
274
  function Za(o, e) {
275
275
  if (e === $t) return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), o;
276
- if (e === ma || e === ut) {
276
+ if (e === Qa || e === It) {
277
277
  let a = o.getIndex();
278
278
  if (a === null) {
279
279
  const s = [], r = o.getAttribute("position");
@@ -282,7 +282,7 @@ function Za(o, e) {
282
282
  o.setIndex(s), a = o.getIndex();
283
283
  }
284
284
  const t = a.count - 2, A = [];
285
- if (e === ma) for (let s = 1; s <= t; s++) A.push(a.getX(0)), A.push(a.getX(s)), A.push(a.getX(s + 1));
285
+ if (e === Qa) for (let s = 1; s <= t; s++) A.push(a.getX(0)), A.push(a.getX(s)), A.push(a.getX(s + 1));
286
286
  else for (let s = 0; s < t; s++) s % 2 == 0 ? (A.push(a.getX(s)), A.push(a.getX(s + 1)), A.push(a.getX(s + 2))) : (A.push(a.getX(s + 2)), A.push(a.getX(s + 1)), A.push(a.getX(s)));
287
287
  A.length / 3 !== t && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
288
288
  const i = o.clone();
@@ -297,42 +297,42 @@ class xt {
297
297
  this.gltfLoader.hasDracoLoader && !this.gltfLoader.dracoLoader || this.gltfLoader.hasKTX2Loader && !this.gltfLoader.ktx2Loader || (clearInterval(a), e());
298
298
  }, 10);
299
299
  }));
300
- this.gltfLoader = e, this.tempMatrix = new m.Matrix4(), this.zUpToYUpMatrix = new m.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1);
300
+ this.gltfLoader = e, this.tempMatrix = new E.Matrix4(), this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1);
301
301
  }
302
302
  parseB3DM(e, a, t, A) {
303
303
  const i = this, s = new DataView(e), r = String.fromCharCode(s.getUint8(0)) + String.fromCharCode(s.getUint8(1)) + String.fromCharCode(s.getUint8(2)) + String.fromCharCode(s.getUint8(3));
304
304
  console.assert(r === "b3dm");
305
305
  const c = s.getUint32(8, !0);
306
306
  console.assert(c === e.byteLength);
307
- const n = s.getUint32(12, !0), d = s.getUint32(16, !0), b = s.getUint32(20, !0), l = s.getUint32(24, !0), g = new wt(e, 28, n, d), h = 28 + n + d;
308
- new zA(e, g.getData("BATCH_LENGTH"), h, b, l);
309
- const f = h + b + l, I = new Uint8Array(e, f, c - f).slice().buffer;
310
- return new Promise(async (u, C) => {
311
- await this.checkLoaderInitialized(), this.gltfLoader.parse(I, null, (p) => {
312
- const B = g.getData("RTC_CENTER");
313
- B ? (this.tempMatrix.makeTranslation(B[0], B[1], B[2]), p.scene.applyMatrix4(this.tempMatrix)) : p.userData.gltfExtensions && p.userData.gltfExtensions.CESIUM_RTC && (this.tempMatrix.makeTranslation(p.userData.gltfExtensions.CESIUM_RTC.center[0], p.userData.gltfExtensions.CESIUM_RTC.center[1], p.userData.gltfExtensions.CESIUM_RTC.center[2]), p.scene.applyMatrix4(this.tempMatrix)), t && p.scene.applyMatrix4(i.zUpToYUpMatrix), p.scene.asset = p.asset, p.scene.traverse((y) => {
314
- y.isMesh && (A && y.applyMatrix4(i.zUpToYUpMatrix), a && a(y));
315
- }), u(p.scene);
316
- }, (p) => {
317
- console.error(p);
307
+ const n = s.getUint32(12, !0), b = s.getUint32(16, !0), d = s.getUint32(20, !0), l = s.getUint32(24, !0), g = new wt(e, 28, n, b), h = 28 + n + b;
308
+ new KA(e, g.getData("BATCH_LENGTH"), h, d, l);
309
+ const f = h + d + l, I = new Uint8Array(e, f, c - f).slice().buffer;
310
+ return new Promise(async (u, p) => {
311
+ await this.checkLoaderInitialized(), this.gltfLoader.parse(I, null, (B) => {
312
+ const C = g.getData("RTC_CENTER");
313
+ C ? (this.tempMatrix.makeTranslation(C[0], C[1], C[2]), B.scene.applyMatrix4(this.tempMatrix)) : B.userData.gltfExtensions && B.userData.gltfExtensions.CESIUM_RTC && (this.tempMatrix.makeTranslation(B.userData.gltfExtensions.CESIUM_RTC.center[0], B.userData.gltfExtensions.CESIUM_RTC.center[1], B.userData.gltfExtensions.CESIUM_RTC.center[2]), B.scene.applyMatrix4(this.tempMatrix)), t && B.scene.applyMatrix4(i.zUpToYUpMatrix), B.scene.asset = B.asset, B.scene.traverse((w) => {
314
+ w.isMesh && (A && w.applyMatrix4(i.zUpToYUpMatrix), a && a(w));
315
+ }), u(B.scene);
316
+ }, (B) => {
317
+ console.error(B);
318
318
  });
319
319
  });
320
320
  }
321
321
  parseB3DMInstanced(e, a, t, A, i) {
322
322
  return this.parseB3DM(e, a, A, i).then((s) => {
323
323
  let r, c = [], n = [];
324
- s.updateWorldMatrix(!1, !0), s.traverse((b) => {
325
- b.isMesh && (b.geometry.applyMatrix4(b.matrixWorld), c.push(b.geometry), n.push(b.material));
324
+ s.updateWorldMatrix(!1, !0), s.traverse((d) => {
325
+ d.isMesh && (d.geometry.applyMatrix4(d.matrixWorld), c.push(d.geometry), n.push(d.material));
326
326
  });
327
- let d = function(b) {
327
+ let b = function(d) {
328
328
  let l = /* @__PURE__ */ new Set();
329
- return b.forEach((h) => {
329
+ return d.forEach((h) => {
330
330
  for (let f in h.attributes) l.add(f);
331
- }), b.forEach((h) => {
331
+ }), d.forEach((h) => {
332
332
  l.forEach((f) => {
333
333
  if (!h.attributes[f]) {
334
- const I = function(C) {
335
- switch (C) {
334
+ const I = function(p) {
335
+ switch (p) {
336
336
  case "position":
337
337
  case "normal":
338
338
  case "color":
@@ -341,92 +341,92 @@ class xt {
341
341
  case "uv2":
342
342
  return 2;
343
343
  default:
344
- throw new Error(`Unknown attribute ${C}`);
344
+ throw new Error(`Unknown attribute ${p}`);
345
345
  }
346
346
  }(f), u = new Float32Array(I * h.getAttribute("position").count).fill(0);
347
- h.setAttribute(f, new m.BufferAttribute(u, I));
347
+ h.setAttribute(f, new E.BufferAttribute(u, I));
348
348
  }
349
349
  });
350
350
  }), function(h, f = !1) {
351
- const I = h[0].index !== null, u = new Set(Object.keys(h[0].attributes)), C = new Set(Object.keys(h[0].morphAttributes)), p = {}, B = {}, y = h[0].morphTargetsRelative, x = new Sa();
352
- let w = 0;
353
- for (let E = 0; E < h.length; ++E) {
354
- const Q = h[E];
351
+ const I = h[0].index !== null, u = new Set(Object.keys(h[0].attributes)), p = new Set(Object.keys(h[0].morphAttributes)), B = {}, C = {}, w = h[0].morphTargetsRelative, x = new va();
352
+ let y = 0;
353
+ for (let m = 0; m < h.length; ++m) {
354
+ const Q = h[m];
355
355
  let k = 0;
356
- if (I !== (Q.index !== null)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
356
+ if (I !== (Q.index !== null)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
357
357
  for (const D in Q.attributes) {
358
- if (!u.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + '. All geometries must have compatible attributes; make sure "' + D + '" attribute exists among all geometries, or in none of them.'), null;
359
- p[D] === void 0 && (p[D] = []), p[D].push(Q.attributes[D]), k++;
358
+ if (!u.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + '. All geometries must have compatible attributes; make sure "' + D + '" attribute exists among all geometries, or in none of them.'), null;
359
+ B[D] === void 0 && (B[D] = []), B[D].push(Q.attributes[D]), k++;
360
360
  }
361
- if (k !== u.size) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + ". Make sure all geometries have the same number of attributes."), null;
362
- if (y !== Q.morphTargetsRelative) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
361
+ if (k !== u.size) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". Make sure all geometries have the same number of attributes."), null;
362
+ if (w !== Q.morphTargetsRelative) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
363
363
  for (const D in Q.morphAttributes) {
364
- if (!C.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + ". .morphAttributes must be consistent throughout all geometries."), null;
365
- B[D] === void 0 && (B[D] = []), B[D].push(Q.morphAttributes[D]);
364
+ if (!p.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". .morphAttributes must be consistent throughout all geometries."), null;
365
+ C[D] === void 0 && (C[D] = []), C[D].push(Q.morphAttributes[D]);
366
366
  }
367
367
  if (f) {
368
368
  let D;
369
369
  if (I) D = Q.index.count;
370
370
  else {
371
- if (Q.attributes.position === void 0) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + E + ". The geometry must have either an index or a position attribute"), null;
371
+ if (Q.attributes.position === void 0) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". The geometry must have either an index or a position attribute"), null;
372
372
  D = Q.attributes.position.count;
373
373
  }
374
- x.addGroup(w, D, E), w += D;
374
+ x.addGroup(y, D, m), y += D;
375
375
  }
376
376
  }
377
377
  if (I) {
378
- let E = 0;
378
+ let m = 0;
379
379
  const Q = [];
380
380
  for (let k = 0; k < h.length; ++k) {
381
381
  const D = h[k].index;
382
- for (let v = 0; v < D.count; ++v) Q.push(D.getX(v) + E);
383
- E += h[k].attributes.position.count;
382
+ for (let F = 0; F < D.count; ++F) Q.push(D.getX(F) + m);
383
+ m += h[k].attributes.position.count;
384
384
  }
385
385
  x.setIndex(Q);
386
386
  }
387
- for (const E in p) {
388
- const Q = Xa(p[E]);
389
- if (!Q) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + E + " attribute."), null;
390
- x.setAttribute(E, Q);
387
+ for (const m in B) {
388
+ const Q = Xa(B[m]);
389
+ if (!Q) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + m + " attribute."), null;
390
+ x.setAttribute(m, Q);
391
391
  }
392
- for (const E in B) {
393
- const Q = B[E][0].length;
392
+ for (const m in C) {
393
+ const Q = C[m][0].length;
394
394
  if (Q === 0) break;
395
- x.morphAttributes = x.morphAttributes || {}, x.morphAttributes[E] = [];
395
+ x.morphAttributes = x.morphAttributes || {}, x.morphAttributes[m] = [];
396
396
  for (let k = 0; k < Q; ++k) {
397
397
  const D = [];
398
- for (let _ = 0; _ < B[E].length; ++_) D.push(B[E][_][k]);
399
- const v = Xa(D);
400
- if (!v) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + E + " morphAttribute."), null;
401
- x.morphAttributes[E].push(v);
398
+ for (let _ = 0; _ < C[m].length; ++_) D.push(C[m][_][k]);
399
+ const F = Xa(D);
400
+ if (!F) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + m + " morphAttribute."), null;
401
+ x.morphAttributes[m].push(F);
402
402
  }
403
403
  }
404
404
  return x;
405
- }(b, !0);
405
+ }(d, !0);
406
406
  }(c);
407
- return r = new m.InstancedMesh(d, n, t), r.baseMatrix = new m.Matrix4().identity(), r;
407
+ return r = new E.InstancedMesh(b, n, t), r.baseMatrix = new E.Matrix4().identity(), r;
408
408
  });
409
409
  }
410
410
  }
411
- var Aa, VA = new Uint8Array(16);
412
- function YA() {
413
- if (!Aa && !(Aa = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto < "u" && typeof msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto))) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
414
- return Aa(VA);
411
+ var ia, zA = new Uint8Array(16);
412
+ function VA() {
413
+ if (!ia && !(ia = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto < "u" && typeof msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto))) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
414
+ return ia(zA);
415
415
  }
416
- const WA = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
417
- for (var T = [], ia = 0; ia < 256; ++ia) T.push((ia + 256).toString(16).substr(1));
418
- function XA(o) {
416
+ const YA = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
417
+ for (var T = [], sa = 0; sa < 256; ++sa) T.push((sa + 256).toString(16).substr(1));
418
+ function WA(o) {
419
419
  var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = (T[o[e + 0]] + T[o[e + 1]] + T[o[e + 2]] + T[o[e + 3]] + "-" + T[o[e + 4]] + T[o[e + 5]] + "-" + T[o[e + 6]] + T[o[e + 7]] + "-" + T[o[e + 8]] + T[o[e + 9]] + "-" + T[o[e + 10]] + T[o[e + 11]] + T[o[e + 12]] + T[o[e + 13]] + T[o[e + 14]] + T[o[e + 15]]).toLowerCase();
420
420
  if (!function(t) {
421
- return typeof t == "string" && WA.test(t);
421
+ return typeof t == "string" && YA.test(t);
422
422
  }(a)) throw TypeError("Stringified UUID is invalid");
423
423
  return a;
424
424
  }
425
425
  function kt(o, e, a) {
426
- var t = (o = o || {}).random || (o.rng || YA)();
427
- return t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128, XA(t);
426
+ var t = (o = o || {}).random || (o.rng || VA)();
427
+ return t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128, WA(t);
428
428
  }
429
- class ZA {
429
+ class XA {
430
430
  constructor(e, a) {
431
431
  ge(this, "checkLoaderInitialized", async () => {
432
432
  const e = this;
@@ -443,7 +443,7 @@ class ZA {
443
443
  return new Promise(async (s, r) => {
444
444
  await i.checkLoaderInitialized(), i.gltfLoader.parse(e, null, (c) => {
445
445
  c.scene;
446
- const n = c.scene.children[0], d = n.geometry.attributes.position, b = n.geometry.attributes.color, l = n.geometry.attributes.cov_0, g = n.geometry.attributes.cov_1, h = A.addSplatsTile(d, b, l, g);
446
+ const n = c.scene.children[0], b = n.geometry.attributes.position, d = n.geometry.attributes.color, l = n.geometry.attributes.cov_0, g = n.geometry.attributes.cov_1, h = A.addSplatsTile(b, d, l, g);
447
447
  c.scene.traverse((f) => {
448
448
  f.dispose && f.dispose();
449
449
  }), s(h);
@@ -456,15 +456,17 @@ class ZA {
456
456
  class Dt extends Fa {
457
457
  constructor(e) {
458
458
  super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(a) {
459
+ return new ti(a);
460
+ }), this.register(function(a) {
459
461
  return new Ai(a);
460
462
  }), this.register(function(a) {
461
- return new ii(a);
463
+ return new li(a);
462
464
  }), this.register(function(a) {
463
465
  return new hi(a);
464
466
  }), this.register(function(a) {
465
467
  return new gi(a);
466
468
  }), this.register(function(a) {
467
- return new fi(a);
469
+ return new si(a);
468
470
  }), this.register(function(a) {
469
471
  return new ri(a);
470
472
  }), this.register(function(a) {
@@ -472,21 +474,19 @@ class Dt extends Fa {
472
474
  }), this.register(function(a) {
473
475
  return new oi(a);
474
476
  }), this.register(function(a) {
475
- return new ci(a);
476
- }), this.register(function(a) {
477
- return new ti(a);
478
- }), this.register(function(a) {
479
- return new di(a);
477
+ return new ai(a);
480
478
  }), this.register(function(a) {
481
- return new si(a);
479
+ return new ci(a);
482
480
  }), this.register(function(a) {
483
- return new li(a);
481
+ return new ii(a);
484
482
  }), this.register(function(a) {
485
483
  return new bi(a);
486
484
  }), this.register(function(a) {
487
- return new ei(a);
485
+ return new di(a);
486
+ }), this.register(function(a) {
487
+ return new $A(a);
488
488
  }), this.register(function(a) {
489
- return new Ii(a);
489
+ return new fi(a);
490
490
  }), this.register(function(a) {
491
491
  return new ui(a);
492
492
  });
@@ -496,20 +496,20 @@ class Dt extends Fa {
496
496
  let s;
497
497
  if (this.resourcePath !== "") s = this.resourcePath;
498
498
  else if (this.path !== "") {
499
- const n = Ne.extractUrlBase(e);
500
- s = Ne.resolveURL(n, this.path);
501
- } else s = Ne.extractUrlBase(e);
499
+ const n = Pe.extractUrlBase(e);
500
+ s = Pe.resolveURL(n, this.path);
501
+ } else s = Pe.extractUrlBase(e);
502
502
  this.manager.itemStart(e);
503
503
  const r = function(n) {
504
504
  A ? A(n) : console.error(n), i.manager.itemError(e), i.manager.itemEnd(e);
505
505
  }, c = new Be(this.manager);
506
506
  c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(e, function(n) {
507
507
  try {
508
- i.parse(n, s, function(d) {
509
- a(d), i.manager.itemEnd(e);
508
+ i.parse(n, s, function(b) {
509
+ a(b), i.manager.itemEnd(e);
510
510
  }, r);
511
- } catch (d) {
512
- r(d);
511
+ } catch (b) {
512
+ r(b);
513
513
  }
514
514
  }, t, r);
515
515
  }
@@ -535,37 +535,37 @@ class Dt extends Fa {
535
535
  else if (e instanceof ArrayBuffer)
536
536
  if (c.decode(new Uint8Array(e, 0, 4)) === jt) {
537
537
  try {
538
- s[j.KHR_BINARY_GLTF] = new pi(e);
539
- } catch (d) {
540
- return void (A && A(d));
538
+ s[j.KHR_BINARY_GLTF] = new Ci(e);
539
+ } catch (b) {
540
+ return void (A && A(b));
541
541
  }
542
542
  i = JSON.parse(s[j.KHR_BINARY_GLTF].content);
543
543
  } else i = JSON.parse(c.decode(e));
544
544
  else i = e;
545
545
  if (i.asset === void 0 || i.asset.version[0] < 2) return void (A && A(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));
546
- const n = new Fi(i, { path: a || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, manager: this.manager, ktx2Loader: this.ktx2Loader, meshoptDecoder: this.meshoptDecoder });
546
+ const n = new Si(i, { path: a || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, manager: this.manager, ktx2Loader: this.ktx2Loader, meshoptDecoder: this.meshoptDecoder });
547
547
  n.fileLoader.setRequestHeader(this.requestHeader);
548
- for (let d = 0; d < this.pluginCallbacks.length; d++) {
549
- const b = this.pluginCallbacks[d](n);
550
- b.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[b.name] = b, s[b.name] = !0;
548
+ for (let b = 0; b < this.pluginCallbacks.length; b++) {
549
+ const d = this.pluginCallbacks[b](n);
550
+ d.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[d.name] = d, s[d.name] = !0;
551
551
  }
552
- if (i.extensionsUsed) for (let d = 0; d < i.extensionsUsed.length; ++d) {
553
- const b = i.extensionsUsed[d], l = i.extensionsRequired || [];
554
- switch (b) {
552
+ if (i.extensionsUsed) for (let b = 0; b < i.extensionsUsed.length; ++b) {
553
+ const d = i.extensionsUsed[b], l = i.extensionsRequired || [];
554
+ switch (d) {
555
555
  case j.KHR_MATERIALS_UNLIT:
556
- s[b] = new ai();
556
+ s[d] = new ei();
557
557
  break;
558
558
  case j.KHR_DRACO_MESH_COMPRESSION:
559
- s[b] = new Ei(i, this.dracoLoader);
559
+ s[d] = new Bi(i, this.dracoLoader);
560
560
  break;
561
561
  case j.KHR_TEXTURE_TRANSFORM:
562
- s[b] = new mi();
562
+ s[d] = new mi();
563
563
  break;
564
564
  case j.KHR_MESH_QUANTIZATION:
565
- s[b] = new Qi();
565
+ s[d] = new Ei();
566
566
  break;
567
567
  default:
568
- l.indexOf(b) >= 0 && r[b] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + b + '".');
568
+ l.indexOf(d) >= 0 && r[d] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + d + '".');
569
569
  }
570
570
  }
571
571
  n.setExtensions(s), n.setPlugins(r), n.parse(t, A);
@@ -577,7 +577,7 @@ class Dt extends Fa {
577
577
  });
578
578
  }
579
579
  }
580
- function $A() {
580
+ function ZA() {
581
581
  let o = {};
582
582
  return { get: function(e) {
583
583
  return o[e];
@@ -590,7 +590,7 @@ function $A() {
590
590
  } };
591
591
  }
592
592
  const j = { KHR_BINARY_GLTF: "KHR_binary_glTF", KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression", KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual", KHR_MATERIALS_CLEARCOAT: "KHR_materials_clearcoat", KHR_MATERIALS_DISPERSION: "KHR_materials_dispersion", KHR_MATERIALS_IOR: "KHR_materials_ior", KHR_MATERIALS_SHEEN: "KHR_materials_sheen", KHR_MATERIALS_SPECULAR: "KHR_materials_specular", KHR_MATERIALS_TRANSMISSION: "KHR_materials_transmission", KHR_MATERIALS_IRIDESCENCE: "KHR_materials_iridescence", KHR_MATERIALS_ANISOTROPY: "KHR_materials_anisotropy", KHR_MATERIALS_UNLIT: "KHR_materials_unlit", KHR_MATERIALS_VOLUME: "KHR_materials_volume", KHR_TEXTURE_BASISU: "KHR_texture_basisu", KHR_TEXTURE_TRANSFORM: "KHR_texture_transform", KHR_MESH_QUANTIZATION: "KHR_mesh_quantization", KHR_MATERIALS_EMISSIVE_STRENGTH: "KHR_materials_emissive_strength", EXT_MATERIALS_BUMP: "EXT_materials_bump", EXT_TEXTURE_WEBP: "EXT_texture_webp", EXT_TEXTURE_AVIF: "EXT_texture_avif", EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression", EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing" };
593
- class ei {
593
+ class $A {
594
594
  constructor(e) {
595
595
  this.parser = e, this.name = j.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
596
596
  }
@@ -635,12 +635,12 @@ class ei {
635
635
  });
636
636
  }
637
637
  }
638
- class ai {
638
+ class ei {
639
639
  constructor() {
640
640
  this.name = j.KHR_MATERIALS_UNLIT;
641
641
  }
642
642
  getMaterialType() {
643
- return Te;
643
+ return Le;
644
644
  }
645
645
  extendParams(e, a, t) {
646
646
  const A = [];
@@ -656,7 +656,7 @@ class ai {
656
656
  return Promise.all(A);
657
657
  }
658
658
  }
659
- class ti {
659
+ class ai {
660
660
  constructor(e) {
661
661
  this.parser = e, this.name = j.KHR_MATERIALS_EMISSIVE_STRENGTH;
662
662
  }
@@ -667,7 +667,7 @@ class ti {
667
667
  return A !== void 0 && (a.emissiveIntensity = A), Promise.resolve();
668
668
  }
669
669
  }
670
- class Ai {
670
+ class ti {
671
671
  constructor(e) {
672
672
  this.parser = e, this.name = j.KHR_MATERIALS_CLEARCOAT;
673
673
  }
@@ -681,12 +681,12 @@ class Ai {
681
681
  const i = [], s = A.extensions[this.name];
682
682
  if (s.clearcoatFactor !== void 0 && (a.clearcoat = s.clearcoatFactor), s.clearcoatTexture !== void 0 && i.push(t.assignTexture(a, "clearcoatMap", s.clearcoatTexture)), s.clearcoatRoughnessFactor !== void 0 && (a.clearcoatRoughness = s.clearcoatRoughnessFactor), s.clearcoatRoughnessTexture !== void 0 && i.push(t.assignTexture(a, "clearcoatRoughnessMap", s.clearcoatRoughnessTexture)), s.clearcoatNormalTexture !== void 0 && (i.push(t.assignTexture(a, "clearcoatNormalMap", s.clearcoatNormalTexture)), s.clearcoatNormalTexture.scale !== void 0)) {
683
683
  const r = s.clearcoatNormalTexture.scale;
684
- a.clearcoatNormalScale = new Ct(r, r);
684
+ a.clearcoatNormalScale = new pt(r, r);
685
685
  }
686
686
  return Promise.all(i);
687
687
  }
688
688
  }
689
- class ii {
689
+ class Ai {
690
690
  constructor(e) {
691
691
  this.parser = e, this.name = j.KHR_MATERIALS_DISPERSION;
692
692
  }
@@ -701,7 +701,7 @@ class ii {
701
701
  return a.dispersion = A.dispersion !== void 0 ? A.dispersion : 0, Promise.resolve();
702
702
  }
703
703
  }
704
- class si {
704
+ class ii {
705
705
  constructor(e) {
706
706
  this.parser = e, this.name = j.KHR_MATERIALS_IRIDESCENCE;
707
707
  }
@@ -716,7 +716,7 @@ class si {
716
716
  return s.iridescenceFactor !== void 0 && (a.iridescence = s.iridescenceFactor), s.iridescenceTexture !== void 0 && i.push(t.assignTexture(a, "iridescenceMap", s.iridescenceTexture)), s.iridescenceIor !== void 0 && (a.iridescenceIOR = s.iridescenceIor), a.iridescenceThicknessRange === void 0 && (a.iridescenceThicknessRange = [100, 400]), s.iridescenceThicknessMinimum !== void 0 && (a.iridescenceThicknessRange[0] = s.iridescenceThicknessMinimum), s.iridescenceThicknessMaximum !== void 0 && (a.iridescenceThicknessRange[1] = s.iridescenceThicknessMaximum), s.iridescenceThicknessTexture !== void 0 && i.push(t.assignTexture(a, "iridescenceThicknessMap", s.iridescenceThicknessTexture)), Promise.all(i);
717
717
  }
718
718
  }
719
- class ri {
719
+ class si {
720
720
  constructor(e) {
721
721
  this.parser = e, this.name = j.KHR_MATERIALS_SHEEN;
722
722
  }
@@ -737,7 +737,7 @@ class ri {
737
737
  return s.sheenRoughnessFactor !== void 0 && (a.sheenRoughness = s.sheenRoughnessFactor), s.sheenColorTexture !== void 0 && i.push(t.assignTexture(a, "sheenColorMap", s.sheenColorTexture, re)), s.sheenRoughnessTexture !== void 0 && i.push(t.assignTexture(a, "sheenRoughnessMap", s.sheenRoughnessTexture)), Promise.all(i);
738
738
  }
739
739
  }
740
- class ni {
740
+ class ri {
741
741
  constructor(e) {
742
742
  this.parser = e, this.name = j.KHR_MATERIALS_TRANSMISSION;
743
743
  }
@@ -752,7 +752,7 @@ class ni {
752
752
  return s.transmissionFactor !== void 0 && (a.transmission = s.transmissionFactor), s.transmissionTexture !== void 0 && i.push(t.assignTexture(a, "transmissionMap", s.transmissionTexture)), Promise.all(i);
753
753
  }
754
754
  }
755
- class oi {
755
+ class ni {
756
756
  constructor(e) {
757
757
  this.parser = e, this.name = j.KHR_MATERIALS_VOLUME;
758
758
  }
@@ -769,7 +769,7 @@ class oi {
769
769
  return a.attenuationColor = new he().setRGB(r[0], r[1], r[2], K), Promise.all(i);
770
770
  }
771
771
  }
772
- class ci {
772
+ class oi {
773
773
  constructor(e) {
774
774
  this.parser = e, this.name = j.KHR_MATERIALS_IOR;
775
775
  }
@@ -784,7 +784,7 @@ class ci {
784
784
  return a.ior = A.ior !== void 0 ? A.ior : 1.5, Promise.resolve();
785
785
  }
786
786
  }
787
- class di {
787
+ class ci {
788
788
  constructor(e) {
789
789
  this.parser = e, this.name = j.KHR_MATERIALS_SPECULAR;
790
790
  }
@@ -801,7 +801,7 @@ class di {
801
801
  return a.specularColor = new he().setRGB(r[0], r[1], r[2], K), s.specularColorTexture !== void 0 && i.push(t.assignTexture(a, "specularColorMap", s.specularColorTexture, re)), Promise.all(i);
802
802
  }
803
803
  }
804
- class bi {
804
+ class di {
805
805
  constructor(e) {
806
806
  this.parser = e, this.name = j.EXT_MATERIALS_BUMP;
807
807
  }
@@ -816,7 +816,7 @@ class bi {
816
816
  return a.bumpScale = s.bumpFactor !== void 0 ? s.bumpFactor : 1, s.bumpTexture !== void 0 && i.push(t.assignTexture(a, "bumpMap", s.bumpTexture)), Promise.all(i);
817
817
  }
818
818
  }
819
- class li {
819
+ class bi {
820
820
  constructor(e) {
821
821
  this.parser = e, this.name = j.KHR_MATERIALS_ANISOTROPY;
822
822
  }
@@ -831,7 +831,7 @@ class li {
831
831
  return s.anisotropyStrength !== void 0 && (a.anisotropy = s.anisotropyStrength), s.anisotropyRotation !== void 0 && (a.anisotropyRotation = s.anisotropyRotation), s.anisotropyTexture !== void 0 && i.push(t.assignTexture(a, "anisotropyMap", s.anisotropyTexture)), Promise.all(i);
832
832
  }
833
833
  }
834
- class hi {
834
+ class li {
835
835
  constructor(e) {
836
836
  this.parser = e, this.name = j.KHR_TEXTURE_BASISU;
837
837
  }
@@ -846,7 +846,7 @@ class hi {
846
846
  return a.loadTextureImage(e, i.source, s);
847
847
  }
848
848
  }
849
- class gi {
849
+ class hi {
850
850
  constructor(e) {
851
851
  this.parser = e, this.name = j.EXT_TEXTURE_WEBP, this.isSupported = null;
852
852
  }
@@ -874,7 +874,7 @@ class gi {
874
874
  })), this.isSupported;
875
875
  }
876
876
  }
877
- class fi {
877
+ class gi {
878
878
  constructor(e) {
879
879
  this.parser = e, this.name = j.EXT_TEXTURE_AVIF, this.isSupported = null;
880
880
  }
@@ -902,7 +902,7 @@ class fi {
902
902
  })), this.isSupported;
903
903
  }
904
904
  }
905
- class Ii {
905
+ class fi {
906
906
  constructor(e) {
907
907
  this.name = j.EXT_MESHOPT_COMPRESSION, this.parser = e;
908
908
  }
@@ -915,12 +915,12 @@ class Ii {
915
915
  return null;
916
916
  }
917
917
  return i.then(function(r) {
918
- const c = A.byteOffset || 0, n = A.byteLength || 0, d = A.count, b = A.byteStride, l = new Uint8Array(r, c, n);
919
- return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(d, b, l, A.mode, A.filter).then(function(g) {
918
+ const c = A.byteOffset || 0, n = A.byteLength || 0, b = A.count, d = A.byteStride, l = new Uint8Array(r, c, n);
919
+ return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(b, d, l, A.mode, A.filter).then(function(g) {
920
920
  return g.buffer;
921
921
  }) : s.ready.then(function() {
922
- const g = new ArrayBuffer(d * b);
923
- return s.decodeGltfBuffer(new Uint8Array(g), d, b, l, A.mode, A.filter), g;
922
+ const g = new ArrayBuffer(b * d);
923
+ return s.decodeGltfBuffer(new Uint8Array(g), b, d, l, A.mode, A.filter), g;
924
924
  });
925
925
  });
926
926
  }
@@ -939,22 +939,22 @@ class ui {
939
939
  const i = t.extensions[this.name].attributes, s = [], r = {};
940
940
  for (const c in i) s.push(this.parser.getDependency("accessor", i[c]).then((n) => (r[c] = n, r[c])));
941
941
  return s.length < 1 ? null : (s.push(this.parser.createNodeMesh(e)), Promise.all(s).then((c) => {
942
- const n = c.pop(), d = n.isGroup ? n.children : [n], b = c[0].count, l = [];
943
- for (const g of d) {
944
- const h = new De(), f = new S(), I = new Bt(), u = new S(1, 1, 1), C = new AA(g.geometry, g.material, b);
945
- for (let p = 0; p < b; p++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, p), r.ROTATION && I.fromBufferAttribute(r.ROTATION, p), r.SCALE && u.fromBufferAttribute(r.SCALE, p), C.setMatrixAt(p, h.compose(f, I, u));
946
- for (const p in r) if (p === "_COLOR_0") {
947
- const B = r[p];
948
- C.instanceColor = new Qa(B.array, B.itemSize, B.normalized);
949
- } else p !== "TRANSLATION" && p !== "ROTATION" && p !== "SCALE" && g.geometry.setAttribute(p, r[p]);
950
- pt.prototype.copy.call(C, g), this.parser.assignFinalMaterial(C), l.push(C);
942
+ const n = c.pop(), b = n.isGroup ? n.children : [n], d = c[0].count, l = [];
943
+ for (const g of b) {
944
+ const h = new je(), f = new S(), I = new Ct(), u = new S(1, 1, 1), p = new AA(g.geometry, g.material, d);
945
+ for (let B = 0; B < d; B++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, B), r.ROTATION && I.fromBufferAttribute(r.ROTATION, B), r.SCALE && u.fromBufferAttribute(r.SCALE, B), p.setMatrixAt(B, h.compose(f, I, u));
946
+ for (const B in r) if (B === "_COLOR_0") {
947
+ const C = r[B];
948
+ p.instanceColor = new ya(C.array, C.itemSize, C.normalized);
949
+ } else B !== "TRANSLATION" && B !== "ROTATION" && B !== "SCALE" && g.geometry.setAttribute(B, r[B]);
950
+ Bt.prototype.copy.call(p, g), this.parser.assignFinalMaterial(p), l.push(p);
951
951
  }
952
952
  return n.isGroup ? (n.clear(), n.add(...l), n) : l[0];
953
953
  }));
954
954
  }
955
955
  }
956
- const jt = "glTF", Ci = 1313821514, Bi = 5130562;
957
- class pi {
956
+ const jt = "glTF", Ii = 1313821514, pi = 5130562;
957
+ class Ci {
958
958
  constructor(e) {
959
959
  this.name = j.KHR_BINARY_GLTF, this.content = null, this.body = null;
960
960
  const a = new DataView(e, 0, 12), t = new TextDecoder();
@@ -966,10 +966,10 @@ class pi {
966
966
  const r = i.getUint32(s, !0);
967
967
  s += 4;
968
968
  const c = i.getUint32(s, !0);
969
- if (s += 4, c === Ci) {
969
+ if (s += 4, c === Ii) {
970
970
  const n = new Uint8Array(e, 12 + s, r);
971
971
  this.content = t.decode(n);
972
- } else if (c === Bi) {
972
+ } else if (c === pi) {
973
973
  const n = 12 + s;
974
974
  this.body = e.slice(n, n + r);
975
975
  }
@@ -978,32 +978,32 @@ class pi {
978
978
  if (this.content === null) throw new Error("THREE.GLTFLoader: JSON content not found.");
979
979
  }
980
980
  }
981
- class Ei {
981
+ class Bi {
982
982
  constructor(e, a) {
983
983
  if (!a) throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
984
984
  this.name = j.KHR_DRACO_MESH_COMPRESSION, this.json = e, this.dracoLoader = a, this.dracoLoader.preload();
985
985
  }
986
986
  decodePrimitive(e, a) {
987
987
  const t = this.json, A = this.dracoLoader, i = e.extensions[this.name].bufferView, s = e.extensions[this.name].attributes, r = {}, c = {}, n = {};
988
- for (const d in s) {
989
- const b = ka[d] || d.toLowerCase();
990
- r[b] = s[d];
988
+ for (const b in s) {
989
+ const d = Da[b] || b.toLowerCase();
990
+ r[d] = s[b];
991
991
  }
992
- for (const d in e.attributes) {
993
- const b = ka[d] || d.toLowerCase();
994
- if (s[d] !== void 0) {
995
- const l = t.accessors[e.attributes[d]], g = xe[l.componentType];
996
- n[b] = g.name, c[b] = l.normalized === !0;
992
+ for (const b in e.attributes) {
993
+ const d = Da[b] || b.toLowerCase();
994
+ if (s[b] !== void 0) {
995
+ const l = t.accessors[e.attributes[b]], g = ke[l.componentType];
996
+ n[d] = g.name, c[d] = l.normalized === !0;
997
997
  }
998
998
  }
999
- return a.getDependency("bufferView", i).then(function(d) {
1000
- return new Promise(function(b, l) {
1001
- A.decodeDracoFile(d, function(g) {
999
+ return a.getDependency("bufferView", i).then(function(b) {
1000
+ return new Promise(function(d, l) {
1001
+ A.decodeDracoFile(b, function(g) {
1002
1002
  for (const h in g.attributes) {
1003
1003
  const f = g.attributes[h], I = c[h];
1004
1004
  I !== void 0 && (f.normalized = I);
1005
1005
  }
1006
- b(g);
1006
+ d(g);
1007
1007
  }, r, n, K, l);
1008
1008
  });
1009
1009
  });
@@ -1017,7 +1017,7 @@ class mi {
1017
1017
  return (a.texCoord !== void 0 && a.texCoord !== e.channel || a.offset !== void 0 || a.rotation !== void 0 || a.scale !== void 0) && (e = e.clone(), a.texCoord !== void 0 && (e.channel = a.texCoord), a.offset !== void 0 && e.offset.fromArray(a.offset), a.rotation !== void 0 && (e.rotation = a.rotation), a.scale !== void 0 && e.repeat.fromArray(a.scale), e.needsUpdate = !0), e;
1018
1018
  }
1019
1019
  }
1020
- class Qi {
1020
+ class Ei {
1021
1021
  constructor() {
1022
1022
  this.name = j.KHR_MESH_QUANTIZATION;
1023
1023
  }
@@ -1032,29 +1032,29 @@ class Mt extends jA {
1032
1032
  return a;
1033
1033
  }
1034
1034
  interpolate_(e, a, t, A) {
1035
- const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize, c = 2 * r, n = 3 * r, d = A - a, b = (t - a) / d, l = b * b, g = l * b, h = e * n, f = h - n, I = -2 * g + 3 * l, u = g - l, C = 1 - I, p = u - l + b;
1036
- for (let B = 0; B !== r; B++) {
1037
- const y = s[f + B + r], x = s[f + B + c] * d, w = s[h + B + r], E = s[h + B] * d;
1038
- i[B] = C * y + p * x + I * w + u * E;
1035
+ const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize, c = 2 * r, n = 3 * r, b = A - a, d = (t - a) / b, l = d * d, g = l * d, h = e * n, f = h - n, I = -2 * g + 3 * l, u = g - l, p = 1 - I, B = u - l + d;
1036
+ for (let C = 0; C !== r; C++) {
1037
+ const w = s[f + C + r], x = s[f + C + c] * b, y = s[h + C + r], m = s[h + C] * b;
1038
+ i[C] = p * w + B * x + I * y + u * m;
1039
1039
  }
1040
1040
  return i;
1041
1041
  }
1042
1042
  }
1043
- const yi = new Bt();
1044
- class wi extends Mt {
1043
+ const Qi = new Ct();
1044
+ class yi extends Mt {
1045
1045
  interpolate_(e, a, t, A) {
1046
1046
  const i = super.interpolate_(e, a, t, A);
1047
- return yi.fromArray(i).normalize().toArray(i), i;
1047
+ return Qi.fromArray(i).normalize().toArray(i), i;
1048
1048
  }
1049
1049
  }
1050
- const H = { FLOAT: 5126, FLOAT_MAT3: 35675, FLOAT_MAT4: 35676, FLOAT_VEC2: 35664, FLOAT_VEC3: 35665, FLOAT_VEC4: 35666, LINEAR: 9729, REPEAT: 10497, SAMPLER_2D: 35678, POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6, UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123 }, xe = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array }, $a = { 9728: M, 9729: He, 9984: mA, 9985: QA, 9986: yA, 9987: va }, et = { 33071: wA, 33648: xA, 10497: ya }, sa = { SCALAR: 1, VEC2: 2, VEC3: 3, VEC4: 4, MAT2: 4, MAT3: 9, MAT4: 16 }, ka = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", TEXCOORD_0: "uv", TEXCOORD_1: "uv1", TEXCOORD_2: "uv2", TEXCOORD_3: "uv3", COLOR_0: "color", WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" }, oe = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" }, xi = { CUBICSPLINE: void 0, LINEAR: mt, STEP: kA }, ki = "OPAQUE", Di = "MASK", ji = "BLEND";
1050
+ const H = { FLOAT: 5126, FLOAT_MAT3: 35675, FLOAT_MAT4: 35676, FLOAT_VEC2: 35664, FLOAT_VEC3: 35665, FLOAT_VEC4: 35666, LINEAR: 9729, REPEAT: 10497, SAMPLER_2D: 35678, POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6, UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123 }, ke = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array }, $a = { 9728: M, 9729: Ce, 9984: EA, 9985: QA, 9986: yA, 9987: $e }, et = { 33071: wA, 33648: xA, 10497: wa }, ra = { SCALAR: 1, VEC2: 2, VEC3: 3, VEC4: 4, MAT2: 4, MAT3: 9, MAT4: 16 }, Da = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", TEXCOORD_0: "uv", TEXCOORD_1: "uv1", TEXCOORD_2: "uv2", TEXCOORD_3: "uv3", COLOR_0: "color", WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" }, oe = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" }, wi = { CUBICSPLINE: void 0, LINEAR: Et, STEP: kA }, xi = "OPAQUE", ki = "MASK", Di = "BLEND";
1051
1051
  function fe(o, e, a) {
1052
1052
  for (const t in a.extensions) o[t] === void 0 && (e.userData.gltfExtensions = e.userData.gltfExtensions || {}, e.userData.gltfExtensions[t] = a.extensions[t]);
1053
1053
  }
1054
1054
  function ie(o, e) {
1055
1055
  e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(o.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
1056
1056
  }
1057
- function Mi(o, e) {
1057
+ function ji(o, e) {
1058
1058
  if (o.updateMorphTargets(), e.weights !== void 0) for (let a = 0, t = e.weights.length; a < t; a++) o.morphTargetInfluences[a] = e.weights[a];
1059
1059
  if (e.extras && Array.isArray(e.extras.targetNames)) {
1060
1060
  const a = e.extras.targetNames;
@@ -1064,19 +1064,19 @@ function Mi(o, e) {
1064
1064
  } else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
1065
1065
  }
1066
1066
  }
1067
- function Ri(o) {
1067
+ function Mi(o) {
1068
1068
  let e;
1069
1069
  const a = o.extensions && o.extensions[j.KHR_DRACO_MESH_COMPRESSION];
1070
- if (e = a ? "draco:" + a.bufferView + ":" + a.indices + ":" + ra(a.attributes) : o.indices + ":" + ra(o.attributes) + ":" + o.mode, o.targets !== void 0) for (let t = 0, A = o.targets.length; t < A; t++) e += ":" + ra(o.targets[t]);
1070
+ if (e = a ? "draco:" + a.bufferView + ":" + a.indices + ":" + na(a.attributes) : o.indices + ":" + na(o.attributes) + ":" + o.mode, o.targets !== void 0) for (let t = 0, A = o.targets.length; t < A; t++) e += ":" + na(o.targets[t]);
1071
1071
  return e;
1072
1072
  }
1073
- function ra(o) {
1073
+ function na(o) {
1074
1074
  let e = "";
1075
1075
  const a = Object.keys(o).sort();
1076
1076
  for (let t = 0, A = a.length; t < A; t++) e += a[t] + ":" + o[a[t]] + ";";
1077
1077
  return e;
1078
1078
  }
1079
- function Da(o) {
1079
+ function ja(o) {
1080
1080
  switch (o) {
1081
1081
  case Int8Array:
1082
1082
  return 1 / 127;
@@ -1090,10 +1090,10 @@ function Da(o) {
1090
1090
  throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
1091
1091
  }
1092
1092
  }
1093
- const Si = new De();
1094
- class Fi {
1093
+ const Ri = new je();
1094
+ class Si {
1095
1095
  constructor(e = {}, a = {}) {
1096
- this.json = e, this.extensions = {}, this.plugins = {}, this.options = a, this.cache = new $A(), 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 = {};
1096
+ this.json = e, this.extensions = {}, this.plugins = {}, this.options = a, this.cache = new ZA(), 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 = {};
1097
1097
  let t = !1, A = -1, i = !1, s = -1;
1098
1098
  if (typeof navigator < "u") {
1099
1099
  const r = navigator.userAgent;
@@ -1146,7 +1146,7 @@ class Fi {
1146
1146
  const A = t.clone(), i = (s, r) => {
1147
1147
  const c = this.associations.get(s);
1148
1148
  c != null && this.associations.set(r, c);
1149
- for (const [n, d] of s.children.entries()) i(d, r.children[n]);
1149
+ for (const [n, b] of s.children.entries()) i(b, r.children[n]);
1150
1150
  };
1151
1151
  return i(t, A), A.name += "_instance_" + e.uses[a]++, A;
1152
1152
  }
@@ -1244,7 +1244,7 @@ class Fi {
1244
1244
  if (a.uri === void 0 && e === 0) return Promise.resolve(this.extensions[j.KHR_BINARY_GLTF].body);
1245
1245
  const A = this.options;
1246
1246
  return new Promise(function(i, s) {
1247
- t.load(Ne.resolveURL(a.uri, A.path), i, void 0, function() {
1247
+ t.load(Pe.resolveURL(a.uri, A.path), i, void 0, function() {
1248
1248
  s(new Error('THREE.GLTFLoader: Failed to load buffer "' + a.uri + '".'));
1249
1249
  });
1250
1250
  });
@@ -1259,24 +1259,24 @@ class Fi {
1259
1259
  loadAccessor(e) {
1260
1260
  const a = this, t = this.json, A = this.json.accessors[e];
1261
1261
  if (A.bufferView === void 0 && A.sparse === void 0) {
1262
- const s = sa[A.type], r = xe[A.componentType], c = A.normalized === !0, n = new r(A.count * s);
1262
+ const s = ra[A.type], r = ke[A.componentType], c = A.normalized === !0, n = new r(A.count * s);
1263
1263
  return Promise.resolve(new le(n, s, c));
1264
1264
  }
1265
1265
  const i = [];
1266
1266
  return A.bufferView !== void 0 ? i.push(this.getDependency("bufferView", A.bufferView)) : i.push(null), A.sparse !== void 0 && (i.push(this.getDependency("bufferView", A.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", A.sparse.values.bufferView))), Promise.all(i).then(function(s) {
1267
- const r = s[0], c = sa[A.type], n = xe[A.componentType], d = n.BYTES_PER_ELEMENT, b = d * c, l = A.byteOffset || 0, g = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, h = A.normalized === !0;
1267
+ const r = s[0], c = ra[A.type], n = ke[A.componentType], b = n.BYTES_PER_ELEMENT, d = b * c, l = A.byteOffset || 0, g = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, h = A.normalized === !0;
1268
1268
  let f, I;
1269
- if (g && g !== b) {
1270
- const u = Math.floor(l / g), C = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + u + ":" + A.count;
1271
- let p = a.cache.get(C);
1272
- p || (f = new n(r, u * g, A.count * g / d), p = new rA(f, g / d), a.cache.add(C, p)), I = new nA(p, c, l % g / d, h);
1269
+ if (g && g !== d) {
1270
+ const u = Math.floor(l / g), p = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + u + ":" + A.count;
1271
+ let B = a.cache.get(p);
1272
+ B || (f = new n(r, u * g, A.count * g / b), B = new rA(f, g / b), a.cache.add(p, B)), I = new nA(B, c, l % g / b, h);
1273
1273
  } else f = r === null ? new n(A.count * c) : new n(r, l, A.count * c), I = new le(f, c, h);
1274
1274
  if (A.sparse !== void 0) {
1275
- const u = sa.SCALAR, C = xe[A.sparse.indices.componentType], p = A.sparse.indices.byteOffset || 0, B = A.sparse.values.byteOffset || 0, y = new C(s[1], p, A.sparse.count * u), x = new n(s[2], B, A.sparse.count * c);
1275
+ const u = ra.SCALAR, p = ke[A.sparse.indices.componentType], B = A.sparse.indices.byteOffset || 0, C = A.sparse.values.byteOffset || 0, w = new p(s[1], B, A.sparse.count * u), x = new n(s[2], C, A.sparse.count * c);
1276
1276
  r !== null && (I = new le(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
1277
- for (let w = 0, E = y.length; w < E; w++) {
1278
- const Q = y[w];
1279
- if (I.setX(Q, x[w * c]), c >= 2 && I.setY(Q, x[w * c + 1]), c >= 3 && I.setZ(Q, x[w * c + 2]), c >= 4 && I.setW(Q, x[w * c + 3]), c >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
1277
+ for (let y = 0, m = w.length; y < m; y++) {
1278
+ const Q = w[y];
1279
+ if (I.setX(Q, x[y * c]), c >= 2 && I.setY(Q, x[y * c + 1]), c >= 3 && I.setZ(Q, x[y * c + 2]), c >= 4 && I.setW(Q, x[y * c + 3]), c >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
1280
1280
  }
1281
1281
  I.normalized = h;
1282
1282
  }
@@ -1295,10 +1295,10 @@ class Fi {
1295
1295
  loadTextureImage(e, a, t) {
1296
1296
  const A = this, i = this.json, s = i.textures[e], r = i.images[a], c = (r.uri || r.bufferView) + ":" + s.sampler;
1297
1297
  if (this.textureCache[c]) return this.textureCache[c];
1298
- const n = this.loadImageSource(a, t).then(function(d) {
1299
- d.flipY = !1, d.name = s.name || r.name || "", d.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (d.name = r.uri);
1300
- const b = (i.samplers || {})[s.sampler] || {};
1301
- return d.magFilter = $a[b.magFilter] || He, d.minFilter = $a[b.minFilter] || va, d.wrapS = et[b.wrapS] || ya, d.wrapT = et[b.wrapT] || ya, d.generateMipmaps = !d.isCompressedTexture && d.minFilter !== M && d.minFilter !== He, A.associations.set(d, { textures: e }), d;
1298
+ const n = this.loadImageSource(a, t).then(function(b) {
1299
+ b.flipY = !1, b.name = s.name || r.name || "", b.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (b.name = r.uri);
1300
+ const d = (i.samplers || {})[s.sampler] || {};
1301
+ return b.magFilter = $a[d.magFilter] || Ce, b.minFilter = $a[d.minFilter] || $e, b.wrapS = et[d.wrapS] || wa, b.wrapT = et[d.wrapT] || wa, b.generateMipmaps = !b.isCompressedTexture && b.minFilter !== M && b.minFilter !== Ce, A.associations.set(b, { textures: e }), b;
1302
1302
  }).catch(function() {
1303
1303
  return null;
1304
1304
  });
@@ -1306,30 +1306,30 @@ class Fi {
1306
1306
  }
1307
1307
  loadImageSource(e, a) {
1308
1308
  const t = this, A = this.json, i = this.options;
1309
- if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((b) => b.clone());
1309
+ if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((d) => d.clone());
1310
1310
  const s = A.images[e], r = self.URL || self.webkitURL;
1311
1311
  let c = s.uri || "", n = !1;
1312
- if (s.bufferView !== void 0) c = t.getDependency("bufferView", s.bufferView).then(function(b) {
1312
+ if (s.bufferView !== void 0) c = t.getDependency("bufferView", s.bufferView).then(function(d) {
1313
1313
  n = !0;
1314
- const l = new Blob([b], { type: s.mimeType });
1314
+ const l = new Blob([d], { type: s.mimeType });
1315
1315
  return c = r.createObjectURL(l), c;
1316
1316
  });
1317
1317
  else if (s.uri === void 0) throw new Error("THREE.GLTFLoader: Image " + e + " is missing URI and bufferView");
1318
- const d = Promise.resolve(c).then(function(b) {
1318
+ const b = Promise.resolve(c).then(function(d) {
1319
1319
  return new Promise(function(l, g) {
1320
1320
  let h = l;
1321
1321
  a.isImageBitmapLoader === !0 && (h = function(f) {
1322
1322
  const I = new Na(f);
1323
1323
  I.needsUpdate = !0, l(I);
1324
- }), a.load(Ne.resolveURL(b, i.path), h, void 0, g);
1324
+ }), a.load(Pe.resolveURL(d, i.path), h, void 0, g);
1325
1325
  });
1326
- }).then(function(b) {
1326
+ }).then(function(d) {
1327
1327
  var l;
1328
- return n === !0 && r.revokeObjectURL(c), ie(b, s), b.userData.mimeType = s.mimeType || ((l = s.uri).search(/\.jpe?g($|\?)/i) > 0 || l.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : l.search(/\.webp($|\?)/i) > 0 || l.search(/^data\:image\/webp/) === 0 ? "image/webp" : l.search(/\.ktx2($|\?)/i) > 0 || l.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png"), b;
1329
- }).catch(function(b) {
1330
- throw console.error("THREE.GLTFLoader: Couldn't load texture", c), b;
1328
+ return n === !0 && r.revokeObjectURL(c), ie(d, s), d.userData.mimeType = s.mimeType || ((l = s.uri).search(/\.jpe?g($|\?)/i) > 0 || l.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : l.search(/\.webp($|\?)/i) > 0 || l.search(/^data\:image\/webp/) === 0 ? "image/webp" : l.search(/\.ktx2($|\?)/i) > 0 || l.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png"), d;
1329
+ }).catch(function(d) {
1330
+ throw console.error("THREE.GLTFLoader: Couldn't load texture", c), d;
1331
1331
  });
1332
- return this.sourceCache[e] = d, d;
1332
+ return this.sourceCache[e] = b, b;
1333
1333
  }
1334
1334
  assignTexture(e, a, t, A) {
1335
1335
  const i = this;
@@ -1352,11 +1352,11 @@ class Fi {
1352
1352
  if (e.isPoints) {
1353
1353
  const r = "PointsMaterial:" + t.uuid;
1354
1354
  let c = this.cache.get(r);
1355
- c || (c = new oA(), ea.prototype.copy.call(c, t), c.color.copy(t.color), c.map = t.map, c.sizeAttenuation = !1, this.cache.add(r, c)), t = c;
1355
+ c || (c = new oA(), aa.prototype.copy.call(c, t), c.color.copy(t.color), c.map = t.map, c.sizeAttenuation = !1, this.cache.add(r, c)), t = c;
1356
1356
  } else if (e.isLine) {
1357
1357
  const r = "LineBasicMaterial:" + t.uuid;
1358
1358
  let c = this.cache.get(r);
1359
- c || (c = new cA(), ea.prototype.copy.call(c, t), c.color.copy(t.color), c.map = t.map, this.cache.add(r, c)), t = c;
1359
+ c || (c = new cA(), aa.prototype.copy.call(c, t), c.color.copy(t.color), c.map = t.map, this.cache.add(r, c)), t = c;
1360
1360
  }
1361
1361
  if (A || i || s) {
1362
1362
  let r = "ClonedMaterial:" + t.uuid + ":";
@@ -1374,33 +1374,33 @@ class Fi {
1374
1374
  let s;
1375
1375
  const r = {}, c = [];
1376
1376
  if ((i.extensions || {})[j.KHR_MATERIALS_UNLIT]) {
1377
- const d = A[j.KHR_MATERIALS_UNLIT];
1378
- s = d.getMaterialType(), c.push(d.extendParams(r, i, a));
1377
+ const b = A[j.KHR_MATERIALS_UNLIT];
1378
+ s = b.getMaterialType(), c.push(b.extendParams(r, i, a));
1379
1379
  } else {
1380
- const d = i.pbrMetallicRoughness || {};
1381
- if (r.color = new he(1, 1, 1), r.opacity = 1, Array.isArray(d.baseColorFactor)) {
1382
- const b = d.baseColorFactor;
1383
- r.color.setRGB(b[0], b[1], b[2], K), r.opacity = b[3];
1380
+ const b = i.pbrMetallicRoughness || {};
1381
+ if (r.color = new he(1, 1, 1), r.opacity = 1, Array.isArray(b.baseColorFactor)) {
1382
+ const d = b.baseColorFactor;
1383
+ r.color.setRGB(d[0], d[1], d[2], K), r.opacity = d[3];
1384
1384
  }
1385
- d.baseColorTexture !== void 0 && c.push(a.assignTexture(r, "map", d.baseColorTexture, re)), r.metalness = d.metallicFactor !== void 0 ? d.metallicFactor : 1, r.roughness = d.roughnessFactor !== void 0 ? d.roughnessFactor : 1, d.metallicRoughnessTexture !== void 0 && (c.push(a.assignTexture(r, "metalnessMap", d.metallicRoughnessTexture)), c.push(a.assignTexture(r, "roughnessMap", d.metallicRoughnessTexture))), s = this._invokeOne(function(b) {
1386
- return b.getMaterialType && b.getMaterialType(e);
1387
- }), c.push(Promise.all(this._invokeAll(function(b) {
1388
- return b.extendMaterialParams && b.extendMaterialParams(e, r);
1385
+ b.baseColorTexture !== void 0 && c.push(a.assignTexture(r, "map", b.baseColorTexture, re)), r.metalness = b.metallicFactor !== void 0 ? b.metallicFactor : 1, r.roughness = b.roughnessFactor !== void 0 ? b.roughnessFactor : 1, b.metallicRoughnessTexture !== void 0 && (c.push(a.assignTexture(r, "metalnessMap", b.metallicRoughnessTexture)), c.push(a.assignTexture(r, "roughnessMap", b.metallicRoughnessTexture))), s = this._invokeOne(function(d) {
1386
+ return d.getMaterialType && d.getMaterialType(e);
1387
+ }), c.push(Promise.all(this._invokeAll(function(d) {
1388
+ return d.extendMaterialParams && d.extendMaterialParams(e, r);
1389
1389
  })));
1390
1390
  }
1391
1391
  i.doubleSided === !0 && (r.side = dA);
1392
- const n = i.alphaMode || ki;
1393
- if (n === ji ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, n === Di && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && s !== Te && (c.push(a.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new Ct(1, 1), i.normalTexture.scale !== void 0)) {
1394
- const d = i.normalTexture.scale;
1395
- r.normalScale.set(d, d);
1392
+ const n = i.alphaMode || xi;
1393
+ if (n === Di ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, n === ki && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && s !== Le && (c.push(a.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new pt(1, 1), i.normalTexture.scale !== void 0)) {
1394
+ const b = i.normalTexture.scale;
1395
+ r.normalScale.set(b, b);
1396
1396
  }
1397
- if (i.occlusionTexture !== void 0 && s !== Te && (c.push(a.assignTexture(r, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (r.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && s !== Te) {
1398
- const d = i.emissiveFactor;
1399
- r.emissive = new he().setRGB(d[0], d[1], d[2], K);
1397
+ if (i.occlusionTexture !== void 0 && s !== Le && (c.push(a.assignTexture(r, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (r.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && s !== Le) {
1398
+ const b = i.emissiveFactor;
1399
+ r.emissive = new he().setRGB(b[0], b[1], b[2], K);
1400
1400
  }
1401
- return i.emissiveTexture !== void 0 && s !== Te && c.push(a.assignTexture(r, "emissiveMap", i.emissiveTexture, re)), Promise.all(c).then(function() {
1402
- const d = new s(r);
1403
- return i.name && (d.name = i.name), ie(d, i), a.associations.set(d, { materials: e }), i.extensions && fe(A, d, i), d;
1401
+ return i.emissiveTexture !== void 0 && s !== Le && c.push(a.assignTexture(r, "emissiveMap", i.emissiveTexture, re)), Promise.all(c).then(function() {
1402
+ const b = new s(r);
1403
+ return i.name && (b.name = i.name), ie(b, i), a.associations.set(b, { materials: e }), i.extensions && fe(A, b, i), b;
1404
1404
  });
1405
1405
  }
1406
1406
  createUniqueName(e) {
@@ -1416,41 +1416,41 @@ class Fi {
1416
1416
  }
1417
1417
  const s = [];
1418
1418
  for (let r = 0, c = e.length; r < c; r++) {
1419
- const n = e[r], d = Ri(n), b = A[d];
1420
- if (b) s.push(b.promise);
1419
+ const n = e[r], b = Mi(n), d = A[b];
1420
+ if (d) s.push(d.promise);
1421
1421
  else {
1422
1422
  let l;
1423
- l = n.extensions && n.extensions[j.KHR_DRACO_MESH_COMPRESSION] ? i(n) : at(new Sa(), n, a), A[d] = { primitive: n, promise: l }, s.push(l);
1423
+ l = n.extensions && n.extensions[j.KHR_DRACO_MESH_COMPRESSION] ? i(n) : at(new va(), n, a), A[b] = { primitive: n, promise: l }, s.push(l);
1424
1424
  }
1425
1425
  }
1426
1426
  return Promise.all(s);
1427
1427
  }
1428
1428
  loadMesh(e) {
1429
1429
  const a = this, t = this.json, A = this.extensions, i = t.meshes[e], s = i.primitives, r = [];
1430
- for (let n = 0, d = s.length; n < d; n++) {
1431
- const b = s[n].material === void 0 ? ((c = this.cache).DefaultMaterial === void 0 && (c.DefaultMaterial = new Ua({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: Ze })), c.DefaultMaterial) : this.getDependency("material", s[n].material);
1432
- r.push(b);
1430
+ for (let n = 0, b = s.length; n < b; n++) {
1431
+ const d = s[n].material === void 0 ? ((c = this.cache).DefaultMaterial === void 0 && (c.DefaultMaterial = new Ua({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: Ze })), c.DefaultMaterial) : this.getDependency("material", s[n].material);
1432
+ r.push(d);
1433
1433
  }
1434
1434
  var c;
1435
1435
  return r.push(a.loadGeometries(s)), Promise.all(r).then(function(n) {
1436
- const d = n.slice(0, n.length - 1), b = n[n.length - 1], l = [];
1437
- for (let h = 0, f = b.length; h < f; h++) {
1438
- const I = b[h], u = s[h];
1439
- let C;
1440
- const p = d[h];
1441
- if (u.mode === H.TRIANGLES || u.mode === H.TRIANGLE_STRIP || u.mode === H.TRIANGLE_FAN || u.mode === void 0) C = i.isSkinnedMesh === !0 ? new lA(I, p) : new wa(I, p), C.isSkinnedMesh === !0 && C.normalizeSkinWeights(), u.mode === H.TRIANGLE_STRIP ? C.geometry = Za(C.geometry, ut) : u.mode === H.TRIANGLE_FAN && (C.geometry = Za(C.geometry, ma));
1442
- else if (u.mode === H.LINES) C = new hA(I, p);
1443
- else if (u.mode === H.LINE_STRIP) C = new gA(I, p);
1444
- else if (u.mode === H.LINE_LOOP) C = new fA(I, p);
1436
+ const b = n.slice(0, n.length - 1), d = n[n.length - 1], l = [];
1437
+ for (let h = 0, f = d.length; h < f; h++) {
1438
+ const I = d[h], u = s[h];
1439
+ let p;
1440
+ const B = b[h];
1441
+ if (u.mode === H.TRIANGLES || u.mode === H.TRIANGLE_STRIP || u.mode === H.TRIANGLE_FAN || u.mode === void 0) p = i.isSkinnedMesh === !0 ? new lA(I, B) : new xa(I, B), p.isSkinnedMesh === !0 && p.normalizeSkinWeights(), u.mode === H.TRIANGLE_STRIP ? p.geometry = Za(p.geometry, It) : u.mode === H.TRIANGLE_FAN && (p.geometry = Za(p.geometry, Qa));
1442
+ else if (u.mode === H.LINES) p = new hA(I, B);
1443
+ else if (u.mode === H.LINE_STRIP) p = new gA(I, B);
1444
+ else if (u.mode === H.LINE_LOOP) p = new fA(I, B);
1445
1445
  else {
1446
1446
  if (u.mode !== H.POINTS) throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + u.mode);
1447
- C = new IA(I, p);
1447
+ p = new uA(I, B);
1448
1448
  }
1449
- Object.keys(C.geometry.morphAttributes).length > 0 && Mi(C, i), C.name = a.createUniqueName(i.name || "mesh_" + e), ie(C, i), u.extensions && fe(A, C, u), a.assignFinalMaterial(C), l.push(C);
1449
+ Object.keys(p.geometry.morphAttributes).length > 0 && ji(p, i), p.name = a.createUniqueName(i.name || "mesh_" + e), ie(p, i), u.extensions && fe(A, p, u), a.assignFinalMaterial(p), l.push(p);
1450
1450
  }
1451
1451
  for (let h = 0, f = l.length; h < f; h++) a.associations.set(l[h], { meshes: e, primitives: h });
1452
1452
  if (l.length === 1) return i.extensions && fe(A, l[0], i), l[0];
1453
- const g = new aa();
1453
+ const g = new ta();
1454
1454
  i.extensions && fe(A, g, i), a.associations.set(g, { meshes: e });
1455
1455
  for (let h = 0, f = l.length; h < f; h++) g.add(l[h]);
1456
1456
  return g;
@@ -1459,7 +1459,7 @@ class Fi {
1459
1459
  loadCamera(e) {
1460
1460
  let a;
1461
1461
  const t = this.json.cameras[e], A = t[t.type];
1462
- if (A) return t.type === "perspective" ? a = new uA(CA.radToDeg(A.yfov), A.aspectRatio || 1, A.znear || 1, A.zfar || 2e6) : t.type === "orthographic" && (a = new Et(-A.xmag, A.xmag, A.ymag, -A.ymag, A.znear, A.zfar)), t.name && (a.name = this.createUniqueName(t.name)), ie(a, t), Promise.resolve(a);
1462
+ if (A) return t.type === "perspective" ? a = new IA(pA.radToDeg(A.yfov), A.aspectRatio || 1, A.znear || 1, A.zfar || 2e6) : t.type === "orthographic" && (a = new mt(-A.xmag, A.xmag, A.ymag, -A.ymag, A.znear, A.zfar)), t.name && (a.name = this.createUniqueName(t.name)), ie(a, t), Promise.resolve(a);
1463
1463
  console.warn("THREE.GLTFLoader: Missing camera parameters.");
1464
1464
  }
1465
1465
  loadSkin(e) {
@@ -1467,33 +1467,33 @@ class Fi {
1467
1467
  for (let A = 0, i = a.joints.length; A < i; A++) t.push(this._loadNodeShallow(a.joints[A]));
1468
1468
  return a.inverseBindMatrices !== void 0 ? t.push(this.getDependency("accessor", a.inverseBindMatrices)) : t.push(null), Promise.all(t).then(function(A) {
1469
1469
  const i = A.pop(), s = A, r = [], c = [];
1470
- for (let n = 0, d = s.length; n < d; n++) {
1471
- const b = s[n];
1472
- if (b) {
1473
- r.push(b);
1474
- const l = new De();
1470
+ for (let n = 0, b = s.length; n < b; n++) {
1471
+ const d = s[n];
1472
+ if (d) {
1473
+ r.push(d);
1474
+ const l = new je();
1475
1475
  i !== null && l.fromArray(i.array, 16 * n), c.push(l);
1476
1476
  } else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', a.joints[n]);
1477
1477
  }
1478
- return new BA(r, c);
1478
+ return new CA(r, c);
1479
1479
  });
1480
1480
  }
1481
1481
  loadAnimation(e) {
1482
- const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [], c = [], n = [], d = [];
1483
- for (let b = 0, l = A.channels.length; b < l; b++) {
1484
- const g = A.channels[b], h = A.samplers[g.sampler], f = g.target, I = f.node, u = A.parameters !== void 0 ? A.parameters[h.input] : h.input, C = A.parameters !== void 0 ? A.parameters[h.output] : h.output;
1485
- f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", u)), c.push(this.getDependency("accessor", C)), n.push(h), d.push(f));
1482
+ const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [], c = [], n = [], b = [];
1483
+ for (let d = 0, l = A.channels.length; d < l; d++) {
1484
+ const g = A.channels[d], h = A.samplers[g.sampler], f = g.target, I = f.node, u = A.parameters !== void 0 ? A.parameters[h.input] : h.input, p = A.parameters !== void 0 ? A.parameters[h.output] : h.output;
1485
+ f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", u)), c.push(this.getDependency("accessor", p)), n.push(h), b.push(f));
1486
1486
  }
1487
- return Promise.all([Promise.all(s), Promise.all(r), Promise.all(c), Promise.all(n), Promise.all(d)]).then(function(b) {
1488
- const l = b[0], g = b[1], h = b[2], f = b[3], I = b[4], u = [];
1489
- for (let C = 0, p = l.length; C < p; C++) {
1490
- const B = l[C], y = g[C], x = h[C], w = f[C], E = I[C];
1491
- if (B === void 0) continue;
1492
- B.updateMatrix && B.updateMatrix();
1493
- const Q = t._createAnimationTracks(B, y, x, w, E);
1487
+ return Promise.all([Promise.all(s), Promise.all(r), Promise.all(c), Promise.all(n), Promise.all(b)]).then(function(d) {
1488
+ const l = d[0], g = d[1], h = d[2], f = d[3], I = d[4], u = [];
1489
+ for (let p = 0, B = l.length; p < B; p++) {
1490
+ const C = l[p], w = g[p], x = h[p], y = f[p], m = I[p];
1491
+ if (C === void 0) continue;
1492
+ C.updateMatrix && C.updateMatrix();
1493
+ const Q = t._createAnimationTracks(C, w, x, y, m);
1494
1494
  if (Q) for (let k = 0; k < Q.length; k++) u.push(Q[k]);
1495
1495
  }
1496
- return new pA(i, void 0, u);
1496
+ return new BA(i, void 0, u);
1497
1497
  });
1498
1498
  }
1499
1499
  createNodeMesh(e) {
@@ -1510,11 +1510,11 @@ class Fi {
1510
1510
  for (let c = 0, n = s.length; c < n; c++) i.push(a.getDependency("node", s[c]));
1511
1511
  const r = t.skin === void 0 ? Promise.resolve(null) : a.getDependency("skin", t.skin);
1512
1512
  return Promise.all([A, Promise.all(i), r]).then(function(c) {
1513
- const n = c[0], d = c[1], b = c[2];
1514
- b !== null && n.traverse(function(l) {
1515
- l.isSkinnedMesh && l.bind(b, Si);
1513
+ const n = c[0], b = c[1], d = c[2];
1514
+ d !== null && n.traverse(function(l) {
1515
+ l.isSkinnedMesh && l.bind(d, Ri);
1516
1516
  });
1517
- for (let l = 0, g = d.length; l < g; l++) n.add(d[l]);
1517
+ for (let l = 0, g = b.length; l < g; l++) n.add(b[l]);
1518
1518
  return n;
1519
1519
  });
1520
1520
  }
@@ -1531,29 +1531,29 @@ class Fi {
1531
1531
  }).forEach(function(n) {
1532
1532
  r.push(n);
1533
1533
  }), this.nodeCache[e] = Promise.all(r).then(function(n) {
1534
- let d;
1535
- if (d = i.isBone === !0 ? new EA() : n.length > 1 ? new aa() : n.length === 1 ? n[0] : new pt(), d !== n[0]) for (let b = 0, l = n.length; b < l; b++) d.add(n[b]);
1536
- if (i.name && (d.userData.name = i.name, d.name = s), ie(d, i), i.extensions && fe(t, d, i), i.matrix !== void 0) {
1537
- const b = new De();
1538
- b.fromArray(i.matrix), d.applyMatrix4(b);
1539
- } else i.translation !== void 0 && d.position.fromArray(i.translation), i.rotation !== void 0 && d.quaternion.fromArray(i.rotation), i.scale !== void 0 && d.scale.fromArray(i.scale);
1540
- return A.associations.has(d) || A.associations.set(d, {}), A.associations.get(d).nodes = e, d;
1534
+ let b;
1535
+ if (b = i.isBone === !0 ? new mA() : n.length > 1 ? new ta() : n.length === 1 ? n[0] : new Bt(), b !== n[0]) for (let d = 0, l = n.length; d < l; d++) b.add(n[d]);
1536
+ if (i.name && (b.userData.name = i.name, b.name = s), ie(b, i), i.extensions && fe(t, b, i), i.matrix !== void 0) {
1537
+ const d = new je();
1538
+ d.fromArray(i.matrix), b.applyMatrix4(d);
1539
+ } else i.translation !== void 0 && b.position.fromArray(i.translation), i.rotation !== void 0 && b.quaternion.fromArray(i.rotation), i.scale !== void 0 && b.scale.fromArray(i.scale);
1540
+ return A.associations.has(b) || A.associations.set(b, {}), A.associations.get(b).nodes = e, b;
1541
1541
  }), this.nodeCache[e];
1542
1542
  }
1543
1543
  loadScene(e) {
1544
- const a = this.extensions, t = this.json.scenes[e], A = this, i = new aa();
1544
+ const a = this.extensions, t = this.json.scenes[e], A = this, i = new ta();
1545
1545
  t.name && (i.name = A.createUniqueName(t.name)), ie(i, t), t.extensions && fe(a, i, t);
1546
1546
  const s = t.nodes || [], r = [];
1547
1547
  for (let c = 0, n = s.length; c < n; c++) r.push(A.getDependency("node", s[c]));
1548
1548
  return Promise.all(r).then(function(c) {
1549
- for (let n = 0, d = c.length; n < d; n++) i.add(c[n]);
1549
+ for (let n = 0, b = c.length; n < b; n++) i.add(c[n]);
1550
1550
  return A.associations = ((n) => {
1551
- const d = /* @__PURE__ */ new Map();
1552
- for (const [b, l] of A.associations) (b instanceof ea || b instanceof Na) && d.set(b, l);
1553
- return n.traverse((b) => {
1554
- const l = A.associations.get(b);
1555
- l != null && d.set(b, l);
1556
- }), d;
1551
+ const b = /* @__PURE__ */ new Map();
1552
+ for (const [d, l] of A.associations) (d instanceof aa || d instanceof Na) && b.set(d, l);
1553
+ return n.traverse((d) => {
1554
+ const l = A.associations.get(d);
1555
+ l != null && b.set(d, l);
1556
+ }), b;
1557
1557
  })(i), i;
1558
1558
  });
1559
1559
  }
@@ -1576,9 +1576,9 @@ class Fi {
1576
1576
  default:
1577
1577
  t.itemSize === 1 ? n = _a : n = Pa;
1578
1578
  }
1579
- const d = A.interpolation !== void 0 ? xi[A.interpolation] : mt, b = this._getArrayFromAccessor(t);
1579
+ const b = A.interpolation !== void 0 ? wi[A.interpolation] : Et, d = this._getArrayFromAccessor(t);
1580
1580
  for (let l = 0, g = c.length; l < g; l++) {
1581
- const h = new n(c[l] + "." + oe[i.path], a.array, b, d);
1581
+ const h = new n(c[l] + "." + oe[i.path], a.array, d, b);
1582
1582
  A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(h), s.push(h);
1583
1583
  }
1584
1584
  return s;
@@ -1586,7 +1586,7 @@ class Fi {
1586
1586
  _getArrayFromAccessor(e) {
1587
1587
  let a = e.array;
1588
1588
  if (e.normalized) {
1589
- const t = Da(a.constructor), A = new Float32Array(a.length);
1589
+ const t = ja(a.constructor), A = new Float32Array(a.length);
1590
1590
  for (let i = 0, s = a.length; i < s; i++) A[i] = a[i] * t;
1591
1591
  a = A;
1592
1592
  }
@@ -1594,7 +1594,7 @@ class Fi {
1594
1594
  }
1595
1595
  _createCubicSplineTrackInterpolant(e) {
1596
1596
  e.createInterpolant = function(a) {
1597
- return new (this instanceof Ha ? wi : Mt)(this.times, this.values, this.getValueSize() / 3, a);
1597
+ return new (this instanceof Ha ? yi : Mt)(this.times, this.values, this.getValueSize() / 3, a);
1598
1598
  }, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
1599
1599
  }
1600
1600
  }
@@ -1606,7 +1606,7 @@ function at(o, e, a) {
1606
1606
  });
1607
1607
  }
1608
1608
  for (const s in t) {
1609
- const r = ka[s] || s.toLowerCase();
1609
+ const r = Da[s] || s.toLowerCase();
1610
1610
  r in o.attributes || A.push(i(t[s], r));
1611
1611
  }
1612
1612
  if (e.indices !== void 0 && !o.index) {
@@ -1615,70 +1615,70 @@ function at(o, e, a) {
1615
1615
  });
1616
1616
  A.push(s);
1617
1617
  }
1618
- return xa.workingColorSpace !== K && "COLOR_0" in t && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${xa.workingColorSpace}" not supported.`), ie(o, e), function(s, r, c) {
1619
- const n = r.attributes, d = new Ra();
1618
+ return ka.workingColorSpace !== K && "COLOR_0" in t && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ka.workingColorSpace}" not supported.`), ie(o, e), function(s, r, c) {
1619
+ const n = r.attributes, b = new Sa();
1620
1620
  if (n.POSITION === void 0) return;
1621
1621
  {
1622
1622
  const g = c.json.accessors[n.POSITION], h = g.min, f = g.max;
1623
1623
  if (h === void 0 || f === void 0) return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
1624
- if (d.set(new S(h[0], h[1], h[2]), new S(f[0], f[1], f[2])), g.normalized) {
1625
- const I = Da(xe[g.componentType]);
1626
- d.min.multiplyScalar(I), d.max.multiplyScalar(I);
1624
+ if (b.set(new S(h[0], h[1], h[2]), new S(f[0], f[1], f[2])), g.normalized) {
1625
+ const I = ja(ke[g.componentType]);
1626
+ b.min.multiplyScalar(I), b.max.multiplyScalar(I);
1627
1627
  }
1628
1628
  }
1629
- const b = r.targets;
1630
- if (b !== void 0) {
1629
+ const d = r.targets;
1630
+ if (d !== void 0) {
1631
1631
  const g = new S(), h = new S();
1632
- for (let f = 0, I = b.length; f < I; f++) {
1633
- const u = b[f];
1632
+ for (let f = 0, I = d.length; f < I; f++) {
1633
+ const u = d[f];
1634
1634
  if (u.POSITION !== void 0) {
1635
- const C = c.json.accessors[u.POSITION], p = C.min, B = C.max;
1636
- if (p !== void 0 && B !== void 0) {
1637
- if (h.setX(Math.max(Math.abs(p[0]), Math.abs(B[0]))), h.setY(Math.max(Math.abs(p[1]), Math.abs(B[1]))), h.setZ(Math.max(Math.abs(p[2]), Math.abs(B[2]))), C.normalized) {
1638
- const y = Da(xe[C.componentType]);
1639
- h.multiplyScalar(y);
1635
+ const p = c.json.accessors[u.POSITION], B = p.min, C = p.max;
1636
+ if (B !== void 0 && C !== void 0) {
1637
+ if (h.setX(Math.max(Math.abs(B[0]), Math.abs(C[0]))), h.setY(Math.max(Math.abs(B[1]), Math.abs(C[1]))), h.setZ(Math.max(Math.abs(B[2]), Math.abs(C[2]))), p.normalized) {
1638
+ const w = ja(ke[p.componentType]);
1639
+ h.multiplyScalar(w);
1640
1640
  }
1641
1641
  g.max(h);
1642
1642
  } else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
1643
1643
  }
1644
1644
  }
1645
- d.expandByVector(g);
1645
+ b.expandByVector(g);
1646
1646
  }
1647
- s.boundingBox = d;
1647
+ s.boundingBox = b;
1648
1648
  const l = new DA();
1649
- d.getCenter(l.center), l.radius = d.min.distanceTo(d.max) / 2, s.boundingSphere = l;
1649
+ b.getCenter(l.center), l.radius = b.min.distanceTo(b.max) / 2, s.boundingSphere = l;
1650
1650
  }(o, e, a), Promise.all(A).then(function() {
1651
1651
  return e.targets !== void 0 ? function(s, r, c) {
1652
- let n = !1, d = !1, b = !1;
1652
+ let n = !1, b = !1, d = !1;
1653
1653
  for (let f = 0, I = r.length; f < I; f++) {
1654
1654
  const u = r[f];
1655
- if (u.POSITION !== void 0 && (n = !0), u.NORMAL !== void 0 && (d = !0), u.COLOR_0 !== void 0 && (b = !0), n && d && b) break;
1655
+ if (u.POSITION !== void 0 && (n = !0), u.NORMAL !== void 0 && (b = !0), u.COLOR_0 !== void 0 && (d = !0), n && b && d) break;
1656
1656
  }
1657
- if (!n && !d && !b) return Promise.resolve(s);
1657
+ if (!n && !b && !d) return Promise.resolve(s);
1658
1658
  const l = [], g = [], h = [];
1659
1659
  for (let f = 0, I = r.length; f < I; f++) {
1660
1660
  const u = r[f];
1661
1661
  if (n) {
1662
- const C = u.POSITION !== void 0 ? c.getDependency("accessor", u.POSITION) : s.attributes.position;
1663
- l.push(C);
1664
- }
1665
- if (d) {
1666
- const C = u.NORMAL !== void 0 ? c.getDependency("accessor", u.NORMAL) : s.attributes.normal;
1667
- g.push(C);
1662
+ const p = u.POSITION !== void 0 ? c.getDependency("accessor", u.POSITION) : s.attributes.position;
1663
+ l.push(p);
1668
1664
  }
1669
1665
  if (b) {
1670
- const C = u.COLOR_0 !== void 0 ? c.getDependency("accessor", u.COLOR_0) : s.attributes.color;
1671
- h.push(C);
1666
+ const p = u.NORMAL !== void 0 ? c.getDependency("accessor", u.NORMAL) : s.attributes.normal;
1667
+ g.push(p);
1668
+ }
1669
+ if (d) {
1670
+ const p = u.COLOR_0 !== void 0 ? c.getDependency("accessor", u.COLOR_0) : s.attributes.color;
1671
+ h.push(p);
1672
1672
  }
1673
1673
  }
1674
1674
  return Promise.all([Promise.all(l), Promise.all(g), Promise.all(h)]).then(function(f) {
1675
- const I = f[0], u = f[1], C = f[2];
1676
- return n && (s.morphAttributes.position = I), d && (s.morphAttributes.normal = u), b && (s.morphAttributes.color = C), s.morphTargetsRelative = !0, s;
1675
+ const I = f[0], u = f[1], p = f[2];
1676
+ return n && (s.morphAttributes.position = I), b && (s.morphAttributes.normal = u), d && (s.morphAttributes.color = p), s.morphTargetsRelative = !0, s;
1677
1677
  });
1678
1678
  }(o, e.targets, a) : o;
1679
1679
  });
1680
1680
  }
1681
- const na = /* @__PURE__ */ new WeakMap();
1681
+ const oa = /* @__PURE__ */ new WeakMap();
1682
1682
  class Rt extends Fa {
1683
1683
  constructor(e) {
1684
1684
  super(e), this.decoderPath = "", this.decoderConfig = {}, this.decoderBinary = null, this.decoderPending = null, this.workerLimit = 4, this.workerPool = [], this.workerNextTaskID = 1, this.workerSourceURL = "", this.defaultAttributeIDs = { position: "POSITION", normal: "NORMAL", color: "COLOR", uv: "TEX_COORD" }, this.defaultAttributeTypes = { position: "Float32Array", normal: "Float32Array", color: "Float32Array", uv: "Float32Array" };
@@ -1709,21 +1709,21 @@ class Rt extends Fa {
1709
1709
  }
1710
1710
  decodeGeometry(e, a) {
1711
1711
  const t = JSON.stringify(a);
1712
- if (na.has(e)) {
1713
- const c = na.get(e);
1712
+ if (oa.has(e)) {
1713
+ const c = oa.get(e);
1714
1714
  if (c.key === t) return c.promise;
1715
1715
  if (e.byteLength === 0) throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.");
1716
1716
  }
1717
1717
  let A;
1718
- const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((c) => (A = c, new Promise((n, d) => {
1719
- A._callbacks[i] = { resolve: n, reject: d }, A.postMessage({ type: "decode", id: i, taskConfig: a, buffer: e }, [e]);
1718
+ const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((c) => (A = c, new Promise((n, b) => {
1719
+ A._callbacks[i] = { resolve: n, reject: b }, A.postMessage({ type: "decode", id: i, taskConfig: a, buffer: e }, [e]);
1720
1720
  }))).then((c) => this._createGeometry(c.geometry));
1721
1721
  return r.catch(() => !0).then(() => {
1722
1722
  A && i && this._releaseTask(A, i);
1723
- }), na.set(e, { key: t, promise: r }), r;
1723
+ }), oa.set(e, { key: t, promise: r }), r;
1724
1724
  }
1725
1725
  _createGeometry(e) {
1726
- const a = new Sa();
1726
+ const a = new va();
1727
1727
  e.index && a.setIndex(new le(e.index.array, 1));
1728
1728
  for (let t = 0; t < e.attributes.length; t++) {
1729
1729
  const A = e.attributes[t], i = A.name, s = A.array, r = A.itemSize, c = new le(s, r);
@@ -1734,7 +1734,7 @@ class Rt extends Fa {
1734
1734
  _assignVertexColorSpace(e, a) {
1735
1735
  if (a !== re) return;
1736
1736
  const t = new he();
1737
- for (let A = 0, i = e.count; A < i; A++) t.fromBufferAttribute(e, A), xa.toWorkingColorSpace(t, re), e.setXYZ(A, t.r, t.g, t.b);
1737
+ for (let A = 0, i = e.count; A < i; A++) t.fromBufferAttribute(e, A), ka.toWorkingColorSpace(t, re), e.setXYZ(A, t.r, t.g, t.b);
1738
1738
  }
1739
1739
  _loadLibrary(e, a) {
1740
1740
  const t = new Be(this.manager);
@@ -1794,7 +1794,7 @@ class Rt extends Fa {
1794
1794
  function vi() {
1795
1795
  let o, e;
1796
1796
  function a(t, A, i, s, r, c) {
1797
- const n = c.num_components(), d = i.num_points() * n, b = d * r.BYTES_PER_ELEMENT, l = function(f, I) {
1797
+ const n = c.num_components(), b = i.num_points() * n, d = b * r.BYTES_PER_ELEMENT, l = function(f, I) {
1798
1798
  switch (I) {
1799
1799
  case Float32Array:
1800
1800
  return f.DT_FLOAT32;
@@ -1811,9 +1811,9 @@ function vi() {
1811
1811
  case Uint32Array:
1812
1812
  return f.DT_UINT32;
1813
1813
  }
1814
- }(t, r), g = t._malloc(b);
1815
- A.GetAttributeDataArrayForAllPoints(i, c, l, b, g);
1816
- const h = new r(t.HEAPF32.buffer, g, d).slice();
1814
+ }(t, r), g = t._malloc(d);
1815
+ A.GetAttributeDataArrayForAllPoints(i, c, l, d, g);
1816
+ const h = new r(t.HEAPF32.buffer, g, b).slice();
1817
1817
  return t._free(g), { name: s, array: h, itemSize: n };
1818
1818
  }
1819
1819
  onmessage = function(t) {
@@ -1831,38 +1831,38 @@ function vi() {
1831
1831
  e.then((r) => {
1832
1832
  const c = r.draco, n = new c.Decoder();
1833
1833
  try {
1834
- const d = function(l, g, h, f) {
1834
+ const b = function(l, g, h, f) {
1835
1835
  const I = f.attributeIDs, u = f.attributeTypes;
1836
- let C, p;
1837
- const B = g.GetEncodedGeometryType(h);
1838
- if (B === l.TRIANGULAR_MESH) C = new l.Mesh(), p = g.DecodeArrayToMesh(h, h.byteLength, C);
1836
+ let p, B;
1837
+ const C = g.GetEncodedGeometryType(h);
1838
+ if (C === l.TRIANGULAR_MESH) p = new l.Mesh(), B = g.DecodeArrayToMesh(h, h.byteLength, p);
1839
1839
  else {
1840
- if (B !== l.POINT_CLOUD) throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
1841
- C = new l.PointCloud(), p = g.DecodeArrayToPointCloud(h, h.byteLength, C);
1840
+ if (C !== l.POINT_CLOUD) throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
1841
+ p = new l.PointCloud(), B = g.DecodeArrayToPointCloud(h, h.byteLength, p);
1842
1842
  }
1843
- if (!p.ok() || C.ptr === 0) throw new Error("THREE.DRACOLoader: Decoding failed: " + p.error_msg());
1844
- const y = { index: null, attributes: [] };
1843
+ if (!B.ok() || p.ptr === 0) throw new Error("THREE.DRACOLoader: Decoding failed: " + B.error_msg());
1844
+ const w = { index: null, attributes: [] };
1845
1845
  for (const x in I) {
1846
- const w = self[u[x]];
1847
- let E, Q;
1848
- if (f.useUniqueIDs) Q = I[x], E = g.GetAttributeByUniqueId(C, Q);
1846
+ const y = self[u[x]];
1847
+ let m, Q;
1848
+ if (f.useUniqueIDs) Q = I[x], m = g.GetAttributeByUniqueId(p, Q);
1849
1849
  else {
1850
- if (Q = g.GetAttributeId(C, l[I[x]]), Q === -1) continue;
1851
- E = g.GetAttribute(C, Q);
1850
+ if (Q = g.GetAttributeId(p, l[I[x]]), Q === -1) continue;
1851
+ m = g.GetAttribute(p, Q);
1852
1852
  }
1853
- const k = a(l, g, C, x, w, E);
1854
- x === "color" && (k.vertexColorSpace = f.vertexColorSpace), y.attributes.push(k);
1853
+ const k = a(l, g, p, x, y, m);
1854
+ x === "color" && (k.vertexColorSpace = f.vertexColorSpace), w.attributes.push(k);
1855
1855
  }
1856
- return B === l.TRIANGULAR_MESH && (y.index = function(x, w, E) {
1857
- const Q = E.num_faces(), k = 3 * Q, D = 4 * k, v = x._malloc(D);
1858
- w.GetTrianglesUInt32Array(E, D, v);
1859
- const _ = new Uint32Array(x.HEAPF32.buffer, v, k).slice();
1860
- return x._free(v), { array: _, itemSize: 1 };
1861
- }(l, g, C)), l.destroy(C), y;
1862
- }(c, n, new Int8Array(i), s), b = d.attributes.map((l) => l.array.buffer);
1863
- d.index && b.push(d.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: d }, b);
1864
- } catch (d) {
1865
- console.error(d), self.postMessage({ type: "error", id: A.id, error: d.message });
1856
+ return C === l.TRIANGULAR_MESH && (w.index = function(x, y, m) {
1857
+ const Q = m.num_faces(), k = 3 * Q, D = 4 * k, F = x._malloc(D);
1858
+ y.GetTrianglesUInt32Array(m, D, F);
1859
+ const _ = new Uint32Array(x.HEAPF32.buffer, F, k).slice();
1860
+ return x._free(F), { array: _, itemSize: 1 };
1861
+ }(l, g, p)), l.destroy(p), w;
1862
+ }(c, n, new Int8Array(i), s), d = b.attributes.map((l) => l.array.buffer);
1863
+ b.index && d.push(b.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: b }, d);
1864
+ } catch (b) {
1865
+ console.error(b), self.postMessage({ type: "error", id: A.id, error: b.message });
1866
1866
  } finally {
1867
1867
  c.destroy(n);
1868
1868
  }
@@ -1870,7 +1870,7 @@ function vi() {
1870
1870
  }
1871
1871
  };
1872
1872
  }
1873
- class Ti {
1873
+ class Fi {
1874
1874
  constructor(e = 4) {
1875
1875
  this.pool = e, this.queue = [], this.workers = [], this.workersResolve = [], this.workerStatus = 0;
1876
1876
  }
@@ -1907,8 +1907,8 @@ class Ti {
1907
1907
  this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
1908
1908
  }
1909
1909
  }
1910
- const St = 9, Ft = 15, vt = 16, Tt = 22, Lt = 37, Gt = 43, Ut = 76, Nt = 83, Pt = 97, _t = 100, Ht = 103, qt = 109, Ot = 165, Jt = 166, Ta = 1000066e3;
1911
- class Li {
1910
+ const St = 9, vt = 15, Ft = 16, Tt = 22, Lt = 37, Gt = 43, Ut = 76, Nt = 83, Pt = 97, _t = 100, Ht = 103, qt = 109, Ot = 165, Jt = 166, Ta = 1000066e3;
1911
+ class Ti {
1912
1912
  constructor() {
1913
1913
  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;
1914
1914
  }
@@ -1956,30 +1956,30 @@ const U = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
1956
1956
  function tt(o) {
1957
1957
  return new TextDecoder().decode(o);
1958
1958
  }
1959
- let oa, Ae, ja;
1960
- const ca = { env: { emscripten_notify_memory_growth: function(o) {
1961
- ja = new Uint8Array(Ae.exports.memory.buffer);
1959
+ let ca, Ae, Ma;
1960
+ const da = { env: { emscripten_notify_memory_growth: function(o) {
1961
+ Ma = new Uint8Array(Ae.exports.memory.buffer);
1962
1962
  } } };
1963
- class Gi {
1963
+ class Li {
1964
1964
  init() {
1965
- return oa || (oa = typeof fetch < "u" ? fetch("data:application/wasm;base64," + At).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, ca)).then(this._init) : WebAssembly.instantiate(Buffer.from(At, "base64"), ca).then(this._init), oa);
1965
+ return ca || (ca = typeof fetch < "u" ? fetch("data:application/wasm;base64," + At).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, da)).then(this._init) : WebAssembly.instantiate(Buffer.from(At, "base64"), da).then(this._init), ca);
1966
1966
  }
1967
1967
  _init(e) {
1968
- Ae = e.instance, ca.env.emscripten_notify_memory_growth(0);
1968
+ Ae = e.instance, da.env.emscripten_notify_memory_growth(0);
1969
1969
  }
1970
1970
  decode(e, a = 0) {
1971
1971
  if (!Ae) throw new Error("ZSTDDecoder: Await .init() before decoding.");
1972
1972
  const t = e.byteLength, A = Ae.exports.malloc(t);
1973
- ja.set(e, A), a = a || Number(Ae.exports.ZSTD_findDecompressedSize(A, t));
1974
- const i = Ae.exports.malloc(a), s = Ae.exports.ZSTD_decompress(i, a, A, t), r = ja.slice(i, i + s);
1973
+ Ma.set(e, A), a = a || Number(Ae.exports.ZSTD_findDecompressedSize(A, t));
1974
+ const i = Ae.exports.malloc(a), s = Ae.exports.ZSTD_decompress(i, a, A, t), r = Ma.slice(i, i + s);
1975
1975
  return Ae.exports.free(A), Ae.exports.free(i), r;
1976
1976
  }
1977
1977
  }
1978
- const At = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/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//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", da = /* @__PURE__ */ new WeakMap();
1979
- let ba, la = 0;
1978
+ const At = "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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+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", ba = /* @__PURE__ */ new WeakMap();
1979
+ let la, ha = 0;
1980
1980
  class P extends Fa {
1981
1981
  constructor(e) {
1982
- super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Ti(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.');
1982
+ super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new Fi(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.');
1983
1983
  }
1984
1984
  setTranscoderPath(e) {
1985
1985
  return this.transcoderPath = e, this;
@@ -2004,10 +2004,10 @@ class P extends Fa {
2004
2004
  const r = P.BasisWorker.toString(), c = ["/* constants */", "let _EngineFormat = " + JSON.stringify(P.EngineFormat), "let _EngineType = " + JSON.stringify(P.EngineType), "let _TranscoderFormat = " + JSON.stringify(P.TranscoderFormat), "let _BasisFormat = " + JSON.stringify(P.BasisFormat), "/* basis_transcoder.js */", i, "/* worker */", r.substring(r.indexOf("{") + 1, r.lastIndexOf("}"))].join(`
2005
2005
  `);
2006
2006
  this.workerSourceURL = URL.createObjectURL(new Blob([c])), this.transcoderBinary = s, this.workerPool.setWorkerCreator(() => {
2007
- const n = new Worker(this.workerSourceURL), d = this.transcoderBinary.slice(0);
2008
- return n.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: d }, [d]), n;
2007
+ const n = new Worker(this.workerSourceURL), b = this.transcoderBinary.slice(0);
2008
+ return n.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: b }, [b]), n;
2009
2009
  });
2010
- }), la > 0 && console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."), la++;
2010
+ }), ha > 0 && console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."), ha++;
2011
2011
  }
2012
2012
  return this.transcoderPending;
2013
2013
  }
@@ -2020,91 +2020,91 @@ class P extends Fa {
2020
2020
  }
2021
2021
  parse(e, a, t) {
2022
2022
  if (this.workerConfig === null) throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");
2023
- if (da.has(e))
2024
- return da.get(e).promise.then(a).catch(t);
2023
+ if (ba.has(e))
2024
+ return ba.get(e).promise.then(a).catch(t);
2025
2025
  this._createTexture(e).then((A) => a ? a(A) : null).catch(t);
2026
2026
  }
2027
2027
  _createTextureFrom(e, a) {
2028
- const { type: t, error: A, data: { faces: i, width: s, height: r, format: c, type: n, dfdFlags: d } } = e;
2028
+ const { type: t, error: A, data: { faces: i, width: s, height: r, format: c, type: n, dfdFlags: b } } = e;
2029
2029
  if (t === "error") return Promise.reject(A);
2030
- let b;
2031
- if (a.faceCount === 6) b = new MA(i, c, n);
2030
+ let d;
2031
+ if (a.faceCount === 6) d = new MA(i, c, n);
2032
2032
  else {
2033
2033
  const l = i[0].mipmaps;
2034
- b = a.layerCount > 1 ? new RA(l, s, r, a.layerCount, c, n) : new qa(l, s, r, c, n);
2034
+ d = a.layerCount > 1 ? new RA(l, s, r, a.layerCount, c, n) : new qa(l, s, r, c, n);
2035
2035
  }
2036
- return b.minFilter = i[0].mipmaps.length === 1 ? He : va, b.magFilter = He, b.generateMipmaps = !1, b.needsUpdate = !0, b.colorSpace = it(a), b.premultiplyAlpha = !!(1 & d), b;
2036
+ return d.minFilter = i[0].mipmaps.length === 1 ? Ce : $e, d.magFilter = Ce, d.generateMipmaps = !1, d.needsUpdate = !0, d.colorSpace = it(a), d.premultiplyAlpha = !!(1 & b), d;
2037
2037
  }
2038
2038
  async _createTexture(e, a = {}) {
2039
2039
  const t = function(r) {
2040
2040
  const c = new Uint8Array(r.buffer, r.byteOffset, U.length);
2041
2041
  if (c[0] !== U[0] || c[1] !== U[1] || c[2] !== U[2] || c[3] !== U[3] || c[4] !== U[4] || c[5] !== U[5] || c[6] !== U[6] || c[7] !== U[7] || c[8] !== U[8] || c[9] !== U[9] || c[10] !== U[10] || c[11] !== U[11]) throw new Error("Missing KTX 2.0 identifier.");
2042
- const n = new Li(), d = 17 * Uint32Array.BYTES_PER_ELEMENT, b = new Fe(r, U.length, d, !0);
2043
- n.vkFormat = b._nextUint32(), n.typeSize = b._nextUint32(), n.pixelWidth = b._nextUint32(), n.pixelHeight = b._nextUint32(), n.pixelDepth = b._nextUint32(), n.layerCount = b._nextUint32(), n.faceCount = b._nextUint32();
2044
- const l = b._nextUint32();
2045
- n.supercompressionScheme = b._nextUint32();
2046
- const g = b._nextUint32(), h = b._nextUint32(), f = b._nextUint32(), I = b._nextUint32(), u = b._nextUint64(), C = b._nextUint64(), p = new Fe(r, U.length + d, 3 * l * 8, !0);
2047
- for (let R = 0; R < l; R++) n.levels.push({ levelData: new Uint8Array(r.buffer, r.byteOffset + p._nextUint64(), p._nextUint64()), uncompressedByteLength: p._nextUint64() });
2048
- const B = new Fe(r, g, h, !0), y = { vendorId: B._skip(4)._nextUint16(), descriptorType: B._nextUint16(), versionNumber: B._nextUint16(), descriptorBlockSize: B._nextUint16(), colorModel: B._nextUint8(), colorPrimaries: B._nextUint8(), transferFunction: B._nextUint8(), flags: B._nextUint8(), texelBlockDimension: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], bytesPlane: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], samples: [] }, x = (y.descriptorBlockSize / 4 - 6) / 4;
2042
+ const n = new Ti(), b = 17 * Uint32Array.BYTES_PER_ELEMENT, d = new Fe(r, U.length, b, !0);
2043
+ n.vkFormat = d._nextUint32(), n.typeSize = d._nextUint32(), n.pixelWidth = d._nextUint32(), n.pixelHeight = d._nextUint32(), n.pixelDepth = d._nextUint32(), n.layerCount = d._nextUint32(), n.faceCount = d._nextUint32();
2044
+ const l = d._nextUint32();
2045
+ n.supercompressionScheme = d._nextUint32();
2046
+ const g = d._nextUint32(), h = d._nextUint32(), f = d._nextUint32(), I = d._nextUint32(), u = d._nextUint64(), p = d._nextUint64(), B = new Fe(r, U.length + b, 3 * l * 8, !0);
2047
+ for (let R = 0; R < l; R++) n.levels.push({ levelData: new Uint8Array(r.buffer, r.byteOffset + B._nextUint64(), B._nextUint64()), uncompressedByteLength: B._nextUint64() });
2048
+ const C = new Fe(r, g, h, !0), w = { vendorId: C._skip(4)._nextUint16(), descriptorType: C._nextUint16(), versionNumber: C._nextUint16(), descriptorBlockSize: C._nextUint16(), colorModel: C._nextUint8(), colorPrimaries: C._nextUint8(), transferFunction: C._nextUint8(), flags: C._nextUint8(), texelBlockDimension: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], bytesPlane: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], samples: [] }, x = (w.descriptorBlockSize / 4 - 6) / 4;
2049
2049
  for (let R = 0; R < x; R++) {
2050
- const L = { bitOffset: B._nextUint16(), bitLength: B._nextUint8(), channelType: B._nextUint8(), samplePosition: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
2051
- 64 & L.channelType ? (L.sampleLower = B._nextInt32(), L.sampleUpper = B._nextInt32()) : (L.sampleLower = B._nextUint32(), L.sampleUpper = B._nextUint32()), y.samples[R] = L;
2050
+ const L = { bitOffset: C._nextUint16(), bitLength: C._nextUint8(), channelType: C._nextUint8(), samplePosition: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
2051
+ 64 & L.channelType ? (L.sampleLower = C._nextInt32(), L.sampleUpper = C._nextInt32()) : (L.sampleLower = C._nextUint32(), L.sampleUpper = C._nextUint32()), w.samples[R] = L;
2052
2052
  }
2053
- n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(y);
2054
- const w = new Fe(r, f, I, !0);
2055
- for (; w._offset < I; ) {
2056
- const R = w._nextUint32(), L = w._scan(R), q = tt(L);
2057
- if (n.keyValue[q] = w._nextUint8Array(R - L.byteLength - 1), q.match(/^ktx/i)) {
2053
+ n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(w);
2054
+ const y = new Fe(r, f, I, !0);
2055
+ for (; y._offset < I; ) {
2056
+ const R = y._nextUint32(), L = y._scan(R), q = tt(L);
2057
+ if (n.keyValue[q] = y._nextUint8Array(R - L.byteLength - 1), q.match(/^ktx/i)) {
2058
2058
  const V = tt(n.keyValue[q]);
2059
2059
  n.keyValue[q] = V.substring(0, V.lastIndexOf("\0"));
2060
2060
  }
2061
- w._skip(R % 4 ? 4 - R % 4 : 0);
2061
+ y._skip(R % 4 ? 4 - R % 4 : 0);
2062
2062
  }
2063
- if (C <= 0) return n;
2064
- const E = new Fe(r, u, C, !0), Q = E._nextUint16(), k = E._nextUint16(), D = E._nextUint32(), v = E._nextUint32(), _ = E._nextUint32(), $e = E._nextUint32(), je = [];
2065
- for (let R = 0; R < l; R++) je.push({ imageFlags: E._nextUint32(), rgbSliceByteOffset: E._nextUint32(), rgbSliceByteLength: E._nextUint32(), alphaSliceByteOffset: E._nextUint32(), alphaSliceByteLength: E._nextUint32() });
2066
- const qe = u + E._offset, Me = qe + D, Re = Me + v, Se = Re + _, Oe = new Uint8Array(r.buffer, r.byteOffset + qe, D), Je = new Uint8Array(r.buffer, r.byteOffset + Me, v), z = new Uint8Array(r.buffer, r.byteOffset + Re, _), pe = new Uint8Array(r.buffer, r.byteOffset + Se, $e);
2067
- return n.globalData = { endpointCount: Q, selectorCount: k, imageDescs: je, endpointsData: Oe, selectorsData: Je, tablesData: z, extendedData: pe }, n;
2063
+ if (p <= 0) return n;
2064
+ const m = new Fe(r, u, p, !0), Q = m._nextUint16(), k = m._nextUint16(), D = m._nextUint32(), F = m._nextUint32(), _ = m._nextUint32(), ea = m._nextUint32(), Me = [];
2065
+ for (let R = 0; R < l; R++) Me.push({ imageFlags: m._nextUint32(), rgbSliceByteOffset: m._nextUint32(), rgbSliceByteLength: m._nextUint32(), alphaSliceByteOffset: m._nextUint32(), alphaSliceByteLength: m._nextUint32() });
2066
+ const qe = u + m._offset, Re = qe + D, Se = Re + F, ve = Se + _, Oe = new Uint8Array(r.buffer, r.byteOffset + qe, D), Je = new Uint8Array(r.buffer, r.byteOffset + Re, F), z = new Uint8Array(r.buffer, r.byteOffset + Se, _), me = new Uint8Array(r.buffer, r.byteOffset + ve, ea);
2067
+ return n.globalData = { endpointCount: Q, selectorCount: k, imageDescs: Me, endpointsData: Oe, selectorsData: Je, tablesData: z, extendedData: me }, n;
2068
2068
  }(new Uint8Array(e)), A = t.vkFormat === Ta && t.dataFormatDescriptor[0].colorModel === 167;
2069
2069
  if (!(t.vkFormat === 0 || A && !this.workerConfig.astcHDRSupported)) return async function(r) {
2070
2070
  const { vkFormat: c } = r;
2071
- if (ha[c] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
2071
+ if (ga[c] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
2072
2072
  let n;
2073
- r.supercompressionScheme === 2 && (ba || (ba = new Promise(async (l) => {
2074
- const g = new Gi();
2073
+ r.supercompressionScheme === 2 && (la || (la = new Promise(async (l) => {
2074
+ const g = new Li();
2075
2075
  await g.init(), l(g);
2076
- })), n = await ba);
2077
- const d = [];
2076
+ })), n = await la);
2077
+ const b = [];
2078
2078
  for (let l = 0; l < r.levels.length; l++) {
2079
2079
  const g = Math.max(1, r.pixelWidth >> l), h = Math.max(1, r.pixelHeight >> l), f = r.pixelDepth ? Math.max(1, r.pixelDepth >> l) : 0, I = r.levels[l];
2080
- let u, C;
2080
+ let u, p;
2081
2081
  if (r.supercompressionScheme === 0) u = I.levelData;
2082
2082
  else {
2083
2083
  if (r.supercompressionScheme !== 2) throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
2084
2084
  u = n.decode(I.levelData, I.uncompressedByteLength);
2085
2085
  }
2086
- C = ga[c] === F ? new Float32Array(u.buffer, u.byteOffset, u.byteLength / Float32Array.BYTES_PER_ELEMENT) : ga[c] === we ? new Uint16Array(u.buffer, u.byteOffset, u.byteLength / Uint16Array.BYTES_PER_ELEMENT) : u, d.push({ data: C, width: g, height: h, depth: f });
2086
+ p = fa[c] === v ? new Float32Array(u.buffer, u.byteOffset, u.byteLength / Float32Array.BYTES_PER_ELEMENT) : fa[c] === xe ? new Uint16Array(u.buffer, u.byteOffset, u.byteLength / Uint16Array.BYTES_PER_ELEMENT) : u, b.push({ data: p, width: g, height: h, depth: f });
2087
2087
  }
2088
- let b;
2089
- if (Ui.has(ha[c])) b = r.pixelDepth === 0 ? new Le(d[0].data, r.pixelWidth, r.pixelHeight) : new _A(d[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
2088
+ let d;
2089
+ if (Gi.has(ga[c])) d = r.pixelDepth === 0 ? new Ge(b[0].data, r.pixelWidth, r.pixelHeight) : new _A(b[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
2090
2090
  else {
2091
2091
  if (r.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
2092
- b = new qa(d, r.pixelWidth, r.pixelHeight);
2092
+ d = new qa(b, r.pixelWidth, r.pixelHeight), d.minFilter = b.length === 1 ? Ce : $e, d.magFilter = Ce;
2093
2093
  }
2094
- return b.mipmaps = d, b.type = ga[c], b.format = ha[c], b.colorSpace = it(r), b.needsUpdate = !0, Promise.resolve(b);
2094
+ return d.mipmaps = b, d.type = fa[c], d.format = ga[c], d.colorSpace = it(r), d.needsUpdate = !0, Promise.resolve(d);
2095
2095
  }(t);
2096
2096
  const i = a, s = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: i }, [e])).then((r) => this._createTextureFrom(r.data, t));
2097
- return da.set(e, { promise: s }), s;
2097
+ return ba.set(e, { promise: s }), s;
2098
2098
  }
2099
2099
  dispose() {
2100
- return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), la--, this;
2100
+ return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), ha--, this;
2101
2101
  }
2102
2102
  }
2103
- P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, P.EngineFormat = { RGBAFormat: $, RGBA_ASTC_4x4_Format: Qt, RGB_BPTC_UNSIGNED_Format: SA, RGBA_BPTC_Format: FA, RGBA_ETC2_EAC_Format: vA, RGBA_PVRTC_4BPPV1_Format: TA, RGBA_S3TC_DXT5_Format: LA, RGB_ETC1_Format: GA, RGB_ETC2_Format: UA, RGB_PVRTC_4BPPV1_Format: NA, RGBA_S3TC_DXT1_Format: PA }, P.EngineType = { UnsignedByteType: X, HalfFloatType: we, FloatType: F }, P.BasisWorker = function() {
2103
+ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, P.EngineFormat = { RGBAFormat: $, RGBA_ASTC_4x4_Format: Qt, RGB_BPTC_UNSIGNED_Format: SA, RGBA_BPTC_Format: vA, RGBA_ETC2_EAC_Format: FA, RGBA_PVRTC_4BPPV1_Format: TA, RGBA_S3TC_DXT5_Format: LA, RGB_ETC1_Format: GA, RGB_ETC2_Format: UA, RGB_PVRTC_4BPPV1_Format: NA, RGBA_S3TC_DXT1_Format: PA }, P.EngineType = { UnsignedByteType: X, HalfFloatType: xe, FloatType: v }, P.BasisWorker = function() {
2104
2104
  let o, e, a;
2105
2105
  const t = _EngineFormat, A = _EngineType, i = _TranscoderFormat, s = _BasisFormat;
2106
- self.addEventListener("message", function(b) {
2107
- const l = b.data;
2106
+ self.addEventListener("message", function(d) {
2107
+ const l = d.data;
2108
2108
  switch (l.type) {
2109
2109
  case "init":
2110
2110
  o = l.config, g = l.transcoderBinary, e = new Promise((h) => {
@@ -2116,52 +2116,52 @@ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC
2116
2116
  case "transcode":
2117
2117
  e.then(() => {
2118
2118
  try {
2119
- const { faces: h, buffers: f, width: I, height: u, hasAlpha: C, format: p, type: B, dfdFlags: y } = function(x) {
2120
- const w = new a.KTX2File(new Uint8Array(x));
2121
- function E() {
2122
- w.close(), w.delete();
2119
+ const { faces: h, buffers: f, width: I, height: u, hasAlpha: p, format: B, type: C, dfdFlags: w } = function(x) {
2120
+ const y = new a.KTX2File(new Uint8Array(x));
2121
+ function m() {
2122
+ y.close(), y.delete();
2123
2123
  }
2124
- if (!w.isValid()) throw E(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
2124
+ if (!y.isValid()) throw m(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
2125
2125
  let Q;
2126
- if (w.isUASTC()) Q = s.UASTC;
2127
- else if (w.isETC1S()) Q = s.ETC1S;
2126
+ if (y.isUASTC()) Q = s.UASTC;
2127
+ else if (y.isETC1S()) Q = s.ETC1S;
2128
2128
  else {
2129
- if (!w.isHDR()) throw new Error("THREE.KTX2Loader: Unknown Basis encoding");
2129
+ if (!y.isHDR()) throw new Error("THREE.KTX2Loader: Unknown Basis encoding");
2130
2130
  Q = s.UASTC_HDR;
2131
2131
  }
2132
- const k = w.getWidth(), D = w.getHeight(), v = w.getLayers() || 1, _ = w.getLevels(), $e = w.getFaces(), je = w.getHasAlpha(), qe = w.getDFDFlags(), { transcoderFormat: Me, engineFormat: Re, engineType: Se } = function(z, pe, R, L) {
2132
+ const k = y.getWidth(), D = y.getHeight(), F = y.getLayers() || 1, _ = y.getLevels(), ea = y.getFaces(), Me = y.getHasAlpha(), qe = y.getDFDFlags(), { transcoderFormat: Re, engineFormat: Se, engineType: ve } = function(z, me, R, L) {
2133
2133
  const q = c[z];
2134
2134
  for (let V = 0; V < q.length; V++) {
2135
2135
  const O = q[V];
2136
- if (!(O.if && !o[O.if]) && O.basisFormat.includes(z) && !(L && O.transcoderFormat.length < 2) && !(O.needsPowerOfTwo && (!n(pe) || !n(R))))
2136
+ if (!(O.if && !o[O.if]) && O.basisFormat.includes(z) && !(L && O.transcoderFormat.length < 2) && !(O.needsPowerOfTwo && (!n(me) || !n(R))))
2137
2137
  return { transcoderFormat: O.transcoderFormat[L ? 1 : 0], engineFormat: O.engineFormat[L ? 1 : 0], engineType: O.engineType[0] };
2138
2138
  }
2139
2139
  throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.");
2140
- }(Q, k, D, je);
2141
- if (!k || !D || !_) throw E(), new Error("THREE.KTX2Loader: Invalid texture");
2142
- if (!w.startTranscoding()) throw E(), new Error("THREE.KTX2Loader: .startTranscoding failed");
2140
+ }(Q, k, D, Me);
2141
+ if (!k || !D || !_) throw m(), new Error("THREE.KTX2Loader: Invalid texture");
2142
+ if (!y.startTranscoding()) throw m(), new Error("THREE.KTX2Loader: .startTranscoding failed");
2143
2143
  const Oe = [], Je = [];
2144
- for (let z = 0; z < $e; z++) {
2145
- const pe = [];
2144
+ for (let z = 0; z < ea; z++) {
2145
+ const me = [];
2146
2146
  for (let R = 0; R < _; R++) {
2147
2147
  const L = [];
2148
2148
  let q, V;
2149
- for (let Ee = 0; Ee < v; Ee++) {
2150
- const me = w.getImageLevelInfo(R, Ee, z);
2151
- z !== 0 || R !== 0 || Ee !== 0 || me.origWidth % 4 == 0 && me.origHeight % 4 == 0 || console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), _ > 1 ? (q = me.origWidth, V = me.origHeight) : (q = me.width, V = me.height);
2152
- let Qe = new Uint8Array(w.getImageTranscodedSizeInBytes(R, Ee, 0, Me));
2153
- const Yt = w.transcodeImage(Qe, R, Ee, z, Me, 0, -1, -1);
2154
- if (Se === A.HalfFloatType && (Qe = new Uint16Array(Qe.buffer, Qe.byteOffset, Qe.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !Yt) throw E(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
2155
- L.push(Qe);
2149
+ for (let Ee = 0; Ee < F; Ee++) {
2150
+ const Qe = y.getImageLevelInfo(R, Ee, z);
2151
+ z !== 0 || R !== 0 || Ee !== 0 || Qe.origWidth % 4 == 0 && Qe.origHeight % 4 == 0 || console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), _ > 1 ? (q = Qe.origWidth, V = Qe.origHeight) : (q = Qe.width, V = Qe.height);
2152
+ let ye = new Uint8Array(y.getImageTranscodedSizeInBytes(R, Ee, 0, Re));
2153
+ const Yt = y.transcodeImage(ye, R, Ee, z, Re, 0, -1, -1);
2154
+ if (ve === A.HalfFloatType && (ye = new Uint16Array(ye.buffer, ye.byteOffset, ye.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !Yt) throw m(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
2155
+ L.push(ye);
2156
2156
  }
2157
- const O = d(L);
2158
- pe.push({ data: O, width: q, height: V }), Je.push(O.buffer);
2157
+ const O = b(L);
2158
+ me.push({ data: O, width: q, height: V }), Je.push(O.buffer);
2159
2159
  }
2160
- Oe.push({ mipmaps: pe, width: k, height: D, format: Re, type: Se });
2160
+ Oe.push({ mipmaps: me, width: k, height: D, format: Se, type: ve });
2161
2161
  }
2162
- return E(), { faces: Oe, buffers: Je, width: k, height: D, hasAlpha: je, dfdFlags: qe, format: Re, type: Se };
2162
+ return m(), { faces: Oe, buffers: Je, width: k, height: D, hasAlpha: Me, dfdFlags: qe, format: Se, type: ve };
2163
2163
  }(l.buffer);
2164
- self.postMessage({ type: "transcode", id: l.id, data: { faces: h, width: I, height: u, hasAlpha: C, format: p, type: B, dfdFlags: y } }, f);
2164
+ self.postMessage({ type: "transcode", id: l.id, data: { faces: h, width: I, height: u, hasAlpha: p, format: B, type: C, dfdFlags: w } }, f);
2165
2165
  } catch (h) {
2166
2166
  console.error(h), self.postMessage({ type: "error", id: l.id, error: h.message });
2167
2167
  }
@@ -2169,25 +2169,25 @@ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC
2169
2169
  }
2170
2170
  var g;
2171
2171
  });
2172
- const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }], c = { [s.ETC1S]: r.filter((b) => b.basisFormat.includes(s.ETC1S)).sort((b, l) => b.priorityUASTC - l.priorityUASTC), [s.UASTC]: r.filter((b) => b.basisFormat.includes(s.UASTC)).sort((b, l) => b.priorityUASTC - l.priorityUASTC), [s.UASTC_HDR]: r.filter((b) => b.basisFormat.includes(s.UASTC_HDR)).sort((b, l) => b.priorityHDR - l.priorityHDR) };
2173
- function n(b) {
2174
- return b <= 2 || !(b & b - 1) && b !== 0;
2172
+ const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }], c = { [s.ETC1S]: r.filter((d) => d.basisFormat.includes(s.ETC1S)).sort((d, l) => d.priorityUASTC - l.priorityUASTC), [s.UASTC]: r.filter((d) => d.basisFormat.includes(s.UASTC)).sort((d, l) => d.priorityUASTC - l.priorityUASTC), [s.UASTC_HDR]: r.filter((d) => d.basisFormat.includes(s.UASTC_HDR)).sort((d, l) => d.priorityHDR - l.priorityHDR) };
2173
+ function n(d) {
2174
+ return d <= 2 || !(d & d - 1) && d !== 0;
2175
2175
  }
2176
- function d(b) {
2177
- if (b.length === 1) return b[0];
2176
+ function b(d) {
2177
+ if (d.length === 1) return d[0];
2178
2178
  let l = 0;
2179
- for (let f = 0; f < b.length; f++)
2180
- l += b[f].byteLength;
2179
+ for (let f = 0; f < d.length; f++)
2180
+ l += d[f].byteLength;
2181
2181
  const g = new Uint8Array(l);
2182
2182
  let h = 0;
2183
- for (let f = 0; f < b.length; f++) {
2184
- const I = b[f];
2183
+ for (let f = 0; f < d.length; f++) {
2184
+ const I = d[f];
2185
2185
  g.set(I, h), h += I.byteLength;
2186
2186
  }
2187
2187
  return g;
2188
2188
  }
2189
2189
  };
2190
- const Ui = /* @__PURE__ */ new Set([$, Ge, Ue]), ha = { [qt]: $, [Pt]: $, [Lt]: $, [Gt]: $, [Ht]: Ge, [Nt]: Ge, [vt]: Ge, [Tt]: Ge, [_t]: Ue, [Ut]: Ue, [Ft]: Ue, [St]: Ue, [Ta]: Qt, [Jt]: Oa, [Ot]: Oa }, ga = { [qt]: F, [Pt]: we, [Lt]: X, [Gt]: X, [Ht]: F, [Nt]: we, [vt]: X, [Tt]: X, [_t]: F, [Ut]: we, [Ft]: X, [St]: X, [Ta]: we, [Jt]: X, [Ot]: X };
2190
+ const Gi = /* @__PURE__ */ new Set([$, Ue, Ne]), ga = { [qt]: $, [Pt]: $, [Lt]: $, [Gt]: $, [Ht]: Ue, [Nt]: Ue, [Ft]: Ue, [Tt]: Ue, [_t]: Ne, [Ut]: Ne, [vt]: Ne, [St]: Ne, [Ta]: Qt, [Jt]: Oa, [Ot]: Oa }, fa = { [qt]: v, [Pt]: xe, [Lt]: X, [Gt]: X, [Ht]: v, [Nt]: xe, [Ft]: X, [Tt]: X, [_t]: v, [Ut]: xe, [vt]: X, [St]: X, [Ta]: xe, [Jt]: X, [Ot]: X };
2191
2191
  function it(o) {
2192
2192
  const e = o.dataFormatDescriptor[0];
2193
2193
  return e.colorPrimaries === 1 ? e.transferFunction === 2 ? re : K : e.colorPrimaries === 10 ? e.transferFunction === 2 ? "display-p3" : "display-p3-linear" : (e.colorPrimaries === 0 || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), HA);
@@ -2201,49 +2201,49 @@ async function st(o) {
2201
2201
  }
2202
2202
  if (e === "subtree")
2203
2203
  return async function(t, A) {
2204
- const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0), c = 24, n = c + Number(s), d = n + (8 - n % 8) % 8, b = d + Number(r), l = t.slice(c, n), g = new TextDecoder().decode(l).trim(), h = JSON.parse(g);
2204
+ const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0), c = 24, n = c + Number(s), b = n + (8 - n % 8) % 8, d = b + Number(r), l = t.slice(c, n), g = new TextDecoder().decode(l).trim(), h = JSON.parse(g);
2205
2205
  if (!h.buffers) throw new Error("subtree has no buffers");
2206
2206
  const f = h.buffers.map(async (u) => {
2207
2207
  if (u.uri) {
2208
- const C = new URL(u.uri, A).href, p = await fetch(C);
2209
- if (!p.ok) throw new Error(`Failed to fetch binary file ${C}: ${p.statusText}`);
2210
- return new Uint8Array(await p.arrayBuffer());
2208
+ const p = new URL(u.uri, A).href, B = await fetch(p);
2209
+ if (!B.ok) throw new Error(`Failed to fetch binary file ${p}: ${B.statusText}`);
2210
+ return new Uint8Array(await B.arrayBuffer());
2211
2211
  }
2212
- return new Uint8Array(t.slice(d, b));
2212
+ return new Uint8Array(t.slice(b, d));
2213
2213
  }), I = await Promise.all(f);
2214
- return /* @__PURE__ */ function(u, C) {
2215
- function p(E, Q) {
2216
- if (!E) throw new Error("incomplete json subtree");
2217
- if (E.constant) {
2218
- if (E.constant == 0) return !1;
2219
- if (E.constant == 1) return !0;
2214
+ return /* @__PURE__ */ function(u, p) {
2215
+ function B(m, Q) {
2216
+ if (!m) throw new Error("incomplete json subtree");
2217
+ if (m.constant) {
2218
+ if (m.constant == 0) return !1;
2219
+ if (m.constant == 1) return !0;
2220
2220
  }
2221
- if (E.bitstream == null) throw new Error('json subtree "tileAvailability" does not specify a bitstream');
2222
- if (!u.bufferViews || !u.bufferViews[E.bitstream]) throw new Error('json subtree "bufferViews" does not specify a bitstream');
2223
- const k = u.bufferViews[E.bitstream];
2224
- return B(C[k.buffer], k.byteOffset, Q);
2221
+ if (m.bitstream == null) throw new Error('json subtree "tileAvailability" does not specify a bitstream');
2222
+ if (!u.bufferViews || !u.bufferViews[m.bitstream]) throw new Error('json subtree "bufferViews" does not specify a bitstream');
2223
+ const k = u.bufferViews[m.bitstream];
2224
+ return C(p[k.buffer], k.byteOffset, Q);
2225
2225
  }
2226
- function B(E, Q, k) {
2226
+ function C(m, Q, k) {
2227
2227
  const D = k % 8;
2228
- return E[Q + Math.floor(k / 8)] >> D & !0;
2228
+ return m[Q + Math.floor(k / 8)] >> D & !0;
2229
2229
  }
2230
- function y(E) {
2230
+ function w(m) {
2231
2231
  let Q = 0;
2232
- return Q = E.z == null ? fa(E.x, E.y, E.level) : ua(E.x, E.y, E.z, E.level), p(u.tileAvailability, Q);
2232
+ return Q = m.z == null ? ua(m.x, m.y, m.level) : pa(m.x, m.y, m.z, m.level), B(u.tileAvailability, Q);
2233
2233
  }
2234
- function x(E) {
2234
+ function x(m) {
2235
2235
  let Q = 0;
2236
- Q = E.z == null ? fa(E.x, E.y, E.level) : ua(E.x, E.y, E.z, E.level);
2236
+ Q = m.z == null ? ua(m.x, m.y, m.level) : pa(m.x, m.y, m.z, m.level);
2237
2237
  const k = [];
2238
2238
  return u.contentAvailability.forEach((D) => {
2239
- k.push(p(D, Q));
2239
+ k.push(B(D, Q));
2240
2240
  }), k;
2241
2241
  }
2242
- function w(E) {
2242
+ function y(m) {
2243
2243
  let Q = 0;
2244
- return Q = E.z == null ? fa(E.x, E.y) : ua(E.x, E.y, E.z), p(u.childSubtreeAvailability, Q);
2244
+ return Q = m.z == null ? ua(m.x, m.y) : pa(m.x, m.y, m.z), B(u.childSubtreeAvailability, Q);
2245
2245
  }
2246
- return { isTileAvailable: y, isContentAvailable: x, isChildSubtreeAvailable: w };
2246
+ return { isTileAvailable: w, isContentAvailable: x, isChildSubtreeAvailable: y };
2247
2247
  }(h, I);
2248
2248
  }(await a.arrayBuffer(), rt(o));
2249
2249
  throw new Error(`Unsupported file extension: ${e}`);
@@ -2255,18 +2255,18 @@ function rt(o) {
2255
2255
  function nt(o) {
2256
2256
  return o = 1431655765 & ((o = 858993459 & ((o = 252645135 & ((o = 16711935 & ((o &= 65535) ^ o << 8)) ^ o << 4)) ^ o << 2)) ^ o << 1);
2257
2257
  }
2258
- function fa(o, e, a) {
2258
+ function ua(o, e, a) {
2259
2259
  let t = 0;
2260
2260
  return a && (t = (Math.pow(4, a) - 1) / 3), t + (nt(o) | nt(e) << 1);
2261
2261
  }
2262
2262
  function Ia(o) {
2263
2263
  return o = 153391689 & ((o = 51130563 & ((o = 50393103 & ((o = 4278190335 & ((o &= 1023) ^ o << 16)) ^ o << 8)) ^ o << 4)) ^ o << 2);
2264
2264
  }
2265
- function ua(o, e, a, t) {
2265
+ function pa(o, e, a, t) {
2266
2266
  let A = 0;
2267
2267
  return t && (A = (Math.pow(8, t) - 1) / 7), A + (Ia(o) | Ia(e) << 1 | Ia(a) << 2);
2268
2268
  }
2269
- const ve = /* @__PURE__ */ new Map();
2269
+ const Te = /* @__PURE__ */ new Map();
2270
2270
  async function La(o, e) {
2271
2271
  if (!o.root || !o.root.implicitTiling) return o;
2272
2272
  if (!o.root.content && !o.root.contents) throw new Error("implicit tiling requires a Template URI");
@@ -2285,46 +2285,46 @@ async function La(o, e) {
2285
2285
  let s;
2286
2286
  a && (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0)), a || (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0).replace("{z}", 0));
2287
2287
  const r = { level: 0, x: 0, y: 0 }, c = { level: 0, x: 0, y: 0 };
2288
- a || (r.z = 0, c.z = 0), ve.set(s, await st(i + s));
2289
- const n = ve.get(s), d = [];
2288
+ a || (r.z = 0, c.z = 0), Te.set(s, await st(i + s));
2289
+ const n = Te.get(s), b = [];
2290
2290
  n.isContentAvailable(c) && A.forEach((g) => {
2291
2291
  let h;
2292
- a && (h = g.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (h = g.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), d.push({ uri: h });
2292
+ a && (h = g.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (h = g.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), b.push({ uri: h });
2293
2293
  });
2294
- const b = { geometricError: o.root.geometricError, boundingVolume: o.root.boundingVolume, refine: o.root.refine, globalAddress: r, localAddress: c, subtree: n, contents: d, getChildren: async () => l(b) };
2295
- return { root: b };
2294
+ const d = { geometricError: o.root.geometricError, boundingVolume: o.root.boundingVolume, refine: o.root.refine, globalAddress: r, localAddress: c, subtree: n, contents: b, getChildren: async () => l(d) };
2295
+ return { root: d };
2296
2296
  async function l(g) {
2297
2297
  const h = [];
2298
2298
  if (g.localAddress.level == o.root.implicitTiling.availableLevels - 1) return h;
2299
2299
  if ((g.localAddress.level + 1) % o.root.implicitTiling.subtreeLevels == 0) {
2300
2300
  const f = ze(g.localAddress), I = ze(g.globalAddress), u = ot(a, o.root.boundingVolume, I);
2301
- for (let C = 0; C < f.length; C++) {
2302
- const p = f[C], B = I[C];
2303
- g.subtree.isChildSubtreeAvailable(p) && (a && t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y), a || t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), ve.has(s) || ve.set(s, await st(i + s));
2304
- const y = ve.get(s), x = { level: 0, x: 0, y: 0 };
2301
+ for (let p = 0; p < f.length; p++) {
2302
+ const B = f[p], C = I[p];
2303
+ g.subtree.isChildSubtreeAvailable(B) && (a && t.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y), a || t.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), Te.has(s) || Te.set(s, await st(i + s));
2304
+ const w = Te.get(s), x = { level: 0, x: 0, y: 0 };
2305
2305
  a || (x.z = 0);
2306
- const w = [];
2307
- y.isContentAvailable(x) && A.forEach((Q) => {
2306
+ const y = [];
2307
+ w.isContentAvailable(x) && A.forEach((Q) => {
2308
2308
  let k;
2309
- a && (k = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (k = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), w.push({ uri: k });
2309
+ a && (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y)), a || (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), y.push({ uri: k });
2310
2310
  });
2311
- const E = { geometricError: g.geometricError / 2, boundingVolume: u[C], refine: o.root.refine, globalAddress: B, localAddress: x, subtree: y, contents: w, getChildren: async () => l(E) };
2312
- h.push(E);
2311
+ const m = { geometricError: g.geometricError / 2, boundingVolume: u[p], refine: o.root.refine, globalAddress: C, localAddress: x, subtree: w, contents: y, getChildren: async () => l(m) };
2312
+ h.push(m);
2313
2313
  }
2314
2314
  } else {
2315
2315
  const f = ze(g.localAddress), I = ze(g.globalAddress), u = ot(a, o.root.boundingVolume, I);
2316
- for (let C = 0; C < f.length; C++) {
2317
- const p = f[C], B = I[C];
2318
- if (!g.subtree.isTileAvailable(p)) continue;
2319
- const y = [], x = g.subtree.isContentAvailable(p);
2320
- for (let E = 0; E < A.length; E++) {
2321
- if (!x[E]) continue;
2322
- const Q = A[E];
2316
+ for (let p = 0; p < f.length; p++) {
2317
+ const B = f[p], C = I[p];
2318
+ if (!g.subtree.isTileAvailable(B)) continue;
2319
+ const w = [], x = g.subtree.isContentAvailable(B);
2320
+ for (let m = 0; m < A.length; m++) {
2321
+ if (!x[m]) continue;
2322
+ const Q = A[m];
2323
2323
  let k;
2324
- a && (k = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (k = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), y.push({ uri: k });
2324
+ a && (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y)), a || (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), w.push({ uri: k });
2325
2325
  }
2326
- const w = { geometricError: g.geometricError / 2, boundingVolume: u[C], refine: o.root.refine, globalAddress: B, localAddress: p, subtree: g.subtree, contents: y, getChildren: async () => l(w) };
2327
- h.push(w);
2326
+ const y = { geometricError: g.geometricError / 2, boundingVolume: u[p], refine: o.root.refine, globalAddress: C, localAddress: B, subtree: g.subtree, contents: w, getChildren: async () => l(y) };
2327
+ h.push(y);
2328
2328
  }
2329
2329
  }
2330
2330
  return h.length > 0 ? h : void 0;
@@ -2337,17 +2337,17 @@ function ze(o) {
2337
2337
  }
2338
2338
  function ot(o, e, a) {
2339
2339
  const t = [];
2340
- for (let A = 0; A < a.length; A++) t.push(Ni(o, e, a[A]));
2340
+ for (let A = 0; A < a.length; A++) t.push(Ui(o, e, a[A]));
2341
2341
  return t;
2342
2342
  }
2343
- function Ni(o, e, a) {
2343
+ function Ui(o, e, a) {
2344
2344
  if (e.region) return function(t, A, i) {
2345
- const [s, r, c, n, d, b] = A, l = (c - s) / 2 ** i.level, g = (n - r) / 2 ** i.level, h = t ? 0 : (b - d) / 2 ** i.level, f = s + l * i.x, I = r + g * i.y, u = f + l, C = I + g, p = t ? d : d + h * i.z, B = t ? b : p + h;
2346
- return { region: [f, I, u, C, p, B] };
2345
+ const [s, r, c, n, b, d] = A, l = (c - s) / 2 ** i.level, g = (n - r) / 2 ** i.level, h = t ? 0 : (d - b) / 2 ** i.level, f = s + l * i.x, I = r + g * i.y, u = f + l, p = I + g, B = t ? b : b + h * i.z, C = t ? d : B + h;
2346
+ return { region: [f, I, u, p, B, C] };
2347
2347
  }(o, e.region, a);
2348
2348
  if (e.box) return function(t, A, i) {
2349
- const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)], c = 1 / Math.pow(2, i.level), n = [c, c, t ? 1 : c], d = r.map((g, h) => g.map((f) => f * n[h])), b = [s[0] - r[0][0] - r[1][0] - r[2][0], s[1] - r[0][1] - r[1][1] - r[2][1], s[2] - r[0][2] - r[1][2] - r[2][2]];
2350
- return { box: [b[0] + (2 * i.x + 1) * (d[0][0] + d[1][0] + d[2][0]), b[1] + (2 * i.y + 1) * (d[0][1] + d[1][1] + d[2][1]), t ? s[2] : b[2] + (2 * i.z + 1) * (d[0][2] + d[1][2] + d[2][2])].concat(...d) };
2349
+ const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)], c = 1 / Math.pow(2, i.level), n = [c, c, t ? 1 : c], b = r.map((g, h) => g.map((f) => f * n[h])), d = [s[0] - r[0][0] - r[1][0] - r[2][0], s[1] - r[0][1] - r[1][1] - r[2][1], s[2] - r[0][2] - r[1][2] - r[2][2]];
2350
+ return { box: [d[0] + (2 * i.x + 1) * (b[0][0] + b[1][0] + b[2][0]), d[1] + (2 * i.y + 1) * (b[0][1] + b[1][1] + b[2][1]), t ? s[2] : d[2] + (2 * i.z + 1) * (b[0][2] + b[1][2] + b[2][2])].concat(...b) };
2351
2351
  }(o, e.box, a);
2352
2352
  throw new Error("Unsupported bounding volume type");
2353
2353
  }
@@ -2355,13 +2355,13 @@ function Ni(o, e, a) {
2355
2355
  var o, e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
2356
2356
  if (typeof WebAssembly != "object") return { supported: !1 };
2357
2357
  var a = WebAssembly.instantiate(function(n) {
2358
- for (var d = new Uint8Array(n.length), b = 0; b < n.length; ++b) {
2359
- var l = n.charCodeAt(b);
2360
- d[b] = l > 96 ? l - 97 : l > 64 ? l - 39 : l + 4;
2358
+ for (var b = new Uint8Array(n.length), d = 0; d < n.length; ++d) {
2359
+ var l = n.charCodeAt(d);
2360
+ b[d] = l > 96 ? l - 97 : l > 64 ? l - 39 : l + 4;
2361
2361
  }
2362
2362
  var g = 0;
2363
- for (b = 0; b < n.length; ++b) d[g++] = d[b] < 60 ? e[d[b]] : 64 * (d[b] - 60) + d[++b];
2364
- return d.buffer.slice(0, g);
2363
+ for (d = 0; d < n.length; ++d) b[g++] = b[d] < 60 ? e[b[d]] : 64 * (b[d] - 60) + b[++d];
2364
+ return b.buffer.slice(0, g);
2365
2365
  }("b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:W;kekr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq:g9sLdbk;3keYu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRb:S:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9UhodndndndndnalTmbaoc;WFbGgecjdaecjd6Ehqcbhkdninakai9pmiaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndndndnaec9WGgsTmbcbhzcehHaPhOawhAxekdnaxTmbcbhAcehHaPhCinaDaAfRbbhXaDcjlfheaChoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkaraw9Ram6miawcbamzNjjjbgeTmiaCcefhCaeamfhwaAcefgAal6hHaAal9hmbxvkkaraw9Ram6mvawcbamzNjjjb8AceheinawgXamfhwalaegoSmldnaraw9Ram6mbaocefheawcbamzNjjjb8AaXmekkaoal6hHxekindnaxTmbaDazfRbbhXaDcjlfheaOhoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkkaraA9Ram6mearaAcbamzNjjjbgKamfgw9RcK6mdcbhYaDcjlfhAinaDcjlfaYfh8AcwhCczhLcehQindndnaQce9hmbcuhoa8ARbbmecbhodninaogecsSmeaecefhoaAaefcefRbbTmbkkcucbaecs6EhoxekaQcetc;:FFFeGhocuaQtcu7cFeGhXcbheinaoaXaAaefRbb9nfhoaecefgecz9hmbkkaoaLaoaL6geEhLaQaCaeEhCaQcetgQcw6mbkdndndndnaCcufPdiebkaKaYco4fgeaeRbbcdciaCclSEaYci4coGtV86bbaCcw9hmeawa8A8Pbb83bbawcwfa8Acwf8Pbb83bbawczfhwxdkaKaYco4fgeaeRbbceaYci4coGtV86bbkdncwaC9TgEmbinawcb86bbawcefhwxbkkcuaCtcu7h8Acbh3aAh5ina5heaEhQcbhoinaeRbbgLa8AcFeGgXaLaX6EaoaCtVhoaecefheaQcufgQmbkawao86bba5aEfh5awcefhwa3aEfg3cz6mbkcbheindnaAaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaYczfgYas9pmbaAczfhAaraw9RcL0mekkaYas6meawTmeaOcefhOazcefgzal6hHawhAazalSmixbkkcbhwaHceGTmexikcbhwaHceGmdkaDaPaxcufal2falz:tjjjb8AaxakfhkawmbkcbhoxokcbhoxvkaiTmekcbhoaraw9Ralcaalca0E6mialc8F9nmexdkcbhoaecufca6mdkawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9Rhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBd:S:kjjbk;rse3u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:C:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgoydbhLaocwfydbhKaoclfydbhYcbh8Adndninalc;abfavcsGcitfgoydlhEdndndnaoydbgoaL9hmbaEaYSmekdnaoaY9hmbaEaK9hmba8Acefh8AxekaoaK9hmeaEaL9hmea8Acdfh8Aka8Ac870mdaXcufhvada8AciGcx2goc:y1jjbfydbaCfcdtfydbhEadaocN1jjbfydbaCfcdtfydbhKadaoc:q1jjbfydbaCfcdtfydbhLcbhodnindnalavcsGcdtfydbaE9hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaEaOSgvaYce9iaYaH9oVgoGh3dndndndndncbcsavEaYaoEgvcs9hmbarce9imbaEaEaAaEcefaASgvEgAcefSmecmcsavEhvkasava8Acdtc;WeGV86bbavcs9hmeaEaA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbkaEhAxdkcPhvasa8AcdtcPV86bbaEhAkavTmbavaH9imekalaXcdtfaEBdbaXcefcsGhXkaOa3fhOalc;abfaQcitfgvaKBdlavaEBdbalc;abfaQcefcsGgvcitfgoaEBdlaoaLBdbavcefhoxikavcufhva8Aclfg8Ac;ab9hmbkkdnadceaKaOScetaYaOSEcx2gvc:q1jjbfydbaCfcdtfydbgLTadavcN1jjbfydbaCfcdtfydbg8AceSGadavc:y1jjbfydbaCfcdtfydbgYcdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhKxdkcuhKaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydbaY9hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaLaOSg8Efh3dndnaKcm0mbaKcefhKxekcbcsa8Aa3SgvEhKa3avfh3kdndnaEcm0mbaEcefhExekcbcsaYa3SgvEhEa3avfh3kc9:cua8EEh8FaEaKcltVhocbhvdndndninavcj1jjbfRbbaocFeGSmeavcefgvcz9hmbxdkka5aLaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeao86bbaecefhekdna8EmbaLaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaLhAkdnaKcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmbaYaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaYhAkalaXcdtfaLBdbaXcefcsGhvdndnaKPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfaYBdbavcefcsGhvkalc;abfaQcitfgoaLBdlaoa8ABdbalc;abfaQcefcsGcitfgoa8ABdlaoaYBdbalc;abfaQcdfcsGcitfgoaYBdlaoaLBdbaQcifhoavhXa3hOkascefhsaocsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:C:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:C:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhralcxfIdbhqdndnakJbbbb9GTmbaxhkxekJbbjZar:l:tgkak:maxJbbbb9GEhkJbbjZax:l:tgxax:marJbbbb9GEhrkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEavNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohmxekcjjjj94hmkdndnakJbbj:;akJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;akJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;klld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicdfciGcdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk:Hvdxue998Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6mearcearce0EhwaohDinaDc:CuBdbaDclfhDawcufgwmbkaeTmiadcl6mdarcearce0EhqarcdthkalhxcbhminaohDaxhwaqhPinaDaDydbgsawydbgzcL4cFeGc:cufcbazEgzasaz9kEBdbawclfhwaDclfhDaPcufgPmbkaxakfhxamcefgmae9hmbkkaeTmdxekaeTmekavcb9hadcl6gqVhHarcearce0Ehkarcdthrceai9Rhmcbhdindndndnavce9hmbaqmdc:CuhwalhDakhPinawaDydbgscL4cFeGc:cufcbasEgsawas9kEhwaDclfhDaPcufgPmbxdkkc:CuhwaHmbaohDalhPakhsinaDaPydbgzcL4cFeGgxc8Aaxc8A9kEc:cufcbazEBdbaPclfhPaDclfhDascufgsmbkkaqmbcbhDakhsinawhPdnavceSmbaoaDfydbhPkdndnalaDfIdbgOcjjj;8iamaPfgPcLt9R::NJbbbZJbbb:;aOJbbbb9GEMgO:lJbbb9p9DTmbaO:Ohzxekcjjjj94hzkabaDfazcFFFrGaPcKtVBdbaDclfhDascufgsmbkkabarfhbalarfhladcefgdae9hmbkkaocjdf8KjjjjbkFkdCui998Jjjjjbc:Gd9Rgv8Kjjjjbavc:4efcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgoadcFFFFi0Ecbyd:K:kjjbHjjjjbbgeBd:4eavceBd:ydaeabaoz:tjjjb8Akavc:OefcwfcbBdbav9cb83i:Oeavc:Oefaeadaiavc:4efz:njjjbcuaicdtgraicFFFFi0Egwcbyd:K:kjjbHjjjjbbhoavc:4efavyd:ydgDcdtfaoBdbavaDcefgqBd:ydaoavyd:Oegkarz:tjjjbhxavc:4efaqcdtfadci9Ugmcbyd:K:kjjbHjjjjbbgoBdbavaDcdfgrBd:ydaocbamzNjjjbhPavc:4efarcdtfawcbyd:K:kjjbHjjjjbbgsBdbavaDcifgqBd:ydaxhoashrinaralIdbalaoydbgwcwawcw6Ecdtfc;ebfIdbMUdbaoclfhoarclfhraicufgimbkavc:4efaqcdtfcuamcdtadcFFFF970Ecbyd:K:kjjbHjjjjbbgqBdbavaDclfBd:yddnadci6mbamceamce0EhiaehoaqhrinarasaoydbcdtfIdbasaoclfydbcdtfIdbMasaocwfydbcdtfIdbMUdbaocxfhoarclfhraicufgimbkkavc;qbfhzavhoavyd:SehHavyd:WehOcbhwcbhrcbhAcehCinaohXcihQaearci2gLcdtfgocwfydbhdaoydbhDabaAcx2fgiclfaoclfydbgKBdbaiaDBdbaicwfadBdbaParfce86bbazadBdwazaKBdlazaDBdbaqarcdtfcbBdbdnawTmbcihQaXhiinazaQcdtfaiydbgoBdbaQaoaD9haoaK9hGaoad9hGfhQaiclfhiawcufgwmbkkaAcefhAaxaDcdtfgoaoydbcufBdbaxaKcdtfgoaoydbcufBdbaxadcdtfgoaoydbcufBdbcbhwinaOaHaeawaLfcdtfydbcdtgifydbcdtfgKhoakaifgDydbgdhidnadTmbdninaoydbarSmeaoclfhoaicufgiTmdxbkkaoadcdtaKfc98fydbBdbaDaDydbcufBdbkawcefgwci9hmbkdndndnaQTmbcuhrJbbbbhYcbhDavyd:SehKavyd:WehLindndnakazaDcdtfydbcdtgofydbgimbaDcefhDxekaDcs0hwasaofgdIdbh8AadalcbaDcefgDawEcdtfIdbalaxaofydbgwcwawcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEaicdthiaLaKaofydbcdtfhoinaqaoydbgwcdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYawaradEhraoclfhoaic98fgimbkkaDaQ9hmbkarcu9hmekaCam9pmeindnaPaCfRbbmbaChrxdkamaCcefgC9hmbxdkkaQczaQcz6EhwazhoaXhzarcu9hmekkavyd:ydhokaocdtavc:4effc98fhrdninaoTmearydbcbyd:G:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:Gdf8Kjjjjbk;UlevucuaicdtgvaicFFFFi0Egocbyd:K:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhwdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbawceawce0EhDabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;:kivuo99lu8Jjjjjbcj;Hb9Rgl8Kjjjjbcbhvalc1;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:K:kjjbHjjjjbbgrBd19GalceBd;O9Galcwfcbyd:m:kjjbBdbalcb8Pd:e:kjjb83ibalc;W;Gbfcwfcbyd:y:kjjbBdbalcb8Pd:q:kjjb83i;W9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;W;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;49GhDalIdlhkalId;09GhxalIdbhmalId;W9GhPkdndnadTmbJbbbbJbbjZaPam:tJbbbb:xgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhialaocbyd:K:kjjbHjjjjbbgzBd:m9GdnadTmbabhHinaHaiBdbaHclfhHadaicefgi9hmbkadTmbabhiadhHinalaraiydbgecdtfydbcFrGcx2fgvavydbgvcefBdbazavcdtfaeBdbaiclfhiaHcufgHmbkazhiadhHinalaraiydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaiclfhiaHcufgHmbkabhiadhHinalaraiydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwazavcdtfaeBdbaiclfhiaHcufgHmbkadTmbcbhiinabazydbcdtfaiBdbazclfhzadaicefgi9hmbkkclhidninaic98Smealc1;Gbfaifydbcbyd:G:kjjbH:bjjjbbaic98fhixbkkalcj;Hbf8Kjjjjbk9teiucbcbyd:O:kjjbgeabcifc98GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:O:kjjbgeabcrfc94GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:O:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:O:kjjbfgdBd:O:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:6ddbcjwk:Cdb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc:Cqkzebbbebbbdbbb8WWbb"), {}).then(function(n) {
2366
2366
  (o = n.instance).exports.__wasm_call_ctors(), o.exports.meshopt_encodeVertexVersion(0), o.exports.meshopt_encodeIndexVersion(1);
2367
2367
  });
@@ -2371,27 +2371,27 @@ function Ni(o, e, a) {
2371
2371
  function A(n) {
2372
2372
  return new Uint8Array(n.buffer, n.byteOffset, n.byteLength);
2373
2373
  }
2374
- function i(n, d, b, l, g) {
2375
- var h = o.exports.sbrk, f = h(d), I = h(l * g), u = new Uint8Array(o.exports.memory.buffer);
2376
- u.set(A(b), I);
2377
- var C = n(f, d, I, l, g), p = new Uint8Array(C);
2378
- return p.set(u.subarray(f, f + C)), h(f - h(0)), p;
2374
+ function i(n, b, d, l, g) {
2375
+ var h = o.exports.sbrk, f = h(b), I = h(l * g), u = new Uint8Array(o.exports.memory.buffer);
2376
+ u.set(A(d), I);
2377
+ var p = n(f, b, I, l, g), B = new Uint8Array(p);
2378
+ return B.set(u.subarray(f, f + p)), h(f - h(0)), B;
2379
2379
  }
2380
2380
  function s(n) {
2381
- for (var d = 0, b = 0; b < n.length; ++b)
2382
- var l = n[b];
2383
- return d;
2381
+ for (var b = 0, d = 0; d < n.length; ++d)
2382
+ var l = n[d];
2383
+ return b;
2384
2384
  }
2385
- function r(n, d) {
2386
- if (t(d == 2 || d == 4), d == 4) return new Uint32Array(n.buffer, n.byteOffset, n.byteLength / 4);
2387
- var b = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
2388
- return new Uint32Array(b);
2385
+ function r(n, b) {
2386
+ if (t(b == 2 || b == 4), b == 4) return new Uint32Array(n.buffer, n.byteOffset, n.byteLength / 4);
2387
+ var d = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
2388
+ return new Uint32Array(d);
2389
2389
  }
2390
- function c(n, d, b, l, g, h, f) {
2391
- var I = o.exports.sbrk, u = I(b * l), C = I(b * h), p = new Uint8Array(o.exports.memory.buffer);
2392
- p.set(A(d), C), n(u, b, l, g, C, f);
2393
- var B = new Uint8Array(b * l);
2394
- return B.set(p.subarray(u, u + b * l)), I(u - I(0)), B;
2390
+ function c(n, b, d, l, g, h, f) {
2391
+ var I = o.exports.sbrk, u = I(d * l), p = I(d * h), B = new Uint8Array(o.exports.memory.buffer);
2392
+ B.set(A(b), p), n(u, d, l, g, p, f);
2393
+ var C = new Uint8Array(d * l);
2394
+ return C.set(B.subarray(u, u + d * l)), I(u - I(0)), C;
2395
2395
  }
2396
2396
  })();
2397
2397
  var Kt = function() {
@@ -2409,14 +2409,14 @@ var Kt = function() {
2409
2409
  for (f = 0; f < g.length; ++f) h[u++] = h[f] < 60 ? e[h[f]] : 64 * (h[f] - 60) + h[++f];
2410
2410
  return h.buffer.slice(0, u);
2411
2411
  }
2412
- function s(g, h, f, I, u, C, p) {
2413
- var B = g.exports.sbrk, y = I + 3 & -4, x = B(y * u), w = B(C.length), E = new Uint8Array(g.exports.memory.buffer);
2414
- E.set(C, w);
2415
- var Q = h(x, I, u, w, C.length);
2416
- if (Q == 0 && p && p(x, y, u), f.set(E.subarray(x, x + I * u)), B(x - B(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
2412
+ function s(g, h, f, I, u, p, B) {
2413
+ var C = g.exports.sbrk, w = I + 3 & -4, x = C(w * u), y = C(p.length), m = new Uint8Array(g.exports.memory.buffer);
2414
+ m.set(p, y);
2415
+ var Q = h(x, I, u, y, p.length);
2416
+ if (Q == 0 && B && B(x, w, u), f.set(m.subarray(x, x + I * u)), C(x - C(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
2417
2417
  }
2418
- var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" }, c = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence" }, n = [], d = 0;
2419
- function b(g) {
2418
+ var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" }, c = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence" }, n = [], b = 0;
2419
+ function d(g) {
2420
2420
  var h = { object: new Worker(g), pending: 0, requests: {} };
2421
2421
  return h.object.onmessage = function(f) {
2422
2422
  var I = f.data;
@@ -2437,8 +2437,8 @@ var Kt = function() {
2437
2437
  }
2438
2438
  return { ready: A, supported: !0, useWorkers: function(g) {
2439
2439
  (function(h) {
2440
- for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(i(t)) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + l.name + ";" + s.toString() + l.toString(), I = new Blob([f], { type: "text/javascript" }), u = URL.createObjectURL(I), C = n.length; C < h; ++C) n[C] = b(u);
2441
- for (C = h; C < n.length; ++C) n[C].object.postMessage({});
2440
+ for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(i(t)) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + l.name + ";" + s.toString() + l.toString(), I = new Blob([f], { type: "text/javascript" }), u = URL.createObjectURL(I), p = n.length; p < h; ++p) n[p] = d(u);
2441
+ for (p = h; p < n.length; ++p) n[p].object.postMessage({});
2442
2442
  n.length = h, URL.revokeObjectURL(u);
2443
2443
  })(g);
2444
2444
  }, decodeVertexBuffer: function(g, h, f, I, u) {
@@ -2447,18 +2447,18 @@ var Kt = function() {
2447
2447
  s(a, a.exports.meshopt_decodeIndexBuffer, g, h, f, I);
2448
2448
  }, decodeIndexSequence: function(g, h, f, I) {
2449
2449
  s(a, a.exports.meshopt_decodeIndexSequence, g, h, f, I);
2450
- }, decodeGltfBuffer: function(g, h, f, I, u, C) {
2451
- s(a, a.exports[c[u]], g, h, f, I, a.exports[r[C]]);
2450
+ }, decodeGltfBuffer: function(g, h, f, I, u, p) {
2451
+ s(a, a.exports[c[u]], g, h, f, I, a.exports[r[p]]);
2452
2452
  }, decodeGltfBufferAsync: function(g, h, f, I, u) {
2453
- return n.length > 0 ? function(C, p, B, y, x) {
2454
- for (var w = n[0], E = 1; E < n.length; ++E) n[E].pending < w.pending && (w = n[E]);
2453
+ return n.length > 0 ? function(p, B, C, w, x) {
2454
+ for (var y = n[0], m = 1; m < n.length; ++m) n[m].pending < y.pending && (y = n[m]);
2455
2455
  return new Promise(function(Q, k) {
2456
- var D = new Uint8Array(B), v = ++d;
2457
- w.pending += C, w.requests[v] = { resolve: Q, reject: k }, w.object.postMessage({ id: v, count: C, size: p, source: D, mode: y, filter: x }, [D.buffer]);
2456
+ var D = new Uint8Array(C), F = ++b;
2457
+ y.pending += p, y.requests[F] = { resolve: Q, reject: k }, y.object.postMessage({ id: F, count: p, size: B, source: D, mode: w, filter: x }, [D.buffer]);
2458
2458
  });
2459
2459
  }(g, h, f, c[I], r[u]) : A.then(function() {
2460
- var C = new Uint8Array(g * h);
2461
- return s(a, a.exports[c[I]], C, g, h, f, a.exports[r[u]]), C;
2460
+ var p = new Uint8Array(g * h);
2461
+ return s(a, a.exports[c[I]], p, g, h, f, a.exports[r[u]]), p;
2462
2462
  });
2463
2463
  } };
2464
2464
  }();
@@ -2467,12 +2467,12 @@ var Kt = function() {
2467
2467
  if (typeof WebAssembly != "object") return { supported: !1 };
2468
2468
  var a = WebAssembly.instantiate(function(r) {
2469
2469
  for (var c = new Uint8Array(r.length), n = 0; n < r.length; ++n) {
2470
- var d = r.charCodeAt(n);
2471
- c[n] = d > 96 ? d - 97 : d > 64 ? d - 39 : d + 4;
2470
+ var b = r.charCodeAt(n);
2471
+ c[n] = b > 96 ? b - 97 : b > 64 ? b - 39 : b + 4;
2472
2472
  }
2473
- var b = 0;
2474
- for (n = 0; n < r.length; ++n) c[b++] = c[n] < 60 ? e[c[n]] : 64 * (c[n] - 60) + c[++n];
2475
- return c.buffer.slice(0, b);
2473
+ var d = 0;
2474
+ for (n = 0; n < r.length; ++n) c[d++] = c[n] < 60 ? e[c[n]] : 64 * (c[n] - 60) + c[++n];
2475
+ return c.buffer.slice(0, d);
2476
2476
  }("b9H79Tebbbe9Ek9Geueu9Geub9Gbb9GPuuuuuuuuuuu99uueu9Gvuuuuub9Gluuuub9Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuec:G;jekr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdxmq::9Usdbk;i6iKuY99Ou8Jjjjjbc;W;ab9RgP8KjjjjbaPcwfcbc;Kbz:ljjjb8AaPcualcefgscdtascFFFFi0Ecbyd1:jjjbHjjjjbbgzBdwaPceBd9OaPazBdbaPcuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbgHBdxaPcdBd9OaPaHBdlaPaeadalcbz:cjjjbaPcualcdtgOalcFFFFi0EgAcbyd1:jjjbHjjjjbbgCBdzaPciBd9OaPaAcbyd1:jjjbHjjjjbbgXBdCaPclBd9Oalcd4alfhQcehLinaLgscethLasaQ6mbkcbhKaPcuascdtgLascFFFFi0Ecbyd1:jjjbHjjjjbbgQBdKaPcvBd9OaQcFeaLz:ljjjbhYdnalTmbavcd4h8AascufhEinaiaKa8A2cdtfg3ydlgscH4as7c:F:b:DD2a3ydbgscH4as7c;D;O:B8J27a3ydwgscH4as7c:3F;N8N27hQcbhsdndninaYaQaEGgQcdtfg5ydbgLcuSmeaiaLa8A2cdtfa3cxz:ojjjbTmdascefgsaQfhQasaE9nmbxdkka5aKBdbaKhLkaCaKcdtfaLBdbaKcefgKal9hmbkcbhsaXhLinaLasBdbaLclfhLalascefgs9hmbkcbhsaChLaXhQindnasaLydbgESmbaQaXaEcdtfgEydbBdbaEasBdbkaLclfhLaQclfhQalascefgs9hmbkkcbh8EaYcbyd:m:jjjbH:bjjjbbaPclBd9OaPalcbyd1:jjjbHjjjjbbgEBdKaPcvBd9OaPaAcbyd1:jjjbHjjjjbbgsBd3aPcoBd9OaPaAcbyd1:jjjbHjjjjbbgLBdaaPcrBd9OascFeaOz:ljjjbh8FaLcFeaOz:ljjjbhadnalTmbaHcwfhhindnaza8EgQcefg8Ecdtfydbg3azaQcdtgsfydbgLSmba3aL9RhOaHaLcitfhgaaasfh8Ja8FasfhKcbh8Aindndnaga8Acitfydbg5aQ9hmbaKaQBdba8JaQBdbxekdnaza5cdtg8KfgsclfydbgLasydbgsSmbaHascitg3fydbaQSmeaLas9Rh8Lascu7aLfhYaha3fhLcbhsinaYasSmeascefhsaLydbh3aLcwfhLa3aQ9hmbkasa8L6mekaaa8KfgsaQa5asydbcuSEBdbaKa5aQaKydbcuSEBdbka8Acefg8AaO9hmbkka8Eal9hmbkaChLaXhQaah3a8Fh8AcbhsindndnasaLydbg59hmbdnasaQydbg59hmba8Aydbh5dna3ydbgYcu9hmba5cu9hmbaEasfcb86bbxikaEasfhKdnasaYSmbasa5SmbaKce86bbxikaKcl86bbxdkdnasaXa5cdtgYfydb9hmbdna3ydbgKcuSmbasaKSmba8AydbgOcuSmbasaOSmbaaaYfydbggcuSmbaga5Smba8FaYfydbgYcuSmbaYa5SmbdnaCaKcdtfydbaCaYcdtfydb9hmbaCaOcdtfydbaCagcdtfydb9hmbaEasfcd86bbxlkaEasfcl86bbxikaEasfcl86bbxdkaEasfcl86bbxekaEasfaEa5fRbb86bbkaLclfhLaQclfhQa3clfh3a8Aclfh8Aalascefgs9hmbkaxceGTmbaEhsalhLindnasRbbce9hmbascl86bbkascefhsaLcufgLmbkkcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8JaPcwfaPyd9Ogscdtfa8JBdbaPascefgOBd9Oa8Jaialavz:djjjbdndnaDmbcbhvxekcbh5aPcwfaOcdtfcuaDal2gLcdtaLcFFFFi0Ecbyd1:jjjbHjjjjbbgvBdbaPascdfgOBd9OalTmbarcd4cdthYaDcdthKavh8AinaohsawhLa8AhQaDh3inaQasIdbaLIdbNUdbasclfhsaLclfhLaQclfhQa3cufg3mbkaoaYfhoa8AaKfh8Aa5cefg5al9hmbkkaPcwfaOcdtfcualc8S2gsalc;D;O;f8U0EgQcbyd1:jjjbHjjjjbbgLBdbaPaOcefg3Bd9OaLcbasz:ljjjbh8EdndndnaDTmbaPcwfa3cdtfaQcbyd1:jjjbHjjjjbbgoBdbaPaOcdfgLBd9Oaocbasz:ljjjb8AaPcwfaLcdtfcuaDal2gscltgLascFFFFb0Ecbyd1:jjjbHjjjjbbgwBdbaPaOcifBd9OawcbaLz:ljjjb8AadmexdkcbhocbhwadTmekcbh8AaehLindna8JaLclfydbg5cx2fgsIdba8JaLydbgYcx2fgQIdbg8M:tg8Na8JaLcwfydbgKcx2fg3IdlaQIdlgy:tg8PNa3Idba8M:tgIasIdlay:tg8RN:tg8Sa8SNa8Ra3IdwaQIdwgR:tg8UNa8PasIdwaR:tg8RN:tg8Pa8PNa8RaINa8Ua8NN:tg8Na8NNMM:rgIJbbbb9ETmba8SaI:vh8Sa8NaI:vh8Na8PaI:vh8Pka8EaCaYcdtfydbc8S2fgsa8PaI:rgIa8PNNg8RasIdbMUdbasa8NaIa8NNg8VNg8UasIdlMUdlasa8SaIa8SNg8WNg8XasIdwMUdwasa8Va8PNg8VasIdxMUdxasa8Wa8PNg8YasIdzMUdzasa8Wa8NNg8WasIdCMUdCasa8PaIa8SaRNa8Pa8MNaya8NNMM:mgyNg8MNg8PasIdKMUdKasa8Na8MNg8NasId3MUd3asa8Sa8MNg8SasIdaMUdaasa8MayNg8MasId8KMUd8KasaIasIdyMUdya8EaCa5cdtfydbc8S2fgsa8RasIdbMUdbasa8UasIdlMUdlasa8XasIdwMUdwasa8VasIdxMUdxasa8YasIdzMUdzasa8WasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asa8SasIdaMUdaasa8MasId8KMUd8KasaIasIdyMUdya8EaCaKcdtfydbc8S2fgsa8RasIdbMUdbasa8UasIdlMUdlasa8XasIdwMUdwasa8VasIdxMUdxasa8YasIdzMUdzasa8WasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asa8SasIdaMUdaasa8MasId8KMUd8KasaIasIdyMUdyaLcxfhLa8Acifg8Aad6mbkcbh5aehYincbhLinaEaeaLc:G1jjbfydba5fcdtfydbgQfRbbhsdndnaEaYaLfydbg3fRbbg8Ac99fcFeGcpe0mbasceSmbascd9hmekdna8AcufcFeGce0mba8Fa3cdtfydbaQ9hmekdnascufcFeGce0mbaaaQcdtfydba39hmekdna8Acv2asfc:W1jjbfRbbTmbaCaQcdtfydbaCa3cdtfydb0mekJbbacJbbjZasceSEhIa8AceShOa8JaeaLc:K1jjbfydba5fcdtfydbcx2fhsdna8JaQcx2fg8AIdwa8Ja3cx2fgKIdwgy:tg8Pa8PNa8AIdbaKIdbgR:tg8Na8NNa8AIdlaKIdlg8R:tg8Sa8SNMM:rg8MJbbbb9ETmba8Pa8M:vh8Pa8Sa8M:vh8Sa8Na8M:vh8NkJbbacaIaOEh8WdnasIdway:tgIa8PaIa8PNasIdbaR:tg8Xa8NNa8SasIdla8R:tg8VNMMg8UN:tgIaINa8Xa8Na8UN:tg8Pa8PNa8Va8Sa8UN:tg8Na8NNMM:rg8SJbbbb9ETmbaIa8S:vhIa8Na8S:vh8Na8Pa8S:vh8Pka8EaCa3cdtfydbc8S2fgsa8Pa8Wa8MNg8Sa8PNNg8UasIdbMUdbasa8Na8Sa8NNg8WNg8XasIdlMUdlasaIa8SaINg8MNg8VasIdwMUdwasa8Wa8PNg8WasIdxMUdxasa8Ma8PNg8YasIdzMUdzasa8Ma8NNg8ZasIdCMUdCasa8Pa8SaIayNa8PaRNa8Ra8NNMM:mgyNg8MNg8PasIdKMUdKasa8Na8MNg8NasId3MUd3asaIa8MNgIasIdaMUdaasa8MayNg8MasId8KMUd8Kasa8SasIdyMUdya8EaCaQcdtfydbc8S2fgsa8UasIdbMUdbasa8XasIdlMUdlasa8VasIdwMUdwasa8WasIdxMUdxasa8YasIdzMUdzasa8ZasIdCMUdCasa8PasIdKMUdKasa8NasId3MUd3asaIasIdaMUdaasa8MasId8KMUd8Kasa8SasIdyMUdykaLclfgLcx9hmbkaYcxfhYa5cifg5ad6mbkaDTmbcbhYinJbbbbhRa8JaeaYcdtfgsclfydbgKcx2fgLIdwa8JasydbgOcx2fgQIdwg8V:tg8Na8NNaLIdbaQIdbg8Y:tgIaINaLIdlaQIdlg8Z:tg8Sa8SNMMg8Wa8Jascwfydbggcx2fgsIdwa8V:tg8MNa8Na8Na8MNaIasIdba8Y:tgyNa8SasIdla8Z:tg8RNMMg8PN:tJbbbbJbbjZa8Wa8Ma8MNayayNa8Ra8RNMMg8XNa8Pa8PN:tg8U:va8UJbbbb9BEg8UNh80a8Xa8NNa8Ma8PN:ta8UNh81a8Wa8RNa8Sa8PN:ta8UNhBa8Xa8SNa8Ra8PN:ta8UNh83a8WayNaIa8PN:ta8UNhUa8XaINaya8PN:ta8UNh85aIa8RNaya8SN:tg8Pa8PNa8Sa8MNa8Ra8NN:tg8Pa8PNa8NayNa8MaIN:tg8Pa8PNMM:r:rh8PavaOaD2cdtfhLavagaD2cdtfhQavaKaD2cdtfh3a8V:mh86a8Z:mh87a8Y:mh88cbh8AaDh5Jbbbbh8RJbbbbh8UJbbbbh8WJbbbbh8XJbbbbh8VJbbbbh8YJbbbbh8ZJbbbbh89Jbbbbh8:inaPc;Wbfa8Afgscwfa8Pa81a3IdbaLIdbg8M:tg8SNa80aQIdba8M:tgyNMg8NNUdbasclfa8Pa83a8SNaBayNMgINUdbasa8Pa85a8SNaUayNMg8SNUdbascxfa8Pa86a8NNa87aINa8Ma88a8SNMMMg8MNUdba8Pa8NaINNa8XMh8Xa8Pa8Na8SNNa8VMh8Va8PaIa8SNNa8YMh8Ya8Pa8Ma8MNNaRMhRa8Pa8Na8MNNa8RMh8Ra8PaIa8MNNa8UMh8Ua8Pa8Sa8MNNa8WMh8Wa8Pa8Na8NNNa8ZMh8Za8PaIaINNa89Mh89a8Pa8Sa8SNNa8:Mh8:aLclfhLa3clfh3aQclfhQa8Aczfh8Aa5cufg5mbkaoaCaOcdtfydbgLc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyaoaCaKcdtfydbgKc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyaoaCagcdtfydbgOc8S2fgsa8:asIdbMUdbasa89asIdlMUdlasa8ZasIdwMUdwasa8YasIdxMUdxasa8VasIdzMUdzasa8XasIdCMUdCasa8WasIdKMUdKasa8UasId3MUd3asa8RasIdaMUdaasaRasId8KMUd8Kasa8PasIdyMUdyawaLaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkawaKaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkawaOaD2cltfh5cbhLaDh3ina5aLfgsaPc;WbfaLfgQIdbasIdbMUdbasclfg8AaQclfIdba8AIdbMUdbascwfg8AaQcwfIdba8AIdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa3cufg3mbkaYcifgYad6mbkkdnabaeSmbabaeadcdtz:kjjjb8AkaPydbhZcbhsdnalTmbaZclfhsaZydbh3aEhLalh8AcbhQincbasydbg5a39RaLRbbcpeGEaQfhQaLcefhLasclfhsa5h3a8Acufg8AmbkaQce4hskcuadas9Rcifgrcx2arc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8LaPcwfaPyd9Ogscdtfa8LBdbaPascefgLBd9OaPcwfaLcdtfcuarcdtarcFFFFi0Ecbyd1:jjjbHjjjjbbgxBdbaPascdfgLBd9OaPcwfaLcdtfaAcbyd1:jjjbHjjjjbbgHBdbaPascifgLBd9OaPcwfaLcdtfalcbyd1:jjjbHjjjjbbgnBdbaPasclfBd9OJbbbbh8Ydnadaq9nmbdnarci6mbakakNh8VaDclthca8Lcwfh9cJbbbbh8YinaPabadghalaCz:cjjjbabhOcbhzcbhKincbhsindnaCaOasfydbgQcdtgYfydbg8AaCabasc;m1jjbfydbaKfcdtfydbgLcdtfydbg5SmbaEaLfRbbgecv2aEaQfRbbg3fc;G1jjbfRbbg8Ka3cv2aefggc;G1jjbfRbbgiVcFeGTmbdnagc:W1jjbfRbbTmba5a8A0mekdna3ae9hmba3cufcFeGce0mba8FaYfydbaL9hmeka8Lazcx2fg3aLaQaicFeGg8AEBdla3aQaLa8AEBdba3a8Aa8KGcb9hBdwazcefhzkasclfgscx9hmbkdnaKcifgKah9pmbaOcxfhOazcifar9nmekkdnazmbahhdxikcbheinJbbbbJbbjZa8EaCa8Laecx2fg3ydlg8Aa3ydbg5a3ydwgLEgKcdtfydbg8Kc8S2gifgsIdyg8P:va8PJbbbb9BEasIdwa8Ja5a8AaLEgYcx2fgLIdwg8SNasIdzaLIdbg8MNasIdaMg8Pa8PMMa8SNasIdlaLIdlgyNasIdCa8SNasId3Mg8Pa8PMMayNasIdba8MNasIdxayNasIdKMg8Pa8PMMa8MNasId8KMMM:lNh8WJbbbbJbbjZa8EaCa5cdtfydbgdc8S2gQfgsIdyg8P:va8PJbbbb9BEasIdwa8Ja8Acx2fgLIdwgINasIdzaLIdbgRNasIdaMg8Pa8PMMaINasIdlaLIdlg8RNasIdCaINasId3Mg8Pa8PMMa8RNasIdbaRNasIdxa8RNasIdKMg8Pa8PMMaRNasId8KMMM:lNh8Xa3cwfhOa3clfhgdnaDTmbaoaQfgQIdwaINaQIdzaRNaQIdaMg8Pa8PMMaINaQIdla8RNaQIdCaINaQId3Mg8Pa8PMMa8RNaQIdbaRNaQIdxa8RNaQIdKMg8Pa8PMMaRNaQId8KMMMh8Nava8AaD2cdtfhLawadaD2cltfhsaQIdyh8UaDhQinaLIdbg8PJbbb;aNascxfIdbaIascwfIdbNaRasIdbNa8RasclfIdbNMMMNa8Pa8PNa8UNa8NMMh8NaLclfhLasczfhsaQcufgQmbkaoaifgQIdwa8SNaQIdza8MNaQIdaMg8Pa8PMMa8SNaQIdlayNaQIdCa8SNaQId3Mg8Pa8PMMayNaQIdba8MNaQIdxayNaQIdKMg8Pa8PMMa8MNaQId8KMMMhIavaYaD2cdtfhLawa8KaD2cltfhsaQIdyhRaDhQinaLIdbg8PJbbb;aNascxfIdba8SascwfIdbNa8MasIdbNayasclfIdbNMMMNa8Pa8PNaRNaIMMhIaLclfhLasczfhsaQcufgQmbka8WaI:lMh8Wa8Xa8N:lMh8Xkaga8AaYa8Xa8W9FgsEBdba3a5aKasEBdbaOa8Xa8WasEUdbaecefgeaz9hmbkaPc;Wbfcbcj;abz:ljjjb8Aa9chsazhLinaPc;WbfasydbcO4c;8ZGfgQaQydbcefBdbascxfhsaLcufgLmbkcbhscbhLinaPc;WbfasfgQydbh3aQaLBdba3aLfhLasclfgscj;ab9hmbkcbhsa9chLinaPc;WbfaLydbcO4c;8ZGfgQaQydbgQcefBdbaxaQcdtfasBdbaLcxfhLazascefgs9hmbkahaq9RgQci9UhJdnalTmbcbhsaHhLinaLasBdbaLclfhLalascefgs9hmbkkcbh9eancbalz:ljjjbhTaQcO9UhSaJce4h9haPydlh9icbhicbhgdnina8Laxagcdtfydbcx2fgOIdwg8Na8V9EmeaiaJ9pmeJFFuuh8Pdna9haz9pmba8Laxa9hcdtfydbcx2fIdwJbb;aZNh8Pkdna8Na8P9ETmbaiaS0mdkdnaTaCaOydlg6cdtg9kfydbg3fg0RbbaTaCaOydbgKcdtg9mfydbg9nfg9oRbbVmbdnaZa9ncdtfgsclfydbgLasydbgsSmbaLas9Rh5a9iascitfhsa8Ja3cx2fgYcwfhdaYclfhAa8Ja9ncx2fg8Kcwfh9pa8Kclfh9qcbhLcehednindnaHasydbcdtfydbgQa3SmbaHasclfydbcdtfydbg8Aa3SmbaQa8ASmba8Ja8Acx2fg8AIdba8JaQcx2fgQIdbgI:tg8Pa9qIdbaQIdlg8S:tg8MNa8KIdbaI:tgya8AIdla8S:tg8NN:ta8PaAIdba8S:tgRNaYIdbaI:tg8Ra8NN:tNa8Na9pIdbaQIdwg8S:tg8UNa8Ma8AIdwa8S:tgIN:ta8NadIdba8S:tg8SNaRaIN:tNaIayNa8Ua8PN:taIa8RNa8Sa8PN:tNMMJbbbb9FmdkascwfhsaLcefgLa56hea5aL9hmbkkaeceGTmba9hcefh9hxeka8Ea3c8S2gQfgsa8Ea9nc8S2g8AfgLIdbasIdbMUdbasaLIdlasIdlMUdlasaLIdwasIdwMUdwasaLIdxasIdxMUdxasaLIdzasIdzMUdzasaLIdCasIdCMUdCasaLIdKasIdKMUdKasaLId3asId3MUd3asaLIdaasIdaMUdaasaLId8KasId8KMUd8KasaLIdyasIdyMUdydnaDTmbaoaQfgsaoa8AfgLIdbasIdbMUdbasaLIdlasIdlMUdlasaLIdwasIdwMUdwasaLIdxasIdxMUdxasaLIdzasIdzMUdzasaLIdCasIdCMUdCasaLIdKasIdKMUdKasaLId3asId3MUd3asaLIdaasIdaMUdaasaLId8KasId8KMUd8KasaLIdyasIdyMUdyaca9n2heaca32hYawhLaDh8AinaLaYfgsaLaefgQIdbasIdbMUdbasclfg5aQclfIdba5IdbMUdbascwfg5aQcwfIdba5IdbMUdbascxfgsaQcxfIdbasIdbMUdbaLczfhLa8Acufg8AmbkkaOcwfhLdndndndnaEaKfgQRbbc9:fPdebdkaKhsinaHascdtgsfa3BdbaXasfydbgsaK9hmbxikkaXa9kfydbhsaXa9mfydbhKaHa9mfa6Bdbash6kaHaKcdtfa6Bdbka9oce86bba0ce86bbaLIdbg8Pa8Ya8Ya8P9DEh8Ya9ecefh9ececdaQRbbceSEaifhikagcefggaz9hmbkkdna9embahhdxikdnalTmbcbhLa8FhsindnasydbgQcuSmbdnaLaHaQcdtg3fydbgQ9hmba8Fa3fydbhQkasaQBdbkasclfhsalaLcefgL9hmbkcbhLaahsindnasydbgQcuSmbdnaLaHaQcdtg3fydbgQ9hmbaaa3fydbhQkasaQBdbkasclfhsalaLcefgL9hmbkkcbhdabhscbh8AindnaHasydbcdtfydbgLaHasclfydbcdtfydbgQSmbaLaHascwfydbcdtfydbg3SmbaQa3Smbabadcdtfg5aLBdba5clfaQBdba5cwfa3Bdbadcifhdkascxfhsa8Acifg8Aah6mbkadaq9nmdxbkkaPabadalaCz:cjjjbkdnamTmbama8Y:rUdbkaPyd9OgscdtaPcwffc98fhCdninasTmeaCydbcbyd:m:jjjbH:bjjjbbaCc98fhCascufhsxbkkaPc;W;abf8Kjjjjbadk;:ieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbarcearce0EhdinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfheadcufgdmbkkabydbcbBdbk:Zldouv998Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdnadTmbaicd4hvdnabTmbavcdthocbhraehwinabarcx2fgiaearav2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinalczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawaofhwarcefgrad9hmbxdkkavcdthrcbhwincbhiinalczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbkkdnabTmbadTmbJbbbbJbbjZalIdbalIdzgk:tJbbbb:xgqalIdlalIdCgx:tgmamaq9DEgqalIdwalIdKgm:tgPaPaq9DEgq:vaqJbbbb9BEhqinabaqabIdbak:tNUdbabclfgiaqaiIdbax:tNUdbabcwfgiaqaiIdbam:tNUdbabcxfhbadcufgdmbkkk8KbabaeadaialavcbcbcbcbaoarawaDz:bjjjbk8KbabaeadaialavaoarawaDaqakaxamz:bjjjbk;lOowud99wue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcwfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdwawceBd9Oaqaeadaiz:djjjbawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdxawcdBd9Oadcd4adfhmceheinaegicetheaiam6mbkcbhmawcuaicdtgPaicFFFFi0Ecbyd1:jjjbHjjjjbbgsBdzawciBd9Odndnar:Zgz:rJbbbZMgH:lJbbb9p9DTmbaH:Ohexekcjjjj94hekaicufhOc:bwhAcbhCcbhXadhQinaChLaeaAgKcufaeaK9iEamgDcefaeaD9kEhYdndnadTmbaYcuf:YhHaqhiaxheadhmindndnaiIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhAxekcjjjj94hAkaAcCthAdndnaiclfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcqtaAVhAdndnaicwfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaeaAaCVBdbaicxfhiaeclfheamcufgmmbkascFeaPz:ljjjbhEcbh3cbh5indnaEaxa5cdtfydbgAcm4aA7c:v;t;h;Ev2gics4ai7aOGgmcdtfgCydbgecuSmbaeaASmbcehiinaEamaifaOGgmcdtfgCydbgecuSmeaicefhiaeaA9hmbkkaCaABdba3aecuSfh3a5cefg5ad9hmbxdkkascFeaPz:ljjjb8Acbh3kaDaYa3ar0giEhmaLa3aiEhCdna3arSmbaYaKaiEgAam9Rcd9imbdndnaXcl0mbdnaQ:ZgHaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa3:Zghaz:tNNNaHaz:taaNa8Aah:tNa8Aaz:ta8FNahaH:tNM:va8EMJbbbZMgH:lJbbb9p9DTmbaH:Ohexdkcjjjj94hexekamaAfcd9Theka3aQaiEhQaXcefgXcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdCawclBd9OdndnadTmbamcuf:YhHaqhiaxheadhmindndnaiIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhAxekcjjjj94hAkaAcCthAdndnaiclfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcqtaAVhAdndnaicwfIdbaHNJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaeaAaCVBdbaicxfhiaeclfheamcufgmmbkascFeaPz:ljjjbhEcbhDcbh3inaxa3cdtgYfydbgAcm4aA7c:v;t;h;Ev2gics4ai7hecbhidndninaEaeaOGgmcdtfgCydbgecuSmednaxaecdtgCfydbaASmbaicefgiamfheaiaO9nmekka5aCfydbhixekaCa3BdbaDhiaDcefhDka5aYfaiBdba3cefg3ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekascFeaPz:ljjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBdKawcvBd9Oaecbaiz:ljjjbhOavcd4hxdnadTmbaxcdth3a5hmalhAaqheadhEinaOamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaAc;81jjbalEgCIdbaiIdxMUdxaiaCIdlaiIdzMUdzaiaCIdwaiIdCMUdCaiaiIdKJbbjZMUdKamclfhmaAa3fhAaecxfheaEcufgEmbkkdnaDTmbaOcxfhiaDheinaictfgmamIdbJbbbbJbbjZaicxfIdbgH:vaHJbbbb9BEgHNUdbaic94fgmaHamIdbNUdbaic98fgmaHamIdbNUdbaiaHaiIdbNUdbaiclfgmaHamIdbNUdbaicwfgmaHamIdbNUdbaic3fhiaecufgembkkcbhAawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBd3awcoBd9Oawaicbyd1:jjjbHjjjjbbgEBdaaecFeaYz:ljjjbh3dnadTmbaoaoNh8Aaxcdthxalheina8Aaec;81jjbalEgmIdwaOa5ydbgCc32fgiIdC:tgHaHNamIdbaiIdx:tgHaHNamIdlaiIdz:tgHaHNMMNaqcwfIdbaiIdw:tgHaHNaqIdbaiIdb:tgHaHNaqclfIdbaiIdl:tgHaHNMMMhHdndna3aCcdtgifgmydbcuSmbaEaifIdbaH9ETmekamaABdbaEaifaHUdbka5clfh5aeaxfheaqcxfhqadaAcefgA9hmbkkaba3aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcwffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Qdidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgoaDIdbgrarao9EEUdbaladfgDaoaDIdbgrarao9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkavJbbbb:xgvaoaoav9DEgoararao9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbeeebeebebbeeebebbbbbebebbbbbebbbdbbbbbbbbbbbbbbbeeeeebebbbbbebbbbbeebbbbbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:G9Kbb"), {}).then(function(r) {
2477
2477
  (o = r.instance).exports.__wasm_call_ctors();
2478
2478
  });
@@ -2482,20 +2482,20 @@ var Kt = function() {
2482
2482
  function A(r) {
2483
2483
  return new Uint8Array(r.buffer, r.byteOffset, r.byteLength);
2484
2484
  }
2485
- function i(r, c, n, d, b, l, g, h) {
2486
- var f = o.exports.sbrk, I = f(4 * h), u = f(n * d), C = f(n * l), p = new Uint8Array(o.exports.memory.buffer);
2487
- p.set(A(c), u), b && p.set(A(b), C);
2488
- var B = r(I, u, n, d, C, l, g, h);
2485
+ function i(r, c, n, b, d, l, g, h) {
2486
+ var f = o.exports.sbrk, I = f(4 * h), u = f(n * b), p = f(n * l), B = new Uint8Array(o.exports.memory.buffer);
2487
+ B.set(A(c), u), d && B.set(A(d), p);
2488
+ var C = r(I, u, n, b, p, l, g, h);
2489
2489
  new Uint8Array(o.exports.memory.buffer);
2490
- var y = new Uint32Array(B);
2491
- return A(y).set(p.subarray(I, I + 4 * B)), f(I - f(0)), y;
2490
+ var w = new Uint32Array(C);
2491
+ return A(w).set(B.subarray(I, I + 4 * C)), f(I - f(0)), w;
2492
2492
  }
2493
2493
  var s = { LockBorder: 1 };
2494
2494
  })();
2495
2495
  let ae = 0;
2496
- class Pi {
2496
+ class Ni {
2497
2497
  constructor(e) {
2498
- if (this.renderer = e.renderer, this.zUpToYUpMatrix = new m.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new Dt(), e && e.dracoLoader) this.gltfLoader.setDRACOLoader(e.dracoLoader), this.hasDracoLoader = !0;
2498
+ if (this.renderer = e.renderer, this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.proxy = e.proxy, e && (this.meshCallback = e.meshCallback, this.pointsCallback = e.pointsCallback, e.maxCachedItems != null && (this.maxCachedItems = e.maxCachedItems)), this.gltfLoader = new Dt(), e && e.dracoLoader) this.gltfLoader.setDRACOLoader(e.dracoLoader), this.hasDracoLoader = !0;
2499
2499
  else {
2500
2500
  const a = new Rt();
2501
2501
  a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"), this.gltfLoader.setDRACOLoader(a), this.gltfLoader.hasDracoLoader = !0;
@@ -2505,7 +2505,7 @@ class Pi {
2505
2505
  const a = new P();
2506
2506
  a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer), this.gltfLoader.setKTX2Loader(a), this.gltfLoader.hasKTX2Loader = !0;
2507
2507
  }
2508
- this.gltfLoader.setMeshoptDecoder(Kt), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new xt(this.gltfLoader), this.splatsDecoder = new ZA(this.gltfLoader, this.renderer), this.cache = new yt(), this.register = {}, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
2508
+ this.gltfLoader.setMeshoptDecoder(Kt), this.hasMeshOptDecoder = !0, this.b3dmDecoder = new xt(this.gltfLoader), this.splatsDecoder = new XA(this.gltfLoader, this.renderer), this.cache = new yt(), this.register = {}, this.ready = [], this.downloads = [], this.nextReady = [], this.nextDownloads = [];
2509
2509
  }
2510
2510
  update() {
2511
2511
  const e = this;
@@ -2566,7 +2566,7 @@ class Pi {
2566
2566
  }
2567
2567
  }
2568
2568
  }
2569
- get(e, a, t, A, i, s, r, c, n, d, b) {
2569
+ get(e, a, t, A, i, s, r, c, n, b, d) {
2570
2570
  const l = this, g = ct(t), h = new AbortController();
2571
2571
  if (e.signal.addEventListener("abort", () => {
2572
2572
  l.register[g] && Object.keys(l.register[g]).length != 0 || h.abort("user abort");
@@ -2579,20 +2579,20 @@ class Pi {
2579
2579
  I = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: h.signal }) : () => fetch(t, { signal: h.signal }), ae++, I().then((u) => {
2580
2580
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2581
2581
  return u.arrayBuffer();
2582
- }).then((u) => this.b3dmDecoder.parseB3DM(u, (C) => {
2583
- l.meshCallback(C, d);
2582
+ }).then((u) => this.b3dmDecoder.parseB3DM(u, (p) => {
2583
+ l.meshCallback(p, b);
2584
2584
  }, c, n)).then((u) => {
2585
2585
  l.cache.put(g, u), l._checkSize(), this._meshReceived(l.cache, l.register, g, i, s, r, a);
2586
2586
  }).catch((u) => {
2587
2587
  }).finally(() => {
2588
2588
  ae--;
2589
2589
  });
2590
- } : t.includes(".glb") || t.includes(".gltf") ? f = b ? () => {
2590
+ } : t.includes(".glb") || t.includes(".gltf") ? f = d ? () => {
2591
2591
  var I;
2592
2592
  I = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: h.signal }) : () => fetch(t, { signal: h.signal }), ae++, I().then((u) => {
2593
2593
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2594
2594
  return u.arrayBuffer();
2595
- }).then((u) => this.splatsDecoder.parseSplats(u, c, n, b)).then((u) => {
2595
+ }).then((u) => this.splatsDecoder.parseSplats(u, c, n, d)).then((u) => {
2596
2596
  l.cache.put(g, u), l._checkSize(), l._meshReceived(l.cache, l.register, g, i, s, r, a);
2597
2597
  }).catch((u) => {
2598
2598
  }).finally(() => {
@@ -2604,16 +2604,16 @@ class Pi {
2604
2604
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2605
2605
  return u.arrayBuffer();
2606
2606
  }).then(async (u) => {
2607
- await async function(C) {
2608
- return new Promise((p) => {
2609
- const B = setInterval(() => {
2610
- C.hasDracoLoader && !C.dracoLoader || C.hasKTX2Loader && !C.ktx2Loader || (clearInterval(B), p());
2607
+ await async function(p) {
2608
+ return new Promise((B) => {
2609
+ const C = setInterval(() => {
2610
+ p.hasDracoLoader && !p.dracoLoader || p.hasKTX2Loader && !p.ktx2Loader || (clearInterval(C), B());
2611
2611
  }, 10);
2612
2612
  });
2613
- }(this.gltfLoader), this.gltfLoader.parse(u, null, (C) => {
2614
- C.scene.asset = C.asset, c && C.scene.applyMatrix4(this.zUpToYUpMatrix), C.scene.traverse((p) => {
2615
- p.isMesh && (n && p.applyMatrix4(this.zUpToYUpMatrix), l.meshCallback && l.meshCallback(p, d)), p.isPoints && l.pointsCallback && l.pointsCallback(p, d);
2616
- }), l.cache.put(g, C.scene), l._checkSize(), l._meshReceived(l.cache, l.register, g, i, s, r, a);
2613
+ }(this.gltfLoader), this.gltfLoader.parse(u, null, (p) => {
2614
+ p.scene.asset = p.asset, c && p.scene.applyMatrix4(this.zUpToYUpMatrix), p.scene.traverse((B) => {
2615
+ B.isMesh && (n && B.applyMatrix4(this.zUpToYUpMatrix), l.meshCallback && l.meshCallback(B, b)), B.isPoints && l.pointsCallback && l.pointsCallback(B, b);
2616
+ }), l.cache.put(g, p.scene), l._checkSize(), l._meshReceived(l.cache, l.register, g, i, s, r, a);
2617
2617
  });
2618
2618
  }).catch((u) => {
2619
2619
  u !== "user abort" && u.code;
@@ -2697,7 +2697,7 @@ function dt(o, e) {
2697
2697
  }
2698
2698
  return t;
2699
2699
  }
2700
- var ke = { resolve: function() {
2700
+ var De = { resolve: function() {
2701
2701
  for (var o, e = "", a = !1, t = arguments.length - 1; t >= -1 && !a; t--) {
2702
2702
  var A;
2703
2703
  t >= 0 ? A = arguments[t] : (o === void 0 && (o = process.cwd()), A = o), Y(A), A.length !== 0 && (e = A + "/" + e, a = A.charCodeAt(0) === 47);
@@ -2715,9 +2715,9 @@ var ke = { resolve: function() {
2715
2715
  var a = arguments[e];
2716
2716
  Y(a), a.length > 0 && (o === void 0 ? o = a : o += "/" + a);
2717
2717
  }
2718
- return o === void 0 ? "." : ke.normalize(o);
2718
+ return o === void 0 ? "." : De.normalize(o);
2719
2719
  }, relative: function(o, e) {
2720
- if (Y(o), Y(e), o === e || (o = ke.resolve(o)) === (e = ke.resolve(e))) return "";
2720
+ if (Y(o), Y(e), o === e || (o = De.resolve(o)) === (e = De.resolve(e))) return "";
2721
2721
  for (var a = 1; a < o.length && o.charCodeAt(a) === 47; ++a) ;
2722
2722
  for (var t = o.length, A = t - a, i = 1; i < e.length && e.charCodeAt(i) === 47; ++i) ;
2723
2723
  for (var s = e.length - i, r = A < s ? A : s, c = -1, n = 0; n <= r; ++n) {
@@ -2728,13 +2728,13 @@ var ke = { resolve: function() {
2728
2728
  } else A > r && (o.charCodeAt(a + n) === 47 ? c = n : n === 0 && (c = 0));
2729
2729
  break;
2730
2730
  }
2731
- var d = o.charCodeAt(a + n);
2732
- if (d !== e.charCodeAt(i + n)) break;
2733
- d === 47 && (c = n);
2731
+ var b = o.charCodeAt(a + n);
2732
+ if (b !== e.charCodeAt(i + n)) break;
2733
+ b === 47 && (c = n);
2734
2734
  }
2735
- var b = "";
2736
- for (n = a + c + 1; n <= t; ++n) n !== t && o.charCodeAt(n) !== 47 || (b.length === 0 ? b += ".." : b += "/..");
2737
- return b.length > 0 ? b + e.slice(i + c) : (i += c, e.charCodeAt(i) === 47 && ++i, e.slice(i));
2735
+ var d = "";
2736
+ for (n = a + c + 1; n <= t; ++n) n !== t && o.charCodeAt(n) !== 47 || (d.length === 0 ? d += ".." : d += "/..");
2737
+ return d.length > 0 ? d + e.slice(i + c) : (i += c, e.charCodeAt(i) === 47 && ++i, e.slice(i));
2738
2738
  }, _makeLong: function(o) {
2739
2739
  return o;
2740
2740
  }, dirname: function(o) {
@@ -2794,16 +2794,16 @@ var ke = { resolve: function() {
2794
2794
  if (o.length === 0) return e;
2795
2795
  var a, t = o.charCodeAt(0), A = t === 47;
2796
2796
  A ? (e.root = "/", a = 1) : a = 0;
2797
- for (var i = -1, s = 0, r = -1, c = !0, n = o.length - 1, d = 0; n >= a; --n) if ((t = o.charCodeAt(n)) !== 47) r === -1 && (c = !1, r = n + 1), t === 46 ? i === -1 ? i = n : d !== 1 && (d = 1) : i !== -1 && (d = -1);
2797
+ for (var i = -1, s = 0, r = -1, c = !0, n = o.length - 1, b = 0; n >= a; --n) if ((t = o.charCodeAt(n)) !== 47) r === -1 && (c = !1, r = n + 1), t === 46 ? i === -1 ? i = n : b !== 1 && (b = 1) : i !== -1 && (b = -1);
2798
2798
  else if (!c) {
2799
2799
  s = n + 1;
2800
2800
  break;
2801
2801
  }
2802
- return i === -1 || r === -1 || d === 0 || d === 1 && i === r - 1 && i === s + 1 ? r !== -1 && (e.base = e.name = s === 0 && A ? o.slice(1, r) : o.slice(s, r)) : (s === 0 && A ? (e.name = o.slice(1, i), e.base = o.slice(1, r)) : (e.name = o.slice(s, i), e.base = o.slice(s, r)), e.ext = o.slice(i, r)), s > 0 ? e.dir = o.slice(0, s - 1) : A && (e.dir = "/"), e;
2802
+ return i === -1 || r === -1 || b === 0 || b === 1 && i === r - 1 && i === s + 1 ? r !== -1 && (e.base = e.name = s === 0 && A ? o.slice(1, r) : o.slice(s, r)) : (s === 0 && A ? (e.name = o.slice(1, i), e.base = o.slice(1, r)) : (e.name = o.slice(s, i), e.base = o.slice(s, r)), e.ext = o.slice(i, r)), s > 0 ? e.dir = o.slice(0, s - 1) : A && (e.dir = "/"), e;
2803
2803
  }, sep: "/", delimiter: ":", win32: null, posix: null };
2804
- ke.posix = ke;
2805
- var bt, be = ke;
2806
- class _i {
2804
+ De.posix = De;
2805
+ var bt, be = De;
2806
+ class Pi {
2807
2807
  constructor(e) {
2808
2808
  ge(this, "_toElementFn");
2809
2809
  if (e) {
@@ -2861,7 +2861,7 @@ class _i {
2861
2861
  * @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
2862
2862
  * @license MIT License
2863
2863
  */
2864
- class Ce extends _i {
2864
+ class pe extends Pi {
2865
2865
  constructor(a = [], t) {
2866
2866
  super(t);
2867
2867
  ge(this, "_elements", []);
@@ -2886,7 +2886,7 @@ class Ce extends _i {
2886
2886
  return this.elements[this.size - 1] ?? void 0;
2887
2887
  }
2888
2888
  static heapify(a, t) {
2889
- return new Ce(a, t);
2889
+ return new pe(a, t);
2890
2890
  }
2891
2891
  add(a) {
2892
2892
  return this._elements.push(a), this._bubbleUp(this.elements.length - 1);
@@ -2926,10 +2926,10 @@ class Ce extends _i {
2926
2926
  return [...this.elements];
2927
2927
  }
2928
2928
  clone() {
2929
- return new Ce(this, { comparator: this.comparator, toElementFn: this.toElementFn });
2929
+ return new pe(this, { comparator: this.comparator, toElementFn: this.toElementFn });
2930
2930
  }
2931
2931
  sort() {
2932
- const a = [], t = new Ce(this, { comparator: this.comparator });
2932
+ const a = [], t = new pe(this, { comparator: this.comparator });
2933
2933
  for (; t.size !== 0; ) {
2934
2934
  const A = t.poll();
2935
2935
  A !== void 0 && a.push(A);
@@ -2942,13 +2942,13 @@ class Ce extends _i {
2942
2942
  return a;
2943
2943
  }
2944
2944
  filter(a, t) {
2945
- const A = new Ce([], { toElementFn: this.toElementFn, comparator: this.comparator });
2945
+ const A = new pe([], { toElementFn: this.toElementFn, comparator: this.comparator });
2946
2946
  let i = 0;
2947
2947
  for (const s of this) a.call(t, s, i, this) && A.add(s), i++;
2948
2948
  return A;
2949
2949
  }
2950
2950
  map(a, t, A, i) {
2951
- const s = new Ce([], { comparator: t, toElementFn: A });
2951
+ const s = new pe([], { comparator: t, toElementFn: A });
2952
2952
  let r = 0;
2953
2953
  for (const c of this) s.add(a.call(i, c, r, this)), r++;
2954
2954
  return s;
@@ -2983,79 +2983,225 @@ class Ce extends _i {
2983
2983
  (function(o) {
2984
2984
  o[o.VISIT = 0] = "VISIT", o[o.PROCESS = 1] = "PROCESS";
2985
2985
  })(bt || (bt = {}));
2986
- class Pe extends Ce {
2986
+ class _e extends pe {
2987
2987
  constructor(e = [], a) {
2988
2988
  super(e, a);
2989
2989
  }
2990
2990
  clone() {
2991
- return new Pe(this, { comparator: this.comparator, toElementFn: this.toElementFn });
2991
+ return new _e(this, { comparator: this.comparator, toElementFn: this.toElementFn });
2992
2992
  }
2993
2993
  filter(e, a) {
2994
- const t = new Pe([], { toElementFn: this.toElementFn, comparator: this.comparator });
2994
+ const t = new _e([], { toElementFn: this.toElementFn, comparator: this.comparator });
2995
2995
  let A = 0;
2996
2996
  for (const i of this) e.call(a, i, A, this) && t.add(i), A++;
2997
2997
  return t;
2998
2998
  }
2999
2999
  map(e, a, t, A) {
3000
- const i = new Pe([], { comparator: a, toElementFn: t });
3000
+ const i = new _e([], { comparator: a, toElementFn: t });
3001
3001
  let s = 0;
3002
3002
  for (const r of this) i.add(e.call(A, r, s, this)), s++;
3003
3003
  return i;
3004
3004
  }
3005
3005
  }
3006
- class _e extends Pe {
3006
+ class He extends _e {
3007
3007
  constructor(e = [], a) {
3008
3008
  super(e, a);
3009
3009
  }
3010
3010
  clone() {
3011
- return new _e(this, { comparator: this.comparator, toElementFn: this.toElementFn });
3011
+ return new He(this, { comparator: this.comparator, toElementFn: this.toElementFn });
3012
3012
  }
3013
3013
  filter(e, a) {
3014
- const t = new _e([], { toElementFn: this.toElementFn, comparator: this.comparator });
3014
+ const t = new He([], { toElementFn: this.toElementFn, comparator: this.comparator });
3015
3015
  let A = 0;
3016
3016
  for (const i of this) e.call(a, i, A, this) && t.add(i), A++;
3017
3017
  return t;
3018
3018
  }
3019
3019
  map(e, a, t, A) {
3020
- const i = new _e([], { comparator: a, toElementFn: t });
3020
+ const i = new He([], { comparator: a, toElementFn: t });
3021
3021
  let s = 0;
3022
3022
  for (const r of this) i.add(e.call(A, r, s, this)), s++;
3023
3023
  return i;
3024
3024
  }
3025
3025
  }
3026
- new Ra(), new S(), new S(), new S(), new S();
3027
- const Ve = new S(), Hi = new S(), zt = new Ma();
3026
+ new Sa(), new S(), new S(), new S(), new S();
3027
+ const Ve = new S(), _i = new S(), zt = new Ra();
3028
3028
  zt.set(1, 0, 0, 0, 0, 1, 0, -1, 0);
3029
- class qi extends wa {
3030
- constructor(e) {
3031
- const t = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
3032
- let A = 1 * Math.pow(512, 2);
3033
- A = Math.floor(A / t) * t;
3034
- const i = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3035
- e.initRenderTarget(i);
3036
- const s = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3037
- s.texture.type = F, e.initRenderTarget(s);
3038
- const r = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3039
- r.texture.type = F, e.initRenderTarget(r);
3040
- const c = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3041
- c.texture.type = F, e.initRenderTarget(c);
3042
- const n = new ta({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: r.texture }, cov2Texture: { value: c.texture }, colorTexture: { value: i.texture }, positionTexture: { value: s.texture }, zUpToYUpMatrix3x3: { value: zt }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE } }, vertexShader: `
3029
+ class Hi extends xa {
3030
+ constructor(e, a) {
3031
+ const A = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
3032
+ let i = 1 * Math.pow(512, 2);
3033
+ i = Math.floor(i / A) * A;
3034
+ const s = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3035
+ e.initRenderTarget(s);
3036
+ const r = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3037
+ r.texture.type = v, e.initRenderTarget(r);
3038
+ const c = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3039
+ c.texture.type = v, e.initRenderTarget(c);
3040
+ const n = new ne(512, 512, 1, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3041
+ n.texture.type = v, e.initRenderTarget(n);
3042
+ const b = new Aa({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: c.texture }, cov2Texture: { value: n.texture }, colorTexture: { value: s.texture }, positionTexture: { value: r.texture }, zUpToYUpMatrix3x3: { value: zt }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE }, cameraNear: { value: 0.01 }, cameraFar: { value: 10 }, computeLinearDepth: { value: !0 } }, vertexShader: qi(), fragmentShader: a || Oi(), transparent: !0, side: Ze, depthTest: !1, depthWrite: !1 }), d = new Ja(), l = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
3043
+ d.setIndex([0, 2, 1, 2, 3, 1]), d.setAttribute("position", new le(l, 3));
3044
+ const g = new Uint32Array(i), h = new ya(g, 1, !1);
3045
+ h.needsUpdate = !0, h.setUsage(Ka), d.setAttribute("order", h), d.instanceCount = 0, super(d, b), this.orderAttribute = h, this.textureSize = 512, this.numTextures = 1, this.batchSize = A, this.maxSplats = i, this.colorRenderTarget = s, this.positionRenderTarget = r, this.cov1RenderTarget = c, this.cov2RenderTarget = n, this.renderer = e, this.sortID = 0, this.freeAddresses = new He();
3046
+ for (let u = 0; u < this.maxSplats; u += A) this.freeAddresses.add(u);
3047
+ this.worker = new Worker(new URL("" + new URL("assets/PointsManager.worker-5fpGpVvf.js", import.meta.url).href, import.meta.url), { type: "module" }), this.sortListeners = [], this.worker.onmessage = (u) => {
3048
+ const p = new Uint32Array(u.data.order);
3049
+ if (p.length > this.orderAttribute.count) {
3050
+ const B = new Ja(), C = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), w = [0, 2, 1, 2, 3, 1];
3051
+ B.setIndex(w), B.setAttribute("position", new le(C, 3));
3052
+ const x = new Uint32Array(this.maxSplats), y = new ya(x, 1, !1);
3053
+ y.needsUpdate = !0, y.setUsage(Ka), B.setAttribute("order", y), B.instanceCount = 0, this.geometry.dispose(), this.geometry = B, this.orderAttribute = y;
3054
+ }
3055
+ this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(p), this.orderAttribute.addUpdateRange(0, p.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = u.data.count, this.geometry.needsUpdate = !0;
3056
+ for (let B = this.sortListeners.length - 1; B >= 0; B--)
3057
+ this.sortListeners[B](u.data.id) && this.sortListeners.splice(B, 1);
3058
+ }, this.cameraPosition = new S(0, 0, 0), this.rotateOnAxis(new S(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new Aa({ uniforms: { sourceTexture: {} }, vertexShader: lt(), fragmentShader: `
3059
+ precision highp float;
3060
+
3061
+ uniform sampler2D sourceTexture;
3062
+
3063
+ in vec2 vUv;
3064
+
3065
+ void main() {
3066
+ gl_FragColor = texture( sourceTexture, vUv );
3067
+ }`, transparent: !1, side: Ze, depthTest: !1, depthWrite: !1 }), this.copyMaterial3D = new Aa({ uniforms: { sourceTexture: {}, w: { value: 0 } }, vertexShader: lt(), fragmentShader: `
3068
+ precision highp float;
3069
+
3070
+ uniform sampler3D sourceTexture;
3071
+ uniform float w;
3072
+
3073
+ in vec2 vUv;
3074
+
3075
+ void main() {
3076
+ gl_FragColor = texture( sourceTexture, vec3(vUv, w) );
3077
+ }`, transparent: !1, side: Ze, depthTest: !1, depthWrite: !1 }), this.copyCamera = new mt(-0.5, 0.5, 0.5, -0.5, 0.1, 10), this.copyCamera.position.z = 1, this.copyScene = new qA();
3078
+ const f = new OA(1, 1);
3079
+ this.copyQuad = new xa(f, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
3080
+ const I = this;
3081
+ document.addEventListener("keyup", function(u) {
3082
+ u.key === "a" && (I.growTextures(), console.log(I.positionRenderTarget.depth));
3083
+ });
3084
+ }
3085
+ dispose() {
3086
+ this.material.dispose(), this.copyMaterial2D.dispose(), this.copyMaterial3D.dispose(), this.cov1RenderTarget.dispose(), this.cov2RenderTarget.dispose(), this.positionRenderTarget.dispose(), this.colorRenderTarget.dispose(), this.worker.terminate(), this.worker = null, this.geometry.dispose();
3087
+ }
3088
+ copyTex2D(e, a, t, A) {
3089
+ this.copyMaterial2D.uniforms.sourceTexture.value = e;
3090
+ const i = this.renderer.autoClear, s = this.renderer.getRenderTarget();
3091
+ this.renderer.autoClear = !1;
3092
+ const r = t[2] - t[0], c = t[3] - t[1];
3093
+ a.viewport.set(t[0], t[1], r, c), this.renderer.setRenderTarget(a, A), this.renderer.render(this.copyScene, this.copyCamera), this.renderer.setRenderTarget(s), this.renderer.autoClear = i;
3094
+ }
3095
+ copyTex3D(e, a, t) {
3096
+ this.copyMaterial3D.uniforms.sourceTexture.value = e;
3097
+ const A = this.renderer.autoClear, i = this.renderer.getRenderTarget();
3098
+ this.renderer.autoClear = !1, this.copyQuad.material = this.copyMaterial3D;
3099
+ for (let s = 0; s < t; s++) this.renderer.setRenderTarget(a, s), this.copyMaterial3D.uniforms.w.value = (s + 0.5) / t, this.renderer.render(this.copyScene, this.copyCamera);
3100
+ this.copyQuad.material = this.copyMaterial2D, this.renderer.setRenderTarget(i), this.renderer.autoClear = A;
3101
+ }
3102
+ setSplatsSizeMultiplier(e) {
3103
+ this.material.uniforms.sizeMultiplier.value = e;
3104
+ }
3105
+ setSplatsCropRadius(e) {
3106
+ this.material.uniforms.cropRadius.value = e;
3107
+ }
3108
+ sort(e) {
3109
+ !e && this.cameraPosition ? this.worker.postMessage({ method: "sort", xyz: [this.cameraPosition.x, this.cameraPosition.z, -this.cameraPosition.y], id: this.sortID++ }) : this.cameraPosition && e.equals(this.cameraPosition) || (this.cameraPosition.copy(e), this.worker.postMessage({ method: "sort", xyz: [this.cameraPosition.x, this.cameraPosition.z, -this.cameraPosition.y], id: this.sortID++ }));
3110
+ }
3111
+ raycast(e, a) {
3112
+ }
3113
+ addSplatsTile(e, a, t, A) {
3114
+ const i = this;
3115
+ e.count;
3116
+ const s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3, c = e.data && e.data.isInterleavedBuffer ? e.offset : 0, n = Math.ceil(s.length / (this.batchSize * r)), b = [], d = [];
3117
+ let l = () => {
3118
+ };
3119
+ const g = new Float32Array(s.length / r * 3);
3120
+ for (let f = 0; f < s.length / 3; f++) g[3 * f] = s[f * r + c], g[3 * f + 1] = s[f * r + c + 1], g[3 * f + 2] = s[f * r + c + 2];
3121
+ l = (f, I, u) => {
3122
+ const p = u * u;
3123
+ for (let B = 0; B < g.length; B += 3) {
3124
+ Ve.set(g[B], -g[B + 2], g[B + 1]);
3125
+ const C = _i.copy(Ve).sub(f.origin).dot(f.direction);
3126
+ C > 0 && f.distanceSqToPoint(Ve) < p && I.push({ distance: C, point: Ve.clone(), type: "splat" });
3127
+ }
3128
+ }, n > this.freeAddresses.size && this.growTextures();
3129
+ for (let f = 0; f < n; f++) {
3130
+ const I = this.freeAddresses.poll();
3131
+ isNaN(I) && console.log("insuficient texture size to store splats info"), b.push(I), d.push(3 * I);
3132
+ const u = f * this.batchSize;
3133
+ this.addSplatsBatch(u, I, e, a, t, A);
3134
+ }
3135
+ i.worker.postMessage({ method: "addBatches", insertionIndexes: d, positions: s.buffer, offset: c, stride: r, batchSize: i.batchSize }, [s.buffer]);
3136
+ let h = !1;
3137
+ return { hide: () => {
3138
+ h == 1 && (h = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
3139
+ }, show: (f) => {
3140
+ h == 0 && (h = !0);
3141
+ const I = i.sortID;
3142
+ i.sortListeners.push((u) => u >= I && (f(), !0)), i.worker.postMessage({ method: "showBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
3143
+ }, remove: () => {
3144
+ l = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }), b.forEach((f) => i.freeAddresses.add(f));
3145
+ }, sort: this.sort, raycast: l, isSplatsBatch: !0 };
3146
+ }
3147
+ addSplatsBatch(e, a, t, A, i, s) {
3148
+ const r = new Float32Array(4 * this.batchSize), c = new Uint8Array(4 * this.batchSize), n = new Float32Array(4 * this.batchSize), b = new Float32Array(4 * this.batchSize);
3149
+ for (let p = a; p < a + this.batchSize; p++) {
3150
+ const B = p - a, C = 4 * B, w = e + B;
3151
+ if (w >= t.count) break;
3152
+ r[C] = t.getX(w), r[C + 1] = t.getY(w), r[C + 2] = t.getZ(w), Math.floor(255 * A.getX(w)), Math.floor(255 * A.getY(w)), Math.floor(255 * A.getZ(w)), Math.floor(255 * A.getW(w)), c[C] = Math.floor(255 * A.getX(w)), c[C + 1] = Math.floor(255 * A.getY(w)), c[C + 2] = Math.floor(255 * A.getZ(w)), c[C + 3] = Math.floor(255 * A.getW(w)), n[C] = i.getX(w), n[C + 1] = i.getY(w), n[C + 2] = i.getZ(w), b[C] = s.getX(w), b[C + 1] = s.getY(w), b[C + 2] = s.getZ(w);
3153
+ }
3154
+ const d = Math.floor(a / Math.pow(this.textureSize, 2)), l = Math.ceil(this.batchSize / this.textureSize), g = [0, a / this.textureSize - d * this.textureSize, this.textureSize];
3155
+ g.push(g[1] + l);
3156
+ const h = new Ge(r, this.textureSize, l, $, v);
3157
+ h.generateMipmaps = !1, h.magFilter = M, h.minFilter = M, h.anisotropy = 0, h.needsUpdate = !0, this.renderer.initTexture(h), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(h, this.positionRenderTarget, g, d), h.dispose();
3158
+ const f = new Ge(c, this.textureSize, l, $, X);
3159
+ f.generateMipmaps = !1, f.magFilter = M, f.minFilter = M, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, g, d), f.dispose();
3160
+ const I = new Ge(n, this.textureSize, l, $, v);
3161
+ I.generateMipmaps = !1, I.magFilter = M, I.minFilter = M, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, g, d), I.dispose();
3162
+ const u = new Ge(b, this.textureSize, l, $, v);
3163
+ u.generateMipmaps = !1, u.magFilter = M, u.minFilter = M, u.anisotropy = 0, u.needsUpdate = !0, this.renderer.initTexture(u), this.copyTex2D(u, this.cov2RenderTarget, g, d), u.dispose();
3164
+ }
3165
+ growTextures() {
3166
+ for (let s = this.maxSplats; s < this.maxSplats + this.textureSize * this.textureSize; s += this.batchSize) this.freeAddresses.add(s);
3167
+ this.maxSplats += this.textureSize * this.textureSize;
3168
+ const e = this.numTextures + 1, a = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3169
+ this.renderer.initRenderTarget(a), this.copyTex3D(this.colorRenderTarget.texture, a, this.numTextures), this.colorRenderTarget.dispose(), this.colorRenderTarget = a, this.material.uniforms.colorTexture.value = this.colorRenderTarget.texture;
3170
+ const t = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3171
+ t.texture.type = v, this.renderer.initRenderTarget(t), this.copyTex3D(this.positionRenderTarget.texture, t, this.numTextures), this.positionRenderTarget.dispose(), this.positionRenderTarget = t, this.material.uniforms.positionTexture.value = this.positionRenderTarget.texture;
3172
+ const A = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3173
+ A.texture.type = v, this.renderer.initRenderTarget(A), this.copyTex3D(this.cov1RenderTarget.texture, A, this.numTextures), this.cov1RenderTarget.dispose(), this.cov1RenderTarget = A, this.material.uniforms.cov1Texture.value = this.cov1RenderTarget.texture;
3174
+ const i = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
3175
+ i.texture.type = v, this.renderer.initRenderTarget(i), this.copyTex3D(this.cov2RenderTarget.texture, i, this.numTextures), this.cov2RenderTarget.dispose(), this.cov2RenderTarget = i, this.material.uniforms.cov2Texture.value = this.cov2RenderTarget.texture, this.numTextures = e, this.material.uniforms.numSlices.value = this.numTextures;
3176
+ }
3177
+ }
3178
+ function qi() {
3179
+ return `
3043
3180
  precision highp float;
3044
3181
  precision highp int;
3045
3182
 
3183
+ #include <common>
3184
+ #include <packing>
3185
+
3046
3186
  uniform float textureSize;
3047
3187
  uniform float numSlices;
3048
3188
  uniform float sizeMultiplier;
3049
3189
  in uint order;
3050
3190
  out vec4 color;
3051
3191
  out vec2 vUv;
3052
- out vec3 splatPosition;
3192
+ out vec3 splatPositionWorld;
3193
+ out float splatDepth;
3194
+ //out float orthographicDepth;
3053
3195
  out float splatCrop;
3054
3196
  uniform sampler3D colorTexture;
3055
3197
  uniform sampler3D positionTexture;
3056
3198
  uniform sampler3D cov1Texture;
3057
3199
  uniform sampler3D cov2Texture;
3058
3200
  uniform mat3 zUpToYUpMatrix3x3;
3201
+ uniform float logDepthBufFC;
3202
+ //uniform float cameraNear;
3203
+ //uniform float cameraFar;
3204
+ //uniform bool computeLinearDepth;
3059
3205
 
3060
3206
 
3061
3207
  void getVertexData(out vec3 position, out mat3 covariance) {
@@ -3113,7 +3259,7 @@ void modelTransform(in vec3 splatPosition, in mat3 covariance, inout vec3 vertex
3113
3259
  right = normalize(cross(upReference, look));
3114
3260
  }
3115
3261
 
3116
- vec3 up = cross(look, right);
3262
+ vec3 up = cross(look, right);
3117
3263
 
3118
3264
  // Construct the billboard rotation matrix
3119
3265
  mat3 billboardRot = mat3(
@@ -3157,182 +3303,66 @@ vec3 up = cross(look, right);
3157
3303
  vertexPosition = billboardRot * vertexPosition + splatPosition;
3158
3304
  }
3159
3305
 
3306
+
3160
3307
  void main() {
3161
3308
  vUv = vec2(position);
3162
3309
 
3163
- splatPosition = vec3(0.0);
3310
+ splatPositionWorld = vec3(0.0);
3164
3311
  mat3 covariance = mat3(0.0);
3165
- getVertexData(splatPosition, covariance);
3166
- splatCrop = sqrt(color.w); // discard more pixels when opacity is low
3167
- splatPosition = (modelMatrix * vec4(splatPosition, 1.0)).xyz;
3312
+ getVertexData(splatPositionWorld, covariance);
3313
+ splatCrop = 0.5*sqrt(color.w); // discard more pixels when opacity is low
3314
+ splatPositionWorld = (modelMatrix * vec4(splatPositionWorld, 1.0)).xyz;
3168
3315
 
3169
3316
 
3170
3317
  vec3 outPosition = vec3(position)*sizeMultiplier;
3171
- modelTransform(splatPosition, covariance, outPosition);
3318
+ modelTransform(splatPositionWorld, covariance, outPosition);
3172
3319
 
3173
3320
  gl_Position = projectionMatrix * viewMatrix * vec4(outPosition, 1.0);
3321
+ /* if(computeLinearDepth){
3322
+ orthographicDepth = viewZToOrthographicDepth( -gl_Position.w, cameraNear, cameraFar );
3323
+ } */
3324
+
3325
+ vec4 centerP = projectionMatrix * viewMatrix * vec4(splatPositionWorld, 1.0);
3326
+ #if defined( USE_LOGDEPTHBUF )
3327
+ float isPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
3328
+ splatDepth = isPerspective == 0.0 ? centerP.z : log2( 1.0 + centerP.w ) * logDepthBufFC * 0.5;
3329
+ #else
3330
+ splatDepth = (centerP.z / centerP.w)* 0.5 + 0.5;
3331
+ #endif
3332
+
3174
3333
 
3175
3334
  }
3176
- `, fragmentShader: `
3335
+ `;
3336
+ }
3337
+ function Oi() {
3338
+ return `
3177
3339
  precision highp float;
3178
3340
 
3179
3341
  in vec4 color;
3180
3342
  in vec2 vUv;
3181
- in vec3 splatPosition;
3343
+ in vec3 splatPositionWorld;
3344
+ in float splatDepth;
3345
+ //in float orthographicDepth;
3182
3346
  in float splatCrop;
3183
3347
  uniform float textureSize;
3184
3348
  uniform float cropRadius;
3185
3349
 
3186
3350
  void main() {
3187
- if(length(splatPosition)>cropRadius) discard;
3351
+ if(length(splatPositionWorld)>cropRadius) discard;
3188
3352
  float l = length(vUv);
3189
3353
 
3190
3354
  // Early discard for pixels outside the radius
3191
- if (l > splatCrop) {
3192
- //gl_FragColor = vec4(color.xyz,1.0);
3193
- //return;
3355
+ if (l > 0.5) {
3194
3356
  discard;
3195
3357
  };
3196
3358
  vec2 p = vUv * 4.0;
3197
3359
  float alpha = exp(-dot(p, p));
3198
3360
 
3199
3361
  gl_FragColor = vec4(pow(color.xyz,vec3(1.0/2.2)), color.w * pow(alpha, 1.8));
3362
+ //gl_FragColor = vec4(splatDepth,0.0,0.0,1.0);
3363
+ //gl_FragDepth = splatDepth;
3200
3364
 
3201
- }`, transparent: !0, side: Ze, depthTest: !0, depthWrite: !0, depthFunc: qA }), d = new Ja(), b = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
3202
- d.setIndex([0, 2, 1, 2, 3, 1]), d.setAttribute("position", new le(b, 3));
3203
- const l = new Uint32Array(A), g = new Qa(l, 1, !1);
3204
- g.needsUpdate = !0, g.setUsage(Ka), d.setAttribute("order", g), d.instanceCount = 0, super(d, n), this.orderAttribute = g, this.textureSize = 512, this.numTextures = 1, this.batchSize = t, this.maxSplats = A, this.colorRenderTarget = i, this.positionRenderTarget = s, this.cov1RenderTarget = r, this.cov2RenderTarget = c, this.renderer = e, this.sortID = 0, this.freeAddresses = new _e();
3205
- for (let I = 0; I < this.maxSplats; I += t) this.freeAddresses.add(I);
3206
- this.worker = new Worker(new URL("/assets/PointsManager.worker-5fpGpVvf.js", import.meta.url), { type: "module" }), this.sortListeners = [], this.worker.onmessage = (I) => {
3207
- const u = new Uint32Array(I.data.order);
3208
- if (u.length > this.orderAttribute.count) {
3209
- const C = new Ja(), p = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), B = [0, 2, 1, 2, 3, 1];
3210
- C.setIndex(B), C.setAttribute("position", new le(p, 3));
3211
- const y = new Uint32Array(this.maxSplats), x = new Qa(y, 1, !1);
3212
- x.needsUpdate = !0, x.setUsage(Ka), C.setAttribute("order", x), C.instanceCount = 0, this.geometry.dispose(), this.geometry = C, this.orderAttribute = x;
3213
- }
3214
- this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(u), this.orderAttribute.addUpdateRange(0, u.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = I.data.count, this.geometry.needsUpdate = !0;
3215
- for (let C = this.sortListeners.length - 1; C >= 0; C--)
3216
- this.sortListeners[C](I.data.id) && this.sortListeners.splice(C, 1);
3217
- }, this.cameraPosition = new S(0, 0, 0), this.rotateOnAxis(new S(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new ta({ uniforms: { sourceTexture: {} }, vertexShader: lt(), fragmentShader: `
3218
- precision highp float;
3219
-
3220
- uniform sampler2D sourceTexture;
3221
-
3222
- in vec2 vUv;
3223
-
3224
- void main() {
3225
- gl_FragColor = texture( sourceTexture, vUv );
3226
- }`, transparent: !1, side: Ze, depthTest: !1, depthWrite: !1 }), this.copyMaterial3D = new ta({ uniforms: { sourceTexture: {}, w: { value: 0 } }, vertexShader: lt(), fragmentShader: `
3227
- precision highp float;
3228
-
3229
- uniform sampler3D sourceTexture;
3230
- uniform float w;
3231
-
3232
- in vec2 vUv;
3233
-
3234
- void main() {
3235
- gl_FragColor = texture( sourceTexture, vec3(vUv, w) );
3236
- }`, transparent: !1, side: Ze, depthTest: !1, depthWrite: !1 }), this.copyCamera = new Et(-0.5, 0.5, 0.5, -0.5, 0.1, 10), this.copyCamera.position.z = 1, this.copyScene = new OA();
3237
- const h = new JA(1, 1);
3238
- this.copyQuad = new wa(h, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
3239
- const f = this;
3240
- document.addEventListener("keyup", function(I) {
3241
- I.key === "a" && (f.growTextures(), console.log(f.positionRenderTarget.depth));
3242
- });
3243
- }
3244
- dispose() {
3245
- this.material.dispose(), this.copyMaterial2D.dispose(), this.copyMaterial3D.dispose(), this.cov1RenderTarget.dispose(), this.cov2RenderTarget.dispose(), this.positionRenderTarget.dispose(), this.colorRenderTarget.dispose(), this.worker.terminate(), this.worker = null, this.geometry.dispose();
3246
- }
3247
- copyTex2D(e, a, t, A) {
3248
- this.copyMaterial2D.uniforms.sourceTexture.value = e;
3249
- const i = this.renderer.autoClear, s = this.renderer.getRenderTarget();
3250
- this.renderer.autoClear = !1;
3251
- const r = t[2] - t[0], c = t[3] - t[1];
3252
- a.viewport.set(t[0], t[1], r, c), this.renderer.setRenderTarget(a, A), this.renderer.render(this.copyScene, this.copyCamera), this.renderer.setRenderTarget(s), this.renderer.autoClear = i;
3253
- }
3254
- copyTex3D(e, a, t) {
3255
- this.copyMaterial3D.uniforms.sourceTexture.value = e;
3256
- const A = this.renderer.autoClear, i = this.renderer.getRenderTarget();
3257
- this.renderer.autoClear = !1, this.copyQuad.material = this.copyMaterial3D;
3258
- for (let s = 0; s < t; s++) this.renderer.setRenderTarget(a, s), this.copyMaterial3D.uniforms.w.value = (s + 0.5) / t, this.renderer.render(this.copyScene, this.copyCamera);
3259
- this.copyQuad.material = this.copyMaterial2D, this.renderer.setRenderTarget(i), this.renderer.autoClear = A;
3260
- }
3261
- setSplatsSizeMultiplier(e) {
3262
- this.material.uniforms.sizeMultiplier.value = e;
3263
- }
3264
- setSplatsCropRadius(e) {
3265
- this.material.uniforms.cropRadius.value = e;
3266
- }
3267
- sort(e) {
3268
- !e && this.cameraPosition ? this.worker.postMessage({ method: "sort", xyz: [this.cameraPosition.x, this.cameraPosition.z, -this.cameraPosition.y], id: this.sortID++ }) : this.cameraPosition && e.equals(this.cameraPosition) || (this.cameraPosition.copy(e), this.worker.postMessage({ method: "sort", xyz: [this.cameraPosition.x, this.cameraPosition.z, -this.cameraPosition.y], id: this.sortID++ }));
3269
- }
3270
- raycast(e, a) {
3271
- }
3272
- addSplatsTile(e, a, t, A) {
3273
- const i = this;
3274
- e.count;
3275
- const s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3, c = e.data && e.data.isInterleavedBuffer ? e.offset : 0, n = Math.ceil(s.length / (this.batchSize * r)), d = [], b = [];
3276
- let l = () => {
3277
- };
3278
- const g = new Float32Array(s.length / r * 3);
3279
- for (let f = 0; f < s.length / 3; f++) g[3 * f] = s[f * r + c], g[3 * f + 1] = s[f * r + c + 1], g[3 * f + 2] = s[f * r + c + 2];
3280
- l = (f, I, u) => {
3281
- const C = u * u;
3282
- for (let p = 0; p < g.length; p += 3) {
3283
- Ve.set(g[p], -g[p + 2], g[p + 1]);
3284
- const B = Hi.copy(Ve).sub(f.origin).dot(f.direction);
3285
- B > 0 && f.distanceSqToPoint(Ve) < C && I.push({ distance: B, point: Ve.clone(), type: "splat" });
3286
- }
3287
- }, n > this.freeAddresses.size && this.growTextures();
3288
- for (let f = 0; f < n; f++) {
3289
- const I = this.freeAddresses.poll();
3290
- isNaN(I) && console.log("insuficient texture size to store splats info"), d.push(I), b.push(3 * I);
3291
- const u = f * this.batchSize;
3292
- this.addSplatsBatch(u, I, e, a, t, A);
3293
- }
3294
- i.worker.postMessage({ method: "addBatches", insertionIndexes: b, positions: s.buffer, offset: c, stride: r, batchSize: i.batchSize }, [s.buffer]);
3295
- let h = !1;
3296
- return { hide: () => {
3297
- h == 1 && (h = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
3298
- }, show: (f) => {
3299
- h == 0 && (h = !0);
3300
- const I = i.sortID;
3301
- i.sortListeners.push((u) => u >= I && (f(), !0)), i.worker.postMessage({ method: "showBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
3302
- }, remove: () => {
3303
- l = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }), d.forEach((f) => i.freeAddresses.add(f));
3304
- }, sort: this.sort, raycast: l, isSplatsBatch: !0 };
3305
- }
3306
- addSplatsBatch(e, a, t, A, i, s) {
3307
- const r = new Float32Array(4 * this.batchSize), c = new Uint8Array(4 * this.batchSize), n = new Float32Array(4 * this.batchSize), d = new Float32Array(4 * this.batchSize);
3308
- for (let C = a; C < a + this.batchSize; C++) {
3309
- const p = C - a, B = 4 * p, y = e + p;
3310
- if (y >= t.count) break;
3311
- r[B] = t.getX(y), r[B + 1] = t.getY(y), r[B + 2] = t.getZ(y), Math.floor(255 * A.getX(y)), Math.floor(255 * A.getY(y)), Math.floor(255 * A.getZ(y)), Math.floor(255 * A.getW(y)), c[B] = Math.floor(255 * A.getX(y)), c[B + 1] = Math.floor(255 * A.getY(y)), c[B + 2] = Math.floor(255 * A.getZ(y)), c[B + 3] = Math.floor(255 * A.getW(y)), n[B] = i.getX(y), n[B + 1] = i.getY(y), n[B + 2] = i.getZ(y), d[B] = s.getX(y), d[B + 1] = s.getY(y), d[B + 2] = s.getZ(y);
3312
- }
3313
- const b = Math.floor(a / Math.pow(this.textureSize, 2)), l = Math.ceil(this.batchSize / this.textureSize), g = [0, a / this.textureSize - b * this.textureSize, this.textureSize];
3314
- g.push(g[1] + l);
3315
- const h = new Le(r, this.textureSize, l, $, F);
3316
- h.generateMipmaps = !1, h.magFilter = M, h.minFilter = M, h.anisotropy = 0, h.needsUpdate = !0, this.renderer.initTexture(h), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(h, this.positionRenderTarget, g, b), h.dispose();
3317
- const f = new Le(c, this.textureSize, l, $, X);
3318
- f.generateMipmaps = !1, f.magFilter = M, f.minFilter = M, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, g, b), f.dispose();
3319
- const I = new Le(n, this.textureSize, l, $, F);
3320
- I.generateMipmaps = !1, I.magFilter = M, I.minFilter = M, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, g, b), I.dispose();
3321
- const u = new Le(d, this.textureSize, l, $, F);
3322
- u.generateMipmaps = !1, u.magFilter = M, u.minFilter = M, u.anisotropy = 0, u.needsUpdate = !0, this.renderer.initTexture(u), this.copyTex2D(u, this.cov2RenderTarget, g, b), u.dispose();
3323
- }
3324
- growTextures() {
3325
- for (let s = this.maxSplats; s < this.maxSplats + this.textureSize * this.textureSize; s += this.batchSize) this.freeAddresses.add(s);
3326
- this.maxSplats += this.textureSize * this.textureSize;
3327
- const e = this.numTextures + 1, a = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3328
- this.renderer.initRenderTarget(a), this.copyTex3D(this.colorRenderTarget.texture, a, this.numTextures), this.colorRenderTarget.dispose(), this.colorRenderTarget = a, this.material.uniforms.colorTexture.value = this.colorRenderTarget.texture;
3329
- const t = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3330
- t.texture.type = F, this.renderer.initRenderTarget(t), this.copyTex3D(this.positionRenderTarget.texture, t, this.numTextures), this.positionRenderTarget.dispose(), this.positionRenderTarget = t, this.material.uniforms.positionTexture.value = this.positionRenderTarget.texture;
3331
- const A = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3332
- A.texture.type = F, this.renderer.initRenderTarget(A), this.copyTex3D(this.cov1RenderTarget.texture, A, this.numTextures), this.cov1RenderTarget.dispose(), this.cov1RenderTarget = A, this.material.uniforms.cov1Texture.value = this.cov1RenderTarget.texture;
3333
- const i = new ne(this.textureSize, this.textureSize, e, { magFilter: M, minFilter: M, anisotropy: 0, type: F, depthBuffer: !1, resolveDepthBuffer: !1 });
3334
- i.texture.type = F, this.renderer.initRenderTarget(i), this.copyTex3D(this.cov2RenderTarget.texture, i, this.numTextures), this.cov2RenderTarget.dispose(), this.cov2RenderTarget = i, this.material.uniforms.cov2Texture.value = this.cov2RenderTarget.texture, this.numTextures = e, this.material.uniforms.numSlices.value = this.numTextures;
3335
- }
3365
+ }`;
3336
3366
  }
3337
3367
  function lt() {
3338
3368
  return `
@@ -3345,32 +3375,32 @@ void main() {
3345
3375
  }`;
3346
3376
  }
3347
3377
  var W;
3348
- const te = new m.Sphere(new m.Vector3(0, 0, 0), 1), Ie = new se([0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]);
3349
- new m.Box3();
3350
- const ce = new m.Vector3(0, 0, 0), ye = new m.Vector3(0, 0, 0), Oi = new m.Vector3(0, 1, 0), Ye = new m.Ray(), We = new m.Matrix4();
3351
- new m.Matrix4(), new m.Frustum();
3352
- const Ca = new m.Vector3(), Xe = [], ht = new m.Quaternion(), Z = {};
3353
- function Ji() {
3378
+ const te = new E.Sphere(new E.Vector3(0, 0, 0), 1), ue = new se([0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1]);
3379
+ new E.Box3();
3380
+ const ce = new E.Vector3(0, 0, 0), we = new E.Vector3(0, 0, 0), Ji = new E.Vector3(0, 1, 0), Ye = new E.Ray(), We = new E.Matrix4();
3381
+ new E.Matrix4(), new E.Frustum();
3382
+ const Ca = new E.Vector3(), Xe = [], ht = new E.Quaternion(), Z = {};
3383
+ function Ki() {
3354
3384
  var o = [];
3355
3385
  for (let e in Z) Z.hasOwnProperty(e) && Z[e] > 0 && o.push(e);
3356
3386
  return o;
3357
3387
  }
3358
- class Vt extends m.Object3D {
3388
+ class Vt extends E.Object3D {
3359
3389
  constructor(e) {
3360
3390
  super();
3361
3391
  const a = this;
3362
- if (a.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new m.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new m.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = kt(), e.tileLoader) this.tileLoader = e.tileLoader;
3392
+ if (a.splatsMesh = e.splatsMesh, this.contentURL = [], e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.loadingStrategy = e.loadingStrategy ? e.loadingStrategy.toUpperCase() : "INCREMENTAL", this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.proxy = e.proxy, this.drawBoundingVolume = !!e.drawBoundingVolume && e.drawBoundingVolume, this.displayErrors = e.displayErrors, this.displayCopyright = e.displayCopyright, e.queryParams && (this.queryParams = { ...e.queryParams }), this.uuid = kt(), e.tileLoader) this.tileLoader = e.tileLoader;
3363
3393
  else {
3364
3394
  const i = {};
3365
3395
  i.meshCallback = e.meshCallback ? e.meshCallback : (s, r) => {
3366
- s.material.wireframe = !1, s.material.side = m.DoubleSide;
3396
+ s.material.wireframe = !1, s.material.side = E.DoubleSide;
3367
3397
  }, i.pointsCallback = e.pointsCallback ? e.pointsCallback : (s, r) => {
3368
3398
  s.material.size = Math.pow(r, 0.33), s.material.sizeAttenuation = !0;
3369
- }, i.proxy = this.proxy, i.renderer = e.renderer, i.dracoLoader = e.dracoLoader, i.ktx2Loader = e.ktx2Loader, this.tileLoader = new Pi(i), this.update = (s) => {
3399
+ }, i.proxy = this.proxy, i.renderer = e.renderer, i.dracoLoader = e.dracoLoader, i.ktx2Loader = e.ktx2Loader, this.tileLoader = new Ni(i), this.update = (s) => {
3370
3400
  this.update(s), this.tileLoader.update();
3371
3401
  };
3372
3402
  }
3373
- if (this.displayCopyright = !!e.displayCopyright, this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.splatsCropRadius = Number.MAX_VALUE, this.splatsSizeMultiplier = 1, this.renderer = e.renderer, this.meshCallback = e.meshCallback, this.loadOutsideView = e.loadOutsideView, this.cameraOnLoad = e.cameraOnLoad, this.parentTile = e.parentTile, this.occlusionCullingService = e.occlusionCullingService, this.static = e.static, this.occlusionCullingService && (this.color = new m.Color(), this.color.setHex(16777215 * Math.random()), this.colorID = m.MathUtils.clamp(255 * a.color.r, 0, 255) << 16 ^ m.MathUtils.clamp(255 * a.color.g, 0, 255) << 8 ^ m.MathUtils.clamp(255 * a.color.b, 0, 255)), this.static && (this.matrixAutoUpdate = !1, this.matrixWorldAutoUpdate = !1), this.childrenTiles = [], this.meshContent = [], this.tileContent, this.refine, this.rootPath, this.geometricError, this.boundingVolume, this.json, this.materialVisibility = !1, this.level = e.level ? e.level : 0, this.hasMeshContent = 0, this.hasUnloadedJSONContent = 0, this.centerModel = e.centerModel, this.abortController = new AbortController(), this.onLoadCallback = e.onLoadCallback, e.json) a._setup(e);
3403
+ if (this.displayCopyright = !!e.displayCopyright, this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.splatsCropRadius = Number.MAX_VALUE, this.splatsSizeMultiplier = 1, this.renderer = e.renderer, this.meshCallback = e.meshCallback, this.loadOutsideView = e.loadOutsideView, this.cameraOnLoad = e.cameraOnLoad, this.parentTile = e.parentTile, this.occlusionCullingService = e.occlusionCullingService, this.static = e.static, this.occlusionCullingService && (this.color = new E.Color(), this.color.setHex(16777215 * Math.random()), this.colorID = E.MathUtils.clamp(255 * a.color.r, 0, 255) << 16 ^ E.MathUtils.clamp(255 * a.color.g, 0, 255) << 8 ^ E.MathUtils.clamp(255 * a.color.b, 0, 255)), this.static && (this.matrixAutoUpdate = !1, this.matrixWorldAutoUpdate = !1), this.childrenTiles = [], this.meshContent = [], this.tileContent, this.refine, this.rootPath, this.geometricError, this.boundingVolume, this.json, this.materialVisibility = !1, this.level = e.level ? e.level : 0, this.hasMeshContent = 0, this.hasUnloadedJSONContent = 0, this.centerModel = e.centerModel, this.abortController = new AbortController(), this.onLoadCallback = e.onLoadCallback, e.json) a._setup(e);
3374
3404
  else if (e.url) {
3375
3405
  var t = e.url;
3376
3406
  if (a.queryParams) {
@@ -3406,25 +3436,25 @@ class Vt extends m.Object3D {
3406
3436
  }
3407
3437
  async _setup(e) {
3408
3438
  const a = this;
3409
- if (e.json.extensionsRequired && e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") && (a.splatsMesh = new qi(a.tileLoader.renderer), this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius), this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier), a.add(a.splatsMesh)), e.json.root ? (a.json = e.json.root, a.json.refine || (a.json.refine = e.json.refine), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : a.json = e.json, a.json.children || (a.json.getChildren ? a.json.children = await a.json.getChildren() : a.json.children = []), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refine ? a.refine = a.json.refine : a.refine = e.parentRefine, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError, a.json.transform) {
3410
- let A = new m.Matrix4();
3439
+ if (e.json.extensionsRequired && e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") && (a.splatsMesh = new Hi(a.tileLoader.renderer), this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius), this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier), a.add(a.splatsMesh)), e.json.root ? (a.json = e.json.root, a.json.refine || (a.json.refine = e.json.refine), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : a.json = e.json, a.json.children || (a.json.getChildren ? a.json.children = await a.json.getChildren() : a.json.children = []), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refine ? a.refine = a.json.refine : a.refine = e.parentRefine, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError, a.json.transform) {
3440
+ let A = new E.Matrix4();
3411
3441
  A.elements = a.json.transform, a.applyMatrix4(A);
3412
3442
  }
3413
3443
  if (a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new se(a.json.boundingVolume.box);
3414
3444
  else if (a.json.boundingVolume.region) {
3415
3445
  const A = a.json.boundingVolume.region;
3416
- a._transformWGS84ToCartesian(A[0], A[1], A[4], ce), a._transformWGS84ToCartesian(A[2], A[3], A[5], ye), ce.lerp(ye, 0.5), a.boundingVolume = new m.Sphere(new m.Vector3(ce.x, ce.y, ce.z), ce.distanceTo(ye));
3446
+ a._transformWGS84ToCartesian(A[0], A[1], A[4], ce), a._transformWGS84ToCartesian(A[2], A[3], A[5], we), ce.lerp(we, 0.5), a.boundingVolume = new E.Sphere(new E.Vector3(ce.x, ce.y, ce.z), ce.distanceTo(we));
3417
3447
  } else if (a.json.boundingVolume.sphere) {
3418
3448
  const A = a.json.boundingVolume.sphere;
3419
- a.boundingVolume = new m.Sphere(new m.Vector3(A[0], A[1], A[2]), A[3]);
3449
+ a.boundingVolume = new E.Sphere(new E.Vector3(A[0], A[1], A[2]), A[3]);
3420
3450
  } else a.boundingVolume = e.parentBoundingVolume;
3421
3451
  else a.boundingVolume = e.parentBoundingVolume;
3422
3452
  function t(A) {
3423
3453
  A.uri && A.uri.includes("json") || A.url && A.url.includes("json") ? a.hasUnloadedJSONContent++ : a.hasMeshContent++;
3424
3454
  }
3425
- if (a.json.content ? (t(a.json.content), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a.loadingStrategy === "IMMEDIATE" ? a._load(!0, !1) : a._load()) : a.json.contents && (a.json.contents.forEach((A) => t(A)), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a.loadingStrategy === "IMMEDIATE" ? a._load(!0, !1) : a._load()), a.centerModel && (ye.copy(a.boundingVolume.center), this.json.boundingVolume.region && (this._transformWGS84ToCartesian(0.5 * (this.json.boundingVolume.region[0] + this.json.boundingVolume.region[2]), 0.5 * (this.json.boundingVolume.region[1] + this.json.boundingVolume.region[3]), 0.5 * (this.json.boundingVolume.region[4] + this.json.boundingVolume.region[5]), ce), ht.setFromUnitVectors(ce.normalize(), Oi.normalize()), a.applyQuaternion(ht)), ye.applyMatrix4(a.matrix), a.position.sub(ye), a.updateMatrices()), e.onLoadCallback && a.onLoadCallback(a), a.isSetup = !0, a.level > 0 && a.drawBoundingVolume && (a.bbox && console.log("double setup"), this.boundingVolume.aabb)) {
3455
+ if (a.json.content ? (t(a.json.content), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a.loadingStrategy === "IMMEDIATE" ? a._load(!0, !1) : a._load()) : a.json.contents && (a.json.contents.forEach((A) => t(A)), a.hasMeshContent == 0 && (a.level = Math.max(0, a.parentTile ? a.parentTile.level + 0.01 : 0)), a.loadingStrategy === "IMMEDIATE" ? a._load(!0, !1) : a._load()), a.centerModel && (we.copy(a.boundingVolume.center), this.json.boundingVolume.region && (this._transformWGS84ToCartesian(0.5 * (this.json.boundingVolume.region[0] + this.json.boundingVolume.region[2]), 0.5 * (this.json.boundingVolume.region[1] + this.json.boundingVolume.region[3]), 0.5 * (this.json.boundingVolume.region[4] + this.json.boundingVolume.region[5]), ce), ht.setFromUnitVectors(ce.normalize(), Ji.normalize()), a.applyQuaternion(ht)), we.applyMatrix4(a.matrix), a.position.sub(we), a.updateMatrices()), e.onLoadCallback && a.onLoadCallback(a), a.isSetup = !0, a.level > 0 && a.drawBoundingVolume && (a.bbox && console.log("double setup"), this.boundingVolume.aabb)) {
3426
3456
  let A = this.boundingVolume.aabb.clone();
3427
- A.applyMatrix4(this.matrixWorld), a.bbox = new m.Box3Helper(A, new m.Color(Math.random(), Math.random(), Math.random())), a.add(a.bbox), a.bbox.material.visible = !1;
3457
+ A.applyMatrix4(this.matrixWorld), a.bbox = new E.Box3Helper(A, new E.Color(Math.random(), Math.random(), Math.random())), a.add(a.bbox), a.bbox.material.visible = !1;
3428
3458
  }
3429
3459
  }
3430
3460
  _assembleURL(e, a) {
@@ -3456,11 +3486,11 @@ class Vt extends m.Object3D {
3456
3486
  async function A(i, s, r, c) {
3457
3487
  let n;
3458
3488
  i.uri ? n = i.uri : i.url && (n = i.url);
3459
- const d = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
3460
- if (d.test(t.rootPath) ? d.test(n) || (n = t._assembleURL(t.rootPath, n)) : be.isAbsolute(t.rootPath) && (n = t.rootPath + be.sep + n), n = t._extractQueryParams(n, t.queryParams), t.queryParams) {
3461
- var b = "";
3462
- for (let l in t.queryParams) t.queryParams.hasOwnProperty(l) && (b += "&" + l + "=" + t.queryParams[l]);
3463
- n.includes("?") ? n += b : n += "?" + b.substring(1);
3489
+ const b = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
3490
+ if (b.test(t.rootPath) ? b.test(n) || (n = t._assembleURL(t.rootPath, n)) : be.isAbsolute(t.rootPath) && (n = t.rootPath + be.sep + n), n = t._extractQueryParams(n, t.queryParams), t.queryParams) {
3491
+ var d = "";
3492
+ for (let l in t.queryParams) t.queryParams.hasOwnProperty(l) && (d += "&" + l + "=" + t.queryParams[l]);
3493
+ n.includes("?") ? n += d : n += "?" + d.substring(1);
3464
3494
  }
3465
3495
  if (n) if (c && (n.includes(".b3dm") || n.includes(".glb") || n.includes(".gltf"))) {
3466
3496
  t.contentURL.push(n);
@@ -3472,7 +3502,7 @@ class Vt extends m.Object3D {
3472
3502
  if ((g.isMesh || g.isPoints) && g.layers.disable(0), g.isMesh && t.occlusionCullingService) {
3473
3503
  const h = g.geometry.attributes.position, f = [];
3474
3504
  for (let I = 0; I < h.count; I++) f.push(t.color.r, t.color.g, t.color.b);
3475
- g.geometry.setAttribute("color", new m.Float32BufferAttribute(f, 3));
3505
+ g.geometry.setAttribute("color", new E.Float32BufferAttribute(f, 3));
3476
3506
  }
3477
3507
  }), t.add(l), t.updateMatrices()));
3478
3508
  }, t.cameraOnLoad ? () => {
@@ -3524,7 +3554,7 @@ class Vt extends m.Object3D {
3524
3554
  let t = !1;
3525
3555
  if (this.boundingVolume instanceof se) t = this.boundingVolume.intersectsRay(Ye);
3526
3556
  else {
3527
- if (!(this.boundingVolume instanceof m.Sphere)) return !1;
3557
+ if (!(this.boundingVolume instanceof E.Sphere)) return !1;
3528
3558
  t = ray.intersectsSphere(this.boundingVolume);
3529
3559
  }
3530
3560
  return t && this.materialVisibility && this.splatsReady && (Xe.length = 0, this.meshContent.forEach((A) => {
@@ -3536,8 +3566,8 @@ class Vt extends m.Object3D {
3536
3566
  return super.raycast(e, a);
3537
3567
  }
3538
3568
  update(e) {
3539
- const a = new m.Frustum();
3540
- a.setFromProjectionMatrix(new m.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse));
3569
+ const a = new E.Frustum();
3570
+ a.setFromProjectionMatrix(new E.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse));
3541
3571
  let t = [0], A = [0], i = [0], s = [0];
3542
3572
  return this.refine == "REPLACE" ? this.loadingStrategy === "IMMEDIATE" ? (this._updateImmediate(e, a), this._statsImmediate(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)) : (this._update(e, a), this._stats(i, t, s, A)), t > 0 && (s[0] /= t[0]), this.splatsMesh && (Ca.copy(e.position), We.copy(this.matrixWorld).invert(), Ca.applyMatrix4(We), this.splatsMesh.sort(Ca)), { numTilesLoaded: t[0], numTilesRendered: A[0], maxLOD: i[0], percentageLoaded: s[0] };
3543
3573
  }
@@ -3713,10 +3743,10 @@ class Vt extends m.Object3D {
3713
3743
  _calculateUpdateMetric(e, a) {
3714
3744
  let t = 0;
3715
3745
  if (this.boundingVolume instanceof se) {
3716
- if (Ie.copy(this.boundingVolume), Ie.applyMatrix4(this.matrixWorld), !Ie.inFrustum(a)) return -1;
3717
- t = Math.max(0, Ie.distanceToPoint(e.position) - e.near);
3746
+ if (ue.copy(this.boundingVolume), ue.applyMatrix4(this.matrixWorld), !ue.inFrustum(a)) return -1;
3747
+ t = Math.max(0, ue.distanceToPoint(e.position) - e.near);
3718
3748
  } else {
3719
- if (!(this.boundingVolume instanceof m.Sphere)) return console.error("unsupported shape"), -1;
3749
+ if (!(this.boundingVolume instanceof E.Sphere)) return console.error("unsupported shape"), -1;
3720
3750
  if (te.copy(this.boundingVolume), te.applyMatrix4(this.matrixWorld), !a.intersectsSphere(te)) return -1;
3721
3751
  t = Math.max(0, e.position.distanceTo(te.center) - te.radius - e.near);
3722
3752
  }
@@ -3741,7 +3771,7 @@ class Vt extends m.Object3D {
3741
3771
  }), a;
3742
3772
  }
3743
3773
  _calculateDistanceToCamera(e) {
3744
- return this.boundingVolume instanceof se ? (Ie.copy(this.boundingVolume), Ie.applyMatrix4(this.matrixWorld), Math.max(0, Ie.distanceToPoint(e.position))) : this.boundingVolume instanceof m.Sphere ? (te.copy(this.boundingVolume), te.applyMatrix4(this.matrixWorld), Math.max(0, e.position.distanceTo(te.center) - te.radius)) : (console.error("unsupported shape"), -1);
3774
+ return this.boundingVolume instanceof se ? (ue.copy(this.boundingVolume), ue.applyMatrix4(this.matrixWorld), Math.max(0, ue.distanceToPoint(e.position))) : this.boundingVolume instanceof E.Sphere ? (te.copy(this.boundingVolume), te.applyMatrix4(this.matrixWorld), Math.max(0, e.position.distanceTo(te.center) - te.radius)) : (console.error("unsupported shape"), -1);
3745
3775
  }
3746
3776
  setGeometricErrorMultiplier(e) {
3747
3777
  this.geometricErrorMultiplier = e, this.splatsReady = !0, this.childrenTiles.forEach((a) => a.setGeometricErrorMultiplier(e));
@@ -3750,8 +3780,8 @@ class Vt extends m.Object3D {
3750
3780
  this.distanceBias = e, this.childrenTiles.forEach((a) => a.setDistanceBias(e));
3751
3781
  }
3752
3782
  _transformWGS84ToCartesian(e, a, t, A) {
3753
- const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), c = Math.sin(a), n = i + t, d = n * s * r, b = n * s * Math.sin(e), l = (0.993305615557957 * i + t) * c;
3754
- A.set(d, b, l);
3783
+ const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), c = Math.sin(a), n = i + t, b = n * s * r, d = n * s * Math.sin(e), l = (0.993305615557957 * i + t) * c;
3784
+ A.set(b, d, l);
3755
3785
  }
3756
3786
  }
3757
3787
  function gt(o) {
@@ -3762,14 +3792,14 @@ function gt(o) {
3762
3792
  }
3763
3793
  function Ba() {
3764
3794
  W || ((W = document.createElement("div")).style.position = "fixed", W.style.bottom = "20px", W.style.left = "20px", W.style.color = "white", W.style.textShadow = "2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000", W.style.padding = "10px", W.style.backgroundColor = "rgba(0, 0, 0, 0.1)", document.body.appendChild(W));
3765
- const o = Ji();
3795
+ const o = Ki();
3766
3796
  let e = "";
3767
3797
  o.forEach((a) => {
3768
3798
  e += a + ", ";
3769
3799
  }), e = e.slice(0, -2), W.textContent = e;
3770
3800
  }
3771
- const N = new m.Sphere(new m.Vector3(0, 0, 0), 1), de = new m.Vector3(0, 0, 0), pa = new m.Vector3(0, 0, 0), Ki = new m.Vector3(0, 1, 0), Ea = new m.Vector2(), ft = new m.Quaternion(), It = new m.Matrix4();
3772
- class Ga extends m.Object3D {
3801
+ const N = new E.Sphere(new E.Vector3(0, 0, 0), 1), de = new E.Vector3(0, 0, 0), ma = new E.Vector3(0, 0, 0), zi = new E.Vector3(0, 1, 0), Ea = new E.Vector2(), ft = new E.Quaternion(), ut = new E.Matrix4();
3802
+ class Ga extends E.Object3D {
3773
3803
  constructor(e) {
3774
3804
  super();
3775
3805
  const a = this;
@@ -3791,22 +3821,22 @@ class Ga extends m.Object3D {
3791
3821
  async setup(e) {
3792
3822
  const a = this;
3793
3823
  e.json.root ? (a.json = e.json.root, !a.json.children && a.json.getChildren && (a.json.children = await a.json.getChildren()), a.jsonChildren = a.json.children, a.json.refinement || (a.json.refinement = e.json.refinement), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : (a.json = e.json, !a.json.children && a.json.getChildren && (a.json.children = await a.json.getChildren(), a.jsonChildren = a.json.children)), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refinement ? a.refinement = a.json.refinement : a.refinement = e.parentRefinement, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError;
3794
- let t = new m.Matrix4();
3824
+ let t = new E.Matrix4();
3795
3825
  if (a.json.transform && !a.centerModel && (t.elements = a.json.transform), a.applyMatrix4(t), a.parentTile && a.parentTile.matrix && (a.matrix.premultiply(a.parentTile.matrix), a.matrix.decompose(a.position, a.quaternion, a.scale)), a.matrixWorldNeedsUpdate = !0, a.updateWorldMatrix(!0, !0), a.json.boundingVolume) if (a.json.boundingVolume.box) a.boundingVolume = new se(a.json.boundingVolume.box);
3796
3826
  else if (a.json.boundingVolume.region) {
3797
3827
  const i = a.json.boundingVolume.region;
3798
- a.transformWGS84ToCartesian(i[0], i[1], i[4], de), a.transformWGS84ToCartesian(i[2], i[3], i[5], pa), de.lerp(pa, 0.5), a.boundingVolume = new m.Sphere(new m.Vector3(de.x, de.y, de.z), de.distanceTo(pa));
3828
+ a.transformWGS84ToCartesian(i[0], i[1], i[4], de), a.transformWGS84ToCartesian(i[2], i[3], i[5], ma), de.lerp(ma, 0.5), a.boundingVolume = new E.Sphere(new E.Vector3(de.x, de.y, de.z), de.distanceTo(ma));
3799
3829
  } else if (a.json.boundingVolume.sphere) {
3800
3830
  const i = a.json.boundingVolume.sphere;
3801
- a.boundingVolume = new m.Sphere(new m.Vector3(i[0], i[1], i[2]), i[3]);
3831
+ a.boundingVolume = new E.Sphere(new E.Vector3(i[0], i[1], i[2]), i[3]);
3802
3832
  } else a.boundingVolume = e.parentBoundingVolume;
3803
3833
  else a.boundingVolume = e.parentBoundingVolume;
3804
3834
  function A(i) {
3805
3835
  i.uri && i.uri.includes("json") || i.url && i.url.includes("json") ? a.hasUnloadedJSONContent++ : a.hasMeshContent++;
3806
3836
  }
3807
3837
  if (a.json.content ? (A(a.json.content), a.load()) : a.json.contents && (a.json.contents.forEach((i) => A(i)), a.load()), a.centerModel) {
3808
- const i = new m.Sphere();
3809
- a.boundingVolume instanceof se ? i.copy(a.boundingVolume.sphere) : a.boundingVolume instanceof m.Sphere && i.copy(a.boundingVolume), this.json.boundingVolume.region && (a.transformWGS84ToCartesian(0.5 * (a.json.boundingVolume.region[0] + a.json.boundingVolume.region[2]), 0.5 * (a.json.boundingVolume.region[1] + a.json.boundingVolume.region[3]), 0.5 * (a.json.boundingVolume.region[4] + a.json.boundingVolume.region[5]), de), ft.setFromUnitVectors(de.normalize(), Ki.normalize()), a.master.applyQuaternion(ft), a.master.updateWorldMatrix(!1, !1)), It.makeTranslation(-i.center.x * a.scale.x, -i.center.y * a.scale.y, -i.center.z * a.scale.z), a.master.matrix.multiply(It), a.master.matrix.decompose(a.master.position, a.master.quaternion, a.master.scale);
3838
+ const i = new E.Sphere();
3839
+ a.boundingVolume instanceof se ? i.copy(a.boundingVolume.sphere) : a.boundingVolume instanceof E.Sphere && i.copy(a.boundingVolume), this.json.boundingVolume.region && (a.transformWGS84ToCartesian(0.5 * (a.json.boundingVolume.region[0] + a.json.boundingVolume.region[2]), 0.5 * (a.json.boundingVolume.region[1] + a.json.boundingVolume.region[3]), 0.5 * (a.json.boundingVolume.region[4] + a.json.boundingVolume.region[5]), de), ft.setFromUnitVectors(de.normalize(), zi.normalize()), a.master.applyQuaternion(ft), a.master.updateWorldMatrix(!1, !1)), ut.makeTranslation(-i.center.x * a.scale.x, -i.center.y * a.scale.y, -i.center.z * a.scale.z), a.master.matrix.multiply(ut), a.master.matrix.decompose(a.master.position, a.master.quaternion, a.master.scale);
3810
3840
  }
3811
3841
  a.isSetup = !0, e.onLoadCallback && e.onLoadCallback(a);
3812
3842
  }
@@ -3916,7 +3946,7 @@ class Ga extends m.Object3D {
3916
3946
  if (this.boundingVolume instanceof se) {
3917
3947
  if (N.copy(this.boundingVolume.sphere), N.applyMatrix4(this.matrixWorld), !a.intersectsSphere(N)) return -1;
3918
3948
  } else {
3919
- if (!(this.boundingVolume instanceof m.Sphere)) return console.error("unsupported shape"), -1;
3949
+ if (!(this.boundingVolume instanceof E.Sphere)) return console.error("unsupported shape"), -1;
3920
3950
  if (N.copy(this.boundingVolume), N.applyMatrix4(this.matrixWorld), !a.intersectsSphere(N)) return -1;
3921
3951
  }
3922
3952
  let t = Math.max(0, e.position.distanceTo(N.center) - N.radius);
@@ -3941,19 +3971,19 @@ class Ga extends m.Object3D {
3941
3971
  }), a;
3942
3972
  }
3943
3973
  calculateDistanceToCamera(e) {
3944
- return this.boundingVolume instanceof se ? (N.copy(this.boundingVolume.sphere), N.applyMatrix4(this.matrixWorld)) : this.boundingVolume instanceof m.Sphere ? (N.copy(this.boundingVolume), N.applyMatrix4(this.matrixWorld)) : console.error("unsupported shape"), Math.max(0, e.position.distanceTo(N.center) - N.radius);
3974
+ return this.boundingVolume instanceof se ? (N.copy(this.boundingVolume.sphere), N.applyMatrix4(this.matrixWorld)) : this.boundingVolume instanceof E.Sphere ? (N.copy(this.boundingVolume), N.applyMatrix4(this.matrixWorld)) : console.error("unsupported shape"), Math.max(0, e.position.distanceTo(N.center) - N.radius);
3945
3975
  }
3946
3976
  getWorldMatrix() {
3947
3977
  return this.matrixWorld;
3948
3978
  }
3949
3979
  transformWGS84ToCartesian(e, a, t, A) {
3950
- const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), c = Math.sin(a), n = i + t, d = n * s * r, b = n * s * Math.sin(e), l = (0.993305615557957 * i + t) * c;
3951
- A.set(d, b, l);
3980
+ const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), c = Math.sin(a), n = i + t, b = n * s * r, d = n * s * Math.sin(e), l = (0.993305615557957 * i + t) * c;
3981
+ A.set(b, d, l);
3952
3982
  }
3953
3983
  }
3954
- class $i extends m.Object3D {
3984
+ class es extends E.Object3D {
3955
3985
  constructor(e) {
3956
- super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new m.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new m.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new Ga(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
3986
+ super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new Ga(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
3957
3987
  }
3958
3988
  _renderSize(e) {
3959
3989
  this.renderer ? this.renderer.getDrawingBufferSize(e) : e.copy(this.rendererSize);
@@ -3964,18 +3994,18 @@ class $i extends m.Object3D {
3964
3994
  update(e, a) {
3965
3995
  if (a) this.tileset._update(e, a);
3966
3996
  else {
3967
- const t = new m.Frustum();
3968
- t.setFromProjectionMatrix(new m.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse)), this.tileset._update(e, t);
3997
+ const t = new E.Frustum();
3998
+ t.setFromProjectionMatrix(new E.Matrix4().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse)), this.tileset._update(e, t);
3969
3999
  }
3970
4000
  }
3971
4001
  setGeometricErrorMultiplier(e) {
3972
4002
  this.geometricErrorMultiplier = e || 1;
3973
4003
  }
3974
4004
  }
3975
- class zi {
4005
+ class Vi {
3976
4006
  constructor(e) {
3977
4007
  const a = this;
3978
- a.scene = e, a.instancedTiles = [], a.instancedMesh, a.reuseableMatrix = new m.Matrix4();
4008
+ a.scene = e, a.instancedTiles = [], a.instancedMesh, a.reuseableMatrix = new E.Matrix4();
3979
4009
  }
3980
4010
  addInstance(e) {
3981
4011
  const a = this;
@@ -3983,7 +4013,7 @@ class zi {
3983
4013
  }
3984
4014
  addToScene() {
3985
4015
  const e = this;
3986
- e.instancedMesh.setMatrixAt(0, new m.Matrix4()), e.instancedMesh.instanceMatrix.needsUpdate = !0, e.instancedMesh.count = 1, e.scene.add(e.instancedMesh), e.instancedMesh.onAfterRender = () => {
4016
+ e.instancedMesh.setMatrixAt(0, new E.Matrix4()), e.instancedMesh.instanceMatrix.needsUpdate = !0, e.instancedMesh.count = 1, e.scene.add(e.instancedMesh), e.instancedMesh.onAfterRender = () => {
3987
4017
  delete e.instancedMesh.onAfterRender, e.instancedMesh.displayedOnce = !0;
3988
4018
  };
3989
4019
  }
@@ -4013,7 +4043,7 @@ class zi {
4013
4043
  }), e.instancedMesh.dispose(), !0);
4014
4044
  }
4015
4045
  }
4016
- class Vi {
4046
+ class Yi {
4017
4047
  constructor() {
4018
4048
  const e = this;
4019
4049
  e.count = 0, e.json, e.instancedTiles = [];
@@ -4037,10 +4067,10 @@ class Vi {
4037
4067
  return !(!this.json || this.instancedTiles.length != 0);
4038
4068
  }
4039
4069
  }
4040
- let ue = 0;
4041
- class es {
4070
+ let Ie = 0;
4071
+ class as {
4042
4072
  constructor(e, a) {
4043
- if (this.zUpToYUpMatrix = new m.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = a.proxy, a && (this.meshCallback = a.meshCallback, this.pointsCallback = a.pointsCallback, a.maxCachedItems && (this.maxCachedItems = a.maxCachedItems), a.maxInstances && (this.maxInstances = a.maxInstances)), this.gltfLoader = new Dt(), a && a.dracoLoader) this.gltfLoader.setDRACOLoader(a.dracoLoader), this.hasDracoLoader = !0;
4073
+ if (this.zUpToYUpMatrix = new E.Matrix4(), this.zUpToYUpMatrix.set(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1), this.maxCachedItems = 100, this.maxInstances = 1, this.proxy = a.proxy, a && (this.meshCallback = a.meshCallback, this.pointsCallback = a.pointsCallback, a.maxCachedItems && (this.maxCachedItems = a.maxCachedItems), a.maxInstances && (this.maxInstances = a.maxInstances)), this.gltfLoader = new Dt(), a && a.dracoLoader) this.gltfLoader.setDRACOLoader(a.dracoLoader), this.hasDracoLoader = !0;
4044
4074
  else {
4045
4075
  const t = new Rt();
4046
4076
  t.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"), this.gltfLoader.setDRACOLoader(t), this.gltfLoader.hasDracoLoader = !0;
@@ -4056,14 +4086,14 @@ class es {
4056
4086
  const e = this;
4057
4087
  e._checkSize(), e.cache._data.forEach((a) => {
4058
4088
  a.update();
4059
- }), ue < 8 && e._download(), e._loadBatch();
4089
+ }), Ie < 8 && e._download(), e._loadBatch();
4060
4090
  }
4061
4091
  _download() {
4062
4092
  const e = this;
4063
4093
  if (e.nextDownloads.length != 0 || (e._getNextDownloads(), e.nextDownloads.length != 0)) for (; e.nextDownloads.length > 0; ) {
4064
4094
  const t = e.nextDownloads.shift();
4065
4095
  if (t) {
4066
- if (t.path.includes(".b3dm") && (a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
4096
+ if (t.path.includes(".b3dm") && (a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), Ie++, a().then((A) => {
4067
4097
  if (!A.ok) throw console.error("could not load tile with path : " + t.path), new Error(`couldn't load "${t.path}". Request failed with status ${A.status} : ${A.statusText}`);
4068
4098
  return A.arrayBuffer();
4069
4099
  }).then((A) => this.b3dmDecoder.parseB3DMInstanced(A, (i) => {
@@ -4071,17 +4101,17 @@ class es {
4071
4101
  }, e.maxInstances, t.sceneZupToYup, t.meshZupToYup)).then((A) => {
4072
4102
  A.frustumCulled = !1, t.tile.setObject(A), e.ready.unshift(t);
4073
4103
  }).catch((A) => console.error(A)).finally(() => {
4074
- ue--;
4075
- })), t.path.includes(".glb") || t.path.includes(".gltf")) a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
4104
+ Ie--;
4105
+ })), t.path.includes(".glb") || t.path.includes(".gltf")) a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), Ie++, a().then((A) => {
4076
4106
  if (!A.ok) throw new Error("missing content");
4077
4107
  return A.arrayBuffer();
4078
4108
  }).then(async (A) => {
4079
- await Yi(this.gltfLoader), this.gltfLoader.parse(A, null, (i) => {
4109
+ await Wi(this.gltfLoader), this.gltfLoader.parse(A, null, (i) => {
4080
4110
  let s;
4081
4111
  i.scene.asset = i.asset, t.sceneZupToYup && i.scene.applyMatrix4(this.zUpToYUpMatrix), i.scene.traverse((r) => {
4082
4112
  r.geometricError = t.geometricError, r.isMesh && (t.meshZupToYup && r.applyMatrix4(this.zUpToYUpMatrix), e.meshCallback && e.meshCallback(r, r.geometricError)), r.isPoints && console.error("instanced point cloud is not supported");
4083
4113
  }), i.scene.updateWorldMatrix(!1, !0), i.scene.traverse((r) => {
4084
- r.isMesh && (s = new m.InstancedMesh(r.geometry, r.material, e.maxInstances), s.baseMatrix = r.matrixWorld);
4114
+ r.isMesh && (s = new E.InstancedMesh(r.geometry, r.material, e.maxInstances), s.baseMatrix = r.matrixWorld);
4085
4115
  }), e.ready.unshift(t), s ? (s.frustumCulled = !1, t.tile.setObject(s)) : i.scene.traverse((r) => {
4086
4116
  r.dispose && r.dispose(), r.material && r.material.dispose();
4087
4117
  });
@@ -4089,17 +4119,17 @@ class es {
4089
4119
  }, (A) => {
4090
4120
  console.error("could not load tile : " + t.path);
4091
4121
  }).finally(() => {
4092
- ue--;
4122
+ Ie--;
4093
4123
  });
4094
4124
  else if (t.path.includes(".json")) {
4095
4125
  var a;
4096
- a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), ue++, a().then((A) => {
4126
+ a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), Ie++, a().then((A) => {
4097
4127
  if (!A.ok) throw console.error("could not load tile with path : " + t.path), new Error(`couldn't load "${t.path}". Request failed with status ${A.status} : ${A.statusText}`);
4098
4128
  return A.json();
4099
4129
  }).then((A) => La(A, t.path)).then((A) => {
4100
4130
  t.tile.setObject(A, t.path), e.ready.unshift(t);
4101
4131
  }).catch((A) => console.error(A)).finally(() => {
4102
- ue--;
4132
+ Ie--;
4103
4133
  });
4104
4134
  }
4105
4135
  }
@@ -4124,30 +4154,30 @@ class es {
4124
4154
  }
4125
4155
  }
4126
4156
  }
4127
- get(e, a, t, A, i, s, r, c, n, d) {
4128
- const b = this, l = function(h) {
4129
- for (var f = h.split("/"), I = [], u = 0, C = 0; C < f.length; C++) {
4130
- var p = f[C];
4131
- p !== "." && p !== "" && p !== ".." ? I[u++] = p : p === ".." && u > 0 && u--;
4157
+ get(e, a, t, A, i, s, r, c, n, b) {
4158
+ const d = this, l = function(h) {
4159
+ for (var f = h.split("/"), I = [], u = 0, p = 0; p < f.length; p++) {
4160
+ var B = f[p];
4161
+ B !== "." && B !== "" && B !== ".." ? I[u++] = B : B === ".." && u > 0 && u--;
4132
4162
  }
4133
4163
  if (u === 0) return "/";
4134
- var B = "";
4135
- for (C = 0; C < u; C++) B += "/" + I[C];
4136
- return B;
4164
+ var C = "";
4165
+ for (p = 0; p < u; p++) C += "/" + I[p];
4166
+ return C;
4137
4167
  }(a);
4138
4168
  if (!(a.includes(".b3dm") || a.includes(".json") || a.includes(".glb") || a.includes(".gltf"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
4139
- const g = b.cache.get(l);
4169
+ const g = d.cache.get(l);
4140
4170
  if (g) g.addInstance(A);
4141
4171
  else if (a.includes(".b3dm") || a.includes(".glb") || a.includes(".gltf")) {
4142
- const h = new zi(b.scene);
4143
- h.addInstance(A), b.cache.put(l, h);
4172
+ const h = new Vi(d.scene);
4173
+ h.addInstance(A), d.cache.put(l, h);
4144
4174
  const f = new AbortController();
4145
4175
  e.signal.addEventListener("abort", () => {
4146
4176
  h.getCount() == 0 && f.abort();
4147
- }), this.downloads.push({ abortController: f, tile: h, key: l, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: c, meshZupToYup: n, geometricError: d, shouldDoDownload: () => !0 });
4177
+ }), this.downloads.push({ abortController: f, tile: h, key: l, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: c, meshZupToYup: n, geometricError: b, shouldDoDownload: () => !0 });
4148
4178
  } else if (a.includes(".json")) {
4149
- const h = new Vi();
4150
- h.addInstance(A), b.cache.put(l, h);
4179
+ const h = new Yi();
4180
+ h.addInstance(A), d.cache.put(l, h);
4151
4181
  const f = new AbortController();
4152
4182
  e.signal.addEventListener("abort", () => {
4153
4183
  h.getCount() == 0 && f.abort();
@@ -4183,7 +4213,7 @@ class es {
4183
4213
  }
4184
4214
  }
4185
4215
  }
4186
- async function Yi(o) {
4216
+ async function Wi(o) {
4187
4217
  return new Promise((e) => {
4188
4218
  const a = setInterval(() => {
4189
4219
  o.hasDracoLoader && !o.dracoLoader || o.hasKTX2Loader && !o.ktx2Loader || (clearInterval(a), e());
@@ -4191,11 +4221,13 @@ async function Yi(o) {
4191
4221
  });
4192
4222
  }
4193
4223
  export {
4194
- $i as InstancedOGC3DTile,
4195
- es as InstancedTileLoader,
4224
+ es as InstancedOGC3DTile,
4225
+ as as InstancedTileLoader,
4196
4226
  Vt as OGC3DTile,
4197
- Zi as OcclusionCullingService,
4198
- Pi as TileLoader,
4199
- Ji as getOGC3DTilesCopyrightInfo
4227
+ $i as OcclusionCullingService,
4228
+ Ni as TileLoader,
4229
+ Ki as getOGC3DTilesCopyrightInfo,
4230
+ Oi as splatsFragmentShader,
4231
+ qi as splatsVertexShader
4200
4232
  };
4201
4233
  //# sourceMappingURL=threedtiles.es.js.map