iflow-engine-base 3.12.8 → 3.12.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bim-engine-sdk.es.js +8 -8
- package/dist/bim-engine-sdk.umd.js +591 -577
- package/dist/chunks/{engine-2d-w-YYh63C.js → engine-2d-oKaknhEB.js} +4 -4
- package/dist/chunks/{engine-3d-TWmZYMpz.js → engine-3d-B_ZxiLB1.js} +3800 -3686
- package/dist/chunks/{engine-720-CyQJO4Ai.js → engine-720-kOT12cTn.js} +2 -2
- package/dist/chunks/{engine-gaussian-CvgenQ4G.js → engine-gaussian-B6tci_07.js} +2 -2
- package/dist/chunks/{engine-gis-Ce7y2a0F.js → engine-gis-CAoh6itw.js} +3 -3
- package/dist/chunks/{sdk-assets-Dvr9B_B9.js → sdk-assets-CKily9AX.js} +2 -2
- package/dist/chunks/{sdk-runtime-CEMbe8J8.js → sdk-runtime-Be2ihgV0.js} +3 -3
- package/dist/chunks/{sdk-vendor-CE8iRE87.js → sdk-vendor-BBjHmqe0.js} +1 -1
- package/dist/chunks/{three-vendor-BL-jpeTM.js → three-vendor-rsPdPJ6s.js} +1152 -1151
- package/dist/index.d.ts +52 -40
- package/package.json +1 -1
|
@@ -33251,341 +33251,716 @@ const V1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
33251
33251
|
warn: be,
|
|
33252
33252
|
warnOnce: Ho
|
|
33253
33253
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
33254
|
-
|
|
33255
|
-
|
|
33256
|
-
|
|
33257
|
-
|
|
33258
|
-
|
|
33259
|
-
|
|
33260
|
-
|
|
33261
|
-
|
|
33262
|
-
|
|
33263
|
-
|
|
33264
|
-
|
|
33265
|
-
|
|
33254
|
+
var Aa = Object.freeze({
|
|
33255
|
+
Linear: Object.freeze({
|
|
33256
|
+
None: function(s) {
|
|
33257
|
+
return s;
|
|
33258
|
+
},
|
|
33259
|
+
In: function(s) {
|
|
33260
|
+
return s;
|
|
33261
|
+
},
|
|
33262
|
+
Out: function(s) {
|
|
33263
|
+
return s;
|
|
33264
|
+
},
|
|
33265
|
+
InOut: function(s) {
|
|
33266
|
+
return s;
|
|
33266
33267
|
}
|
|
33267
|
-
|
|
33268
|
-
|
|
33269
|
-
|
|
33270
|
-
return
|
|
33271
|
-
|
|
33272
|
-
|
|
33273
|
-
|
|
33274
|
-
|
|
33268
|
+
}),
|
|
33269
|
+
Quadratic: Object.freeze({
|
|
33270
|
+
In: function(s) {
|
|
33271
|
+
return s * s;
|
|
33272
|
+
},
|
|
33273
|
+
Out: function(s) {
|
|
33274
|
+
return s * (2 - s);
|
|
33275
|
+
},
|
|
33276
|
+
InOut: function(s) {
|
|
33277
|
+
return (s *= 2) < 1 ? 0.5 * s * s : -0.5 * (--s * (s - 2) - 1);
|
|
33275
33278
|
}
|
|
33276
|
-
|
|
33277
|
-
|
|
33278
|
-
|
|
33279
|
-
|
|
33280
|
-
|
|
33281
|
-
|
|
33282
|
-
|
|
33283
|
-
|
|
33284
|
-
|
|
33279
|
+
}),
|
|
33280
|
+
Cubic: Object.freeze({
|
|
33281
|
+
In: function(s) {
|
|
33282
|
+
return s * s * s;
|
|
33283
|
+
},
|
|
33284
|
+
Out: function(s) {
|
|
33285
|
+
return --s * s * s + 1;
|
|
33286
|
+
},
|
|
33287
|
+
InOut: function(s) {
|
|
33288
|
+
return (s *= 2) < 1 ? 0.5 * s * s * s : 0.5 * ((s -= 2) * s * s + 2);
|
|
33285
33289
|
}
|
|
33286
|
-
}
|
|
33287
|
-
|
|
33288
|
-
|
|
33289
|
-
|
|
33290
|
-
|
|
33291
|
-
|
|
33292
|
-
|
|
33293
|
-
|
|
33294
|
-
|
|
33290
|
+
}),
|
|
33291
|
+
Quartic: Object.freeze({
|
|
33292
|
+
In: function(s) {
|
|
33293
|
+
return s * s * s * s;
|
|
33294
|
+
},
|
|
33295
|
+
Out: function(s) {
|
|
33296
|
+
return 1 - --s * s * s * s;
|
|
33297
|
+
},
|
|
33298
|
+
InOut: function(s) {
|
|
33299
|
+
return (s *= 2) < 1 ? 0.5 * s * s * s * s : -0.5 * ((s -= 2) * s * s * s - 2);
|
|
33295
33300
|
}
|
|
33296
|
-
|
|
33297
|
-
|
|
33298
|
-
|
|
33299
|
-
|
|
33300
|
-
|
|
33301
|
-
|
|
33302
|
-
|
|
33303
|
-
|
|
33304
|
-
|
|
33305
|
-
|
|
33306
|
-
if (u === 0) break;
|
|
33307
|
-
c.morphAttributes = c.morphAttributes || {}, c.morphAttributes[h] = [];
|
|
33308
|
-
for (let f = 0; f < u; ++f) {
|
|
33309
|
-
const d = [];
|
|
33310
|
-
for (let b = 0; b < a[h].length; ++b)
|
|
33311
|
-
d.push(a[h][b][f]);
|
|
33312
|
-
const p = KA(d);
|
|
33313
|
-
if (!p)
|
|
33314
|
-
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " morphAttribute."), null;
|
|
33315
|
-
c.morphAttributes[h].push(p);
|
|
33301
|
+
}),
|
|
33302
|
+
Quintic: Object.freeze({
|
|
33303
|
+
In: function(s) {
|
|
33304
|
+
return s * s * s * s * s;
|
|
33305
|
+
},
|
|
33306
|
+
Out: function(s) {
|
|
33307
|
+
return --s * s * s * s * s + 1;
|
|
33308
|
+
},
|
|
33309
|
+
InOut: function(s) {
|
|
33310
|
+
return (s *= 2) < 1 ? 0.5 * s * s * s * s * s : 0.5 * ((s -= 2) * s * s * s * s + 2);
|
|
33316
33311
|
}
|
|
33312
|
+
}),
|
|
33313
|
+
Sinusoidal: Object.freeze({
|
|
33314
|
+
In: function(s) {
|
|
33315
|
+
return 1 - Math.sin((1 - s) * Math.PI / 2);
|
|
33316
|
+
},
|
|
33317
|
+
Out: function(s) {
|
|
33318
|
+
return Math.sin(s * Math.PI / 2);
|
|
33319
|
+
},
|
|
33320
|
+
InOut: function(s) {
|
|
33321
|
+
return 0.5 * (1 - Math.sin(Math.PI * (0.5 - s)));
|
|
33322
|
+
}
|
|
33323
|
+
}),
|
|
33324
|
+
Exponential: Object.freeze({
|
|
33325
|
+
In: function(s) {
|
|
33326
|
+
return s === 0 ? 0 : Math.pow(1024, s - 1);
|
|
33327
|
+
},
|
|
33328
|
+
Out: function(s) {
|
|
33329
|
+
return s === 1 ? 1 : 1 - Math.pow(2, -10 * s);
|
|
33330
|
+
},
|
|
33331
|
+
InOut: function(s) {
|
|
33332
|
+
return s === 0 ? 0 : s === 1 ? 1 : (s *= 2) < 1 ? 0.5 * Math.pow(1024, s - 1) : 0.5 * (-Math.pow(2, -10 * (s - 1)) + 2);
|
|
33333
|
+
}
|
|
33334
|
+
}),
|
|
33335
|
+
Circular: Object.freeze({
|
|
33336
|
+
In: function(s) {
|
|
33337
|
+
return 1 - Math.sqrt(1 - s * s);
|
|
33338
|
+
},
|
|
33339
|
+
Out: function(s) {
|
|
33340
|
+
return Math.sqrt(1 - --s * s);
|
|
33341
|
+
},
|
|
33342
|
+
InOut: function(s) {
|
|
33343
|
+
return (s *= 2) < 1 ? -0.5 * (Math.sqrt(1 - s * s) - 1) : 0.5 * (Math.sqrt(1 - (s -= 2) * s) + 1);
|
|
33344
|
+
}
|
|
33345
|
+
}),
|
|
33346
|
+
Elastic: Object.freeze({
|
|
33347
|
+
In: function(s) {
|
|
33348
|
+
return s === 0 ? 0 : s === 1 ? 1 : -Math.pow(2, 10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI);
|
|
33349
|
+
},
|
|
33350
|
+
Out: function(s) {
|
|
33351
|
+
return s === 0 ? 0 : s === 1 ? 1 : Math.pow(2, -10 * s) * Math.sin((s - 0.1) * 5 * Math.PI) + 1;
|
|
33352
|
+
},
|
|
33353
|
+
InOut: function(s) {
|
|
33354
|
+
return s === 0 ? 0 : s === 1 ? 1 : (s *= 2, s < 1 ? -0.5 * Math.pow(2, 10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI) : 0.5 * Math.pow(2, -10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI) + 1);
|
|
33355
|
+
}
|
|
33356
|
+
}),
|
|
33357
|
+
Back: Object.freeze({
|
|
33358
|
+
In: function(s) {
|
|
33359
|
+
var e = 1.70158;
|
|
33360
|
+
return s === 1 ? 1 : s * s * ((e + 1) * s - e);
|
|
33361
|
+
},
|
|
33362
|
+
Out: function(s) {
|
|
33363
|
+
var e = 1.70158;
|
|
33364
|
+
return s === 0 ? 0 : --s * s * ((e + 1) * s + e) + 1;
|
|
33365
|
+
},
|
|
33366
|
+
InOut: function(s) {
|
|
33367
|
+
var e = 2.5949095;
|
|
33368
|
+
return (s *= 2) < 1 ? 0.5 * (s * s * ((e + 1) * s - e)) : 0.5 * ((s -= 2) * s * ((e + 1) * s + e) + 2);
|
|
33369
|
+
}
|
|
33370
|
+
}),
|
|
33371
|
+
Bounce: Object.freeze({
|
|
33372
|
+
In: function(s) {
|
|
33373
|
+
return 1 - Aa.Bounce.Out(1 - s);
|
|
33374
|
+
},
|
|
33375
|
+
Out: function(s) {
|
|
33376
|
+
return s < 1 / 2.75 ? 7.5625 * s * s : s < 2 / 2.75 ? 7.5625 * (s -= 1.5 / 2.75) * s + 0.75 : s < 2.5 / 2.75 ? 7.5625 * (s -= 2.25 / 2.75) * s + 0.9375 : 7.5625 * (s -= 2.625 / 2.75) * s + 0.984375;
|
|
33377
|
+
},
|
|
33378
|
+
InOut: function(s) {
|
|
33379
|
+
return s < 0.5 ? Aa.Bounce.In(s * 2) * 0.5 : Aa.Bounce.Out(s * 2 - 1) * 0.5 + 0.5;
|
|
33380
|
+
}
|
|
33381
|
+
}),
|
|
33382
|
+
generatePow: function(s) {
|
|
33383
|
+
return s === void 0 && (s = 4), s = s < Number.EPSILON ? Number.EPSILON : s, s = s > 1e4 ? 1e4 : s, {
|
|
33384
|
+
In: function(e) {
|
|
33385
|
+
return Math.pow(e, s);
|
|
33386
|
+
},
|
|
33387
|
+
Out: function(e) {
|
|
33388
|
+
return 1 - Math.pow(1 - e, s);
|
|
33389
|
+
},
|
|
33390
|
+
InOut: function(e) {
|
|
33391
|
+
return e < 0.5 ? Math.pow(e * 2, s) / 2 : (1 - Math.pow(2 - e * 2, s)) / 2 + 0.5;
|
|
33392
|
+
}
|
|
33393
|
+
};
|
|
33317
33394
|
}
|
|
33318
|
-
|
|
33319
|
-
|
|
33320
|
-
|
|
33321
|
-
|
|
33322
|
-
|
|
33323
|
-
|
|
33324
|
-
|
|
33325
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
|
|
33326
|
-
if (t === void 0 && (t = h.itemSize), t !== h.itemSize)
|
|
33327
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
|
|
33328
|
-
if (n === void 0 && (n = h.normalized), n !== h.normalized)
|
|
33329
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
|
|
33330
|
-
if (i === -1 && (i = h.gpuType), i !== h.gpuType)
|
|
33331
|
-
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
|
|
33332
|
-
r += h.count * t;
|
|
33333
|
-
}
|
|
33334
|
-
const a = new e(r), o = new ot(a, t, n);
|
|
33335
|
-
let c = 0;
|
|
33336
|
-
for (let l = 0; l < s.length; ++l) {
|
|
33337
|
-
const h = s[l];
|
|
33338
|
-
if (h.isInterleavedBufferAttribute) {
|
|
33339
|
-
const u = c / t;
|
|
33340
|
-
for (let f = 0, d = h.count; f < d; f++)
|
|
33341
|
-
for (let p = 0; p < t; p++) {
|
|
33342
|
-
const b = h.getComponent(f, p);
|
|
33343
|
-
o.setComponent(f + u, p, b);
|
|
33344
|
-
}
|
|
33345
|
-
} else
|
|
33346
|
-
a.set(h.array, c);
|
|
33347
|
-
c += h.count * t;
|
|
33348
|
-
}
|
|
33349
|
-
return i !== void 0 && (o.gpuType = i), o;
|
|
33350
|
-
}
|
|
33351
|
-
function YA(s, e) {
|
|
33352
|
-
if (e === Em)
|
|
33353
|
-
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), s;
|
|
33354
|
-
if (e === uh || e === yd) {
|
|
33355
|
-
let t = s.getIndex();
|
|
33356
|
-
if (t === null) {
|
|
33357
|
-
const a = [], o = s.getAttribute("position");
|
|
33358
|
-
if (o !== void 0) {
|
|
33359
|
-
for (let c = 0; c < o.count; c++)
|
|
33360
|
-
a.push(c);
|
|
33361
|
-
s.setIndex(a), t = s.getIndex();
|
|
33362
|
-
} else
|
|
33363
|
-
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), s;
|
|
33395
|
+
}), ho = function() {
|
|
33396
|
+
return performance.now();
|
|
33397
|
+
}, BC = (
|
|
33398
|
+
/** @class */
|
|
33399
|
+
(function() {
|
|
33400
|
+
function s() {
|
|
33401
|
+
this._tweens = {}, this._tweensAddedDuringUpdate = {};
|
|
33364
33402
|
}
|
|
33365
|
-
|
|
33366
|
-
|
|
33367
|
-
|
|
33368
|
-
|
|
33369
|
-
|
|
33370
|
-
|
|
33371
|
-
|
|
33372
|
-
|
|
33373
|
-
|
|
33374
|
-
|
|
33375
|
-
|
|
33376
|
-
|
|
33377
|
-
|
|
33378
|
-
|
|
33379
|
-
|
|
33380
|
-
|
|
33381
|
-
|
|
33382
|
-
|
|
33383
|
-
|
|
33384
|
-
|
|
33385
|
-
|
|
33386
|
-
|
|
33387
|
-
|
|
33388
|
-
}), n;
|
|
33389
|
-
}
|
|
33390
|
-
function k0(s, e, t) {
|
|
33391
|
-
t(s, e);
|
|
33392
|
-
for (let n = 0; n < s.children.length; n++)
|
|
33393
|
-
k0(s.children[n], e.children[n], t);
|
|
33394
|
-
}
|
|
33395
|
-
class q1 extends rn {
|
|
33396
|
-
/**
|
|
33397
|
-
* Constructs a new glTF loader.
|
|
33398
|
-
*
|
|
33399
|
-
* @param {LoadingManager} [manager] - The loading manager.
|
|
33400
|
-
*/
|
|
33401
|
-
constructor(e) {
|
|
33402
|
-
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
33403
|
-
return new FC(t);
|
|
33404
|
-
}), this.register(function(t) {
|
|
33405
|
-
return new NC(t);
|
|
33406
|
-
}), this.register(function(t) {
|
|
33407
|
-
return new WC(t);
|
|
33408
|
-
}), this.register(function(t) {
|
|
33409
|
-
return new qC(t);
|
|
33410
|
-
}), this.register(function(t) {
|
|
33411
|
-
return new XC(t);
|
|
33412
|
-
}), this.register(function(t) {
|
|
33413
|
-
return new OC(t);
|
|
33414
|
-
}), this.register(function(t) {
|
|
33415
|
-
return new kC(t);
|
|
33416
|
-
}), this.register(function(t) {
|
|
33417
|
-
return new QC(t);
|
|
33418
|
-
}), this.register(function(t) {
|
|
33419
|
-
return new GC(t);
|
|
33420
|
-
}), this.register(function(t) {
|
|
33421
|
-
return new LC(t);
|
|
33422
|
-
}), this.register(function(t) {
|
|
33423
|
-
return new zC(t);
|
|
33424
|
-
}), this.register(function(t) {
|
|
33425
|
-
return new UC(t);
|
|
33426
|
-
}), this.register(function(t) {
|
|
33427
|
-
return new VC(t);
|
|
33428
|
-
}), this.register(function(t) {
|
|
33429
|
-
return new HC(t);
|
|
33430
|
-
}), this.register(function(t) {
|
|
33431
|
-
return new DC(t);
|
|
33432
|
-
}), this.register(function(t) {
|
|
33433
|
-
return new JA(t, rt.EXT_MESHOPT_COMPRESSION);
|
|
33434
|
-
}), this.register(function(t) {
|
|
33435
|
-
return new JA(t, rt.KHR_MESHOPT_COMPRESSION);
|
|
33436
|
-
}), this.register(function(t) {
|
|
33437
|
-
return new jC(t);
|
|
33438
|
-
});
|
|
33439
|
-
}
|
|
33440
|
-
/**
|
|
33441
|
-
* Starts loading from the given URL and passes the loaded glTF asset
|
|
33442
|
-
* to the `onLoad()` callback.
|
|
33443
|
-
*
|
|
33444
|
-
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
33445
|
-
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33446
|
-
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
33447
|
-
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33448
|
-
*/
|
|
33449
|
-
load(e, t, n, i) {
|
|
33450
|
-
const r = this;
|
|
33451
|
-
let a;
|
|
33452
|
-
if (this.resourcePath !== "")
|
|
33453
|
-
a = this.resourcePath;
|
|
33454
|
-
else if (this.path !== "") {
|
|
33455
|
-
const l = ys.extractUrlBase(e);
|
|
33456
|
-
a = ys.resolveURL(l, this.path);
|
|
33457
|
-
} else
|
|
33458
|
-
a = ys.extractUrlBase(e);
|
|
33459
|
-
this.manager.itemStart(e);
|
|
33460
|
-
const o = function(l) {
|
|
33461
|
-
i ? i(l) : console.error(l), r.manager.itemError(e), r.manager.itemEnd(e);
|
|
33462
|
-
}, c = new ln(this.manager);
|
|
33463
|
-
c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(e, function(l) {
|
|
33464
|
-
try {
|
|
33465
|
-
r.parse(l, a, function(h) {
|
|
33466
|
-
t(h), r.manager.itemEnd(e);
|
|
33467
|
-
}, o);
|
|
33468
|
-
} catch (h) {
|
|
33469
|
-
o(h);
|
|
33403
|
+
return s.prototype.getAll = function() {
|
|
33404
|
+
var e = this;
|
|
33405
|
+
return Object.keys(this._tweens).map(function(t) {
|
|
33406
|
+
return e._tweens[t];
|
|
33407
|
+
});
|
|
33408
|
+
}, s.prototype.removeAll = function() {
|
|
33409
|
+
this._tweens = {};
|
|
33410
|
+
}, s.prototype.add = function(e) {
|
|
33411
|
+
this._tweens[e.getId()] = e, this._tweensAddedDuringUpdate[e.getId()] = e;
|
|
33412
|
+
}, s.prototype.remove = function(e) {
|
|
33413
|
+
delete this._tweens[e.getId()], delete this._tweensAddedDuringUpdate[e.getId()];
|
|
33414
|
+
}, s.prototype.update = function(e, t) {
|
|
33415
|
+
e === void 0 && (e = ho()), t === void 0 && (t = !1);
|
|
33416
|
+
var n = Object.keys(this._tweens);
|
|
33417
|
+
if (n.length === 0)
|
|
33418
|
+
return !1;
|
|
33419
|
+
for (; n.length > 0; ) {
|
|
33420
|
+
this._tweensAddedDuringUpdate = {};
|
|
33421
|
+
for (var i = 0; i < n.length; i++) {
|
|
33422
|
+
var r = this._tweens[n[i]], a = !t;
|
|
33423
|
+
r && r.update(e, a) === !1 && !t && delete this._tweens[n[i]];
|
|
33424
|
+
}
|
|
33425
|
+
n = Object.keys(this._tweensAddedDuringUpdate);
|
|
33470
33426
|
}
|
|
33471
|
-
|
|
33472
|
-
|
|
33473
|
-
|
|
33474
|
-
|
|
33475
|
-
|
|
33476
|
-
|
|
33477
|
-
|
|
33478
|
-
|
|
33479
|
-
|
|
33480
|
-
|
|
33481
|
-
|
|
33482
|
-
|
|
33483
|
-
/**
|
|
33484
|
-
* Sets the given KTX2 loader to this loader. Required for loading KTX2
|
|
33485
|
-
* compressed textures.
|
|
33486
|
-
*
|
|
33487
|
-
* @param {KTX2Loader} ktx2Loader - The KTX2 loader to set.
|
|
33488
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33489
|
-
*/
|
|
33490
|
-
setKTX2Loader(e) {
|
|
33491
|
-
return this.ktx2Loader = e, this;
|
|
33492
|
-
}
|
|
33493
|
-
/**
|
|
33494
|
-
* Sets the given meshopt decoder. Required for decoding assets
|
|
33495
|
-
* compressed with the `EXT_meshopt_compression` extension.
|
|
33496
|
-
*
|
|
33497
|
-
* @param {Object} meshoptDecoder - The meshopt decoder to set.
|
|
33498
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33499
|
-
*/
|
|
33500
|
-
setMeshoptDecoder(e) {
|
|
33501
|
-
return this.meshoptDecoder = e, this;
|
|
33502
|
-
}
|
|
33503
|
-
/**
|
|
33504
|
-
* Registers a plugin callback. This API is internally used to implement the various
|
|
33505
|
-
* glTF extensions but can also used by third-party code to add additional logic
|
|
33506
|
-
* to the loader.
|
|
33507
|
-
*
|
|
33508
|
-
* @param {function(parser:GLTFParser)} callback - The callback function to register.
|
|
33509
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33510
|
-
*/
|
|
33511
|
-
register(e) {
|
|
33512
|
-
return this.pluginCallbacks.indexOf(e) === -1 && this.pluginCallbacks.push(e), this;
|
|
33513
|
-
}
|
|
33514
|
-
/**
|
|
33515
|
-
* Unregisters a plugin callback.
|
|
33516
|
-
*
|
|
33517
|
-
* @param {Function} callback - The callback function to unregister.
|
|
33518
|
-
* @return {GLTFLoader} A reference to this loader.
|
|
33519
|
-
*/
|
|
33520
|
-
unregister(e) {
|
|
33521
|
-
return this.pluginCallbacks.indexOf(e) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e), 1), this;
|
|
33427
|
+
return !0;
|
|
33428
|
+
}, s;
|
|
33429
|
+
})()
|
|
33430
|
+
), ed = {
|
|
33431
|
+
Linear: function(s, e) {
|
|
33432
|
+
var t = s.length - 1, n = t * e, i = Math.floor(n), r = ed.Utils.Linear;
|
|
33433
|
+
return e < 0 ? r(s[0], s[1], n) : e > 1 ? r(s[t], s[t - 1], t - n) : r(s[i], s[i + 1 > t ? t : i + 1], n - i);
|
|
33434
|
+
},
|
|
33435
|
+
Utils: {
|
|
33436
|
+
Linear: function(s, e, t) {
|
|
33437
|
+
return (e - s) * t + s;
|
|
33438
|
+
}
|
|
33522
33439
|
}
|
|
33523
|
-
|
|
33524
|
-
|
|
33525
|
-
|
|
33526
|
-
|
|
33527
|
-
* @param {string} path - The URL base path.
|
|
33528
|
-
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33529
|
-
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33530
|
-
*/
|
|
33531
|
-
parse(e, t, n, i) {
|
|
33532
|
-
let r;
|
|
33533
|
-
const a = {}, o = {}, c = new TextDecoder();
|
|
33534
|
-
if (typeof e == "string")
|
|
33535
|
-
r = JSON.parse(e);
|
|
33536
|
-
else if (e instanceof ArrayBuffer)
|
|
33537
|
-
if (c.decode(new Uint8Array(e, 0, 4)) === Q0) {
|
|
33538
|
-
try {
|
|
33539
|
-
a[rt.KHR_BINARY_GLTF] = new KC(e);
|
|
33540
|
-
} catch (u) {
|
|
33541
|
-
i && i(u);
|
|
33542
|
-
return;
|
|
33543
|
-
}
|
|
33544
|
-
r = JSON.parse(a[rt.KHR_BINARY_GLTF].content);
|
|
33545
|
-
} else
|
|
33546
|
-
r = JSON.parse(c.decode(e));
|
|
33547
|
-
else
|
|
33548
|
-
r = e;
|
|
33549
|
-
if (r.asset === void 0 || r.asset.version[0] < 2) {
|
|
33550
|
-
i && i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
33551
|
-
return;
|
|
33440
|
+
}, k0 = (
|
|
33441
|
+
/** @class */
|
|
33442
|
+
(function() {
|
|
33443
|
+
function s() {
|
|
33552
33444
|
}
|
|
33553
|
-
|
|
33554
|
-
|
|
33555
|
-
|
|
33556
|
-
|
|
33557
|
-
|
|
33558
|
-
|
|
33559
|
-
|
|
33560
|
-
|
|
33561
|
-
|
|
33562
|
-
for (let h = 0; h < this.pluginCallbacks.length; h++) {
|
|
33563
|
-
const u = this.pluginCallbacks[h](l);
|
|
33564
|
-
u.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), o[u.name] = u, a[u.name] = !0;
|
|
33445
|
+
return s.nextId = function() {
|
|
33446
|
+
return s._nextId++;
|
|
33447
|
+
}, s._nextId = 0, s;
|
|
33448
|
+
})()
|
|
33449
|
+
), td = new BC(), RC = (
|
|
33450
|
+
/** @class */
|
|
33451
|
+
(function() {
|
|
33452
|
+
function s(e, t) {
|
|
33453
|
+
t === void 0 && (t = td), this._object = e, this._group = t, this._isPaused = !1, this._pauseStart = 0, this._valuesStart = {}, this._valuesEnd = {}, this._valuesStartRepeat = {}, this._duration = 1e3, this._isDynamic = !1, this._initialRepeat = 0, this._repeat = 0, this._yoyo = !1, this._isPlaying = !1, this._reversed = !1, this._delayTime = 0, this._startTime = 0, this._easingFunction = Aa.Linear.None, this._interpolationFunction = ed.Linear, this._chainedTweens = [], this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._id = k0.nextId(), this._isChainStopped = !1, this._propertiesAreSetUp = !1, this._goToEnd = !1;
|
|
33565
33454
|
}
|
|
33566
|
-
|
|
33567
|
-
|
|
33568
|
-
|
|
33569
|
-
|
|
33570
|
-
|
|
33571
|
-
|
|
33572
|
-
|
|
33573
|
-
|
|
33574
|
-
|
|
33575
|
-
|
|
33576
|
-
|
|
33577
|
-
|
|
33578
|
-
|
|
33579
|
-
|
|
33580
|
-
|
|
33581
|
-
|
|
33582
|
-
|
|
33583
|
-
|
|
33584
|
-
|
|
33455
|
+
return s.prototype.getId = function() {
|
|
33456
|
+
return this._id;
|
|
33457
|
+
}, s.prototype.isPlaying = function() {
|
|
33458
|
+
return this._isPlaying;
|
|
33459
|
+
}, s.prototype.isPaused = function() {
|
|
33460
|
+
return this._isPaused;
|
|
33461
|
+
}, s.prototype.getDuration = function() {
|
|
33462
|
+
return this._duration;
|
|
33463
|
+
}, s.prototype.to = function(e, t) {
|
|
33464
|
+
if (t === void 0 && (t = 1e3), this._isPlaying)
|
|
33465
|
+
throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");
|
|
33466
|
+
return this._valuesEnd = e, this._propertiesAreSetUp = !1, this._duration = t < 0 ? 0 : t, this;
|
|
33467
|
+
}, s.prototype.duration = function(e) {
|
|
33468
|
+
return e === void 0 && (e = 1e3), this._duration = e < 0 ? 0 : e, this;
|
|
33469
|
+
}, s.prototype.dynamic = function(e) {
|
|
33470
|
+
return e === void 0 && (e = !1), this._isDynamic = e, this;
|
|
33471
|
+
}, s.prototype.start = function(e, t) {
|
|
33472
|
+
if (e === void 0 && (e = ho()), t === void 0 && (t = !1), this._isPlaying)
|
|
33473
|
+
return this;
|
|
33474
|
+
if (this._group && this._group.add(this), this._repeat = this._initialRepeat, this._reversed) {
|
|
33475
|
+
this._reversed = !1;
|
|
33476
|
+
for (var n in this._valuesStartRepeat)
|
|
33477
|
+
this._swapEndStartRepeatValues(n), this._valuesStart[n] = this._valuesStartRepeat[n];
|
|
33585
33478
|
}
|
|
33586
|
-
|
|
33587
|
-
|
|
33588
|
-
|
|
33479
|
+
if (this._isPlaying = !0, this._isPaused = !1, this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._isChainStopped = !1, this._startTime = e, this._startTime += this._delayTime, !this._propertiesAreSetUp || t) {
|
|
33480
|
+
if (this._propertiesAreSetUp = !0, !this._isDynamic) {
|
|
33481
|
+
var i = {};
|
|
33482
|
+
for (var r in this._valuesEnd)
|
|
33483
|
+
i[r] = this._valuesEnd[r];
|
|
33484
|
+
this._valuesEnd = i;
|
|
33485
|
+
}
|
|
33486
|
+
this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, t);
|
|
33487
|
+
}
|
|
33488
|
+
return this;
|
|
33489
|
+
}, s.prototype.startFromCurrentValues = function(e) {
|
|
33490
|
+
return this.start(e, !0);
|
|
33491
|
+
}, s.prototype._setupProperties = function(e, t, n, i, r) {
|
|
33492
|
+
for (var a in n) {
|
|
33493
|
+
var o = e[a], c = Array.isArray(o), l = c ? "array" : typeof o, h = !c && Array.isArray(n[a]);
|
|
33494
|
+
if (!(l === "undefined" || l === "function")) {
|
|
33495
|
+
if (h) {
|
|
33496
|
+
var u = n[a];
|
|
33497
|
+
if (u.length === 0)
|
|
33498
|
+
continue;
|
|
33499
|
+
for (var f = [o], d = 0, p = u.length; d < p; d += 1) {
|
|
33500
|
+
var b = this._handleRelativeValue(o, u[d]);
|
|
33501
|
+
if (isNaN(b)) {
|
|
33502
|
+
h = !1, console.warn("Found invalid interpolation list. Skipping.");
|
|
33503
|
+
break;
|
|
33504
|
+
}
|
|
33505
|
+
f.push(b);
|
|
33506
|
+
}
|
|
33507
|
+
h && (n[a] = f);
|
|
33508
|
+
}
|
|
33509
|
+
if ((l === "object" || c) && o && !h) {
|
|
33510
|
+
t[a] = c ? [] : {};
|
|
33511
|
+
var g = o;
|
|
33512
|
+
for (var A in g)
|
|
33513
|
+
t[a][A] = g[A];
|
|
33514
|
+
i[a] = c ? [] : {};
|
|
33515
|
+
var u = n[a];
|
|
33516
|
+
if (!this._isDynamic) {
|
|
33517
|
+
var m = {};
|
|
33518
|
+
for (var A in u)
|
|
33519
|
+
m[A] = u[A];
|
|
33520
|
+
n[a] = u = m;
|
|
33521
|
+
}
|
|
33522
|
+
this._setupProperties(g, t[a], u, i[a], r);
|
|
33523
|
+
} else
|
|
33524
|
+
(typeof t[a] > "u" || r) && (t[a] = o), c || (t[a] *= 1), h ? i[a] = n[a].slice().reverse() : i[a] = t[a] || 0;
|
|
33525
|
+
}
|
|
33526
|
+
}
|
|
33527
|
+
}, s.prototype.stop = function() {
|
|
33528
|
+
return this._isChainStopped || (this._isChainStopped = !0, this.stopChainedTweens()), this._isPlaying ? (this._group && this._group.remove(this), this._isPlaying = !1, this._isPaused = !1, this._onStopCallback && this._onStopCallback(this._object), this) : this;
|
|
33529
|
+
}, s.prototype.end = function() {
|
|
33530
|
+
return this._goToEnd = !0, this.update(1 / 0), this;
|
|
33531
|
+
}, s.prototype.pause = function(e) {
|
|
33532
|
+
return e === void 0 && (e = ho()), this._isPaused || !this._isPlaying ? this : (this._isPaused = !0, this._pauseStart = e, this._group && this._group.remove(this), this);
|
|
33533
|
+
}, s.prototype.resume = function(e) {
|
|
33534
|
+
return e === void 0 && (e = ho()), !this._isPaused || !this._isPlaying ? this : (this._isPaused = !1, this._startTime += e - this._pauseStart, this._pauseStart = 0, this._group && this._group.add(this), this);
|
|
33535
|
+
}, s.prototype.stopChainedTweens = function() {
|
|
33536
|
+
for (var e = 0, t = this._chainedTweens.length; e < t; e++)
|
|
33537
|
+
this._chainedTweens[e].stop();
|
|
33538
|
+
return this;
|
|
33539
|
+
}, s.prototype.group = function(e) {
|
|
33540
|
+
return e === void 0 && (e = td), this._group = e, this;
|
|
33541
|
+
}, s.prototype.delay = function(e) {
|
|
33542
|
+
return e === void 0 && (e = 0), this._delayTime = e, this;
|
|
33543
|
+
}, s.prototype.repeat = function(e) {
|
|
33544
|
+
return e === void 0 && (e = 0), this._initialRepeat = e, this._repeat = e, this;
|
|
33545
|
+
}, s.prototype.repeatDelay = function(e) {
|
|
33546
|
+
return this._repeatDelayTime = e, this;
|
|
33547
|
+
}, s.prototype.yoyo = function(e) {
|
|
33548
|
+
return e === void 0 && (e = !1), this._yoyo = e, this;
|
|
33549
|
+
}, s.prototype.easing = function(e) {
|
|
33550
|
+
return e === void 0 && (e = Aa.Linear.None), this._easingFunction = e, this;
|
|
33551
|
+
}, s.prototype.interpolation = function(e) {
|
|
33552
|
+
return e === void 0 && (e = ed.Linear), this._interpolationFunction = e, this;
|
|
33553
|
+
}, s.prototype.chain = function() {
|
|
33554
|
+
for (var e = [], t = 0; t < arguments.length; t++)
|
|
33555
|
+
e[t] = arguments[t];
|
|
33556
|
+
return this._chainedTweens = e, this;
|
|
33557
|
+
}, s.prototype.onStart = function(e) {
|
|
33558
|
+
return this._onStartCallback = e, this;
|
|
33559
|
+
}, s.prototype.onEveryStart = function(e) {
|
|
33560
|
+
return this._onEveryStartCallback = e, this;
|
|
33561
|
+
}, s.prototype.onUpdate = function(e) {
|
|
33562
|
+
return this._onUpdateCallback = e, this;
|
|
33563
|
+
}, s.prototype.onRepeat = function(e) {
|
|
33564
|
+
return this._onRepeatCallback = e, this;
|
|
33565
|
+
}, s.prototype.onComplete = function(e) {
|
|
33566
|
+
return this._onCompleteCallback = e, this;
|
|
33567
|
+
}, s.prototype.onStop = function(e) {
|
|
33568
|
+
return this._onStopCallback = e, this;
|
|
33569
|
+
}, s.prototype.update = function(e, t) {
|
|
33570
|
+
var n = this, i;
|
|
33571
|
+
if (e === void 0 && (e = ho()), t === void 0 && (t = !0), this._isPaused)
|
|
33572
|
+
return !0;
|
|
33573
|
+
var r, a = this._startTime + this._duration;
|
|
33574
|
+
if (!this._goToEnd && !this._isPlaying) {
|
|
33575
|
+
if (e > a)
|
|
33576
|
+
return !1;
|
|
33577
|
+
t && this.start(e, !0);
|
|
33578
|
+
}
|
|
33579
|
+
if (this._goToEnd = !1, e < this._startTime)
|
|
33580
|
+
return !0;
|
|
33581
|
+
this._onStartCallbackFired === !1 && (this._onStartCallback && this._onStartCallback(this._object), this._onStartCallbackFired = !0), this._onEveryStartCallbackFired === !1 && (this._onEveryStartCallback && this._onEveryStartCallback(this._object), this._onEveryStartCallbackFired = !0);
|
|
33582
|
+
var o = e - this._startTime, c = this._duration + ((i = this._repeatDelayTime) !== null && i !== void 0 ? i : this._delayTime), l = this._duration + this._repeat * c, h = function() {
|
|
33583
|
+
if (n._duration === 0 || o > l)
|
|
33584
|
+
return 1;
|
|
33585
|
+
var g = Math.trunc(o / c), A = o - g * c, m = Math.min(A / n._duration, 1);
|
|
33586
|
+
return m === 0 && o === n._duration ? 1 : m;
|
|
33587
|
+
}, u = h(), f = this._easingFunction(u);
|
|
33588
|
+
if (this._updateProperties(this._object, this._valuesStart, this._valuesEnd, f), this._onUpdateCallback && this._onUpdateCallback(this._object, u), this._duration === 0 || o >= this._duration)
|
|
33589
|
+
if (this._repeat > 0) {
|
|
33590
|
+
var d = Math.min(Math.trunc((o - this._duration) / c) + 1, this._repeat);
|
|
33591
|
+
isFinite(this._repeat) && (this._repeat -= d);
|
|
33592
|
+
for (r in this._valuesStartRepeat)
|
|
33593
|
+
!this._yoyo && typeof this._valuesEnd[r] == "string" && (this._valuesStartRepeat[r] = // eslint-disable-next-line
|
|
33594
|
+
// @ts-ignore FIXME?
|
|
33595
|
+
this._valuesStartRepeat[r] + parseFloat(this._valuesEnd[r])), this._yoyo && this._swapEndStartRepeatValues(r), this._valuesStart[r] = this._valuesStartRepeat[r];
|
|
33596
|
+
return this._yoyo && (this._reversed = !this._reversed), this._startTime += c * d, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;
|
|
33597
|
+
} else {
|
|
33598
|
+
this._onCompleteCallback && this._onCompleteCallback(this._object);
|
|
33599
|
+
for (var p = 0, b = this._chainedTweens.length; p < b; p++)
|
|
33600
|
+
this._chainedTweens[p].start(this._startTime + this._duration, !1);
|
|
33601
|
+
return this._isPlaying = !1, !1;
|
|
33602
|
+
}
|
|
33603
|
+
return !0;
|
|
33604
|
+
}, s.prototype._updateProperties = function(e, t, n, i) {
|
|
33605
|
+
for (var r in n)
|
|
33606
|
+
if (t[r] !== void 0) {
|
|
33607
|
+
var a = t[r] || 0, o = n[r], c = Array.isArray(e[r]), l = Array.isArray(o), h = !c && l;
|
|
33608
|
+
h ? e[r] = this._interpolationFunction(o, i) : typeof o == "object" && o ? this._updateProperties(e[r], a, o, i) : (o = this._handleRelativeValue(a, o), typeof o == "number" && (e[r] = a + (o - a) * i));
|
|
33609
|
+
}
|
|
33610
|
+
}, s.prototype._handleRelativeValue = function(e, t) {
|
|
33611
|
+
return typeof t != "string" ? t : t.charAt(0) === "+" || t.charAt(0) === "-" ? e + parseFloat(t) : parseFloat(t);
|
|
33612
|
+
}, s.prototype._swapEndStartRepeatValues = function(e) {
|
|
33613
|
+
var t = this._valuesStartRepeat[e], n = this._valuesEnd[e];
|
|
33614
|
+
typeof n == "string" ? this._valuesStartRepeat[e] = this._valuesStartRepeat[e] + parseFloat(n) : this._valuesStartRepeat[e] = this._valuesEnd[e], this._valuesEnd[e] = t;
|
|
33615
|
+
}, s;
|
|
33616
|
+
})()
|
|
33617
|
+
);
|
|
33618
|
+
k0.nextId;
|
|
33619
|
+
var Mi = td;
|
|
33620
|
+
Mi.getAll.bind(Mi);
|
|
33621
|
+
Mi.removeAll.bind(Mi);
|
|
33622
|
+
Mi.add.bind(Mi);
|
|
33623
|
+
Mi.remove.bind(Mi);
|
|
33624
|
+
Mi.update.bind(Mi);
|
|
33625
|
+
var W1 = {
|
|
33626
|
+
Easing: Aa,
|
|
33627
|
+
Tween: RC
|
|
33628
|
+
};
|
|
33629
|
+
function q1(s, e = !1) {
|
|
33630
|
+
const t = s[0].index !== null, n = new Set(Object.keys(s[0].attributes)), i = new Set(Object.keys(s[0].morphAttributes)), r = {}, a = {}, o = s[0].morphTargetsRelative, c = new Ve();
|
|
33631
|
+
let l = 0;
|
|
33632
|
+
for (let h = 0; h < s.length; ++h) {
|
|
33633
|
+
const u = s[h];
|
|
33634
|
+
let f = 0;
|
|
33635
|
+
if (t !== (u.index !== null))
|
|
33636
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
|
|
33637
|
+
for (const d in u.attributes) {
|
|
33638
|
+
if (!n.has(d))
|
|
33639
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + '. All geometries must have compatible attributes; make sure "' + d + '" attribute exists among all geometries, or in none of them.'), null;
|
|
33640
|
+
r[d] === void 0 && (r[d] = []), r[d].push(u.attributes[d]), f++;
|
|
33641
|
+
}
|
|
33642
|
+
if (f !== n.size)
|
|
33643
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". Make sure all geometries have the same number of attributes."), null;
|
|
33644
|
+
if (o !== u.morphTargetsRelative)
|
|
33645
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
|
|
33646
|
+
for (const d in u.morphAttributes) {
|
|
33647
|
+
if (!i.has(d))
|
|
33648
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". .morphAttributes must be consistent throughout all geometries."), null;
|
|
33649
|
+
a[d] === void 0 && (a[d] = []), a[d].push(u.morphAttributes[d]);
|
|
33650
|
+
}
|
|
33651
|
+
if (e) {
|
|
33652
|
+
let d;
|
|
33653
|
+
if (t)
|
|
33654
|
+
d = u.index.count;
|
|
33655
|
+
else if (u.attributes.position !== void 0)
|
|
33656
|
+
d = u.attributes.position.count;
|
|
33657
|
+
else
|
|
33658
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + h + ". The geometry must have either an index or a position attribute"), null;
|
|
33659
|
+
c.addGroup(l, d, h), l += d;
|
|
33660
|
+
}
|
|
33661
|
+
}
|
|
33662
|
+
if (t) {
|
|
33663
|
+
let h = 0;
|
|
33664
|
+
const u = [];
|
|
33665
|
+
for (let f = 0; f < s.length; ++f) {
|
|
33666
|
+
const d = s[f].index;
|
|
33667
|
+
for (let p = 0; p < d.count; ++p)
|
|
33668
|
+
u.push(d.getX(p) + h);
|
|
33669
|
+
h += s[f].attributes.position.count;
|
|
33670
|
+
}
|
|
33671
|
+
c.setIndex(u);
|
|
33672
|
+
}
|
|
33673
|
+
for (const h in r) {
|
|
33674
|
+
const u = KA(r[h]);
|
|
33675
|
+
if (!u)
|
|
33676
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " attribute."), null;
|
|
33677
|
+
c.setAttribute(h, u);
|
|
33678
|
+
}
|
|
33679
|
+
for (const h in a) {
|
|
33680
|
+
const u = a[h][0].length;
|
|
33681
|
+
if (u === 0) break;
|
|
33682
|
+
c.morphAttributes = c.morphAttributes || {}, c.morphAttributes[h] = [];
|
|
33683
|
+
for (let f = 0; f < u; ++f) {
|
|
33684
|
+
const d = [];
|
|
33685
|
+
for (let b = 0; b < a[h].length; ++b)
|
|
33686
|
+
d.push(a[h][b][f]);
|
|
33687
|
+
const p = KA(d);
|
|
33688
|
+
if (!p)
|
|
33689
|
+
return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + h + " morphAttribute."), null;
|
|
33690
|
+
c.morphAttributes[h].push(p);
|
|
33691
|
+
}
|
|
33692
|
+
}
|
|
33693
|
+
return c;
|
|
33694
|
+
}
|
|
33695
|
+
function KA(s) {
|
|
33696
|
+
let e, t, n, i = -1, r = 0;
|
|
33697
|
+
for (let l = 0; l < s.length; ++l) {
|
|
33698
|
+
const h = s[l];
|
|
33699
|
+
if (e === void 0 && (e = h.array.constructor), e !== h.array.constructor)
|
|
33700
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
|
|
33701
|
+
if (t === void 0 && (t = h.itemSize), t !== h.itemSize)
|
|
33702
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
|
|
33703
|
+
if (n === void 0 && (n = h.normalized), n !== h.normalized)
|
|
33704
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
|
|
33705
|
+
if (i === -1 && (i = h.gpuType), i !== h.gpuType)
|
|
33706
|
+
return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
|
|
33707
|
+
r += h.count * t;
|
|
33708
|
+
}
|
|
33709
|
+
const a = new e(r), o = new ot(a, t, n);
|
|
33710
|
+
let c = 0;
|
|
33711
|
+
for (let l = 0; l < s.length; ++l) {
|
|
33712
|
+
const h = s[l];
|
|
33713
|
+
if (h.isInterleavedBufferAttribute) {
|
|
33714
|
+
const u = c / t;
|
|
33715
|
+
for (let f = 0, d = h.count; f < d; f++)
|
|
33716
|
+
for (let p = 0; p < t; p++) {
|
|
33717
|
+
const b = h.getComponent(f, p);
|
|
33718
|
+
o.setComponent(f + u, p, b);
|
|
33719
|
+
}
|
|
33720
|
+
} else
|
|
33721
|
+
a.set(h.array, c);
|
|
33722
|
+
c += h.count * t;
|
|
33723
|
+
}
|
|
33724
|
+
return i !== void 0 && (o.gpuType = i), o;
|
|
33725
|
+
}
|
|
33726
|
+
function YA(s, e) {
|
|
33727
|
+
if (e === Em)
|
|
33728
|
+
return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."), s;
|
|
33729
|
+
if (e === uh || e === yd) {
|
|
33730
|
+
let t = s.getIndex();
|
|
33731
|
+
if (t === null) {
|
|
33732
|
+
const a = [], o = s.getAttribute("position");
|
|
33733
|
+
if (o !== void 0) {
|
|
33734
|
+
for (let c = 0; c < o.count; c++)
|
|
33735
|
+
a.push(c);
|
|
33736
|
+
s.setIndex(a), t = s.getIndex();
|
|
33737
|
+
} else
|
|
33738
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), s;
|
|
33739
|
+
}
|
|
33740
|
+
const n = t.count - 2, i = [];
|
|
33741
|
+
if (e === uh)
|
|
33742
|
+
for (let a = 1; a <= n; a++)
|
|
33743
|
+
i.push(t.getX(0)), i.push(t.getX(a)), i.push(t.getX(a + 1));
|
|
33744
|
+
else
|
|
33745
|
+
for (let a = 0; a < n; a++)
|
|
33746
|
+
a % 2 === 0 ? (i.push(t.getX(a)), i.push(t.getX(a + 1)), i.push(t.getX(a + 2))) : (i.push(t.getX(a + 2)), i.push(t.getX(a + 1)), i.push(t.getX(a)));
|
|
33747
|
+
i.length / 3 !== n && console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");
|
|
33748
|
+
const r = s.clone();
|
|
33749
|
+
return r.setIndex(i), r.clearGroups(), r;
|
|
33750
|
+
} else
|
|
33751
|
+
return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", e), s;
|
|
33752
|
+
}
|
|
33753
|
+
function DC(s) {
|
|
33754
|
+
const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = s.clone();
|
|
33755
|
+
return Q0(s, n, function(i, r) {
|
|
33756
|
+
e.set(r, i), t.set(i, r);
|
|
33757
|
+
}), n.traverse(function(i) {
|
|
33758
|
+
if (!i.isSkinnedMesh) return;
|
|
33759
|
+
const r = i, a = e.get(i), o = a.skeleton.bones;
|
|
33760
|
+
r.skeleton = a.skeleton.clone(), r.bindMatrix.copy(a.bindMatrix), r.skeleton.bones = o.map(function(c) {
|
|
33761
|
+
return t.get(c);
|
|
33762
|
+
}), r.bind(r.skeleton, r.bindMatrix);
|
|
33763
|
+
}), n;
|
|
33764
|
+
}
|
|
33765
|
+
function Q0(s, e, t) {
|
|
33766
|
+
t(s, e);
|
|
33767
|
+
for (let n = 0; n < s.children.length; n++)
|
|
33768
|
+
Q0(s.children[n], e.children[n], t);
|
|
33769
|
+
}
|
|
33770
|
+
class X1 extends rn {
|
|
33771
|
+
/**
|
|
33772
|
+
* Constructs a new glTF loader.
|
|
33773
|
+
*
|
|
33774
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
33775
|
+
*/
|
|
33776
|
+
constructor(e) {
|
|
33777
|
+
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
33778
|
+
return new UC(t);
|
|
33779
|
+
}), this.register(function(t) {
|
|
33780
|
+
return new OC(t);
|
|
33781
|
+
}), this.register(function(t) {
|
|
33782
|
+
return new XC(t);
|
|
33783
|
+
}), this.register(function(t) {
|
|
33784
|
+
return new jC(t);
|
|
33785
|
+
}), this.register(function(t) {
|
|
33786
|
+
return new KC(t);
|
|
33787
|
+
}), this.register(function(t) {
|
|
33788
|
+
return new QC(t);
|
|
33789
|
+
}), this.register(function(t) {
|
|
33790
|
+
return new GC(t);
|
|
33791
|
+
}), this.register(function(t) {
|
|
33792
|
+
return new zC(t);
|
|
33793
|
+
}), this.register(function(t) {
|
|
33794
|
+
return new HC(t);
|
|
33795
|
+
}), this.register(function(t) {
|
|
33796
|
+
return new NC(t);
|
|
33797
|
+
}), this.register(function(t) {
|
|
33798
|
+
return new VC(t);
|
|
33799
|
+
}), this.register(function(t) {
|
|
33800
|
+
return new kC(t);
|
|
33801
|
+
}), this.register(function(t) {
|
|
33802
|
+
return new qC(t);
|
|
33803
|
+
}), this.register(function(t) {
|
|
33804
|
+
return new WC(t);
|
|
33805
|
+
}), this.register(function(t) {
|
|
33806
|
+
return new LC(t);
|
|
33807
|
+
}), this.register(function(t) {
|
|
33808
|
+
return new JA(t, rt.EXT_MESHOPT_COMPRESSION);
|
|
33809
|
+
}), this.register(function(t) {
|
|
33810
|
+
return new JA(t, rt.KHR_MESHOPT_COMPRESSION);
|
|
33811
|
+
}), this.register(function(t) {
|
|
33812
|
+
return new YC(t);
|
|
33813
|
+
});
|
|
33814
|
+
}
|
|
33815
|
+
/**
|
|
33816
|
+
* Starts loading from the given URL and passes the loaded glTF asset
|
|
33817
|
+
* to the `onLoad()` callback.
|
|
33818
|
+
*
|
|
33819
|
+
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
33820
|
+
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33821
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
33822
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33823
|
+
*/
|
|
33824
|
+
load(e, t, n, i) {
|
|
33825
|
+
const r = this;
|
|
33826
|
+
let a;
|
|
33827
|
+
if (this.resourcePath !== "")
|
|
33828
|
+
a = this.resourcePath;
|
|
33829
|
+
else if (this.path !== "") {
|
|
33830
|
+
const l = ys.extractUrlBase(e);
|
|
33831
|
+
a = ys.resolveURL(l, this.path);
|
|
33832
|
+
} else
|
|
33833
|
+
a = ys.extractUrlBase(e);
|
|
33834
|
+
this.manager.itemStart(e);
|
|
33835
|
+
const o = function(l) {
|
|
33836
|
+
i ? i(l) : console.error(l), r.manager.itemError(e), r.manager.itemEnd(e);
|
|
33837
|
+
}, c = new ln(this.manager);
|
|
33838
|
+
c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), c.setWithCredentials(this.withCredentials), c.load(e, function(l) {
|
|
33839
|
+
try {
|
|
33840
|
+
r.parse(l, a, function(h) {
|
|
33841
|
+
t(h), r.manager.itemEnd(e);
|
|
33842
|
+
}, o);
|
|
33843
|
+
} catch (h) {
|
|
33844
|
+
o(h);
|
|
33845
|
+
}
|
|
33846
|
+
}, n, o);
|
|
33847
|
+
}
|
|
33848
|
+
/**
|
|
33849
|
+
* Sets the given Draco loader to this loader. Required for decoding assets
|
|
33850
|
+
* compressed with the `KHR_draco_mesh_compression` extension.
|
|
33851
|
+
*
|
|
33852
|
+
* @param {DRACOLoader} dracoLoader - The Draco loader to set.
|
|
33853
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33854
|
+
*/
|
|
33855
|
+
setDRACOLoader(e) {
|
|
33856
|
+
return this.dracoLoader = e, this;
|
|
33857
|
+
}
|
|
33858
|
+
/**
|
|
33859
|
+
* Sets the given KTX2 loader to this loader. Required for loading KTX2
|
|
33860
|
+
* compressed textures.
|
|
33861
|
+
*
|
|
33862
|
+
* @param {KTX2Loader} ktx2Loader - The KTX2 loader to set.
|
|
33863
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33864
|
+
*/
|
|
33865
|
+
setKTX2Loader(e) {
|
|
33866
|
+
return this.ktx2Loader = e, this;
|
|
33867
|
+
}
|
|
33868
|
+
/**
|
|
33869
|
+
* Sets the given meshopt decoder. Required for decoding assets
|
|
33870
|
+
* compressed with the `EXT_meshopt_compression` extension.
|
|
33871
|
+
*
|
|
33872
|
+
* @param {Object} meshoptDecoder - The meshopt decoder to set.
|
|
33873
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33874
|
+
*/
|
|
33875
|
+
setMeshoptDecoder(e) {
|
|
33876
|
+
return this.meshoptDecoder = e, this;
|
|
33877
|
+
}
|
|
33878
|
+
/**
|
|
33879
|
+
* Registers a plugin callback. This API is internally used to implement the various
|
|
33880
|
+
* glTF extensions but can also used by third-party code to add additional logic
|
|
33881
|
+
* to the loader.
|
|
33882
|
+
*
|
|
33883
|
+
* @param {function(parser:GLTFParser)} callback - The callback function to register.
|
|
33884
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33885
|
+
*/
|
|
33886
|
+
register(e) {
|
|
33887
|
+
return this.pluginCallbacks.indexOf(e) === -1 && this.pluginCallbacks.push(e), this;
|
|
33888
|
+
}
|
|
33889
|
+
/**
|
|
33890
|
+
* Unregisters a plugin callback.
|
|
33891
|
+
*
|
|
33892
|
+
* @param {Function} callback - The callback function to unregister.
|
|
33893
|
+
* @return {GLTFLoader} A reference to this loader.
|
|
33894
|
+
*/
|
|
33895
|
+
unregister(e) {
|
|
33896
|
+
return this.pluginCallbacks.indexOf(e) !== -1 && this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e), 1), this;
|
|
33897
|
+
}
|
|
33898
|
+
/**
|
|
33899
|
+
* Parses the given glTF data and returns the resulting group.
|
|
33900
|
+
*
|
|
33901
|
+
* @param {string|ArrayBuffer} data - The raw glTF data.
|
|
33902
|
+
* @param {string} path - The URL base path.
|
|
33903
|
+
* @param {function(GLTFLoader~LoadObject)} onLoad - Executed when the loading process has been finished.
|
|
33904
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
33905
|
+
*/
|
|
33906
|
+
parse(e, t, n, i) {
|
|
33907
|
+
let r;
|
|
33908
|
+
const a = {}, o = {}, c = new TextDecoder();
|
|
33909
|
+
if (typeof e == "string")
|
|
33910
|
+
r = JSON.parse(e);
|
|
33911
|
+
else if (e instanceof ArrayBuffer)
|
|
33912
|
+
if (c.decode(new Uint8Array(e, 0, 4)) === G0) {
|
|
33913
|
+
try {
|
|
33914
|
+
a[rt.KHR_BINARY_GLTF] = new JC(e);
|
|
33915
|
+
} catch (u) {
|
|
33916
|
+
i && i(u);
|
|
33917
|
+
return;
|
|
33918
|
+
}
|
|
33919
|
+
r = JSON.parse(a[rt.KHR_BINARY_GLTF].content);
|
|
33920
|
+
} else
|
|
33921
|
+
r = JSON.parse(c.decode(e));
|
|
33922
|
+
else
|
|
33923
|
+
r = e;
|
|
33924
|
+
if (r.asset === void 0 || r.asset.version[0] < 2) {
|
|
33925
|
+
i && i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
33926
|
+
return;
|
|
33927
|
+
}
|
|
33928
|
+
const l = new hw(r, {
|
|
33929
|
+
path: t || this.resourcePath || "",
|
|
33930
|
+
crossOrigin: this.crossOrigin,
|
|
33931
|
+
requestHeader: this.requestHeader,
|
|
33932
|
+
manager: this.manager,
|
|
33933
|
+
ktx2Loader: this.ktx2Loader,
|
|
33934
|
+
meshoptDecoder: this.meshoptDecoder
|
|
33935
|
+
});
|
|
33936
|
+
l.fileLoader.setRequestHeader(this.requestHeader);
|
|
33937
|
+
for (let h = 0; h < this.pluginCallbacks.length; h++) {
|
|
33938
|
+
const u = this.pluginCallbacks[h](l);
|
|
33939
|
+
u.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), o[u.name] = u, a[u.name] = !0;
|
|
33940
|
+
}
|
|
33941
|
+
if (r.extensionsUsed)
|
|
33942
|
+
for (let h = 0; h < r.extensionsUsed.length; ++h) {
|
|
33943
|
+
const u = r.extensionsUsed[h], f = r.extensionsRequired || [];
|
|
33944
|
+
switch (u) {
|
|
33945
|
+
case rt.KHR_MATERIALS_UNLIT:
|
|
33946
|
+
a[u] = new FC();
|
|
33947
|
+
break;
|
|
33948
|
+
case rt.KHR_DRACO_MESH_COMPRESSION:
|
|
33949
|
+
a[u] = new ZC(r, this.dracoLoader);
|
|
33950
|
+
break;
|
|
33951
|
+
case rt.KHR_TEXTURE_TRANSFORM:
|
|
33952
|
+
a[u] = new $C();
|
|
33953
|
+
break;
|
|
33954
|
+
case rt.KHR_MESH_QUANTIZATION:
|
|
33955
|
+
a[u] = new ew();
|
|
33956
|
+
break;
|
|
33957
|
+
default:
|
|
33958
|
+
f.indexOf(u) >= 0 && o[u] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + u + '".');
|
|
33959
|
+
}
|
|
33960
|
+
}
|
|
33961
|
+
l.setExtensions(a), l.setPlugins(o), l.parse(n, i);
|
|
33962
|
+
}
|
|
33963
|
+
/**
|
|
33589
33964
|
* Async version of {@link GLTFLoader#parse}.
|
|
33590
33965
|
*
|
|
33591
33966
|
* @async
|
|
@@ -33600,7 +33975,7 @@ class q1 extends rn {
|
|
|
33600
33975
|
});
|
|
33601
33976
|
}
|
|
33602
33977
|
}
|
|
33603
|
-
function
|
|
33978
|
+
function PC() {
|
|
33604
33979
|
let s = {};
|
|
33605
33980
|
return {
|
|
33606
33981
|
get: function(e) {
|
|
@@ -33646,7 +34021,7 @@ const rt = {
|
|
|
33646
34021
|
KHR_MESHOPT_COMPRESSION: "KHR_meshopt_compression",
|
|
33647
34022
|
EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing"
|
|
33648
34023
|
};
|
|
33649
|
-
class
|
|
34024
|
+
class LC {
|
|
33650
34025
|
constructor(e) {
|
|
33651
34026
|
this.parser = e, this.name = rt.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
33652
34027
|
}
|
|
@@ -33692,7 +34067,7 @@ class DC {
|
|
|
33692
34067
|
});
|
|
33693
34068
|
}
|
|
33694
34069
|
}
|
|
33695
|
-
class
|
|
34070
|
+
class FC {
|
|
33696
34071
|
constructor() {
|
|
33697
34072
|
this.name = rt.KHR_MATERIALS_UNLIT;
|
|
33698
34073
|
}
|
|
@@ -33713,7 +34088,7 @@ class PC {
|
|
|
33713
34088
|
return Promise.all(i);
|
|
33714
34089
|
}
|
|
33715
34090
|
}
|
|
33716
|
-
class
|
|
34091
|
+
class NC {
|
|
33717
34092
|
constructor(e) {
|
|
33718
34093
|
this.parser = e, this.name = rt.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
33719
34094
|
}
|
|
@@ -33722,7 +34097,7 @@ class LC {
|
|
|
33722
34097
|
return n === null || n.emissiveStrength !== void 0 && (t.emissiveIntensity = n.emissiveStrength), Promise.resolve();
|
|
33723
34098
|
}
|
|
33724
34099
|
}
|
|
33725
|
-
class
|
|
34100
|
+
class UC {
|
|
33726
34101
|
constructor(e) {
|
|
33727
34102
|
this.parser = e, this.name = rt.KHR_MATERIALS_CLEARCOAT;
|
|
33728
34103
|
}
|
|
@@ -33740,7 +34115,7 @@ class FC {
|
|
|
33740
34115
|
return Promise.all(i);
|
|
33741
34116
|
}
|
|
33742
34117
|
}
|
|
33743
|
-
class
|
|
34118
|
+
class OC {
|
|
33744
34119
|
constructor(e) {
|
|
33745
34120
|
this.parser = e, this.name = rt.KHR_MATERIALS_DISPERSION;
|
|
33746
34121
|
}
|
|
@@ -33752,7 +34127,7 @@ class NC {
|
|
|
33752
34127
|
return n === null || (t.dispersion = n.dispersion !== void 0 ? n.dispersion : 0), Promise.resolve();
|
|
33753
34128
|
}
|
|
33754
34129
|
}
|
|
33755
|
-
class
|
|
34130
|
+
class kC {
|
|
33756
34131
|
constructor(e) {
|
|
33757
34132
|
this.parser = e, this.name = rt.KHR_MATERIALS_IRIDESCENCE;
|
|
33758
34133
|
}
|
|
@@ -33766,7 +34141,7 @@ class UC {
|
|
|
33766
34141
|
return n.iridescenceFactor !== void 0 && (t.iridescence = n.iridescenceFactor), n.iridescenceTexture !== void 0 && i.push(this.parser.assignTexture(t, "iridescenceMap", n.iridescenceTexture)), n.iridescenceIor !== void 0 && (t.iridescenceIOR = n.iridescenceIor), t.iridescenceThicknessRange === void 0 && (t.iridescenceThicknessRange = [100, 400]), n.iridescenceThicknessMinimum !== void 0 && (t.iridescenceThicknessRange[0] = n.iridescenceThicknessMinimum), n.iridescenceThicknessMaximum !== void 0 && (t.iridescenceThicknessRange[1] = n.iridescenceThicknessMaximum), n.iridescenceThicknessTexture !== void 0 && i.push(this.parser.assignTexture(t, "iridescenceThicknessMap", n.iridescenceThicknessTexture)), Promise.all(i);
|
|
33767
34142
|
}
|
|
33768
34143
|
}
|
|
33769
|
-
class
|
|
34144
|
+
class QC {
|
|
33770
34145
|
constructor(e) {
|
|
33771
34146
|
this.parser = e, this.name = rt.KHR_MATERIALS_SHEEN;
|
|
33772
34147
|
}
|
|
@@ -33784,7 +34159,7 @@ class OC {
|
|
|
33784
34159
|
return n.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = n.sheenRoughnessFactor), n.sheenColorTexture !== void 0 && i.push(this.parser.assignTexture(t, "sheenColorMap", n.sheenColorTexture, wt)), n.sheenRoughnessTexture !== void 0 && i.push(this.parser.assignTexture(t, "sheenRoughnessMap", n.sheenRoughnessTexture)), Promise.all(i);
|
|
33785
34160
|
}
|
|
33786
34161
|
}
|
|
33787
|
-
class
|
|
34162
|
+
class GC {
|
|
33788
34163
|
constructor(e) {
|
|
33789
34164
|
this.parser = e, this.name = rt.KHR_MATERIALS_TRANSMISSION;
|
|
33790
34165
|
}
|
|
@@ -33798,7 +34173,7 @@ class kC {
|
|
|
33798
34173
|
return n.transmissionFactor !== void 0 && (t.transmission = n.transmissionFactor), n.transmissionTexture !== void 0 && i.push(this.parser.assignTexture(t, "transmissionMap", n.transmissionTexture)), Promise.all(i);
|
|
33799
34174
|
}
|
|
33800
34175
|
}
|
|
33801
|
-
class
|
|
34176
|
+
class zC {
|
|
33802
34177
|
constructor(e) {
|
|
33803
34178
|
this.parser = e, this.name = rt.KHR_MATERIALS_VOLUME;
|
|
33804
34179
|
}
|
|
@@ -33814,7 +34189,7 @@ class QC {
|
|
|
33814
34189
|
return t.attenuationColor = new Ae().setRGB(r[0], r[1], r[2], Jt), Promise.all(i);
|
|
33815
34190
|
}
|
|
33816
34191
|
}
|
|
33817
|
-
class
|
|
34192
|
+
class HC {
|
|
33818
34193
|
constructor(e) {
|
|
33819
34194
|
this.parser = e, this.name = rt.KHR_MATERIALS_IOR;
|
|
33820
34195
|
}
|
|
@@ -33826,7 +34201,7 @@ class GC {
|
|
|
33826
34201
|
return n === null || (t.ior = n.ior !== void 0 ? n.ior : 1.5), Promise.resolve();
|
|
33827
34202
|
}
|
|
33828
34203
|
}
|
|
33829
|
-
class
|
|
34204
|
+
class VC {
|
|
33830
34205
|
constructor(e) {
|
|
33831
34206
|
this.parser = e, this.name = rt.KHR_MATERIALS_SPECULAR;
|
|
33832
34207
|
}
|
|
@@ -33842,7 +34217,7 @@ class zC {
|
|
|
33842
34217
|
return t.specularColor = new Ae().setRGB(r[0], r[1], r[2], Jt), n.specularColorTexture !== void 0 && i.push(this.parser.assignTexture(t, "specularColorMap", n.specularColorTexture, wt)), Promise.all(i);
|
|
33843
34218
|
}
|
|
33844
34219
|
}
|
|
33845
|
-
class
|
|
34220
|
+
class WC {
|
|
33846
34221
|
constructor(e) {
|
|
33847
34222
|
this.parser = e, this.name = rt.EXT_MATERIALS_BUMP;
|
|
33848
34223
|
}
|
|
@@ -33856,7 +34231,7 @@ class HC {
|
|
|
33856
34231
|
return t.bumpScale = n.bumpFactor !== void 0 ? n.bumpFactor : 1, n.bumpTexture !== void 0 && i.push(this.parser.assignTexture(t, "bumpMap", n.bumpTexture)), Promise.all(i);
|
|
33857
34232
|
}
|
|
33858
34233
|
}
|
|
33859
|
-
class
|
|
34234
|
+
class qC {
|
|
33860
34235
|
constructor(e) {
|
|
33861
34236
|
this.parser = e, this.name = rt.KHR_MATERIALS_ANISOTROPY;
|
|
33862
34237
|
}
|
|
@@ -33870,7 +34245,7 @@ class VC {
|
|
|
33870
34245
|
return n.anisotropyStrength !== void 0 && (t.anisotropy = n.anisotropyStrength), n.anisotropyRotation !== void 0 && (t.anisotropyRotation = n.anisotropyRotation), n.anisotropyTexture !== void 0 && i.push(this.parser.assignTexture(t, "anisotropyMap", n.anisotropyTexture)), Promise.all(i);
|
|
33871
34246
|
}
|
|
33872
34247
|
}
|
|
33873
|
-
class
|
|
34248
|
+
class XC {
|
|
33874
34249
|
constructor(e) {
|
|
33875
34250
|
this.parser = e, this.name = rt.KHR_TEXTURE_BASISU;
|
|
33876
34251
|
}
|
|
@@ -33887,7 +34262,7 @@ class WC {
|
|
|
33887
34262
|
return t.loadTextureImage(e, r.source, a);
|
|
33888
34263
|
}
|
|
33889
34264
|
}
|
|
33890
|
-
class
|
|
34265
|
+
class jC {
|
|
33891
34266
|
constructor(e) {
|
|
33892
34267
|
this.parser = e, this.name = rt.EXT_TEXTURE_WEBP;
|
|
33893
34268
|
}
|
|
@@ -33904,7 +34279,7 @@ class qC {
|
|
|
33904
34279
|
return n.loadTextureImage(e, a.source, c);
|
|
33905
34280
|
}
|
|
33906
34281
|
}
|
|
33907
|
-
class
|
|
34282
|
+
class KC {
|
|
33908
34283
|
constructor(e) {
|
|
33909
34284
|
this.parser = e, this.name = rt.EXT_TEXTURE_AVIF;
|
|
33910
34285
|
}
|
|
@@ -33947,7 +34322,7 @@ class JA {
|
|
|
33947
34322
|
return null;
|
|
33948
34323
|
}
|
|
33949
34324
|
}
|
|
33950
|
-
class
|
|
34325
|
+
class YC {
|
|
33951
34326
|
constructor(e) {
|
|
33952
34327
|
this.name = rt.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
33953
34328
|
}
|
|
@@ -33979,8 +34354,8 @@ class jC {
|
|
|
33979
34354
|
}));
|
|
33980
34355
|
}
|
|
33981
34356
|
}
|
|
33982
|
-
const
|
|
33983
|
-
class
|
|
34357
|
+
const G0 = "glTF", ja = 12, ZA = { JSON: 1313821514, BIN: 5130562 };
|
|
34358
|
+
class JC {
|
|
33984
34359
|
constructor(e) {
|
|
33985
34360
|
this.name = rt.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
33986
34361
|
const t = new DataView(e, 0, ja), n = new TextDecoder();
|
|
@@ -33988,7 +34363,7 @@ class KC {
|
|
|
33988
34363
|
magic: n.decode(new Uint8Array(e.slice(0, 4))),
|
|
33989
34364
|
version: t.getUint32(4, !0),
|
|
33990
34365
|
length: t.getUint32(8, !0)
|
|
33991
|
-
}, this.header.magic !==
|
|
34366
|
+
}, this.header.magic !== G0)
|
|
33992
34367
|
throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");
|
|
33993
34368
|
if (this.header.version < 2)
|
|
33994
34369
|
throw new Error("THREE.GLTFLoader: Legacy binary file detected.");
|
|
@@ -34011,7 +34386,7 @@ class KC {
|
|
|
34011
34386
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
34012
34387
|
}
|
|
34013
34388
|
}
|
|
34014
|
-
class
|
|
34389
|
+
class ZC {
|
|
34015
34390
|
constructor(e, t) {
|
|
34016
34391
|
if (!t)
|
|
34017
34392
|
throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
@@ -34020,13 +34395,13 @@ class YC {
|
|
|
34020
34395
|
decodePrimitive(e, t) {
|
|
34021
34396
|
const n = this.json, i = this.dracoLoader, r = e.extensions[this.name].bufferView, a = e.extensions[this.name].attributes, o = {}, c = {}, l = {};
|
|
34022
34397
|
for (const h in a) {
|
|
34023
|
-
const u =
|
|
34398
|
+
const u = nd[h] || h.toLowerCase();
|
|
34024
34399
|
o[u] = a[h];
|
|
34025
34400
|
}
|
|
34026
34401
|
for (const h in e.attributes) {
|
|
34027
|
-
const u =
|
|
34402
|
+
const u = nd[h] || h.toLowerCase();
|
|
34028
34403
|
if (a[h] !== void 0) {
|
|
34029
|
-
const f = n.accessors[e.attributes[h]], d =
|
|
34404
|
+
const f = n.accessors[e.attributes[h]], d = ga[f.componentType];
|
|
34030
34405
|
l[u] = d.name, c[u] = f.normalized === !0;
|
|
34031
34406
|
}
|
|
34032
34407
|
}
|
|
@@ -34043,7 +34418,7 @@ class YC {
|
|
|
34043
34418
|
});
|
|
34044
34419
|
}
|
|
34045
34420
|
}
|
|
34046
|
-
class
|
|
34421
|
+
class $C {
|
|
34047
34422
|
constructor() {
|
|
34048
34423
|
this.name = rt.KHR_TEXTURE_TRANSFORM;
|
|
34049
34424
|
}
|
|
@@ -34051,12 +34426,12 @@ class JC {
|
|
|
34051
34426
|
return (t.texCoord === void 0 || t.texCoord === e.channel) && t.offset === void 0 && t.rotation === void 0 && t.scale === void 0 || (e = e.clone(), t.texCoord !== void 0 && (e.channel = t.texCoord), t.offset !== void 0 && e.offset.fromArray(t.offset), t.rotation !== void 0 && (e.rotation = t.rotation), t.scale !== void 0 && e.repeat.fromArray(t.scale), e.needsUpdate = !0), e;
|
|
34052
34427
|
}
|
|
34053
34428
|
}
|
|
34054
|
-
class
|
|
34429
|
+
class ew {
|
|
34055
34430
|
constructor() {
|
|
34056
34431
|
this.name = rt.KHR_MESH_QUANTIZATION;
|
|
34057
34432
|
}
|
|
34058
34433
|
}
|
|
34059
|
-
class
|
|
34434
|
+
class z0 extends Mr {
|
|
34060
34435
|
constructor(e, t, n, i) {
|
|
34061
34436
|
super(e, t, n, i);
|
|
34062
34437
|
}
|
|
@@ -34075,11 +34450,11 @@ class G0 extends Mr {
|
|
|
34075
34450
|
return r;
|
|
34076
34451
|
}
|
|
34077
34452
|
}
|
|
34078
|
-
const
|
|
34079
|
-
class
|
|
34453
|
+
const tw = new _t();
|
|
34454
|
+
class nw extends z0 {
|
|
34080
34455
|
interpolate_(e, t, n, i) {
|
|
34081
34456
|
const r = super.interpolate_(e, t, n, i);
|
|
34082
|
-
return
|
|
34457
|
+
return tw.fromArray(r).normalize().toArray(r), r;
|
|
34083
34458
|
}
|
|
34084
34459
|
}
|
|
34085
34460
|
const qn = {
|
|
@@ -34090,7 +34465,7 @@ const qn = {
|
|
|
34090
34465
|
TRIANGLES: 4,
|
|
34091
34466
|
TRIANGLE_STRIP: 5,
|
|
34092
34467
|
TRIANGLE_FAN: 6
|
|
34093
|
-
},
|
|
34468
|
+
}, ga = {
|
|
34094
34469
|
5120: Int8Array,
|
|
34095
34470
|
5121: Uint8Array,
|
|
34096
34471
|
5122: Int16Array,
|
|
@@ -34116,7 +34491,7 @@ const qn = {
|
|
|
34116
34491
|
MAT2: 4,
|
|
34117
34492
|
MAT3: 9,
|
|
34118
34493
|
MAT4: 16
|
|
34119
|
-
},
|
|
34494
|
+
}, nd = {
|
|
34120
34495
|
POSITION: "position",
|
|
34121
34496
|
NORMAL: "normal",
|
|
34122
34497
|
TANGENT: "tangent",
|
|
@@ -34132,7 +34507,7 @@ const qn = {
|
|
|
34132
34507
|
translation: "position",
|
|
34133
34508
|
rotation: "quaternion",
|
|
34134
34509
|
weights: "morphTargetInfluences"
|
|
34135
|
-
},
|
|
34510
|
+
}, iw = {
|
|
34136
34511
|
CUBICSPLINE: void 0,
|
|
34137
34512
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
34138
34513
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
@@ -34143,7 +34518,7 @@ const qn = {
|
|
|
34143
34518
|
MASK: "MASK",
|
|
34144
34519
|
BLEND: "BLEND"
|
|
34145
34520
|
};
|
|
34146
|
-
function
|
|
34521
|
+
function sw(s) {
|
|
34147
34522
|
return s.DefaultMaterial === void 0 && (s.DefaultMaterial = new ac({
|
|
34148
34523
|
color: 16777215,
|
|
34149
34524
|
emissive: 0,
|
|
@@ -34161,7 +34536,7 @@ function qs(s, e, t) {
|
|
|
34161
34536
|
function xi(s, e) {
|
|
34162
34537
|
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(s.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
|
|
34163
34538
|
}
|
|
34164
|
-
function
|
|
34539
|
+
function rw(s, e, t) {
|
|
34165
34540
|
let n = !1, i = !1, r = !1;
|
|
34166
34541
|
for (let l = 0, h = e.length; l < h; l++) {
|
|
34167
34542
|
const u = e[l];
|
|
@@ -34193,7 +34568,7 @@ function iw(s, e, t) {
|
|
|
34193
34568
|
return n && (s.morphAttributes.position = h), i && (s.morphAttributes.normal = u), r && (s.morphAttributes.color = f), s.morphTargetsRelative = !0, s;
|
|
34194
34569
|
});
|
|
34195
34570
|
}
|
|
34196
|
-
function
|
|
34571
|
+
function aw(s, e) {
|
|
34197
34572
|
if (s.updateMorphTargets(), e.weights !== void 0)
|
|
34198
34573
|
for (let t = 0, n = e.weights.length; t < n; t++)
|
|
34199
34574
|
s.morphTargetInfluences[t] = e.weights[t];
|
|
@@ -34207,7 +34582,7 @@ function sw(s, e) {
|
|
|
34207
34582
|
console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
34208
34583
|
}
|
|
34209
34584
|
}
|
|
34210
|
-
function
|
|
34585
|
+
function ow(s) {
|
|
34211
34586
|
let e;
|
|
34212
34587
|
const t = s.extensions && s.extensions[rt.KHR_DRACO_MESH_COMPRESSION];
|
|
34213
34588
|
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + nf(t.attributes) : e = s.indices + ":" + nf(s.attributes) + ":" + s.mode, s.targets !== void 0)
|
|
@@ -34222,7 +34597,7 @@ function nf(s) {
|
|
|
34222
34597
|
e += t[n] + ":" + s[t[n]] + ";";
|
|
34223
34598
|
return e;
|
|
34224
34599
|
}
|
|
34225
|
-
function
|
|
34600
|
+
function id(s) {
|
|
34226
34601
|
switch (s) {
|
|
34227
34602
|
case Int8Array:
|
|
34228
34603
|
return 1 / 127;
|
|
@@ -34236,13 +34611,13 @@ function td(s) {
|
|
|
34236
34611
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
34237
34612
|
}
|
|
34238
34613
|
}
|
|
34239
|
-
function
|
|
34614
|
+
function cw(s) {
|
|
34240
34615
|
return s.search(/\.jpe?g($|\?)/i) > 0 || s.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : s.search(/\.webp($|\?)/i) > 0 || s.search(/^data\:image\/webp/) === 0 ? "image/webp" : s.search(/\.ktx2($|\?)/i) > 0 || s.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png";
|
|
34241
34616
|
}
|
|
34242
|
-
const
|
|
34243
|
-
class
|
|
34617
|
+
const lw = new ve();
|
|
34618
|
+
class hw {
|
|
34244
34619
|
constructor(e = {}, t = {}) {
|
|
34245
|
-
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new
|
|
34620
|
+
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new PC(), 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 = {};
|
|
34246
34621
|
let n = !1, i = -1, r = !1, a = -1;
|
|
34247
34622
|
if (typeof navigator < "u" && typeof navigator.userAgent < "u") {
|
|
34248
34623
|
const o = navigator.userAgent;
|
|
@@ -34490,12 +34865,12 @@ class cw {
|
|
|
34490
34865
|
loadAccessor(e) {
|
|
34491
34866
|
const t = this, n = this.json, i = this.json.accessors[e];
|
|
34492
34867
|
if (i.bufferView === void 0 && i.sparse === void 0) {
|
|
34493
|
-
const a = ef[i.type], o =
|
|
34868
|
+
const a = ef[i.type], o = ga[i.componentType], c = i.normalized === !0, l = new o(i.count * a);
|
|
34494
34869
|
return Promise.resolve(new ot(l, a, c));
|
|
34495
34870
|
}
|
|
34496
34871
|
const r = [];
|
|
34497
34872
|
return i.bufferView !== void 0 ? r.push(this.getDependency("bufferView", i.bufferView)) : r.push(null), i.sparse !== void 0 && (r.push(this.getDependency("bufferView", i.sparse.indices.bufferView)), r.push(this.getDependency("bufferView", i.sparse.values.bufferView))), Promise.all(r).then(function(a) {
|
|
34498
|
-
const o = a[0], c = ef[i.type], l =
|
|
34873
|
+
const o = a[0], c = ef[i.type], l = ga[i.componentType], h = l.BYTES_PER_ELEMENT, u = h * c, f = i.byteOffset || 0, d = i.bufferView !== void 0 ? n.bufferViews[i.bufferView].byteStride : void 0, p = i.normalized === !0;
|
|
34499
34874
|
let b, g;
|
|
34500
34875
|
if (d && d !== u) {
|
|
34501
34876
|
const A = Math.floor(f / d), m = "InterleavedBuffer:" + i.bufferView + ":" + i.componentType + ":" + A + ":" + i.count;
|
|
@@ -34504,7 +34879,7 @@ class cw {
|
|
|
34504
34879
|
} else
|
|
34505
34880
|
o === null ? b = new l(i.count * c) : b = new l(o, f, i.count * c), g = new ot(b, c, p);
|
|
34506
34881
|
if (i.sparse !== void 0) {
|
|
34507
|
-
const A = ef.SCALAR, m =
|
|
34882
|
+
const A = ef.SCALAR, m = ga[i.sparse.indices.componentType], x = i.sparse.indices.byteOffset || 0, _ = i.sparse.values.byteOffset || 0, v = new m(a[1], x, i.sparse.count * A), S = new l(a[2], _, i.sparse.count * c);
|
|
34508
34883
|
o !== null && (g = new ot(g.array.slice(), g.itemSize, g.normalized)), g.normalized = !1;
|
|
34509
34884
|
for (let I = 0, y = v.length; I < y; I++) {
|
|
34510
34885
|
const E = v[I];
|
|
@@ -34567,7 +34942,7 @@ class cw {
|
|
|
34567
34942
|
}), t.load(ys.resolveURL(u, r.path), p, void 0, d);
|
|
34568
34943
|
});
|
|
34569
34944
|
}).then(function(u) {
|
|
34570
|
-
return l === !0 && o.revokeObjectURL(c), xi(u, a), u.userData.mimeType = a.mimeType ||
|
|
34945
|
+
return l === !0 && o.revokeObjectURL(c), xi(u, a), u.userData.mimeType = a.mimeType || cw(a.uri), u;
|
|
34571
34946
|
}).catch(function(u) {
|
|
34572
34947
|
throw console.error("THREE.GLTFLoader: Couldn't load texture", c), u;
|
|
34573
34948
|
});
|
|
@@ -34701,7 +35076,7 @@ class cw {
|
|
|
34701
35076
|
}
|
|
34702
35077
|
const a = [];
|
|
34703
35078
|
for (let o = 0, c = e.length; o < c; o++) {
|
|
34704
|
-
const l = e[o], h =
|
|
35079
|
+
const l = e[o], h = ow(l), u = i[h];
|
|
34705
35080
|
if (u)
|
|
34706
35081
|
a.push(u.promise);
|
|
34707
35082
|
else {
|
|
@@ -34721,7 +35096,7 @@ class cw {
|
|
|
34721
35096
|
loadMesh(e) {
|
|
34722
35097
|
const t = this, n = this.json, i = this.extensions, r = n.meshes[e], a = r.primitives, o = [];
|
|
34723
35098
|
for (let c = 0, l = a.length; c < l; c++) {
|
|
34724
|
-
const h = a[c].material === void 0 ?
|
|
35099
|
+
const h = a[c].material === void 0 ? sw(this.cache) : this.getDependency("material", a[c].material);
|
|
34725
35100
|
o.push(h);
|
|
34726
35101
|
}
|
|
34727
35102
|
return o.push(t.loadGeometries(a)), Promise.all(o).then(function(c) {
|
|
@@ -34742,7 +35117,7 @@ class cw {
|
|
|
34742
35117
|
A = new ic(b, m);
|
|
34743
35118
|
else
|
|
34744
35119
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + g.mode);
|
|
34745
|
-
Object.keys(A.geometry.morphAttributes).length > 0 &&
|
|
35120
|
+
Object.keys(A.geometry.morphAttributes).length > 0 && aw(A, r), A.name = t.createUniqueName(r.name || "mesh_" + e), xi(A, r), g.extensions && qs(i, A, g), t.assignFinalMaterial(A), u.push(A);
|
|
34746
35121
|
}
|
|
34747
35122
|
for (let d = 0, p = u.length; d < p; d++)
|
|
34748
35123
|
t.associations.set(u[d], {
|
|
@@ -34863,7 +35238,7 @@ class cw {
|
|
|
34863
35238
|
]).then(function(l) {
|
|
34864
35239
|
const h = l[0], u = l[1], f = l[2];
|
|
34865
35240
|
f !== null && h.traverse(function(d) {
|
|
34866
|
-
d.isSkinnedMesh && d.bind(f,
|
|
35241
|
+
d.isSkinnedMesh && d.bind(f, lw);
|
|
34867
35242
|
});
|
|
34868
35243
|
for (let d = 0, p = u.length; d < p; d++)
|
|
34869
35244
|
h.add(u[d]);
|
|
@@ -34924,7 +35299,7 @@ class cw {
|
|
|
34924
35299
|
return Promise.all(o).then(function(c) {
|
|
34925
35300
|
for (let h = 0, u = c.length; h < u; h++) {
|
|
34926
35301
|
const f = c[h];
|
|
34927
|
-
f.parent !== null ? r.add(
|
|
35302
|
+
f.parent !== null ? r.add(DC(f)) : r.add(f);
|
|
34928
35303
|
}
|
|
34929
35304
|
const l = (h) => {
|
|
34930
35305
|
const u = /* @__PURE__ */ new Map();
|
|
@@ -34968,7 +35343,7 @@ class cw {
|
|
|
34968
35343
|
}
|
|
34969
35344
|
break;
|
|
34970
35345
|
}
|
|
34971
|
-
const h = i.interpolation !== void 0 ?
|
|
35346
|
+
const h = i.interpolation !== void 0 ? iw[i.interpolation] : Sa, u = this._getArrayFromAccessor(n);
|
|
34972
35347
|
for (let f = 0, d = c.length; f < d; f++) {
|
|
34973
35348
|
const p = new l(
|
|
34974
35349
|
c[f] + "." + os[r.path],
|
|
@@ -34983,7 +35358,7 @@ class cw {
|
|
|
34983
35358
|
_getArrayFromAccessor(e) {
|
|
34984
35359
|
let t = e.array;
|
|
34985
35360
|
if (e.normalized) {
|
|
34986
|
-
const n =
|
|
35361
|
+
const n = id(t.constructor), i = new Float32Array(t.length);
|
|
34987
35362
|
for (let r = 0, a = t.length; r < a; r++)
|
|
34988
35363
|
i[r] = t[r] * n;
|
|
34989
35364
|
t = i;
|
|
@@ -34992,12 +35367,12 @@ class cw {
|
|
|
34992
35367
|
}
|
|
34993
35368
|
_createCubicSplineTrackInterpolant(e) {
|
|
34994
35369
|
e.createInterpolant = function(n) {
|
|
34995
|
-
const i = this instanceof Er ?
|
|
35370
|
+
const i = this instanceof Er ? nw : z0;
|
|
34996
35371
|
return new i(this.times, this.values, this.getValueSize() / 3, n);
|
|
34997
35372
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
34998
35373
|
}
|
|
34999
35374
|
}
|
|
35000
|
-
function
|
|
35375
|
+
function uw(s, e, t) {
|
|
35001
35376
|
const n = e.attributes, i = new vt();
|
|
35002
35377
|
if (n.POSITION !== void 0) {
|
|
35003
35378
|
const o = t.json.accessors[n.POSITION], c = o.min, l = o.max;
|
|
@@ -35006,7 +35381,7 @@ function lw(s, e, t) {
|
|
|
35006
35381
|
new T(c[0], c[1], c[2]),
|
|
35007
35382
|
new T(l[0], l[1], l[2])
|
|
35008
35383
|
), o.normalized) {
|
|
35009
|
-
const h =
|
|
35384
|
+
const h = id(ga[o.componentType]);
|
|
35010
35385
|
i.min.multiplyScalar(h), i.max.multiplyScalar(h);
|
|
35011
35386
|
}
|
|
35012
35387
|
} else {
|
|
@@ -35024,7 +35399,7 @@ function lw(s, e, t) {
|
|
|
35024
35399
|
const f = t.json.accessors[u.POSITION], d = f.min, p = f.max;
|
|
35025
35400
|
if (d !== void 0 && p !== void 0) {
|
|
35026
35401
|
if (c.setX(Math.max(Math.abs(d[0]), Math.abs(p[0]))), c.setY(Math.max(Math.abs(d[1]), Math.abs(p[1]))), c.setZ(Math.max(Math.abs(d[2]), Math.abs(p[2]))), f.normalized) {
|
|
35027
|
-
const b =
|
|
35402
|
+
const b = id(ga[f.componentType]);
|
|
35028
35403
|
c.multiplyScalar(b);
|
|
35029
35404
|
}
|
|
35030
35405
|
o.max(c);
|
|
@@ -35046,7 +35421,7 @@ function tg(s, e, t) {
|
|
|
35046
35421
|
});
|
|
35047
35422
|
}
|
|
35048
35423
|
for (const a in n) {
|
|
35049
|
-
const o =
|
|
35424
|
+
const o = nd[a] || a.toLowerCase();
|
|
35050
35425
|
o in s.attributes || i.push(r(n[a], o));
|
|
35051
35426
|
}
|
|
35052
35427
|
if (e.indices !== void 0 && !s.index) {
|
|
@@ -35055,8 +35430,8 @@ function tg(s, e, t) {
|
|
|
35055
35430
|
});
|
|
35056
35431
|
i.push(a);
|
|
35057
35432
|
}
|
|
35058
|
-
return nt.workingColorSpace !== Jt && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${nt.workingColorSpace}" not supported.`), xi(s, e),
|
|
35059
|
-
return e.targets !== void 0 ?
|
|
35433
|
+
return nt.workingColorSpace !== Jt && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${nt.workingColorSpace}" not supported.`), xi(s, e), uw(s, e, t), Promise.all(i).then(function() {
|
|
35434
|
+
return e.targets !== void 0 ? rw(s, e.targets, t) : s;
|
|
35060
35435
|
});
|
|
35061
35436
|
}
|
|
35062
35437
|
const pr = {
|
|
@@ -35137,13 +35512,13 @@ class Br {
|
|
|
35137
35512
|
dispose() {
|
|
35138
35513
|
}
|
|
35139
35514
|
}
|
|
35140
|
-
const
|
|
35141
|
-
class
|
|
35515
|
+
const fw = new Tr(-1, 1, 1, -1, 0, 1);
|
|
35516
|
+
class dw extends Ve {
|
|
35142
35517
|
constructor() {
|
|
35143
35518
|
super(), this.setAttribute("position", new Me([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new Me([0, 2, 0, 0, 2, 0], 2));
|
|
35144
35519
|
}
|
|
35145
35520
|
}
|
|
35146
|
-
const
|
|
35521
|
+
const pw = new dw();
|
|
35147
35522
|
class au {
|
|
35148
35523
|
/**
|
|
35149
35524
|
* Constructs a new full screen quad.
|
|
@@ -35151,7 +35526,7 @@ class au {
|
|
|
35151
35526
|
* @param {?Material} material - The material to render te full screen quad with.
|
|
35152
35527
|
*/
|
|
35153
35528
|
constructor(e) {
|
|
35154
|
-
this._mesh = new pe(
|
|
35529
|
+
this._mesh = new pe(pw, e);
|
|
35155
35530
|
}
|
|
35156
35531
|
/**
|
|
35157
35532
|
* Frees the GPU-related resources allocated by this instance. Call this
|
|
@@ -35166,7 +35541,7 @@ class au {
|
|
|
35166
35541
|
* @param {WebGLRenderer} renderer - The renderer.
|
|
35167
35542
|
*/
|
|
35168
35543
|
render(e) {
|
|
35169
|
-
e.render(this._mesh,
|
|
35544
|
+
e.render(this._mesh, fw);
|
|
35170
35545
|
}
|
|
35171
35546
|
/**
|
|
35172
35547
|
* The quad's material.
|
|
@@ -35180,7 +35555,7 @@ class au {
|
|
|
35180
35555
|
this._mesh.material = e;
|
|
35181
35556
|
}
|
|
35182
35557
|
}
|
|
35183
|
-
class
|
|
35558
|
+
class Aw extends Br {
|
|
35184
35559
|
/**
|
|
35185
35560
|
* Constructs a new shader pass.
|
|
35186
35561
|
*
|
|
@@ -35248,7 +35623,7 @@ class ng extends Br {
|
|
|
35248
35623
|
this.inverse ? (a = 0, o = 1) : (a = 1, o = 0), r.buffers.stencil.setTest(!0), r.buffers.stencil.setOp(i.REPLACE, i.REPLACE, i.REPLACE), r.buffers.stencil.setFunc(i.ALWAYS, a, 4294967295), r.buffers.stencil.setClear(o), r.buffers.stencil.setLocked(!0), e.setRenderTarget(n), this.clear && e.clear(), e.render(this.scene, this.camera), e.setRenderTarget(t), this.clear && e.clear(), e.render(this.scene, this.camera), r.buffers.color.setLocked(!1), r.buffers.depth.setLocked(!1), r.buffers.color.setMask(!0), r.buffers.depth.setMask(!0), r.buffers.stencil.setLocked(!1), r.buffers.stencil.setFunc(i.EQUAL, 1, 4294967295), r.buffers.stencil.setOp(i.KEEP, i.KEEP, i.KEEP), r.buffers.stencil.setLocked(!0);
|
|
35249
35624
|
}
|
|
35250
35625
|
}
|
|
35251
|
-
class
|
|
35626
|
+
class gw extends Br {
|
|
35252
35627
|
/**
|
|
35253
35628
|
* Constructs a new clear mask pass.
|
|
35254
35629
|
*/
|
|
@@ -35270,7 +35645,7 @@ class pw extends Br {
|
|
|
35270
35645
|
e.state.buffers.stencil.setLocked(!1), e.state.buffers.stencil.setTest(!1);
|
|
35271
35646
|
}
|
|
35272
35647
|
}
|
|
35273
|
-
class
|
|
35648
|
+
class j1 {
|
|
35274
35649
|
/**
|
|
35275
35650
|
* Constructs a new effect composer.
|
|
35276
35651
|
*
|
|
@@ -35285,7 +35660,7 @@ class X1 {
|
|
|
35285
35660
|
this._width = n.width, this._height = n.height, t = new jt(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: yt }), t.texture.name = "EffectComposer.rt1";
|
|
35286
35661
|
} else
|
|
35287
35662
|
this._width = t.width, this._height = t.height;
|
|
35288
|
-
this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new
|
|
35663
|
+
this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new Aw(pr), this.copyPass.material.blending = St, this.timer = new Yd();
|
|
35289
35664
|
}
|
|
35290
35665
|
/**
|
|
35291
35666
|
* Swaps the internal read/write buffers.
|
|
@@ -35352,7 +35727,7 @@ class X1 {
|
|
|
35352
35727
|
}
|
|
35353
35728
|
this.swapBuffers();
|
|
35354
35729
|
}
|
|
35355
|
-
ng !== void 0 && (a instanceof ng ? n = !0 : a instanceof
|
|
35730
|
+
ng !== void 0 && (a instanceof ng ? n = !0 : a instanceof gw && (n = !1));
|
|
35356
35731
|
}
|
|
35357
35732
|
}
|
|
35358
35733
|
this.renderer.setRenderTarget(t);
|
|
@@ -35401,7 +35776,7 @@ class X1 {
|
|
|
35401
35776
|
this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.copyPass.dispose();
|
|
35402
35777
|
}
|
|
35403
35778
|
}
|
|
35404
|
-
class
|
|
35779
|
+
class K1 extends Br {
|
|
35405
35780
|
/**
|
|
35406
35781
|
* Constructs a new render pass.
|
|
35407
35782
|
*
|
|
@@ -35738,8 +36113,8 @@ const tl = {
|
|
|
35738
36113
|
}`
|
|
35739
36114
|
)
|
|
35740
36115
|
};
|
|
35741
|
-
function
|
|
35742
|
-
const e = Math.floor(s) % 2 === 0 ? Math.floor(s) + 1 : Math.floor(s), t =
|
|
36116
|
+
function mw(s = 5) {
|
|
36117
|
+
const e = Math.floor(s) % 2 === 0 ? Math.floor(s) + 1 : Math.floor(s), t = bw(e), n = t.length, i = new Uint8Array(n * 4);
|
|
35743
36118
|
for (let a = 0; a < n; ++a) {
|
|
35744
36119
|
const o = t[a], c = 2 * Math.PI * o / n, l = new T(
|
|
35745
36120
|
Math.cos(c),
|
|
@@ -35751,7 +36126,7 @@ function Aw(s = 5) {
|
|
|
35751
36126
|
const r = new wn(i, e, e);
|
|
35752
36127
|
return r.wrapS = Ln, r.wrapT = Ln, r.needsUpdate = !0, r;
|
|
35753
36128
|
}
|
|
35754
|
-
function
|
|
36129
|
+
function bw(s) {
|
|
35755
36130
|
const e = Math.floor(s) % 2 === 0 ? Math.floor(s) + 1 : Math.floor(s), t = e * e, n = Array(t).fill(0);
|
|
35756
36131
|
let i = Math.floor(e / 2), r = e - 1;
|
|
35757
36132
|
for (let a = 1; a <= t; ) {
|
|
@@ -35767,7 +36142,7 @@ function gw(s) {
|
|
|
35767
36142
|
const il = {
|
|
35768
36143
|
defines: {
|
|
35769
36144
|
SAMPLES: 16,
|
|
35770
|
-
SAMPLE_VECTORS:
|
|
36145
|
+
SAMPLE_VECTORS: H0(16, 2, 1),
|
|
35771
36146
|
NORMAL_VECTOR_TYPE: 1,
|
|
35772
36147
|
DEPTH_VALUE_SOURCE: 0
|
|
35773
36148
|
},
|
|
@@ -35942,8 +36317,8 @@ const il = {
|
|
|
35942
36317
|
}`
|
|
35943
36318
|
)
|
|
35944
36319
|
};
|
|
35945
|
-
function
|
|
35946
|
-
const n =
|
|
36320
|
+
function H0(s, e, t) {
|
|
36321
|
+
const n = xw(
|
|
35947
36322
|
s,
|
|
35948
36323
|
e,
|
|
35949
36324
|
t
|
|
@@ -35955,7 +36330,7 @@ function z0(s, e, t) {
|
|
|
35955
36330
|
}
|
|
35956
36331
|
return i;
|
|
35957
36332
|
}
|
|
35958
|
-
function
|
|
36333
|
+
function xw(s, e, t) {
|
|
35959
36334
|
const n = [];
|
|
35960
36335
|
for (let i = 0; i < s; i++) {
|
|
35961
36336
|
const r = 2 * Math.PI * e * i / s, a = Math.pow(i / (s - 1), t);
|
|
@@ -35963,7 +36338,7 @@ function mw(s, e, t) {
|
|
|
35963
36338
|
}
|
|
35964
36339
|
return n;
|
|
35965
36340
|
}
|
|
35966
|
-
class
|
|
36341
|
+
class V0 {
|
|
35967
36342
|
/**
|
|
35968
36343
|
* Constructs a new simplex noise object.
|
|
35969
36344
|
*
|
|
@@ -36181,7 +36556,7 @@ class zi extends Br {
|
|
|
36181
36556
|
* @param {Object} [pdParameters] - The denoise parameters.
|
|
36182
36557
|
*/
|
|
36183
36558
|
constructor(e, t, n = 512, i = 512, r, a, o) {
|
|
36184
|
-
super(), this.width = n, this.height = i, this.clear = !0, this.camera = t, this.scene = e, this.output = 0, this._renderGBuffer = !0, this._visibilityCache = [], this.blendIntensity = 1, this.pdRings = 2, this.pdRadiusExponent = 2, this.pdSamples = 16, this.gtaoNoiseTexture =
|
|
36559
|
+
super(), this.width = n, this.height = i, this.clear = !0, this.camera = t, this.scene = e, this.output = 0, this._renderGBuffer = !0, this._visibilityCache = [], this.blendIntensity = 1, this.pdRings = 2, this.pdRadiusExponent = 2, this.pdSamples = 16, this.gtaoNoiseTexture = mw(), this.pdNoiseTexture = this._generateNoise(), this.gtaoRenderTarget = new jt(this.width, this.height, { type: yt }), this.pdRenderTarget = this.gtaoRenderTarget.clone(), this.gtaoMaterial = new It({
|
|
36185
36560
|
defines: Object.assign({}, tl.defines),
|
|
36186
36561
|
uniforms: gn.clone(tl.uniforms),
|
|
36187
36562
|
vertexShader: tl.vertexShader,
|
|
@@ -36298,7 +36673,7 @@ class zi extends Br {
|
|
|
36298
36673
|
*/
|
|
36299
36674
|
updatePdMaterial(e) {
|
|
36300
36675
|
let t = !1;
|
|
36301
|
-
e.lumaPhi !== void 0 && (this.pdMaterial.uniforms.lumaPhi.value = e.lumaPhi), e.depthPhi !== void 0 && (this.pdMaterial.uniforms.depthPhi.value = e.depthPhi), e.normalPhi !== void 0 && (this.pdMaterial.uniforms.normalPhi.value = e.normalPhi), e.radius !== void 0 && e.radius !== this.radius && (this.pdMaterial.uniforms.radius.value = e.radius), e.radiusExponent !== void 0 && e.radiusExponent !== this.pdRadiusExponent && (this.pdRadiusExponent = e.radiusExponent, t = !0), e.rings !== void 0 && e.rings !== this.pdRings && (this.pdRings = e.rings, t = !0), e.samples !== void 0 && e.samples !== this.pdSamples && (this.pdSamples = e.samples, t = !0), t && (this.pdMaterial.defines.SAMPLES = this.pdSamples, this.pdMaterial.defines.SAMPLE_VECTORS =
|
|
36676
|
+
e.lumaPhi !== void 0 && (this.pdMaterial.uniforms.lumaPhi.value = e.lumaPhi), e.depthPhi !== void 0 && (this.pdMaterial.uniforms.depthPhi.value = e.depthPhi), e.normalPhi !== void 0 && (this.pdMaterial.uniforms.normalPhi.value = e.normalPhi), e.radius !== void 0 && e.radius !== this.radius && (this.pdMaterial.uniforms.radius.value = e.radius), e.radiusExponent !== void 0 && e.radiusExponent !== this.pdRadiusExponent && (this.pdRadiusExponent = e.radiusExponent, t = !0), e.rings !== void 0 && e.rings !== this.pdRings && (this.pdRings = e.rings, t = !0), e.samples !== void 0 && e.samples !== this.pdSamples && (this.pdSamples = e.samples, t = !0), t && (this.pdMaterial.defines.SAMPLES = this.pdSamples, this.pdMaterial.defines.SAMPLE_VECTORS = H0(this.pdSamples, this.pdRings, this.pdRadiusExponent), this.pdMaterial.needsUpdate = !0);
|
|
36302
36677
|
}
|
|
36303
36678
|
/**
|
|
36304
36679
|
* Performs the GTAO pass.
|
|
@@ -36361,7 +36736,7 @@ class zi extends Br {
|
|
|
36361
36736
|
e.length = 0;
|
|
36362
36737
|
}
|
|
36363
36738
|
_generateNoise(e = 64) {
|
|
36364
|
-
const t = new
|
|
36739
|
+
const t = new V0(), n = e * e * 4, i = new Uint8Array(n);
|
|
36365
36740
|
for (let a = 0; a < e; a++)
|
|
36366
36741
|
for (let o = 0; o < e; o++) {
|
|
36367
36742
|
const c = a, l = o;
|
|
@@ -36763,7 +37138,7 @@ class nr extends Br {
|
|
|
36763
37138
|
}
|
|
36764
37139
|
}
|
|
36765
37140
|
_generateRandomKernelRotations() {
|
|
36766
|
-
const n = new
|
|
37141
|
+
const n = new V0(), i = 16, r = new Float32Array(i);
|
|
36767
37142
|
for (let a = 0; a < i; a++) {
|
|
36768
37143
|
const o = Math.random() * 2 - 1, c = Math.random() * 2 - 1, l = 0;
|
|
36769
37144
|
r[a] = n.noise3d(o, c, l);
|
|
@@ -36876,7 +37251,7 @@ const ol = {
|
|
|
36876
37251
|
}`
|
|
36877
37252
|
)
|
|
36878
37253
|
};
|
|
36879
|
-
class
|
|
37254
|
+
class Y1 extends Br {
|
|
36880
37255
|
/**
|
|
36881
37256
|
* Constructs a new output pass.
|
|
36882
37257
|
*/
|
|
@@ -36910,7 +37285,7 @@ class K1 extends Br {
|
|
|
36910
37285
|
this.material.dispose(), this._fsQuad.dispose();
|
|
36911
37286
|
}
|
|
36912
37287
|
}
|
|
36913
|
-
const
|
|
37288
|
+
const J1 = {
|
|
36914
37289
|
name: "FXAAShader",
|
|
36915
37290
|
uniforms: {
|
|
36916
37291
|
tDiffuse: { value: null },
|
|
@@ -37186,7 +37561,7 @@ const Y1 = {
|
|
|
37186
37561
|
}`
|
|
37187
37562
|
)
|
|
37188
37563
|
}, rf = /* @__PURE__ */ new WeakMap();
|
|
37189
|
-
class
|
|
37564
|
+
class Z1 extends rn {
|
|
37190
37565
|
/**
|
|
37191
37566
|
* Constructs a new Draco loader.
|
|
37192
37567
|
*
|
|
@@ -37329,7 +37704,7 @@ class J1 extends rn {
|
|
|
37329
37704
|
return e ? t.push(this._loadLibrary("draco_decoder.js", "text")) : (t.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), t.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(t).then((n) => {
|
|
37330
37705
|
const i = n[0];
|
|
37331
37706
|
e || (this.decoderConfig.wasmBinary = n[1]);
|
|
37332
|
-
const r =
|
|
37707
|
+
const r = _w.toString(), a = [
|
|
37333
37708
|
"/* draco decoder */",
|
|
37334
37709
|
i,
|
|
37335
37710
|
"",
|
|
@@ -37377,7 +37752,7 @@ class J1 extends rn {
|
|
|
37377
37752
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
37378
37753
|
}
|
|
37379
37754
|
}
|
|
37380
|
-
function
|
|
37755
|
+
function _w() {
|
|
37381
37756
|
let s, e;
|
|
37382
37757
|
onmessage = function(a) {
|
|
37383
37758
|
const o = a.data;
|
|
@@ -37481,7 +37856,7 @@ function bw() {
|
|
|
37481
37856
|
}
|
|
37482
37857
|
}
|
|
37483
37858
|
}
|
|
37484
|
-
var
|
|
37859
|
+
var $1 = (function() {
|
|
37485
37860
|
var s = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;lZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk::ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxabaiarcefciGfcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGfgkcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabaiarcufciGfcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkabakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpx:ji:1S:ji:1S:ji:1S:ji:1SaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83ibawarp5bampEd:T:j83ibaocwfaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83ibaoaxp5bampEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgmpklbaiampklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipx:ji:1S:ji:1S:ji:1S:ji:1SaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qgxp;6ep;Negmaxaxp:1ep;7egxaxp;KearaDpmbediwDqkzHOAKY8AEgxczp:Reczp:Sep;6egrarp;Meaxczp:Sep;6egDaDp;Meaqczp:Reczp:Sep;6egqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gxp;KepxFFbbFFbbFFbbFFbbgPp9oamaDp;Meaxp;Keczp:Rep9qgDamarp;Meaxp;KeaPp9oamaqp;Meaxp;Keczp:Rep9qgxpmwDKYqk8AExm35Ps8E8Fgrp5eakclp:RegmpEi:T:j83iKaiarp5bampEd:T:j83izaiaDaxpmbezHdiOAlvCXorQLgxp5eampEe:T:j83iwaiaxp5bampEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb", t = new Uint8Array([
|
|
37486
37861
|
0,
|
|
37487
37862
|
97,
|
|
@@ -37695,7 +38070,7 @@ var Z1 = (function() {
|
|
|
37695
38070
|
}
|
|
37696
38071
|
};
|
|
37697
38072
|
})();
|
|
37698
|
-
class
|
|
38073
|
+
class yw {
|
|
37699
38074
|
/**
|
|
37700
38075
|
* Constructs a new Worker pool.
|
|
37701
38076
|
*
|
|
@@ -37761,7 +38136,7 @@ class xw {
|
|
|
37761
38136
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
37762
38137
|
}
|
|
37763
38138
|
}
|
|
37764
|
-
const
|
|
38139
|
+
const vw = 0, ig = 2, Ew = 1, sg = 2, Sw = 0, Iw = 1, Mw = 10, Cw = 0, W0 = 9, q0 = 15, X0 = 16, j0 = 22, K0 = 37, Y0 = 43, J0 = 76, Z0 = 83, $0 = 97, eb = 100, tb = 103, nb = 109, ib = 122, sb = 123, rb = 131, ab = 132, ob = 133, cb = 134, lb = 137, hb = 138, ub = 139, fb = 140, db = 141, pb = 142, Ab = 145, gb = 146, mb = 148, bb = 152, xb = 153, _b = 154, yb = 155, vb = 156, Eb = 157, Sb = 158, Ib = 165, Mb = 166, Cb = 1000054e3, wb = 1000054001, Tb = 1000054004, Bb = 1000054005, np = 1000066e3, Rb = 1000066004;
|
|
37765
38140
|
class Ka {
|
|
37766
38141
|
constructor(e, t, n, i) {
|
|
37767
38142
|
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(e.buffer, e.byteOffset + t, n), this._littleEndian = i, this._offset = 0;
|
|
@@ -37804,7 +38179,7 @@ const _n = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
|
37804
38179
|
function rg(s) {
|
|
37805
38180
|
return new TextDecoder().decode(s);
|
|
37806
38181
|
}
|
|
37807
|
-
function
|
|
38182
|
+
function ww(s) {
|
|
37808
38183
|
const e = new Uint8Array(s.buffer, s.byteOffset, _n.length);
|
|
37809
38184
|
if (e[0] !== _n[0] || e[1] !== _n[1] || e[2] !== _n[2] || e[3] !== _n[3] || e[4] !== _n[4] || e[5] !== _n[5] || e[6] !== _n[6] || e[7] !== _n[7] || e[8] !== _n[8] || e[9] !== _n[9] || e[10] !== _n[10] || e[11] !== _n[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
37810
38185
|
const t = { vkFormat: 0, typeSize: 1, pixelWidth: 0, pixelHeight: 0, pixelDepth: 0, layerCount: 0, faceCount: 1, levelCount: 0, supercompressionScheme: 0, levels: [], dataFormatDescriptor: [{ vendorId: 0, descriptorType: 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: [] }], keyValue: {}, globalData: null }, n = 17 * Uint32Array.BYTES_PER_ELEMENT, i = new Ka(s, _n.length, n, !0);
|
|
@@ -37834,11 +38209,11 @@ function Mw(s) {
|
|
|
37834
38209
|
const D = l + v._offset, L = D + y, F = L + E, U = F + w, O = new Uint8Array(s.buffer, s.byteOffset + D, y), J = new Uint8Array(s.buffer, s.byteOffset + L, E), z = new Uint8Array(s.buffer, s.byteOffset + F, w), ie = new Uint8Array(s.buffer, s.byteOffset + U, C);
|
|
37835
38210
|
return t.globalData = { endpointCount: S, selectorCount: I, imageDescs: B, endpointsData: O, selectorsData: J, tablesData: z, extendedData: ie }, t;
|
|
37836
38211
|
}
|
|
37837
|
-
let af, Qi,
|
|
38212
|
+
let af, Qi, sd;
|
|
37838
38213
|
const of = { env: { emscripten_notify_memory_growth: function(s) {
|
|
37839
|
-
|
|
38214
|
+
sd = new Uint8Array(Qi.exports.memory.buffer);
|
|
37840
38215
|
} } };
|
|
37841
|
-
class
|
|
38216
|
+
class Tw {
|
|
37842
38217
|
init() {
|
|
37843
38218
|
return af || (af = typeof fetch < "u" ? fetch("data:application/wasm;base64," + ag).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, of)).then(this._init) : WebAssembly.instantiate(Buffer.from(ag, "base64"), of).then(this._init), af);
|
|
37844
38219
|
}
|
|
@@ -37848,12 +38223,12 @@ class Cw {
|
|
|
37848
38223
|
decode(e, t = 0) {
|
|
37849
38224
|
if (!Qi) throw new Error("ZSTDDecoder: Await .init() before decoding.");
|
|
37850
38225
|
const n = e.byteLength, i = Qi.exports.malloc(n);
|
|
37851
|
-
|
|
37852
|
-
const r = Qi.exports.malloc(t), a = Qi.exports.ZSTD_decompress(r, t, i, n), o =
|
|
38226
|
+
sd.set(e, i), t = t || Number(Qi.exports.ZSTD_findDecompressedSize(i, n));
|
|
38227
|
+
const r = Qi.exports.malloc(t), a = Qi.exports.ZSTD_decompress(r, t, i, n), o = sd.slice(r, r + a);
|
|
37853
38228
|
return Qi.exports.free(i), Qi.exports.free(r), o;
|
|
37854
38229
|
}
|
|
37855
38230
|
}
|
|
37856
|
-
const ag = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ", ww = "display-p3", Tw = "display-p3-linear";
|
|
38231
|
+
const ag = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", Bw = "display-p3", Rw = "display-p3-linear";
|
|
37857
38232
|
({
|
|
37858
38233
|
...nt.spaces[wt]
|
|
37859
38234
|
});
|
|
@@ -37866,7 +38241,7 @@ class li extends rn {
|
|
|
37866
38241
|
* @param {LoadingManager} [manager] - The loading manager.
|
|
37867
38242
|
*/
|
|
37868
38243
|
constructor(e) {
|
|
37869
|
-
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
38244
|
+
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new yw(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
|
|
37870
38245
|
'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
|
|
37871
38246
|
);
|
|
37872
38247
|
}
|
|
@@ -38001,7 +38376,7 @@ class li extends rn {
|
|
|
38001
38376
|
const f = r[0].mipmaps;
|
|
38002
38377
|
u = t.layerCount > 1 ? new zm(f, a, o, t.layerCount, c, l) : new Da(f, a, o, c, l);
|
|
38003
38378
|
}
|
|
38004
|
-
return u.minFilter = r[0].mipmaps.length === 1 ? ht : Pn, u.magFilter = ht, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace =
|
|
38379
|
+
return u.minFilter = r[0].mipmaps.length === 1 ? ht : Pn, u.magFilter = ht, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace = Db(t), u.premultiplyAlpha = !!(h & Ew), u;
|
|
38005
38380
|
}
|
|
38006
38381
|
/**
|
|
38007
38382
|
* @private
|
|
@@ -38010,9 +38385,9 @@ class li extends rn {
|
|
|
38010
38385
|
* @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
|
|
38011
38386
|
*/
|
|
38012
38387
|
async _createTexture(e, t = {}) {
|
|
38013
|
-
const n =
|
|
38014
|
-
if (!(n.vkFormat ===
|
|
38015
|
-
return
|
|
38388
|
+
const n = ww(new Uint8Array(e)), i = n.vkFormat === np && n.dataFormatDescriptor[0].colorModel === 167;
|
|
38389
|
+
if (!(n.vkFormat === Cw || i && !this.workerConfig.astcHDRSupported))
|
|
38390
|
+
return Pw(n);
|
|
38016
38391
|
const a = t, o = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: a }, [e])).then((c) => this._createTextureFrom(c.data, n));
|
|
38017
38392
|
return cf.set(e, { promise: o }), o;
|
|
38018
38393
|
}
|
|
@@ -38262,108 +38637,108 @@ li.BasisWorker = function() {
|
|
|
38262
38637
|
return g;
|
|
38263
38638
|
}
|
|
38264
38639
|
};
|
|
38265
|
-
const
|
|
38266
|
-
[
|
|
38267
|
-
[
|
|
38268
|
-
[
|
|
38269
|
-
[
|
|
38270
|
-
[
|
|
38271
|
-
[
|
|
38640
|
+
const Dw = /* @__PURE__ */ new Set([Nt, xa, Kn, yi]), uf = {
|
|
38641
|
+
[nb]: Nt,
|
|
38642
|
+
[tb]: Kn,
|
|
38643
|
+
[eb]: yi,
|
|
38644
|
+
[$0]: Nt,
|
|
38645
|
+
[Z0]: Kn,
|
|
38646
|
+
[J0]: yi,
|
|
38647
|
+
[Y0]: Nt,
|
|
38272
38648
|
[K0]: Nt,
|
|
38273
|
-
[j0]:
|
|
38649
|
+
[j0]: Kn,
|
|
38274
38650
|
[X0]: Kn,
|
|
38275
|
-
[q0]:
|
|
38651
|
+
[q0]: yi,
|
|
38276
38652
|
[W0]: yi,
|
|
38277
|
-
[
|
|
38653
|
+
[sb]: xa,
|
|
38278
38654
|
[ib]: xa,
|
|
38279
|
-
[
|
|
38280
|
-
[mb]:
|
|
38281
|
-
[
|
|
38282
|
-
[
|
|
38283
|
-
[
|
|
38284
|
-
[
|
|
38285
|
-
[yb]: Do,
|
|
38655
|
+
[bb]: va,
|
|
38656
|
+
[mb]: ya,
|
|
38657
|
+
[xb]: To,
|
|
38658
|
+
[_b]: Bo,
|
|
38659
|
+
[yb]: Ro,
|
|
38660
|
+
[vb]: Do,
|
|
38286
38661
|
[np]: _s,
|
|
38662
|
+
[Sb]: _s,
|
|
38287
38663
|
[Eb]: _s,
|
|
38288
|
-
[
|
|
38289
|
-
[
|
|
38664
|
+
[Rb]: ur,
|
|
38665
|
+
[Mb]: ur,
|
|
38290
38666
|
[Ib]: ur,
|
|
38291
|
-
[
|
|
38667
|
+
[cb]: bs,
|
|
38292
38668
|
[ob]: bs,
|
|
38293
|
-
[ab]:
|
|
38669
|
+
[ab]: hr,
|
|
38294
38670
|
[rb]: hr,
|
|
38295
|
-
[
|
|
38671
|
+
[hb]: xs,
|
|
38296
38672
|
[lb]: xs,
|
|
38297
|
-
[
|
|
38298
|
-
[ub]:
|
|
38299
|
-
[
|
|
38300
|
-
[db]:
|
|
38301
|
-
[
|
|
38673
|
+
[fb]: Fo,
|
|
38674
|
+
[ub]: Lo,
|
|
38675
|
+
[pb]: Uo,
|
|
38676
|
+
[db]: No,
|
|
38677
|
+
[gb]: br,
|
|
38302
38678
|
[Ab]: br,
|
|
38303
|
-
[
|
|
38304
|
-
[
|
|
38305
|
-
[
|
|
38306
|
-
[
|
|
38307
|
-
[Mb]: _a
|
|
38679
|
+
[Bb]: mr,
|
|
38680
|
+
[wb]: mr,
|
|
38681
|
+
[Tb]: _a,
|
|
38682
|
+
[Cb]: _a
|
|
38308
38683
|
}, ea = {
|
|
38684
|
+
[nb]: Tt,
|
|
38309
38685
|
[tb]: Tt,
|
|
38310
38686
|
[eb]: Tt,
|
|
38311
|
-
[$0]:
|
|
38687
|
+
[$0]: yt,
|
|
38312
38688
|
[Z0]: yt,
|
|
38313
38689
|
[J0]: yt,
|
|
38314
|
-
[Y0]:
|
|
38690
|
+
[Y0]: qe,
|
|
38315
38691
|
[K0]: qe,
|
|
38316
38692
|
[j0]: qe,
|
|
38317
38693
|
[X0]: qe,
|
|
38318
38694
|
[q0]: qe,
|
|
38319
38695
|
[W0]: qe,
|
|
38320
|
-
[
|
|
38321
|
-
[ib]:
|
|
38322
|
-
[nb]: Zo,
|
|
38323
|
-
[mb]: qe,
|
|
38324
|
-
[gb]: qe,
|
|
38696
|
+
[sb]: Jo,
|
|
38697
|
+
[ib]: Zo,
|
|
38325
38698
|
[bb]: qe,
|
|
38699
|
+
[mb]: qe,
|
|
38326
38700
|
[xb]: qe,
|
|
38327
38701
|
[_b]: qe,
|
|
38328
38702
|
[yb]: qe,
|
|
38703
|
+
[vb]: qe,
|
|
38329
38704
|
[np]: yt,
|
|
38705
|
+
[Sb]: qe,
|
|
38330
38706
|
[Eb]: qe,
|
|
38331
|
-
[
|
|
38332
|
-
[
|
|
38707
|
+
[Rb]: yt,
|
|
38708
|
+
[Mb]: qe,
|
|
38333
38709
|
[Ib]: qe,
|
|
38334
|
-
[
|
|
38710
|
+
[cb]: qe,
|
|
38335
38711
|
[ob]: qe,
|
|
38336
38712
|
[ab]: qe,
|
|
38337
38713
|
[rb]: qe,
|
|
38338
|
-
[
|
|
38714
|
+
[hb]: qe,
|
|
38339
38715
|
[lb]: qe,
|
|
38340
|
-
[
|
|
38716
|
+
[fb]: qe,
|
|
38341
38717
|
[ub]: qe,
|
|
38342
|
-
[
|
|
38718
|
+
[pb]: qe,
|
|
38343
38719
|
[db]: qe,
|
|
38344
|
-
[
|
|
38720
|
+
[gb]: qe,
|
|
38345
38721
|
[Ab]: qe,
|
|
38346
|
-
[
|
|
38347
|
-
[Tb]: qe,
|
|
38348
|
-
[Cb]: qe,
|
|
38722
|
+
[Bb]: qe,
|
|
38349
38723
|
[wb]: qe,
|
|
38350
|
-
[
|
|
38724
|
+
[Tb]: qe,
|
|
38725
|
+
[Cb]: qe
|
|
38351
38726
|
};
|
|
38352
|
-
async function
|
|
38727
|
+
async function Pw(s) {
|
|
38353
38728
|
const { vkFormat: e } = s;
|
|
38354
38729
|
if (uf[e] === void 0)
|
|
38355
38730
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat: " + e);
|
|
38356
38731
|
ea[e] === void 0 && console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: ' + e);
|
|
38357
38732
|
let t;
|
|
38358
38733
|
s.supercompressionScheme === ig && (hf || (hf = new Promise(async (a) => {
|
|
38359
|
-
const o = new
|
|
38734
|
+
const o = new Tw();
|
|
38360
38735
|
await o.init(), a(o);
|
|
38361
38736
|
})), t = await hf);
|
|
38362
38737
|
const n = [];
|
|
38363
38738
|
for (let a = 0; a < s.levels.length; a++) {
|
|
38364
38739
|
const o = Math.max(1, s.pixelWidth >> a), c = Math.max(1, s.pixelHeight >> a), l = s.pixelDepth ? Math.max(1, s.pixelDepth >> a) : 0, h = s.levels[a];
|
|
38365
38740
|
let u;
|
|
38366
|
-
if (s.supercompressionScheme ===
|
|
38741
|
+
if (s.supercompressionScheme === vw)
|
|
38367
38742
|
u = h.levelData;
|
|
38368
38743
|
else if (s.supercompressionScheme === ig)
|
|
38369
38744
|
u = t.decode(h.levelData, h.uncompressedByteLength);
|
|
@@ -38391,20 +38766,20 @@ async function Rw(s) {
|
|
|
38391
38766
|
}
|
|
38392
38767
|
const i = s.levelCount === 0 || n.length > 1;
|
|
38393
38768
|
let r;
|
|
38394
|
-
if (
|
|
38769
|
+
if (Dw.has(uf[e]))
|
|
38395
38770
|
r = s.pixelDepth === 0 ? new wn(n[0].data, s.pixelWidth, s.pixelHeight) : new ec(n[0].data, s.pixelWidth, s.pixelHeight, s.pixelDepth), r.minFilter = i ? Yo : pt, r.magFilter = pt, r.generateMipmaps = s.levelCount === 0;
|
|
38396
38771
|
else {
|
|
38397
38772
|
if (s.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
38398
38773
|
r = new Da(n, s.pixelWidth, s.pixelHeight), r.minFilter = i ? Pn : ht, r.magFilter = ht;
|
|
38399
38774
|
}
|
|
38400
|
-
return r.mipmaps = n, r.type = ea[e], r.format = uf[e], r.colorSpace =
|
|
38775
|
+
return r.mipmaps = n, r.type = ea[e], r.format = uf[e], r.colorSpace = Db(s), r.needsUpdate = !0, Promise.resolve(r);
|
|
38401
38776
|
}
|
|
38402
|
-
function
|
|
38777
|
+
function Db(s) {
|
|
38403
38778
|
const e = s.dataFormatDescriptor[0];
|
|
38404
|
-
return e.colorPrimaries ===
|
|
38779
|
+
return e.colorPrimaries === Iw ? e.transferFunction === sg ? wt : Jt : e.colorPrimaries === Mw ? e.transferFunction === sg ? Bw : Rw : (e.colorPrimaries === Sw || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), ci);
|
|
38405
38780
|
}
|
|
38406
|
-
const
|
|
38407
|
-
strategy:
|
|
38781
|
+
const Pb = 0, Lw = 1, Fw = 2, og = 2, ff = 1.25, cg = 1, mn = 32, qt = mn / 4, Lb = 65535, Nl = Math.pow(2, -24), ip = Symbol("SKIP_GENERATION"), Fb = {
|
|
38782
|
+
strategy: Pb,
|
|
38408
38783
|
maxDepth: 40,
|
|
38409
38784
|
maxLeafSize: 10,
|
|
38410
38785
|
useSharedArrayBuffer: !1,
|
|
@@ -38447,7 +38822,7 @@ function Ya(s) {
|
|
|
38447
38822
|
return 2 * (e * t + t * n + n * e);
|
|
38448
38823
|
}
|
|
38449
38824
|
function Xt(s, e) {
|
|
38450
|
-
return e[s + 15] ===
|
|
38825
|
+
return e[s + 15] === Lb;
|
|
38451
38826
|
}
|
|
38452
38827
|
function bn(s, e) {
|
|
38453
38828
|
return e[s + 6];
|
|
@@ -38478,20 +38853,20 @@ function df(s, e, t, n, i) {
|
|
|
38478
38853
|
}
|
|
38479
38854
|
n[0] = r, n[1] = a, n[2] = o, n[3] = c, n[4] = l, n[5] = h, i[0] = u, i[1] = f, i[2] = d, i[3] = p, i[4] = b, i[5] = g;
|
|
38480
38855
|
}
|
|
38481
|
-
const Gi = 32,
|
|
38856
|
+
const Gi = 32, Nw = (s, e) => s.candidate - e.candidate, cs = /* @__PURE__ */ new Array(Gi).fill().map(() => ({
|
|
38482
38857
|
count: 0,
|
|
38483
38858
|
bounds: new Float32Array(6),
|
|
38484
38859
|
rightCacheBounds: new Float32Array(6),
|
|
38485
38860
|
leftCacheBounds: new Float32Array(6),
|
|
38486
38861
|
candidate: 0
|
|
38487
38862
|
})), ll = /* @__PURE__ */ new Float32Array(6);
|
|
38488
|
-
function
|
|
38863
|
+
function Uw(s, e, t, n, i, r) {
|
|
38489
38864
|
let a = -1, o = 0;
|
|
38490
|
-
if (r ===
|
|
38865
|
+
if (r === Pb)
|
|
38491
38866
|
a = lg(e), a !== -1 && (o = (e[a] + e[a + 3]) / 2);
|
|
38492
|
-
else if (r ===
|
|
38493
|
-
a = lg(s), a !== -1 && (o =
|
|
38494
|
-
else if (r ===
|
|
38867
|
+
else if (r === Lw)
|
|
38868
|
+
a = lg(s), a !== -1 && (o = Ow(t, n, i, a));
|
|
38869
|
+
else if (r === Fw) {
|
|
38495
38870
|
const c = Ya(s);
|
|
38496
38871
|
let l = ff * i;
|
|
38497
38872
|
const h = t.offset || 0, u = (n - h) * 6, f = (n + i - h) * 6;
|
|
@@ -38513,7 +38888,7 @@ function Fw(s, e, t, n, i, r) {
|
|
|
38513
38888
|
E[w] = 1 / 0, E[w + 3] = -1 / 0, y[w] = 1 / 0, y[w + 3] = -1 / 0, I[w] = 1 / 0, I[w + 3] = -1 / 0;
|
|
38514
38889
|
cl(v, t, I);
|
|
38515
38890
|
}
|
|
38516
|
-
m.sort(
|
|
38891
|
+
m.sort(Nw);
|
|
38517
38892
|
let _ = i;
|
|
38518
38893
|
for (let v = 0; v < _; v++) {
|
|
38519
38894
|
const S = m[v];
|
|
@@ -38573,7 +38948,7 @@ function Fw(s, e, t, n, i, r) {
|
|
|
38573
38948
|
console.warn(`BVH: Invalid build strategy value ${r} used.`);
|
|
38574
38949
|
return { axis: a, pos: o };
|
|
38575
38950
|
}
|
|
38576
|
-
function
|
|
38951
|
+
function Ow(s, e, t, n) {
|
|
38577
38952
|
let i = 0;
|
|
38578
38953
|
const r = s.offset;
|
|
38579
38954
|
for (let a = e, o = e + t; a < o; a++)
|
|
@@ -38585,7 +38960,7 @@ class pf {
|
|
|
38585
38960
|
this.boundingData = new Float32Array(6);
|
|
38586
38961
|
}
|
|
38587
38962
|
}
|
|
38588
|
-
function
|
|
38963
|
+
function kw(s, e, t, n, i, r) {
|
|
38589
38964
|
let a = n, o = n + i - 1;
|
|
38590
38965
|
const c = r.pos, l = r.axis * 2, h = t.offset || 0;
|
|
38591
38966
|
for (; ; ) {
|
|
@@ -38607,30 +38982,30 @@ function Uw(s, e, t, n, i, r) {
|
|
|
38607
38982
|
return a;
|
|
38608
38983
|
}
|
|
38609
38984
|
}
|
|
38610
|
-
let
|
|
38611
|
-
const
|
|
38612
|
-
function
|
|
38613
|
-
return "count" in s ? 1 : 1 +
|
|
38985
|
+
let Nb, Ul, rd, Ub;
|
|
38986
|
+
const Qw = Math.pow(2, 32);
|
|
38987
|
+
function ad(s) {
|
|
38988
|
+
return "count" in s ? 1 : 1 + ad(s.left) + ad(s.right);
|
|
38614
38989
|
}
|
|
38615
|
-
function
|
|
38616
|
-
return
|
|
38990
|
+
function Gw(s, e, t) {
|
|
38991
|
+
return Nb = new Float32Array(t), Ul = new Uint32Array(t), rd = new Uint16Array(t), Ub = new Uint8Array(t), od(s, e);
|
|
38617
38992
|
}
|
|
38618
|
-
function
|
|
38993
|
+
function od(s, e) {
|
|
38619
38994
|
const t = s / 4, n = s / 2, i = "count" in e, r = e.boundingData;
|
|
38620
38995
|
for (let a = 0; a < 6; a++)
|
|
38621
|
-
|
|
38996
|
+
Nb[t + a] = r[a];
|
|
38622
38997
|
if (i)
|
|
38623
|
-
return e.buffer ? (
|
|
38998
|
+
return e.buffer ? (Ub.set(new Uint8Array(e.buffer), s), s + e.buffer.byteLength) : (Ul[t + 6] = e.offset, rd[n + 14] = e.count, rd[n + 15] = Lb, s + mn);
|
|
38624
38999
|
{
|
|
38625
39000
|
const { left: a, right: o, splitAxis: c } = e, l = s + mn;
|
|
38626
|
-
let h =
|
|
39001
|
+
let h = od(l, a);
|
|
38627
39002
|
const u = s / mn, d = h / mn - u;
|
|
38628
|
-
if (d >
|
|
39003
|
+
if (d > Qw)
|
|
38629
39004
|
throw new Error("MeshBVH: Cannot store relative child node offset greater than 32 bits.");
|
|
38630
|
-
return Ul[t + 6] = d, Ul[t + 7] = c,
|
|
39005
|
+
return Ul[t + 6] = d, Ul[t + 7] = c, od(h, o);
|
|
38631
39006
|
}
|
|
38632
39007
|
}
|
|
38633
|
-
function
|
|
39008
|
+
function zw(s, e, t, n, i, r) {
|
|
38634
39009
|
const {
|
|
38635
39010
|
maxDepth: a,
|
|
38636
39011
|
verbose: o,
|
|
@@ -38647,10 +39022,10 @@ function Qw(s, e, t, n, i, r) {
|
|
|
38647
39022
|
function A(m, x, _, v = null, S = 0) {
|
|
38648
39023
|
if (!p && S >= a && (p = !0, o && console.warn(`BVH: Max depth of ${a} reached when generating BVH. Consider increasing maxDepth.`)), _ <= c || S >= a)
|
|
38649
39024
|
return g(x + _), m.offset = x, m.count = _, m;
|
|
38650
|
-
const I =
|
|
39025
|
+
const I = Uw(m.boundingData, v, e, x, _, l);
|
|
38651
39026
|
if (I.axis === -1)
|
|
38652
39027
|
return g(x + _), m.offset = x, m.count = _, m;
|
|
38653
|
-
const y =
|
|
39028
|
+
const y = kw(u, f, e, x, _, I);
|
|
38654
39029
|
if (y === x || y === x + _)
|
|
38655
39030
|
g(x + _), m.offset = x, m.count = _;
|
|
38656
39031
|
else {
|
|
@@ -38663,14 +39038,14 @@ function Qw(s, e, t, n, i, r) {
|
|
|
38663
39038
|
return m;
|
|
38664
39039
|
}
|
|
38665
39040
|
}
|
|
38666
|
-
function
|
|
39041
|
+
function Hw(s, e) {
|
|
38667
39042
|
const t = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = s.getRootRanges(e.range), i = n[0], r = n[n.length - 1], a = {
|
|
38668
39043
|
offset: i.offset,
|
|
38669
39044
|
count: r.offset + r.count - i.offset
|
|
38670
39045
|
}, o = new Float32Array(6 * a.count);
|
|
38671
39046
|
o.offset = a.offset, s.computePrimitiveBounds(a.offset, a.count, o), s._roots = n.map((c) => {
|
|
38672
|
-
const l =
|
|
38673
|
-
return
|
|
39047
|
+
const l = zw(s, o, c.offset, c.count, e, a), h = ad(l), u = new t(mn * h);
|
|
39048
|
+
return Gw(0, l, u), u;
|
|
38674
39049
|
});
|
|
38675
39050
|
}
|
|
38676
39051
|
class rp {
|
|
@@ -38685,7 +39060,7 @@ class rp {
|
|
|
38685
39060
|
this._primitives.push(e);
|
|
38686
39061
|
}
|
|
38687
39062
|
}
|
|
38688
|
-
class
|
|
39063
|
+
class Vw {
|
|
38689
39064
|
constructor() {
|
|
38690
39065
|
this.float32Array = null, this.uint16Array = null, this.uint32Array = null;
|
|
38691
39066
|
const e = [];
|
|
@@ -38697,17 +39072,17 @@ class zw {
|
|
|
38697
39072
|
};
|
|
38698
39073
|
}
|
|
38699
39074
|
}
|
|
38700
|
-
const Mt = /* @__PURE__ */ new
|
|
39075
|
+
const Mt = /* @__PURE__ */ new Vw();
|
|
38701
39076
|
let gs, fa;
|
|
38702
39077
|
const ta = [], hl = /* @__PURE__ */ new rp(() => new vt());
|
|
38703
|
-
function
|
|
39078
|
+
function Ww(s, e, t, n, i, r) {
|
|
38704
39079
|
gs = hl.getPrimitive(), fa = hl.getPrimitive(), ta.push(gs, fa), Mt.setBuffer(s._roots[e]);
|
|
38705
|
-
const a =
|
|
39080
|
+
const a = cd(0, s.geometry, t, n, i, r);
|
|
38706
39081
|
Mt.clearBuffer(), hl.releasePrimitive(gs), hl.releasePrimitive(fa), ta.pop(), ta.pop();
|
|
38707
39082
|
const o = ta.length;
|
|
38708
39083
|
return o > 0 && (fa = ta[o - 1], gs = ta[o - 2]), a;
|
|
38709
39084
|
}
|
|
38710
|
-
function
|
|
39085
|
+
function cd(s, e, t, n, i = null, r = 0, a = 0) {
|
|
38711
39086
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt;
|
|
38712
39087
|
let h = s * 2;
|
|
38713
39088
|
if (Xt(h, c)) {
|
|
@@ -38741,7 +39116,7 @@ function ad(s, e, t, n, i = null, r = 0, a = 0) {
|
|
|
38741
39116
|
const B = w(p), L = C(p) - B;
|
|
38742
39117
|
S = n(B, L, !0, a + 1, r + p / qt, m);
|
|
38743
39118
|
} else
|
|
38744
|
-
S = v &&
|
|
39119
|
+
S = v && cd(
|
|
38745
39120
|
p,
|
|
38746
39121
|
e,
|
|
38747
39122
|
t,
|
|
@@ -38758,7 +39133,7 @@ function ad(s, e, t, n, i = null, r = 0, a = 0) {
|
|
|
38758
39133
|
const B = w(b), L = C(b) - B;
|
|
38759
39134
|
E = n(B, L, !0, a + 1, r + b / qt, x);
|
|
38760
39135
|
} else
|
|
38761
|
-
E = y &&
|
|
39136
|
+
E = y && cd(
|
|
38762
39137
|
b,
|
|
38763
39138
|
e,
|
|
38764
39139
|
t,
|
|
@@ -38772,7 +39147,7 @@ function ad(s, e, t, n, i = null, r = 0, a = 0) {
|
|
|
38772
39147
|
}
|
|
38773
39148
|
const vo = /* @__PURE__ */ new Mt.constructor(), gh = /* @__PURE__ */ new Mt.constructor(), us = /* @__PURE__ */ new rp(() => new vt()), na = /* @__PURE__ */ new vt(), ia = /* @__PURE__ */ new vt(), Af = /* @__PURE__ */ new vt(), gf = /* @__PURE__ */ new vt();
|
|
38774
39149
|
let mf = !1;
|
|
38775
|
-
function
|
|
39150
|
+
function qw(s, e, t, n) {
|
|
38776
39151
|
if (mf)
|
|
38777
39152
|
throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");
|
|
38778
39153
|
mf = !0;
|
|
@@ -38985,15 +39360,15 @@ function ai(s, e, t, n, i, r = 0, a = 0, o = 0, c = 0, l = null, h = !1) {
|
|
|
38985
39360
|
return I;
|
|
38986
39361
|
}
|
|
38987
39362
|
const fg = /* @__PURE__ */ new vt(), sa = /* @__PURE__ */ new Float32Array(6);
|
|
38988
|
-
class
|
|
39363
|
+
class Xw {
|
|
38989
39364
|
constructor() {
|
|
38990
39365
|
this._roots = null, this.primitiveBuffer = null, this.primitiveBufferStride = null;
|
|
38991
39366
|
}
|
|
38992
39367
|
init(e) {
|
|
38993
39368
|
e = {
|
|
38994
|
-
...
|
|
39369
|
+
...Fb,
|
|
38995
39370
|
...e
|
|
38996
|
-
},
|
|
39371
|
+
}, Hw(this, e);
|
|
38997
39372
|
}
|
|
38998
39373
|
getRootRanges() {
|
|
38999
39374
|
throw new Error("BVH: getRootRanges() not implemented");
|
|
@@ -39133,7 +39508,7 @@ class Ww {
|
|
|
39133
39508
|
const h = this._roots;
|
|
39134
39509
|
for (let u = 0, f = h.length; u < f; u++) {
|
|
39135
39510
|
const d = h[u];
|
|
39136
|
-
if (c =
|
|
39511
|
+
if (c = Ww(this, u, n, i, t, l), c)
|
|
39137
39512
|
break;
|
|
39138
39513
|
l += d.byteLength / mn;
|
|
39139
39514
|
}
|
|
@@ -39152,10 +39527,10 @@ class Ww {
|
|
|
39152
39527
|
*/
|
|
39153
39528
|
bvhcast(e, t, n) {
|
|
39154
39529
|
let { intersectsRanges: i } = n;
|
|
39155
|
-
return
|
|
39530
|
+
return qw(this, e, t, i);
|
|
39156
39531
|
}
|
|
39157
39532
|
}
|
|
39158
|
-
function
|
|
39533
|
+
function jw() {
|
|
39159
39534
|
return typeof SharedArrayBuffer < "u";
|
|
39160
39535
|
}
|
|
39161
39536
|
function ap(s) {
|
|
@@ -39164,32 +39539,32 @@ function ap(s) {
|
|
|
39164
39539
|
function ou(s) {
|
|
39165
39540
|
return ap(s) / 3;
|
|
39166
39541
|
}
|
|
39167
|
-
function
|
|
39542
|
+
function Kw(s, e = ArrayBuffer) {
|
|
39168
39543
|
return s > 65535 ? new Uint32Array(new e(4 * s)) : new Uint16Array(new e(2 * s));
|
|
39169
39544
|
}
|
|
39170
|
-
function
|
|
39545
|
+
function Yw(s, e) {
|
|
39171
39546
|
if (!s.index) {
|
|
39172
|
-
const t = s.attributes.position.count, n = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, i =
|
|
39547
|
+
const t = s.attributes.position.count, n = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, i = Kw(t, n);
|
|
39173
39548
|
s.setIndex(new ot(i, 1));
|
|
39174
39549
|
for (let r = 0; r < t; r++)
|
|
39175
39550
|
i[r] = r;
|
|
39176
39551
|
}
|
|
39177
39552
|
}
|
|
39178
|
-
function
|
|
39553
|
+
function Jw(s, e, t) {
|
|
39179
39554
|
const n = ap(s) / t, i = e || s.drawRange, r = i.start / t, a = (i.start + i.count) / t, o = Math.max(0, r), c = Math.min(n, a) - o;
|
|
39180
39555
|
return {
|
|
39181
39556
|
offset: Math.floor(o),
|
|
39182
39557
|
count: Math.floor(c)
|
|
39183
39558
|
};
|
|
39184
39559
|
}
|
|
39185
|
-
function
|
|
39560
|
+
function Zw(s, e) {
|
|
39186
39561
|
return s.groups.map((t) => ({
|
|
39187
39562
|
offset: t.start / e,
|
|
39188
39563
|
count: t.count / e
|
|
39189
39564
|
}));
|
|
39190
39565
|
}
|
|
39191
39566
|
function dg(s, e, t) {
|
|
39192
|
-
const n =
|
|
39567
|
+
const n = Jw(s, e, t), i = Zw(s, t);
|
|
39193
39568
|
if (!i.length)
|
|
39194
39569
|
return [n];
|
|
39195
39570
|
const r = [], a = n.offset, o = n.offset + n.count, c = ap(s) / t, l = [];
|
|
@@ -39208,7 +39583,7 @@ function dg(s, e, t) {
|
|
|
39208
39583
|
}
|
|
39209
39584
|
return r;
|
|
39210
39585
|
}
|
|
39211
|
-
function
|
|
39586
|
+
function $w(s, e) {
|
|
39212
39587
|
const t = s[s.length - 1], n = t.offset + t.count > 2 ** 16, i = s.reduce((l, h) => l + h.count, 0), r = n ? 4 : 2, a = e ? new SharedArrayBuffer(i * r) : new ArrayBuffer(i * r), o = n ? new Uint32Array(a) : new Uint16Array(a);
|
|
39213
39588
|
let c = 0;
|
|
39214
39589
|
for (let l = 0; l < s.length; l++) {
|
|
@@ -39219,7 +39594,7 @@ function Jw(s, e) {
|
|
|
39219
39594
|
}
|
|
39220
39595
|
return o;
|
|
39221
39596
|
}
|
|
39222
|
-
class
|
|
39597
|
+
class eT extends Xw {
|
|
39223
39598
|
/**
|
|
39224
39599
|
* Whether the BVH was built in indirect mode.
|
|
39225
39600
|
* @type {boolean}
|
|
@@ -39246,20 +39621,20 @@ class Zw extends Ww {
|
|
|
39246
39621
|
if (e.index && e.index.isInterleavedBufferAttribute)
|
|
39247
39622
|
throw new Error("BVH: InterleavedBufferAttribute is not supported for the index attribute.");
|
|
39248
39623
|
} else throw new Error("BVH: Only BufferGeometries are supported.");
|
|
39249
|
-
if (t.useSharedArrayBuffer && !
|
|
39624
|
+
if (t.useSharedArrayBuffer && !jw())
|
|
39250
39625
|
throw new Error("BVH: SharedArrayBuffer is not available.");
|
|
39251
39626
|
super(), this.geometry = e, this.resolvePrimitiveIndex = t.indirect ? (n) => this._indirectBuffer[n] : (n) => n, this.primitiveBuffer = null, this.primitiveBufferStride = null, this._indirectBuffer = null, t = {
|
|
39252
|
-
...
|
|
39627
|
+
...Fb,
|
|
39253
39628
|
...t
|
|
39254
39629
|
}, t[ip] || this.init(t);
|
|
39255
39630
|
}
|
|
39256
39631
|
init(e) {
|
|
39257
39632
|
const { geometry: t, primitiveStride: n } = this;
|
|
39258
39633
|
if (e.indirect) {
|
|
39259
|
-
const i = dg(t, e.range, n), r =
|
|
39634
|
+
const i = dg(t, e.range, n), r = $w(i, e.useSharedArrayBuffer);
|
|
39260
39635
|
this._indirectBuffer = r;
|
|
39261
39636
|
} else
|
|
39262
|
-
|
|
39637
|
+
Yw(t, e);
|
|
39263
39638
|
super.init(e), !t.boundingBox && e.setBoundingBox && (t.boundingBox = this.getBoundingBox(new vt()));
|
|
39264
39639
|
}
|
|
39265
39640
|
// Abstract methods to be implemented by subclasses
|
|
@@ -39309,7 +39684,7 @@ Yi.prototype.setFromBox = /* @__PURE__ */ (function() {
|
|
|
39309
39684
|
this.min = a, this.max = o;
|
|
39310
39685
|
};
|
|
39311
39686
|
})();
|
|
39312
|
-
const
|
|
39687
|
+
const tT = /* @__PURE__ */ (function() {
|
|
39313
39688
|
const s = /* @__PURE__ */ new T(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new T();
|
|
39314
39689
|
return function(i, r, a) {
|
|
39315
39690
|
const o = i.start, c = s, l = r.start, h = e;
|
|
@@ -39321,7 +39696,7 @@ const $w = /* @__PURE__ */ (function() {
|
|
|
39321
39696
|
})(), op = /* @__PURE__ */ (function() {
|
|
39322
39697
|
const s = /* @__PURE__ */ new Y(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new T();
|
|
39323
39698
|
return function(i, r, a, o) {
|
|
39324
|
-
|
|
39699
|
+
tT(i, r, s);
|
|
39325
39700
|
let c = s.x, l = s.y;
|
|
39326
39701
|
if (c >= 0 && c <= 1 && l >= 0 && l <= 1) {
|
|
39327
39702
|
i.at(c, a), r.at(l, o);
|
|
@@ -39347,7 +39722,7 @@ const $w = /* @__PURE__ */ (function() {
|
|
|
39347
39722
|
}
|
|
39348
39723
|
}
|
|
39349
39724
|
};
|
|
39350
|
-
})(),
|
|
39725
|
+
})(), nT = /* @__PURE__ */ (function() {
|
|
39351
39726
|
const s = /* @__PURE__ */ new T(), e = /* @__PURE__ */ new T(), t = /* @__PURE__ */ new jn(), n = /* @__PURE__ */ new zn();
|
|
39352
39727
|
return function(r, a) {
|
|
39353
39728
|
const { radius: o, center: c } = r, { a: l, b: h, c: u } = a;
|
|
@@ -39359,7 +39734,7 @@ const $w = /* @__PURE__ */ (function() {
|
|
|
39359
39734
|
}
|
|
39360
39735
|
return !1;
|
|
39361
39736
|
};
|
|
39362
|
-
})(),
|
|
39737
|
+
})(), iT = ["x", "y", "z"], Hi = 1e-15, pg = Hi * Hi;
|
|
39363
39738
|
function Wn(s) {
|
|
39364
39739
|
return Math.abs(s) < Hi;
|
|
39365
39740
|
}
|
|
@@ -39373,7 +39748,7 @@ class Zn extends mt {
|
|
|
39373
39748
|
* @returns {boolean}
|
|
39374
39749
|
*/
|
|
39375
39750
|
intersectsSphere(e) {
|
|
39376
|
-
return
|
|
39751
|
+
return nT(e, this);
|
|
39377
39752
|
}
|
|
39378
39753
|
update() {
|
|
39379
39754
|
const e = this.a, t = this.b, n = this.c, i = this.points, r = this.satAxes, a = this.satBounds, o = r[0], c = a[0];
|
|
@@ -39492,7 +39867,7 @@ Zn.prototype.intersectsTriangle = /* @__PURE__ */ (function() {
|
|
|
39492
39867
|
let $ = 0, Z = Math.abs(ie.x);
|
|
39493
39868
|
const ge = Math.abs(ie.y);
|
|
39494
39869
|
ge > Z && (Z = ge, $ = 1), Math.abs(ie.z) > Z && ($ = 2);
|
|
39495
|
-
const tt =
|
|
39870
|
+
const tt = iT[$], K = this.a[tt], ae = this.b[tt], oe = this.c[tt], Re = _.a[tt], we = _.b[tt], He = _.c[tt];
|
|
39496
39871
|
if (p(this, K, ae, oe, D, L, w, C, B, h, o))
|
|
39497
39872
|
return f(this, _, v, S);
|
|
39498
39873
|
if (p(_, Re, we, He, J, z, F, U, O, u, c))
|
|
@@ -39669,13 +40044,13 @@ Tn.prototype.distanceToBox = /* @__PURE__ */ (function() {
|
|
|
39669
40044
|
return Math.sqrt(p);
|
|
39670
40045
|
};
|
|
39671
40046
|
})();
|
|
39672
|
-
class
|
|
40047
|
+
class sT extends rp {
|
|
39673
40048
|
constructor() {
|
|
39674
40049
|
super(() => new Zn());
|
|
39675
40050
|
}
|
|
39676
40051
|
}
|
|
39677
|
-
const Yn = /* @__PURE__ */ new
|
|
39678
|
-
function
|
|
40052
|
+
const Yn = /* @__PURE__ */ new sT(), Ja = /* @__PURE__ */ new T(), bf = /* @__PURE__ */ new T();
|
|
40053
|
+
function rT(s, e, t = {}, n = 0, i = 1 / 0) {
|
|
39679
40054
|
const r = n * n, a = i * i;
|
|
39680
40055
|
let o = 1 / 0, c = null;
|
|
39681
40056
|
if (s.shapecast(
|
|
@@ -39692,8 +40067,8 @@ function iT(s, e, t = {}, n = 0, i = 1 / 0) {
|
|
|
39692
40067
|
const l = Math.sqrt(o);
|
|
39693
40068
|
return t.point ? t.point.copy(bf) : t.point = bf.clone(), t.distance = l, t.faceIndex = c, t;
|
|
39694
40069
|
}
|
|
39695
|
-
const ul = parseInt("183") >= 169,
|
|
39696
|
-
function
|
|
40070
|
+
const ul = parseInt("183") >= 169, aT = parseInt("183") <= 161, Xs = /* @__PURE__ */ new T(), js = /* @__PURE__ */ new T(), Ks = /* @__PURE__ */ new T(), fl = /* @__PURE__ */ new Y(), dl = /* @__PURE__ */ new Y(), pl = /* @__PURE__ */ new Y(), Ag = /* @__PURE__ */ new T(), gg = /* @__PURE__ */ new T(), mg = /* @__PURE__ */ new T(), Za = /* @__PURE__ */ new T();
|
|
40071
|
+
function oT(s, e, t, n, i, r, a, o) {
|
|
39697
40072
|
let c;
|
|
39698
40073
|
if (r === cn ? c = s.intersectTriangle(n, t, e, !0, i) : c = s.intersectTriangle(e, t, n, r !== En, i), c === null) return null;
|
|
39699
40074
|
const l = s.origin.distanceTo(i);
|
|
@@ -39704,7 +40079,7 @@ function rT(s, e, t, n, i, r, a, o) {
|
|
|
39704
40079
|
}
|
|
39705
40080
|
function bg(s, e, t, n, i, r, a, o, c, l, h) {
|
|
39706
40081
|
Xs.fromBufferAttribute(e, r), js.fromBufferAttribute(e, a), Ks.fromBufferAttribute(e, o);
|
|
39707
|
-
const u =
|
|
40082
|
+
const u = oT(s, Xs, js, Ks, Za, c, l, h);
|
|
39708
40083
|
if (u) {
|
|
39709
40084
|
if (n) {
|
|
39710
40085
|
fl.fromBufferAttribute(n, r), dl.fromBufferAttribute(n, a), pl.fromBufferAttribute(n, o), u.uv = new Y();
|
|
@@ -39714,7 +40089,7 @@ function bg(s, e, t, n, i, r, a, o, c, l, h) {
|
|
|
39714
40089
|
if (i) {
|
|
39715
40090
|
fl.fromBufferAttribute(i, r), dl.fromBufferAttribute(i, a), pl.fromBufferAttribute(i, o), u.uv1 = new Y();
|
|
39716
40091
|
const d = mt.getInterpolation(Za, Xs, js, Ks, fl, dl, pl, u.uv1);
|
|
39717
|
-
ul || (u.uv1 = d),
|
|
40092
|
+
ul || (u.uv1 = d), aT && (u.uv2 = u.uv1);
|
|
39718
40093
|
}
|
|
39719
40094
|
if (t) {
|
|
39720
40095
|
Ag.fromBufferAttribute(t, r), gg.fromBufferAttribute(t, a), mg.fromBufferAttribute(t, o), u.normal = new T();
|
|
@@ -39772,12 +40147,12 @@ function zt(s, e, t, n) {
|
|
|
39772
40147
|
let o = e, c = e + 1, l = e + 2;
|
|
39773
40148
|
t && (o = t.getX(o), c = t.getX(c), l = t.getX(l)), i.x = n.getX(o), i.y = n.getY(o), i.z = n.getZ(o), r.x = n.getX(c), r.y = n.getY(c), r.z = n.getZ(c), a.x = n.getX(l), a.y = n.getY(l), a.z = n.getZ(l);
|
|
39774
40149
|
}
|
|
39775
|
-
function
|
|
40150
|
+
function cT(s, e, t, n, i, r, a, o) {
|
|
39776
40151
|
const { geometry: c, _indirectBuffer: l } = s;
|
|
39777
40152
|
for (let h = n, u = n + i; h < u; h++)
|
|
39778
40153
|
cu(c, e, t, h, r, a, o);
|
|
39779
40154
|
}
|
|
39780
|
-
function
|
|
40155
|
+
function lT(s, e, t, n, i, r, a) {
|
|
39781
40156
|
const { geometry: o, _indirectBuffer: c } = s;
|
|
39782
40157
|
let l = 1 / 0, h = null;
|
|
39783
40158
|
for (let u = n, f = n + i; u < f; u++) {
|
|
@@ -39786,7 +40161,7 @@ function oT(s, e, t, n, i, r, a) {
|
|
|
39786
40161
|
}
|
|
39787
40162
|
return h;
|
|
39788
40163
|
}
|
|
39789
|
-
function
|
|
40164
|
+
function hT(s, e, t, n, i, r, a) {
|
|
39790
40165
|
const { geometry: o } = t, { index: c } = o, l = o.attributes.position;
|
|
39791
40166
|
for (let h = s, u = e + s; h < u; h++) {
|
|
39792
40167
|
let f;
|
|
@@ -39795,7 +40170,7 @@ function cT(s, e, t, n, i, r, a) {
|
|
|
39795
40170
|
}
|
|
39796
40171
|
return !1;
|
|
39797
40172
|
}
|
|
39798
|
-
function
|
|
40173
|
+
function uT(s, e = null) {
|
|
39799
40174
|
e && Array.isArray(e) && (e = new Set(e));
|
|
39800
40175
|
const t = s.geometry, n = t.index ? t.index.array : null, i = t.attributes.position;
|
|
39801
40176
|
let r, a, o, c, l = 0;
|
|
@@ -39844,14 +40219,14 @@ function Ms(s, e, t, n, i) {
|
|
|
39844
40219
|
let A = e[s], m = e[s + 3], x = e[s + 1], _ = e[s + 3 + 1], v = e[s + 2], S = e[s + 3 + 2];
|
|
39845
40220
|
return u >= 0 ? (r = (A - p) * u, a = (m - p) * u) : (r = (m - p) * u, a = (A - p) * u), f >= 0 ? (o = (x - b) * f, c = (_ - b) * f) : (o = (_ - b) * f, c = (x - b) * f), r > c || o > a || ((o > r || isNaN(r)) && (r = o), (c < a || isNaN(a)) && (a = c), d >= 0 ? (l = (v - g) * d, h = (S - g) * d) : (l = (S - g) * d, h = (v - g) * d), r > h || l > a) ? !1 : ((l > r || r !== r) && (r = l), (h < a || a !== a) && (a = h), r <= i && a >= n);
|
|
39846
40221
|
}
|
|
39847
|
-
function
|
|
40222
|
+
function fT(s, e, t, n, i, r, a, o) {
|
|
39848
40223
|
const { geometry: c, _indirectBuffer: l } = s;
|
|
39849
40224
|
for (let h = n, u = n + i; h < u; h++) {
|
|
39850
40225
|
let f = l ? l[h] : h;
|
|
39851
40226
|
cu(c, e, t, f, r, a, o);
|
|
39852
40227
|
}
|
|
39853
40228
|
}
|
|
39854
|
-
function
|
|
40229
|
+
function dT(s, e, t, n, i, r, a) {
|
|
39855
40230
|
const { geometry: o, _indirectBuffer: c } = s;
|
|
39856
40231
|
let l = 1 / 0, h = null;
|
|
39857
40232
|
for (let u = n, f = n + i; u < f; u++) {
|
|
@@ -39860,7 +40235,7 @@ function uT(s, e, t, n, i, r, a) {
|
|
|
39860
40235
|
}
|
|
39861
40236
|
return h;
|
|
39862
40237
|
}
|
|
39863
|
-
function
|
|
40238
|
+
function pT(s, e, t, n, i, r, a) {
|
|
39864
40239
|
const { geometry: o } = t, { index: c } = o, l = o.attributes.position;
|
|
39865
40240
|
for (let h = s, u = e + s; h < u; h++) {
|
|
39866
40241
|
let f;
|
|
@@ -39869,38 +40244,38 @@ function fT(s, e, t, n, i, r, a) {
|
|
|
39869
40244
|
}
|
|
39870
40245
|
return !1;
|
|
39871
40246
|
}
|
|
39872
|
-
function
|
|
39873
|
-
Mt.setBuffer(s._roots[e]),
|
|
40247
|
+
function AT(s, e, t, n, i, r, a) {
|
|
40248
|
+
Mt.setBuffer(s._roots[e]), ld(0, s, t, n, i, r, a), Mt.clearBuffer();
|
|
39874
40249
|
}
|
|
39875
|
-
function
|
|
40250
|
+
function ld(s, e, t, n, i, r, a) {
|
|
39876
40251
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt, h = s * 2;
|
|
39877
40252
|
if (Xt(h, c)) {
|
|
39878
40253
|
const f = bn(s, l), d = Cn(h, c);
|
|
39879
|
-
|
|
40254
|
+
cT(e, t, n, f, d, i, r, a);
|
|
39880
40255
|
} else {
|
|
39881
40256
|
const f = nn(s);
|
|
39882
|
-
Ms(f, o, n, r, a) &&
|
|
40257
|
+
Ms(f, o, n, r, a) && ld(f, e, t, n, i, r, a);
|
|
39883
40258
|
const d = sn(s, l);
|
|
39884
|
-
Ms(d, o, n, r, a) &&
|
|
40259
|
+
Ms(d, o, n, r, a) && ld(d, e, t, n, i, r, a);
|
|
39885
40260
|
}
|
|
39886
40261
|
}
|
|
39887
|
-
const
|
|
39888
|
-
function
|
|
40262
|
+
const gT = ["x", "y", "z"];
|
|
40263
|
+
function mT(s, e, t, n, i, r) {
|
|
39889
40264
|
Mt.setBuffer(s._roots[e]);
|
|
39890
|
-
const a =
|
|
40265
|
+
const a = hd(0, s, t, n, i, r);
|
|
39891
40266
|
return Mt.clearBuffer(), a;
|
|
39892
40267
|
}
|
|
39893
|
-
function
|
|
40268
|
+
function hd(s, e, t, n, i, r) {
|
|
39894
40269
|
const { float32Array: a, uint16Array: o, uint32Array: c } = Mt;
|
|
39895
40270
|
let l = s * 2;
|
|
39896
40271
|
if (Xt(l, o)) {
|
|
39897
40272
|
const u = bn(s, c), f = Cn(l, o);
|
|
39898
|
-
return
|
|
40273
|
+
return lT(e, t, n, u, f, i, r);
|
|
39899
40274
|
} else {
|
|
39900
|
-
const u = sp(s, c), f =
|
|
40275
|
+
const u = sp(s, c), f = gT[u], p = n.direction[f] >= 0;
|
|
39901
40276
|
let b, g;
|
|
39902
40277
|
p ? (b = nn(s), g = sn(s, c)) : (b = sn(s, c), g = nn(s));
|
|
39903
|
-
const m = Ms(b, a, n, i, r) ?
|
|
40278
|
+
const m = Ms(b, a, n, i, r) ? hd(b, e, t, n, i, r) : null;
|
|
39904
40279
|
if (m) {
|
|
39905
40280
|
const v = m.point[f];
|
|
39906
40281
|
if (p ? v <= a[g + u] : (
|
|
@@ -39909,17 +40284,17 @@ function cd(s, e, t, n, i, r) {
|
|
|
39909
40284
|
))
|
|
39910
40285
|
return m;
|
|
39911
40286
|
}
|
|
39912
|
-
const _ = Ms(g, a, n, i, r) ?
|
|
40287
|
+
const _ = Ms(g, a, n, i, r) ? hd(g, e, t, n, i, r) : null;
|
|
39913
40288
|
return m && _ ? m.distance <= _.distance ? m : _ : m || _ || null;
|
|
39914
40289
|
}
|
|
39915
40290
|
}
|
|
39916
40291
|
const Al = /* @__PURE__ */ new vt(), ra = /* @__PURE__ */ new Zn(), aa = /* @__PURE__ */ new Zn(), $a = /* @__PURE__ */ new ve(), _g = /* @__PURE__ */ new Tn(), gl = /* @__PURE__ */ new Tn();
|
|
39917
|
-
function
|
|
40292
|
+
function bT(s, e, t, n) {
|
|
39918
40293
|
Mt.setBuffer(s._roots[e]);
|
|
39919
|
-
const i =
|
|
40294
|
+
const i = ud(0, s, t, n);
|
|
39920
40295
|
return Mt.clearBuffer(), i;
|
|
39921
40296
|
}
|
|
39922
|
-
function
|
|
40297
|
+
function ud(s, e, t, n, i = null) {
|
|
39923
40298
|
const { float32Array: r, uint16Array: a, uint32Array: o } = Mt;
|
|
39924
40299
|
let c = s * 2;
|
|
39925
40300
|
if (i === null && (t.boundingBox || t.computeBoundingBox(), _g.set(t.boundingBox.min, t.boundingBox.max, n), i = _g), Xt(c, a)) {
|
|
@@ -39946,15 +40321,15 @@ function ld(s, e, t, n, i = null) {
|
|
|
39946
40321
|
}
|
|
39947
40322
|
} else {
|
|
39948
40323
|
const h = nn(s), u = sn(s, o);
|
|
39949
|
-
return Ft(h, r, Al), !!(i.intersectsBox(Al) &&
|
|
40324
|
+
return Ft(h, r, Al), !!(i.intersectsBox(Al) && ud(h, e, t, n, i) || (Ft(u, r, Al), i.intersectsBox(Al) && ud(u, e, t, n, i)));
|
|
39950
40325
|
}
|
|
39951
40326
|
}
|
|
39952
|
-
const ml = /* @__PURE__ */ new ve(), xf = /* @__PURE__ */ new Tn(), eo = /* @__PURE__ */ new Tn(),
|
|
39953
|
-
function
|
|
40327
|
+
const ml = /* @__PURE__ */ new ve(), xf = /* @__PURE__ */ new Tn(), eo = /* @__PURE__ */ new Tn(), xT = /* @__PURE__ */ new T(), _T = /* @__PURE__ */ new T(), yT = /* @__PURE__ */ new T(), vT = /* @__PURE__ */ new T();
|
|
40328
|
+
function ET(s, e, t, n = {}, i = {}, r = 0, a = 1 / 0) {
|
|
39954
40329
|
e.boundingBox || e.computeBoundingBox(), xf.set(e.boundingBox.min, e.boundingBox.max, t), xf.needsUpdate = !0;
|
|
39955
40330
|
const o = s.geometry, c = o.attributes.position, l = o.index, h = e.attributes.position, u = e.index, f = Yn.getPrimitive(), d = Yn.getPrimitive();
|
|
39956
|
-
let p =
|
|
39957
|
-
i && (g =
|
|
40331
|
+
let p = xT, b = _T, g = null, A = null;
|
|
40332
|
+
i && (g = yT, A = vT);
|
|
39958
40333
|
let m = 1 / 0, x = null, _ = null;
|
|
39959
40334
|
return ml.copy(t).invert(), eo.matrix.copy(ml), s.shapecast(
|
|
39960
40335
|
{
|
|
@@ -39993,7 +40368,7 @@ function yT(s, e, t, n = {}, i = {}, r = 0, a = 1 / 0) {
|
|
|
39993
40368
|
}
|
|
39994
40369
|
), Yn.releasePrimitive(f), Yn.releasePrimitive(d), m === 1 / 0 ? null : (n.point ? n.point.copy(b) : n.point = b.clone(), n.distance = m, n.faceIndex = x, i && (i.point ? i.point.copy(A) : i.point = A.clone(), i.point.applyMatrix4(ml), b.applyMatrix4(ml), i.distance = b.sub(i.point).length(), i.faceIndex = _), n);
|
|
39995
40370
|
}
|
|
39996
|
-
function
|
|
40371
|
+
function ST(s, e = null) {
|
|
39997
40372
|
e && Array.isArray(e) && (e = new Set(e));
|
|
39998
40373
|
const t = s.geometry, n = t.index ? t.index.array : null, i = t.attributes.position;
|
|
39999
40374
|
let r, a, o, c, l = 0;
|
|
@@ -40040,38 +40415,38 @@ function vT(s, e = null) {
|
|
|
40040
40415
|
}
|
|
40041
40416
|
}
|
|
40042
40417
|
}
|
|
40043
|
-
function
|
|
40044
|
-
Mt.setBuffer(s._roots[e]),
|
|
40418
|
+
function IT(s, e, t, n, i, r, a) {
|
|
40419
|
+
Mt.setBuffer(s._roots[e]), fd(0, s, t, n, i, r, a), Mt.clearBuffer();
|
|
40045
40420
|
}
|
|
40046
|
-
function
|
|
40421
|
+
function fd(s, e, t, n, i, r, a) {
|
|
40047
40422
|
const { float32Array: o, uint16Array: c, uint32Array: l } = Mt, h = s * 2;
|
|
40048
40423
|
if (Xt(h, c)) {
|
|
40049
40424
|
const f = bn(s, l), d = Cn(h, c);
|
|
40050
|
-
|
|
40425
|
+
fT(e, t, n, f, d, i, r, a);
|
|
40051
40426
|
} else {
|
|
40052
40427
|
const f = nn(s);
|
|
40053
|
-
Ms(f, o, n, r, a) &&
|
|
40428
|
+
Ms(f, o, n, r, a) && fd(f, e, t, n, i, r, a);
|
|
40054
40429
|
const d = sn(s, l);
|
|
40055
|
-
Ms(d, o, n, r, a) &&
|
|
40430
|
+
Ms(d, o, n, r, a) && fd(d, e, t, n, i, r, a);
|
|
40056
40431
|
}
|
|
40057
40432
|
}
|
|
40058
|
-
const
|
|
40059
|
-
function
|
|
40433
|
+
const MT = ["x", "y", "z"];
|
|
40434
|
+
function CT(s, e, t, n, i, r) {
|
|
40060
40435
|
Mt.setBuffer(s._roots[e]);
|
|
40061
|
-
const a =
|
|
40436
|
+
const a = dd(0, s, t, n, i, r);
|
|
40062
40437
|
return Mt.clearBuffer(), a;
|
|
40063
40438
|
}
|
|
40064
|
-
function
|
|
40439
|
+
function dd(s, e, t, n, i, r) {
|
|
40065
40440
|
const { float32Array: a, uint16Array: o, uint32Array: c } = Mt;
|
|
40066
40441
|
let l = s * 2;
|
|
40067
40442
|
if (Xt(l, o)) {
|
|
40068
40443
|
const u = bn(s, c), f = Cn(l, o);
|
|
40069
|
-
return
|
|
40444
|
+
return dT(e, t, n, u, f, i, r);
|
|
40070
40445
|
} else {
|
|
40071
|
-
const u = sp(s, c), f =
|
|
40446
|
+
const u = sp(s, c), f = MT[u], p = n.direction[f] >= 0;
|
|
40072
40447
|
let b, g;
|
|
40073
40448
|
p ? (b = nn(s), g = sn(s, c)) : (b = sn(s, c), g = nn(s));
|
|
40074
|
-
const m = Ms(b, a, n, i, r) ?
|
|
40449
|
+
const m = Ms(b, a, n, i, r) ? dd(b, e, t, n, i, r) : null;
|
|
40075
40450
|
if (m) {
|
|
40076
40451
|
const v = m.point[f];
|
|
40077
40452
|
if (p ? v <= a[g + u] : (
|
|
@@ -40080,17 +40455,17 @@ function ud(s, e, t, n, i, r) {
|
|
|
40080
40455
|
))
|
|
40081
40456
|
return m;
|
|
40082
40457
|
}
|
|
40083
|
-
const _ = Ms(g, a, n, i, r) ?
|
|
40458
|
+
const _ = Ms(g, a, n, i, r) ? dd(g, e, t, n, i, r) : null;
|
|
40084
40459
|
return m && _ ? m.distance <= _.distance ? m : _ : m || _ || null;
|
|
40085
40460
|
}
|
|
40086
40461
|
}
|
|
40087
40462
|
const bl = /* @__PURE__ */ new vt(), oa = /* @__PURE__ */ new Zn(), ca = /* @__PURE__ */ new Zn(), to = /* @__PURE__ */ new ve(), yg = /* @__PURE__ */ new Tn(), xl = /* @__PURE__ */ new Tn();
|
|
40088
|
-
function
|
|
40463
|
+
function wT(s, e, t, n) {
|
|
40089
40464
|
Mt.setBuffer(s._roots[e]);
|
|
40090
|
-
const i =
|
|
40465
|
+
const i = pd(0, s, t, n);
|
|
40091
40466
|
return Mt.clearBuffer(), i;
|
|
40092
40467
|
}
|
|
40093
|
-
function
|
|
40468
|
+
function pd(s, e, t, n, i = null) {
|
|
40094
40469
|
const { float32Array: r, uint16Array: a, uint32Array: o } = Mt;
|
|
40095
40470
|
let c = s * 2;
|
|
40096
40471
|
if (i === null && (t.boundingBox || t.computeBoundingBox(), yg.set(t.boundingBox.min, t.boundingBox.max, n), i = yg), Xt(c, a)) {
|
|
@@ -40118,15 +40493,15 @@ function fd(s, e, t, n, i = null) {
|
|
|
40118
40493
|
}
|
|
40119
40494
|
} else {
|
|
40120
40495
|
const h = nn(s), u = sn(s, o);
|
|
40121
|
-
return Ft(h, r, bl), !!(i.intersectsBox(bl) &&
|
|
40496
|
+
return Ft(h, r, bl), !!(i.intersectsBox(bl) && pd(h, e, t, n, i) || (Ft(u, r, bl), i.intersectsBox(bl) && pd(u, e, t, n, i)));
|
|
40122
40497
|
}
|
|
40123
40498
|
}
|
|
40124
|
-
const _l = /* @__PURE__ */ new ve(), _f = /* @__PURE__ */ new Tn(), no = /* @__PURE__ */ new Tn(),
|
|
40125
|
-
function
|
|
40499
|
+
const _l = /* @__PURE__ */ new ve(), _f = /* @__PURE__ */ new Tn(), no = /* @__PURE__ */ new Tn(), TT = /* @__PURE__ */ new T(), BT = /* @__PURE__ */ new T(), RT = /* @__PURE__ */ new T(), DT = /* @__PURE__ */ new T();
|
|
40500
|
+
function PT(s, e, t, n = {}, i = {}, r = 0, a = 1 / 0) {
|
|
40126
40501
|
e.boundingBox || e.computeBoundingBox(), _f.set(e.boundingBox.min, e.boundingBox.max, t), _f.needsUpdate = !0;
|
|
40127
40502
|
const o = s.geometry, c = o.attributes.position, l = o.index, h = e.attributes.position, u = e.index, f = Yn.getPrimitive(), d = Yn.getPrimitive();
|
|
40128
|
-
let p =
|
|
40129
|
-
i && (g =
|
|
40503
|
+
let p = TT, b = BT, g = null, A = null;
|
|
40504
|
+
i && (g = RT, A = DT);
|
|
40130
40505
|
let m = 1 / 0, x = null, _ = null;
|
|
40131
40506
|
return _l.copy(t).invert(), no.matrix.copy(_l), s.shapecast(
|
|
40132
40507
|
{
|
|
@@ -40173,7 +40548,7 @@ function vg(s, e, t) {
|
|
|
40173
40548
|
return s === null ? null : (s.point.applyMatrix4(e.matrixWorld), s.distance = s.point.distanceTo(t.ray.origin), s.object = e, s);
|
|
40174
40549
|
}
|
|
40175
40550
|
const yl = /* @__PURE__ */ new Tn(), vl = /* @__PURE__ */ new Ji(), Eg = /* @__PURE__ */ new T(), Sg = /* @__PURE__ */ new ve(), Ig = /* @__PURE__ */ new T(), yf = ["getX", "getY", "getZ"];
|
|
40176
|
-
class jo extends
|
|
40551
|
+
class jo extends eT {
|
|
40177
40552
|
/**
|
|
40178
40553
|
* Generates a representation of the complete bounds tree and the geometry index buffer which
|
|
40179
40554
|
* can be used to recreate a bounds tree using the `deserialize` function. The `serialize` and
|
|
@@ -40357,7 +40732,7 @@ class jo extends Zw {
|
|
|
40357
40732
|
* @param {Set<number>|Array<number>|null} [nodeIndices=null]
|
|
40358
40733
|
*/
|
|
40359
40734
|
refit(e = null) {
|
|
40360
|
-
return (this.indirect ?
|
|
40735
|
+
return (this.indirect ? ST : uT)(this, e);
|
|
40361
40736
|
}
|
|
40362
40737
|
/* Core Cast Functions */
|
|
40363
40738
|
/**
|
|
@@ -40380,7 +40755,7 @@ class jo extends Zw {
|
|
|
40380
40755
|
* @returns {Array<Intersection>}
|
|
40381
40756
|
*/
|
|
40382
40757
|
raycast(e, t = Gn, n = 0, i = 1 / 0) {
|
|
40383
|
-
const r = this._roots, a = [], o = this.indirect ?
|
|
40758
|
+
const r = this._roots, a = [], o = this.indirect ? IT : AT;
|
|
40384
40759
|
for (let c = 0, l = r.length; c < l; c++)
|
|
40385
40760
|
o(this, c, t, e, a, n, i);
|
|
40386
40761
|
return a;
|
|
@@ -40399,7 +40774,7 @@ class jo extends Zw {
|
|
|
40399
40774
|
raycastFirst(e, t = Gn, n = 0, i = 1 / 0) {
|
|
40400
40775
|
const r = this._roots;
|
|
40401
40776
|
let a = null;
|
|
40402
|
-
const o = this.indirect ?
|
|
40777
|
+
const o = this.indirect ? CT : mT;
|
|
40403
40778
|
for (let c = 0, l = r.length; c < l; c++) {
|
|
40404
40779
|
const h = o(this, c, t, e, n, i);
|
|
40405
40780
|
h != null && (a == null || h.distance < a.distance) && (a = h);
|
|
@@ -40420,7 +40795,7 @@ class jo extends Zw {
|
|
|
40420
40795
|
*/
|
|
40421
40796
|
intersectsGeometry(e, t) {
|
|
40422
40797
|
let n = !1;
|
|
40423
|
-
const i = this._roots, r = this.indirect ?
|
|
40798
|
+
const i = this._roots, r = this.indirect ? wT : bT;
|
|
40424
40799
|
for (let a = 0, o = i.length; a < o && (n = r(this, a, e, t), !n); a++)
|
|
40425
40800
|
;
|
|
40426
40801
|
return n;
|
|
@@ -40446,7 +40821,7 @@ class jo extends Zw {
|
|
|
40446
40821
|
scratchPrimitive: t,
|
|
40447
40822
|
// TODO: is the performance significant enough for the added complexity here?
|
|
40448
40823
|
// can we just use one function?
|
|
40449
|
-
iterate: this.indirect ?
|
|
40824
|
+
iterate: this.indirect ? pT : hT
|
|
40450
40825
|
}
|
|
40451
40826
|
);
|
|
40452
40827
|
return Yn.releasePrimitive(t), n;
|
|
@@ -40557,496 +40932,121 @@ class jo extends Zw {
|
|
|
40557
40932
|
* _Note that this function can be very slow if `geometry` does not have a
|
|
40558
40933
|
* `geometry.boundsTree` computed._
|
|
40559
40934
|
*
|
|
40560
|
-
* @param {BufferGeometry} otherGeometry
|
|
40561
|
-
* @param {Matrix4} geometryToBvh - Transform of `otherGeometry` into the local space of
|
|
40562
|
-
* this BVH.
|
|
40563
|
-
* @param {HitPointInfo} [target1={}]
|
|
40564
|
-
* @param {HitPointInfo} [target2={}]
|
|
40565
|
-
* @param {number} [minThreshold=0]
|
|
40566
|
-
* @param {number} [maxThreshold=Infinity]
|
|
40567
|
-
* @returns {HitPointInfo|null}
|
|
40568
|
-
*/
|
|
40569
|
-
closestPointToGeometry(e, t, n = {}, i = {}, r = 0, a = 1 / 0) {
|
|
40570
|
-
return (this.indirect ? RT : yT)(
|
|
40571
|
-
this,
|
|
40572
|
-
e,
|
|
40573
|
-
t,
|
|
40574
|
-
n,
|
|
40575
|
-
i,
|
|
40576
|
-
r,
|
|
40577
|
-
a
|
|
40578
|
-
);
|
|
40579
|
-
}
|
|
40580
|
-
/**
|
|
40581
|
-
* Computes the closest distance from the point to the mesh and gives additional information
|
|
40582
|
-
* in `target`. The target can be left undefined to default to a new object which is
|
|
40583
|
-
* ultimately returned by the function.
|
|
40584
|
-
*
|
|
40585
|
-
* If a point is found that is closer than `minThreshold` then the function will return that
|
|
40586
|
-
* result early. Any triangles or points outside of `maxThreshold` are ignored. If no point
|
|
40587
|
-
* is found within the min / max thresholds then `null` is returned and the `target` object
|
|
40588
|
-
* is not modified.
|
|
40589
|
-
*
|
|
40590
|
-
* The returned faceIndex can be used with the standalone function `getTriangleHitPointInfo`
|
|
40591
|
-
* to obtain more information like UV coordinates, triangle normal and materialIndex.
|
|
40592
|
-
*
|
|
40593
|
-
* @param {Vector3} point
|
|
40594
|
-
* @param {HitPointInfo} [target={}]
|
|
40935
|
+
* @param {BufferGeometry} otherGeometry
|
|
40936
|
+
* @param {Matrix4} geometryToBvh - Transform of `otherGeometry` into the local space of
|
|
40937
|
+
* this BVH.
|
|
40938
|
+
* @param {HitPointInfo} [target1={}]
|
|
40939
|
+
* @param {HitPointInfo} [target2={}]
|
|
40595
40940
|
* @param {number} [minThreshold=0]
|
|
40596
40941
|
* @param {number} [maxThreshold=Infinity]
|
|
40597
40942
|
* @returns {HitPointInfo|null}
|
|
40598
40943
|
*/
|
|
40599
|
-
|
|
40600
|
-
return
|
|
40944
|
+
closestPointToGeometry(e, t, n = {}, i = {}, r = 0, a = 1 / 0) {
|
|
40945
|
+
return (this.indirect ? PT : ET)(
|
|
40601
40946
|
this,
|
|
40602
40947
|
e,
|
|
40603
40948
|
t,
|
|
40604
40949
|
n,
|
|
40605
|
-
i
|
|
40950
|
+
i,
|
|
40951
|
+
r,
|
|
40952
|
+
a
|
|
40606
40953
|
);
|
|
40607
40954
|
}
|
|
40608
|
-
|
|
40609
|
-
|
|
40610
|
-
|
|
40611
|
-
|
|
40612
|
-
|
|
40613
|
-
|
|
40614
|
-
|
|
40615
|
-
|
|
40616
|
-
|
|
40617
|
-
|
|
40618
|
-
|
|
40619
|
-
|
|
40620
|
-
|
|
40621
|
-
|
|
40622
|
-
|
|
40623
|
-
|
|
40624
|
-
|
|
40625
|
-
|
|
40626
|
-
|
|
40627
|
-
|
|
40628
|
-
|
|
40629
|
-
|
|
40630
|
-
|
|
40631
|
-
|
|
40632
|
-
|
|
40633
|
-
|
|
40634
|
-
|
|
40635
|
-
n = la.Points;
|
|
40636
|
-
else
|
|
40637
|
-
throw new Error("BVH: Fallback raycast function not found.");
|
|
40638
|
-
n.call(this, s, e);
|
|
40639
|
-
}
|
|
40640
|
-
}
|
|
40641
|
-
}
|
|
40642
|
-
function DT(s, e) {
|
|
40643
|
-
if (this.boundsTrees) {
|
|
40644
|
-
const t = this.boundsTrees, n = this._drawInfo || this._instanceInfo, i = this._drawRanges || this._geometryInfo, r = this.matrixWorld;
|
|
40645
|
-
on.material = this.material, on.geometry = this.geometry;
|
|
40646
|
-
const a = on.geometry.boundsTree, o = on.geometry.drawRange;
|
|
40647
|
-
on.geometry.boundingSphere === null && (on.geometry.boundingSphere = new Kt());
|
|
40648
|
-
for (let c = 0, l = n.length; c < l; c++) {
|
|
40649
|
-
if (!this.getVisibleAt(c))
|
|
40650
|
-
continue;
|
|
40651
|
-
const h = n[c].geometryIndex;
|
|
40652
|
-
if (on.geometry.boundsTree = t[h], this.getMatrixAt(c, on.matrixWorld).premultiply(r), !on.geometry.boundsTree) {
|
|
40653
|
-
this.getBoundingBoxAt(h, on.geometry.boundingBox), this.getBoundingSphereAt(h, on.geometry.boundingSphere);
|
|
40654
|
-
const u = i[h];
|
|
40655
|
-
on.geometry.setDrawRange(u.start, u.count);
|
|
40656
|
-
}
|
|
40657
|
-
on.raycast(s, El);
|
|
40658
|
-
for (let u = 0, f = El.length; u < f; u++) {
|
|
40659
|
-
const d = El[u];
|
|
40660
|
-
d.object = this, d.batchId = c, e.push(d);
|
|
40661
|
-
}
|
|
40662
|
-
El.length = 0;
|
|
40663
|
-
}
|
|
40664
|
-
on.geometry.boundsTree = a, on.geometry.drawRange = o, on.material = null, on.geometry = null;
|
|
40665
|
-
} else
|
|
40666
|
-
la.BatchedMesh.call(this, s, e);
|
|
40667
|
-
}
|
|
40668
|
-
function eB(s = {}) {
|
|
40669
|
-
const { type: e = jo } = s;
|
|
40670
|
-
return this.boundsTree = new e(this, s), this.boundsTree;
|
|
40671
|
-
}
|
|
40672
|
-
function tB() {
|
|
40673
|
-
this.boundsTree = null;
|
|
40674
|
-
}
|
|
40675
|
-
var ga = Object.freeze({
|
|
40676
|
-
Linear: Object.freeze({
|
|
40677
|
-
None: function(s) {
|
|
40678
|
-
return s;
|
|
40679
|
-
},
|
|
40680
|
-
In: function(s) {
|
|
40681
|
-
return s;
|
|
40682
|
-
},
|
|
40683
|
-
Out: function(s) {
|
|
40684
|
-
return s;
|
|
40685
|
-
},
|
|
40686
|
-
InOut: function(s) {
|
|
40687
|
-
return s;
|
|
40688
|
-
}
|
|
40689
|
-
}),
|
|
40690
|
-
Quadratic: Object.freeze({
|
|
40691
|
-
In: function(s) {
|
|
40692
|
-
return s * s;
|
|
40693
|
-
},
|
|
40694
|
-
Out: function(s) {
|
|
40695
|
-
return s * (2 - s);
|
|
40696
|
-
},
|
|
40697
|
-
InOut: function(s) {
|
|
40698
|
-
return (s *= 2) < 1 ? 0.5 * s * s : -0.5 * (--s * (s - 2) - 1);
|
|
40699
|
-
}
|
|
40700
|
-
}),
|
|
40701
|
-
Cubic: Object.freeze({
|
|
40702
|
-
In: function(s) {
|
|
40703
|
-
return s * s * s;
|
|
40704
|
-
},
|
|
40705
|
-
Out: function(s) {
|
|
40706
|
-
return --s * s * s + 1;
|
|
40707
|
-
},
|
|
40708
|
-
InOut: function(s) {
|
|
40709
|
-
return (s *= 2) < 1 ? 0.5 * s * s * s : 0.5 * ((s -= 2) * s * s + 2);
|
|
40710
|
-
}
|
|
40711
|
-
}),
|
|
40712
|
-
Quartic: Object.freeze({
|
|
40713
|
-
In: function(s) {
|
|
40714
|
-
return s * s * s * s;
|
|
40715
|
-
},
|
|
40716
|
-
Out: function(s) {
|
|
40717
|
-
return 1 - --s * s * s * s;
|
|
40718
|
-
},
|
|
40719
|
-
InOut: function(s) {
|
|
40720
|
-
return (s *= 2) < 1 ? 0.5 * s * s * s * s : -0.5 * ((s -= 2) * s * s * s - 2);
|
|
40721
|
-
}
|
|
40722
|
-
}),
|
|
40723
|
-
Quintic: Object.freeze({
|
|
40724
|
-
In: function(s) {
|
|
40725
|
-
return s * s * s * s * s;
|
|
40726
|
-
},
|
|
40727
|
-
Out: function(s) {
|
|
40728
|
-
return --s * s * s * s * s + 1;
|
|
40729
|
-
},
|
|
40730
|
-
InOut: function(s) {
|
|
40731
|
-
return (s *= 2) < 1 ? 0.5 * s * s * s * s * s : 0.5 * ((s -= 2) * s * s * s * s + 2);
|
|
40732
|
-
}
|
|
40733
|
-
}),
|
|
40734
|
-
Sinusoidal: Object.freeze({
|
|
40735
|
-
In: function(s) {
|
|
40736
|
-
return 1 - Math.sin((1 - s) * Math.PI / 2);
|
|
40737
|
-
},
|
|
40738
|
-
Out: function(s) {
|
|
40739
|
-
return Math.sin(s * Math.PI / 2);
|
|
40740
|
-
},
|
|
40741
|
-
InOut: function(s) {
|
|
40742
|
-
return 0.5 * (1 - Math.sin(Math.PI * (0.5 - s)));
|
|
40743
|
-
}
|
|
40744
|
-
}),
|
|
40745
|
-
Exponential: Object.freeze({
|
|
40746
|
-
In: function(s) {
|
|
40747
|
-
return s === 0 ? 0 : Math.pow(1024, s - 1);
|
|
40748
|
-
},
|
|
40749
|
-
Out: function(s) {
|
|
40750
|
-
return s === 1 ? 1 : 1 - Math.pow(2, -10 * s);
|
|
40751
|
-
},
|
|
40752
|
-
InOut: function(s) {
|
|
40753
|
-
return s === 0 ? 0 : s === 1 ? 1 : (s *= 2) < 1 ? 0.5 * Math.pow(1024, s - 1) : 0.5 * (-Math.pow(2, -10 * (s - 1)) + 2);
|
|
40754
|
-
}
|
|
40755
|
-
}),
|
|
40756
|
-
Circular: Object.freeze({
|
|
40757
|
-
In: function(s) {
|
|
40758
|
-
return 1 - Math.sqrt(1 - s * s);
|
|
40759
|
-
},
|
|
40760
|
-
Out: function(s) {
|
|
40761
|
-
return Math.sqrt(1 - --s * s);
|
|
40762
|
-
},
|
|
40763
|
-
InOut: function(s) {
|
|
40764
|
-
return (s *= 2) < 1 ? -0.5 * (Math.sqrt(1 - s * s) - 1) : 0.5 * (Math.sqrt(1 - (s -= 2) * s) + 1);
|
|
40765
|
-
}
|
|
40766
|
-
}),
|
|
40767
|
-
Elastic: Object.freeze({
|
|
40768
|
-
In: function(s) {
|
|
40769
|
-
return s === 0 ? 0 : s === 1 ? 1 : -Math.pow(2, 10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI);
|
|
40770
|
-
},
|
|
40771
|
-
Out: function(s) {
|
|
40772
|
-
return s === 0 ? 0 : s === 1 ? 1 : Math.pow(2, -10 * s) * Math.sin((s - 0.1) * 5 * Math.PI) + 1;
|
|
40773
|
-
},
|
|
40774
|
-
InOut: function(s) {
|
|
40775
|
-
return s === 0 ? 0 : s === 1 ? 1 : (s *= 2, s < 1 ? -0.5 * Math.pow(2, 10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI) : 0.5 * Math.pow(2, -10 * (s - 1)) * Math.sin((s - 1.1) * 5 * Math.PI) + 1);
|
|
40776
|
-
}
|
|
40777
|
-
}),
|
|
40778
|
-
Back: Object.freeze({
|
|
40779
|
-
In: function(s) {
|
|
40780
|
-
var e = 1.70158;
|
|
40781
|
-
return s === 1 ? 1 : s * s * ((e + 1) * s - e);
|
|
40782
|
-
},
|
|
40783
|
-
Out: function(s) {
|
|
40784
|
-
var e = 1.70158;
|
|
40785
|
-
return s === 0 ? 0 : --s * s * ((e + 1) * s + e) + 1;
|
|
40786
|
-
},
|
|
40787
|
-
InOut: function(s) {
|
|
40788
|
-
var e = 2.5949095;
|
|
40789
|
-
return (s *= 2) < 1 ? 0.5 * (s * s * ((e + 1) * s - e)) : 0.5 * ((s -= 2) * s * ((e + 1) * s + e) + 2);
|
|
40790
|
-
}
|
|
40791
|
-
}),
|
|
40792
|
-
Bounce: Object.freeze({
|
|
40793
|
-
In: function(s) {
|
|
40794
|
-
return 1 - ga.Bounce.Out(1 - s);
|
|
40795
|
-
},
|
|
40796
|
-
Out: function(s) {
|
|
40797
|
-
return s < 1 / 2.75 ? 7.5625 * s * s : s < 2 / 2.75 ? 7.5625 * (s -= 1.5 / 2.75) * s + 0.75 : s < 2.5 / 2.75 ? 7.5625 * (s -= 2.25 / 2.75) * s + 0.9375 : 7.5625 * (s -= 2.625 / 2.75) * s + 0.984375;
|
|
40798
|
-
},
|
|
40799
|
-
InOut: function(s) {
|
|
40800
|
-
return s < 0.5 ? ga.Bounce.In(s * 2) * 0.5 : ga.Bounce.Out(s * 2 - 1) * 0.5 + 0.5;
|
|
40801
|
-
}
|
|
40802
|
-
}),
|
|
40803
|
-
generatePow: function(s) {
|
|
40804
|
-
return s === void 0 && (s = 4), s = s < Number.EPSILON ? Number.EPSILON : s, s = s > 1e4 ? 1e4 : s, {
|
|
40805
|
-
In: function(e) {
|
|
40806
|
-
return Math.pow(e, s);
|
|
40807
|
-
},
|
|
40808
|
-
Out: function(e) {
|
|
40809
|
-
return 1 - Math.pow(1 - e, s);
|
|
40810
|
-
},
|
|
40811
|
-
InOut: function(e) {
|
|
40812
|
-
return e < 0.5 ? Math.pow(e * 2, s) / 2 : (1 - Math.pow(2 - e * 2, s)) / 2 + 0.5;
|
|
40813
|
-
}
|
|
40814
|
-
};
|
|
40815
|
-
}
|
|
40816
|
-
}), ho = function() {
|
|
40817
|
-
return performance.now();
|
|
40818
|
-
}, PT = (
|
|
40819
|
-
/** @class */
|
|
40820
|
-
(function() {
|
|
40821
|
-
function s() {
|
|
40822
|
-
this._tweens = {}, this._tweensAddedDuringUpdate = {};
|
|
40823
|
-
}
|
|
40824
|
-
return s.prototype.getAll = function() {
|
|
40825
|
-
var e = this;
|
|
40826
|
-
return Object.keys(this._tweens).map(function(t) {
|
|
40827
|
-
return e._tweens[t];
|
|
40828
|
-
});
|
|
40829
|
-
}, s.prototype.removeAll = function() {
|
|
40830
|
-
this._tweens = {};
|
|
40831
|
-
}, s.prototype.add = function(e) {
|
|
40832
|
-
this._tweens[e.getId()] = e, this._tweensAddedDuringUpdate[e.getId()] = e;
|
|
40833
|
-
}, s.prototype.remove = function(e) {
|
|
40834
|
-
delete this._tweens[e.getId()], delete this._tweensAddedDuringUpdate[e.getId()];
|
|
40835
|
-
}, s.prototype.update = function(e, t) {
|
|
40836
|
-
e === void 0 && (e = ho()), t === void 0 && (t = !1);
|
|
40837
|
-
var n = Object.keys(this._tweens);
|
|
40838
|
-
if (n.length === 0)
|
|
40839
|
-
return !1;
|
|
40840
|
-
for (; n.length > 0; ) {
|
|
40841
|
-
this._tweensAddedDuringUpdate = {};
|
|
40842
|
-
for (var i = 0; i < n.length; i++) {
|
|
40843
|
-
var r = this._tweens[n[i]], a = !t;
|
|
40844
|
-
r && r.update(e, a) === !1 && !t && delete this._tweens[n[i]];
|
|
40845
|
-
}
|
|
40846
|
-
n = Object.keys(this._tweensAddedDuringUpdate);
|
|
40847
|
-
}
|
|
40848
|
-
return !0;
|
|
40849
|
-
}, s;
|
|
40850
|
-
})()
|
|
40851
|
-
), dd = {
|
|
40852
|
-
Linear: function(s, e) {
|
|
40853
|
-
var t = s.length - 1, n = t * e, i = Math.floor(n), r = dd.Utils.Linear;
|
|
40854
|
-
return e < 0 ? r(s[0], s[1], n) : e > 1 ? r(s[t], s[t - 1], t - n) : r(s[i], s[i + 1 > t ? t : i + 1], n - i);
|
|
40855
|
-
},
|
|
40856
|
-
Utils: {
|
|
40857
|
-
Linear: function(s, e, t) {
|
|
40858
|
-
return (e - s) * t + s;
|
|
40859
|
-
}
|
|
40955
|
+
/**
|
|
40956
|
+
* Computes the closest distance from the point to the mesh and gives additional information
|
|
40957
|
+
* in `target`. The target can be left undefined to default to a new object which is
|
|
40958
|
+
* ultimately returned by the function.
|
|
40959
|
+
*
|
|
40960
|
+
* If a point is found that is closer than `minThreshold` then the function will return that
|
|
40961
|
+
* result early. Any triangles or points outside of `maxThreshold` are ignored. If no point
|
|
40962
|
+
* is found within the min / max thresholds then `null` is returned and the `target` object
|
|
40963
|
+
* is not modified.
|
|
40964
|
+
*
|
|
40965
|
+
* The returned faceIndex can be used with the standalone function `getTriangleHitPointInfo`
|
|
40966
|
+
* to obtain more information like UV coordinates, triangle normal and materialIndex.
|
|
40967
|
+
*
|
|
40968
|
+
* @param {Vector3} point
|
|
40969
|
+
* @param {HitPointInfo} [target={}]
|
|
40970
|
+
* @param {number} [minThreshold=0]
|
|
40971
|
+
* @param {number} [maxThreshold=Infinity]
|
|
40972
|
+
* @returns {HitPointInfo|null}
|
|
40973
|
+
*/
|
|
40974
|
+
closestPointToPoint(e, t = {}, n = 0, i = 1 / 0) {
|
|
40975
|
+
return rT(
|
|
40976
|
+
this,
|
|
40977
|
+
e,
|
|
40978
|
+
t,
|
|
40979
|
+
n,
|
|
40980
|
+
i
|
|
40981
|
+
);
|
|
40860
40982
|
}
|
|
40861
|
-
}
|
|
40862
|
-
|
|
40863
|
-
|
|
40864
|
-
|
|
40865
|
-
|
|
40866
|
-
|
|
40867
|
-
|
|
40868
|
-
|
|
40869
|
-
|
|
40870
|
-
|
|
40871
|
-
|
|
40872
|
-
|
|
40873
|
-
|
|
40874
|
-
|
|
40983
|
+
}
|
|
40984
|
+
const la = {
|
|
40985
|
+
Mesh: pe.prototype.raycast,
|
|
40986
|
+
Line: Vt.prototype.raycast,
|
|
40987
|
+
LineSegments: Hn.prototype.raycast,
|
|
40988
|
+
LineLoop: nc.prototype.raycast,
|
|
40989
|
+
Points: ic.prototype.raycast,
|
|
40990
|
+
BatchedMesh: Bd.prototype.raycast
|
|
40991
|
+
}, on = /* @__PURE__ */ new pe(), El = [];
|
|
40992
|
+
function eB(s, e) {
|
|
40993
|
+
if (this.isBatchedMesh)
|
|
40994
|
+
LT.call(this, s, e);
|
|
40995
|
+
else {
|
|
40996
|
+
const { geometry: t } = this;
|
|
40997
|
+
if (t.boundsTree)
|
|
40998
|
+
t.boundsTree.raycastObject3D(this, s, e);
|
|
40999
|
+
else {
|
|
41000
|
+
let n;
|
|
41001
|
+
if (this instanceof pe)
|
|
41002
|
+
n = la.Mesh;
|
|
41003
|
+
else if (this instanceof Hn)
|
|
41004
|
+
n = la.LineSegments;
|
|
41005
|
+
else if (this instanceof nc)
|
|
41006
|
+
n = la.LineLoop;
|
|
41007
|
+
else if (this instanceof Vt)
|
|
41008
|
+
n = la.Line;
|
|
41009
|
+
else if (this instanceof ic)
|
|
41010
|
+
n = la.Points;
|
|
41011
|
+
else
|
|
41012
|
+
throw new Error("BVH: Fallback raycast function not found.");
|
|
41013
|
+
n.call(this, s, e);
|
|
40875
41014
|
}
|
|
40876
|
-
|
|
40877
|
-
|
|
40878
|
-
|
|
40879
|
-
|
|
40880
|
-
|
|
40881
|
-
|
|
40882
|
-
|
|
40883
|
-
|
|
40884
|
-
|
|
40885
|
-
if (
|
|
40886
|
-
|
|
40887
|
-
|
|
40888
|
-
|
|
40889
|
-
|
|
40890
|
-
|
|
40891
|
-
|
|
40892
|
-
}, s.prototype.start = function(e, t) {
|
|
40893
|
-
if (e === void 0 && (e = ho()), t === void 0 && (t = !1), this._isPlaying)
|
|
40894
|
-
return this;
|
|
40895
|
-
if (this._group && this._group.add(this), this._repeat = this._initialRepeat, this._reversed) {
|
|
40896
|
-
this._reversed = !1;
|
|
40897
|
-
for (var n in this._valuesStartRepeat)
|
|
40898
|
-
this._swapEndStartRepeatValues(n), this._valuesStart[n] = this._valuesStartRepeat[n];
|
|
40899
|
-
}
|
|
40900
|
-
if (this._isPlaying = !0, this._isPaused = !1, this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._isChainStopped = !1, this._startTime = e, this._startTime += this._delayTime, !this._propertiesAreSetUp || t) {
|
|
40901
|
-
if (this._propertiesAreSetUp = !0, !this._isDynamic) {
|
|
40902
|
-
var i = {};
|
|
40903
|
-
for (var r in this._valuesEnd)
|
|
40904
|
-
i[r] = this._valuesEnd[r];
|
|
40905
|
-
this._valuesEnd = i;
|
|
40906
|
-
}
|
|
40907
|
-
this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, t);
|
|
40908
|
-
}
|
|
40909
|
-
return this;
|
|
40910
|
-
}, s.prototype.startFromCurrentValues = function(e) {
|
|
40911
|
-
return this.start(e, !0);
|
|
40912
|
-
}, s.prototype._setupProperties = function(e, t, n, i, r) {
|
|
40913
|
-
for (var a in n) {
|
|
40914
|
-
var o = e[a], c = Array.isArray(o), l = c ? "array" : typeof o, h = !c && Array.isArray(n[a]);
|
|
40915
|
-
if (!(l === "undefined" || l === "function")) {
|
|
40916
|
-
if (h) {
|
|
40917
|
-
var u = n[a];
|
|
40918
|
-
if (u.length === 0)
|
|
40919
|
-
continue;
|
|
40920
|
-
for (var f = [o], d = 0, p = u.length; d < p; d += 1) {
|
|
40921
|
-
var b = this._handleRelativeValue(o, u[d]);
|
|
40922
|
-
if (isNaN(b)) {
|
|
40923
|
-
h = !1, console.warn("Found invalid interpolation list. Skipping.");
|
|
40924
|
-
break;
|
|
40925
|
-
}
|
|
40926
|
-
f.push(b);
|
|
40927
|
-
}
|
|
40928
|
-
h && (n[a] = f);
|
|
40929
|
-
}
|
|
40930
|
-
if ((l === "object" || c) && o && !h) {
|
|
40931
|
-
t[a] = c ? [] : {};
|
|
40932
|
-
var g = o;
|
|
40933
|
-
for (var A in g)
|
|
40934
|
-
t[a][A] = g[A];
|
|
40935
|
-
i[a] = c ? [] : {};
|
|
40936
|
-
var u = n[a];
|
|
40937
|
-
if (!this._isDynamic) {
|
|
40938
|
-
var m = {};
|
|
40939
|
-
for (var A in u)
|
|
40940
|
-
m[A] = u[A];
|
|
40941
|
-
n[a] = u = m;
|
|
40942
|
-
}
|
|
40943
|
-
this._setupProperties(g, t[a], u, i[a], r);
|
|
40944
|
-
} else
|
|
40945
|
-
(typeof t[a] > "u" || r) && (t[a] = o), c || (t[a] *= 1), h ? i[a] = n[a].slice().reverse() : i[a] = t[a] || 0;
|
|
40946
|
-
}
|
|
41015
|
+
}
|
|
41016
|
+
}
|
|
41017
|
+
function LT(s, e) {
|
|
41018
|
+
if (this.boundsTrees) {
|
|
41019
|
+
const t = this.boundsTrees, n = this._drawInfo || this._instanceInfo, i = this._drawRanges || this._geometryInfo, r = this.matrixWorld;
|
|
41020
|
+
on.material = this.material, on.geometry = this.geometry;
|
|
41021
|
+
const a = on.geometry.boundsTree, o = on.geometry.drawRange;
|
|
41022
|
+
on.geometry.boundingSphere === null && (on.geometry.boundingSphere = new Kt());
|
|
41023
|
+
for (let c = 0, l = n.length; c < l; c++) {
|
|
41024
|
+
if (!this.getVisibleAt(c))
|
|
41025
|
+
continue;
|
|
41026
|
+
const h = n[c].geometryIndex;
|
|
41027
|
+
if (on.geometry.boundsTree = t[h], this.getMatrixAt(c, on.matrixWorld).premultiply(r), !on.geometry.boundsTree) {
|
|
41028
|
+
this.getBoundingBoxAt(h, on.geometry.boundingBox), this.getBoundingSphereAt(h, on.geometry.boundingSphere);
|
|
41029
|
+
const u = i[h];
|
|
41030
|
+
on.geometry.setDrawRange(u.start, u.count);
|
|
40947
41031
|
}
|
|
40948
|
-
|
|
40949
|
-
|
|
40950
|
-
|
|
40951
|
-
|
|
40952
|
-
}, s.prototype.pause = function(e) {
|
|
40953
|
-
return e === void 0 && (e = ho()), this._isPaused || !this._isPlaying ? this : (this._isPaused = !0, this._pauseStart = e, this._group && this._group.remove(this), this);
|
|
40954
|
-
}, s.prototype.resume = function(e) {
|
|
40955
|
-
return e === void 0 && (e = ho()), !this._isPaused || !this._isPlaying ? this : (this._isPaused = !1, this._startTime += e - this._pauseStart, this._pauseStart = 0, this._group && this._group.add(this), this);
|
|
40956
|
-
}, s.prototype.stopChainedTweens = function() {
|
|
40957
|
-
for (var e = 0, t = this._chainedTweens.length; e < t; e++)
|
|
40958
|
-
this._chainedTweens[e].stop();
|
|
40959
|
-
return this;
|
|
40960
|
-
}, s.prototype.group = function(e) {
|
|
40961
|
-
return e === void 0 && (e = pd), this._group = e, this;
|
|
40962
|
-
}, s.prototype.delay = function(e) {
|
|
40963
|
-
return e === void 0 && (e = 0), this._delayTime = e, this;
|
|
40964
|
-
}, s.prototype.repeat = function(e) {
|
|
40965
|
-
return e === void 0 && (e = 0), this._initialRepeat = e, this._repeat = e, this;
|
|
40966
|
-
}, s.prototype.repeatDelay = function(e) {
|
|
40967
|
-
return this._repeatDelayTime = e, this;
|
|
40968
|
-
}, s.prototype.yoyo = function(e) {
|
|
40969
|
-
return e === void 0 && (e = !1), this._yoyo = e, this;
|
|
40970
|
-
}, s.prototype.easing = function(e) {
|
|
40971
|
-
return e === void 0 && (e = ga.Linear.None), this._easingFunction = e, this;
|
|
40972
|
-
}, s.prototype.interpolation = function(e) {
|
|
40973
|
-
return e === void 0 && (e = dd.Linear), this._interpolationFunction = e, this;
|
|
40974
|
-
}, s.prototype.chain = function() {
|
|
40975
|
-
for (var e = [], t = 0; t < arguments.length; t++)
|
|
40976
|
-
e[t] = arguments[t];
|
|
40977
|
-
return this._chainedTweens = e, this;
|
|
40978
|
-
}, s.prototype.onStart = function(e) {
|
|
40979
|
-
return this._onStartCallback = e, this;
|
|
40980
|
-
}, s.prototype.onEveryStart = function(e) {
|
|
40981
|
-
return this._onEveryStartCallback = e, this;
|
|
40982
|
-
}, s.prototype.onUpdate = function(e) {
|
|
40983
|
-
return this._onUpdateCallback = e, this;
|
|
40984
|
-
}, s.prototype.onRepeat = function(e) {
|
|
40985
|
-
return this._onRepeatCallback = e, this;
|
|
40986
|
-
}, s.prototype.onComplete = function(e) {
|
|
40987
|
-
return this._onCompleteCallback = e, this;
|
|
40988
|
-
}, s.prototype.onStop = function(e) {
|
|
40989
|
-
return this._onStopCallback = e, this;
|
|
40990
|
-
}, s.prototype.update = function(e, t) {
|
|
40991
|
-
var n = this, i;
|
|
40992
|
-
if (e === void 0 && (e = ho()), t === void 0 && (t = !0), this._isPaused)
|
|
40993
|
-
return !0;
|
|
40994
|
-
var r, a = this._startTime + this._duration;
|
|
40995
|
-
if (!this._goToEnd && !this._isPlaying) {
|
|
40996
|
-
if (e > a)
|
|
40997
|
-
return !1;
|
|
40998
|
-
t && this.start(e, !0);
|
|
41032
|
+
on.raycast(s, El);
|
|
41033
|
+
for (let u = 0, f = El.length; u < f; u++) {
|
|
41034
|
+
const d = El[u];
|
|
41035
|
+
d.object = this, d.batchId = c, e.push(d);
|
|
40999
41036
|
}
|
|
41000
|
-
|
|
41001
|
-
|
|
41002
|
-
|
|
41003
|
-
|
|
41004
|
-
|
|
41005
|
-
|
|
41006
|
-
|
|
41007
|
-
|
|
41008
|
-
|
|
41009
|
-
|
|
41010
|
-
|
|
41011
|
-
|
|
41012
|
-
|
|
41013
|
-
for (r in this._valuesStartRepeat)
|
|
41014
|
-
!this._yoyo && typeof this._valuesEnd[r] == "string" && (this._valuesStartRepeat[r] = // eslint-disable-next-line
|
|
41015
|
-
// @ts-ignore FIXME?
|
|
41016
|
-
this._valuesStartRepeat[r] + parseFloat(this._valuesEnd[r])), this._yoyo && this._swapEndStartRepeatValues(r), this._valuesStart[r] = this._valuesStartRepeat[r];
|
|
41017
|
-
return this._yoyo && (this._reversed = !this._reversed), this._startTime += c * d, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;
|
|
41018
|
-
} else {
|
|
41019
|
-
this._onCompleteCallback && this._onCompleteCallback(this._object);
|
|
41020
|
-
for (var p = 0, b = this._chainedTweens.length; p < b; p++)
|
|
41021
|
-
this._chainedTweens[p].start(this._startTime + this._duration, !1);
|
|
41022
|
-
return this._isPlaying = !1, !1;
|
|
41023
|
-
}
|
|
41024
|
-
return !0;
|
|
41025
|
-
}, s.prototype._updateProperties = function(e, t, n, i) {
|
|
41026
|
-
for (var r in n)
|
|
41027
|
-
if (t[r] !== void 0) {
|
|
41028
|
-
var a = t[r] || 0, o = n[r], c = Array.isArray(e[r]), l = Array.isArray(o), h = !c && l;
|
|
41029
|
-
h ? e[r] = this._interpolationFunction(o, i) : typeof o == "object" && o ? this._updateProperties(e[r], a, o, i) : (o = this._handleRelativeValue(a, o), typeof o == "number" && (e[r] = a + (o - a) * i));
|
|
41030
|
-
}
|
|
41031
|
-
}, s.prototype._handleRelativeValue = function(e, t) {
|
|
41032
|
-
return typeof t != "string" ? t : t.charAt(0) === "+" || t.charAt(0) === "-" ? e + parseFloat(t) : parseFloat(t);
|
|
41033
|
-
}, s.prototype._swapEndStartRepeatValues = function(e) {
|
|
41034
|
-
var t = this._valuesStartRepeat[e], n = this._valuesEnd[e];
|
|
41035
|
-
typeof n == "string" ? this._valuesStartRepeat[e] = this._valuesStartRepeat[e] + parseFloat(n) : this._valuesStartRepeat[e] = this._valuesEnd[e], this._valuesEnd[e] = t;
|
|
41036
|
-
}, s;
|
|
41037
|
-
})()
|
|
41038
|
-
);
|
|
41039
|
-
Ub.nextId;
|
|
41040
|
-
var Mi = pd;
|
|
41041
|
-
Mi.getAll.bind(Mi);
|
|
41042
|
-
Mi.removeAll.bind(Mi);
|
|
41043
|
-
Mi.add.bind(Mi);
|
|
41044
|
-
Mi.remove.bind(Mi);
|
|
41045
|
-
Mi.update.bind(Mi);
|
|
41046
|
-
var nB = {
|
|
41047
|
-
Easing: ga,
|
|
41048
|
-
Tween: LT
|
|
41049
|
-
};
|
|
41037
|
+
El.length = 0;
|
|
41038
|
+
}
|
|
41039
|
+
on.geometry.boundsTree = a, on.geometry.drawRange = o, on.material = null, on.geometry = null;
|
|
41040
|
+
} else
|
|
41041
|
+
la.BatchedMesh.call(this, s, e);
|
|
41042
|
+
}
|
|
41043
|
+
function tB(s = {}) {
|
|
41044
|
+
const { type: e = jo } = s;
|
|
41045
|
+
return this.boundsTree = new e(this, s), this.boundsTree;
|
|
41046
|
+
}
|
|
41047
|
+
function nB() {
|
|
41048
|
+
this.boundsTree = null;
|
|
41049
|
+
}
|
|
41050
41050
|
const Ys = new T0(), An = new T(), ls = new T(), Ct = new _t(), Mg = {
|
|
41051
41051
|
X: new T(1, 0, 0),
|
|
41052
41052
|
Y: new T(0, 1, 0),
|
|
@@ -43823,7 +43823,7 @@ Ci.add.bind(Ci);
|
|
|
43823
43823
|
Ci.remove.bind(Ci);
|
|
43824
43824
|
Ci.update.bind(Ci);
|
|
43825
43825
|
export {
|
|
43826
|
-
|
|
43826
|
+
X1 as $,
|
|
43827
43827
|
Dv as A,
|
|
43828
43828
|
Ve as B,
|
|
43829
43829
|
Ae as C,
|
|
@@ -43833,8 +43833,8 @@ export {
|
|
|
43833
43833
|
qi as G,
|
|
43834
43834
|
Wt as H,
|
|
43835
43835
|
Td as I,
|
|
43836
|
-
|
|
43837
|
-
|
|
43836
|
+
W1 as J,
|
|
43837
|
+
nt as K,
|
|
43838
43838
|
hn as L,
|
|
43839
43839
|
ve as M,
|
|
43840
43840
|
cB as N,
|
|
@@ -43844,67 +43844,67 @@ export {
|
|
|
43844
43844
|
T0 as R,
|
|
43845
43845
|
ui as S,
|
|
43846
43846
|
g0 as T,
|
|
43847
|
-
|
|
43847
|
+
nm as U,
|
|
43848
43848
|
T as V,
|
|
43849
43849
|
TC as W,
|
|
43850
|
-
|
|
43851
|
-
|
|
43852
|
-
|
|
43853
|
-
|
|
43850
|
+
Ih as X,
|
|
43851
|
+
D0 as Y,
|
|
43852
|
+
ex as Z,
|
|
43853
|
+
dv as _,
|
|
43854
43854
|
Ed as a,
|
|
43855
|
-
|
|
43856
|
-
|
|
43857
|
-
|
|
43858
|
-
|
|
43859
|
-
|
|
43860
|
-
|
|
43861
|
-
|
|
43855
|
+
zl as a$,
|
|
43856
|
+
ov as a0,
|
|
43857
|
+
Aw as a1,
|
|
43858
|
+
jt as a2,
|
|
43859
|
+
Nt as a3,
|
|
43860
|
+
ht as a4,
|
|
43861
|
+
Jt as a5,
|
|
43862
43862
|
j1 as a6,
|
|
43863
|
-
|
|
43864
|
-
|
|
43865
|
-
|
|
43863
|
+
K1 as a7,
|
|
43864
|
+
zi as a8,
|
|
43865
|
+
nr as a9,
|
|
43866
43866
|
vh as aA,
|
|
43867
43867
|
iB as aB,
|
|
43868
43868
|
aB as aC,
|
|
43869
43869
|
m1 as aD,
|
|
43870
43870
|
Og as aE,
|
|
43871
43871
|
pv as aF,
|
|
43872
|
-
|
|
43873
|
-
|
|
43874
|
-
|
|
43875
|
-
|
|
43876
|
-
|
|
43877
|
-
|
|
43878
|
-
|
|
43879
|
-
|
|
43880
|
-
|
|
43881
|
-
|
|
43882
|
-
|
|
43883
|
-
|
|
43884
|
-
|
|
43885
|
-
|
|
43886
|
-
|
|
43887
|
-
|
|
43888
|
-
|
|
43889
|
-
|
|
43890
|
-
|
|
43891
|
-
|
|
43892
|
-
|
|
43872
|
+
Ym as aG,
|
|
43873
|
+
Km as aH,
|
|
43874
|
+
$h as aI,
|
|
43875
|
+
nc as aJ,
|
|
43876
|
+
Wm as aK,
|
|
43877
|
+
Xm as aL,
|
|
43878
|
+
Kh as aM,
|
|
43879
|
+
Ht as aN,
|
|
43880
|
+
ic as aO,
|
|
43881
|
+
Ts as aP,
|
|
43882
|
+
wn as aQ,
|
|
43883
|
+
Rh as aR,
|
|
43884
|
+
Jn as aS,
|
|
43885
|
+
Tt as aT,
|
|
43886
|
+
qe as aU,
|
|
43887
|
+
yt as aV,
|
|
43888
|
+
$o as aW,
|
|
43889
|
+
O0 as aX,
|
|
43890
|
+
Is as aY,
|
|
43891
|
+
Ii as aZ,
|
|
43892
|
+
Hl as a_,
|
|
43893
43893
|
Y1 as aa,
|
|
43894
|
-
|
|
43895
|
-
ac,
|
|
43896
|
-
|
|
43894
|
+
J1 as ab,
|
|
43895
|
+
qh as ac,
|
|
43896
|
+
ac as ad,
|
|
43897
43897
|
eB as ae,
|
|
43898
43898
|
tB as af,
|
|
43899
|
-
|
|
43900
|
-
|
|
43901
|
-
|
|
43902
|
-
|
|
43903
|
-
|
|
43904
|
-
|
|
43905
|
-
|
|
43906
|
-
|
|
43907
|
-
|
|
43899
|
+
nB as ag,
|
|
43900
|
+
_r as ah,
|
|
43901
|
+
$1 as ai,
|
|
43902
|
+
Z1 as aj,
|
|
43903
|
+
li as ak,
|
|
43904
|
+
Xd as al,
|
|
43905
|
+
b0 as am,
|
|
43906
|
+
jn as an,
|
|
43907
|
+
Of as ao,
|
|
43908
43908
|
Rt as ap,
|
|
43909
43909
|
km as aq,
|
|
43910
43910
|
Y_ as ar,
|
|
@@ -43917,18 +43917,19 @@ export {
|
|
|
43917
43917
|
Pa as ay,
|
|
43918
43918
|
cp as az,
|
|
43919
43919
|
Y as b,
|
|
43920
|
-
|
|
43921
|
-
|
|
43922
|
-
|
|
43923
|
-
|
|
43924
|
-
|
|
43925
|
-
|
|
43926
|
-
|
|
43927
|
-
|
|
43928
|
-
|
|
43929
|
-
|
|
43930
|
-
|
|
43931
|
-
|
|
43920
|
+
bh as b0,
|
|
43921
|
+
rc as b1,
|
|
43922
|
+
tx as b2,
|
|
43923
|
+
y0 as b3,
|
|
43924
|
+
Bx as b4,
|
|
43925
|
+
lr as b5,
|
|
43926
|
+
Ji as b6,
|
|
43927
|
+
Je as b7,
|
|
43928
|
+
oo as b8,
|
|
43929
|
+
So as b9,
|
|
43930
|
+
lB as ba,
|
|
43931
|
+
p0 as bb,
|
|
43932
|
+
oB as bc,
|
|
43932
43933
|
Yh as c,
|
|
43933
43934
|
dr as d,
|
|
43934
43935
|
Wh as e,
|
|
@@ -43939,7 +43940,7 @@ export {
|
|
|
43939
43940
|
pe as j,
|
|
43940
43941
|
Ir as k,
|
|
43941
43942
|
It as l,
|
|
43942
|
-
|
|
43943
|
+
q1 as m,
|
|
43943
43944
|
Um as n,
|
|
43944
43945
|
Vt as o,
|
|
43945
43946
|
V1 as p,
|