quake2ts 0.0.556 → 0.0.557

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
1
7
  // src/loop.ts
2
8
  var DEFAULT_FIXED_DELTA_MS = 25;
3
9
  var DEFAULT_MAX_SUBSTEPS = 5;
@@ -182,10 +188,10 @@ var CommandRegistry = class {
182
188
  };
183
189
 
184
190
  // ../shared/dist/esm/index.js
185
- var __defProp = Object.defineProperty;
186
- var __export = (target, all) => {
191
+ var __defProp2 = Object.defineProperty;
192
+ var __export2 = (target, all) => {
187
193
  for (var name in all)
188
- __defProp(target, name, { get: all[name], enumerable: true });
194
+ __defProp2(target, name, { get: all[name], enumerable: true });
189
195
  };
190
196
  var ZERO_VEC3 = { x: 0, y: 0, z: 0 };
191
197
  var DEG_TO_RAD = Math.PI / 180;
@@ -205,8 +211,8 @@ function lengthVec3(a) {
205
211
  return Math.sqrt(lengthSquaredVec3(a));
206
212
  }
207
213
  function normalizeVec3(a) {
208
- const len = lengthVec3(a);
209
- return len === 0 ? a : scaleVec3(a, 1 / len);
214
+ const len2 = lengthVec3(a);
215
+ return len2 === 0 ? a : scaleVec3(a, 1 / len2);
210
216
  }
211
217
  var DEG2RAD_FACTOR = Math.PI / 180;
212
218
  var RAD2DEG_FACTOR = 180 / Math.PI;
@@ -544,7 +550,7 @@ var CS_ITEMS = ConfigStringIndex.Items;
544
550
  var CS_PLAYERS = ConfigStringIndex.Players;
545
551
  var CS_GENERAL = ConfigStringIndex.General;
546
552
  var replay_exports = {};
547
- __export(replay_exports, {
553
+ __export2(replay_exports, {
548
554
  addReplayFrame: () => addReplayFrame,
549
555
  createReplaySession: () => createReplaySession,
550
556
  deserializeReplay: () => deserializeReplay,
@@ -812,26 +818,26 @@ var BinaryStream = class {
812
818
  return value;
813
819
  }
814
820
  readString() {
815
- let str = "";
821
+ let str3 = "";
816
822
  while (this.offset < this.length) {
817
823
  const charCode = this.readChar();
818
824
  if (charCode === -1 || charCode === 0) {
819
825
  break;
820
826
  }
821
- str += String.fromCharCode(charCode);
827
+ str3 += String.fromCharCode(charCode);
822
828
  }
823
- return str;
829
+ return str3;
824
830
  }
825
831
  readStringLine() {
826
- let str = "";
832
+ let str3 = "";
827
833
  while (this.offset < this.length) {
828
834
  const charCode = this.readChar();
829
835
  if (charCode === -1 || charCode === 0 || charCode === 10) {
830
836
  break;
831
837
  }
832
- str += String.fromCharCode(charCode);
838
+ str3 += String.fromCharCode(charCode);
833
839
  }
834
- return str;
840
+ return str3;
835
841
  }
836
842
  readCoord() {
837
843
  return this.readShort() * (1 / 8);
@@ -842,12 +848,12 @@ var BinaryStream = class {
842
848
  readAngle16() {
843
849
  return this.readShort() * 360 / 65536;
844
850
  }
845
- readData(length) {
846
- if (this.offset + length > this.length) {
847
- throw new Error(`Read out of bounds: ${this.offset + length} (length: ${this.length})`);
851
+ readData(length2) {
852
+ if (this.offset + length2 > this.length) {
853
+ throw new Error(`Read out of bounds: ${this.offset + length2} (length: ${this.length})`);
848
854
  }
849
- const data = new Uint8Array(this.view.buffer, this.view.byteOffset + this.offset, length);
850
- this.offset += length;
855
+ const data = new Uint8Array(this.view.buffer, this.view.byteOffset + this.offset, length2);
856
+ this.offset += length2;
851
857
  return new Uint8Array(data);
852
858
  }
853
859
  readPos(out) {
@@ -924,13 +930,13 @@ var BinaryWriter = class {
924
930
  this.offset += 4;
925
931
  }
926
932
  writeString(value) {
927
- const len = value.length;
928
- this.ensureSpace(len + 1);
929
- for (let i = 0; i < len; i++) {
933
+ const len2 = value.length;
934
+ this.ensureSpace(len2 + 1);
935
+ for (let i = 0; i < len2; i++) {
930
936
  this.view.setUint8(this.offset + i, value.charCodeAt(i));
931
937
  }
932
- this.view.setUint8(this.offset + len, 0);
933
- this.offset += len + 1;
938
+ this.view.setUint8(this.offset + len2, 0);
939
+ this.offset += len2 + 1;
934
940
  }
935
941
  writeCoord(value) {
936
942
  this.writeShort(Math.trunc(value * 8));
@@ -955,9 +961,9 @@ var BinaryWriter = class {
955
961
  }
956
962
  for (let i = 0; i < ANORMS.length; i++) {
957
963
  const norm = ANORMS[i];
958
- const dot = dir.x * norm[0] + dir.y * norm[1] + dir.z * norm[2];
959
- if (dot > maxDot) {
960
- maxDot = dot;
964
+ const dot2 = dir.x * norm[0] + dir.y * norm[1] + dir.z * norm[2];
965
+ if (dot2 > maxDot) {
966
+ maxDot = dot2;
961
967
  bestIndex = i;
962
968
  }
963
969
  }
@@ -1238,12 +1244,12 @@ var _NetChan = class _NetChan2 {
1238
1244
  * Writes a string to the reliable message buffer
1239
1245
  */
1240
1246
  writeReliableString(value) {
1241
- const len = value.length + 1;
1242
- if (this.reliableLength + len > _NetChan2.MAX_RELIABLE_BUFFER) {
1247
+ const len2 = value.length + 1;
1248
+ if (this.reliableLength + len2 > _NetChan2.MAX_RELIABLE_BUFFER) {
1243
1249
  throw new Error("NetChan reliable buffer overflow");
1244
1250
  }
1245
1251
  this.reliableMessage.writeString(value);
1246
- this.reliableLength += len;
1252
+ this.reliableLength += len2;
1247
1253
  }
1248
1254
  /**
1249
1255
  * Returns the current reliable data buffer
@@ -2600,9 +2606,9 @@ var BspLoader = class {
2600
2606
  }
2601
2607
  async load(path) {
2602
2608
  const buffer = await this.vfs.readFile(path);
2603
- const copy = new Uint8Array(buffer.byteLength);
2604
- copy.set(buffer);
2605
- return parseBsp(copy.buffer);
2609
+ const copy3 = new Uint8Array(buffer.byteLength);
2610
+ copy3.set(buffer);
2611
+ return parseBsp(copy3.buffer);
2606
2612
  }
2607
2613
  };
2608
2614
  function parseBsp(buffer) {
@@ -2621,11 +2627,11 @@ function parseBsp(buffer) {
2621
2627
  const lumps = /* @__PURE__ */ new Map();
2622
2628
  for (let i = 0; i < HEADER_LUMPS; i += 1) {
2623
2629
  const offset = view.getInt32(8 + i * 8, true);
2624
- const length = view.getInt32(12 + i * 8, true);
2625
- if (offset < 0 || length < 0 || offset + length > buffer.byteLength) {
2630
+ const length2 = view.getInt32(12 + i * 8, true);
2631
+ if (offset < 0 || length2 < 0 || offset + length2 > buffer.byteLength) {
2626
2632
  throw new BspParseError(`Invalid lump bounds for index ${i}`);
2627
2633
  }
2628
- lumps.set(i, { offset, length });
2634
+ lumps.set(i, { offset, length: length2 });
2629
2635
  }
2630
2636
  const header = { version, lumps };
2631
2637
  const entities = parseEntities(buffer, lumps.get(0 /* Entities */));
@@ -2675,10 +2681,10 @@ function parseBsp(buffer) {
2675
2681
  continue;
2676
2682
  }
2677
2683
  const model = models[modelIndex];
2678
- const dist = intersectRayAabb(ray.origin, ray.direction, model.mins, model.maxs);
2679
- if (dist !== null && dist < minDistance) {
2680
- minDistance = dist;
2681
- closest = { entity, model, distance: dist };
2684
+ const dist2 = intersectRayAabb(ray.origin, ray.direction, model.mins, model.maxs);
2685
+ if (dist2 !== null && dist2 < minDistance) {
2686
+ minDistance = dist2;
2687
+ closest = { entity, model, distance: dist2 };
2682
2688
  }
2683
2689
  }
2684
2690
  return closest;
@@ -2756,9 +2762,9 @@ function parsePlanes(buffer, info) {
2756
2762
  const planes = [];
2757
2763
  for (let i = 0; i < count; i += 1) {
2758
2764
  const normal = [view.getFloat32(i * 20, true), view.getFloat32(i * 20 + 4, true), view.getFloat32(i * 20 + 8, true)];
2759
- const dist = view.getFloat32(i * 20 + 12, true);
2765
+ const dist2 = view.getFloat32(i * 20 + 12, true);
2760
2766
  const type = view.getInt32(i * 20 + 16, true);
2761
- planes.push({ normal, dist, type });
2767
+ planes.push({ normal, dist: dist2, type });
2762
2768
  }
2763
2769
  return planes;
2764
2770
  }
@@ -3049,11 +3055,11 @@ function createFaceLightmap(face, lightMaps, info) {
3049
3055
  return void 0;
3050
3056
  }
3051
3057
  const available = lightMaps.byteLength - face.lightOffset;
3052
- const length = Math.min(info?.length ?? available, available);
3053
- if (length <= 0) {
3058
+ const length2 = Math.min(info?.length ?? available, available);
3059
+ if (length2 <= 0) {
3054
3060
  return void 0;
3055
3061
  }
3056
- return lightMaps.subarray(face.lightOffset, face.lightOffset + length);
3062
+ return lightMaps.subarray(face.lightOffset, face.lightOffset + length2);
3057
3063
  }
3058
3064
 
3059
3065
  // src/assets/md2.ts
@@ -3236,9 +3242,9 @@ var Md2Loader = class {
3236
3242
  return this.cache.get(path);
3237
3243
  }
3238
3244
  const bytes = await this.vfs.readFile(path);
3239
- const copy = new Uint8Array(bytes.byteLength);
3240
- copy.set(bytes);
3241
- const model = parseMd2(copy.buffer);
3245
+ const copy3 = new Uint8Array(bytes.byteLength);
3246
+ copy3.set(bytes);
3247
+ const model = parseMd2(copy3.buffer);
3242
3248
  this.cache.set(path, model);
3243
3249
  return model;
3244
3250
  }
@@ -3255,9 +3261,9 @@ function readCString2(view, offset, maxLength) {
3255
3261
  }
3256
3262
  return String.fromCharCode(...chars);
3257
3263
  }
3258
- function validateSection(buffer, offset, length, label) {
3259
- if (length === 0) return;
3260
- if (offset < HEADER_SIZE4 || offset + length > buffer.byteLength) {
3264
+ function validateSection(buffer, offset, length2, label) {
3265
+ if (length2 === 0) return;
3266
+ if (offset < HEADER_SIZE4 || offset + length2 > buffer.byteLength) {
3261
3267
  throw new Md2ParseError(`${label} section is out of bounds`);
3262
3268
  }
3263
3269
  }
@@ -3355,8 +3361,8 @@ function parseFrames(buffer, header) {
3355
3361
  for (let i = 0; i < header.numFrames; i += 1) {
3356
3362
  const base = header.offsetFrames + i * header.frameSize;
3357
3363
  const view = new DataView(buffer, base, header.frameSize);
3358
- const scale = { x: view.getFloat32(0, true), y: view.getFloat32(4, true), z: view.getFloat32(8, true) };
3359
- const translate = {
3364
+ const scale3 = { x: view.getFloat32(0, true), y: view.getFloat32(4, true), z: view.getFloat32(8, true) };
3365
+ const translate2 = {
3360
3366
  x: view.getFloat32(12, true),
3361
3367
  y: view.getFloat32(16, true),
3362
3368
  z: view.getFloat32(20, true)
@@ -3367,9 +3373,9 @@ function parseFrames(buffer, header) {
3367
3373
  let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
3368
3374
  for (let v = 0; v < header.numVertices; v += 1) {
3369
3375
  const offset = 40 + v * 4;
3370
- const x = view.getUint8(offset) * scale.x + translate.x;
3371
- const y = view.getUint8(offset + 1) * scale.y + translate.y;
3372
- const z = view.getUint8(offset + 2) * scale.z + translate.z;
3376
+ const x = view.getUint8(offset) * scale3.x + translate2.x;
3377
+ const y = view.getUint8(offset + 1) * scale3.y + translate2.y;
3378
+ const z = view.getUint8(offset + 2) * scale3.z + translate2.z;
3373
3379
  if (x < minX) minX = x;
3374
3380
  if (y < minY) minY = y;
3375
3381
  if (z < minZ) minZ = z;
@@ -3468,8 +3474,8 @@ var Md3ParseError = class extends Error {
3468
3474
  this.name = "Md3ParseError";
3469
3475
  }
3470
3476
  };
3471
- function readString(view, offset, length) {
3472
- const bytes = new Uint8Array(view.buffer, view.byteOffset + offset, length);
3477
+ function readString(view, offset, length2) {
3478
+ const bytes = new Uint8Array(view.buffer, view.byteOffset + offset, length2);
3473
3479
  const decoded = new TextDecoder("utf-8").decode(bytes);
3474
3480
  return decoded.replace(/\0.*$/, "").trim();
3475
3481
  }
@@ -3759,9 +3765,9 @@ var SpriteLoader = class {
3759
3765
  }
3760
3766
  async load(path) {
3761
3767
  const bytes = await this.vfs.readFile(path);
3762
- const copy = new Uint8Array(bytes.byteLength);
3763
- copy.set(bytes);
3764
- return parseSprite(copy.buffer);
3768
+ const copy3 = new Uint8Array(bytes.byteLength);
3769
+ copy3.set(bytes);
3770
+ return parseSprite(copy3.buffer);
3765
3771
  }
3766
3772
  };
3767
3773
 
@@ -3789,8 +3795,8 @@ function computeFrameBlend(state) {
3789
3795
  const baseFrame = Math.floor(normalizedPosition);
3790
3796
  const frame0 = state.sequence.start + baseFrame;
3791
3797
  const frame1 = baseFrame + 1 >= totalFrames ? loop ? state.sequence.start : state.sequence.end : frame0 + 1;
3792
- const lerp3 = !loop && baseFrame >= totalFrames - 1 ? 0 : normalizedPosition - baseFrame;
3793
- return { frame0, frame1, lerp: lerp3 };
3798
+ const lerp4 = !loop && baseFrame >= totalFrames - 1 ? 0 : normalizedPosition - baseFrame;
3799
+ return { frame0, frame1, lerp: lerp4 };
3794
3800
  }
3795
3801
  function createAnimationState(sequence) {
3796
3802
  return { sequence, time: 0 };
@@ -4105,8 +4111,8 @@ var WavParseError = class extends Error {
4105
4111
  this.name = "WavParseError";
4106
4112
  }
4107
4113
  };
4108
- function readString2(view, offset, length) {
4109
- return new TextDecoder("ascii").decode(new Uint8Array(view.buffer, view.byteOffset + offset, length));
4114
+ function readString2(view, offset, length2) {
4115
+ return new TextDecoder("ascii").decode(new Uint8Array(view.buffer, view.byteOffset + offset, length2));
4110
4116
  }
4111
4117
  function parseWav(buffer) {
4112
4118
  if (buffer.byteLength < 44) {
@@ -4850,8 +4856,8 @@ var SoundPrecache = class {
4850
4856
  continue;
4851
4857
  }
4852
4858
  const bytes = await this.vfs.readFile(path);
4853
- const copy = bytes.slice().buffer;
4854
- const buffer = await this.decodeAudio(context, copy);
4859
+ const copy3 = bytes.slice().buffer;
4860
+ const buffer = await this.decodeAudio(context, copy3);
4855
4861
  this.registry.register(path, buffer);
4856
4862
  report.loaded.push(path);
4857
4863
  } catch (error) {
@@ -5180,22 +5186,22 @@ var AudioSystem = class {
5180
5186
  active.gain.gain.value = active.baseGain * occlusionScale * playbackRateMute;
5181
5187
  }
5182
5188
  applyOcclusion(active, occlusion) {
5183
- const scale = clamp01(occlusion?.gainScale ?? 1);
5189
+ const scale3 = clamp01(occlusion?.gainScale ?? 1);
5184
5190
  const playbackRateMute = Math.abs(this.playbackRate - 1) < 1e-3 ? 1 : 0;
5185
- active.gain.gain.value = active.baseGain * scale * playbackRateMute;
5191
+ active.gain.gain.value = active.baseGain * scale3 * playbackRateMute;
5186
5192
  if (active.occlusion?.filter) {
5187
5193
  const cutoff = occlusion?.lowpassHz ?? 2e4;
5188
5194
  active.occlusion.filter.frequency.value = clamp(cutoff, 10, 2e4);
5189
5195
  }
5190
5196
  if (active.occlusion) {
5191
- active.occlusion.scale = scale;
5197
+ active.occlusion.scale = scale3;
5192
5198
  active.occlusion.lowpassHz = occlusion?.lowpassHz;
5193
5199
  } else if (occlusion) {
5194
- active.occlusion = { scale, lowpassHz: occlusion.lowpassHz };
5200
+ active.occlusion = { scale: scale3, lowpassHz: occlusion.lowpassHz };
5195
5201
  }
5196
5202
  }
5197
5203
  };
5198
- var clamp = (value, min, max) => Math.min(max, Math.max(min, value));
5204
+ var clamp = (value, min2, max2) => Math.min(max2, Math.max(min2, value));
5199
5205
  var clamp01 = (value) => clamp(value, 0, 1);
5200
5206
 
5201
5207
  // src/audio/occlusion.ts
@@ -5203,9 +5209,9 @@ var AudioOcclusion = class {
5203
5209
  constructor(trace) {
5204
5210
  this.trace = trace;
5205
5211
  this.resolve = (listener, source, attenuation) => {
5206
- const dist = lengthVec3(subtractVec3(source, listener.origin));
5212
+ const dist2 = lengthVec3(subtractVec3(source, listener.origin));
5207
5213
  const maxDist = calculateMaxAudibleDistance(attenuation);
5208
- const clampedDist = Math.min(dist, maxDist);
5214
+ const clampedDist = Math.min(dist2, maxDist);
5209
5215
  const distanceFactor = clampedDist / Math.max(1, maxDist);
5210
5216
  const distanceCutoff = 2e4 * (1 - distanceFactor * 0.9);
5211
5217
  const tr = this.trace(listener.origin, source, void 0, void 0);
@@ -5976,15 +5982,15 @@ function buildBspGeometry(gl, surfaces, map, options = {}) {
5976
5982
 
5977
5983
  // src/render/culling.ts
5978
5984
  function normalizePlane(plane) {
5979
- const { normal, distance } = plane;
5980
- const length = Math.sqrt(normal.x * normal.x + normal.y * normal.y + normal.z * normal.z);
5981
- if (length === 0) {
5985
+ const { normal, distance: distance2 } = plane;
5986
+ const length2 = Math.sqrt(normal.x * normal.x + normal.y * normal.y + normal.z * normal.z);
5987
+ if (length2 === 0) {
5982
5988
  return plane;
5983
5989
  }
5984
- const inv = 1 / length;
5990
+ const inv = 1 / length2;
5985
5991
  return {
5986
5992
  normal: { x: normal.x * inv, y: normal.y * inv, z: normal.z * inv },
5987
- distance: distance * inv
5993
+ distance: distance2 * inv
5988
5994
  };
5989
5995
  }
5990
5996
  function extractFrustumPlanes(matrix) {
@@ -6074,8 +6080,8 @@ function findLeafForPoint(map, point) {
6074
6080
  while (nodeIndex >= 0) {
6075
6081
  const node = map.nodes[nodeIndex];
6076
6082
  const plane = map.planes[node.planeIndex];
6077
- const dist = distanceToPlane(plane, point);
6078
- const side = dist >= 0 ? 0 : 1;
6083
+ const dist2 = distanceToPlane(plane, point);
6084
+ const side = dist2 >= 0 ? 0 : 1;
6079
6085
  const child = node.children[side];
6080
6086
  if (childIsLeaf(child)) {
6081
6087
  return childLeafIndex(child);
@@ -6092,14 +6098,14 @@ function collectFacesFromLeaf(map, leafIndex) {
6092
6098
  }
6093
6099
  return faces;
6094
6100
  }
6095
- function traverse(map, nodeIndex, camera, frustum, viewCluster, visibleFaces, visitedFaces) {
6101
+ function traverse(map, nodeIndex, camera, frustum2, viewCluster, visibleFaces, visitedFaces) {
6096
6102
  if (childIsLeaf(nodeIndex)) {
6097
6103
  const leafIndex = childLeafIndex(nodeIndex);
6098
6104
  const leaf = map.leafs[leafIndex];
6099
6105
  if (!isClusterVisible(map.visibility, viewCluster, leaf.cluster)) {
6100
6106
  return;
6101
6107
  }
6102
- if (!leafIntersectsFrustum(leaf, frustum)) {
6108
+ if (!leafIntersectsFrustum(leaf, frustum2)) {
6103
6109
  return;
6104
6110
  }
6105
6111
  const center = {
@@ -6122,24 +6128,24 @@ function traverse(map, nodeIndex, camera, frustum, viewCluster, visibleFaces, vi
6122
6128
  }
6123
6129
  const node = map.nodes[nodeIndex];
6124
6130
  const plane = map.planes[node.planeIndex];
6125
- const dist = distanceToPlane(plane, camera);
6126
- const nearChild = dist >= 0 ? node.children[0] : node.children[1];
6127
- const farChild = dist >= 0 ? node.children[1] : node.children[0];
6131
+ const dist2 = distanceToPlane(plane, camera);
6132
+ const nearChild = dist2 >= 0 ? node.children[0] : node.children[1];
6133
+ const farChild = dist2 >= 0 ? node.children[1] : node.children[0];
6128
6134
  if (boxIntersectsFrustum(
6129
6135
  { x: node.mins[0], y: node.mins[1], z: node.mins[2] },
6130
6136
  { x: node.maxs[0], y: node.maxs[1], z: node.maxs[2] },
6131
- frustum
6137
+ frustum2
6132
6138
  )) {
6133
- traverse(map, nearChild, camera, frustum, viewCluster, visibleFaces, visitedFaces);
6134
- traverse(map, farChild, camera, frustum, viewCluster, visibleFaces, visitedFaces);
6139
+ traverse(map, nearChild, camera, frustum2, viewCluster, visibleFaces, visitedFaces);
6140
+ traverse(map, farChild, camera, frustum2, viewCluster, visibleFaces, visitedFaces);
6135
6141
  }
6136
6142
  }
6137
- function gatherVisibleFaces(map, cameraPosition, frustum) {
6143
+ function gatherVisibleFaces(map, cameraPosition, frustum2) {
6138
6144
  const viewLeaf = findLeafForPoint(map, cameraPosition);
6139
6145
  const viewCluster = viewLeaf >= 0 ? map.leafs[viewLeaf].cluster : -1;
6140
6146
  const visibleFaces = [];
6141
6147
  const visitedFaces = /* @__PURE__ */ new Set();
6142
- traverse(map, 0, cameraPosition, frustum, viewCluster, visibleFaces, visitedFaces);
6148
+ traverse(map, 0, cameraPosition, frustum2, viewCluster, visibleFaces, visitedFaces);
6143
6149
  return visibleFaces;
6144
6150
  }
6145
6151
 
@@ -6984,7 +6990,7 @@ function buildMd2Geometry(model) {
6984
6990
  return { vertices, indices: new Uint16Array(indices) };
6985
6991
  }
6986
6992
  function buildMd2VertexData(model, geometry, blend) {
6987
- const { frame0, frame1, lerp: lerp3 } = blend;
6993
+ const { frame0, frame1, lerp: lerp4 } = blend;
6988
6994
  const frameA = model.frames[frame0];
6989
6995
  const frameB = model.frames[frame1];
6990
6996
  if (!frameA || !frameB) {
@@ -6997,8 +7003,8 @@ function buildMd2VertexData(model, geometry, blend) {
6997
7003
  if (!vA || !vB) {
6998
7004
  throw new Error("MD2 vertex index out of range for frame");
6999
7005
  }
7000
- const position = lerpVec3(vA.position, vB.position, lerp3);
7001
- const normal = normalizeVec32(lerpVec3(vA.normal, vB.normal, lerp3));
7006
+ const position = lerpVec3(vA.position, vB.position, lerp4);
7007
+ const normal = normalizeVec32(lerpVec3(vA.normal, vB.normal, lerp4));
7002
7008
  const base = index * 8;
7003
7009
  data[base] = position.x;
7004
7010
  data[base + 1] = position.y;
@@ -7154,32 +7160,1754 @@ var Md2Pipeline = class {
7154
7160
  }
7155
7161
  };
7156
7162
 
7163
+ // ../../node_modules/.pnpm/gl-matrix@3.4.4/node_modules/gl-matrix/esm/common.js
7164
+ var EPSILON = 1e-6;
7165
+ var ARRAY_TYPE = typeof Float32Array !== "undefined" ? Float32Array : Array;
7166
+ var RANDOM = Math.random;
7167
+ function round(a) {
7168
+ if (a >= 0) return Math.round(a);
7169
+ return a % 0.5 === 0 ? Math.floor(a) : Math.round(a);
7170
+ }
7171
+ var degree = Math.PI / 180;
7172
+ var radian = 180 / Math.PI;
7173
+
7174
+ // ../../node_modules/.pnpm/gl-matrix@3.4.4/node_modules/gl-matrix/esm/mat4.js
7175
+ var mat4_exports = {};
7176
+ __export(mat4_exports, {
7177
+ add: () => add,
7178
+ adjoint: () => adjoint,
7179
+ clone: () => clone,
7180
+ copy: () => copy,
7181
+ create: () => create,
7182
+ decompose: () => decompose,
7183
+ determinant: () => determinant,
7184
+ equals: () => equals,
7185
+ exactEquals: () => exactEquals,
7186
+ frob: () => frob,
7187
+ fromQuat: () => fromQuat,
7188
+ fromQuat2: () => fromQuat2,
7189
+ fromRotation: () => fromRotation,
7190
+ fromRotationTranslation: () => fromRotationTranslation,
7191
+ fromRotationTranslationScale: () => fromRotationTranslationScale,
7192
+ fromRotationTranslationScaleOrigin: () => fromRotationTranslationScaleOrigin,
7193
+ fromScaling: () => fromScaling,
7194
+ fromTranslation: () => fromTranslation,
7195
+ fromValues: () => fromValues,
7196
+ fromXRotation: () => fromXRotation,
7197
+ fromYRotation: () => fromYRotation,
7198
+ fromZRotation: () => fromZRotation,
7199
+ frustum: () => frustum,
7200
+ getRotation: () => getRotation,
7201
+ getScaling: () => getScaling,
7202
+ getTranslation: () => getTranslation,
7203
+ identity: () => identity,
7204
+ invert: () => invert,
7205
+ lookAt: () => lookAt,
7206
+ mul: () => mul,
7207
+ multiply: () => multiply,
7208
+ multiplyScalar: () => multiplyScalar,
7209
+ multiplyScalarAndAdd: () => multiplyScalarAndAdd,
7210
+ ortho: () => ortho,
7211
+ orthoNO: () => orthoNO,
7212
+ orthoZO: () => orthoZO,
7213
+ perspective: () => perspective,
7214
+ perspectiveFromFieldOfView: () => perspectiveFromFieldOfView,
7215
+ perspectiveNO: () => perspectiveNO,
7216
+ perspectiveZO: () => perspectiveZO,
7217
+ rotate: () => rotate,
7218
+ rotateX: () => rotateX,
7219
+ rotateY: () => rotateY,
7220
+ rotateZ: () => rotateZ,
7221
+ scale: () => scale,
7222
+ set: () => set,
7223
+ str: () => str,
7224
+ sub: () => sub,
7225
+ subtract: () => subtract,
7226
+ targetTo: () => targetTo,
7227
+ translate: () => translate,
7228
+ transpose: () => transpose
7229
+ });
7230
+ function create() {
7231
+ var out = new ARRAY_TYPE(16);
7232
+ if (ARRAY_TYPE != Float32Array) {
7233
+ out[1] = 0;
7234
+ out[2] = 0;
7235
+ out[3] = 0;
7236
+ out[4] = 0;
7237
+ out[6] = 0;
7238
+ out[7] = 0;
7239
+ out[8] = 0;
7240
+ out[9] = 0;
7241
+ out[11] = 0;
7242
+ out[12] = 0;
7243
+ out[13] = 0;
7244
+ out[14] = 0;
7245
+ }
7246
+ out[0] = 1;
7247
+ out[5] = 1;
7248
+ out[10] = 1;
7249
+ out[15] = 1;
7250
+ return out;
7251
+ }
7252
+ function clone(a) {
7253
+ var out = new ARRAY_TYPE(16);
7254
+ out[0] = a[0];
7255
+ out[1] = a[1];
7256
+ out[2] = a[2];
7257
+ out[3] = a[3];
7258
+ out[4] = a[4];
7259
+ out[5] = a[5];
7260
+ out[6] = a[6];
7261
+ out[7] = a[7];
7262
+ out[8] = a[8];
7263
+ out[9] = a[9];
7264
+ out[10] = a[10];
7265
+ out[11] = a[11];
7266
+ out[12] = a[12];
7267
+ out[13] = a[13];
7268
+ out[14] = a[14];
7269
+ out[15] = a[15];
7270
+ return out;
7271
+ }
7272
+ function copy(out, a) {
7273
+ out[0] = a[0];
7274
+ out[1] = a[1];
7275
+ out[2] = a[2];
7276
+ out[3] = a[3];
7277
+ out[4] = a[4];
7278
+ out[5] = a[5];
7279
+ out[6] = a[6];
7280
+ out[7] = a[7];
7281
+ out[8] = a[8];
7282
+ out[9] = a[9];
7283
+ out[10] = a[10];
7284
+ out[11] = a[11];
7285
+ out[12] = a[12];
7286
+ out[13] = a[13];
7287
+ out[14] = a[14];
7288
+ out[15] = a[15];
7289
+ return out;
7290
+ }
7291
+ function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {
7292
+ var out = new ARRAY_TYPE(16);
7293
+ out[0] = m00;
7294
+ out[1] = m01;
7295
+ out[2] = m02;
7296
+ out[3] = m03;
7297
+ out[4] = m10;
7298
+ out[5] = m11;
7299
+ out[6] = m12;
7300
+ out[7] = m13;
7301
+ out[8] = m20;
7302
+ out[9] = m21;
7303
+ out[10] = m22;
7304
+ out[11] = m23;
7305
+ out[12] = m30;
7306
+ out[13] = m31;
7307
+ out[14] = m32;
7308
+ out[15] = m33;
7309
+ return out;
7310
+ }
7311
+ function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {
7312
+ out[0] = m00;
7313
+ out[1] = m01;
7314
+ out[2] = m02;
7315
+ out[3] = m03;
7316
+ out[4] = m10;
7317
+ out[5] = m11;
7318
+ out[6] = m12;
7319
+ out[7] = m13;
7320
+ out[8] = m20;
7321
+ out[9] = m21;
7322
+ out[10] = m22;
7323
+ out[11] = m23;
7324
+ out[12] = m30;
7325
+ out[13] = m31;
7326
+ out[14] = m32;
7327
+ out[15] = m33;
7328
+ return out;
7329
+ }
7330
+ function identity(out) {
7331
+ out[0] = 1;
7332
+ out[1] = 0;
7333
+ out[2] = 0;
7334
+ out[3] = 0;
7335
+ out[4] = 0;
7336
+ out[5] = 1;
7337
+ out[6] = 0;
7338
+ out[7] = 0;
7339
+ out[8] = 0;
7340
+ out[9] = 0;
7341
+ out[10] = 1;
7342
+ out[11] = 0;
7343
+ out[12] = 0;
7344
+ out[13] = 0;
7345
+ out[14] = 0;
7346
+ out[15] = 1;
7347
+ return out;
7348
+ }
7349
+ function transpose(out, a) {
7350
+ if (out === a) {
7351
+ var a01 = a[1], a02 = a[2], a03 = a[3];
7352
+ var a12 = a[6], a13 = a[7];
7353
+ var a23 = a[11];
7354
+ out[1] = a[4];
7355
+ out[2] = a[8];
7356
+ out[3] = a[12];
7357
+ out[4] = a01;
7358
+ out[6] = a[9];
7359
+ out[7] = a[13];
7360
+ out[8] = a02;
7361
+ out[9] = a12;
7362
+ out[11] = a[14];
7363
+ out[12] = a03;
7364
+ out[13] = a13;
7365
+ out[14] = a23;
7366
+ } else {
7367
+ out[0] = a[0];
7368
+ out[1] = a[4];
7369
+ out[2] = a[8];
7370
+ out[3] = a[12];
7371
+ out[4] = a[1];
7372
+ out[5] = a[5];
7373
+ out[6] = a[9];
7374
+ out[7] = a[13];
7375
+ out[8] = a[2];
7376
+ out[9] = a[6];
7377
+ out[10] = a[10];
7378
+ out[11] = a[14];
7379
+ out[12] = a[3];
7380
+ out[13] = a[7];
7381
+ out[14] = a[11];
7382
+ out[15] = a[15];
7383
+ }
7384
+ return out;
7385
+ }
7386
+ function invert(out, a) {
7387
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
7388
+ var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
7389
+ var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
7390
+ var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
7391
+ var b00 = a00 * a11 - a01 * a10;
7392
+ var b01 = a00 * a12 - a02 * a10;
7393
+ var b02 = a00 * a13 - a03 * a10;
7394
+ var b03 = a01 * a12 - a02 * a11;
7395
+ var b04 = a01 * a13 - a03 * a11;
7396
+ var b05 = a02 * a13 - a03 * a12;
7397
+ var b06 = a20 * a31 - a21 * a30;
7398
+ var b07 = a20 * a32 - a22 * a30;
7399
+ var b08 = a20 * a33 - a23 * a30;
7400
+ var b09 = a21 * a32 - a22 * a31;
7401
+ var b10 = a21 * a33 - a23 * a31;
7402
+ var b11 = a22 * a33 - a23 * a32;
7403
+ var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
7404
+ if (!det) {
7405
+ return null;
7406
+ }
7407
+ det = 1 / det;
7408
+ out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
7409
+ out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
7410
+ out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
7411
+ out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
7412
+ out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
7413
+ out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
7414
+ out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
7415
+ out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
7416
+ out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
7417
+ out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
7418
+ out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
7419
+ out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
7420
+ out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
7421
+ out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
7422
+ out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
7423
+ out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
7424
+ return out;
7425
+ }
7426
+ function adjoint(out, a) {
7427
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
7428
+ var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
7429
+ var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
7430
+ var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
7431
+ var b00 = a00 * a11 - a01 * a10;
7432
+ var b01 = a00 * a12 - a02 * a10;
7433
+ var b02 = a00 * a13 - a03 * a10;
7434
+ var b03 = a01 * a12 - a02 * a11;
7435
+ var b04 = a01 * a13 - a03 * a11;
7436
+ var b05 = a02 * a13 - a03 * a12;
7437
+ var b06 = a20 * a31 - a21 * a30;
7438
+ var b07 = a20 * a32 - a22 * a30;
7439
+ var b08 = a20 * a33 - a23 * a30;
7440
+ var b09 = a21 * a32 - a22 * a31;
7441
+ var b10 = a21 * a33 - a23 * a31;
7442
+ var b11 = a22 * a33 - a23 * a32;
7443
+ out[0] = a11 * b11 - a12 * b10 + a13 * b09;
7444
+ out[1] = a02 * b10 - a01 * b11 - a03 * b09;
7445
+ out[2] = a31 * b05 - a32 * b04 + a33 * b03;
7446
+ out[3] = a22 * b04 - a21 * b05 - a23 * b03;
7447
+ out[4] = a12 * b08 - a10 * b11 - a13 * b07;
7448
+ out[5] = a00 * b11 - a02 * b08 + a03 * b07;
7449
+ out[6] = a32 * b02 - a30 * b05 - a33 * b01;
7450
+ out[7] = a20 * b05 - a22 * b02 + a23 * b01;
7451
+ out[8] = a10 * b10 - a11 * b08 + a13 * b06;
7452
+ out[9] = a01 * b08 - a00 * b10 - a03 * b06;
7453
+ out[10] = a30 * b04 - a31 * b02 + a33 * b00;
7454
+ out[11] = a21 * b02 - a20 * b04 - a23 * b00;
7455
+ out[12] = a11 * b07 - a10 * b09 - a12 * b06;
7456
+ out[13] = a00 * b09 - a01 * b07 + a02 * b06;
7457
+ out[14] = a31 * b01 - a30 * b03 - a32 * b00;
7458
+ out[15] = a20 * b03 - a21 * b01 + a22 * b00;
7459
+ return out;
7460
+ }
7461
+ function determinant(a) {
7462
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
7463
+ var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
7464
+ var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
7465
+ var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
7466
+ var b0 = a00 * a11 - a01 * a10;
7467
+ var b1 = a00 * a12 - a02 * a10;
7468
+ var b2 = a01 * a12 - a02 * a11;
7469
+ var b3 = a20 * a31 - a21 * a30;
7470
+ var b4 = a20 * a32 - a22 * a30;
7471
+ var b5 = a21 * a32 - a22 * a31;
7472
+ var b6 = a00 * b5 - a01 * b4 + a02 * b3;
7473
+ var b7 = a10 * b5 - a11 * b4 + a12 * b3;
7474
+ var b8 = a20 * b2 - a21 * b1 + a22 * b0;
7475
+ var b9 = a30 * b2 - a31 * b1 + a32 * b0;
7476
+ return a13 * b6 - a03 * b7 + a33 * b8 - a23 * b9;
7477
+ }
7478
+ function multiply(out, a, b) {
7479
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
7480
+ var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
7481
+ var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
7482
+ var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
7483
+ var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
7484
+ out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
7485
+ out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
7486
+ out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
7487
+ out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
7488
+ b0 = b[4];
7489
+ b1 = b[5];
7490
+ b2 = b[6];
7491
+ b3 = b[7];
7492
+ out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
7493
+ out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
7494
+ out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
7495
+ out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
7496
+ b0 = b[8];
7497
+ b1 = b[9];
7498
+ b2 = b[10];
7499
+ b3 = b[11];
7500
+ out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
7501
+ out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
7502
+ out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
7503
+ out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
7504
+ b0 = b[12];
7505
+ b1 = b[13];
7506
+ b2 = b[14];
7507
+ b3 = b[15];
7508
+ out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
7509
+ out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
7510
+ out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
7511
+ out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
7512
+ return out;
7513
+ }
7514
+ function translate(out, a, v) {
7515
+ var x = v[0], y = v[1], z = v[2];
7516
+ var a00, a01, a02, a03;
7517
+ var a10, a11, a12, a13;
7518
+ var a20, a21, a22, a23;
7519
+ if (a === out) {
7520
+ out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];
7521
+ out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];
7522
+ out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];
7523
+ out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];
7524
+ } else {
7525
+ a00 = a[0];
7526
+ a01 = a[1];
7527
+ a02 = a[2];
7528
+ a03 = a[3];
7529
+ a10 = a[4];
7530
+ a11 = a[5];
7531
+ a12 = a[6];
7532
+ a13 = a[7];
7533
+ a20 = a[8];
7534
+ a21 = a[9];
7535
+ a22 = a[10];
7536
+ a23 = a[11];
7537
+ out[0] = a00;
7538
+ out[1] = a01;
7539
+ out[2] = a02;
7540
+ out[3] = a03;
7541
+ out[4] = a10;
7542
+ out[5] = a11;
7543
+ out[6] = a12;
7544
+ out[7] = a13;
7545
+ out[8] = a20;
7546
+ out[9] = a21;
7547
+ out[10] = a22;
7548
+ out[11] = a23;
7549
+ out[12] = a00 * x + a10 * y + a20 * z + a[12];
7550
+ out[13] = a01 * x + a11 * y + a21 * z + a[13];
7551
+ out[14] = a02 * x + a12 * y + a22 * z + a[14];
7552
+ out[15] = a03 * x + a13 * y + a23 * z + a[15];
7553
+ }
7554
+ return out;
7555
+ }
7556
+ function scale(out, a, v) {
7557
+ var x = v[0], y = v[1], z = v[2];
7558
+ out[0] = a[0] * x;
7559
+ out[1] = a[1] * x;
7560
+ out[2] = a[2] * x;
7561
+ out[3] = a[3] * x;
7562
+ out[4] = a[4] * y;
7563
+ out[5] = a[5] * y;
7564
+ out[6] = a[6] * y;
7565
+ out[7] = a[7] * y;
7566
+ out[8] = a[8] * z;
7567
+ out[9] = a[9] * z;
7568
+ out[10] = a[10] * z;
7569
+ out[11] = a[11] * z;
7570
+ out[12] = a[12];
7571
+ out[13] = a[13];
7572
+ out[14] = a[14];
7573
+ out[15] = a[15];
7574
+ return out;
7575
+ }
7576
+ function rotate(out, a, rad, axis) {
7577
+ var x = axis[0], y = axis[1], z = axis[2];
7578
+ var len2 = Math.sqrt(x * x + y * y + z * z);
7579
+ var s, c, t;
7580
+ var a00, a01, a02, a03;
7581
+ var a10, a11, a12, a13;
7582
+ var a20, a21, a22, a23;
7583
+ var b00, b01, b02;
7584
+ var b10, b11, b12;
7585
+ var b20, b21, b22;
7586
+ if (len2 < EPSILON) {
7587
+ return null;
7588
+ }
7589
+ len2 = 1 / len2;
7590
+ x *= len2;
7591
+ y *= len2;
7592
+ z *= len2;
7593
+ s = Math.sin(rad);
7594
+ c = Math.cos(rad);
7595
+ t = 1 - c;
7596
+ a00 = a[0];
7597
+ a01 = a[1];
7598
+ a02 = a[2];
7599
+ a03 = a[3];
7600
+ a10 = a[4];
7601
+ a11 = a[5];
7602
+ a12 = a[6];
7603
+ a13 = a[7];
7604
+ a20 = a[8];
7605
+ a21 = a[9];
7606
+ a22 = a[10];
7607
+ a23 = a[11];
7608
+ b00 = x * x * t + c;
7609
+ b01 = y * x * t + z * s;
7610
+ b02 = z * x * t - y * s;
7611
+ b10 = x * y * t - z * s;
7612
+ b11 = y * y * t + c;
7613
+ b12 = z * y * t + x * s;
7614
+ b20 = x * z * t + y * s;
7615
+ b21 = y * z * t - x * s;
7616
+ b22 = z * z * t + c;
7617
+ out[0] = a00 * b00 + a10 * b01 + a20 * b02;
7618
+ out[1] = a01 * b00 + a11 * b01 + a21 * b02;
7619
+ out[2] = a02 * b00 + a12 * b01 + a22 * b02;
7620
+ out[3] = a03 * b00 + a13 * b01 + a23 * b02;
7621
+ out[4] = a00 * b10 + a10 * b11 + a20 * b12;
7622
+ out[5] = a01 * b10 + a11 * b11 + a21 * b12;
7623
+ out[6] = a02 * b10 + a12 * b11 + a22 * b12;
7624
+ out[7] = a03 * b10 + a13 * b11 + a23 * b12;
7625
+ out[8] = a00 * b20 + a10 * b21 + a20 * b22;
7626
+ out[9] = a01 * b20 + a11 * b21 + a21 * b22;
7627
+ out[10] = a02 * b20 + a12 * b21 + a22 * b22;
7628
+ out[11] = a03 * b20 + a13 * b21 + a23 * b22;
7629
+ if (a !== out) {
7630
+ out[12] = a[12];
7631
+ out[13] = a[13];
7632
+ out[14] = a[14];
7633
+ out[15] = a[15];
7634
+ }
7635
+ return out;
7636
+ }
7637
+ function rotateX(out, a, rad) {
7638
+ var s = Math.sin(rad);
7639
+ var c = Math.cos(rad);
7640
+ var a10 = a[4];
7641
+ var a11 = a[5];
7642
+ var a12 = a[6];
7643
+ var a13 = a[7];
7644
+ var a20 = a[8];
7645
+ var a21 = a[9];
7646
+ var a22 = a[10];
7647
+ var a23 = a[11];
7648
+ if (a !== out) {
7649
+ out[0] = a[0];
7650
+ out[1] = a[1];
7651
+ out[2] = a[2];
7652
+ out[3] = a[3];
7653
+ out[12] = a[12];
7654
+ out[13] = a[13];
7655
+ out[14] = a[14];
7656
+ out[15] = a[15];
7657
+ }
7658
+ out[4] = a10 * c + a20 * s;
7659
+ out[5] = a11 * c + a21 * s;
7660
+ out[6] = a12 * c + a22 * s;
7661
+ out[7] = a13 * c + a23 * s;
7662
+ out[8] = a20 * c - a10 * s;
7663
+ out[9] = a21 * c - a11 * s;
7664
+ out[10] = a22 * c - a12 * s;
7665
+ out[11] = a23 * c - a13 * s;
7666
+ return out;
7667
+ }
7668
+ function rotateY(out, a, rad) {
7669
+ var s = Math.sin(rad);
7670
+ var c = Math.cos(rad);
7671
+ var a00 = a[0];
7672
+ var a01 = a[1];
7673
+ var a02 = a[2];
7674
+ var a03 = a[3];
7675
+ var a20 = a[8];
7676
+ var a21 = a[9];
7677
+ var a22 = a[10];
7678
+ var a23 = a[11];
7679
+ if (a !== out) {
7680
+ out[4] = a[4];
7681
+ out[5] = a[5];
7682
+ out[6] = a[6];
7683
+ out[7] = a[7];
7684
+ out[12] = a[12];
7685
+ out[13] = a[13];
7686
+ out[14] = a[14];
7687
+ out[15] = a[15];
7688
+ }
7689
+ out[0] = a00 * c - a20 * s;
7690
+ out[1] = a01 * c - a21 * s;
7691
+ out[2] = a02 * c - a22 * s;
7692
+ out[3] = a03 * c - a23 * s;
7693
+ out[8] = a00 * s + a20 * c;
7694
+ out[9] = a01 * s + a21 * c;
7695
+ out[10] = a02 * s + a22 * c;
7696
+ out[11] = a03 * s + a23 * c;
7697
+ return out;
7698
+ }
7699
+ function rotateZ(out, a, rad) {
7700
+ var s = Math.sin(rad);
7701
+ var c = Math.cos(rad);
7702
+ var a00 = a[0];
7703
+ var a01 = a[1];
7704
+ var a02 = a[2];
7705
+ var a03 = a[3];
7706
+ var a10 = a[4];
7707
+ var a11 = a[5];
7708
+ var a12 = a[6];
7709
+ var a13 = a[7];
7710
+ if (a !== out) {
7711
+ out[8] = a[8];
7712
+ out[9] = a[9];
7713
+ out[10] = a[10];
7714
+ out[11] = a[11];
7715
+ out[12] = a[12];
7716
+ out[13] = a[13];
7717
+ out[14] = a[14];
7718
+ out[15] = a[15];
7719
+ }
7720
+ out[0] = a00 * c + a10 * s;
7721
+ out[1] = a01 * c + a11 * s;
7722
+ out[2] = a02 * c + a12 * s;
7723
+ out[3] = a03 * c + a13 * s;
7724
+ out[4] = a10 * c - a00 * s;
7725
+ out[5] = a11 * c - a01 * s;
7726
+ out[6] = a12 * c - a02 * s;
7727
+ out[7] = a13 * c - a03 * s;
7728
+ return out;
7729
+ }
7730
+ function fromTranslation(out, v) {
7731
+ out[0] = 1;
7732
+ out[1] = 0;
7733
+ out[2] = 0;
7734
+ out[3] = 0;
7735
+ out[4] = 0;
7736
+ out[5] = 1;
7737
+ out[6] = 0;
7738
+ out[7] = 0;
7739
+ out[8] = 0;
7740
+ out[9] = 0;
7741
+ out[10] = 1;
7742
+ out[11] = 0;
7743
+ out[12] = v[0];
7744
+ out[13] = v[1];
7745
+ out[14] = v[2];
7746
+ out[15] = 1;
7747
+ return out;
7748
+ }
7749
+ function fromScaling(out, v) {
7750
+ out[0] = v[0];
7751
+ out[1] = 0;
7752
+ out[2] = 0;
7753
+ out[3] = 0;
7754
+ out[4] = 0;
7755
+ out[5] = v[1];
7756
+ out[6] = 0;
7757
+ out[7] = 0;
7758
+ out[8] = 0;
7759
+ out[9] = 0;
7760
+ out[10] = v[2];
7761
+ out[11] = 0;
7762
+ out[12] = 0;
7763
+ out[13] = 0;
7764
+ out[14] = 0;
7765
+ out[15] = 1;
7766
+ return out;
7767
+ }
7768
+ function fromRotation(out, rad, axis) {
7769
+ var x = axis[0], y = axis[1], z = axis[2];
7770
+ var len2 = Math.sqrt(x * x + y * y + z * z);
7771
+ var s, c, t;
7772
+ if (len2 < EPSILON) {
7773
+ return null;
7774
+ }
7775
+ len2 = 1 / len2;
7776
+ x *= len2;
7777
+ y *= len2;
7778
+ z *= len2;
7779
+ s = Math.sin(rad);
7780
+ c = Math.cos(rad);
7781
+ t = 1 - c;
7782
+ out[0] = x * x * t + c;
7783
+ out[1] = y * x * t + z * s;
7784
+ out[2] = z * x * t - y * s;
7785
+ out[3] = 0;
7786
+ out[4] = x * y * t - z * s;
7787
+ out[5] = y * y * t + c;
7788
+ out[6] = z * y * t + x * s;
7789
+ out[7] = 0;
7790
+ out[8] = x * z * t + y * s;
7791
+ out[9] = y * z * t - x * s;
7792
+ out[10] = z * z * t + c;
7793
+ out[11] = 0;
7794
+ out[12] = 0;
7795
+ out[13] = 0;
7796
+ out[14] = 0;
7797
+ out[15] = 1;
7798
+ return out;
7799
+ }
7800
+ function fromXRotation(out, rad) {
7801
+ var s = Math.sin(rad);
7802
+ var c = Math.cos(rad);
7803
+ out[0] = 1;
7804
+ out[1] = 0;
7805
+ out[2] = 0;
7806
+ out[3] = 0;
7807
+ out[4] = 0;
7808
+ out[5] = c;
7809
+ out[6] = s;
7810
+ out[7] = 0;
7811
+ out[8] = 0;
7812
+ out[9] = -s;
7813
+ out[10] = c;
7814
+ out[11] = 0;
7815
+ out[12] = 0;
7816
+ out[13] = 0;
7817
+ out[14] = 0;
7818
+ out[15] = 1;
7819
+ return out;
7820
+ }
7821
+ function fromYRotation(out, rad) {
7822
+ var s = Math.sin(rad);
7823
+ var c = Math.cos(rad);
7824
+ out[0] = c;
7825
+ out[1] = 0;
7826
+ out[2] = -s;
7827
+ out[3] = 0;
7828
+ out[4] = 0;
7829
+ out[5] = 1;
7830
+ out[6] = 0;
7831
+ out[7] = 0;
7832
+ out[8] = s;
7833
+ out[9] = 0;
7834
+ out[10] = c;
7835
+ out[11] = 0;
7836
+ out[12] = 0;
7837
+ out[13] = 0;
7838
+ out[14] = 0;
7839
+ out[15] = 1;
7840
+ return out;
7841
+ }
7842
+ function fromZRotation(out, rad) {
7843
+ var s = Math.sin(rad);
7844
+ var c = Math.cos(rad);
7845
+ out[0] = c;
7846
+ out[1] = s;
7847
+ out[2] = 0;
7848
+ out[3] = 0;
7849
+ out[4] = -s;
7850
+ out[5] = c;
7851
+ out[6] = 0;
7852
+ out[7] = 0;
7853
+ out[8] = 0;
7854
+ out[9] = 0;
7855
+ out[10] = 1;
7856
+ out[11] = 0;
7857
+ out[12] = 0;
7858
+ out[13] = 0;
7859
+ out[14] = 0;
7860
+ out[15] = 1;
7861
+ return out;
7862
+ }
7863
+ function fromRotationTranslation(out, q, v) {
7864
+ var x = q[0], y = q[1], z = q[2], w = q[3];
7865
+ var x2 = x + x;
7866
+ var y2 = y + y;
7867
+ var z2 = z + z;
7868
+ var xx = x * x2;
7869
+ var xy = x * y2;
7870
+ var xz = x * z2;
7871
+ var yy = y * y2;
7872
+ var yz = y * z2;
7873
+ var zz = z * z2;
7874
+ var wx = w * x2;
7875
+ var wy = w * y2;
7876
+ var wz = w * z2;
7877
+ out[0] = 1 - (yy + zz);
7878
+ out[1] = xy + wz;
7879
+ out[2] = xz - wy;
7880
+ out[3] = 0;
7881
+ out[4] = xy - wz;
7882
+ out[5] = 1 - (xx + zz);
7883
+ out[6] = yz + wx;
7884
+ out[7] = 0;
7885
+ out[8] = xz + wy;
7886
+ out[9] = yz - wx;
7887
+ out[10] = 1 - (xx + yy);
7888
+ out[11] = 0;
7889
+ out[12] = v[0];
7890
+ out[13] = v[1];
7891
+ out[14] = v[2];
7892
+ out[15] = 1;
7893
+ return out;
7894
+ }
7895
+ function fromQuat2(out, a) {
7896
+ var translation = new ARRAY_TYPE(3);
7897
+ var bx = -a[0], by = -a[1], bz = -a[2], bw = a[3], ax = a[4], ay = a[5], az = a[6], aw = a[7];
7898
+ var magnitude = bx * bx + by * by + bz * bz + bw * bw;
7899
+ if (magnitude > 0) {
7900
+ translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;
7901
+ translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;
7902
+ translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;
7903
+ } else {
7904
+ translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;
7905
+ translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;
7906
+ translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;
7907
+ }
7908
+ fromRotationTranslation(out, a, translation);
7909
+ return out;
7910
+ }
7911
+ function getTranslation(out, mat) {
7912
+ out[0] = mat[12];
7913
+ out[1] = mat[13];
7914
+ out[2] = mat[14];
7915
+ return out;
7916
+ }
7917
+ function getScaling(out, mat) {
7918
+ var m11 = mat[0];
7919
+ var m12 = mat[1];
7920
+ var m13 = mat[2];
7921
+ var m21 = mat[4];
7922
+ var m22 = mat[5];
7923
+ var m23 = mat[6];
7924
+ var m31 = mat[8];
7925
+ var m32 = mat[9];
7926
+ var m33 = mat[10];
7927
+ out[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13);
7928
+ out[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23);
7929
+ out[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33);
7930
+ return out;
7931
+ }
7932
+ function getRotation(out, mat) {
7933
+ var scaling = new ARRAY_TYPE(3);
7934
+ getScaling(scaling, mat);
7935
+ var is1 = 1 / scaling[0];
7936
+ var is2 = 1 / scaling[1];
7937
+ var is3 = 1 / scaling[2];
7938
+ var sm11 = mat[0] * is1;
7939
+ var sm12 = mat[1] * is2;
7940
+ var sm13 = mat[2] * is3;
7941
+ var sm21 = mat[4] * is1;
7942
+ var sm22 = mat[5] * is2;
7943
+ var sm23 = mat[6] * is3;
7944
+ var sm31 = mat[8] * is1;
7945
+ var sm32 = mat[9] * is2;
7946
+ var sm33 = mat[10] * is3;
7947
+ var trace = sm11 + sm22 + sm33;
7948
+ var S = 0;
7949
+ if (trace > 0) {
7950
+ S = Math.sqrt(trace + 1) * 2;
7951
+ out[3] = 0.25 * S;
7952
+ out[0] = (sm23 - sm32) / S;
7953
+ out[1] = (sm31 - sm13) / S;
7954
+ out[2] = (sm12 - sm21) / S;
7955
+ } else if (sm11 > sm22 && sm11 > sm33) {
7956
+ S = Math.sqrt(1 + sm11 - sm22 - sm33) * 2;
7957
+ out[3] = (sm23 - sm32) / S;
7958
+ out[0] = 0.25 * S;
7959
+ out[1] = (sm12 + sm21) / S;
7960
+ out[2] = (sm31 + sm13) / S;
7961
+ } else if (sm22 > sm33) {
7962
+ S = Math.sqrt(1 + sm22 - sm11 - sm33) * 2;
7963
+ out[3] = (sm31 - sm13) / S;
7964
+ out[0] = (sm12 + sm21) / S;
7965
+ out[1] = 0.25 * S;
7966
+ out[2] = (sm23 + sm32) / S;
7967
+ } else {
7968
+ S = Math.sqrt(1 + sm33 - sm11 - sm22) * 2;
7969
+ out[3] = (sm12 - sm21) / S;
7970
+ out[0] = (sm31 + sm13) / S;
7971
+ out[1] = (sm23 + sm32) / S;
7972
+ out[2] = 0.25 * S;
7973
+ }
7974
+ return out;
7975
+ }
7976
+ function decompose(out_r, out_t, out_s, mat) {
7977
+ out_t[0] = mat[12];
7978
+ out_t[1] = mat[13];
7979
+ out_t[2] = mat[14];
7980
+ var m11 = mat[0];
7981
+ var m12 = mat[1];
7982
+ var m13 = mat[2];
7983
+ var m21 = mat[4];
7984
+ var m22 = mat[5];
7985
+ var m23 = mat[6];
7986
+ var m31 = mat[8];
7987
+ var m32 = mat[9];
7988
+ var m33 = mat[10];
7989
+ out_s[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13);
7990
+ out_s[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23);
7991
+ out_s[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33);
7992
+ var is1 = 1 / out_s[0];
7993
+ var is2 = 1 / out_s[1];
7994
+ var is3 = 1 / out_s[2];
7995
+ var sm11 = m11 * is1;
7996
+ var sm12 = m12 * is2;
7997
+ var sm13 = m13 * is3;
7998
+ var sm21 = m21 * is1;
7999
+ var sm22 = m22 * is2;
8000
+ var sm23 = m23 * is3;
8001
+ var sm31 = m31 * is1;
8002
+ var sm32 = m32 * is2;
8003
+ var sm33 = m33 * is3;
8004
+ var trace = sm11 + sm22 + sm33;
8005
+ var S = 0;
8006
+ if (trace > 0) {
8007
+ S = Math.sqrt(trace + 1) * 2;
8008
+ out_r[3] = 0.25 * S;
8009
+ out_r[0] = (sm23 - sm32) / S;
8010
+ out_r[1] = (sm31 - sm13) / S;
8011
+ out_r[2] = (sm12 - sm21) / S;
8012
+ } else if (sm11 > sm22 && sm11 > sm33) {
8013
+ S = Math.sqrt(1 + sm11 - sm22 - sm33) * 2;
8014
+ out_r[3] = (sm23 - sm32) / S;
8015
+ out_r[0] = 0.25 * S;
8016
+ out_r[1] = (sm12 + sm21) / S;
8017
+ out_r[2] = (sm31 + sm13) / S;
8018
+ } else if (sm22 > sm33) {
8019
+ S = Math.sqrt(1 + sm22 - sm11 - sm33) * 2;
8020
+ out_r[3] = (sm31 - sm13) / S;
8021
+ out_r[0] = (sm12 + sm21) / S;
8022
+ out_r[1] = 0.25 * S;
8023
+ out_r[2] = (sm23 + sm32) / S;
8024
+ } else {
8025
+ S = Math.sqrt(1 + sm33 - sm11 - sm22) * 2;
8026
+ out_r[3] = (sm12 - sm21) / S;
8027
+ out_r[0] = (sm31 + sm13) / S;
8028
+ out_r[1] = (sm23 + sm32) / S;
8029
+ out_r[2] = 0.25 * S;
8030
+ }
8031
+ return out_r;
8032
+ }
8033
+ function fromRotationTranslationScale(out, q, v, s) {
8034
+ var x = q[0], y = q[1], z = q[2], w = q[3];
8035
+ var x2 = x + x;
8036
+ var y2 = y + y;
8037
+ var z2 = z + z;
8038
+ var xx = x * x2;
8039
+ var xy = x * y2;
8040
+ var xz = x * z2;
8041
+ var yy = y * y2;
8042
+ var yz = y * z2;
8043
+ var zz = z * z2;
8044
+ var wx = w * x2;
8045
+ var wy = w * y2;
8046
+ var wz = w * z2;
8047
+ var sx = s[0];
8048
+ var sy = s[1];
8049
+ var sz = s[2];
8050
+ out[0] = (1 - (yy + zz)) * sx;
8051
+ out[1] = (xy + wz) * sx;
8052
+ out[2] = (xz - wy) * sx;
8053
+ out[3] = 0;
8054
+ out[4] = (xy - wz) * sy;
8055
+ out[5] = (1 - (xx + zz)) * sy;
8056
+ out[6] = (yz + wx) * sy;
8057
+ out[7] = 0;
8058
+ out[8] = (xz + wy) * sz;
8059
+ out[9] = (yz - wx) * sz;
8060
+ out[10] = (1 - (xx + yy)) * sz;
8061
+ out[11] = 0;
8062
+ out[12] = v[0];
8063
+ out[13] = v[1];
8064
+ out[14] = v[2];
8065
+ out[15] = 1;
8066
+ return out;
8067
+ }
8068
+ function fromRotationTranslationScaleOrigin(out, q, v, s, o) {
8069
+ var x = q[0], y = q[1], z = q[2], w = q[3];
8070
+ var x2 = x + x;
8071
+ var y2 = y + y;
8072
+ var z2 = z + z;
8073
+ var xx = x * x2;
8074
+ var xy = x * y2;
8075
+ var xz = x * z2;
8076
+ var yy = y * y2;
8077
+ var yz = y * z2;
8078
+ var zz = z * z2;
8079
+ var wx = w * x2;
8080
+ var wy = w * y2;
8081
+ var wz = w * z2;
8082
+ var sx = s[0];
8083
+ var sy = s[1];
8084
+ var sz = s[2];
8085
+ var ox = o[0];
8086
+ var oy = o[1];
8087
+ var oz = o[2];
8088
+ var out0 = (1 - (yy + zz)) * sx;
8089
+ var out1 = (xy + wz) * sx;
8090
+ var out2 = (xz - wy) * sx;
8091
+ var out4 = (xy - wz) * sy;
8092
+ var out5 = (1 - (xx + zz)) * sy;
8093
+ var out6 = (yz + wx) * sy;
8094
+ var out8 = (xz + wy) * sz;
8095
+ var out9 = (yz - wx) * sz;
8096
+ var out10 = (1 - (xx + yy)) * sz;
8097
+ out[0] = out0;
8098
+ out[1] = out1;
8099
+ out[2] = out2;
8100
+ out[3] = 0;
8101
+ out[4] = out4;
8102
+ out[5] = out5;
8103
+ out[6] = out6;
8104
+ out[7] = 0;
8105
+ out[8] = out8;
8106
+ out[9] = out9;
8107
+ out[10] = out10;
8108
+ out[11] = 0;
8109
+ out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);
8110
+ out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);
8111
+ out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);
8112
+ out[15] = 1;
8113
+ return out;
8114
+ }
8115
+ function fromQuat(out, q) {
8116
+ var x = q[0], y = q[1], z = q[2], w = q[3];
8117
+ var x2 = x + x;
8118
+ var y2 = y + y;
8119
+ var z2 = z + z;
8120
+ var xx = x * x2;
8121
+ var yx = y * x2;
8122
+ var yy = y * y2;
8123
+ var zx = z * x2;
8124
+ var zy = z * y2;
8125
+ var zz = z * z2;
8126
+ var wx = w * x2;
8127
+ var wy = w * y2;
8128
+ var wz = w * z2;
8129
+ out[0] = 1 - yy - zz;
8130
+ out[1] = yx + wz;
8131
+ out[2] = zx - wy;
8132
+ out[3] = 0;
8133
+ out[4] = yx - wz;
8134
+ out[5] = 1 - xx - zz;
8135
+ out[6] = zy + wx;
8136
+ out[7] = 0;
8137
+ out[8] = zx + wy;
8138
+ out[9] = zy - wx;
8139
+ out[10] = 1 - xx - yy;
8140
+ out[11] = 0;
8141
+ out[12] = 0;
8142
+ out[13] = 0;
8143
+ out[14] = 0;
8144
+ out[15] = 1;
8145
+ return out;
8146
+ }
8147
+ function frustum(out, left, right, bottom, top, near, far) {
8148
+ var rl = 1 / (right - left);
8149
+ var tb = 1 / (top - bottom);
8150
+ var nf = 1 / (near - far);
8151
+ out[0] = near * 2 * rl;
8152
+ out[1] = 0;
8153
+ out[2] = 0;
8154
+ out[3] = 0;
8155
+ out[4] = 0;
8156
+ out[5] = near * 2 * tb;
8157
+ out[6] = 0;
8158
+ out[7] = 0;
8159
+ out[8] = (right + left) * rl;
8160
+ out[9] = (top + bottom) * tb;
8161
+ out[10] = (far + near) * nf;
8162
+ out[11] = -1;
8163
+ out[12] = 0;
8164
+ out[13] = 0;
8165
+ out[14] = far * near * 2 * nf;
8166
+ out[15] = 0;
8167
+ return out;
8168
+ }
8169
+ function perspectiveNO(out, fovy, aspect, near, far) {
8170
+ var f = 1 / Math.tan(fovy / 2);
8171
+ out[0] = f / aspect;
8172
+ out[1] = 0;
8173
+ out[2] = 0;
8174
+ out[3] = 0;
8175
+ out[4] = 0;
8176
+ out[5] = f;
8177
+ out[6] = 0;
8178
+ out[7] = 0;
8179
+ out[8] = 0;
8180
+ out[9] = 0;
8181
+ out[11] = -1;
8182
+ out[12] = 0;
8183
+ out[13] = 0;
8184
+ out[15] = 0;
8185
+ if (far != null && far !== Infinity) {
8186
+ var nf = 1 / (near - far);
8187
+ out[10] = (far + near) * nf;
8188
+ out[14] = 2 * far * near * nf;
8189
+ } else {
8190
+ out[10] = -1;
8191
+ out[14] = -2 * near;
8192
+ }
8193
+ return out;
8194
+ }
8195
+ var perspective = perspectiveNO;
8196
+ function perspectiveZO(out, fovy, aspect, near, far) {
8197
+ var f = 1 / Math.tan(fovy / 2);
8198
+ out[0] = f / aspect;
8199
+ out[1] = 0;
8200
+ out[2] = 0;
8201
+ out[3] = 0;
8202
+ out[4] = 0;
8203
+ out[5] = f;
8204
+ out[6] = 0;
8205
+ out[7] = 0;
8206
+ out[8] = 0;
8207
+ out[9] = 0;
8208
+ out[11] = -1;
8209
+ out[12] = 0;
8210
+ out[13] = 0;
8211
+ out[15] = 0;
8212
+ if (far != null && far !== Infinity) {
8213
+ var nf = 1 / (near - far);
8214
+ out[10] = far * nf;
8215
+ out[14] = far * near * nf;
8216
+ } else {
8217
+ out[10] = -1;
8218
+ out[14] = -near;
8219
+ }
8220
+ return out;
8221
+ }
8222
+ function perspectiveFromFieldOfView(out, fov, near, far) {
8223
+ var upTan = Math.tan(fov.upDegrees * Math.PI / 180);
8224
+ var downTan = Math.tan(fov.downDegrees * Math.PI / 180);
8225
+ var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180);
8226
+ var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180);
8227
+ var xScale = 2 / (leftTan + rightTan);
8228
+ var yScale = 2 / (upTan + downTan);
8229
+ out[0] = xScale;
8230
+ out[1] = 0;
8231
+ out[2] = 0;
8232
+ out[3] = 0;
8233
+ out[4] = 0;
8234
+ out[5] = yScale;
8235
+ out[6] = 0;
8236
+ out[7] = 0;
8237
+ out[8] = -((leftTan - rightTan) * xScale * 0.5);
8238
+ out[9] = (upTan - downTan) * yScale * 0.5;
8239
+ out[10] = far / (near - far);
8240
+ out[11] = -1;
8241
+ out[12] = 0;
8242
+ out[13] = 0;
8243
+ out[14] = far * near / (near - far);
8244
+ out[15] = 0;
8245
+ return out;
8246
+ }
8247
+ function orthoNO(out, left, right, bottom, top, near, far) {
8248
+ var lr = 1 / (left - right);
8249
+ var bt = 1 / (bottom - top);
8250
+ var nf = 1 / (near - far);
8251
+ out[0] = -2 * lr;
8252
+ out[1] = 0;
8253
+ out[2] = 0;
8254
+ out[3] = 0;
8255
+ out[4] = 0;
8256
+ out[5] = -2 * bt;
8257
+ out[6] = 0;
8258
+ out[7] = 0;
8259
+ out[8] = 0;
8260
+ out[9] = 0;
8261
+ out[10] = 2 * nf;
8262
+ out[11] = 0;
8263
+ out[12] = (left + right) * lr;
8264
+ out[13] = (top + bottom) * bt;
8265
+ out[14] = (far + near) * nf;
8266
+ out[15] = 1;
8267
+ return out;
8268
+ }
8269
+ var ortho = orthoNO;
8270
+ function orthoZO(out, left, right, bottom, top, near, far) {
8271
+ var lr = 1 / (left - right);
8272
+ var bt = 1 / (bottom - top);
8273
+ var nf = 1 / (near - far);
8274
+ out[0] = -2 * lr;
8275
+ out[1] = 0;
8276
+ out[2] = 0;
8277
+ out[3] = 0;
8278
+ out[4] = 0;
8279
+ out[5] = -2 * bt;
8280
+ out[6] = 0;
8281
+ out[7] = 0;
8282
+ out[8] = 0;
8283
+ out[9] = 0;
8284
+ out[10] = nf;
8285
+ out[11] = 0;
8286
+ out[12] = (left + right) * lr;
8287
+ out[13] = (top + bottom) * bt;
8288
+ out[14] = near * nf;
8289
+ out[15] = 1;
8290
+ return out;
8291
+ }
8292
+ function lookAt(out, eye, center, up) {
8293
+ var x0, x1, x2, y0, y1, y2, z0, z1, z2, len2;
8294
+ var eyex = eye[0];
8295
+ var eyey = eye[1];
8296
+ var eyez = eye[2];
8297
+ var upx = up[0];
8298
+ var upy = up[1];
8299
+ var upz = up[2];
8300
+ var centerx = center[0];
8301
+ var centery = center[1];
8302
+ var centerz = center[2];
8303
+ if (Math.abs(eyex - centerx) < EPSILON && Math.abs(eyey - centery) < EPSILON && Math.abs(eyez - centerz) < EPSILON) {
8304
+ return identity(out);
8305
+ }
8306
+ z0 = eyex - centerx;
8307
+ z1 = eyey - centery;
8308
+ z2 = eyez - centerz;
8309
+ len2 = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);
8310
+ z0 *= len2;
8311
+ z1 *= len2;
8312
+ z2 *= len2;
8313
+ x0 = upy * z2 - upz * z1;
8314
+ x1 = upz * z0 - upx * z2;
8315
+ x2 = upx * z1 - upy * z0;
8316
+ len2 = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);
8317
+ if (!len2) {
8318
+ x0 = 0;
8319
+ x1 = 0;
8320
+ x2 = 0;
8321
+ } else {
8322
+ len2 = 1 / len2;
8323
+ x0 *= len2;
8324
+ x1 *= len2;
8325
+ x2 *= len2;
8326
+ }
8327
+ y0 = z1 * x2 - z2 * x1;
8328
+ y1 = z2 * x0 - z0 * x2;
8329
+ y2 = z0 * x1 - z1 * x0;
8330
+ len2 = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);
8331
+ if (!len2) {
8332
+ y0 = 0;
8333
+ y1 = 0;
8334
+ y2 = 0;
8335
+ } else {
8336
+ len2 = 1 / len2;
8337
+ y0 *= len2;
8338
+ y1 *= len2;
8339
+ y2 *= len2;
8340
+ }
8341
+ out[0] = x0;
8342
+ out[1] = y0;
8343
+ out[2] = z0;
8344
+ out[3] = 0;
8345
+ out[4] = x1;
8346
+ out[5] = y1;
8347
+ out[6] = z1;
8348
+ out[7] = 0;
8349
+ out[8] = x2;
8350
+ out[9] = y2;
8351
+ out[10] = z2;
8352
+ out[11] = 0;
8353
+ out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);
8354
+ out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);
8355
+ out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);
8356
+ out[15] = 1;
8357
+ return out;
8358
+ }
8359
+ function targetTo(out, eye, target, up) {
8360
+ var eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2];
8361
+ var z0 = eyex - target[0], z1 = eyey - target[1], z2 = eyez - target[2];
8362
+ var len2 = z0 * z0 + z1 * z1 + z2 * z2;
8363
+ if (len2 > 0) {
8364
+ len2 = 1 / Math.sqrt(len2);
8365
+ z0 *= len2;
8366
+ z1 *= len2;
8367
+ z2 *= len2;
8368
+ }
8369
+ var x0 = upy * z2 - upz * z1, x1 = upz * z0 - upx * z2, x2 = upx * z1 - upy * z0;
8370
+ len2 = x0 * x0 + x1 * x1 + x2 * x2;
8371
+ if (len2 > 0) {
8372
+ len2 = 1 / Math.sqrt(len2);
8373
+ x0 *= len2;
8374
+ x1 *= len2;
8375
+ x2 *= len2;
8376
+ }
8377
+ out[0] = x0;
8378
+ out[1] = x1;
8379
+ out[2] = x2;
8380
+ out[3] = 0;
8381
+ out[4] = z1 * x2 - z2 * x1;
8382
+ out[5] = z2 * x0 - z0 * x2;
8383
+ out[6] = z0 * x1 - z1 * x0;
8384
+ out[7] = 0;
8385
+ out[8] = z0;
8386
+ out[9] = z1;
8387
+ out[10] = z2;
8388
+ out[11] = 0;
8389
+ out[12] = eyex;
8390
+ out[13] = eyey;
8391
+ out[14] = eyez;
8392
+ out[15] = 1;
8393
+ return out;
8394
+ }
8395
+ function str(a) {
8396
+ return "mat4(" + a[0] + ", " + a[1] + ", " + a[2] + ", " + a[3] + ", " + a[4] + ", " + a[5] + ", " + a[6] + ", " + a[7] + ", " + a[8] + ", " + a[9] + ", " + a[10] + ", " + a[11] + ", " + a[12] + ", " + a[13] + ", " + a[14] + ", " + a[15] + ")";
8397
+ }
8398
+ function frob(a) {
8399
+ return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3] + a[4] * a[4] + a[5] * a[5] + a[6] * a[6] + a[7] * a[7] + a[8] * a[8] + a[9] * a[9] + a[10] * a[10] + a[11] * a[11] + a[12] * a[12] + a[13] * a[13] + a[14] * a[14] + a[15] * a[15]);
8400
+ }
8401
+ function add(out, a, b) {
8402
+ out[0] = a[0] + b[0];
8403
+ out[1] = a[1] + b[1];
8404
+ out[2] = a[2] + b[2];
8405
+ out[3] = a[3] + b[3];
8406
+ out[4] = a[4] + b[4];
8407
+ out[5] = a[5] + b[5];
8408
+ out[6] = a[6] + b[6];
8409
+ out[7] = a[7] + b[7];
8410
+ out[8] = a[8] + b[8];
8411
+ out[9] = a[9] + b[9];
8412
+ out[10] = a[10] + b[10];
8413
+ out[11] = a[11] + b[11];
8414
+ out[12] = a[12] + b[12];
8415
+ out[13] = a[13] + b[13];
8416
+ out[14] = a[14] + b[14];
8417
+ out[15] = a[15] + b[15];
8418
+ return out;
8419
+ }
8420
+ function subtract(out, a, b) {
8421
+ out[0] = a[0] - b[0];
8422
+ out[1] = a[1] - b[1];
8423
+ out[2] = a[2] - b[2];
8424
+ out[3] = a[3] - b[3];
8425
+ out[4] = a[4] - b[4];
8426
+ out[5] = a[5] - b[5];
8427
+ out[6] = a[6] - b[6];
8428
+ out[7] = a[7] - b[7];
8429
+ out[8] = a[8] - b[8];
8430
+ out[9] = a[9] - b[9];
8431
+ out[10] = a[10] - b[10];
8432
+ out[11] = a[11] - b[11];
8433
+ out[12] = a[12] - b[12];
8434
+ out[13] = a[13] - b[13];
8435
+ out[14] = a[14] - b[14];
8436
+ out[15] = a[15] - b[15];
8437
+ return out;
8438
+ }
8439
+ function multiplyScalar(out, a, b) {
8440
+ out[0] = a[0] * b;
8441
+ out[1] = a[1] * b;
8442
+ out[2] = a[2] * b;
8443
+ out[3] = a[3] * b;
8444
+ out[4] = a[4] * b;
8445
+ out[5] = a[5] * b;
8446
+ out[6] = a[6] * b;
8447
+ out[7] = a[7] * b;
8448
+ out[8] = a[8] * b;
8449
+ out[9] = a[9] * b;
8450
+ out[10] = a[10] * b;
8451
+ out[11] = a[11] * b;
8452
+ out[12] = a[12] * b;
8453
+ out[13] = a[13] * b;
8454
+ out[14] = a[14] * b;
8455
+ out[15] = a[15] * b;
8456
+ return out;
8457
+ }
8458
+ function multiplyScalarAndAdd(out, a, b, scale3) {
8459
+ out[0] = a[0] + b[0] * scale3;
8460
+ out[1] = a[1] + b[1] * scale3;
8461
+ out[2] = a[2] + b[2] * scale3;
8462
+ out[3] = a[3] + b[3] * scale3;
8463
+ out[4] = a[4] + b[4] * scale3;
8464
+ out[5] = a[5] + b[5] * scale3;
8465
+ out[6] = a[6] + b[6] * scale3;
8466
+ out[7] = a[7] + b[7] * scale3;
8467
+ out[8] = a[8] + b[8] * scale3;
8468
+ out[9] = a[9] + b[9] * scale3;
8469
+ out[10] = a[10] + b[10] * scale3;
8470
+ out[11] = a[11] + b[11] * scale3;
8471
+ out[12] = a[12] + b[12] * scale3;
8472
+ out[13] = a[13] + b[13] * scale3;
8473
+ out[14] = a[14] + b[14] * scale3;
8474
+ out[15] = a[15] + b[15] * scale3;
8475
+ return out;
8476
+ }
8477
+ function exactEquals(a, b) {
8478
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];
8479
+ }
8480
+ function equals(a, b) {
8481
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];
8482
+ var a4 = a[4], a5 = a[5], a6 = a[6], a7 = a[7];
8483
+ var a8 = a[8], a9 = a[9], a10 = a[10], a11 = a[11];
8484
+ var a12 = a[12], a13 = a[13], a14 = a[14], a15 = a[15];
8485
+ var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
8486
+ var b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7];
8487
+ var b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11];
8488
+ var b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];
8489
+ return Math.abs(a0 - b0) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= EPSILON * Math.max(1, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= EPSILON * Math.max(1, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= EPSILON * Math.max(1, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= EPSILON * Math.max(1, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= EPSILON * Math.max(1, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= EPSILON * Math.max(1, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= EPSILON * Math.max(1, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= EPSILON * Math.max(1, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= EPSILON * Math.max(1, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= EPSILON * Math.max(1, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= EPSILON * Math.max(1, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= EPSILON * Math.max(1, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= EPSILON * Math.max(1, Math.abs(a15), Math.abs(b15));
8490
+ }
8491
+ var mul = multiply;
8492
+ var sub = subtract;
8493
+
8494
+ // ../../node_modules/.pnpm/gl-matrix@3.4.4/node_modules/gl-matrix/esm/vec3.js
8495
+ var vec3_exports = {};
8496
+ __export(vec3_exports, {
8497
+ add: () => add2,
8498
+ angle: () => angle,
8499
+ bezier: () => bezier,
8500
+ ceil: () => ceil,
8501
+ clone: () => clone2,
8502
+ copy: () => copy2,
8503
+ create: () => create2,
8504
+ cross: () => cross,
8505
+ dist: () => dist,
8506
+ distance: () => distance,
8507
+ div: () => div,
8508
+ divide: () => divide,
8509
+ dot: () => dot,
8510
+ equals: () => equals2,
8511
+ exactEquals: () => exactEquals2,
8512
+ floor: () => floor,
8513
+ forEach: () => forEach,
8514
+ fromValues: () => fromValues2,
8515
+ hermite: () => hermite,
8516
+ inverse: () => inverse,
8517
+ len: () => len,
8518
+ length: () => length,
8519
+ lerp: () => lerp2,
8520
+ max: () => max,
8521
+ min: () => min,
8522
+ mul: () => mul2,
8523
+ multiply: () => multiply2,
8524
+ negate: () => negate,
8525
+ normalize: () => normalize,
8526
+ random: () => random,
8527
+ rotateX: () => rotateX2,
8528
+ rotateY: () => rotateY2,
8529
+ rotateZ: () => rotateZ2,
8530
+ round: () => round2,
8531
+ scale: () => scale2,
8532
+ scaleAndAdd: () => scaleAndAdd,
8533
+ set: () => set2,
8534
+ slerp: () => slerp,
8535
+ sqrDist: () => sqrDist,
8536
+ sqrLen: () => sqrLen,
8537
+ squaredDistance: () => squaredDistance,
8538
+ squaredLength: () => squaredLength,
8539
+ str: () => str2,
8540
+ sub: () => sub2,
8541
+ subtract: () => subtract2,
8542
+ transformMat3: () => transformMat3,
8543
+ transformMat4: () => transformMat4,
8544
+ transformQuat: () => transformQuat,
8545
+ zero: () => zero
8546
+ });
8547
+ function create2() {
8548
+ var out = new ARRAY_TYPE(3);
8549
+ if (ARRAY_TYPE != Float32Array) {
8550
+ out[0] = 0;
8551
+ out[1] = 0;
8552
+ out[2] = 0;
8553
+ }
8554
+ return out;
8555
+ }
8556
+ function clone2(a) {
8557
+ var out = new ARRAY_TYPE(3);
8558
+ out[0] = a[0];
8559
+ out[1] = a[1];
8560
+ out[2] = a[2];
8561
+ return out;
8562
+ }
8563
+ function length(a) {
8564
+ var x = a[0];
8565
+ var y = a[1];
8566
+ var z = a[2];
8567
+ return Math.sqrt(x * x + y * y + z * z);
8568
+ }
8569
+ function fromValues2(x, y, z) {
8570
+ var out = new ARRAY_TYPE(3);
8571
+ out[0] = x;
8572
+ out[1] = y;
8573
+ out[2] = z;
8574
+ return out;
8575
+ }
8576
+ function copy2(out, a) {
8577
+ out[0] = a[0];
8578
+ out[1] = a[1];
8579
+ out[2] = a[2];
8580
+ return out;
8581
+ }
8582
+ function set2(out, x, y, z) {
8583
+ out[0] = x;
8584
+ out[1] = y;
8585
+ out[2] = z;
8586
+ return out;
8587
+ }
8588
+ function add2(out, a, b) {
8589
+ out[0] = a[0] + b[0];
8590
+ out[1] = a[1] + b[1];
8591
+ out[2] = a[2] + b[2];
8592
+ return out;
8593
+ }
8594
+ function subtract2(out, a, b) {
8595
+ out[0] = a[0] - b[0];
8596
+ out[1] = a[1] - b[1];
8597
+ out[2] = a[2] - b[2];
8598
+ return out;
8599
+ }
8600
+ function multiply2(out, a, b) {
8601
+ out[0] = a[0] * b[0];
8602
+ out[1] = a[1] * b[1];
8603
+ out[2] = a[2] * b[2];
8604
+ return out;
8605
+ }
8606
+ function divide(out, a, b) {
8607
+ out[0] = a[0] / b[0];
8608
+ out[1] = a[1] / b[1];
8609
+ out[2] = a[2] / b[2];
8610
+ return out;
8611
+ }
8612
+ function ceil(out, a) {
8613
+ out[0] = Math.ceil(a[0]);
8614
+ out[1] = Math.ceil(a[1]);
8615
+ out[2] = Math.ceil(a[2]);
8616
+ return out;
8617
+ }
8618
+ function floor(out, a) {
8619
+ out[0] = Math.floor(a[0]);
8620
+ out[1] = Math.floor(a[1]);
8621
+ out[2] = Math.floor(a[2]);
8622
+ return out;
8623
+ }
8624
+ function min(out, a, b) {
8625
+ out[0] = Math.min(a[0], b[0]);
8626
+ out[1] = Math.min(a[1], b[1]);
8627
+ out[2] = Math.min(a[2], b[2]);
8628
+ return out;
8629
+ }
8630
+ function max(out, a, b) {
8631
+ out[0] = Math.max(a[0], b[0]);
8632
+ out[1] = Math.max(a[1], b[1]);
8633
+ out[2] = Math.max(a[2], b[2]);
8634
+ return out;
8635
+ }
8636
+ function round2(out, a) {
8637
+ out[0] = round(a[0]);
8638
+ out[1] = round(a[1]);
8639
+ out[2] = round(a[2]);
8640
+ return out;
8641
+ }
8642
+ function scale2(out, a, b) {
8643
+ out[0] = a[0] * b;
8644
+ out[1] = a[1] * b;
8645
+ out[2] = a[2] * b;
8646
+ return out;
8647
+ }
8648
+ function scaleAndAdd(out, a, b, scale3) {
8649
+ out[0] = a[0] + b[0] * scale3;
8650
+ out[1] = a[1] + b[1] * scale3;
8651
+ out[2] = a[2] + b[2] * scale3;
8652
+ return out;
8653
+ }
8654
+ function distance(a, b) {
8655
+ var x = b[0] - a[0];
8656
+ var y = b[1] - a[1];
8657
+ var z = b[2] - a[2];
8658
+ return Math.sqrt(x * x + y * y + z * z);
8659
+ }
8660
+ function squaredDistance(a, b) {
8661
+ var x = b[0] - a[0];
8662
+ var y = b[1] - a[1];
8663
+ var z = b[2] - a[2];
8664
+ return x * x + y * y + z * z;
8665
+ }
8666
+ function squaredLength(a) {
8667
+ var x = a[0];
8668
+ var y = a[1];
8669
+ var z = a[2];
8670
+ return x * x + y * y + z * z;
8671
+ }
8672
+ function negate(out, a) {
8673
+ out[0] = -a[0];
8674
+ out[1] = -a[1];
8675
+ out[2] = -a[2];
8676
+ return out;
8677
+ }
8678
+ function inverse(out, a) {
8679
+ out[0] = 1 / a[0];
8680
+ out[1] = 1 / a[1];
8681
+ out[2] = 1 / a[2];
8682
+ return out;
8683
+ }
8684
+ function normalize(out, a) {
8685
+ var x = a[0];
8686
+ var y = a[1];
8687
+ var z = a[2];
8688
+ var len2 = x * x + y * y + z * z;
8689
+ if (len2 > 0) {
8690
+ len2 = 1 / Math.sqrt(len2);
8691
+ }
8692
+ out[0] = a[0] * len2;
8693
+ out[1] = a[1] * len2;
8694
+ out[2] = a[2] * len2;
8695
+ return out;
8696
+ }
8697
+ function dot(a, b) {
8698
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
8699
+ }
8700
+ function cross(out, a, b) {
8701
+ var ax = a[0], ay = a[1], az = a[2];
8702
+ var bx = b[0], by = b[1], bz = b[2];
8703
+ out[0] = ay * bz - az * by;
8704
+ out[1] = az * bx - ax * bz;
8705
+ out[2] = ax * by - ay * bx;
8706
+ return out;
8707
+ }
8708
+ function lerp2(out, a, b, t) {
8709
+ var ax = a[0];
8710
+ var ay = a[1];
8711
+ var az = a[2];
8712
+ out[0] = ax + t * (b[0] - ax);
8713
+ out[1] = ay + t * (b[1] - ay);
8714
+ out[2] = az + t * (b[2] - az);
8715
+ return out;
8716
+ }
8717
+ function slerp(out, a, b, t) {
8718
+ var angle2 = Math.acos(Math.min(Math.max(dot(a, b), -1), 1));
8719
+ var sinTotal = Math.sin(angle2);
8720
+ var ratioA = Math.sin((1 - t) * angle2) / sinTotal;
8721
+ var ratioB = Math.sin(t * angle2) / sinTotal;
8722
+ out[0] = ratioA * a[0] + ratioB * b[0];
8723
+ out[1] = ratioA * a[1] + ratioB * b[1];
8724
+ out[2] = ratioA * a[2] + ratioB * b[2];
8725
+ return out;
8726
+ }
8727
+ function hermite(out, a, b, c, d, t) {
8728
+ var factorTimes2 = t * t;
8729
+ var factor1 = factorTimes2 * (2 * t - 3) + 1;
8730
+ var factor2 = factorTimes2 * (t - 2) + t;
8731
+ var factor3 = factorTimes2 * (t - 1);
8732
+ var factor4 = factorTimes2 * (3 - 2 * t);
8733
+ out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;
8734
+ out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;
8735
+ out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;
8736
+ return out;
8737
+ }
8738
+ function bezier(out, a, b, c, d, t) {
8739
+ var inverseFactor = 1 - t;
8740
+ var inverseFactorTimesTwo = inverseFactor * inverseFactor;
8741
+ var factorTimes2 = t * t;
8742
+ var factor1 = inverseFactorTimesTwo * inverseFactor;
8743
+ var factor2 = 3 * t * inverseFactorTimesTwo;
8744
+ var factor3 = 3 * factorTimes2 * inverseFactor;
8745
+ var factor4 = factorTimes2 * t;
8746
+ out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;
8747
+ out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;
8748
+ out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;
8749
+ return out;
8750
+ }
8751
+ function random(out, scale3) {
8752
+ scale3 = scale3 === void 0 ? 1 : scale3;
8753
+ var r = RANDOM() * 2 * Math.PI;
8754
+ var z = RANDOM() * 2 - 1;
8755
+ var zScale = Math.sqrt(1 - z * z) * scale3;
8756
+ out[0] = Math.cos(r) * zScale;
8757
+ out[1] = Math.sin(r) * zScale;
8758
+ out[2] = z * scale3;
8759
+ return out;
8760
+ }
8761
+ function transformMat4(out, a, m) {
8762
+ var x = a[0], y = a[1], z = a[2];
8763
+ var w = m[3] * x + m[7] * y + m[11] * z + m[15];
8764
+ w = w || 1;
8765
+ out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
8766
+ out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
8767
+ out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
8768
+ return out;
8769
+ }
8770
+ function transformMat3(out, a, m) {
8771
+ var x = a[0], y = a[1], z = a[2];
8772
+ out[0] = x * m[0] + y * m[3] + z * m[6];
8773
+ out[1] = x * m[1] + y * m[4] + z * m[7];
8774
+ out[2] = x * m[2] + y * m[5] + z * m[8];
8775
+ return out;
8776
+ }
8777
+ function transformQuat(out, a, q) {
8778
+ var qx = q[0], qy = q[1], qz = q[2], qw = q[3];
8779
+ var vx = a[0], vy = a[1], vz = a[2];
8780
+ var tx = qy * vz - qz * vy;
8781
+ var ty = qz * vx - qx * vz;
8782
+ var tz = qx * vy - qy * vx;
8783
+ tx = tx + tx;
8784
+ ty = ty + ty;
8785
+ tz = tz + tz;
8786
+ out[0] = vx + qw * tx + qy * tz - qz * ty;
8787
+ out[1] = vy + qw * ty + qz * tx - qx * tz;
8788
+ out[2] = vz + qw * tz + qx * ty - qy * tx;
8789
+ return out;
8790
+ }
8791
+ function rotateX2(out, a, b, rad) {
8792
+ var p = [], r = [];
8793
+ p[0] = a[0] - b[0];
8794
+ p[1] = a[1] - b[1];
8795
+ p[2] = a[2] - b[2];
8796
+ r[0] = p[0];
8797
+ r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);
8798
+ r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad);
8799
+ out[0] = r[0] + b[0];
8800
+ out[1] = r[1] + b[1];
8801
+ out[2] = r[2] + b[2];
8802
+ return out;
8803
+ }
8804
+ function rotateY2(out, a, b, rad) {
8805
+ var p = [], r = [];
8806
+ p[0] = a[0] - b[0];
8807
+ p[1] = a[1] - b[1];
8808
+ p[2] = a[2] - b[2];
8809
+ r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);
8810
+ r[1] = p[1];
8811
+ r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad);
8812
+ out[0] = r[0] + b[0];
8813
+ out[1] = r[1] + b[1];
8814
+ out[2] = r[2] + b[2];
8815
+ return out;
8816
+ }
8817
+ function rotateZ2(out, a, b, rad) {
8818
+ var p = [], r = [];
8819
+ p[0] = a[0] - b[0];
8820
+ p[1] = a[1] - b[1];
8821
+ p[2] = a[2] - b[2];
8822
+ r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);
8823
+ r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);
8824
+ r[2] = p[2];
8825
+ out[0] = r[0] + b[0];
8826
+ out[1] = r[1] + b[1];
8827
+ out[2] = r[2] + b[2];
8828
+ return out;
8829
+ }
8830
+ function angle(a, b) {
8831
+ var ax = a[0], ay = a[1], az = a[2], bx = b[0], by = b[1], bz = b[2], mag = Math.sqrt((ax * ax + ay * ay + az * az) * (bx * bx + by * by + bz * bz)), cosine = mag && dot(a, b) / mag;
8832
+ return Math.acos(Math.min(Math.max(cosine, -1), 1));
8833
+ }
8834
+ function zero(out) {
8835
+ out[0] = 0;
8836
+ out[1] = 0;
8837
+ out[2] = 0;
8838
+ return out;
8839
+ }
8840
+ function str2(a) {
8841
+ return "vec3(" + a[0] + ", " + a[1] + ", " + a[2] + ")";
8842
+ }
8843
+ function exactEquals2(a, b) {
8844
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
8845
+ }
8846
+ function equals2(a, b) {
8847
+ var a0 = a[0], a1 = a[1], a2 = a[2];
8848
+ var b0 = b[0], b1 = b[1], b2 = b[2];
8849
+ return Math.abs(a0 - b0) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2));
8850
+ }
8851
+ var sub2 = subtract2;
8852
+ var mul2 = multiply2;
8853
+ var div = divide;
8854
+ var dist = distance;
8855
+ var sqrDist = squaredDistance;
8856
+ var len = length;
8857
+ var sqrLen = squaredLength;
8858
+ var forEach = (function() {
8859
+ var vec = create2();
8860
+ return function(a, stride, offset, count, fn, arg) {
8861
+ var i, l;
8862
+ if (!stride) {
8863
+ stride = 3;
8864
+ }
8865
+ if (!offset) {
8866
+ offset = 0;
8867
+ }
8868
+ if (count) {
8869
+ l = Math.min(count * stride + offset, a.length);
8870
+ } else {
8871
+ l = a.length;
8872
+ }
8873
+ for (i = offset; i < l; i += stride) {
8874
+ vec[0] = a[i];
8875
+ vec[1] = a[i + 1];
8876
+ vec[2] = a[i + 2];
8877
+ fn(vec, vec, arg);
8878
+ a[i] = vec[0];
8879
+ a[i + 1] = vec[1];
8880
+ a[i + 2] = vec[2];
8881
+ }
8882
+ return a;
8883
+ };
8884
+ })();
8885
+
7157
8886
  // src/render/camera.ts
7158
- import { mat4, vec3 } from "gl-matrix";
7159
8887
  var Camera = class {
7160
8888
  constructor() {
7161
- this._position = vec3.create();
7162
- this._angles = vec3.create();
8889
+ this._position = vec3_exports.create();
8890
+ this._angles = vec3_exports.create();
7163
8891
  // pitch, yaw, roll
7164
- this._bobAngles = vec3.create();
7165
- this._bobOffset = vec3.create();
7166
- this._kickAngles = vec3.create();
8892
+ this._bobAngles = vec3_exports.create();
8893
+ this._bobOffset = vec3_exports.create();
8894
+ this._kickAngles = vec3_exports.create();
7167
8895
  this._rollAngle = 0;
7168
8896
  this._fov = 90;
7169
8897
  this._aspect = 1;
7170
8898
  this._near = 0.1;
7171
8899
  this._far = 1e3;
7172
- this._viewMatrix = mat4.create();
7173
- this._projectionMatrix = mat4.create();
7174
- this._viewProjectionMatrix = mat4.create();
8900
+ this._viewMatrix = mat4_exports.create();
8901
+ this._projectionMatrix = mat4_exports.create();
8902
+ this._viewProjectionMatrix = mat4_exports.create();
7175
8903
  this._dirty = true;
7176
8904
  }
7177
8905
  get position() {
7178
8906
  return this._position;
7179
8907
  }
7180
8908
  set position(value) {
7181
- if (!vec3.equals(this._position, value)) {
7182
- vec3.copy(this._position, value);
8909
+ if (!vec3_exports.equals(this._position, value)) {
8910
+ vec3_exports.copy(this._position, value);
7183
8911
  this._dirty = true;
7184
8912
  this.triggerMoveEvent();
7185
8913
  }
@@ -7188,8 +8916,8 @@ var Camera = class {
7188
8916
  return this._angles;
7189
8917
  }
7190
8918
  set angles(value) {
7191
- if (!vec3.equals(this._angles, value)) {
7192
- vec3.copy(this._angles, value);
8919
+ if (!vec3_exports.equals(this._angles, value)) {
8920
+ vec3_exports.copy(this._angles, value);
7193
8921
  this._dirty = true;
7194
8922
  this.triggerMoveEvent();
7195
8923
  }
@@ -7198,21 +8926,21 @@ var Camera = class {
7198
8926
  return this._bobAngles;
7199
8927
  }
7200
8928
  set bobAngles(value) {
7201
- vec3.copy(this._bobAngles, value);
8929
+ vec3_exports.copy(this._bobAngles, value);
7202
8930
  this._dirty = true;
7203
8931
  }
7204
8932
  get kickAngles() {
7205
8933
  return this._kickAngles;
7206
8934
  }
7207
8935
  set kickAngles(value) {
7208
- vec3.copy(this._kickAngles, value);
8936
+ vec3_exports.copy(this._kickAngles, value);
7209
8937
  this._dirty = true;
7210
8938
  }
7211
8939
  get bobOffset() {
7212
8940
  return this._bobOffset;
7213
8941
  }
7214
8942
  set bobOffset(value) {
7215
- vec3.copy(this._bobOffset, value);
8943
+ vec3_exports.copy(this._bobOffset, value);
7216
8944
  this._dirty = true;
7217
8945
  }
7218
8946
  get rollAngle() {
@@ -7238,17 +8966,17 @@ var Camera = class {
7238
8966
  }
7239
8967
  // API Methods
7240
8968
  setPosition(x, y, z) {
7241
- const newPos = vec3.fromValues(x, y, z);
7242
- if (!vec3.equals(this._position, newPos)) {
7243
- vec3.copy(this._position, newPos);
8969
+ const newPos = vec3_exports.fromValues(x, y, z);
8970
+ if (!vec3_exports.equals(this._position, newPos)) {
8971
+ vec3_exports.copy(this._position, newPos);
7244
8972
  this._dirty = true;
7245
8973
  this.triggerMoveEvent();
7246
8974
  }
7247
8975
  }
7248
8976
  setRotation(pitch, yaw, roll) {
7249
- const newAngles = vec3.fromValues(pitch, yaw, roll);
7250
- if (!vec3.equals(this._angles, newAngles)) {
7251
- vec3.copy(this._angles, newAngles);
8977
+ const newAngles = vec3_exports.fromValues(pitch, yaw, roll);
8978
+ if (!vec3_exports.equals(this._angles, newAngles)) {
8979
+ vec3_exports.copy(this._angles, newAngles);
7252
8980
  this._dirty = true;
7253
8981
  this.triggerMoveEvent();
7254
8982
  }
@@ -7260,10 +8988,10 @@ var Camera = class {
7260
8988
  this.aspect = aspect;
7261
8989
  }
7262
8990
  lookAt(target) {
7263
- const direction = vec3.create();
7264
- vec3.subtract(direction, target, this._position);
7265
- const len = vec3.length(direction);
7266
- if (len < 1e-3) return;
8991
+ const direction = vec3_exports.create();
8992
+ vec3_exports.subtract(direction, target, this._position);
8993
+ const len2 = vec3_exports.length(direction);
8994
+ if (len2 < 1e-3) return;
7267
8995
  const yaw = Math.atan2(direction[1], direction[0]) * RAD2DEG;
7268
8996
  const hyp = Math.hypot(direction[0], direction[1]);
7269
8997
  const pitch = -Math.atan2(direction[2], hyp) * RAD2DEG;
@@ -7272,8 +9000,8 @@ var Camera = class {
7272
9000
  triggerMoveEvent() {
7273
9001
  if (this.onCameraMove) {
7274
9002
  this.onCameraMove({
7275
- position: vec3.clone(this._position),
7276
- angles: vec3.clone(this._angles)
9003
+ position: vec3_exports.clone(this._position),
9004
+ angles: vec3_exports.clone(this._angles)
7277
9005
  });
7278
9006
  }
7279
9007
  }
@@ -7290,8 +9018,8 @@ var Camera = class {
7290
9018
  return this._viewProjectionMatrix;
7291
9019
  }
7292
9020
  getViewmodelProjectionMatrix(fov) {
7293
- const projectionMatrix = mat4.create();
7294
- mat4.perspective(
9021
+ const projectionMatrix = mat4_exports.create();
9022
+ mat4_exports.perspective(
7295
9023
  projectionMatrix,
7296
9024
  fov * DEG2RAD,
7297
9025
  this._aspect,
@@ -7303,19 +9031,19 @@ var Camera = class {
7303
9031
  screenToWorldRay(screenX, screenY) {
7304
9032
  const ndcX = screenX * 2 - 1;
7305
9033
  const ndcY = 1 - screenY * 2;
7306
- const clipStart = vec3.fromValues(ndcX, ndcY, -1);
7307
- const clipEnd = vec3.fromValues(ndcX, ndcY, 1);
7308
- const invViewProj = mat4.create();
7309
- mat4.invert(invViewProj, this.viewProjectionMatrix);
7310
- const worldStart = vec3.create();
7311
- const worldEnd = vec3.create();
7312
- vec3.transformMat4(worldStart, clipStart, invViewProj);
7313
- vec3.transformMat4(worldEnd, clipEnd, invViewProj);
7314
- const direction = vec3.create();
7315
- vec3.subtract(direction, worldEnd, worldStart);
7316
- vec3.normalize(direction, direction);
9034
+ const clipStart = vec3_exports.fromValues(ndcX, ndcY, -1);
9035
+ const clipEnd = vec3_exports.fromValues(ndcX, ndcY, 1);
9036
+ const invViewProj = mat4_exports.create();
9037
+ mat4_exports.invert(invViewProj, this.viewProjectionMatrix);
9038
+ const worldStart = vec3_exports.create();
9039
+ const worldEnd = vec3_exports.create();
9040
+ vec3_exports.transformMat4(worldStart, clipStart, invViewProj);
9041
+ vec3_exports.transformMat4(worldEnd, clipEnd, invViewProj);
9042
+ const direction = vec3_exports.create();
9043
+ vec3_exports.subtract(direction, worldEnd, worldStart);
9044
+ vec3_exports.normalize(direction, direction);
7317
9045
  return {
7318
- origin: vec3.clone(this._position),
9046
+ origin: vec3_exports.clone(this._position),
7319
9047
  direction
7320
9048
  };
7321
9049
  }
@@ -7323,14 +9051,14 @@ var Camera = class {
7323
9051
  if (!this._dirty) {
7324
9052
  return;
7325
9053
  }
7326
- mat4.perspective(
9054
+ mat4_exports.perspective(
7327
9055
  this._projectionMatrix,
7328
9056
  this._fov * DEG2RAD,
7329
9057
  this._aspect,
7330
9058
  this._near,
7331
9059
  this._far
7332
9060
  );
7333
- const quakeToGl = mat4.fromValues(
9061
+ const quakeToGl = mat4_exports.fromValues(
7334
9062
  0,
7335
9063
  0,
7336
9064
  -1,
@@ -7358,18 +9086,18 @@ var Camera = class {
7358
9086
  const pitchRad = pitch * DEG2RAD;
7359
9087
  const yawRad = yaw * DEG2RAD;
7360
9088
  const rollRad = roll * DEG2RAD;
7361
- const rotationQuake = mat4.create();
7362
- mat4.identity(rotationQuake);
7363
- mat4.rotateZ(rotationQuake, rotationQuake, -yawRad);
7364
- mat4.rotateY(rotationQuake, rotationQuake, -pitchRad);
7365
- mat4.rotateX(rotationQuake, rotationQuake, -rollRad);
7366
- const rotationGl = mat4.create();
7367
- mat4.multiply(rotationGl, quakeToGl, rotationQuake);
7368
- const positionWithOffset = vec3.add(vec3.create(), this._position, this._bobOffset);
7369
- const negativePosition = vec3.negate(vec3.create(), positionWithOffset);
7370
- const rotatedPosQuake = vec3.create();
7371
- vec3.transformMat4(rotatedPosQuake, negativePosition, rotationQuake);
7372
- const translationGl = vec3.fromValues(
9089
+ const rotationQuake = mat4_exports.create();
9090
+ mat4_exports.identity(rotationQuake);
9091
+ mat4_exports.rotateZ(rotationQuake, rotationQuake, -yawRad);
9092
+ mat4_exports.rotateY(rotationQuake, rotationQuake, -pitchRad);
9093
+ mat4_exports.rotateX(rotationQuake, rotationQuake, -rollRad);
9094
+ const rotationGl = mat4_exports.create();
9095
+ mat4_exports.multiply(rotationGl, quakeToGl, rotationQuake);
9096
+ const positionWithOffset = vec3_exports.add(vec3_exports.create(), this._position, this._bobOffset);
9097
+ const negativePosition = vec3_exports.negate(vec3_exports.create(), positionWithOffset);
9098
+ const rotatedPosQuake = vec3_exports.create();
9099
+ vec3_exports.transformMat4(rotatedPosQuake, negativePosition, rotationQuake);
9100
+ const translationGl = vec3_exports.fromValues(
7373
9101
  rotatedPosQuake[1] ? -rotatedPosQuake[1] : 0,
7374
9102
  // Y in Quake -> -X in WebGL
7375
9103
  rotatedPosQuake[2] || 0,
@@ -7377,11 +9105,11 @@ var Camera = class {
7377
9105
  rotatedPosQuake[0] ? -rotatedPosQuake[0] : 0
7378
9106
  // X in Quake -> -Z in WebGL
7379
9107
  );
7380
- mat4.copy(this._viewMatrix, rotationGl);
9108
+ mat4_exports.copy(this._viewMatrix, rotationGl);
7381
9109
  this._viewMatrix[12] = translationGl[0];
7382
9110
  this._viewMatrix[13] = translationGl[1];
7383
9111
  this._viewMatrix[14] = translationGl[2];
7384
- mat4.multiply(
9112
+ mat4_exports.multiply(
7385
9113
  this._viewProjectionMatrix,
7386
9114
  this._projectionMatrix,
7387
9115
  this._viewMatrix
@@ -7394,11 +9122,11 @@ var Camera = class {
7394
9122
  var DEFAULT_AMBIENT = [0.2, 0.2, 0.2];
7395
9123
  var DEFAULT_DIRECTION = { x: 0, y: 0, z: 1 };
7396
9124
  var DEFAULT_DIRECTION_COLOR = [0.8, 0.8, 0.8];
7397
- function lerp2(a, b, t) {
9125
+ function lerp3(a, b, t) {
7398
9126
  return a + (b - a) * t;
7399
9127
  }
7400
9128
  function lerpVec32(a, b, t) {
7401
- return { x: lerp2(a.x, b.x, t), y: lerp2(a.y, b.y, t), z: lerp2(a.z, b.z, t) };
9129
+ return { x: lerp3(a.x, b.x, t), y: lerp3(a.y, b.y, t), z: lerp3(a.z, b.z, t) };
7402
9130
  }
7403
9131
  function clamp012(v) {
7404
9132
  if (v < 0) return 0;
@@ -7445,8 +9173,8 @@ function evaluateLighting(normal, position, lighting) {
7445
9173
  const radiusSq = light.radius * light.radius;
7446
9174
  if (distSq < radiusSq && radiusSq > 0) {
7447
9175
  const attenuation = 1 - Math.sqrt(distSq) / light.radius;
7448
- const dist = Math.sqrt(distSq);
7449
- const lightDotN = dist > 0 ? clamp012(-(dx * n.x + dy * n.y + dz * n.z) / dist) : 0;
9176
+ const dist2 = Math.sqrt(distSq);
9177
+ const lightDotN = dist2 > 0 ? clamp012(-(dx * n.x + dy * n.y + dz * n.z) / dist2) : 0;
7450
9178
  const amount = clamp012(attenuation * lightDotN);
7451
9179
  r += light.color[0] * amount;
7452
9180
  g += light.color[1] * amount;
@@ -8120,11 +9848,11 @@ function spawnBlood(context) {
8120
9848
  function spawnTeleportFlash(context) {
8121
9849
  const { system, origin } = context;
8122
9850
  for (let i = 0; i < 30; i += 1) {
8123
- const angle = system.rng.frandom() * Math.PI * 2;
9851
+ const angle2 = system.rng.frandom() * Math.PI * 2;
8124
9852
  const radius = 8 + system.rng.frandom() * 8;
8125
9853
  system.spawn({
8126
9854
  position: origin,
8127
- velocity: { x: Math.cos(angle) * radius, y: Math.sin(angle) * radius, z: 100 + system.rng.frandom() * 80 },
9855
+ velocity: { x: Math.cos(angle2) * radius, y: Math.sin(angle2) * radius, z: 100 + system.rng.frandom() * 80 },
8128
9856
  color: [0.4, 0.6, 1, 0.9],
8129
9857
  size: 4,
8130
9858
  lifetime: 0.5,
@@ -8227,11 +9955,11 @@ function spawnRailTrail(context) {
8227
9955
  const dx = end.x - start.x;
8228
9956
  const dy = end.y - start.y;
8229
9957
  const dz = end.z - start.z;
8230
- const dist = Math.sqrt(dx * dx + dy * dy + dz * dz);
8231
- if (dist < 1) return;
8232
- const dir = { x: dx / dist, y: dy / dist, z: dz / dist };
9958
+ const dist2 = Math.sqrt(dx * dx + dy * dy + dz * dz);
9959
+ if (dist2 < 1) return;
9960
+ const dir = { x: dx / dist2, y: dy / dist2, z: dz / dist2 };
8233
9961
  const step = 8;
8234
- for (let d = 0; d < dist; d += step) {
9962
+ for (let d = 0; d < dist2; d += step) {
8235
9963
  const x = start.x + dir.x * d;
8236
9964
  const y = start.y + dir.y * d;
8237
9965
  const z = start.z + dir.z * d;
@@ -8371,20 +10099,20 @@ var DemoReader = class {
8371
10099
  let scanOffset = 0;
8372
10100
  this.messageOffsets = [];
8373
10101
  while (scanOffset + 4 <= this.buffer.byteLength) {
8374
- const length = this.view.getInt32(scanOffset, true);
8375
- if (length === -1) {
10102
+ const length2 = this.view.getInt32(scanOffset, true);
10103
+ if (length2 === -1) {
8376
10104
  break;
8377
10105
  }
8378
- if (length < 0 || length > 2097152) {
8379
- console.warn(`DemoReader: Invalid block length ${length} at offset ${scanOffset} during scan`);
10106
+ if (length2 < 0 || length2 > 2097152) {
10107
+ console.warn(`DemoReader: Invalid block length ${length2} at offset ${scanOffset} during scan`);
8380
10108
  break;
8381
10109
  }
8382
- if (scanOffset + 4 + length > this.buffer.byteLength) {
10110
+ if (scanOffset + 4 + length2 > this.buffer.byteLength) {
8383
10111
  console.warn(`DemoReader: Incomplete block at offset ${scanOffset} during scan`);
8384
10112
  break;
8385
10113
  }
8386
10114
  this.messageOffsets.push(scanOffset);
8387
- scanOffset += 4 + length;
10115
+ scanOffset += 4 + length2;
8388
10116
  }
8389
10117
  }
8390
10118
  /**
@@ -8402,18 +10130,18 @@ var DemoReader = class {
8402
10130
  if (this.offset + 4 > this.buffer.byteLength) {
8403
10131
  return null;
8404
10132
  }
8405
- const length = this.view.getInt32(this.offset, true);
8406
- if (length === -1) {
10133
+ const length2 = this.view.getInt32(this.offset, true);
10134
+ if (length2 === -1) {
8407
10135
  return null;
8408
10136
  }
8409
- if (length < 0 || this.offset + 4 + length > this.buffer.byteLength) {
10137
+ if (length2 < 0 || this.offset + 4 + length2 > this.buffer.byteLength) {
8410
10138
  return null;
8411
10139
  }
8412
10140
  this.offset += 4;
8413
- const blockData = this.buffer.slice(this.offset, this.offset + length);
8414
- this.offset += length;
10141
+ const blockData = this.buffer.slice(this.offset, this.offset + length2);
10142
+ this.offset += length2;
8415
10143
  return {
8416
- length,
10144
+ length: length2,
8417
10145
  data: new BinaryStream(blockData)
8418
10146
  };
8419
10147
  }
@@ -8450,14 +10178,14 @@ var DemoReader = class {
8450
10178
  const blockInfos = [];
8451
10179
  let tempOffset = this.offset;
8452
10180
  while (tempOffset + 4 <= this.buffer.byteLength) {
8453
- const length = this.view.getInt32(tempOffset, true);
8454
- if (length === -1) break;
8455
- if (length < 0 || tempOffset + 4 + length > this.buffer.byteLength) {
10181
+ const length2 = this.view.getInt32(tempOffset, true);
10182
+ if (length2 === -1) break;
10183
+ if (length2 < 0 || tempOffset + 4 + length2 > this.buffer.byteLength) {
8456
10184
  break;
8457
10185
  }
8458
- blockInfos.push({ offset: tempOffset + 4, length });
8459
- totalLength += length;
8460
- tempOffset += 4 + length;
10186
+ blockInfos.push({ offset: tempOffset + 4, length: length2 });
10187
+ totalLength += length2;
10188
+ tempOffset += 4 + length2;
8461
10189
  }
8462
10190
  const result = new Uint8Array(totalLength);
8463
10191
  let resultOffset = 0;
@@ -8514,9 +10242,9 @@ var Z_BINARY = 0;
8514
10242
  var Z_TEXT = 1;
8515
10243
  var Z_UNKNOWN$1 = 2;
8516
10244
  function zero$1(buf) {
8517
- let len = buf.length;
8518
- while (--len >= 0) {
8519
- buf[len] = 0;
10245
+ let len2 = buf.length;
10246
+ while (--len2 >= 0) {
10247
+ buf[len2] = 0;
8520
10248
  }
8521
10249
  }
8522
10250
  var STORED_BLOCK = 0;
@@ -8579,22 +10307,22 @@ function TreeDesc(dyn_tree, stat_desc) {
8579
10307
  this.max_code = 0;
8580
10308
  this.stat_desc = stat_desc;
8581
10309
  }
8582
- var d_code = (dist) => {
8583
- return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
10310
+ var d_code = (dist2) => {
10311
+ return dist2 < 256 ? _dist_code[dist2] : _dist_code[256 + (dist2 >>> 7)];
8584
10312
  };
8585
10313
  var put_short = (s, w) => {
8586
10314
  s.pending_buf[s.pending++] = w & 255;
8587
10315
  s.pending_buf[s.pending++] = w >>> 8 & 255;
8588
10316
  };
8589
- var send_bits = (s, value, length) => {
8590
- if (s.bi_valid > Buf_size - length) {
10317
+ var send_bits = (s, value, length2) => {
10318
+ if (s.bi_valid > Buf_size - length2) {
8591
10319
  s.bi_buf |= value << s.bi_valid & 65535;
8592
10320
  put_short(s, s.bi_buf);
8593
10321
  s.bi_buf = value >> Buf_size - s.bi_valid;
8594
- s.bi_valid += length - Buf_size;
10322
+ s.bi_valid += length2 - Buf_size;
8595
10323
  } else {
8596
10324
  s.bi_buf |= value << s.bi_valid & 65535;
8597
- s.bi_valid += length;
10325
+ s.bi_valid += length2;
8598
10326
  }
8599
10327
  };
8600
10328
  var send_code = (s, c, tree) => {
@@ -8605,13 +10333,13 @@ var send_code = (s, c, tree) => {
8605
10333
  /*.Len*/
8606
10334
  );
8607
10335
  };
8608
- var bi_reverse = (code, len) => {
10336
+ var bi_reverse = (code, len2) => {
8609
10337
  let res = 0;
8610
10338
  do {
8611
10339
  res |= code & 1;
8612
10340
  code >>>= 1;
8613
10341
  res <<= 1;
8614
- } while (--len > 0);
10342
+ } while (--len2 > 0);
8615
10343
  return res >>> 1;
8616
10344
  };
8617
10345
  var bi_flush = (s) => {
@@ -8703,40 +10431,40 @@ var gen_codes = (tree, max_code, bl_count) => {
8703
10431
  next_code[bits] = code;
8704
10432
  }
8705
10433
  for (n = 0; n <= max_code; n++) {
8706
- let len = tree[n * 2 + 1];
8707
- if (len === 0) {
10434
+ let len2 = tree[n * 2 + 1];
10435
+ if (len2 === 0) {
8708
10436
  continue;
8709
10437
  }
8710
- tree[n * 2] = bi_reverse(next_code[len]++, len);
10438
+ tree[n * 2] = bi_reverse(next_code[len2]++, len2);
8711
10439
  }
8712
10440
  };
8713
10441
  var tr_static_init = () => {
8714
10442
  let n;
8715
10443
  let bits;
8716
- let length;
10444
+ let length2;
8717
10445
  let code;
8718
- let dist;
10446
+ let dist2;
8719
10447
  const bl_count = new Array(MAX_BITS$1 + 1);
8720
- length = 0;
10448
+ length2 = 0;
8721
10449
  for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
8722
- base_length[code] = length;
10450
+ base_length[code] = length2;
8723
10451
  for (n = 0; n < 1 << extra_lbits[code]; n++) {
8724
- _length_code[length++] = code;
10452
+ _length_code[length2++] = code;
8725
10453
  }
8726
10454
  }
8727
- _length_code[length - 1] = code;
8728
- dist = 0;
10455
+ _length_code[length2 - 1] = code;
10456
+ dist2 = 0;
8729
10457
  for (code = 0; code < 16; code++) {
8730
- base_dist[code] = dist;
10458
+ base_dist[code] = dist2;
8731
10459
  for (n = 0; n < 1 << extra_dbits[code]; n++) {
8732
- _dist_code[dist++] = code;
10460
+ _dist_code[dist2++] = code;
8733
10461
  }
8734
10462
  }
8735
- dist >>= 7;
10463
+ dist2 >>= 7;
8736
10464
  for (; code < D_CODES$1; code++) {
8737
- base_dist[code] = dist << 7;
10465
+ base_dist[code] = dist2 << 7;
8738
10466
  for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
8739
- _dist_code[256 + dist++] = code;
10467
+ _dist_code[256 + dist2++] = code;
8740
10468
  }
8741
10469
  }
8742
10470
  for (bits = 0; bits <= MAX_BITS$1; bits++) {
@@ -8818,17 +10546,17 @@ var pqdownheap = (s, tree, k) => {
8818
10546
  s.heap[k] = v;
8819
10547
  };
8820
10548
  var compress_block = (s, ltree, dtree) => {
8821
- let dist;
10549
+ let dist2;
8822
10550
  let lc;
8823
10551
  let sx = 0;
8824
10552
  let code;
8825
10553
  let extra;
8826
10554
  if (s.sym_next !== 0) {
8827
10555
  do {
8828
- dist = s.pending_buf[s.sym_buf + sx++] & 255;
8829
- dist += (s.pending_buf[s.sym_buf + sx++] & 255) << 8;
10556
+ dist2 = s.pending_buf[s.sym_buf + sx++] & 255;
10557
+ dist2 += (s.pending_buf[s.sym_buf + sx++] & 255) << 8;
8830
10558
  lc = s.pending_buf[s.sym_buf + sx++];
8831
- if (dist === 0) {
10559
+ if (dist2 === 0) {
8832
10560
  send_code(s, lc, ltree);
8833
10561
  } else {
8834
10562
  code = _length_code[lc];
@@ -8838,13 +10566,13 @@ var compress_block = (s, ltree, dtree) => {
8838
10566
  lc -= base_length[code];
8839
10567
  send_bits(s, lc, extra);
8840
10568
  }
8841
- dist--;
8842
- code = d_code(dist);
10569
+ dist2--;
10570
+ code = d_code(dist2);
8843
10571
  send_code(s, code, dtree);
8844
10572
  extra = extra_dbits[code];
8845
10573
  if (extra !== 0) {
8846
- dist -= base_dist[code];
8847
- send_bits(s, dist, extra);
10574
+ dist2 -= base_dist[code];
10575
+ send_bits(s, dist2, extra);
8848
10576
  }
8849
10577
  }
8850
10578
  } while (sx < s.sym_next);
@@ -9121,17 +10849,17 @@ var _tr_flush_block$1 = (s, buf, stored_len, last) => {
9121
10849
  bi_windup(s);
9122
10850
  }
9123
10851
  };
9124
- var _tr_tally$1 = (s, dist, lc) => {
9125
- s.pending_buf[s.sym_buf + s.sym_next++] = dist;
9126
- s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;
10852
+ var _tr_tally$1 = (s, dist2, lc) => {
10853
+ s.pending_buf[s.sym_buf + s.sym_next++] = dist2;
10854
+ s.pending_buf[s.sym_buf + s.sym_next++] = dist2 >> 8;
9127
10855
  s.pending_buf[s.sym_buf + s.sym_next++] = lc;
9128
- if (dist === 0) {
10856
+ if (dist2 === 0) {
9129
10857
  s.dyn_ltree[lc * 2]++;
9130
10858
  } else {
9131
10859
  s.matches++;
9132
- dist--;
10860
+ dist2--;
9133
10861
  s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]++;
9134
- s.dyn_dtree[d_code(dist) * 2]++;
10862
+ s.dyn_dtree[d_code(dist2) * 2]++;
9135
10863
  }
9136
10864
  return s.sym_next === s.sym_end;
9137
10865
  };
@@ -9147,11 +10875,11 @@ var trees = {
9147
10875
  _tr_tally: _tr_tally_1,
9148
10876
  _tr_align: _tr_align_1
9149
10877
  };
9150
- var adler32 = (adler, buf, len, pos) => {
10878
+ var adler32 = (adler, buf, len2, pos) => {
9151
10879
  let s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
9152
- while (len !== 0) {
9153
- n = len > 2e3 ? 2e3 : len;
9154
- len -= n;
10880
+ while (len2 !== 0) {
10881
+ n = len2 > 2e3 ? 2e3 : len2;
10882
+ len2 -= n;
9155
10883
  do {
9156
10884
  s1 = s1 + buf[pos++] | 0;
9157
10885
  s2 = s2 + s1 | 0;
@@ -9174,9 +10902,9 @@ var makeTable = () => {
9174
10902
  return table;
9175
10903
  };
9176
10904
  var crcTable = new Uint32Array(makeTable());
9177
- var crc322 = (crc, buf, len, pos) => {
10905
+ var crc322 = (crc, buf, len2, pos) => {
9178
10906
  const t = crcTable;
9179
- const end = pos + len;
10907
+ const end = pos + len2;
9180
10908
  crc ^= -1;
9181
10909
  for (let i = pos; i < end; i++) {
9182
10910
  crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
@@ -9299,10 +11027,10 @@ var err = (strm, errorCode) => {
9299
11027
  var rank = (f) => {
9300
11028
  return f * 2 - (f > 4 ? 9 : 0);
9301
11029
  };
9302
- var zero = (buf) => {
9303
- let len = buf.length;
9304
- while (--len >= 0) {
9305
- buf[len] = 0;
11030
+ var zero2 = (buf) => {
11031
+ let len2 = buf.length;
11032
+ while (--len2 >= 0) {
11033
+ buf[len2] = 0;
9306
11034
  }
9307
11035
  };
9308
11036
  var slide_hash = (s) => {
@@ -9326,19 +11054,19 @@ var HASH_ZLIB = (s, prev, data) => (prev << s.hash_shift ^ data) & s.hash_mask;
9326
11054
  var HASH = HASH_ZLIB;
9327
11055
  var flush_pending = (strm) => {
9328
11056
  const s = strm.state;
9329
- let len = s.pending;
9330
- if (len > strm.avail_out) {
9331
- len = strm.avail_out;
11057
+ let len2 = s.pending;
11058
+ if (len2 > strm.avail_out) {
11059
+ len2 = strm.avail_out;
9332
11060
  }
9333
- if (len === 0) {
11061
+ if (len2 === 0) {
9334
11062
  return;
9335
11063
  }
9336
- strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);
9337
- strm.next_out += len;
9338
- s.pending_out += len;
9339
- strm.total_out += len;
9340
- strm.avail_out -= len;
9341
- s.pending -= len;
11064
+ strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len2), strm.next_out);
11065
+ strm.next_out += len2;
11066
+ s.pending_out += len2;
11067
+ strm.total_out += len2;
11068
+ strm.avail_out -= len2;
11069
+ s.pending -= len2;
9342
11070
  if (s.pending === 0) {
9343
11071
  s.pending_out = 0;
9344
11072
  }
@@ -9356,29 +11084,29 @@ var putShortMSB = (s, b) => {
9356
11084
  s.pending_buf[s.pending++] = b & 255;
9357
11085
  };
9358
11086
  var read_buf = (strm, buf, start, size) => {
9359
- let len = strm.avail_in;
9360
- if (len > size) {
9361
- len = size;
11087
+ let len2 = strm.avail_in;
11088
+ if (len2 > size) {
11089
+ len2 = size;
9362
11090
  }
9363
- if (len === 0) {
11091
+ if (len2 === 0) {
9364
11092
  return 0;
9365
11093
  }
9366
- strm.avail_in -= len;
9367
- buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);
11094
+ strm.avail_in -= len2;
11095
+ buf.set(strm.input.subarray(strm.next_in, strm.next_in + len2), start);
9368
11096
  if (strm.state.wrap === 1) {
9369
- strm.adler = adler32_1(strm.adler, buf, len, start);
11097
+ strm.adler = adler32_1(strm.adler, buf, len2, start);
9370
11098
  } else if (strm.state.wrap === 2) {
9371
- strm.adler = crc32_1(strm.adler, buf, len, start);
11099
+ strm.adler = crc32_1(strm.adler, buf, len2, start);
9372
11100
  }
9373
- strm.next_in += len;
9374
- strm.total_in += len;
9375
- return len;
11101
+ strm.next_in += len2;
11102
+ strm.total_in += len2;
11103
+ return len2;
9376
11104
  };
9377
11105
  var longest_match = (s, cur_match) => {
9378
11106
  let chain_length = s.max_chain_length;
9379
11107
  let scan = s.strstart;
9380
11108
  let match;
9381
- let len;
11109
+ let len2;
9382
11110
  let best_len = s.prev_length;
9383
11111
  let nice_match = s.nice_match;
9384
11112
  const limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
@@ -9403,12 +11131,12 @@ var longest_match = (s, cur_match) => {
9403
11131
  match++;
9404
11132
  do {
9405
11133
  } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);
9406
- len = MAX_MATCH - (strend - scan);
11134
+ len2 = MAX_MATCH - (strend - scan);
9407
11135
  scan = strend - MAX_MATCH;
9408
- if (len > best_len) {
11136
+ if (len2 > best_len) {
9409
11137
  s.match_start = cur_match;
9410
- best_len = len;
9411
- if (len >= nice_match) {
11138
+ best_len = len2;
11139
+ if (len2 >= nice_match) {
9412
11140
  break;
9413
11141
  }
9414
11142
  scan_end1 = _win[scan + best_len - 1];
@@ -9422,7 +11150,7 @@ var longest_match = (s, cur_match) => {
9422
11150
  };
9423
11151
  var fill_window = (s) => {
9424
11152
  const _w_size = s.w_size;
9425
- let n, more, str;
11153
+ let n, more, str3;
9426
11154
  do {
9427
11155
  more = s.window_size - s.lookahead - s.strstart;
9428
11156
  if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
@@ -9442,14 +11170,14 @@ var fill_window = (s) => {
9442
11170
  n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
9443
11171
  s.lookahead += n;
9444
11172
  if (s.lookahead + s.insert >= MIN_MATCH) {
9445
- str = s.strstart - s.insert;
9446
- s.ins_h = s.window[str];
9447
- s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);
11173
+ str3 = s.strstart - s.insert;
11174
+ s.ins_h = s.window[str3];
11175
+ s.ins_h = HASH(s, s.ins_h, s.window[str3 + 1]);
9448
11176
  while (s.insert) {
9449
- s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
9450
- s.prev[str & s.w_mask] = s.head[s.ins_h];
9451
- s.head[s.ins_h] = str;
9452
- str++;
11177
+ s.ins_h = HASH(s, s.ins_h, s.window[str3 + MIN_MATCH - 1]);
11178
+ s.prev[str3 & s.w_mask] = s.head[s.ins_h];
11179
+ s.head[s.ins_h] = str3;
11180
+ str3++;
9453
11181
  s.insert--;
9454
11182
  if (s.lookahead + s.insert < MIN_MATCH) {
9455
11183
  break;
@@ -9460,48 +11188,48 @@ var fill_window = (s) => {
9460
11188
  };
9461
11189
  var deflate_stored = (s, flush) => {
9462
11190
  let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;
9463
- let len, left, have, last = 0;
11191
+ let len2, left, have, last = 0;
9464
11192
  let used = s.strm.avail_in;
9465
11193
  do {
9466
- len = 65535;
11194
+ len2 = 65535;
9467
11195
  have = s.bi_valid + 42 >> 3;
9468
11196
  if (s.strm.avail_out < have) {
9469
11197
  break;
9470
11198
  }
9471
11199
  have = s.strm.avail_out - have;
9472
11200
  left = s.strstart - s.block_start;
9473
- if (len > left + s.strm.avail_in) {
9474
- len = left + s.strm.avail_in;
11201
+ if (len2 > left + s.strm.avail_in) {
11202
+ len2 = left + s.strm.avail_in;
9475
11203
  }
9476
- if (len > have) {
9477
- len = have;
11204
+ if (len2 > have) {
11205
+ len2 = have;
9478
11206
  }
9479
- if (len < min_block && (len === 0 && flush !== Z_FINISH$3 || flush === Z_NO_FLUSH$2 || len !== left + s.strm.avail_in)) {
11207
+ if (len2 < min_block && (len2 === 0 && flush !== Z_FINISH$3 || flush === Z_NO_FLUSH$2 || len2 !== left + s.strm.avail_in)) {
9480
11208
  break;
9481
11209
  }
9482
- last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;
11210
+ last = flush === Z_FINISH$3 && len2 === left + s.strm.avail_in ? 1 : 0;
9483
11211
  _tr_stored_block(s, 0, 0, last);
9484
- s.pending_buf[s.pending - 4] = len;
9485
- s.pending_buf[s.pending - 3] = len >> 8;
9486
- s.pending_buf[s.pending - 2] = ~len;
9487
- s.pending_buf[s.pending - 1] = ~len >> 8;
11212
+ s.pending_buf[s.pending - 4] = len2;
11213
+ s.pending_buf[s.pending - 3] = len2 >> 8;
11214
+ s.pending_buf[s.pending - 2] = ~len2;
11215
+ s.pending_buf[s.pending - 1] = ~len2 >> 8;
9488
11216
  flush_pending(s.strm);
9489
11217
  if (left) {
9490
- if (left > len) {
9491
- left = len;
11218
+ if (left > len2) {
11219
+ left = len2;
9492
11220
  }
9493
11221
  s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);
9494
11222
  s.strm.next_out += left;
9495
11223
  s.strm.avail_out -= left;
9496
11224
  s.strm.total_out += left;
9497
11225
  s.block_start += left;
9498
- len -= left;
11226
+ len2 -= left;
9499
11227
  }
9500
- if (len) {
9501
- read_buf(s.strm, s.strm.output, s.strm.next_out, len);
9502
- s.strm.next_out += len;
9503
- s.strm.avail_out -= len;
9504
- s.strm.total_out += len;
11228
+ if (len2) {
11229
+ read_buf(s.strm, s.strm.output, s.strm.next_out, len2);
11230
+ s.strm.next_out += len2;
11231
+ s.strm.avail_out -= len2;
11232
+ s.strm.total_out += len2;
9505
11233
  }
9506
11234
  } while (last === 0);
9507
11235
  used -= s.strm.avail_in;
@@ -9566,10 +11294,10 @@ var deflate_stored = (s, flush) => {
9566
11294
  min_block = have > s.w_size ? s.w_size : have;
9567
11295
  left = s.strstart - s.block_start;
9568
11296
  if (left >= min_block || (left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 && s.strm.avail_in === 0 && left <= have) {
9569
- len = left > have ? have : left;
9570
- last = flush === Z_FINISH$3 && s.strm.avail_in === 0 && len === left ? 1 : 0;
9571
- _tr_stored_block(s, s.block_start, len, last);
9572
- s.block_start += len;
11297
+ len2 = left > have ? have : left;
11298
+ last = flush === Z_FINISH$3 && s.strm.avail_in === 0 && len2 === left ? 1 : 0;
11299
+ _tr_stored_block(s, s.block_start, len2, last);
11300
+ s.block_start += len2;
9573
11301
  flush_pending(s.strm);
9574
11302
  }
9575
11303
  return last ? BS_FINISH_STARTED : BS_NEED_MORE;
@@ -9861,7 +11589,7 @@ var configuration_table = [
9861
11589
  ];
9862
11590
  var lm_init = (s) => {
9863
11591
  s.window_size = 2 * s.w_size;
9864
- zero(s.head);
11592
+ zero2(s.head);
9865
11593
  s.max_lazy_match = configuration_table[s.level].max_lazy;
9866
11594
  s.good_match = configuration_table[s.level].good_length;
9867
11595
  s.nice_match = configuration_table[s.level].nice_length;
@@ -9915,19 +11643,19 @@ function DeflateState() {
9915
11643
  this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);
9916
11644
  this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);
9917
11645
  this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);
9918
- zero(this.dyn_ltree);
9919
- zero(this.dyn_dtree);
9920
- zero(this.bl_tree);
11646
+ zero2(this.dyn_ltree);
11647
+ zero2(this.dyn_dtree);
11648
+ zero2(this.bl_tree);
9921
11649
  this.l_desc = null;
9922
11650
  this.d_desc = null;
9923
11651
  this.bl_desc = null;
9924
11652
  this.bl_count = new Uint16Array(MAX_BITS + 1);
9925
11653
  this.heap = new Uint16Array(2 * L_CODES + 1);
9926
- zero(this.heap);
11654
+ zero2(this.heap);
9927
11655
  this.heap_len = 0;
9928
11656
  this.heap_max = 0;
9929
11657
  this.depth = new Uint16Array(2 * L_CODES + 1);
9930
- zero(this.depth);
11658
+ zero2(this.depth);
9931
11659
  this.sym_buf = 0;
9932
11660
  this.lit_bufsize = 0;
9933
11661
  this.sym_next = 0;
@@ -10138,20 +11866,20 @@ var deflate$2 = (strm, flush) => {
10138
11866
  let beg = s.pending;
10139
11867
  let left = (s.gzhead.extra.length & 65535) - s.gzindex;
10140
11868
  while (s.pending + left > s.pending_buf_size) {
10141
- let copy = s.pending_buf_size - s.pending;
10142
- s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);
11869
+ let copy3 = s.pending_buf_size - s.pending;
11870
+ s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy3), s.pending);
10143
11871
  s.pending = s.pending_buf_size;
10144
11872
  if (s.gzhead.hcrc && s.pending > beg) {
10145
11873
  strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
10146
11874
  }
10147
- s.gzindex += copy;
11875
+ s.gzindex += copy3;
10148
11876
  flush_pending(strm);
10149
11877
  if (s.pending !== 0) {
10150
11878
  s.last_flush = -1;
10151
11879
  return Z_OK$3;
10152
11880
  }
10153
11881
  beg = 0;
10154
- left -= copy;
11882
+ left -= copy3;
10155
11883
  }
10156
11884
  let gzhead_extra = new Uint8Array(s.gzhead.extra);
10157
11885
  s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);
@@ -10259,7 +11987,7 @@ var deflate$2 = (strm, flush) => {
10259
11987
  } else if (flush !== Z_BLOCK$1) {
10260
11988
  _tr_stored_block(s, 0, 0, false);
10261
11989
  if (flush === Z_FULL_FLUSH$1) {
10262
- zero(s.head);
11990
+ zero2(s.head);
10263
11991
  if (s.lookahead === 0) {
10264
11992
  s.strstart = 0;
10265
11993
  s.block_start = 0;
@@ -10323,7 +12051,7 @@ var deflateSetDictionary = (strm, dictionary) => {
10323
12051
  s.wrap = 0;
10324
12052
  if (dictLength >= s.w_size) {
10325
12053
  if (wrap === 0) {
10326
- zero(s.head);
12054
+ zero2(s.head);
10327
12055
  s.strstart = 0;
10328
12056
  s.block_start = 0;
10329
12057
  s.insert = 0;
@@ -10341,15 +12069,15 @@ var deflateSetDictionary = (strm, dictionary) => {
10341
12069
  strm.input = dictionary;
10342
12070
  fill_window(s);
10343
12071
  while (s.lookahead >= MIN_MATCH) {
10344
- let str = s.strstart;
12072
+ let str3 = s.strstart;
10345
12073
  let n = s.lookahead - (MIN_MATCH - 1);
10346
12074
  do {
10347
- s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
10348
- s.prev[str & s.w_mask] = s.head[s.ins_h];
10349
- s.head[s.ins_h] = str;
10350
- str++;
12075
+ s.ins_h = HASH(s, s.ins_h, s.window[str3 + MIN_MATCH - 1]);
12076
+ s.prev[str3 & s.w_mask] = s.head[s.ins_h];
12077
+ s.head[s.ins_h] = str3;
12078
+ str3++;
10351
12079
  } while (--n);
10352
- s.strstart = str;
12080
+ s.strstart = str3;
10353
12081
  s.lookahead = MIN_MATCH - 1;
10354
12082
  fill_window(s);
10355
12083
  }
@@ -10407,11 +12135,11 @@ var assign = function(obj) {
10407
12135
  return obj;
10408
12136
  };
10409
12137
  var flattenChunks = (chunks) => {
10410
- let len = 0;
12138
+ let len2 = 0;
10411
12139
  for (let i = 0, l = chunks.length; i < l; i++) {
10412
- len += chunks[i].length;
12140
+ len2 += chunks[i].length;
10413
12141
  }
10414
- const result = new Uint8Array(len);
12142
+ const result = new Uint8Array(len2);
10415
12143
  for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {
10416
12144
  let chunk = chunks[i];
10417
12145
  result.set(chunk, pos);
@@ -10434,15 +12162,15 @@ for (let q = 0; q < 256; q++) {
10434
12162
  _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
10435
12163
  }
10436
12164
  _utf8len[254] = _utf8len[254] = 1;
10437
- var string2buf = (str) => {
12165
+ var string2buf = (str3) => {
10438
12166
  if (typeof TextEncoder === "function" && TextEncoder.prototype.encode) {
10439
- return new TextEncoder().encode(str);
12167
+ return new TextEncoder().encode(str3);
10440
12168
  }
10441
- let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
12169
+ let buf, c, c2, m_pos, i, str_len = str3.length, buf_len = 0;
10442
12170
  for (m_pos = 0; m_pos < str_len; m_pos++) {
10443
- c = str.charCodeAt(m_pos);
12171
+ c = str3.charCodeAt(m_pos);
10444
12172
  if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
10445
- c2 = str.charCodeAt(m_pos + 1);
12173
+ c2 = str3.charCodeAt(m_pos + 1);
10446
12174
  if ((c2 & 64512) === 56320) {
10447
12175
  c = 65536 + (c - 55296 << 10) + (c2 - 56320);
10448
12176
  m_pos++;
@@ -10452,9 +12180,9 @@ var string2buf = (str) => {
10452
12180
  }
10453
12181
  buf = new Uint8Array(buf_len);
10454
12182
  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
10455
- c = str.charCodeAt(m_pos);
12183
+ c = str3.charCodeAt(m_pos);
10456
12184
  if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
10457
- c2 = str.charCodeAt(m_pos + 1);
12185
+ c2 = str3.charCodeAt(m_pos + 1);
10458
12186
  if ((c2 & 64512) === 56320) {
10459
12187
  c = 65536 + (c - 55296 << 10) + (c2 - 56320);
10460
12188
  m_pos++;
@@ -10478,26 +12206,26 @@ var string2buf = (str) => {
10478
12206
  }
10479
12207
  return buf;
10480
12208
  };
10481
- var buf2binstring = (buf, len) => {
10482
- if (len < 65534) {
12209
+ var buf2binstring = (buf, len2) => {
12210
+ if (len2 < 65534) {
10483
12211
  if (buf.subarray && STR_APPLY_UIA_OK) {
10484
- return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));
12212
+ return String.fromCharCode.apply(null, buf.length === len2 ? buf : buf.subarray(0, len2));
10485
12213
  }
10486
12214
  }
10487
12215
  let result = "";
10488
- for (let i = 0; i < len; i++) {
12216
+ for (let i = 0; i < len2; i++) {
10489
12217
  result += String.fromCharCode(buf[i]);
10490
12218
  }
10491
12219
  return result;
10492
12220
  };
10493
- var buf2string = (buf, max) => {
10494
- const len = max || buf.length;
12221
+ var buf2string = (buf, max2) => {
12222
+ const len2 = max2 || buf.length;
10495
12223
  if (typeof TextDecoder === "function" && TextDecoder.prototype.decode) {
10496
- return new TextDecoder().decode(buf.subarray(0, max));
12224
+ return new TextDecoder().decode(buf.subarray(0, max2));
10497
12225
  }
10498
12226
  let i, out;
10499
- const utf16buf = new Array(len * 2);
10500
- for (out = 0, i = 0; i < len; ) {
12227
+ const utf16buf = new Array(len2 * 2);
12228
+ for (out = 0, i = 0; i < len2; ) {
10501
12229
  let c = buf[i++];
10502
12230
  if (c < 128) {
10503
12231
  utf16buf[out++] = c;
@@ -10510,7 +12238,7 @@ var buf2string = (buf, max) => {
10510
12238
  continue;
10511
12239
  }
10512
12240
  c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
10513
- while (c_len > 1 && i < len) {
12241
+ while (c_len > 1 && i < len2) {
10514
12242
  c = c << 6 | buf[i++] & 63;
10515
12243
  c_len--;
10516
12244
  }
@@ -10528,22 +12256,22 @@ var buf2string = (buf, max) => {
10528
12256
  }
10529
12257
  return buf2binstring(utf16buf, out);
10530
12258
  };
10531
- var utf8border = (buf, max) => {
10532
- max = max || buf.length;
10533
- if (max > buf.length) {
10534
- max = buf.length;
12259
+ var utf8border = (buf, max2) => {
12260
+ max2 = max2 || buf.length;
12261
+ if (max2 > buf.length) {
12262
+ max2 = buf.length;
10535
12263
  }
10536
- let pos = max - 1;
12264
+ let pos = max2 - 1;
10537
12265
  while (pos >= 0 && (buf[pos] & 192) === 128) {
10538
12266
  pos--;
10539
12267
  }
10540
12268
  if (pos < 0) {
10541
- return max;
12269
+ return max2;
10542
12270
  }
10543
12271
  if (pos === 0) {
10544
- return max;
12272
+ return max2;
10545
12273
  }
10546
- return pos + _utf8len[buf[pos]] > max ? pos : max;
12274
+ return pos + _utf8len[buf[pos]] > max2 ? pos : max2;
10547
12275
  };
10548
12276
  var strings = {
10549
12277
  string2buf,
@@ -10742,8 +12470,8 @@ var inffast = function inflate_fast(strm, start) {
10742
12470
  let dmask;
10743
12471
  let here;
10744
12472
  let op;
10745
- let len;
10746
- let dist;
12473
+ let len2;
12474
+ let dist2;
10747
12475
  let from;
10748
12476
  let from_source;
10749
12477
  let input, output;
@@ -10784,14 +12512,14 @@ var inffast = function inflate_fast(strm, start) {
10784
12512
  if (op === 0) {
10785
12513
  output[_out++] = here & 65535;
10786
12514
  } else if (op & 16) {
10787
- len = here & 65535;
12515
+ len2 = here & 65535;
10788
12516
  op &= 15;
10789
12517
  if (op) {
10790
12518
  if (bits < op) {
10791
12519
  hold += input[_in++] << bits;
10792
12520
  bits += 8;
10793
12521
  }
10794
- len += hold & (1 << op) - 1;
12522
+ len2 += hold & (1 << op) - 1;
10795
12523
  hold >>>= op;
10796
12524
  bits -= op;
10797
12525
  }
@@ -10809,7 +12537,7 @@ var inffast = function inflate_fast(strm, start) {
10809
12537
  bits -= op;
10810
12538
  op = here >>> 16 & 255;
10811
12539
  if (op & 16) {
10812
- dist = here & 65535;
12540
+ dist2 = here & 65535;
10813
12541
  op &= 15;
10814
12542
  if (bits < op) {
10815
12543
  hold += input[_in++] << bits;
@@ -10819,8 +12547,8 @@ var inffast = function inflate_fast(strm, start) {
10819
12547
  bits += 8;
10820
12548
  }
10821
12549
  }
10822
- dist += hold & (1 << op) - 1;
10823
- if (dist > dmax) {
12550
+ dist2 += hold & (1 << op) - 1;
12551
+ if (dist2 > dmax) {
10824
12552
  strm.msg = "invalid distance too far back";
10825
12553
  state.mode = BAD$1;
10826
12554
  break top;
@@ -10828,8 +12556,8 @@ var inffast = function inflate_fast(strm, start) {
10828
12556
  hold >>>= op;
10829
12557
  bits -= op;
10830
12558
  op = _out - beg;
10831
- if (dist > op) {
10832
- op = dist - op;
12559
+ if (dist2 > op) {
12560
+ op = dist2 - op;
10833
12561
  if (op > whave) {
10834
12562
  if (state.sane) {
10835
12563
  strm.msg = "invalid distance too far back";
@@ -10841,67 +12569,67 @@ var inffast = function inflate_fast(strm, start) {
10841
12569
  from_source = s_window;
10842
12570
  if (wnext === 0) {
10843
12571
  from += wsize - op;
10844
- if (op < len) {
10845
- len -= op;
12572
+ if (op < len2) {
12573
+ len2 -= op;
10846
12574
  do {
10847
12575
  output[_out++] = s_window[from++];
10848
12576
  } while (--op);
10849
- from = _out - dist;
12577
+ from = _out - dist2;
10850
12578
  from_source = output;
10851
12579
  }
10852
12580
  } else if (wnext < op) {
10853
12581
  from += wsize + wnext - op;
10854
12582
  op -= wnext;
10855
- if (op < len) {
10856
- len -= op;
12583
+ if (op < len2) {
12584
+ len2 -= op;
10857
12585
  do {
10858
12586
  output[_out++] = s_window[from++];
10859
12587
  } while (--op);
10860
12588
  from = 0;
10861
- if (wnext < len) {
12589
+ if (wnext < len2) {
10862
12590
  op = wnext;
10863
- len -= op;
12591
+ len2 -= op;
10864
12592
  do {
10865
12593
  output[_out++] = s_window[from++];
10866
12594
  } while (--op);
10867
- from = _out - dist;
12595
+ from = _out - dist2;
10868
12596
  from_source = output;
10869
12597
  }
10870
12598
  }
10871
12599
  } else {
10872
12600
  from += wnext - op;
10873
- if (op < len) {
10874
- len -= op;
12601
+ if (op < len2) {
12602
+ len2 -= op;
10875
12603
  do {
10876
12604
  output[_out++] = s_window[from++];
10877
12605
  } while (--op);
10878
- from = _out - dist;
12606
+ from = _out - dist2;
10879
12607
  from_source = output;
10880
12608
  }
10881
12609
  }
10882
- while (len > 2) {
12610
+ while (len2 > 2) {
10883
12611
  output[_out++] = from_source[from++];
10884
12612
  output[_out++] = from_source[from++];
10885
12613
  output[_out++] = from_source[from++];
10886
- len -= 3;
12614
+ len2 -= 3;
10887
12615
  }
10888
- if (len) {
12616
+ if (len2) {
10889
12617
  output[_out++] = from_source[from++];
10890
- if (len > 1) {
12618
+ if (len2 > 1) {
10891
12619
  output[_out++] = from_source[from++];
10892
12620
  }
10893
12621
  }
10894
12622
  } else {
10895
- from = _out - dist;
12623
+ from = _out - dist2;
10896
12624
  do {
10897
12625
  output[_out++] = output[from++];
10898
12626
  output[_out++] = output[from++];
10899
12627
  output[_out++] = output[from++];
10900
- len -= 3;
10901
- } while (len > 2);
10902
- if (len) {
12628
+ len2 -= 3;
12629
+ } while (len2 > 2);
12630
+ if (len2) {
10903
12631
  output[_out++] = output[from++];
10904
- if (len > 1) {
12632
+ if (len2 > 1) {
10905
12633
  output[_out++] = output[from++];
10906
12634
  }
10907
12635
  }
@@ -10930,9 +12658,9 @@ var inffast = function inflate_fast(strm, start) {
10930
12658
  break;
10931
12659
  }
10932
12660
  } while (_in < last && _out < end);
10933
- len = bits >> 3;
10934
- _in -= len;
10935
- bits -= len << 3;
12661
+ len2 = bits >> 3;
12662
+ _in -= len2;
12663
+ bits -= len2 << 3;
10936
12664
  hold &= (1 << bits) - 1;
10937
12665
  strm.next_in = _in;
10938
12666
  strm.next_out = _out;
@@ -11088,9 +12816,9 @@ var dext = new Uint8Array([
11088
12816
  ]);
11089
12817
  var inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => {
11090
12818
  const bits = opts.bits;
11091
- let len = 0;
12819
+ let len2 = 0;
11092
12820
  let sym = 0;
11093
- let min = 0, max = 0;
12821
+ let min2 = 0, max2 = 0;
11094
12822
  let root = 0;
11095
12823
  let curr = 0;
11096
12824
  let drop = 0;
@@ -11108,49 +12836,49 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11108
12836
  const offs = new Uint16Array(MAXBITS + 1);
11109
12837
  let extra = null;
11110
12838
  let here_bits, here_op, here_val;
11111
- for (len = 0; len <= MAXBITS; len++) {
11112
- count[len] = 0;
12839
+ for (len2 = 0; len2 <= MAXBITS; len2++) {
12840
+ count[len2] = 0;
11113
12841
  }
11114
12842
  for (sym = 0; sym < codes; sym++) {
11115
12843
  count[lens[lens_index + sym]]++;
11116
12844
  }
11117
12845
  root = bits;
11118
- for (max = MAXBITS; max >= 1; max--) {
11119
- if (count[max] !== 0) {
12846
+ for (max2 = MAXBITS; max2 >= 1; max2--) {
12847
+ if (count[max2] !== 0) {
11120
12848
  break;
11121
12849
  }
11122
12850
  }
11123
- if (root > max) {
11124
- root = max;
12851
+ if (root > max2) {
12852
+ root = max2;
11125
12853
  }
11126
- if (max === 0) {
12854
+ if (max2 === 0) {
11127
12855
  table[table_index++] = 1 << 24 | 64 << 16 | 0;
11128
12856
  table[table_index++] = 1 << 24 | 64 << 16 | 0;
11129
12857
  opts.bits = 1;
11130
12858
  return 0;
11131
12859
  }
11132
- for (min = 1; min < max; min++) {
11133
- if (count[min] !== 0) {
12860
+ for (min2 = 1; min2 < max2; min2++) {
12861
+ if (count[min2] !== 0) {
11134
12862
  break;
11135
12863
  }
11136
12864
  }
11137
- if (root < min) {
11138
- root = min;
12865
+ if (root < min2) {
12866
+ root = min2;
11139
12867
  }
11140
12868
  left = 1;
11141
- for (len = 1; len <= MAXBITS; len++) {
12869
+ for (len2 = 1; len2 <= MAXBITS; len2++) {
11142
12870
  left <<= 1;
11143
- left -= count[len];
12871
+ left -= count[len2];
11144
12872
  if (left < 0) {
11145
12873
  return -1;
11146
12874
  }
11147
12875
  }
11148
- if (left > 0 && (type === CODES$1 || max !== 1)) {
12876
+ if (left > 0 && (type === CODES$1 || max2 !== 1)) {
11149
12877
  return -1;
11150
12878
  }
11151
12879
  offs[1] = 0;
11152
- for (len = 1; len < MAXBITS; len++) {
11153
- offs[len + 1] = offs[len] + count[len];
12880
+ for (len2 = 1; len2 < MAXBITS; len2++) {
12881
+ offs[len2 + 1] = offs[len2] + count[len2];
11154
12882
  }
11155
12883
  for (sym = 0; sym < codes; sym++) {
11156
12884
  if (lens[lens_index + sym] !== 0) {
@@ -11171,7 +12899,7 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11171
12899
  }
11172
12900
  huff = 0;
11173
12901
  sym = 0;
11174
- len = min;
12902
+ len2 = min2;
11175
12903
  next = table_index;
11176
12904
  curr = root;
11177
12905
  drop = 0;
@@ -11182,7 +12910,7 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11182
12910
  return 1;
11183
12911
  }
11184
12912
  for (; ; ) {
11185
- here_bits = len - drop;
12913
+ here_bits = len2 - drop;
11186
12914
  if (work[sym] + 1 < match) {
11187
12915
  here_op = 0;
11188
12916
  here_val = work[sym];
@@ -11193,14 +12921,14 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11193
12921
  here_op = 32 + 64;
11194
12922
  here_val = 0;
11195
12923
  }
11196
- incr = 1 << len - drop;
12924
+ incr = 1 << len2 - drop;
11197
12925
  fill = 1 << curr;
11198
- min = fill;
12926
+ min2 = fill;
11199
12927
  do {
11200
12928
  fill -= incr;
11201
12929
  table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
11202
12930
  } while (fill !== 0);
11203
- incr = 1 << len - 1;
12931
+ incr = 1 << len2 - 1;
11204
12932
  while (huff & incr) {
11205
12933
  incr >>= 1;
11206
12934
  }
@@ -11211,20 +12939,20 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11211
12939
  huff = 0;
11212
12940
  }
11213
12941
  sym++;
11214
- if (--count[len] === 0) {
11215
- if (len === max) {
12942
+ if (--count[len2] === 0) {
12943
+ if (len2 === max2) {
11216
12944
  break;
11217
12945
  }
11218
- len = lens[lens_index + work[sym]];
12946
+ len2 = lens[lens_index + work[sym]];
11219
12947
  }
11220
- if (len > root && (huff & mask) !== low) {
12948
+ if (len2 > root && (huff & mask) !== low) {
11221
12949
  if (drop === 0) {
11222
12950
  drop = root;
11223
12951
  }
11224
- next += min;
11225
- curr = len - drop;
12952
+ next += min2;
12953
+ curr = len2 - drop;
11226
12954
  left = 1 << curr;
11227
- while (curr + drop < max) {
12955
+ while (curr + drop < max2) {
11228
12956
  left -= count[curr + drop];
11229
12957
  if (left <= 0) {
11230
12958
  break;
@@ -11241,7 +12969,7 @@ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, op
11241
12969
  }
11242
12970
  }
11243
12971
  if (huff !== 0) {
11244
- table[next + huff] = len - drop << 24 | 64 << 16 | 0;
12972
+ table[next + huff] = len2 - drop << 24 | 64 << 16 | 0;
11245
12973
  }
11246
12974
  opts.bits = root;
11247
12975
  return 0;
@@ -11460,8 +13188,8 @@ var fixedtables = (state) => {
11460
13188
  state.distcode = distfix;
11461
13189
  state.distbits = 5;
11462
13190
  };
11463
- var updatewindow = (strm, src, end, copy) => {
11464
- let dist;
13191
+ var updatewindow = (strm, src, end, copy3) => {
13192
+ let dist2;
11465
13193
  const state = strm.state;
11466
13194
  if (state.window === null) {
11467
13195
  state.wsize = 1 << state.wbits;
@@ -11469,28 +13197,28 @@ var updatewindow = (strm, src, end, copy) => {
11469
13197
  state.whave = 0;
11470
13198
  state.window = new Uint8Array(state.wsize);
11471
13199
  }
11472
- if (copy >= state.wsize) {
13200
+ if (copy3 >= state.wsize) {
11473
13201
  state.window.set(src.subarray(end - state.wsize, end), 0);
11474
13202
  state.wnext = 0;
11475
13203
  state.whave = state.wsize;
11476
13204
  } else {
11477
- dist = state.wsize - state.wnext;
11478
- if (dist > copy) {
11479
- dist = copy;
11480
- }
11481
- state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);
11482
- copy -= dist;
11483
- if (copy) {
11484
- state.window.set(src.subarray(end - copy, end), 0);
11485
- state.wnext = copy;
13205
+ dist2 = state.wsize - state.wnext;
13206
+ if (dist2 > copy3) {
13207
+ dist2 = copy3;
13208
+ }
13209
+ state.window.set(src.subarray(end - copy3, end - copy3 + dist2), state.wnext);
13210
+ copy3 -= dist2;
13211
+ if (copy3) {
13212
+ state.window.set(src.subarray(end - copy3, end), 0);
13213
+ state.wnext = copy3;
11486
13214
  state.whave = state.wsize;
11487
13215
  } else {
11488
- state.wnext += dist;
13216
+ state.wnext += dist2;
11489
13217
  if (state.wnext === state.wsize) {
11490
13218
  state.wnext = 0;
11491
13219
  }
11492
13220
  if (state.whave < state.wsize) {
11493
- state.whave += dist;
13221
+ state.whave += dist2;
11494
13222
  }
11495
13223
  }
11496
13224
  }
@@ -11505,13 +13233,13 @@ var inflate$2 = (strm, flush) => {
11505
13233
  let hold;
11506
13234
  let bits;
11507
13235
  let _in, _out;
11508
- let copy;
13236
+ let copy3;
11509
13237
  let from;
11510
13238
  let from_source;
11511
13239
  let here = 0;
11512
13240
  let here_bits, here_op, here_val;
11513
13241
  let last_bits, last_op, last_val;
11514
- let len;
13242
+ let len2;
11515
13243
  let ret;
11516
13244
  const hbuf = new Uint8Array(4);
11517
13245
  let opts;
@@ -11583,11 +13311,11 @@ var inflate$2 = (strm, flush) => {
11583
13311
  }
11584
13312
  hold >>>= 4;
11585
13313
  bits -= 4;
11586
- len = (hold & 15) + 8;
13314
+ len2 = (hold & 15) + 8;
11587
13315
  if (state.wbits === 0) {
11588
- state.wbits = len;
13316
+ state.wbits = len2;
11589
13317
  }
11590
- if (len > 15 || len > state.wbits) {
13318
+ if (len2 > 15 || len2 > state.wbits) {
11591
13319
  strm.msg = "invalid window size";
11592
13320
  state.mode = BAD;
11593
13321
  break;
@@ -11704,13 +13432,13 @@ var inflate$2 = (strm, flush) => {
11704
13432
  /* falls through */
11705
13433
  case EXTRA:
11706
13434
  if (state.flags & 1024) {
11707
- copy = state.length;
11708
- if (copy > have) {
11709
- copy = have;
13435
+ copy3 = state.length;
13436
+ if (copy3 > have) {
13437
+ copy3 = have;
11710
13438
  }
11711
- if (copy) {
13439
+ if (copy3) {
11712
13440
  if (state.head) {
11713
- len = state.head.extra_len - state.length;
13441
+ len2 = state.head.extra_len - state.length;
11714
13442
  if (!state.head.extra) {
11715
13443
  state.head.extra = new Uint8Array(state.head.extra_len);
11716
13444
  }
@@ -11719,18 +13447,18 @@ var inflate$2 = (strm, flush) => {
11719
13447
  next,
11720
13448
  // extra field is limited to 65536 bytes
11721
13449
  // - no need for additional size check
11722
- next + copy
13450
+ next + copy3
11723
13451
  ),
11724
13452
  /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
11725
- len
13453
+ len2
11726
13454
  );
11727
13455
  }
11728
13456
  if (state.flags & 512 && state.wrap & 4) {
11729
- state.check = crc32_1(state.check, input, copy, next);
13457
+ state.check = crc32_1(state.check, input, copy3, next);
11730
13458
  }
11731
- have -= copy;
11732
- next += copy;
11733
- state.length -= copy;
13459
+ have -= copy3;
13460
+ next += copy3;
13461
+ state.length -= copy3;
11734
13462
  }
11735
13463
  if (state.length) {
11736
13464
  break inf_leave;
@@ -11744,19 +13472,19 @@ var inflate$2 = (strm, flush) => {
11744
13472
  if (have === 0) {
11745
13473
  break inf_leave;
11746
13474
  }
11747
- copy = 0;
13475
+ copy3 = 0;
11748
13476
  do {
11749
- len = input[next + copy++];
11750
- if (state.head && len && state.length < 65536) {
11751
- state.head.name += String.fromCharCode(len);
13477
+ len2 = input[next + copy3++];
13478
+ if (state.head && len2 && state.length < 65536) {
13479
+ state.head.name += String.fromCharCode(len2);
11752
13480
  }
11753
- } while (len && copy < have);
13481
+ } while (len2 && copy3 < have);
11754
13482
  if (state.flags & 512 && state.wrap & 4) {
11755
- state.check = crc32_1(state.check, input, copy, next);
13483
+ state.check = crc32_1(state.check, input, copy3, next);
11756
13484
  }
11757
- have -= copy;
11758
- next += copy;
11759
- if (len) {
13485
+ have -= copy3;
13486
+ next += copy3;
13487
+ if (len2) {
11760
13488
  break inf_leave;
11761
13489
  }
11762
13490
  } else if (state.head) {
@@ -11770,19 +13498,19 @@ var inflate$2 = (strm, flush) => {
11770
13498
  if (have === 0) {
11771
13499
  break inf_leave;
11772
13500
  }
11773
- copy = 0;
13501
+ copy3 = 0;
11774
13502
  do {
11775
- len = input[next + copy++];
11776
- if (state.head && len && state.length < 65536) {
11777
- state.head.comment += String.fromCharCode(len);
13503
+ len2 = input[next + copy3++];
13504
+ if (state.head && len2 && state.length < 65536) {
13505
+ state.head.comment += String.fromCharCode(len2);
11778
13506
  }
11779
- } while (len && copy < have);
13507
+ } while (len2 && copy3 < have);
11780
13508
  if (state.flags & 512 && state.wrap & 4) {
11781
- state.check = crc32_1(state.check, input, copy, next);
13509
+ state.check = crc32_1(state.check, input, copy3, next);
11782
13510
  }
11783
- have -= copy;
11784
- next += copy;
11785
- if (len) {
13511
+ have -= copy3;
13512
+ next += copy3;
13513
+ if (len2) {
11786
13514
  break inf_leave;
11787
13515
  }
11788
13516
  } else if (state.head) {
@@ -11916,23 +13644,23 @@ var inflate$2 = (strm, flush) => {
11916
13644
  state.mode = COPY;
11917
13645
  /* falls through */
11918
13646
  case COPY:
11919
- copy = state.length;
11920
- if (copy) {
11921
- if (copy > have) {
11922
- copy = have;
13647
+ copy3 = state.length;
13648
+ if (copy3) {
13649
+ if (copy3 > have) {
13650
+ copy3 = have;
11923
13651
  }
11924
- if (copy > left) {
11925
- copy = left;
13652
+ if (copy3 > left) {
13653
+ copy3 = left;
11926
13654
  }
11927
- if (copy === 0) {
13655
+ if (copy3 === 0) {
11928
13656
  break inf_leave;
11929
13657
  }
11930
- output.set(input.subarray(next, next + copy), put);
11931
- have -= copy;
11932
- next += copy;
11933
- left -= copy;
11934
- put += copy;
11935
- state.length -= copy;
13658
+ output.set(input.subarray(next, next + copy3), put);
13659
+ have -= copy3;
13660
+ next += copy3;
13661
+ left -= copy3;
13662
+ put += copy3;
13663
+ state.length -= copy3;
11936
13664
  break;
11937
13665
  }
11938
13666
  state.mode = TYPE;
@@ -12032,8 +13760,8 @@ var inflate$2 = (strm, flush) => {
12032
13760
  state.mode = BAD;
12033
13761
  break;
12034
13762
  }
12035
- len = state.lens[state.have - 1];
12036
- copy = 3 + (hold & 3);
13763
+ len2 = state.lens[state.have - 1];
13764
+ copy3 = 3 + (hold & 3);
12037
13765
  hold >>>= 2;
12038
13766
  bits -= 2;
12039
13767
  } else if (here_val === 17) {
@@ -12048,8 +13776,8 @@ var inflate$2 = (strm, flush) => {
12048
13776
  }
12049
13777
  hold >>>= here_bits;
12050
13778
  bits -= here_bits;
12051
- len = 0;
12052
- copy = 3 + (hold & 7);
13779
+ len2 = 0;
13780
+ copy3 = 3 + (hold & 7);
12053
13781
  hold >>>= 3;
12054
13782
  bits -= 3;
12055
13783
  } else {
@@ -12064,18 +13792,18 @@ var inflate$2 = (strm, flush) => {
12064
13792
  }
12065
13793
  hold >>>= here_bits;
12066
13794
  bits -= here_bits;
12067
- len = 0;
12068
- copy = 11 + (hold & 127);
13795
+ len2 = 0;
13796
+ copy3 = 11 + (hold & 127);
12069
13797
  hold >>>= 7;
12070
13798
  bits -= 7;
12071
13799
  }
12072
- if (state.have + copy > state.nlen + state.ndist) {
13800
+ if (state.have + copy3 > state.nlen + state.ndist) {
12073
13801
  strm.msg = "invalid bit length repeat";
12074
13802
  state.mode = BAD;
12075
13803
  break;
12076
13804
  }
12077
- while (copy--) {
12078
- state.lens[state.have++] = len;
13805
+ while (copy3--) {
13806
+ state.lens[state.have++] = len2;
12079
13807
  }
12080
13808
  }
12081
13809
  }
@@ -12293,39 +14021,39 @@ var inflate$2 = (strm, flush) => {
12293
14021
  if (left === 0) {
12294
14022
  break inf_leave;
12295
14023
  }
12296
- copy = _out - left;
12297
- if (state.offset > copy) {
12298
- copy = state.offset - copy;
12299
- if (copy > state.whave) {
14024
+ copy3 = _out - left;
14025
+ if (state.offset > copy3) {
14026
+ copy3 = state.offset - copy3;
14027
+ if (copy3 > state.whave) {
12300
14028
  if (state.sane) {
12301
14029
  strm.msg = "invalid distance too far back";
12302
14030
  state.mode = BAD;
12303
14031
  break;
12304
14032
  }
12305
14033
  }
12306
- if (copy > state.wnext) {
12307
- copy -= state.wnext;
12308
- from = state.wsize - copy;
14034
+ if (copy3 > state.wnext) {
14035
+ copy3 -= state.wnext;
14036
+ from = state.wsize - copy3;
12309
14037
  } else {
12310
- from = state.wnext - copy;
14038
+ from = state.wnext - copy3;
12311
14039
  }
12312
- if (copy > state.length) {
12313
- copy = state.length;
14040
+ if (copy3 > state.length) {
14041
+ copy3 = state.length;
12314
14042
  }
12315
14043
  from_source = state.window;
12316
14044
  } else {
12317
14045
  from_source = output;
12318
14046
  from = put - state.offset;
12319
- copy = state.length;
14047
+ copy3 = state.length;
12320
14048
  }
12321
- if (copy > left) {
12322
- copy = left;
14049
+ if (copy3 > left) {
14050
+ copy3 = left;
12323
14051
  }
12324
- left -= copy;
12325
- state.length -= copy;
14052
+ left -= copy3;
14053
+ state.length -= copy3;
12326
14054
  do {
12327
14055
  output[put++] = from_source[from++];
12328
- } while (--copy);
14056
+ } while (--copy3);
12329
14057
  if (state.length === 0) {
12330
14058
  state.mode = LEN;
12331
14059
  }
@@ -12789,18 +14517,18 @@ var _StreamingBuffer = class _StreamingBuffer {
12789
14517
  _StreamingBuffer.MAX_STRING_LENGTH,
12790
14518
  this.writeOffset - this.readOffset
12791
14519
  );
12792
- let length = 0;
12793
- while (length < maxLength && this.buffer[this.readOffset + length] !== 0) {
12794
- length++;
14520
+ let length2 = 0;
14521
+ while (length2 < maxLength && this.buffer[this.readOffset + length2] !== 0) {
14522
+ length2++;
12795
14523
  }
12796
- if (length >= maxLength) {
14524
+ if (length2 >= maxLength) {
12797
14525
  if (this.writeOffset - this.readOffset <= maxLength) {
12798
14526
  throw new Error("Buffer underflow");
12799
14527
  }
12800
14528
  throw new Error("String exceeds max length");
12801
14529
  }
12802
- const bytes = this.buffer.slice(this.readOffset, this.readOffset + length);
12803
- this.readOffset += length + 1;
14530
+ const bytes = this.buffer.slice(this.readOffset, this.readOffset + length2);
14531
+ this.readOffset += length2 + 1;
12804
14532
  return new TextDecoder("latin1").decode(bytes);
12805
14533
  }
12806
14534
  /**
@@ -13266,8 +14994,8 @@ var NetworkMessageParser = class _NetworkMessageParser {
13266
14994
  }
13267
14995
  parsePrint() {
13268
14996
  const id = this.stream.readByte();
13269
- const str = this.stream.readString();
13270
- if (this.handler) this.handler.onPrint(id, str);
14997
+ const str3 = this.stream.readString();
14998
+ if (this.handler) this.handler.onPrint(id, str3);
13271
14999
  }
13272
15000
  parseStuffText() {
13273
15001
  const text = this.stream.readString();
@@ -13311,8 +15039,8 @@ var NetworkMessageParser = class _NetworkMessageParser {
13311
15039
  }
13312
15040
  parseConfigString() {
13313
15041
  const index = this.stream.readShort();
13314
- const str = this.stream.readString();
13315
- if (this.handler) this.handler.onConfigString(index, str);
15042
+ const str3 = this.stream.readString();
15043
+ if (this.handler) this.handler.onConfigString(index, str3);
13316
15044
  }
13317
15045
  parseSplitClient() {
13318
15046
  const clientNum = this.stream.readByte();
@@ -13327,8 +15055,8 @@ var NetworkMessageParser = class _NetworkMessageParser {
13327
15055
  const blastStream = new BinaryStream(decompressed.buffer);
13328
15056
  while (blastStream.hasMore()) {
13329
15057
  const index = blastStream.readUShort();
13330
- const str = blastStream.readString();
13331
- if (this.handler) this.handler.onConfigString(index, str);
15058
+ const str3 = blastStream.readString();
15059
+ if (this.handler) this.handler.onConfigString(index, str3);
13332
15060
  }
13333
15061
  } catch (e) {
13334
15062
  console.error("svc_configblast error", e);
@@ -13890,10 +15618,10 @@ var DemoAnalyzer = class {
13890
15618
  frameDuration = 1 / tickRate;
13891
15619
  }
13892
15620
  },
13893
- onConfigString: (index, str) => {
13894
- this.configStrings.set(index, str);
15621
+ onConfigString: (index, str3) => {
15622
+ this.configStrings.set(index, str3);
13895
15623
  if (index === 0) {
13896
- this.parseServerInfo(str);
15624
+ this.parseServerInfo(str3);
13897
15625
  }
13898
15626
  },
13899
15627
  onSpawnBaseline: (entity) => {
@@ -14046,8 +15774,8 @@ var DemoAnalyzer = class {
14046
15774
  recordEvent(event) {
14047
15775
  this.events.push(event);
14048
15776
  }
14049
- parseServerInfo(str) {
14050
- const parts = str.split("\\");
15777
+ parseServerInfo(str3) {
15778
+ const parts = str3.split("\\");
14051
15779
  for (let i = 1; i < parts.length; i += 2) {
14052
15780
  if (i + 1 < parts.length) {
14053
15781
  this.serverInfo[parts[i]] = parts[i + 1];
@@ -14658,8 +16386,8 @@ var DemoPlaybackController = class {
14658
16386
  getCameraMode() {
14659
16387
  return this.cameraMode;
14660
16388
  }
14661
- setThirdPersonDistance(distance) {
14662
- this.thirdPersonDistance = distance;
16389
+ setThirdPersonDistance(distance2) {
16390
+ this.thirdPersonDistance = distance2;
14663
16391
  }
14664
16392
  setThirdPersonOffset(offset) {
14665
16393
  this.thirdPersonOffset = offset;
@@ -14839,9 +16567,9 @@ var DemoValidator = class {
14839
16567
  return { valid: false, error: "File too small to be a valid demo" };
14840
16568
  }
14841
16569
  const view = new DataView(buffer);
14842
- const length = view.getInt32(0, true);
14843
- if (length <= 0 || length > buffer.byteLength - 4) {
14844
- return { valid: false, error: `Invalid first block length: ${length}` };
16570
+ const length2 = view.getInt32(0, true);
16571
+ if (length2 <= 0 || length2 > buffer.byteLength - 4) {
16572
+ return { valid: false, error: `Invalid first block length: ${length2}` };
14845
16573
  }
14846
16574
  const firstCmd = view.getUint8(4);
14847
16575
  if (firstCmd !== ServerCommand.serverdata) {
@@ -14851,7 +16579,7 @@ var DemoValidator = class {
14851
16579
  };
14852
16580
  }
14853
16581
  let version = -1;
14854
- if (length >= 5) {
16582
+ if (length2 >= 5) {
14855
16583
  version = view.getInt32(5, true);
14856
16584
  }
14857
16585
  return { valid: true, version };
@@ -14936,10 +16664,10 @@ var MessageWriter = class {
14936
16664
  this.writer.writeShort(playerNum);
14937
16665
  this.writer.writeString(levelName);
14938
16666
  }
14939
- writeConfigString(index, str, protocolVersion = 0) {
16667
+ writeConfigString(index, str3, protocolVersion = 0) {
14940
16668
  this.writeCommand(ServerCommand.configstring, protocolVersion);
14941
16669
  this.writer.writeShort(index);
14942
- this.writer.writeString(str);
16670
+ this.writer.writeString(str3);
14943
16671
  }
14944
16672
  writeSpawnBaseline(entity, protocolVersion) {
14945
16673
  this.writeCommand(ServerCommand.spawnbaseline, protocolVersion);
@@ -15439,8 +17167,8 @@ var DemoClipper = class {
15439
17167
  onServerData: (protocol, serverCount, attractLoop, gameDir, playerNum, levelName, tickRate, demoType) => {
15440
17168
  state.serverData = { protocol, serverCount, attractLoop, gameDir, playerNum, levelName, tickRate, demoType };
15441
17169
  },
15442
- onConfigString: (index, str) => {
15443
- state.configStrings.set(index, str);
17170
+ onConfigString: (index, str3) => {
17171
+ state.configStrings.set(index, str3);
15444
17172
  },
15445
17173
  onSpawnBaseline: (entity) => {
15446
17174
  state.entityBaselines.set(entity.number, { ...entity });
@@ -15537,8 +17265,8 @@ var DemoClipper = class {
15537
17265
  serverData.levelName
15538
17266
  );
15539
17267
  }
15540
- for (const [index, str] of worldState.configStrings) {
15541
- headerWriter.writeConfigString(index, str, serverData.protocol);
17268
+ for (const [index, str3] of worldState.configStrings) {
17269
+ headerWriter.writeConfigString(index, str3, serverData.protocol);
15542
17270
  }
15543
17271
  for (const entity of worldState.entityBaselines.values()) {
15544
17272
  headerWriter.writeSpawnBaseline(entity, serverData.protocol);
@@ -15573,7 +17301,7 @@ var DemoClipper = class {
15573
17301
  const passthroughHandler = {
15574
17302
  onServerData: () => {
15575
17303
  },
15576
- onConfigString: (idx, str) => blockWriter.writeConfigString(idx, str, serverData.protocol),
17304
+ onConfigString: (idx, str3) => blockWriter.writeConfigString(idx, str3, serverData.protocol),
15577
17305
  onSpawnBaseline: (ent) => blockWriter.writeSpawnBaseline(ent, serverData.protocol),
15578
17306
  onCenterPrint: (msg) => blockWriter.writeCenterPrint(msg, serverData.protocol),
15579
17307
  onStuffText: (txt) => blockWriter.writeStuffText(txt, serverData.protocol),
@@ -15753,7 +17481,7 @@ function drawLine(buffer, width, height, x0, y0, x1, y1, r, g, b, a) {
15753
17481
  }
15754
17482
  }
15755
17483
  }
15756
- function projectPoint(v, width, height, center, scale) {
17484
+ function projectPoint(v, width, height, center, scale3) {
15757
17485
  const cosY = 0.707;
15758
17486
  const sinY = 0.707;
15759
17487
  const x1 = (v.x - center.x) * cosY - (v.y - center.y) * sinY;
@@ -15763,8 +17491,8 @@ function projectPoint(v, width, height, center, scale) {
15763
17491
  const sinX = 0.5;
15764
17492
  const y2 = y1 * cosX - z1 * sinX;
15765
17493
  const z2 = y1 * sinX + z1 * cosX;
15766
- const screenX = width / 2 + x1 * scale;
15767
- const screenY = height / 2 - z2 * scale;
17494
+ const screenX = width / 2 + x1 * scale3;
17495
+ const screenY = height / 2 - z2 * scale3;
15768
17496
  return { x: screenX, y: screenY };
15769
17497
  }
15770
17498
  var AssetPreviewGenerator = class {
@@ -15835,35 +17563,35 @@ var AssetPreviewGenerator = class {
15835
17563
  return null;
15836
17564
  }
15837
17565
  if (vertices.length === 0) return null;
15838
- const min = { x: Infinity, y: Infinity, z: Infinity };
15839
- const max = { x: -Infinity, y: -Infinity, z: -Infinity };
17566
+ const min2 = { x: Infinity, y: Infinity, z: Infinity };
17567
+ const max2 = { x: -Infinity, y: -Infinity, z: -Infinity };
15840
17568
  for (const v of vertices) {
15841
- min.x = Math.min(min.x, v.x);
15842
- min.y = Math.min(min.y, v.y);
15843
- min.z = Math.min(min.z, v.z);
15844
- max.x = Math.max(max.x, v.x);
15845
- max.y = Math.max(max.y, v.y);
15846
- max.z = Math.max(max.z, v.z);
17569
+ min2.x = Math.min(min2.x, v.x);
17570
+ min2.y = Math.min(min2.y, v.y);
17571
+ min2.z = Math.min(min2.z, v.z);
17572
+ max2.x = Math.max(max2.x, v.x);
17573
+ max2.y = Math.max(max2.y, v.y);
17574
+ max2.z = Math.max(max2.z, v.z);
15847
17575
  }
15848
17576
  const center = {
15849
- x: (min.x + max.x) / 2,
15850
- y: (min.y + max.y) / 2,
15851
- z: (min.z + max.z) / 2
17577
+ x: (min2.x + max2.x) / 2,
17578
+ y: (min2.y + max2.y) / 2,
17579
+ z: (min2.z + max2.z) / 2
15852
17580
  };
15853
- const sizeX = max.x - min.x;
15854
- const sizeY = max.y - min.y;
15855
- const sizeZ = max.z - min.z;
17581
+ const sizeX = max2.x - min2.x;
17582
+ const sizeY = max2.y - min2.y;
17583
+ const sizeZ = max2.z - min2.z;
15856
17584
  const maxDim = Math.max(sizeX, sizeY, sizeZ);
15857
17585
  const safeMaxDim = Math.max(maxDim, 1e-3);
15858
- const scale = size * 0.8 / safeMaxDim;
17586
+ const scale3 = size * 0.8 / safeMaxDim;
15859
17587
  const buffer = new Uint8ClampedArray(size * size * 4);
15860
17588
  for (let i = 0; i < indices.length; i += 2) {
15861
17589
  const idx0 = indices[i];
15862
17590
  const idx1 = indices[i + 1];
15863
17591
  const v0 = vertices[idx0];
15864
17592
  const v1 = vertices[idx1];
15865
- const p0 = projectPoint(v0, size, size, center, scale);
15866
- const p1 = projectPoint(v1, size, size, center, scale);
17593
+ const p0 = projectPoint(v0, size, size, center, scale3);
17594
+ const p1 = projectPoint(v1, size, size, center, scale3);
15867
17595
  drawLine(buffer, size, size, p0.x, p0.y, p1.x, p1.y, 0, 255, 0, 255);
15868
17596
  }
15869
17597
  return new ImageData(buffer, size, size);
@@ -15958,19 +17686,19 @@ var MapAnalyzer = class {
15958
17686
  function parseEntLump(text) {
15959
17687
  const entities = [];
15960
17688
  let cursor = 0;
15961
- const length = text.length;
17689
+ const length2 = text.length;
15962
17690
  function skipWhitespace() {
15963
- while (cursor < length && /\s/.test(text[cursor])) {
17691
+ while (cursor < length2 && /\s/.test(text[cursor])) {
15964
17692
  cursor++;
15965
17693
  }
15966
17694
  }
15967
17695
  function readToken() {
15968
17696
  skipWhitespace();
15969
- if (cursor >= length) return null;
17697
+ if (cursor >= length2) return null;
15970
17698
  if (text[cursor] === '"') {
15971
17699
  cursor++;
15972
17700
  const start = cursor;
15973
- while (cursor < length && text[cursor] !== '"') {
17701
+ while (cursor < length2 && text[cursor] !== '"') {
15974
17702
  if (text[cursor] === "\n") {
15975
17703
  }
15976
17704
  cursor++;
@@ -15982,19 +17710,19 @@ function parseEntLump(text) {
15982
17710
  return text[cursor++];
15983
17711
  } else {
15984
17712
  if (text.startsWith("//", cursor)) {
15985
- while (cursor < length && text[cursor] !== "\n") {
17713
+ while (cursor < length2 && text[cursor] !== "\n") {
15986
17714
  cursor++;
15987
17715
  }
15988
17716
  return readToken();
15989
17717
  }
15990
17718
  const start = cursor;
15991
- while (cursor < length && !/\s/.test(text[cursor]) && text[cursor] !== "}" && text[cursor] !== "{") {
17719
+ while (cursor < length2 && !/\s/.test(text[cursor]) && text[cursor] !== "}" && text[cursor] !== "{") {
15992
17720
  cursor++;
15993
17721
  }
15994
17722
  return text.substring(start, cursor);
15995
17723
  }
15996
17724
  }
15997
- while (cursor < length) {
17725
+ while (cursor < length2) {
15998
17726
  const token = readToken();
15999
17727
  if (token === null) break;
16000
17728
  if (token === "{") {