libpag 4.5.46 → 4.5.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/libpag.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // Tencent is pleased to support the open source community by making libpag available.
4
4
  //
5
- // Copyright (C) 2025 Tencent. All rights reserved.
5
+ // Copyright (C) 2026 Tencent. All rights reserved.
6
6
  //
7
7
  // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
8
8
  // except in compliance with the License. You may obtain a copy of the License at
@@ -884,6 +884,8 @@ let VideoReaderManager = class {
884
884
  }
885
885
  async prepareTargetFrame() {
886
886
  for (const id of this.videoIDs) {
887
+ if (this.isDestroyed)
888
+ return;
887
889
  const targetFrame = this.wasmIns._getTargetFrameByID(id);
888
890
  if (targetFrame < 0) {
889
891
  continue;
@@ -957,7 +959,7 @@ let PAGPlayer = class {
957
959
  for (const videoReader of this.videoReaders) {
958
960
  const error = await videoReader.getError();
959
961
  if (error !== null) {
960
- throw error;
962
+ console.warn("[PAGPlayer] VideoReader error:", error);
961
963
  }
962
964
  }
963
965
  return res;
@@ -1335,12 +1337,12 @@ class RenderCanvas {
1335
1337
  this._glContext = null;
1336
1338
  this.retainCount = 0;
1337
1339
  this._canvas = canvas;
1338
- const gl = canvas.getContext("webgl", {
1340
+ const gl = canvas.getContext("webgl2", {
1339
1341
  ...WEBGL_CONTEXT_ATTRIBUTES,
1340
1342
  ...contextAttributes
1341
1343
  });
1342
1344
  if (!gl)
1343
- throw new Error("Canvas context is not WebGL!");
1345
+ throw new Error("Canvas context is not WebGL2!");
1344
1346
  this._glContext = BackendContext.from(gl);
1345
1347
  }
1346
1348
  static from(canvas, contextAttributes) {
@@ -1761,7 +1763,7 @@ let PAGView = class {
1761
1763
  this.debugData = { ...this.debugData, ...data };
1762
1764
  }
1763
1765
  async flushLoop(force = false) {
1764
- if (!this.isPlaying) {
1766
+ if (!this.isPlaying || this.isDestroyed) {
1765
1767
  return;
1766
1768
  }
1767
1769
  this.setTimer();
@@ -2037,6 +2039,7 @@ let VideoReader = class {
2037
2039
  this.bitmapCtx = null;
2038
2040
  this.currentFrame = -1;
2039
2041
  this.targetFrame = -1;
2042
+ this.visibilityHandle = null;
2040
2043
  if (isInstanceOf$1(source, globalThis.HTMLVideoElement)) {
2041
2044
  this.videoEl = source;
2042
2045
  this.canplay = true;
@@ -2071,10 +2074,10 @@ let VideoReader = class {
2071
2074
  return new VideoReader(source, width, height, frameRate, staticTimeRanges);
2072
2075
  }
2073
2076
  async prepare(targetFrame, playbackRate) {
2074
- if (targetFrame === this.currentFrame) {
2077
+ if (this.isDestroyed || targetFrame === this.currentFrame) {
2075
2078
  return;
2076
2079
  }
2077
- const promise = new Promise(async (resolve, reject) => {
2080
+ const promise = new Promise(async (resolve) => {
2078
2081
  this.setError(null);
2079
2082
  this.isSought = false;
2080
2083
  const { currentTime } = this.videoEl;
@@ -2089,12 +2092,14 @@ let VideoReader = class {
2089
2092
  } catch (e) {
2090
2093
  this.setError(e);
2091
2094
  this.currentFrame = targetFrame;
2092
- reject(e);
2095
+ resolve();
2093
2096
  return;
2094
2097
  }
2095
2098
  await new Promise((resolveInner) => {
2096
2099
  requestAnimationFrame(() => {
2097
- this.pause();
2100
+ if (!this.isDestroyed) {
2101
+ this.pause();
2102
+ }
2098
2103
  resolveInner();
2099
2104
  });
2100
2105
  });
@@ -2113,6 +2118,10 @@ let VideoReader = class {
2113
2118
  return;
2114
2119
  }
2115
2120
  }
2121
+ if (this.isDestroyed || !this.videoEl) {
2122
+ resolve();
2123
+ return;
2124
+ }
2116
2125
  const targetPlaybackRate = Math.min(Math.max(playbackRate, VIDEO_PLAYBACK_RATE_MIN), VIDEO_PLAYBACK_RATE_MAX);
2117
2126
  if (!this.disablePlaybackRate && this.videoEl.playbackRate !== targetPlaybackRate) {
2118
2127
  this.videoEl.playbackRate = targetPlaybackRate;
@@ -2123,7 +2132,7 @@ let VideoReader = class {
2123
2132
  } catch (e) {
2124
2133
  this.setError(e);
2125
2134
  this.currentFrame = targetFrame;
2126
- reject(e);
2135
+ resolve();
2127
2136
  return;
2128
2137
  }
2129
2138
  }
@@ -2145,14 +2154,21 @@ let VideoReader = class {
2145
2154
  await getWechatNetwork();
2146
2155
  }
2147
2156
  if (document.visibilityState !== "visible") {
2148
- const visibilityHandle = () => {
2157
+ this.clearVisibilityListener();
2158
+ this.visibilityHandle = () => {
2159
+ if (this.isDestroyed) {
2160
+ this.clearVisibilityListener();
2161
+ return;
2162
+ }
2149
2163
  if (document.visibilityState === "visible") {
2150
2164
  if (this.videoEl)
2151
- this.videoEl.play();
2152
- window.removeEventListener("visibilitychange", visibilityHandle);
2165
+ this.videoEl.play().catch((e) => {
2166
+ this.setError(e);
2167
+ });
2168
+ this.clearVisibilityListener();
2153
2169
  }
2154
2170
  };
2155
- window.addEventListener("visibilitychange", visibilityHandle);
2171
+ window.addEventListener("visibilitychange", this.visibilityHandle);
2156
2172
  throw new Error("The play() request was interrupted because the document was hidden!");
2157
2173
  }
2158
2174
  await this.videoEl?.play();
@@ -2173,16 +2189,19 @@ let VideoReader = class {
2173
2189
  return this.error;
2174
2190
  }
2175
2191
  onDestroy() {
2192
+ this.isDestroyed = true;
2176
2193
  if (this.player) {
2177
2194
  this.player.unlinkVideoReader(this);
2178
2195
  this.player = null;
2179
2196
  }
2197
+ this.clearVisibilityListener();
2180
2198
  removeAllListeners(this.videoEl, "playing");
2181
2199
  removeAllListeners(this.videoEl, "timeupdate");
2200
+ removeAllListeners(this.videoEl, "seeked");
2201
+ removeAllListeners(this.videoEl, "canplay");
2182
2202
  this.videoEl = null;
2183
2203
  this.bitmapCanvas = null;
2184
2204
  this.bitmapCtx = null;
2185
- this.isDestroyed = true;
2186
2205
  }
2187
2206
  seek(targetTime, play = true) {
2188
2207
  return new Promise((resolve, reject) => {
@@ -2191,29 +2210,42 @@ let VideoReader = class {
2191
2210
  return;
2192
2211
  }
2193
2212
  const onSeeked = () => {
2213
+ if (!this.videoEl || this.isDestroyed) {
2214
+ clearTimeout(seekTimeout);
2215
+ resolve();
2216
+ return;
2217
+ }
2194
2218
  removeListener(this.videoEl, "seeked", onSeeked);
2195
2219
  clearTimeout(seekTimeout);
2196
2220
  if (play) {
2197
2221
  if (this.videoEl.ended) {
2198
2222
  this.videoEl.currentTime = this.videoEl.currentTime;
2199
2223
  }
2200
- this.videoEl?.play().catch((e) => {
2224
+ this.videoEl.play().catch((e) => {
2201
2225
  this.setError(e);
2202
2226
  });
2203
2227
  } else if (!play && !this.videoEl.paused) {
2204
- this.videoEl?.pause();
2228
+ this.videoEl.pause();
2205
2229
  }
2206
2230
  resolve();
2207
2231
  };
2208
2232
  const onCanPlay = () => {
2233
+ if (!this.videoEl || this.isDestroyed) {
2234
+ clearTimeout(seekTimeout);
2235
+ resolve();
2236
+ return;
2237
+ }
2209
2238
  removeListener(this.videoEl, "canplay", onCanPlay);
2210
2239
  this.videoEl.currentTime = targetTime;
2211
2240
  addListener(this.videoEl, "seeked", onSeeked);
2212
2241
  };
2213
2242
  const seekTimeout = setTimeout(() => {
2214
- removeListener(this.videoEl, "canplay", onCanPlay);
2215
- removeListener(this.videoEl, "seeked", onSeeked);
2216
- reject(new Error("Seek operation timed out."));
2243
+ if (this.videoEl) {
2244
+ removeListener(this.videoEl, "canplay", onCanPlay);
2245
+ removeListener(this.videoEl, "seeked", onSeeked);
2246
+ }
2247
+ this.setError("Seek operation timed out.");
2248
+ resolve();
2217
2249
  }, 1e3 / this.frameRate * VIDEO_DECODE_SEEK_TIMEOUT_FRAME);
2218
2250
  if (this.videoEl.readyState < HTMLMediaElement.HAVE_FUTURE_DATA) {
2219
2251
  addListener(this.videoEl, "canplay", onCanPlay);
@@ -2226,6 +2258,12 @@ let VideoReader = class {
2226
2258
  setError(e) {
2227
2259
  this.error = e;
2228
2260
  }
2261
+ clearVisibilityListener() {
2262
+ if (this.visibilityHandle) {
2263
+ window.removeEventListener("visibilitychange", this.visibilityHandle);
2264
+ this.visibilityHandle = null;
2265
+ }
2266
+ }
2229
2267
  linkPlayer(player) {
2230
2268
  this.player = player;
2231
2269
  if (player) {
@@ -2269,9 +2307,9 @@ class GlobalCanvas {
2269
2307
  }
2270
2308
  this._canvas.width = this.width;
2271
2309
  this._canvas.height = this.height;
2272
- const gl = this._canvas.getContext("webgl", WEBGL_CONTEXT_ATTRIBUTES);
2310
+ const gl = this._canvas.getContext("webgl2", WEBGL_CONTEXT_ATTRIBUTES);
2273
2311
  if (!gl)
2274
- throw new Error("Canvas context is not WebGL!");
2312
+ throw new Error("Canvas context is not WebGL2!");
2275
2313
  this._glContext = BackendContext.from(gl);
2276
2314
  }
2277
2315
  this.retainCount += 1;
@@ -2469,6 +2507,23 @@ class BitmapImage {
2469
2507
  }
2470
2508
  }
2471
2509
 
2510
+ var MatrixIndex = /* @__PURE__ */ ((MatrixIndex2) => {
2511
+ MatrixIndex2[MatrixIndex2["a"] = 0] = "a";
2512
+ MatrixIndex2[MatrixIndex2["c"] = 1] = "c";
2513
+ MatrixIndex2[MatrixIndex2["tx"] = 2] = "tx";
2514
+ MatrixIndex2[MatrixIndex2["b"] = 3] = "b";
2515
+ MatrixIndex2[MatrixIndex2["d"] = 4] = "d";
2516
+ MatrixIndex2[MatrixIndex2["ty"] = 5] = "ty";
2517
+ return MatrixIndex2;
2518
+ })(MatrixIndex || {});
2519
+ var WindowColorSpace = /* @__PURE__ */ ((WindowColorSpace2) => {
2520
+ WindowColorSpace2[WindowColorSpace2["None"] = 0] = "None";
2521
+ WindowColorSpace2[WindowColorSpace2["SRGB"] = 1] = "SRGB";
2522
+ WindowColorSpace2[WindowColorSpace2["DisplayP3"] = 2] = "DisplayP3";
2523
+ WindowColorSpace2[WindowColorSpace2["Others"] = 3] = "Others";
2524
+ return WindowColorSpace2;
2525
+ })(WindowColorSpace || {});
2526
+
2472
2527
  const createImage = (source) => {
2473
2528
  return new Promise((resolve) => {
2474
2529
  const image = new Image();
@@ -2520,20 +2575,60 @@ const getSourceSize = (source) => {
2520
2575
  }
2521
2576
  return { width: source.width, height: source.height };
2522
2577
  };
2523
- const uploadToTexture = (GL, source, textureID, alphaOnly) => {
2578
+ let syncCanvas = null;
2579
+ let syncCtx = null;
2580
+ const syncVideoFrame = (video) => {
2581
+ if (!syncCanvas) {
2582
+ syncCanvas = document.createElement("canvas");
2583
+ syncCanvas.width = 1;
2584
+ syncCanvas.height = 1;
2585
+ syncCtx = syncCanvas.getContext("2d");
2586
+ if (!syncCtx) {
2587
+ syncCanvas = null;
2588
+ return;
2589
+ }
2590
+ }
2591
+ if (!syncCtx) {
2592
+ syncCanvas = null;
2593
+ return;
2594
+ }
2595
+ syncCtx.drawImage(video, 0, 0, 1, 1);
2596
+ };
2597
+ const uploadToTexture = (GL, source, textureID, offsetX, offsetY, alphaOnly) => {
2524
2598
  let renderSource = source instanceof BitmapImage ? source.bitmap : source;
2525
2599
  if (!renderSource)
2526
2600
  return;
2601
+ if (isInstanceOf(renderSource, globalThis.HTMLVideoElement)) {
2602
+ syncVideoFrame(renderSource);
2603
+ }
2527
2604
  const gl = GL.currentContext?.GLctx;
2528
2605
  gl.bindTexture(gl.TEXTURE_2D, GL.textures[textureID]);
2606
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
2529
2607
  if (alphaOnly) {
2530
2608
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
2531
- gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.ALPHA, gl.UNSIGNED_BYTE, renderSource);
2609
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, offsetX, offsetY, gl.RED, gl.UNSIGNED_BYTE, renderSource);
2532
2610
  } else {
2533
2611
  gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
2534
- gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
2535
- gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, renderSource);
2536
- gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
2612
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, offsetX, offsetY, gl.RGBA, gl.UNSIGNED_BYTE, renderSource);
2613
+ }
2614
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
2615
+ };
2616
+ const setColorSpace = (GL, colorSpace) => {
2617
+ if (colorSpace === WindowColorSpace.Others) {
2618
+ return false;
2619
+ }
2620
+ const gl = GL.currentContext?.GLctx;
2621
+ if ("drawingBufferColorSpace" in gl) {
2622
+ if (colorSpace === WindowColorSpace.None || colorSpace === WindowColorSpace.SRGB) {
2623
+ gl.drawingBufferColorSpace = "srgb";
2624
+ } else {
2625
+ gl.drawingBufferColorSpace = "display-p3";
2626
+ }
2627
+ return true;
2628
+ } else if (colorSpace === WindowColorSpace.DisplayP3) {
2629
+ return false;
2630
+ } else {
2631
+ return true;
2537
2632
  }
2538
2633
  };
2539
2634
  const isAndroidMiniprogram = () => {
@@ -2561,6 +2656,7 @@ var tgfx = /*#__PURE__*/Object.freeze({
2561
2656
  hasWebpSupport: hasWebpSupport,
2562
2657
  getSourceSize: getSourceSize,
2563
2658
  uploadToTexture: uploadToTexture,
2659
+ setColorSpace: setColorSpace,
2564
2660
  isAndroidMiniprogram: isAndroidMiniprogram,
2565
2661
  releaseNativeImage: releaseNativeImage,
2566
2662
  getBytesFromPath: getBytesFromPath,
@@ -2584,16 +2680,6 @@ function destroyVerify(constructor) {
2584
2680
  functions.forEach((name) => proxyFn(constructor.prototype, name));
2585
2681
  }
2586
2682
 
2587
- var MatrixIndex = /* @__PURE__ */ ((MatrixIndex2) => {
2588
- MatrixIndex2[MatrixIndex2["a"] = 0] = "a";
2589
- MatrixIndex2[MatrixIndex2["c"] = 1] = "c";
2590
- MatrixIndex2[MatrixIndex2["tx"] = 2] = "tx";
2591
- MatrixIndex2[MatrixIndex2["b"] = 3] = "b";
2592
- MatrixIndex2[MatrixIndex2["d"] = 4] = "d";
2593
- MatrixIndex2[MatrixIndex2["ty"] = 5] = "ty";
2594
- return MatrixIndex2;
2595
- })(MatrixIndex || {});
2596
-
2597
2683
  var __defProp$1 = Object.defineProperty;
2598
2684
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
2599
2685
  var __decorateClass = (decorators, target, key, kind) => {
@@ -2855,6 +2941,31 @@ const _ScalerContext = class {
2855
2941
  }
2856
2942
  return new Uint8Array(data);
2857
2943
  }
2944
+ getGlyphCanvas(text, bounds, fauxBold, stroke, padding = 0) {
2945
+ const glyphWidth = bounds.right - bounds.left;
2946
+ const glyphHeight = bounds.bottom - bounds.top;
2947
+ if (glyphWidth <= 0 || glyphHeight <= 0) {
2948
+ return null;
2949
+ }
2950
+ const width = glyphWidth + 2 * padding;
2951
+ const height = glyphHeight + 2 * padding;
2952
+ const canvas = getCanvas2D(width, height);
2953
+ const context = canvas.getContext("2d");
2954
+ context.clearRect(0, 0, width, height);
2955
+ context.font = this.fontString(fauxBold, false);
2956
+ if (stroke) {
2957
+ context.strokeStyle = "#FFFFFF";
2958
+ context.lineJoin = _ScalerContext.getLineJoin(stroke.join);
2959
+ context.miterLimit = stroke.miterLimit;
2960
+ context.lineCap = _ScalerContext.getLineCap(stroke.cap);
2961
+ context.lineWidth = stroke.width;
2962
+ context.strokeText(text, -bounds.left + padding, -bounds.top + padding);
2963
+ } else {
2964
+ context.fillStyle = "#FFFFFF";
2965
+ context.fillText(text, -bounds.left + padding, -bounds.top + padding);
2966
+ }
2967
+ return canvas;
2968
+ }
2858
2969
  loadCanvas() {
2859
2970
  if (!_ScalerContext.canvas) {
2860
2971
  _ScalerContext.setCanvas(getCanvas2D(10, 10));
@@ -2927,7 +3038,7 @@ const TGFXBind = (module) => {
2927
3038
  setTGFXModule(module);
2928
3039
  module.module = module;
2929
3040
  module.ScalerContext = ScalerContext;
2930
- module.WebMask = PathRasterizer;
3041
+ module.PathRasterizer = PathRasterizer;
2931
3042
  module.Matrix = Matrix;
2932
3043
  module.tgfx = { ...tgfx };
2933
3044
  };
@@ -3037,7 +3148,7 @@ async function PAGInit$1(moduleArg = {}) {
3037
3148
  runtimeInitialized = true;
3038
3149
  if (!Module["noFSInit"] && !FS.initialized)
3039
3150
  FS.init();
3040
- wasmExports["Ac"]();
3151
+ wasmExports["Tb"]();
3041
3152
  FS.ignorePermissions = false;
3042
3153
  }
3043
3154
  function postRun() {
@@ -3115,9 +3226,9 @@ async function PAGInit$1(moduleArg = {}) {
3115
3226
  async function createWasm() {
3116
3227
  function receiveInstance(instance, module) {
3117
3228
  wasmExports = instance.exports;
3118
- wasmMemory = wasmExports["zc"];
3229
+ wasmMemory = wasmExports["Sb"];
3119
3230
  updateMemoryViews();
3120
- wasmTable = wasmExports["Cc"];
3231
+ wasmTable = wasmExports["Vb"];
3121
3232
  assignWasmExports(wasmExports);
3122
3233
  return wasmExports;
3123
3234
  }
@@ -3207,15 +3318,15 @@ async function PAGInit$1(moduleArg = {}) {
3207
3318
  return splitPathRe.exec(filename).slice(1);
3208
3319
  }, normalizeArray: (parts, allowAboveRoot) => {
3209
3320
  var up = 0;
3210
- for (var i2 = parts.length - 1; i2 >= 0; i2--) {
3211
- var last = parts[i2];
3321
+ for (var i = parts.length - 1; i >= 0; i--) {
3322
+ var last = parts[i];
3212
3323
  if (last === ".") {
3213
- parts.splice(i2, 1);
3324
+ parts.splice(i, 1);
3214
3325
  } else if (last === "..") {
3215
- parts.splice(i2, 1);
3326
+ parts.splice(i, 1);
3216
3327
  up++;
3217
3328
  } else if (up) {
3218
- parts.splice(i2, 1);
3329
+ parts.splice(i, 1);
3219
3330
  up--;
3220
3331
  }
3221
3332
  }
@@ -3251,8 +3362,8 @@ async function PAGInit$1(moduleArg = {}) {
3251
3362
  };
3252
3363
  var PATH_FS = { resolve: (...args) => {
3253
3364
  var resolvedPath = "", resolvedAbsolute = false;
3254
- for (var i2 = args.length - 1; i2 >= -1 && !resolvedAbsolute; i2--) {
3255
- var path = i2 >= 0 ? args[i2] : FS.cwd();
3365
+ for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {
3366
+ var path = i >= 0 ? args[i] : FS.cwd();
3256
3367
  if (typeof path != "string") {
3257
3368
  throw new TypeError("Arguments to path.resolve must be strings");
3258
3369
  } else if (!path) {
@@ -3285,14 +3396,14 @@ async function PAGInit$1(moduleArg = {}) {
3285
3396
  var toParts = trim(to.split("/"));
3286
3397
  var length = Math.min(fromParts.length, toParts.length);
3287
3398
  var samePartsLength = length;
3288
- for (var i2 = 0; i2 < length; i2++) {
3289
- if (fromParts[i2] !== toParts[i2]) {
3290
- samePartsLength = i2;
3399
+ for (var i = 0; i < length; i++) {
3400
+ if (fromParts[i] !== toParts[i]) {
3401
+ samePartsLength = i;
3291
3402
  break;
3292
3403
  }
3293
3404
  }
3294
3405
  var outputParts = [];
3295
- for (var i2 = samePartsLength; i2 < fromParts.length; i2++) {
3406
+ for (var i = samePartsLength; i < fromParts.length; i++) {
3296
3407
  outputParts.push("..");
3297
3408
  }
3298
3409
  outputParts = outputParts.concat(toParts.slice(samePartsLength));
@@ -3314,15 +3425,15 @@ async function PAGInit$1(moduleArg = {}) {
3314
3425
  var FS_stdin_getChar_buffer = [];
3315
3426
  var lengthBytesUTF8 = (str) => {
3316
3427
  var len = 0;
3317
- for (var i2 = 0; i2 < str.length; ++i2) {
3318
- var c = str.charCodeAt(i2);
3428
+ for (var i = 0; i < str.length; ++i) {
3429
+ var c = str.charCodeAt(i);
3319
3430
  if (c <= 127) {
3320
3431
  len++;
3321
3432
  } else if (c <= 2047) {
3322
3433
  len += 2;
3323
3434
  } else if (c >= 55296 && c <= 57343) {
3324
3435
  len += 4;
3325
- ++i2;
3436
+ ++i;
3326
3437
  } else {
3327
3438
  len += 3;
3328
3439
  }
@@ -3334,8 +3445,8 @@ async function PAGInit$1(moduleArg = {}) {
3334
3445
  return 0;
3335
3446
  var startIdx = outIdx;
3336
3447
  var endIdx = outIdx + maxBytesToWrite - 1;
3337
- for (var i2 = 0; i2 < str.length; ++i2) {
3338
- var u = str.codePointAt(i2);
3448
+ for (var i = 0; i < str.length; ++i) {
3449
+ var u = str.codePointAt(i);
3339
3450
  if (u <= 127) {
3340
3451
  if (outIdx >= endIdx)
3341
3452
  break;
@@ -3358,7 +3469,7 @@ async function PAGInit$1(moduleArg = {}) {
3358
3469
  heap[outIdx++] = 128 | u >> 12 & 63;
3359
3470
  heap[outIdx++] = 128 | u >> 6 & 63;
3360
3471
  heap[outIdx++] = 128 | u & 63;
3361
- i2++;
3472
+ i++;
3362
3473
  }
3363
3474
  }
3364
3475
  heap[outIdx] = 0;
@@ -3409,7 +3520,7 @@ async function PAGInit$1(moduleArg = {}) {
3409
3520
  throw new FS.ErrnoError(60);
3410
3521
  }
3411
3522
  var bytesRead = 0;
3412
- for (var i2 = 0; i2 < length; i2++) {
3523
+ for (var i = 0; i < length; i++) {
3413
3524
  var result;
3414
3525
  try {
3415
3526
  result = stream.tty.ops.get_char(stream.tty);
@@ -3422,7 +3533,7 @@ async function PAGInit$1(moduleArg = {}) {
3422
3533
  if (result === null || result === void 0)
3423
3534
  break;
3424
3535
  bytesRead++;
3425
- buffer[offset + i2] = result;
3536
+ buffer[offset + i] = result;
3426
3537
  }
3427
3538
  if (bytesRead) {
3428
3539
  stream.node.atime = Date.now();
@@ -3433,8 +3544,8 @@ async function PAGInit$1(moduleArg = {}) {
3433
3544
  throw new FS.ErrnoError(60);
3434
3545
  }
3435
3546
  try {
3436
- for (var i2 = 0; i2 < length; i2++) {
3437
- stream.tty.ops.put_char(stream.tty, buffer[offset + i2]);
3547
+ for (var i = 0; i < length; i++) {
3548
+ stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
3438
3549
  }
3439
3550
  } catch (e) {
3440
3551
  throw new FS.ErrnoError(29);
@@ -3442,7 +3553,7 @@ async function PAGInit$1(moduleArg = {}) {
3442
3553
  if (length) {
3443
3554
  stream.node.mtime = stream.node.ctime = Date.now();
3444
3555
  }
3445
- return i2;
3556
+ return i;
3446
3557
  } }, default_tty_ops: { get_char(tty) {
3447
3558
  return FS_stdin_getChar();
3448
3559
  }, put_char(tty, val) {
@@ -3592,7 +3703,7 @@ async function PAGInit$1(moduleArg = {}) {
3592
3703
  }
3593
3704
  if (new_node) {
3594
3705
  if (FS.isDir(old_node.mode)) {
3595
- for (var i2 in new_node.contents) {
3706
+ for (var i in new_node.contents) {
3596
3707
  throw new FS.ErrnoError(55);
3597
3708
  }
3598
3709
  }
@@ -3607,7 +3718,7 @@ async function PAGInit$1(moduleArg = {}) {
3607
3718
  parent.ctime = parent.mtime = Date.now();
3608
3719
  }, rmdir(parent, name) {
3609
3720
  var node = FS.lookupNode(parent, name);
3610
- for (var i2 in node.contents) {
3721
+ for (var i in node.contents) {
3611
3722
  throw new FS.ErrnoError(55);
3612
3723
  }
3613
3724
  delete parent.contents[name];
@@ -3631,8 +3742,8 @@ async function PAGInit$1(moduleArg = {}) {
3631
3742
  if (size > 8 && contents.subarray) {
3632
3743
  buffer.set(contents.subarray(position, position + size), offset);
3633
3744
  } else {
3634
- for (var i2 = 0; i2 < size; i2++)
3635
- buffer[offset + i2] = contents[position + i2];
3745
+ for (var i = 0; i < size; i++)
3746
+ buffer[offset + i] = contents[position + i];
3636
3747
  }
3637
3748
  return size;
3638
3749
  }, write(stream, buffer, offset, length, position, canOwn) {
@@ -3661,8 +3772,8 @@ async function PAGInit$1(moduleArg = {}) {
3661
3772
  if (node.contents.subarray && buffer.subarray) {
3662
3773
  node.contents.set(buffer.subarray(offset, offset + length), position);
3663
3774
  } else {
3664
- for (var i2 = 0; i2 < length; i2++) {
3665
- node.contents[position + i2] = buffer[offset + i2];
3775
+ for (var i = 0; i < length; i++) {
3776
+ node.contents[position + i] = buffer[offset + i];
3666
3777
  }
3667
3778
  }
3668
3779
  node.usedBytes = Math.max(node.usedBytes, position + length);
@@ -3866,18 +3977,18 @@ async function PAGInit$1(moduleArg = {}) {
3866
3977
  var parts = path.split("/").filter((p) => !!p);
3867
3978
  var current = FS.root;
3868
3979
  var current_path = "/";
3869
- for (var i2 = 0; i2 < parts.length; i2++) {
3870
- var islast = i2 === parts.length - 1;
3980
+ for (var i = 0; i < parts.length; i++) {
3981
+ var islast = i === parts.length - 1;
3871
3982
  if (islast && opts.parent) {
3872
3983
  break;
3873
3984
  }
3874
- if (parts[i2] === ".") {
3985
+ if (parts[i] === ".") {
3875
3986
  continue;
3876
3987
  }
3877
- if (parts[i2] === "..") {
3988
+ if (parts[i] === "..") {
3878
3989
  current_path = PATH.dirname(current_path);
3879
3990
  if (FS.isRoot(current)) {
3880
- path = current_path + "/" + parts.slice(i2 + 1).join("/");
3991
+ path = current_path + "/" + parts.slice(i + 1).join("/");
3881
3992
  nlinks--;
3882
3993
  continue linkloop;
3883
3994
  } else {
@@ -3885,9 +3996,9 @@ async function PAGInit$1(moduleArg = {}) {
3885
3996
  }
3886
3997
  continue;
3887
3998
  }
3888
- current_path = PATH.join2(current_path, parts[i2]);
3999
+ current_path = PATH.join2(current_path, parts[i]);
3889
4000
  try {
3890
- current = FS.lookupNode(current, parts[i2]);
4001
+ current = FS.lookupNode(current, parts[i]);
3891
4002
  } catch (e) {
3892
4003
  if (e?.errno === 44 && islast && opts.noent_okay) {
3893
4004
  return { path: current_path };
@@ -3905,7 +4016,7 @@ async function PAGInit$1(moduleArg = {}) {
3905
4016
  if (!PATH.isAbs(link)) {
3906
4017
  link = PATH.dirname(current_path) + "/" + link;
3907
4018
  }
3908
- path = link + "/" + parts.slice(i2 + 1).join("/");
4019
+ path = link + "/" + parts.slice(i + 1).join("/");
3909
4020
  continue linkloop;
3910
4021
  }
3911
4022
  }
@@ -3926,8 +4037,8 @@ async function PAGInit$1(moduleArg = {}) {
3926
4037
  }
3927
4038
  }, hashName(parentid, name) {
3928
4039
  var hash = 0;
3929
- for (var i2 = 0; i2 < name.length; i2++) {
3930
- hash = (hash << 5) - hash + name.charCodeAt(i2) | 0;
4040
+ for (var i = 0; i < name.length; i++) {
4041
+ hash = (hash << 5) - hash + name.charCodeAt(i) | 0;
3931
4042
  }
3932
4043
  return (parentid + hash >>> 0) % FS.nameTable.length;
3933
4044
  }, hashAddNode(node) {
@@ -4830,8 +4941,8 @@ async function PAGInit$1(moduleArg = {}) {
4830
4941
  if (data) {
4831
4942
  if (typeof data == "string") {
4832
4943
  var arr = new Array(data.length);
4833
- for (var i2 = 0, len = data.length; i2 < len; ++i2)
4834
- arr[i2] = data.charCodeAt(i2);
4944
+ for (var i = 0, len = data.length; i < len; ++i)
4945
+ arr[i] = data.charCodeAt(i);
4835
4946
  data = arr;
4836
4947
  }
4837
4948
  FS.chmod(node, mode | 146);
@@ -4854,7 +4965,7 @@ async function PAGInit$1(moduleArg = {}) {
4854
4965
  }
4855
4966
  }, read(stream, buffer, offset, length, pos) {
4856
4967
  var bytesRead = 0;
4857
- for (var i2 = 0; i2 < length; i2++) {
4968
+ for (var i = 0; i < length; i++) {
4858
4969
  var result;
4859
4970
  try {
4860
4971
  result = input();
@@ -4867,16 +4978,16 @@ async function PAGInit$1(moduleArg = {}) {
4867
4978
  if (result === null || result === void 0)
4868
4979
  break;
4869
4980
  bytesRead++;
4870
- buffer[offset + i2] = result;
4981
+ buffer[offset + i] = result;
4871
4982
  }
4872
4983
  if (bytesRead) {
4873
4984
  stream.node.atime = Date.now();
4874
4985
  }
4875
4986
  return bytesRead;
4876
4987
  }, write(stream, buffer, offset, length, pos) {
4877
- for (var i2 = 0; i2 < length; i2++) {
4988
+ for (var i = 0; i < length; i++) {
4878
4989
  try {
4879
- output(buffer[offset + i2]);
4990
+ output(buffer[offset + i]);
4880
4991
  } catch (e) {
4881
4992
  throw new FS.ErrnoError(29);
4882
4993
  }
@@ -4884,7 +4995,7 @@ async function PAGInit$1(moduleArg = {}) {
4884
4995
  if (length) {
4885
4996
  stream.node.mtime = stream.node.ctime = Date.now();
4886
4997
  }
4887
- return i2;
4998
+ return i;
4888
4999
  } });
4889
5000
  return FS.mkdev(path, mode, dev);
4890
5001
  }, forceLoadFile(obj) {
@@ -5018,12 +5129,12 @@ async function PAGInit$1(moduleArg = {}) {
5018
5129
  return 0;
5019
5130
  var size = Math.min(contents.length - position, length);
5020
5131
  if (contents.slice) {
5021
- for (var i2 = 0; i2 < size; i2++) {
5022
- buffer[offset + i2] = contents[position + i2];
5132
+ for (var i = 0; i < size; i++) {
5133
+ buffer[offset + i] = contents[position + i];
5023
5134
  }
5024
5135
  } else {
5025
- for (var i2 = 0; i2 < size; i2++) {
5026
- buffer[offset + i2] = contents.get(position + i2);
5136
+ for (var i = 0; i < size; i++) {
5137
+ buffer[offset + i] = contents.get(position + i);
5027
5138
  }
5028
5139
  }
5029
5140
  return size;
@@ -5229,8 +5340,8 @@ async function PAGInit$1(moduleArg = {}) {
5229
5340
  HEAP32[argp + 4 >> 2] = termios.c_oflag || 0;
5230
5341
  HEAP32[argp + 8 >> 2] = termios.c_cflag || 0;
5231
5342
  HEAP32[argp + 12 >> 2] = termios.c_lflag || 0;
5232
- for (var i2 = 0; i2 < 32; i2++) {
5233
- HEAP8[argp + i2 + 17] = termios.c_cc[i2] || 0;
5343
+ for (var i = 0; i < 32; i++) {
5344
+ HEAP8[argp + i + 17] = termios.c_cc[i] || 0;
5234
5345
  }
5235
5346
  return 0;
5236
5347
  }
@@ -5255,8 +5366,8 @@ async function PAGInit$1(moduleArg = {}) {
5255
5366
  var c_cflag = HEAP32[argp + 8 >> 2];
5256
5367
  var c_lflag = HEAP32[argp + 12 >> 2];
5257
5368
  var c_cc = [];
5258
- for (var i2 = 0; i2 < 32; i2++) {
5259
- c_cc.push(HEAP8[argp + i2 + 17]);
5369
+ for (var i = 0; i < 32; i++) {
5370
+ c_cc.push(HEAP8[argp + i + 17]);
5260
5371
  }
5261
5372
  return stream.tty.ops.ioctl_tcsets(stream.tty, op, { c_iflag, c_oflag, c_cflag, c_lflag, c_cc });
5262
5373
  }
@@ -5404,23 +5515,23 @@ async function PAGInit$1(moduleArg = {}) {
5404
5515
  if (myTypeConverters.length !== myTypes.length) {
5405
5516
  throwInternalError("Mismatched type converter count");
5406
5517
  }
5407
- for (var i2 = 0; i2 < myTypes.length; ++i2) {
5408
- registerType(myTypes[i2], myTypeConverters[i2]);
5518
+ for (var i = 0; i < myTypes.length; ++i) {
5519
+ registerType(myTypes[i], myTypeConverters[i]);
5409
5520
  }
5410
5521
  }
5411
5522
  var typeConverters = new Array(dependentTypes.length);
5412
5523
  var unregisteredTypes = [];
5413
5524
  var registered = 0;
5414
- dependentTypes.forEach((dt, i2) => {
5525
+ dependentTypes.forEach((dt, i) => {
5415
5526
  if (registeredTypes.hasOwnProperty(dt)) {
5416
- typeConverters[i2] = registeredTypes[dt];
5527
+ typeConverters[i] = registeredTypes[dt];
5417
5528
  } else {
5418
5529
  unregisteredTypes.push(dt);
5419
5530
  if (!awaitingDependencies.hasOwnProperty(dt)) {
5420
5531
  awaitingDependencies[dt] = [];
5421
5532
  }
5422
5533
  awaitingDependencies[dt].push(() => {
5423
- typeConverters[i2] = registeredTypes[dt];
5534
+ typeConverters[i] = registeredTypes[dt];
5424
5535
  ++registered;
5425
5536
  if (registered === unregisteredTypes.length) {
5426
5537
  onComplete(typeConverters);
@@ -5441,13 +5552,13 @@ async function PAGInit$1(moduleArg = {}) {
5441
5552
  var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));
5442
5553
  whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {
5443
5554
  var fields = {};
5444
- fieldRecords.forEach((field, i2) => {
5555
+ fieldRecords.forEach((field, i) => {
5445
5556
  var fieldName = field.fieldName;
5446
- var getterReturnType = fieldTypes2[i2];
5447
- var optional = fieldTypes2[i2].optional;
5557
+ var getterReturnType = fieldTypes2[i];
5558
+ var optional = fieldTypes2[i].optional;
5448
5559
  var getter = field.getter;
5449
5560
  var getterContext = field.getterContext;
5450
- var setterArgumentType = fieldTypes2[i2 + fieldRecords.length];
5561
+ var setterArgumentType = fieldTypes2[i + fieldRecords.length];
5451
5562
  var setter = field.setter;
5452
5563
  var setterContext = field.setterContext;
5453
5564
  fields[fieldName] = { read: (ptr) => getterReturnType.fromWireType(getter(getterContext, ptr)), write: (ptr, o) => {
@@ -5458,8 +5569,8 @@ async function PAGInit$1(moduleArg = {}) {
5458
5569
  });
5459
5570
  return [{ name: reg.name, fromWireType: (ptr) => {
5460
5571
  var rv = {};
5461
- for (var i2 in fields) {
5462
- rv[i2] = fields[i2].read(ptr);
5572
+ for (var i in fields) {
5573
+ rv[i] = fields[i].read(ptr);
5463
5574
  }
5464
5575
  rawDestructor(ptr);
5465
5576
  return rv;
@@ -6077,8 +6188,8 @@ async function PAGInit$1(moduleArg = {}) {
6077
6188
  });
6078
6189
  };
6079
6190
  function usesDestructorStack(argTypes) {
6080
- for (var i2 = 1; i2 < argTypes.length; ++i2) {
6081
- if (argTypes[i2] !== null && argTypes[i2].destructorFunction === void 0) {
6191
+ for (var i = 1; i < argTypes.length; ++i) {
6192
+ if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {
6082
6193
  return true;
6083
6194
  }
6084
6195
  }
@@ -6092,9 +6203,9 @@ async function PAGInit$1(moduleArg = {}) {
6092
6203
  if (isClassMethodFunc) {
6093
6204
  argsListWired.push("thisWired");
6094
6205
  }
6095
- for (var i2 = 0; i2 < argCount; ++i2) {
6096
- argsList.push(`arg${i2}`);
6097
- argsListWired.push(`arg${i2}Wired`);
6206
+ for (var i = 0; i < argCount; ++i) {
6207
+ argsList.push(`arg${i}`);
6208
+ argsListWired.push(`arg${i}Wired`);
6098
6209
  }
6099
6210
  argsList = argsList.join(",");
6100
6211
  argsListWired = argsListWired.join(",");
@@ -6109,9 +6220,9 @@ async function PAGInit$1(moduleArg = {}) {
6109
6220
  invokerFnBody += `var thisWired = toClassParamWire(${dtorStack}, this);
6110
6221
  `;
6111
6222
  }
6112
- for (var i2 = 0; i2 < argCount; ++i2) {
6113
- var argName = `toArg${i2}Wire`;
6114
- invokerFnBody += `var arg${i2}Wired = ${argName}(${dtorStack}, arg${i2});
6223
+ for (var i = 0; i < argCount; ++i) {
6224
+ var argName = `toArg${i}Wire`;
6225
+ invokerFnBody += `var arg${i}Wired = ${argName}(${dtorStack}, arg${i});
6115
6226
  `;
6116
6227
  args1.push(argName);
6117
6228
  }
@@ -6120,9 +6231,9 @@ async function PAGInit$1(moduleArg = {}) {
6120
6231
  if (needsDestructorStack) {
6121
6232
  invokerFnBody += "runDestructors(destructors);\n";
6122
6233
  } else {
6123
- for (var i2 = isClassMethodFunc ? 1 : 2; i2 < argTypes.length; ++i2) {
6124
- var paramName = i2 === 1 ? "thisWired" : "arg" + (i2 - 2) + "Wired";
6125
- if (argTypes[i2].destructorFunction !== null) {
6234
+ for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
6235
+ var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired";
6236
+ if (argTypes[i].destructorFunction !== null) {
6126
6237
  invokerFnBody += `${paramName}_dtor(${paramName});
6127
6238
  `;
6128
6239
  args1.push(`${paramName}_dtor`);
@@ -6146,14 +6257,14 @@ async function PAGInit$1(moduleArg = {}) {
6146
6257
  var retType = argTypes[0];
6147
6258
  var instType = argTypes[1];
6148
6259
  var closureArgs = [humanName, throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, retType.fromWireType.bind(retType), instType?.toWireType.bind(instType)];
6149
- for (var i2 = 2; i2 < argCount; ++i2) {
6150
- var argType = argTypes[i2];
6260
+ for (var i = 2; i < argCount; ++i) {
6261
+ var argType = argTypes[i];
6151
6262
  closureArgs.push(argType.toWireType.bind(argType));
6152
6263
  }
6153
6264
  if (!needsDestructorStack) {
6154
- for (var i2 = isClassMethodFunc ? 1 : 2; i2 < argTypes.length; ++i2) {
6155
- if (argTypes[i2].destructorFunction !== null) {
6156
- closureArgs.push(argTypes[i2].destructorFunction);
6265
+ for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
6266
+ if (argTypes[i].destructorFunction !== null) {
6267
+ closureArgs.push(argTypes[i].destructorFunction);
6157
6268
  }
6158
6269
  }
6159
6270
  }
@@ -6163,8 +6274,8 @@ async function PAGInit$1(moduleArg = {}) {
6163
6274
  }
6164
6275
  var heap32VectorToArray = (count, firstElement) => {
6165
6276
  var array = [];
6166
- for (var i2 = 0; i2 < count; i2++) {
6167
- array.push(HEAPU32[firstElement + i2 * 4 >> 2]);
6277
+ for (var i = 0; i < count; i++) {
6278
+ array.push(HEAPU32[firstElement + i * 4 >> 2]);
6168
6279
  }
6169
6280
  return array;
6170
6281
  };
@@ -6543,8 +6654,8 @@ async function PAGInit$1(moduleArg = {}) {
6543
6654
  maxBytesToWrite -= 2;
6544
6655
  var startPtr = outPtr;
6545
6656
  var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
6546
- for (var i2 = 0; i2 < numCharsToWrite; ++i2) {
6547
- var codeUnit = str.charCodeAt(i2);
6657
+ for (var i = 0; i < numCharsToWrite; ++i) {
6658
+ var codeUnit = str.charCodeAt(i);
6548
6659
  HEAP16[outPtr >> 1] = codeUnit;
6549
6660
  outPtr += 2;
6550
6661
  }
@@ -6555,8 +6666,8 @@ async function PAGInit$1(moduleArg = {}) {
6555
6666
  var UTF32ToString = (ptr, maxBytesToRead, ignoreNul) => {
6556
6667
  var str = "";
6557
6668
  var startIdx = ptr >> 2;
6558
- for (var i2 = 0; !(i2 >= maxBytesToRead / 4); i2++) {
6559
- var utf32 = HEAPU32[startIdx + i2];
6669
+ for (var i = 0; !(i >= maxBytesToRead / 4); i++) {
6670
+ var utf32 = HEAPU32[startIdx + i];
6560
6671
  if (!utf32 && !ignoreNul)
6561
6672
  break;
6562
6673
  str += String.fromCodePoint(utf32);
@@ -6569,10 +6680,10 @@ async function PAGInit$1(moduleArg = {}) {
6569
6680
  return 0;
6570
6681
  var startPtr = outPtr;
6571
6682
  var endPtr = startPtr + maxBytesToWrite - 4;
6572
- for (var i2 = 0; i2 < str.length; ++i2) {
6573
- var codePoint = str.codePointAt(i2);
6683
+ for (var i = 0; i < str.length; ++i) {
6684
+ var codePoint = str.codePointAt(i);
6574
6685
  if (codePoint > 65535) {
6575
- i2++;
6686
+ i++;
6576
6687
  }
6577
6688
  HEAP32[outPtr >> 2] = codePoint;
6578
6689
  outPtr += 4;
@@ -6584,10 +6695,10 @@ async function PAGInit$1(moduleArg = {}) {
6584
6695
  };
6585
6696
  var lengthBytesUTF32 = (str) => {
6586
6697
  var len = 0;
6587
- for (var i2 = 0; i2 < str.length; ++i2) {
6588
- var codePoint = str.codePointAt(i2);
6698
+ for (var i = 0; i < str.length; ++i) {
6699
+ var codePoint = str.codePointAt(i);
6589
6700
  if (codePoint > 65535) {
6590
- i2++;
6701
+ i++;
6591
6702
  }
6592
6703
  len += 4;
6593
6704
  }
@@ -6644,8 +6755,8 @@ async function PAGInit$1(moduleArg = {}) {
6644
6755
  };
6645
6756
  var emval_lookupTypes = (argCount, argTypes) => {
6646
6757
  var a = new Array(argCount);
6647
- for (var i2 = 0; i2 < argCount; ++i2) {
6648
- a[i2] = requireRegisteredType(HEAPU32[argTypes + i2 * 4 >> 2], `parameter ${i2}`);
6758
+ for (var i = 0; i < argCount; ++i) {
6759
+ a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >> 2], `parameter ${i}`);
6649
6760
  }
6650
6761
  return a;
6651
6762
  };
@@ -6672,10 +6783,10 @@ async function PAGInit$1(moduleArg = {}) {
6672
6783
  var argFromPtr = argTypes.map((type) => type.readValueFromPointer.bind(type));
6673
6784
  argCount--;
6674
6785
  var captures = { toValue: Emval.toValue };
6675
- var args = argFromPtr.map((argFromPtr2, i2) => {
6676
- var captureName = `argFromPtr${i2}`;
6786
+ var args = argFromPtr.map((argFromPtr2, i) => {
6787
+ var captureName = `argFromPtr${i}`;
6677
6788
  captures[captureName] = argFromPtr2;
6678
- return `${captureName}(args${i2 ? "+" + i2 * GenericWireTypeSize : ""})`;
6789
+ return `${captureName}(args${i ? "+" + i * GenericWireTypeSize : ""})`;
6679
6790
  });
6680
6791
  var functionBody;
6681
6792
  switch (kind) {
@@ -6789,6 +6900,8 @@ async function PAGInit$1(moduleArg = {}) {
6789
6900
  HEAP32[width >> 2] = canvas.width;
6790
6901
  HEAP32[height >> 2] = canvas.height;
6791
6902
  };
6903
+ var getHeapMax = () => 2147483648;
6904
+ var _emscripten_get_heap_max = () => getHeapMax();
6792
6905
  var GLctx;
6793
6906
  var webgl_enable_ANGLE_instanced_arrays = (ctx) => {
6794
6907
  var ext = ctx.getExtension("ANGLE_instanced_arrays");
@@ -6832,12 +6945,12 @@ async function PAGInit$1(moduleArg = {}) {
6832
6945
  }
6833
6946
  }, getNewId: (table) => {
6834
6947
  var ret = GL.counter++;
6835
- for (var i2 = table.length; i2 < ret; i2++) {
6836
- table[i2] = null;
6948
+ for (var i = table.length; i < ret; i++) {
6949
+ table[i] = null;
6837
6950
  }
6838
6951
  return ret;
6839
6952
  }, genObject: (n, buffers, createFunction, objectTable) => {
6840
- for (var i2 = 0; i2 < n; i2++) {
6953
+ for (var i = 0; i < n; i++) {
6841
6954
  var buffer = GLctx[createFunction]();
6842
6955
  var id = buffer && GL.getNewId(objectTable);
6843
6956
  if (buffer) {
@@ -6846,13 +6959,13 @@ async function PAGInit$1(moduleArg = {}) {
6846
6959
  } else {
6847
6960
  GL.recordError(1282);
6848
6961
  }
6849
- HEAP32[buffers + i2 * 4 >> 2] = id;
6962
+ HEAP32[buffers + i * 4 >> 2] = id;
6850
6963
  }
6851
6964
  }, getSource: (shader, count, string, length) => {
6852
6965
  var source = "";
6853
- for (var i2 = 0; i2 < count; ++i2) {
6854
- var len = length ? HEAPU32[length + i2 * 4 >> 2] : void 0;
6855
- source += UTF8ToString(HEAPU32[string + i2 * 4 >> 2], len);
6966
+ for (var i = 0; i < count; ++i) {
6967
+ var len = length ? HEAPU32[length + i * 4 >> 2] : void 0;
6968
+ source += UTF8ToString(HEAPU32[string + i * 4 >> 2], len);
6856
6969
  }
6857
6970
  return source;
6858
6971
  }, createContext: (canvas, webGLContextAttributes) => {
@@ -6927,10 +7040,6 @@ async function PAGInit$1(moduleArg = {}) {
6927
7040
  GLctx.attachShader(GL.programs[program], GL.shaders[shader]);
6928
7041
  };
6929
7042
  var _emscripten_glAttachShader = _glAttachShader;
6930
- var _glBindAttribLocation = (program, index, name) => {
6931
- GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name));
6932
- };
6933
- var _emscripten_glBindAttribLocation = _glBindAttribLocation;
6934
7043
  var _glBindBuffer = (target, buffer) => {
6935
7044
  if (target == 35051) {
6936
7045
  GLctx.currentPixelPackBufferBinding = buffer;
@@ -6940,10 +7049,10 @@ async function PAGInit$1(moduleArg = {}) {
6940
7049
  GLctx.bindBuffer(target, GL.buffers[buffer]);
6941
7050
  };
6942
7051
  var _emscripten_glBindBuffer = _glBindBuffer;
6943
- var _glBindBufferBase = (target, index, buffer) => {
6944
- GLctx.bindBufferBase(target, index, GL.buffers[buffer]);
7052
+ var _glBindBufferRange = (target, index, buffer, offset, ptrsize) => {
7053
+ GLctx.bindBufferRange(target, index, GL.buffers[buffer], offset, ptrsize);
6945
7054
  };
6946
- var _emscripten_glBindBufferBase = _glBindBufferBase;
7055
+ var _emscripten_glBindBufferRange = _glBindBufferRange;
6947
7056
  var _glBindFramebuffer = (target, framebuffer) => {
6948
7057
  GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]);
6949
7058
  };
@@ -6962,8 +7071,6 @@ async function PAGInit$1(moduleArg = {}) {
6962
7071
  var _emscripten_glBindVertexArray = _glBindVertexArray;
6963
7072
  var _glBindVertexArrayOES = _glBindVertexArray;
6964
7073
  var _emscripten_glBindVertexArrayOES = _glBindVertexArrayOES;
6965
- var _glBlendColor = (x0, x1, x2, x3) => GLctx.blendColor(x0, x1, x2, x3);
6966
- var _emscripten_glBlendColor = _glBlendColor;
6967
7074
  var _glBlendEquation = (x0) => GLctx.blendEquation(x0);
6968
7075
  var _emscripten_glBlendEquation = _glBlendEquation;
6969
7076
  var _glBlendEquationSeparate = (x0, x1) => GLctx.blendEquationSeparate(x0, x1);
@@ -7004,6 +7111,11 @@ async function PAGInit$1(moduleArg = {}) {
7004
7111
  var _emscripten_glClearDepthf = _glClearDepthf;
7005
7112
  var _glClearStencil = (x0) => GLctx.clearStencil(x0);
7006
7113
  var _emscripten_glClearStencil = _glClearStencil;
7114
+ var _glClientWaitSync = (sync, flags, timeout) => {
7115
+ timeout = Number(timeout);
7116
+ return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout);
7117
+ };
7118
+ var _emscripten_glClientWaitSync = _glClientWaitSync;
7007
7119
  var _glColorMask = (red, green, blue, alpha) => {
7008
7120
  GLctx.colorMask(!!red, !!green, !!blue, !!alpha);
7009
7121
  };
@@ -7012,30 +7124,6 @@ async function PAGInit$1(moduleArg = {}) {
7012
7124
  GLctx.compileShader(GL.shaders[shader]);
7013
7125
  };
7014
7126
  var _emscripten_glCompileShader = _glCompileShader;
7015
- var _glCompressedTexImage2D = (target, level, internalFormat, width, height, border, imageSize, data) => {
7016
- if (GL.currentContext.version >= 2) {
7017
- if (GLctx.currentPixelUnpackBufferBinding || !imageSize) {
7018
- GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
7019
- return;
7020
- }
7021
- GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, HEAPU8, data, imageSize);
7022
- return;
7023
- }
7024
- GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, HEAPU8.subarray(data, data + imageSize));
7025
- };
7026
- var _emscripten_glCompressedTexImage2D = _glCompressedTexImage2D;
7027
- var _glCompressedTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, imageSize, data) => {
7028
- if (GL.currentContext.version >= 2) {
7029
- if (GLctx.currentPixelUnpackBufferBinding || !imageSize) {
7030
- GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
7031
- return;
7032
- }
7033
- GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, HEAPU8, data, imageSize);
7034
- return;
7035
- }
7036
- GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, HEAPU8.subarray(data, data + imageSize));
7037
- };
7038
- var _emscripten_glCompressedTexSubImage2D = _glCompressedTexSubImage2D;
7039
7127
  var _glCopyTexSubImage2D = (x0, x1, x2, x3, x4, x5, x6, x7) => GLctx.copyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7);
7040
7128
  var _emscripten_glCopyTexSubImage2D = _glCopyTexSubImage2D;
7041
7129
  var _glCreateProgram = () => {
@@ -7054,11 +7142,9 @@ async function PAGInit$1(moduleArg = {}) {
7054
7142
  return id;
7055
7143
  };
7056
7144
  var _emscripten_glCreateShader = _glCreateShader;
7057
- var _glCullFace = (x0) => GLctx.cullFace(x0);
7058
- var _emscripten_glCullFace = _glCullFace;
7059
7145
  var _glDeleteBuffers = (n, buffers) => {
7060
- for (var i2 = 0; i2 < n; i2++) {
7061
- var id = HEAP32[buffers + i2 * 4 >> 2];
7146
+ for (var i = 0; i < n; i++) {
7147
+ var id = HEAP32[buffers + i * 4 >> 2];
7062
7148
  var buffer = GL.buffers[id];
7063
7149
  if (!buffer)
7064
7150
  continue;
@@ -7073,8 +7159,8 @@ async function PAGInit$1(moduleArg = {}) {
7073
7159
  };
7074
7160
  var _emscripten_glDeleteBuffers = _glDeleteBuffers;
7075
7161
  var _glDeleteFramebuffers = (n, framebuffers) => {
7076
- for (var i2 = 0; i2 < n; ++i2) {
7077
- var id = HEAP32[framebuffers + i2 * 4 >> 2];
7162
+ for (var i = 0; i < n; ++i) {
7163
+ var id = HEAP32[framebuffers + i * 4 >> 2];
7078
7164
  var framebuffer = GL.framebuffers[id];
7079
7165
  if (!framebuffer)
7080
7166
  continue;
@@ -7098,8 +7184,8 @@ async function PAGInit$1(moduleArg = {}) {
7098
7184
  };
7099
7185
  var _emscripten_glDeleteProgram = _glDeleteProgram;
7100
7186
  var _glDeleteRenderbuffers = (n, renderbuffers) => {
7101
- for (var i2 = 0; i2 < n; i2++) {
7102
- var id = HEAP32[renderbuffers + i2 * 4 >> 2];
7187
+ for (var i = 0; i < n; i++) {
7188
+ var id = HEAP32[renderbuffers + i * 4 >> 2];
7103
7189
  var renderbuffer = GL.renderbuffers[id];
7104
7190
  if (!renderbuffer)
7105
7191
  continue;
@@ -7135,8 +7221,8 @@ async function PAGInit$1(moduleArg = {}) {
7135
7221
  };
7136
7222
  var _emscripten_glDeleteSync = _glDeleteSync;
7137
7223
  var _glDeleteTextures = (n, textures) => {
7138
- for (var i2 = 0; i2 < n; i2++) {
7139
- var id = HEAP32[textures + i2 * 4 >> 2];
7224
+ for (var i = 0; i < n; i++) {
7225
+ var id = HEAP32[textures + i * 4 >> 2];
7140
7226
  var texture = GL.textures[id];
7141
7227
  if (!texture)
7142
7228
  continue;
@@ -7147,8 +7233,8 @@ async function PAGInit$1(moduleArg = {}) {
7147
7233
  };
7148
7234
  var _emscripten_glDeleteTextures = _glDeleteTextures;
7149
7235
  var _glDeleteVertexArrays = (n, vaos) => {
7150
- for (var i2 = 0; i2 < n; i2++) {
7151
- var id = HEAP32[vaos + i2 * 4 >> 2];
7236
+ for (var i = 0; i < n; i++) {
7237
+ var id = HEAP32[vaos + i * 4 >> 2];
7152
7238
  GLctx.deleteVertexArray(GL.vaos[id]);
7153
7239
  GL.vaos[id] = null;
7154
7240
  }
@@ -7164,18 +7250,22 @@ async function PAGInit$1(moduleArg = {}) {
7164
7250
  var _emscripten_glDepthMask = _glDepthMask;
7165
7251
  var _glDisable = (x0) => GLctx.disable(x0);
7166
7252
  var _emscripten_glDisable = _glDisable;
7167
- var _glDisableVertexAttribArray = (index) => {
7168
- GLctx.disableVertexAttribArray(index);
7169
- };
7170
- var _emscripten_glDisableVertexAttribArray = _glDisableVertexAttribArray;
7171
7253
  var _glDrawArrays = (mode, first, count) => {
7172
7254
  GLctx.drawArrays(mode, first, count);
7173
7255
  };
7174
7256
  var _emscripten_glDrawArrays = _glDrawArrays;
7257
+ var _glDrawArraysInstanced = (mode, first, count, primcount) => {
7258
+ GLctx.drawArraysInstanced(mode, first, count, primcount);
7259
+ };
7260
+ var _emscripten_glDrawArraysInstanced = _glDrawArraysInstanced;
7175
7261
  var _glDrawElements = (mode, count, type, indices) => {
7176
7262
  GLctx.drawElements(mode, count, type, indices);
7177
7263
  };
7178
7264
  var _emscripten_glDrawElements = _glDrawElements;
7265
+ var _glDrawElementsInstanced = (mode, count, type, indices, primcount) => {
7266
+ GLctx.drawElementsInstanced(mode, count, type, indices, primcount);
7267
+ };
7268
+ var _emscripten_glDrawElementsInstanced = _glDrawElementsInstanced;
7179
7269
  var _glEnable = (x0) => GLctx.enable(x0);
7180
7270
  var _emscripten_glEnable = _glEnable;
7181
7271
  var _glEnableVertexAttribArray = (index) => {
@@ -7205,8 +7295,6 @@ async function PAGInit$1(moduleArg = {}) {
7205
7295
  GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level);
7206
7296
  };
7207
7297
  var _emscripten_glFramebufferTexture2D = _glFramebufferTexture2D;
7208
- var _glFrontFace = (x0) => GLctx.frontFace(x0);
7209
- var _emscripten_glFrontFace = _glFrontFace;
7210
7298
  var _glGenBuffers = (n, buffers) => {
7211
7299
  GL.genObject(n, buffers, "createBuffer", GL.buffers);
7212
7300
  };
@@ -7233,6 +7321,20 @@ async function PAGInit$1(moduleArg = {}) {
7233
7321
  var _emscripten_glGenerateMipmap = _glGenerateMipmap;
7234
7322
  var _glGetAttribLocation = (program, name) => GLctx.getAttribLocation(GL.programs[program], UTF8ToString(name));
7235
7323
  var _emscripten_glGetAttribLocation = _glGetAttribLocation;
7324
+ var _glGetBufferSubData = (target, offset, size, data) => {
7325
+ if (!data) {
7326
+ GL.recordError(1281);
7327
+ return;
7328
+ }
7329
+ size && GLctx.getBufferSubData(target, offset, HEAPU8, data, size);
7330
+ };
7331
+ var _emscripten_glGetBufferSubData = _glGetBufferSubData;
7332
+ var _glGetError = () => {
7333
+ var error = GLctx.getError() || GL.lastError;
7334
+ GL.lastError = 0;
7335
+ return error;
7336
+ };
7337
+ var _emscripten_glGetError = _glGetError;
7236
7338
  var writeI53ToI64 = (ptr, num) => {
7237
7339
  HEAPU32[ptr >> 2] = num;
7238
7340
  var lower = HEAPU32[ptr >> 2];
@@ -7325,16 +7427,16 @@ async function PAGInit$1(moduleArg = {}) {
7325
7427
  }
7326
7428
  }
7327
7429
  } else if (result instanceof Float32Array || result instanceof Uint32Array || result instanceof Int32Array || result instanceof Array) {
7328
- for (var i2 = 0; i2 < result.length; ++i2) {
7430
+ for (var i = 0; i < result.length; ++i) {
7329
7431
  switch (type) {
7330
7432
  case 0:
7331
- HEAP32[p + i2 * 4 >> 2] = result[i2];
7433
+ HEAP32[p + i * 4 >> 2] = result[i];
7332
7434
  break;
7333
7435
  case 2:
7334
- HEAPF32[p + i2 * 4 >> 2] = result[i2];
7436
+ HEAPF32[p + i * 4 >> 2] = result[i];
7335
7437
  break;
7336
7438
  case 4:
7337
- HEAP8[p + i2] = result[i2] ? 1 : 0;
7439
+ HEAP8[p + i] = result[i] ? 1 : 0;
7338
7440
  break;
7339
7441
  }
7340
7442
  }
@@ -7370,30 +7472,6 @@ async function PAGInit$1(moduleArg = {}) {
7370
7472
  break;
7371
7473
  }
7372
7474
  };
7373
- var _glGetBooleanv = (name_, p) => emscriptenWebGLGet(name_, p, 4);
7374
- var _emscripten_glGetBooleanv = _glGetBooleanv;
7375
- var _glGetBufferParameteriv = (target, value, data) => {
7376
- if (!data) {
7377
- GL.recordError(1281);
7378
- return;
7379
- }
7380
- HEAP32[data >> 2] = GLctx.getBufferParameter(target, value);
7381
- };
7382
- var _emscripten_glGetBufferParameteriv = _glGetBufferParameteriv;
7383
- var _glGetError = () => {
7384
- var error = GLctx.getError() || GL.lastError;
7385
- GL.lastError = 0;
7386
- return error;
7387
- };
7388
- var _emscripten_glGetError = _glGetError;
7389
- var _glGetFramebufferAttachmentParameteriv = (target, attachment, pname, params) => {
7390
- var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname);
7391
- if (result instanceof WebGLRenderbuffer || result instanceof WebGLTexture) {
7392
- result = result.name | 0;
7393
- }
7394
- HEAP32[params >> 2] = result;
7395
- };
7396
- var _emscripten_glGetFramebufferAttachmentParameteriv = _glGetFramebufferAttachmentParameteriv;
7397
7475
  var _glGetIntegerv = (name_, p) => emscriptenWebGLGet(name_, p, 0);
7398
7476
  var _emscripten_glGetIntegerv = _glGetIntegerv;
7399
7477
  var _glGetInternalformativ = (target, internalformat, pname, bufSize, params) => {
@@ -7408,8 +7486,8 @@ async function PAGInit$1(moduleArg = {}) {
7408
7486
  var ret = GLctx.getInternalformatParameter(target, internalformat, pname);
7409
7487
  if (ret === null)
7410
7488
  return;
7411
- for (var i2 = 0; i2 < ret.length && i2 < bufSize; ++i2) {
7412
- HEAP32[params + i2 * 4 >> 2] = ret[i2];
7489
+ for (var i = 0; i < ret.length && i < bufSize; ++i) {
7490
+ HEAP32[params + i * 4 >> 2] = ret[i];
7413
7491
  }
7414
7492
  };
7415
7493
  var _emscripten_glGetInternalformativ = _glGetInternalformativ;
@@ -7440,24 +7518,24 @@ async function PAGInit$1(moduleArg = {}) {
7440
7518
  } else if (pname == 35719) {
7441
7519
  if (!program.maxUniformLength) {
7442
7520
  var numActiveUniforms = GLctx.getProgramParameter(program, 35718);
7443
- for (var i2 = 0; i2 < numActiveUniforms; ++i2) {
7444
- program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i2).name.length + 1);
7521
+ for (var i = 0; i < numActiveUniforms; ++i) {
7522
+ program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1);
7445
7523
  }
7446
7524
  }
7447
7525
  HEAP32[p >> 2] = program.maxUniformLength;
7448
7526
  } else if (pname == 35722) {
7449
7527
  if (!program.maxAttributeLength) {
7450
7528
  var numActiveAttributes = GLctx.getProgramParameter(program, 35721);
7451
- for (var i2 = 0; i2 < numActiveAttributes; ++i2) {
7452
- program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i2).name.length + 1);
7529
+ for (var i = 0; i < numActiveAttributes; ++i) {
7530
+ program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1);
7453
7531
  }
7454
7532
  }
7455
7533
  HEAP32[p >> 2] = program.maxAttributeLength;
7456
7534
  } else if (pname == 35381) {
7457
7535
  if (!program.maxUniformBlockNameLength) {
7458
7536
  var numActiveUniformBlocks = GLctx.getProgramParameter(program, 35382);
7459
- for (var i2 = 0; i2 < numActiveUniformBlocks; ++i2) {
7460
- program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i2).length + 1);
7537
+ for (var i = 0; i < numActiveUniformBlocks; ++i) {
7538
+ program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1);
7461
7539
  }
7462
7540
  }
7463
7541
  HEAP32[p >> 2] = program.maxUniformBlockNameLength;
@@ -7466,14 +7544,6 @@ async function PAGInit$1(moduleArg = {}) {
7466
7544
  }
7467
7545
  };
7468
7546
  var _emscripten_glGetProgramiv = _glGetProgramiv;
7469
- var _glGetRenderbufferParameteriv = (target, pname, params) => {
7470
- if (!params) {
7471
- GL.recordError(1281);
7472
- return;
7473
- }
7474
- HEAP32[params >> 2] = GLctx.getRenderbufferParameter(target, pname);
7475
- };
7476
- var _emscripten_glGetRenderbufferParameteriv = _glGetRenderbufferParameteriv;
7477
7547
  var _glGetShaderInfoLog = (shader, maxLength, length, infoLog) => {
7478
7548
  var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
7479
7549
  if (log === null)
@@ -7593,13 +7663,13 @@ async function PAGInit$1(moduleArg = {}) {
7593
7663
  var jstoi_q = (str) => parseInt(str);
7594
7664
  var webglGetLeftBracePos = (name) => name.slice(-1) == "]" && name.lastIndexOf("[");
7595
7665
  var webglPrepareUniformLocationsBeforeFirstUse = (program) => {
7596
- var uniformLocsById = program.uniformLocsById, uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, i2, j;
7666
+ var uniformLocsById = program.uniformLocsById, uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, i, j;
7597
7667
  if (!uniformLocsById) {
7598
7668
  program.uniformLocsById = uniformLocsById = {};
7599
7669
  program.uniformArrayNamesById = {};
7600
7670
  var numActiveUniforms = GLctx.getProgramParameter(program, 35718);
7601
- for (i2 = 0; i2 < numActiveUniforms; ++i2) {
7602
- var u = GLctx.getActiveUniform(program, i2);
7671
+ for (i = 0; i < numActiveUniforms; ++i) {
7672
+ var u = GLctx.getActiveUniform(program, i);
7603
7673
  var nm = u.name;
7604
7674
  var sz = u.size;
7605
7675
  var lb = webglGetLeftBracePos(nm);
@@ -7639,65 +7709,6 @@ async function PAGInit$1(moduleArg = {}) {
7639
7709
  return -1;
7640
7710
  };
7641
7711
  var _emscripten_glGetUniformLocation = _glGetUniformLocation;
7642
- var _glGetVertexAttribPointerv = (index, pname, pointer) => {
7643
- if (!pointer) {
7644
- GL.recordError(1281);
7645
- return;
7646
- }
7647
- HEAP32[pointer >> 2] = GLctx.getVertexAttribOffset(index, pname);
7648
- };
7649
- var _emscripten_glGetVertexAttribPointerv = _glGetVertexAttribPointerv;
7650
- var emscriptenWebGLGetVertexAttrib = (index, pname, params, type) => {
7651
- if (!params) {
7652
- GL.recordError(1281);
7653
- return;
7654
- }
7655
- var data = GLctx.getVertexAttrib(index, pname);
7656
- if (pname == 34975) {
7657
- HEAP32[params >> 2] = data && data["name"];
7658
- } else if (typeof data == "number" || typeof data == "boolean") {
7659
- switch (type) {
7660
- case 0:
7661
- HEAP32[params >> 2] = data;
7662
- break;
7663
- case 2:
7664
- HEAPF32[params >> 2] = data;
7665
- break;
7666
- case 5:
7667
- HEAP32[params >> 2] = Math.fround(data);
7668
- break;
7669
- }
7670
- } else {
7671
- for (var i2 = 0; i2 < data.length; i2++) {
7672
- switch (type) {
7673
- case 0:
7674
- HEAP32[params + i2 * 4 >> 2] = data[i2];
7675
- break;
7676
- case 2:
7677
- HEAPF32[params + i2 * 4 >> 2] = data[i2];
7678
- break;
7679
- case 5:
7680
- HEAP32[params + i2 * 4 >> 2] = Math.fround(data[i2]);
7681
- break;
7682
- }
7683
- }
7684
- }
7685
- };
7686
- var _glGetVertexAttribiv = (index, pname, params) => {
7687
- emscriptenWebGLGetVertexAttrib(index, pname, params, 5);
7688
- };
7689
- var _emscripten_glGetVertexAttribiv = _glGetVertexAttribiv;
7690
- var _glIsEnabled = (x0) => GLctx.isEnabled(x0);
7691
- var _emscripten_glIsEnabled = _glIsEnabled;
7692
- var _glIsTexture = (id) => {
7693
- var texture = GL.textures[id];
7694
- if (!texture)
7695
- return 0;
7696
- return GLctx.isTexture(texture);
7697
- };
7698
- var _emscripten_glIsTexture = _glIsTexture;
7699
- var _glLineWidth = (x0) => GLctx.lineWidth(x0);
7700
- var _emscripten_glLineWidth = _glLineWidth;
7701
7712
  var _glLinkProgram = (program) => {
7702
7713
  program = GL.programs[program];
7703
7714
  GLctx.linkProgram(program);
@@ -7808,20 +7819,8 @@ async function PAGInit$1(moduleArg = {}) {
7808
7819
  GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData);
7809
7820
  };
7810
7821
  var _emscripten_glTexImage2D = _glTexImage2D;
7811
- var _glTexParameterf = (x0, x1, x2) => GLctx.texParameterf(x0, x1, x2);
7812
- var _emscripten_glTexParameterf = _glTexParameterf;
7813
- var _glTexParameterfv = (target, pname, params) => {
7814
- var param = HEAPF32[params >> 2];
7815
- GLctx.texParameterf(target, pname, param);
7816
- };
7817
- var _emscripten_glTexParameterfv = _glTexParameterfv;
7818
7822
  var _glTexParameteri = (x0, x1, x2) => GLctx.texParameteri(x0, x1, x2);
7819
7823
  var _emscripten_glTexParameteri = _glTexParameteri;
7820
- var _glTexParameteriv = (target, pname, params) => {
7821
- var param = HEAP32[params >> 2];
7822
- GLctx.texParameteri(target, pname, param);
7823
- };
7824
- var _emscripten_glTexParameteriv = _glTexParameteriv;
7825
7824
  var _glTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, type, pixels) => {
7826
7825
  if (GL.currentContext.version >= 2) {
7827
7826
  if (GLctx.currentPixelUnpackBufferBinding) {
@@ -7850,294 +7849,25 @@ async function PAGInit$1(moduleArg = {}) {
7850
7849
  GL.recordError(1282);
7851
7850
  }
7852
7851
  };
7853
- var _glUniform1f = (location, v0) => {
7854
- GLctx.uniform1f(webglGetUniformLocation(location), v0);
7855
- };
7856
- var _emscripten_glUniform1f = _glUniform1f;
7857
- var miniTempWebGLFloatBuffers = [];
7858
- var _glUniform1fv = (location, count, value) => {
7859
- if (GL.currentContext.version >= 2) {
7860
- count && GLctx.uniform1fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count);
7861
- return;
7862
- }
7863
- if (count <= 288) {
7864
- var view = miniTempWebGLFloatBuffers[count];
7865
- for (var i2 = 0; i2 < count; ++i2) {
7866
- view[i2] = HEAPF32[value + 4 * i2 >> 2];
7867
- }
7868
- } else {
7869
- var view = HEAPF32.subarray(value >> 2, value + count * 4 >> 2);
7870
- }
7871
- GLctx.uniform1fv(webglGetUniformLocation(location), view);
7872
- };
7873
- var _emscripten_glUniform1fv = _glUniform1fv;
7874
7852
  var _glUniform1i = (location, v0) => {
7875
7853
  GLctx.uniform1i(webglGetUniformLocation(location), v0);
7876
7854
  };
7877
7855
  var _emscripten_glUniform1i = _glUniform1i;
7878
- var miniTempWebGLIntBuffers = [];
7879
- var _glUniform1iv = (location, count, value) => {
7880
- if (GL.currentContext.version >= 2) {
7881
- count && GLctx.uniform1iv(webglGetUniformLocation(location), HEAP32, value >> 2, count);
7882
- return;
7883
- }
7884
- if (count <= 288) {
7885
- var view = miniTempWebGLIntBuffers[count];
7886
- for (var i2 = 0; i2 < count; ++i2) {
7887
- view[i2] = HEAP32[value + 4 * i2 >> 2];
7888
- }
7889
- } else {
7890
- var view = HEAP32.subarray(value >> 2, value + count * 4 >> 2);
7891
- }
7892
- GLctx.uniform1iv(webglGetUniformLocation(location), view);
7893
- };
7894
- var _emscripten_glUniform1iv = _glUniform1iv;
7895
- var _glUniform2f = (location, v0, v1) => {
7896
- GLctx.uniform2f(webglGetUniformLocation(location), v0, v1);
7897
- };
7898
- var _emscripten_glUniform2f = _glUniform2f;
7899
- var _glUniform2fv = (location, count, value) => {
7900
- if (GL.currentContext.version >= 2) {
7901
- count && GLctx.uniform2fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 2);
7902
- return;
7903
- }
7904
- if (count <= 144) {
7905
- count *= 2;
7906
- var view = miniTempWebGLFloatBuffers[count];
7907
- for (var i2 = 0; i2 < count; i2 += 2) {
7908
- view[i2] = HEAPF32[value + 4 * i2 >> 2];
7909
- view[i2 + 1] = HEAPF32[value + (4 * i2 + 4) >> 2];
7910
- }
7911
- } else {
7912
- var view = HEAPF32.subarray(value >> 2, value + count * 8 >> 2);
7913
- }
7914
- GLctx.uniform2fv(webglGetUniformLocation(location), view);
7915
- };
7916
- var _emscripten_glUniform2fv = _glUniform2fv;
7917
- var _glUniform2i = (location, v0, v1) => {
7918
- GLctx.uniform2i(webglGetUniformLocation(location), v0, v1);
7919
- };
7920
- var _emscripten_glUniform2i = _glUniform2i;
7921
- var _glUniform2iv = (location, count, value) => {
7922
- if (GL.currentContext.version >= 2) {
7923
- count && GLctx.uniform2iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 2);
7924
- return;
7925
- }
7926
- if (count <= 144) {
7927
- count *= 2;
7928
- var view = miniTempWebGLIntBuffers[count];
7929
- for (var i2 = 0; i2 < count; i2 += 2) {
7930
- view[i2] = HEAP32[value + 4 * i2 >> 2];
7931
- view[i2 + 1] = HEAP32[value + (4 * i2 + 4) >> 2];
7932
- }
7933
- } else {
7934
- var view = HEAP32.subarray(value >> 2, value + count * 8 >> 2);
7935
- }
7936
- GLctx.uniform2iv(webglGetUniformLocation(location), view);
7937
- };
7938
- var _emscripten_glUniform2iv = _glUniform2iv;
7939
- var _glUniform3f = (location, v0, v1, v2) => {
7940
- GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2);
7941
- };
7942
- var _emscripten_glUniform3f = _glUniform3f;
7943
- var _glUniform3fv = (location, count, value) => {
7944
- if (GL.currentContext.version >= 2) {
7945
- count && GLctx.uniform3fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 3);
7946
- return;
7947
- }
7948
- if (count <= 96) {
7949
- count *= 3;
7950
- var view = miniTempWebGLFloatBuffers[count];
7951
- for (var i2 = 0; i2 < count; i2 += 3) {
7952
- view[i2] = HEAPF32[value + 4 * i2 >> 2];
7953
- view[i2 + 1] = HEAPF32[value + (4 * i2 + 4) >> 2];
7954
- view[i2 + 2] = HEAPF32[value + (4 * i2 + 8) >> 2];
7955
- }
7956
- } else {
7957
- var view = HEAPF32.subarray(value >> 2, value + count * 12 >> 2);
7958
- }
7959
- GLctx.uniform3fv(webglGetUniformLocation(location), view);
7960
- };
7961
- var _emscripten_glUniform3fv = _glUniform3fv;
7962
- var _glUniform3i = (location, v0, v1, v2) => {
7963
- GLctx.uniform3i(webglGetUniformLocation(location), v0, v1, v2);
7964
- };
7965
- var _emscripten_glUniform3i = _glUniform3i;
7966
- var _glUniform3iv = (location, count, value) => {
7967
- if (GL.currentContext.version >= 2) {
7968
- count && GLctx.uniform3iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 3);
7969
- return;
7970
- }
7971
- if (count <= 96) {
7972
- count *= 3;
7973
- var view = miniTempWebGLIntBuffers[count];
7974
- for (var i2 = 0; i2 < count; i2 += 3) {
7975
- view[i2] = HEAP32[value + 4 * i2 >> 2];
7976
- view[i2 + 1] = HEAP32[value + (4 * i2 + 4) >> 2];
7977
- view[i2 + 2] = HEAP32[value + (4 * i2 + 8) >> 2];
7978
- }
7979
- } else {
7980
- var view = HEAP32.subarray(value >> 2, value + count * 12 >> 2);
7981
- }
7982
- GLctx.uniform3iv(webglGetUniformLocation(location), view);
7983
- };
7984
- var _emscripten_glUniform3iv = _glUniform3iv;
7985
- var _glUniform4f = (location, v0, v1, v2, v3) => {
7986
- GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3);
7987
- };
7988
- var _emscripten_glUniform4f = _glUniform4f;
7989
- var _glUniform4fv = (location, count, value) => {
7990
- if (GL.currentContext.version >= 2) {
7991
- count && GLctx.uniform4fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 4);
7992
- return;
7993
- }
7994
- if (count <= 72) {
7995
- var view = miniTempWebGLFloatBuffers[4 * count];
7996
- var heap = HEAPF32;
7997
- value = value >> 2;
7998
- count *= 4;
7999
- for (var i2 = 0; i2 < count; i2 += 4) {
8000
- var dst = value + i2;
8001
- view[i2] = heap[dst];
8002
- view[i2 + 1] = heap[dst + 1];
8003
- view[i2 + 2] = heap[dst + 2];
8004
- view[i2 + 3] = heap[dst + 3];
8005
- }
8006
- } else {
8007
- var view = HEAPF32.subarray(value >> 2, value + count * 16 >> 2);
8008
- }
8009
- GLctx.uniform4fv(webglGetUniformLocation(location), view);
8010
- };
8011
- var _emscripten_glUniform4fv = _glUniform4fv;
8012
- var _glUniform4i = (location, v0, v1, v2, v3) => {
8013
- GLctx.uniform4i(webglGetUniformLocation(location), v0, v1, v2, v3);
8014
- };
8015
- var _emscripten_glUniform4i = _glUniform4i;
8016
- var _glUniform4iv = (location, count, value) => {
8017
- if (GL.currentContext.version >= 2) {
8018
- count && GLctx.uniform4iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 4);
8019
- return;
8020
- }
8021
- if (count <= 72) {
8022
- count *= 4;
8023
- var view = miniTempWebGLIntBuffers[count];
8024
- for (var i2 = 0; i2 < count; i2 += 4) {
8025
- view[i2] = HEAP32[value + 4 * i2 >> 2];
8026
- view[i2 + 1] = HEAP32[value + (4 * i2 + 4) >> 2];
8027
- view[i2 + 2] = HEAP32[value + (4 * i2 + 8) >> 2];
8028
- view[i2 + 3] = HEAP32[value + (4 * i2 + 12) >> 2];
8029
- }
8030
- } else {
8031
- var view = HEAP32.subarray(value >> 2, value + count * 16 >> 2);
8032
- }
8033
- GLctx.uniform4iv(webglGetUniformLocation(location), view);
8034
- };
8035
- var _emscripten_glUniform4iv = _glUniform4iv;
8036
7856
  var _glUniformBlockBinding = (program, uniformBlockIndex, uniformBlockBinding) => {
8037
7857
  program = GL.programs[program];
8038
7858
  GLctx.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
8039
7859
  };
8040
7860
  var _emscripten_glUniformBlockBinding = _glUniformBlockBinding;
8041
- var _glUniformMatrix2fv = (location, count, transpose, value) => {
8042
- if (GL.currentContext.version >= 2) {
8043
- count && GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 4);
8044
- return;
8045
- }
8046
- if (count <= 72) {
8047
- count *= 4;
8048
- var view = miniTempWebGLFloatBuffers[count];
8049
- for (var i2 = 0; i2 < count; i2 += 4) {
8050
- view[i2] = HEAPF32[value + 4 * i2 >> 2];
8051
- view[i2 + 1] = HEAPF32[value + (4 * i2 + 4) >> 2];
8052
- view[i2 + 2] = HEAPF32[value + (4 * i2 + 8) >> 2];
8053
- view[i2 + 3] = HEAPF32[value + (4 * i2 + 12) >> 2];
8054
- }
8055
- } else {
8056
- var view = HEAPF32.subarray(value >> 2, value + count * 16 >> 2);
8057
- }
8058
- GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, view);
8059
- };
8060
- var _emscripten_glUniformMatrix2fv = _glUniformMatrix2fv;
8061
- var _glUniformMatrix3fv = (location, count, transpose, value) => {
8062
- if (GL.currentContext.version >= 2) {
8063
- count && GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 9);
8064
- return;
8065
- }
8066
- if (count <= 32) {
8067
- count *= 9;
8068
- var view = miniTempWebGLFloatBuffers[count];
8069
- for (var i2 = 0; i2 < count; i2 += 9) {
8070
- view[i2] = HEAPF32[value + 4 * i2 >> 2];
8071
- view[i2 + 1] = HEAPF32[value + (4 * i2 + 4) >> 2];
8072
- view[i2 + 2] = HEAPF32[value + (4 * i2 + 8) >> 2];
8073
- view[i2 + 3] = HEAPF32[value + (4 * i2 + 12) >> 2];
8074
- view[i2 + 4] = HEAPF32[value + (4 * i2 + 16) >> 2];
8075
- view[i2 + 5] = HEAPF32[value + (4 * i2 + 20) >> 2];
8076
- view[i2 + 6] = HEAPF32[value + (4 * i2 + 24) >> 2];
8077
- view[i2 + 7] = HEAPF32[value + (4 * i2 + 28) >> 2];
8078
- view[i2 + 8] = HEAPF32[value + (4 * i2 + 32) >> 2];
8079
- }
8080
- } else {
8081
- var view = HEAPF32.subarray(value >> 2, value + count * 36 >> 2);
8082
- }
8083
- GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, view);
8084
- };
8085
- var _emscripten_glUniformMatrix3fv = _glUniformMatrix3fv;
8086
- var _glUniformMatrix4fv = (location, count, transpose, value) => {
8087
- if (GL.currentContext.version >= 2) {
8088
- count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 16);
8089
- return;
8090
- }
8091
- if (count <= 18) {
8092
- var view = miniTempWebGLFloatBuffers[16 * count];
8093
- var heap = HEAPF32;
8094
- value = value >> 2;
8095
- count *= 16;
8096
- for (var i2 = 0; i2 < count; i2 += 16) {
8097
- var dst = value + i2;
8098
- view[i2] = heap[dst];
8099
- view[i2 + 1] = heap[dst + 1];
8100
- view[i2 + 2] = heap[dst + 2];
8101
- view[i2 + 3] = heap[dst + 3];
8102
- view[i2 + 4] = heap[dst + 4];
8103
- view[i2 + 5] = heap[dst + 5];
8104
- view[i2 + 6] = heap[dst + 6];
8105
- view[i2 + 7] = heap[dst + 7];
8106
- view[i2 + 8] = heap[dst + 8];
8107
- view[i2 + 9] = heap[dst + 9];
8108
- view[i2 + 10] = heap[dst + 10];
8109
- view[i2 + 11] = heap[dst + 11];
8110
- view[i2 + 12] = heap[dst + 12];
8111
- view[i2 + 13] = heap[dst + 13];
8112
- view[i2 + 14] = heap[dst + 14];
8113
- view[i2 + 15] = heap[dst + 15];
8114
- }
8115
- } else {
8116
- var view = HEAPF32.subarray(value >> 2, value + count * 64 >> 2);
8117
- }
8118
- GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view);
8119
- };
8120
- var _emscripten_glUniformMatrix4fv = _glUniformMatrix4fv;
8121
7861
  var _glUseProgram = (program) => {
8122
7862
  program = GL.programs[program];
8123
7863
  GLctx.useProgram(program);
8124
7864
  GLctx.currentProgram = program;
8125
7865
  };
8126
7866
  var _emscripten_glUseProgram = _glUseProgram;
8127
- var _glVertexAttrib1f = (x0, x1) => GLctx.vertexAttrib1f(x0, x1);
8128
- var _emscripten_glVertexAttrib1f = _glVertexAttrib1f;
8129
- var _glVertexAttrib2fv = (index, v) => {
8130
- GLctx.vertexAttrib2f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2]);
8131
- };
8132
- var _emscripten_glVertexAttrib2fv = _glVertexAttrib2fv;
8133
- var _glVertexAttrib3fv = (index, v) => {
8134
- GLctx.vertexAttrib3f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2], HEAPF32[v + 8 >> 2]);
8135
- };
8136
- var _emscripten_glVertexAttrib3fv = _glVertexAttrib3fv;
8137
- var _glVertexAttrib4fv = (index, v) => {
8138
- GLctx.vertexAttrib4f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2], HEAPF32[v + 8 >> 2], HEAPF32[v + 12 >> 2]);
7867
+ var _glVertexAttribDivisor = (index, divisor) => {
7868
+ GLctx.vertexAttribDivisor(index, divisor);
8139
7869
  };
8140
- var _emscripten_glVertexAttrib4fv = _glVertexAttrib4fv;
7870
+ var _emscripten_glVertexAttribDivisor = _glVertexAttribDivisor;
8141
7871
  var _glVertexAttribPointer = (index, size, type, normalized, stride, ptr) => {
8142
7872
  GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr);
8143
7873
  };
@@ -8149,7 +7879,6 @@ async function PAGInit$1(moduleArg = {}) {
8149
7879
  GLctx.waitSync(GL.syncs[sync], flags, timeout);
8150
7880
  };
8151
7881
  var _emscripten_glWaitSync = _glWaitSync;
8152
- var getHeapMax = () => 2147483648;
8153
7882
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
8154
7883
  var growMemory = (size) => {
8155
7884
  var oldHeapSize = wasmMemory.buffer.byteLength;
@@ -8219,7 +7948,7 @@ async function PAGInit$1(moduleArg = {}) {
8219
7948
  }
8220
7949
  var doReadv = (stream, iov, iovcnt, offset) => {
8221
7950
  var ret = 0;
8222
- for (var i2 = 0; i2 < iovcnt; i2++) {
7951
+ for (var i = 0; i < iovcnt; i++) {
8223
7952
  var ptr = HEAPU32[iov >> 2];
8224
7953
  var len = HEAPU32[iov + 4 >> 2];
8225
7954
  iov += 8;
@@ -8266,7 +7995,7 @@ async function PAGInit$1(moduleArg = {}) {
8266
7995
  }
8267
7996
  var doWritev = (stream, iov, iovcnt, offset) => {
8268
7997
  var ret = 0;
8269
- for (var i2 = 0; i2 < iovcnt; i2++) {
7998
+ for (var i = 0; i < iovcnt; i++) {
8270
7999
  var ptr = HEAPU32[iov >> 2];
8271
8000
  var len = HEAPU32[iov + 4 >> 2];
8272
8001
  iov += 8;
@@ -8300,14 +8029,6 @@ async function PAGInit$1(moduleArg = {}) {
8300
8029
  FS.staticInit();
8301
8030
  init_ClassHandle();
8302
8031
  init_RegisteredPointer();
8303
- var miniTempWebGLFloatBuffersStorage = new Float32Array(288);
8304
- for (var i = 0; i <= 288; ++i) {
8305
- miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i);
8306
- }
8307
- var miniTempWebGLIntBuffersStorage = new Int32Array(288);
8308
- for (var i = 0; i <= 288; ++i) {
8309
- miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i);
8310
- }
8311
8032
  {
8312
8033
  if (Module["noExitRuntime"])
8313
8034
  Module["noExitRuntime"];
@@ -8334,11 +8055,11 @@ async function PAGInit$1(moduleArg = {}) {
8334
8055
  Module["GL"] = GL;
8335
8056
  var ___getTypeName, _malloc, _free;
8336
8057
  function assignWasmExports(wasmExports2) {
8337
- ___getTypeName = wasmExports2["Bc"];
8338
- Module["_malloc"] = _malloc = wasmExports2["Dc"];
8339
- Module["_free"] = _free = wasmExports2["Ec"];
8058
+ ___getTypeName = wasmExports2["Ub"];
8059
+ Module["_malloc"] = _malloc = wasmExports2["Wb"];
8060
+ Module["_free"] = _free = wasmExports2["Xb"];
8340
8061
  }
8341
- var wasmImports = { w: ___cxa_throw, K: ___syscall_fcntl64, hb: ___syscall_getdents64, ob: ___syscall_ioctl, fb: ___syscall_mkdirat, L: ___syscall_openat, kb: ___syscall_rmdir, gb: ___syscall_stat64, lb: ___syscall_unlinkat, pb: __abort_js, u: __embind_finalize_value_object, H: __embind_register_bigint, db: __embind_register_bool, i: __embind_register_class, h: __embind_register_class_class_function, v: __embind_register_class_constructor, a: __embind_register_class_function, g: __embind_register_class_property, bb: __embind_register_emval, B: __embind_register_enum, o: __embind_register_enum_value, G: __embind_register_float, I: __embind_register_function, p: __embind_register_integer, j: __embind_register_memory_view, y: __embind_register_optional, n: __embind_register_smart_ptr, cb: __embind_register_std_string, D: __embind_register_std_wstring, t: __embind_register_value_object, l: __embind_register_value_object_field, eb: __embind_register_void, c: __emval_create_invoker, d: __emval_decref, F: __emval_equals, x: __emval_get_global, k: __emval_get_module_property, q: __emval_get_property, f: __emval_incref, _a: __emval_instanceof, b: __emval_invoke, ab: __emval_new_array, s: __emval_new_cstring, $a: __emval_new_object, e: __emval_run_destructors, C: __emval_set_property, ib: _clock_time_get, M: _emscripten_get_canvas_element_size, Za: _emscripten_glActiveTexture, Ya: _emscripten_glAttachShader, Wa: _emscripten_glBindAttribLocation, Va: _emscripten_glBindBuffer, uc: _emscripten_glBindBufferBase, Ua: _emscripten_glBindFramebuffer, Ta: _emscripten_glBindRenderbuffer, Sa: _emscripten_glBindTexture, zb: _emscripten_glBindVertexArray, xb: _emscripten_glBindVertexArrayOES, Ra: _emscripten_glBlendColor, Qa: _emscripten_glBlendEquation, Ab: _emscripten_glBlendEquationSeparate, Pa: _emscripten_glBlendFunc, Oa: _emscripten_glBlendFuncSeparate, sb: _emscripten_glBlitFramebuffer, Na: _emscripten_glBufferData, Ma: _emscripten_glBufferSubData, La: _emscripten_glCheckFramebufferStatus, Ka: _emscripten_glClear, Ja: _emscripten_glClearColor, Ia: _emscripten_glClearDepthf, Ha: _emscripten_glClearStencil, Ga: _emscripten_glColorMask, Fa: _emscripten_glCompileShader, Ea: _emscripten_glCompressedTexImage2D, Da: _emscripten_glCompressedTexSubImage2D, Ca: _emscripten_glCopyTexSubImage2D, Ba: _emscripten_glCreateProgram, Aa: _emscripten_glCreateShader, za: _emscripten_glCullFace, ya: _emscripten_glDeleteBuffers, xa: _emscripten_glDeleteFramebuffers, wa: _emscripten_glDeleteProgram, va: _emscripten_glDeleteRenderbuffers, ua: _emscripten_glDeleteShader, tb: _emscripten_glDeleteSync, ta: _emscripten_glDeleteTextures, sa: _emscripten_glDeleteVertexArrays, wb: _emscripten_glDeleteVertexArraysOES, ra: _emscripten_glDepthFunc, qa: _emscripten_glDepthMask, pa: _emscripten_glDisable, oa: _emscripten_glDisableVertexAttribArray, na: _emscripten_glDrawArrays, ma: _emscripten_glDrawElements, la: _emscripten_glEnable, ka: _emscripten_glEnableVertexAttribArray, ub: _emscripten_glFenceSync, ja: _emscripten_glFinish, ia: _emscripten_glFlush, ha: _emscripten_glFramebufferRenderbuffer, ga: _emscripten_glFramebufferTexture2D, fa: _emscripten_glFrontFace, ea: _emscripten_glGenBuffers, da: _emscripten_glGenFramebuffers, ba: _emscripten_glGenRenderbuffers, aa: _emscripten_glGenTextures, yb: _emscripten_glGenVertexArrays, vb: _emscripten_glGenVertexArraysOES, ca: _emscripten_glGenerateMipmap, Bb: _emscripten_glGetAttribLocation, W: _emscripten_glGetBooleanv, $: _emscripten_glGetBufferParameteriv, _: _emscripten_glGetError, Z: _emscripten_glGetFramebufferAttachmentParameteriv, Y: _emscripten_glGetIntegerv, X: _emscripten_glGetInternalformativ, V: _emscripten_glGetProgramInfoLog, U: _emscripten_glGetProgramiv, T: _emscripten_glGetRenderbufferParameteriv, S: _emscripten_glGetShaderInfoLog, R: _emscripten_glGetShaderPrecisionFormat, Q: _emscripten_glGetShaderiv, P: _emscripten_glGetString, O: _emscripten_glGetStringi, wc: _emscripten_glGetUniformBlockIndex, xc: _emscripten_glGetUniformLocation, yc: _emscripten_glGetVertexAttribPointerv, N: _emscripten_glGetVertexAttribiv, Xa: _emscripten_glIsEnabled, tc: _emscripten_glIsTexture, sc: _emscripten_glLineWidth, rc: _emscripten_glLinkProgram, qc: _emscripten_glPixelStorei, pc: _emscripten_glReadPixels, oc: _emscripten_glRenderbufferStorage, rb: _emscripten_glRenderbufferStorageMultisample, nc: _emscripten_glScissor, mc: _emscripten_glShaderSource, lc: _emscripten_glStencilFunc, kc: _emscripten_glStencilFuncSeparate, jc: _emscripten_glStencilMask, ic: _emscripten_glStencilMaskSeparate, hc: _emscripten_glStencilOp, gc: _emscripten_glStencilOpSeparate, fc: _emscripten_glTexImage2D, ec: _emscripten_glTexParameterf, dc: _emscripten_glTexParameterfv, cc: _emscripten_glTexParameteri, bc: _emscripten_glTexParameteriv, ac: _emscripten_glTexSubImage2D, $b: _emscripten_glUniform1f, _b: _emscripten_glUniform1fv, Zb: _emscripten_glUniform1i, Yb: _emscripten_glUniform1iv, Xb: _emscripten_glUniform2f, Wb: _emscripten_glUniform2fv, Vb: _emscripten_glUniform2i, Ub: _emscripten_glUniform2iv, Tb: _emscripten_glUniform3f, Sb: _emscripten_glUniform3fv, Rb: _emscripten_glUniform3i, Qb: _emscripten_glUniform3iv, Pb: _emscripten_glUniform4f, Ob: _emscripten_glUniform4fv, Nb: _emscripten_glUniform4i, Mb: _emscripten_glUniform4iv, vc: _emscripten_glUniformBlockBinding, Lb: _emscripten_glUniformMatrix2fv, Kb: _emscripten_glUniformMatrix3fv, Jb: _emscripten_glUniformMatrix4fv, Ib: _emscripten_glUseProgram, Hb: _emscripten_glVertexAttrib1f, Gb: _emscripten_glVertexAttrib2fv, Fb: _emscripten_glVertexAttrib3fv, Eb: _emscripten_glVertexAttrib4fv, Db: _emscripten_glVertexAttribPointer, Cb: _emscripten_glViewport, qb: _emscripten_glWaitSync, jb: _emscripten_resize_heap, E: _emscripten_webgl_create_context, A: _emscripten_webgl_destroy_context, r: _emscripten_webgl_get_current_context, m: _emscripten_webgl_make_context_current, z: _fd_close, nb: _fd_read, mb: _fd_seek, J: _fd_write };
8062
+ var wasmImports = { w: ___cxa_throw, J: ___syscall_fcntl64, ib: ___syscall_getdents64, pb: ___syscall_ioctl, gb: ___syscall_mkdirat, K: ___syscall_openat, lb: ___syscall_rmdir, hb: ___syscall_stat64, mb: ___syscall_unlinkat, qb: __abort_js, u: __embind_finalize_value_object, H: __embind_register_bigint, db: __embind_register_bool, j: __embind_register_class, h: __embind_register_class_class_function, v: __embind_register_class_constructor, a: __embind_register_class_function, g: __embind_register_class_property, bb: __embind_register_emval, B: __embind_register_enum, p: __embind_register_enum_value, G: __embind_register_float, F: __embind_register_function, r: __embind_register_integer, k: __embind_register_memory_view, y: __embind_register_optional, n: __embind_register_smart_ptr, cb: __embind_register_std_string, D: __embind_register_std_wstring, t: __embind_register_value_object, l: __embind_register_value_object_field, eb: __embind_register_void, c: __emval_create_invoker, d: __emval_decref, E: __emval_equals, x: __emval_get_global, i: __emval_get_module_property, o: __emval_get_property, f: __emval_incref, _a: __emval_instanceof, b: __emval_invoke, ab: __emval_new_array, q: __emval_new_cstring, $a: __emval_new_object, e: __emval_run_destructors, C: __emval_set_property, jb: _clock_time_get, L: _emscripten_get_canvas_element_size, fb: _emscripten_get_heap_max, Ya: _emscripten_glActiveTexture, Xa: _emscripten_glAttachShader, Wa: _emscripten_glBindBuffer, Rb: _emscripten_glBindBufferRange, Va: _emscripten_glBindFramebuffer, Ua: _emscripten_glBindRenderbuffer, Ta: _emscripten_glBindTexture, Sa: _emscripten_glBindVertexArray, tb: _emscripten_glBindVertexArrayOES, Ra: _emscripten_glBlendEquation, Qa: _emscripten_glBlendEquationSeparate, Pa: _emscripten_glBlendFunc, Oa: _emscripten_glBlendFuncSeparate, Na: _emscripten_glBlitFramebuffer, Ma: _emscripten_glBufferData, La: _emscripten_glBufferSubData, Ka: _emscripten_glCheckFramebufferStatus, Ja: _emscripten_glClear, Ia: _emscripten_glClearColor, Ha: _emscripten_glClearDepthf, Ga: _emscripten_glClearStencil, Fa: _emscripten_glClientWaitSync, Ea: _emscripten_glColorMask, Da: _emscripten_glCompileShader, Ca: _emscripten_glCopyTexSubImage2D, Ba: _emscripten_glCreateProgram, Aa: _emscripten_glCreateShader, za: _emscripten_glDeleteBuffers, ya: _emscripten_glDeleteFramebuffers, xa: _emscripten_glDeleteProgram, wa: _emscripten_glDeleteRenderbuffers, va: _emscripten_glDeleteShader, ua: _emscripten_glDeleteSync, ta: _emscripten_glDeleteTextures, sa: _emscripten_glDeleteVertexArrays, sb: _emscripten_glDeleteVertexArraysOES, ra: _emscripten_glDepthFunc, qa: _emscripten_glDepthMask, pa: _emscripten_glDisable, oa: _emscripten_glDrawArrays, ma: _emscripten_glDrawArraysInstanced, na: _emscripten_glDrawElements, la: _emscripten_glDrawElementsInstanced, ka: _emscripten_glEnable, ja: _emscripten_glEnableVertexAttribArray, ia: _emscripten_glFenceSync, ha: _emscripten_glFinish, ga: _emscripten_glFlush, fa: _emscripten_glFramebufferRenderbuffer, ea: _emscripten_glFramebufferTexture2D, da: _emscripten_glGenBuffers, ca: _emscripten_glGenFramebuffers, ba: _emscripten_glGenRenderbuffers, aa: _emscripten_glGenTextures, $: _emscripten_glGenVertexArrays, rb: _emscripten_glGenVertexArraysOES, _: _emscripten_glGenerateMipmap, P: _emscripten_glGetAttribLocation, ub: _emscripten_glGetBufferSubData, Z: _emscripten_glGetError, Y: _emscripten_glGetIntegerv, X: _emscripten_glGetInternalformativ, W: _emscripten_glGetProgramInfoLog, V: _emscripten_glGetProgramiv, U: _emscripten_glGetShaderInfoLog, T: _emscripten_glGetShaderPrecisionFormat, S: _emscripten_glGetShaderiv, R: _emscripten_glGetString, Q: _emscripten_glGetStringi, N: _emscripten_glGetUniformBlockIndex, O: _emscripten_glGetUniformLocation, Qb: _emscripten_glLinkProgram, Pb: _emscripten_glPixelStorei, Ob: _emscripten_glReadPixels, Nb: _emscripten_glRenderbufferStorage, Mb: _emscripten_glRenderbufferStorageMultisample, Lb: _emscripten_glScissor, Kb: _emscripten_glShaderSource, Jb: _emscripten_glStencilFunc, Ib: _emscripten_glStencilFuncSeparate, Hb: _emscripten_glStencilMask, Gb: _emscripten_glStencilMaskSeparate, Fb: _emscripten_glStencilOp, Eb: _emscripten_glStencilOpSeparate, Db: _emscripten_glTexImage2D, Cb: _emscripten_glTexParameteri, Bb: _emscripten_glTexSubImage2D, Ab: _emscripten_glUniform1i, M: _emscripten_glUniformBlockBinding, zb: _emscripten_glUseProgram, xb: _emscripten_glVertexAttribDivisor, yb: _emscripten_glVertexAttribPointer, wb: _emscripten_glViewport, vb: _emscripten_glWaitSync, kb: _emscripten_resize_heap, Za: _emscripten_webgl_create_context, A: _emscripten_webgl_destroy_context, s: _emscripten_webgl_get_current_context, m: _emscripten_webgl_make_context_current, z: _fd_close, ob: _fd_read, nb: _fd_seek, I: _fd_write };
8342
8063
  function run() {
8343
8064
  if (runDependencies > 0) {
8344
8065
  dependenciesFulfilled = run;