@arcgis/core 4.32.0-next.20250119 → 4.32.0-next.20250121

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.
Files changed (29) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/52b28aab40bb19e585bb.js +1 -0
  3. package/assets/esri/core/workers/chunks/{b372a0aab338a5ecad7c.js → 54f90273f0c8b74905dc.js} +1 -1
  4. package/assets/esri/core/workers/chunks/602c67fe1061ec5a3fa5.js +1 -0
  5. package/assets/esri/core/workers/chunks/{a40318ec20661bbe7a89.js → 74ba752dfab8ea5b6d2a.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{bdddf584ac34b6a88b2d.js → d5c93caa3a8bb06a0b3f.js} +1 -1
  7. package/assets/esri/core/workers/chunks/e4f4ad67d778dea5b956.js +1 -0
  8. package/assets/esri/core/workers/chunks/{ddada3c7f4bdf694e81a.js → fe441754962c8f8eebff.js} +25 -17
  9. package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
  10. package/chunks/BloomComposition.glsl.js +6 -6
  11. package/chunks/ComponentShader.glsl.js +3 -3
  12. package/chunks/Fog.glsl.js +2 -2
  13. package/chunks/Terrain.glsl.js +6 -6
  14. package/chunks/dxt_encoder.js +5 -0
  15. package/interfaces.d.ts +423 -687
  16. package/layers/WMSLayer.js +1 -1
  17. package/libs/dxtEncoder/DXTEncoder.js +5 -0
  18. package/package.json +1 -1
  19. package/rest/support/ImageSampleParameters.js +1 -1
  20. package/support/revision.js +1 -1
  21. package/views/3d/terrain/TerrainRenderer.js +1 -1
  22. package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
  23. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +6 -8
  24. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  25. package/views/3d/webgl-engine/lib/TextureCompressionWorker.js +1 -1
  26. package/widgets/BuildingExplorer/BuildingLevel.js +1 -1
  27. package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
  28. package/assets/esri/core/workers/chunks/8637dcdb58b0bc772c02.js +0 -1
  29. package/assets/esri/core/workers/chunks/bba3ff3d9941d5c6bd48.js +0 -1
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{gauss as e}from"../core/mathUtils.js";import{ScreenSpacePass as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{Float2PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{IntegerPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{NoParameters as s,glsl as i}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as d}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";var c;!function(e){e[e.BlurHorizontal=0]="BlurHorizontal",e[e.BlurVertical=1]="BlurVertical",e[e.Composite=2]="Composite",e[e.COUNT=3]="COUNT"}(c||(c={}));class u extends s{constructor(){super(...arguments),this.exposure=25,this.blurRadius=.0033,this.bloomLod=-1,this.exposureDepthModifier=1}}function m(s){const u=new d,m=u.fragment;switch(u.include(o),s.bloomStage){case c.BlurHorizontal:case c.BlurVertical:{u.include(r),m.uniforms.add(new n("colorTexture",(e=>e.color)),new l("blurRadius",(e=>e.blurRadius)));let o="";const t=15;for(let e=0;e<t;e++){o+=`locations1D[${e}] = ${(e/(t-1)*2-1).toFixed(3).toString()};`}const a=2;let d="";for(let r=0;r<t;r++){d+=`locations1DWeights[${r}] = ${e(r-Math.floor(t/2),a).toFixed(7).toString()};`}const p=s.bloomStage===c.BlurHorizontal;m.code.add(i`
5
+ import{gauss as e}from"../core/mathUtils.js";import{ScreenSpacePass as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Gamma as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{Float2PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{IntegerPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{NoParameters as s,glsl as i}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as d}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";var n;!function(e){e[e.BlurHorizontal=0]="BlurHorizontal",e[e.BlurVertical=1]="BlurVertical",e[e.Composite=2]="Composite",e[e.COUNT=3]="COUNT"}(n||(n={}));class u extends s{constructor(){super(...arguments),this.exposure=25,this.blurRadius=.0033,this.bloomLod=-1,this.exposureDepthModifier=1,this.lodFactors=[1,.8,.6,.4,.2]}}function m(s){const u=new d,m=u.fragment;switch(u.include(o),s.bloomStage){case n.BlurHorizontal:case n.BlurVertical:{u.include(r),m.uniforms.add(new c("colorTexture",(e=>e.color)),new l("blurRadius",(e=>e.blurRadius)));let o="";const t=15;for(let e=0;e<t;e++){o+=`locations1D[${e}] = ${(e/(t-1)*2-1).toFixed(3).toString()};`}const a=2;let d="";for(let r=0;r<t;r++){d+=`locations1DWeights[${r}] = ${e(r-Math.floor(t/2),a).toFixed(7).toString()};`}const p=s.bloomStage===n.BlurHorizontal;m.code.add(i`
6
6
  float locations1D[${i.int(t)}];
7
7
  float locations1DWeights[${i.int(t)}];
8
8
 
@@ -29,7 +29,7 @@ import{gauss as e}from"../core/mathUtils.js";import{ScreenSpacePass as o}from"..
29
29
 
30
30
  return res;
31
31
  }
32
- `),m.main.add(i`fragColor = blurUniformSamples(colorTexture);`)}break;case c.Composite:u.include(r),m.uniforms.add(new n("colorTexture",(e=>e.color)),new n("bloomTexture0",(e=>e.bloomTexture0)),new n("bloomTexture1",(e=>e.bloomTexture1)),new n("bloomTexture2",(e=>e.bloomTexture2)),new n("bloomTexture3",(e=>e.bloomTexture3)),new n("bloomTexture4",(e=>e.bloomTexture4)),new l("exposure",(e=>e.exposure)),new a("bloomLod",(e=>e.bloomLod)),new n("depthTexture",((e,o)=>o.mainDepth)),new t("nearFar",((e,o)=>o.camera.nearFar)),new l("exposureDepthModifier",(e=>e.exposureDepthModifier))).constants.add("lodFactor0","float",1).constants.add("lodFactor1","float",.8).constants.add("lodFactor2","float",.6).constants.add("lodFactor3","float",.4).constants.add("lodFactor4","float",.2).code.add(i`vec3 simpleExposureTonemap(vec3 hdrColor, float exposure) {
32
+ `),m.main.add(i`fragColor = blurUniformSamples(colorTexture);`)}break;case n.Composite:u.include(r),m.uniforms.add(new c("colorTexture",(e=>e.color)),new c("bloomTexture0",(e=>e.bloomTexture0)),new c("bloomTexture1",(e=>e.bloomTexture1)),new c("bloomTexture2",(e=>e.bloomTexture2)),new c("bloomTexture3",(e=>e.bloomTexture3)),new c("bloomTexture4",(e=>e.bloomTexture4)),new l("exposure",(e=>e.exposure)),new a("bloomLod",(e=>e.bloomLod)),new c("depthTexture",((e,o)=>o.mainDepth)),new t("nearFar",((e,o)=>o.camera.nearFar)),new l("exposureDepthModifier",(e=>e.exposureDepthModifier)),new l("lodFactor0",(e=>e.lodFactors[0])),new l("lodFactor1",(e=>e.lodFactors[1])),new l("lodFactor2",(e=>e.lodFactors[2])),new l("lodFactor3",(e=>e.lodFactors[3])),new l("lodFactor4",(e=>e.lodFactors[4]))).code.add(i`vec3 simpleExposureTonemap(vec3 hdrColor, float exposure) {
33
33
  vec3 mapped = vec3(1.0) - exp(-hdrColor * exposure);
34
34
  return mapped;
35
35
  }`).main.add(i`vec4 color = texture(colorTexture, uv);
@@ -44,15 +44,15 @@ fragColor += lodFactor1 * lod1;
44
44
  fragColor += lodFactor2 * lod2;
45
45
  fragColor += lodFactor3 * lod3;
46
46
  fragColor += lodFactor4 * lod4;
47
- fragColor = bloomLod == 0 ? lodFactor0 * lod0 : bloomLod == 1 ? lodFactor1 * lod1 : bloomLod == 2 ? lodFactor2 * lod2 : bloomLod == 3 ? lodFactor3 * lod3 : bloomLod == 4 ? lodFactor4 * lod4 : fragColor;
48
47
  float depthSample = texture(depthTexture, uv).r;
49
48
  float depthModifiedExposure = exposure;
50
49
  if(depthSample < 1.0 && depthSample > 0.0) {
51
50
  float zNorm = 2.0 * depthSample - 1.0;
52
- float linDepth = 2.0 * nearFar[0] * nearFar[1] / (nearFar[1] + nearFar[0] - zNorm * (nearFar[1] - nearFar[0]));
53
- float depth = 1.0 - (linDepth / (nearFar[1] - nearFar[0]));
51
+ float linearDepth = 2.0 * nearFar[0] * nearFar[1] / (nearFar[1] + nearFar[0] - zNorm * (nearFar[1] - nearFar[0]));
52
+ float depth = 1.0 - (linearDepth / (nearFar[1] - nearFar[0]));
54
53
  depthModifiedExposure *= depth * exposureDepthModifier;
55
54
  }
55
+ fragColor = bloomLod == 0 ? lodFactor0 * lod0 : bloomLod == 1 ? lodFactor1 * lod1 : bloomLod == 2 ? lodFactor2 * lod2 : bloomLod == 3 ? lodFactor3 * lod3 : bloomLod == 4 ? lodFactor4 * lod4 : fragColor;
56
56
  fragColor = vec4(simpleExposureTonemap(fragColor.rgb, depthModifiedExposure), fragColor.a);
57
57
  fragColor += color;
58
- fragColor = delinearizeGamma(fragColor);`)}return u}const p=Object.freeze(Object.defineProperty({__proto__:null,get BloomCompositionPass(){return c},BloomCompositionPassParameters:u,build:m},Symbol.toStringTag,{value:"Module"}));export{c as B,u as a,p as b,m as c};
58
+ fragColor = delinearizeGamma(fragColor);`)}return u}const p=Object.freeze(Object.defineProperty({__proto__:null,get BloomCompositionPass(){return n},BloomCompositionPassParameters:u,build:m},Symbol.toStringTag,{value:"Module"}));export{n as B,u as a,p as b,m as c};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as l,ComponentDataType as t}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as n}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as s,isColorOrColorEmission as g}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as h}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as T,getIMColorTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{alphaCutoff as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaCutoff.js";import{DiscardOrAdjustAlphaDraw as W}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as P,glsl as B}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as R}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";function H(H){const I=new R;I.include(u,H),I.include(h,H),I.include(v,H),I.include(c,H),I.include(d,H),I.include(l,H),I.include(W,H),I.fragment.include(m,H),I.include(M,H),I.include(N,H);const{vertex:V,fragment:F}=I,{output:_,pbrMode:G,hasNormalTexture:k,snowCover:q,receiveShadows:U,spherical:J,ellipsoidMode:K}=H,Q=G===j.Normal||G===j.Schematic;Q&&(I.include(S,H),k&&I.include(f,H));const X=_===s.Shadow||_===s.ShadowHighlight||_===s.ShadowExcludeHighlight,Y=X&&H.componentData===t.Varying,Z=H.integratedMeshMode===i.ColorOverlay||H.integratedMeshMode===i.ColorOverlayWithWater;if(Z){I.include(y,H),I.include(T,H);const a=K===D.Earth,i=K===D.Earth,l=a?e.radius:i?o.radius:r.radius;V.code.add(`\n ${P(J,`const float invRadius = ${B.float(1/l)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${P(J,"/ (1.0 + invRadius * pos.z);")}; }`)}const ee=Z&&g(_)&&G===j.WaterOnIntegratedMesh;ee&&(I.varyings.add("tbnTangent","vec3"),I.varyings.add("tbnBiTangent","vec3"),I.varyings.add("groundNormal","vec3"));const oe=H.vertexDiscardMode===n.None,re=H.vertexDiscardMode===n.Opaque,ae=1-1/255;if(V.main.add(B`
5
+ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as l,ComponentDataType as t}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as n}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as s,isColorOrColorEmission as g}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as h}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as w}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as T,getIMColorTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{alphaCutoff as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaCutoff.js";import{DiscardOrAdjustAlphaDraw as W}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as P,glsl as B}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as R}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";function H(H){const I=new R;I.include(u,H),I.include(h,H),I.include(v,H),I.include(c,H),I.include(d,H),I.include(l,H),I.include(W,H),I.fragment.include(m,H),I.include(S,H),I.include(N,H);const{vertex:V,fragment:F}=I,{output:_,pbrMode:G,hasNormalTexture:k,snowCover:q,receiveShadows:U,spherical:J,ellipsoidMode:K}=H,Q=G===j.Normal||G===j.Schematic;Q&&(I.include(O,H),k&&I.include(f,H));const X=_===s.Shadow||_===s.ShadowHighlight||_===s.ShadowExcludeHighlight,Y=X&&H.componentData===t.Varying,Z=H.integratedMeshMode===i.ColorOverlay||H.integratedMeshMode===i.ColorOverlayWithWater;if(Z){I.include(y,H),I.include(T,H);const a=K===D.Earth,i=K===D.Earth,l=a?e.radius:i?o.radius:r.radius;V.code.add(`\n ${P(J,`const float invRadius = ${B.float(1/l)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${P(J,"/ (1.0 + invRadius * pos.z);")}; }`)}const ee=Z&&g(_)&&G===j.WaterOnIntegratedMesh;ee&&(I.varyings.add("tbnTangent","vec3"),I.varyings.add("tbnBiTangent","vec3"),I.varyings.add("groundNormal","vec3"));const oe=H.vertexDiscardMode===n.None,re=H.vertexDiscardMode===n.Opaque,ae=1-1/255;if(V.main.add(B`
6
6
  bool castShadows;
7
7
  vec4 externalColor = forwardExternalColor(castShadows);
8
8
  ${P(Y,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
@@ -32,7 +32,7 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
32
32
  tbnTangent = vec3(1.0, 0.0, 0.0);
33
33
  tbnBiTangent = vec3(0.0, 1.0, 0.0);`:""}
34
34
  ${Z?B`setOverlayVTC(projectOverlay(position));`:""}
35
- `),g(_))return I.include(C,H),I.include(b,H),I.include(y,H),I.include(E,H),U&&I.include(O,H),F.code.add(B`
35
+ `),g(_))return I.include(C,H),I.include(b,H),I.include(y,H),I.include(E,H),U&&I.include(M,H),F.code.add(B`
36
36
  float evaluateShadow() {
37
37
  return ${U?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
38
38
  }`),Z&&F.uniforms.add(new z("ovColorTex",((e,o)=>$(e,o)))),F.main.add(B`
@@ -105,4 +105,4 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
105
105
  ${P(le,Z?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
106
106
  ${P(te,B`${P(Z,B`
107
107
  vec2 overlayHighlightTexel = getAllOverlayHighlightValuesEncoded();
108
- outputAllHighlights(overlayHighlightTexel);`,B`calculateOcclusionAndOutputHighlight();`)}`)}`),I}const I=Object.freeze(Object.defineProperty({__proto__:null,build:H},Symbol.toStringTag,{value:"Module"}));export{I as C,H as b};
108
+ calculateOcclusionAndOutputHighlightOverlay(overlayHighlightTexel);`,B`calculateOcclusionAndOutputHighlight();`)}`)}`),I}const I=Object.freeze(Object.defineProperty({__proto__:null,build:H},Symbol.toStringTag,{value:"Module"}));export{I as C,H as b};
@@ -11,11 +11,11 @@ return fogAmount * (1.0 - exp(-dist * fogStrength));
11
11
  float terrainDepth = -1.0;
12
12
  float depthSample = texture(depthTexture, uv).r;
13
13
  float zNorm = 2.0 * depthSample - 1.0;
14
- float linDepth = 2.0 * nearFar[0] * nearFar[1] / (nearFar[1] + nearFar[0] - zNorm * (nearFar[1] - nearFar[0]));
14
+ float linearDepth = 2.0 * nearFar[0] * nearFar[1] / (nearFar[1] + nearFar[0] - zNorm * (nearFar[1] - nearFar[0]));
15
15
  if(depthSample < 1.0 && depthSample > 0.0){
16
16
  vec3 cameraSpaceRay = normalize(eyeDir);
17
17
  cameraSpaceRay /= cameraSpaceRay.z;
18
- cameraSpaceRay *= linDepth;
18
+ cameraSpaceRay *= linearDepth;
19
19
  terrainDepth = max(0.0, length(cameraSpaceRay));
20
20
  }
21
21
  float fogAmount = getFogAmount(terrainDepth, rayDir);
@@ -2,12 +2,12 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,i as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{OverlayContent as l}from"../views/3d/terrain/OverlayContent.js";import{TransparencyMode as t}from"../views/3d/terrain/TransparencyMode.js";import{addLinearDepth as n,addNearFar as s,ForwardLinearDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as v}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{PositionAttribute as p}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js";import{TextureCoordinateAttribute as f}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as w}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as h}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as y,addAmbientBoostFactor as C,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as j,addMainLightIntensity as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PBRMode as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as T}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayMode as z,OverlayTerrain as P}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as M,TerrainTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{alphaCutoff as N}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaCutoff.js";import{addProjViewLocalOrigin as D,addViewNormal as W,addCameraPosition as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as V}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{glsl as F,If as U}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{Matrix4DrawUniform as _}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{ShaderBuilder as H}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as k}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";class B extends M{}function E(r){const i=new H,{vertex:M,fragment:B,varyings:E}=i,{output:G,pbrMode:R,overlayMode:J,tileBorders:K,spherical:Q,transparencyMode:X,screenSizePerspective:Y}=r;i.include(p),i.include(g,r),i.include(f,r);const Z=()=>{i.include(L,r),M.code.add(F`vec3 getNormal() {
5
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,i as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{OverlayContent as l}from"../views/3d/terrain/OverlayContent.js";import{TransparencyMode as t}from"../views/3d/terrain/TransparencyMode.js";import{addLinearDepth as n,addNearFar as s,ForwardLinearDepth as c}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as d}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as v}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{PositionAttribute as p}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js";import{TextureCoordinateAttribute as f}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as w}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as h}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as y,addAmbientBoostFactor as C,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as j,addMainLightIntensity as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PBRMode as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDraw as T}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayMode as z,OverlayTerrain as P}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as M,TerrainTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{alphaCutoff as N}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaCutoff.js";import{addProjViewLocalOrigin as D,addViewNormal as W,addCameraPosition as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as V}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{glsl as F,If as U}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{Matrix4DrawUniform as _}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{ShaderBuilder as H}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as k}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";class B extends M{}function E(r){const i=new H,{vertex:M,fragment:B,varyings:E}=i,{output:G,pbrMode:R,overlayMode:J,tileBorders:K,spherical:Q,transparencyMode:X,screenSizePerspective:Y}=r;i.include(p),i.include(g,r),i.include(f,r);const Z=()=>{i.include(S,r),M.code.add(F`vec3 getNormal() {
6
6
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
7
7
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
8
8
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
9
9
  return normalize(n);
10
- }`)};D(M,r),i.include(v,r);const ee=X===t.InvisibleWithDraped||X===t.Invisible,re=J!==z.Disabled,oe=re&&ee;switch(G){case d.ColorEmission:case d.Color:{i.include($,r),i.include(y,r),re&&(r.pbrMode=R===O.Simplified?O.TerrainWithWater:O.Water,i.include(P,r),r.pbrMode=R);const t=J===z.EnabledWithWater;t&&i.include(w,r),E.add("vnormal","vec3"),E.add("vpos","vec3"),E.add("vup","vec3"),Z(),Y&&W(M);const n=r.receiveShadows&&!r.renderOccluded;n&&i.include(c,r),Y&&(E.add("screenSizeDistanceToCamera","float"),E.add("screenSizeCosAngle","float")),M.main.add(F`
10
+ }`)};D(M,r),i.include(v,r);const ee=X===t.InvisibleWithDraped||X===t.Invisible,re=J!==z.Disabled,oe=re&&ee;switch(G){case d.ColorEmission:case d.Color:{i.include($,r),i.include(y,r),re&&(r.pbrMode=R===L.Simplified?L.TerrainWithWater:L.Water,i.include(P,r),r.pbrMode=R);const t=J===z.EnabledWithWater;t&&i.include(w,r),E.add("vnormal","vec3"),E.add("vpos","vec3"),E.add("vup","vec3"),Z(),Y&&W(M);const n=r.receiveShadows&&!r.renderOccluded;n&&i.include(c,r),Y&&(E.add("screenSizeDistanceToCamera","float"),E.add("screenSizeCosAngle","float")),M.main.add(F`
11
11
  vpos = position;
12
12
  vec3 positionWorld = position + localOrigin;
13
13
  gl_Position = transformPosition(proj, view, vpos);
@@ -25,7 +25,7 @@ return normalize(n);
25
25
  screenSizeCosAngle = abs(viewSpaceNormal.z);`)}
26
26
  ${U(n,"forwardLinearDepth();")}`),i.fragment.include(m,r),i.include(y,r),i.include(b,r),i.include(T,r),A(B,r),C(B),x(B),B.uniforms.add(M.uniforms.get("localOrigin"),new V("viewDirection",((e,r)=>o(q,a(q,r.camera.viewMatrix[12],r.camera.viewMatrix[13],r.camera.viewMatrix[14]))))),t&&B.uniforms.add(new k("ovWaterTex",((e,r)=>r.overlay?.getTexture(l.WaterNormal))),new _("view",((r,o)=>e(I,o.camera.viewMatrix,r.origin))));const s=.2;B.code.add(F`float lum(vec3 c) {
27
27
  return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
28
- }`),j(B),S(B),B.main.add(F`
28
+ }`),j(B),O(B),B.main.add(F`
29
29
  vec3 normal = normalize(vnormal);
30
30
  float vndl = dot(normal, mainLightDirection);
31
31
 
@@ -58,7 +58,7 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
58
58
 
59
59
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
60
60
 
61
- ${R===O.Simplified||R===O.TerrainWithWater?F`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:F`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
61
+ ${R===L.Simplified||R===L.TerrainWithWater?F`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:F`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
62
62
  ${U(t,F`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
63
63
  float waterNormalLength = length(overlayWaterMask);
64
64
  if (waterNormalLength > 0.95) {
@@ -110,6 +110,6 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
110
110
  gl_Position = transformPosition(proj, view, position);`),i.include(u,r),B.main.add(F`
111
111
  ${U(re,F`
112
112
  vec2 overlayHighlightTexel = getAllOverlayHighlightValuesEncoded();
113
- outputAllHighlights(overlayHighlightTexel);`,"calculateOcclusionAndOutputHighlight();")}
114
- `)}if(G===d.ObjectAndLayerIdColor)if(re)r.pbrMode=O.Disabled,i.include(P,r),r.pbrMode=R,M.main.add(F`gl_Position = transformPosition(proj, view, position);
113
+ calculateOcclusionAndOutputHighlightOverlay(overlayHighlightTexel);`,"calculateOcclusionAndOutputHighlight();")}
114
+ `)}if(G===d.ObjectAndLayerIdColor)if(re)r.pbrMode=L.Disabled,i.include(P,r),r.pbrMode=R,M.main.add(F`gl_Position = transformPosition(proj, view, position);
115
115
  setOverlayVTC(getUV0());`),B.main.add(F`fragColor = getOverlayColorTexel();`);else{const e=X===t.Opaque;M.main.add(F`${U(e,"gl_Position = transformPosition(proj, view, position);")}`),B.main.add(F`fragColor = vec4(0.0);`)}return i}const I=r(),q=i(),G=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:B,build:E},Symbol.toStringTag,{value:"Module"}));export{B as T,G as a,E as b};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
+ */
5
+ var r,e=(r="undefined"!=typeof document?document.currentScript?.src:void 0,function(e={}){var t,n,o=e,a=new Promise(((r,e)=>{t=r,n=e})),i="object"==typeof window,s="undefined"!=typeof WorkerGlobalScope;"object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&process.type;var l,u,d=Object.assign({},o),c="./this.program",f="";function h(r){return o.locateFile?o.locateFile(r,f):f+r}(i||s)&&(s?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f=f.startsWith("blob:")?"":f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1),s&&(u=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),l=async r=>{var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)});var p=o.print||console.log.bind(console),m=o.printErr||console.error.bind(console);Object.assign(o,d),d=null,o.arguments&&o.arguments,o.thisProgram&&(c=o.thisProgram);var v,w,y,g,E,k,b,_,A,F=o.wasmBinary,P=!1;function D(){var r=v.buffer;o.HEAP8=w=new Int8Array(r),o.HEAP16=g=new Int16Array(r),o.HEAPU8=y=new Uint8Array(r),o.HEAPU16=E=new Uint16Array(r),o.HEAP32=k=new Int32Array(r),o.HEAPU32=b=new Uint32Array(r),o.HEAPF32=_=new Float32Array(r),o.HEAPF64=A=new Float64Array(r)}var S=[],T=[],C=[];function M(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)R(o.preRun.shift());rr(S)}function j(){o.noFSInit||ft.initialized||ft.init(),ft.ignorePermissions=!1,rr(T)}function x(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)N(o.postRun.shift());rr(C)}function R(r){S.unshift(r)}function $(r){T.unshift(r)}function N(r){C.unshift(r)}var z=0,O=null;function W(r){z++,o.monitorRunDependencies?.(z)}function B(r){if(z--,o.monitorRunDependencies?.(z),0==z&&O){var e=O;O=null,e()}}function U(r){o.onAbort?.(r),m(r="Aborted("+r+")"),P=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw n(e),e}var L,H,I,V="data:application/octet-stream;base64,",q=r=>r.startsWith(V);function X(){var r="dxt_encoder.wasm";return q(r)?r:h(r)}function G(r){if(r==L&&F)return new Uint8Array(F);if(u)return u(r);throw"both async and sync fetching of the wasm failed"}async function K(r){if(!F)try{var e=await l(r);return new Uint8Array(e)}catch{}return G(r)}async function J(r,e){try{var t=await K(r);return await WebAssembly.instantiate(t,e)}catch(n){m(`failed to asynchronously prepare wasm: ${n}`),U(n)}}async function Q(r,e,t){if(!r&&"function"==typeof WebAssembly.instantiateStreaming&&!q(e)&&"function"==typeof fetch)try{var n=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(o){m(`wasm streaming compile failed: ${o}`),m("falling back to ArrayBuffer instantiation")}return J(e,t)}function Y(){return{a:bt}}async function Z(){function r(r,e){return kt=r.exports,v=kt.G,D(),zr=kt.J,$(kt.H),B(),kt}function e(e){r(e.instance)}W();var t=Y();if(o.instantiateWasm)try{return o.instantiateWasm(t,r)}catch(i){m(`Module.instantiateWasm callback failed with error: ${i}`),n(i)}L??=X();try{var a=await Q(F,L,t);return e(a),a}catch(i){return void n(i)}}var rr=r=>{for(;r.length>0;)r.shift()(o)};o.noExitRuntime;class er{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){b[this.ptr+4>>2]=r}get_type(){return b[this.ptr+4>>2]}set_destructor(r){b[this.ptr+8>>2]=r}get_destructor(){return b[this.ptr+8>>2]}set_caught(r){r=r?1:0,w[this.ptr+12]=r}get_caught(){return 0!=w[this.ptr+12]}set_rethrown(r){r=r?1:0,w[this.ptr+13]=r}get_rethrown(){return 0!=w[this.ptr+13]}init(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)}set_adjusted_ptr(r){b[this.ptr+16>>2]=r}get_adjusted_ptr(){return b[this.ptr+16>>2]}}var tr,nr,or,ar=(r,e,t)=>{throw new er(r).init(e,t),r},ir=()=>U(""),sr=(r,e,t,n,o)=>{},lr=()=>{for(var r=new Array(256),e=0;e<256;++e)r[e]=String.fromCharCode(e);tr=r},ur=r=>{for(var e="",t=r;y[t];)e+=tr[y[t++]];return e},dr={},cr={},fr={},hr=r=>{throw new nr(r)},pr=r=>{throw new or(r)},mr=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&pr("Mismatched type converter count");for(var o=0;o<r.length;++o)wr(r[o],n[o])}r.forEach((r=>fr[r]=e));var o=new Array(e.length),a=[],i=0;e.forEach(((r,e)=>{cr.hasOwnProperty(r)?o[e]=cr[r]:(a.push(r),dr.hasOwnProperty(r)||(dr[r]=[]),dr[r].push((()=>{o[e]=cr[r],++i===a.length&&n(o)})))})),0===a.length&&n(o)};function vr(r,e,t={}){var n=e.name;if(r||hr(`type "${n}" must have a positive integer typeid pointer`),cr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;hr(`Cannot register type '${n}' twice`)}if(cr[r]=e,delete fr[r],dr.hasOwnProperty(r)){var o=dr[r];delete dr[r],o.forEach((r=>r()))}}function wr(r,e,t={}){return vr(r,e,t)}var yr=8,gr=(r,e,t,n)=>{wr(r,{name:e=ur(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},argPackAdvance:yr,readValueFromPointer:function(r){return this.fromWireType(y[r])},destructorFunction:null})},Er=[],kr=[],br=r=>{r>9&&0==--kr[r+1]&&(kr[r]=void 0,Er.push(r))},_r=()=>kr.length/2-5-Er.length,Ar=()=>{kr.push(0,1,void 0,1,null,1,!0,1,!1,1),o.count_emval_handles=_r},Fr={toValue:r=>(r||hr("Cannot use deleted val. handle = "+r),kr[r]),toHandle:r=>{switch(r){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const e=Er.pop()||kr.length;return kr[e]=r,kr[e+1]=1,e}}}};function Pr(r){return this.fromWireType(b[r>>2])}var Dr={name:"emscripten::val",fromWireType:r=>{var e=Fr.toValue(r);return br(r),e},toWireType:(r,e)=>Fr.toHandle(e),argPackAdvance:yr,readValueFromPointer:Pr,destructorFunction:null},Sr=r=>wr(r,Dr),Tr=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType(_[r>>2])};case 8:return function(r){return this.fromWireType(A[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},Cr=(r,e,t)=>{wr(r,{name:e=ur(e),fromWireType:r=>r,toWireType:(r,e)=>e,argPackAdvance:yr,readValueFromPointer:Tr(e,t),destructorFunction:null})},Mr=(r,e)=>Object.defineProperty(e,"name",{value:r}),jr=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function xr(r){for(var e=1;e<r.length;++e)if(null!==r[e]&&void 0===r[e].destructorFunction)return!0;return!1}function Rr(r,e){if(!(r instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof r} which is not a function`);var t=Mr(r.name||"unknownFunctionName",(function(){}));t.prototype=r.prototype;var n=new t,o=r.apply(n,e);return o instanceof Object?o:n}function $r(r,e,t,n){for(var o=xr(r),a=r.length-2,i=[],s=["fn"],l=0;l<a;++l)i.push(`arg${l}`),s.push(`arg${l}Wired`);i=i.join(","),s=s.join(",");var u=`return function (${i}) {\n`;o&&(u+="var destructors = [];\n");var d=o?"destructors":"null",c=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];for(l=0;l<a;++l)u+=`var arg${l}Wired = argType${l}['toWireType'](${d}, arg${l});\n`,c.push(`argType${l}`);if(u+=(t||n?"var rv = ":"")+`invoker(${s});\n`,o)u+="runDestructors(destructors);\n";else for(l=2;l<r.length;++l){var f=1===l?"thisWired":"arg"+(l-2)+"Wired";null!==r[l].destructorFunction&&(u+=`${f}_dtor(${f});\n`,c.push(`${f}_dtor`))}return t&&(u+="var ret = retType['fromWireType'](rv);\nreturn ret;\n"),[c,u+="}\n"]}function Nr(r,e,t,n,o,a){var i=e.length;i<2&&hr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==e[1]&&null!==t,l=xr(e),u="void"!==e[0].name,d=[r,hr,n,o,jr,e[0],e[1]],c=0;c<i-2;++c)d.push(e[c+2]);if(!l)for(c=2;c<e.length;++c)null!==e[c].destructorFunction&&d.push(e[c].destructorFunction);let[f,h]=$r(e,s,u,a);f.push(h);var p=Rr(Function,f)(...d);return Mr(r,p)}var zr,Or,Wr=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(...n){return r[e].overloadTable.hasOwnProperty(n.length)||hr(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[n.length].apply(this,n)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},Br=(r,e,t)=>{o.hasOwnProperty(r)?((void 0===t||void 0!==o[r].overloadTable&&void 0!==o[r].overloadTable[t])&&hr(`Cannot register public name '${r}' twice`),Wr(o,r,r),o[r].overloadTable.hasOwnProperty(t)&&hr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),o[r].overloadTable[t]=e):(o[r]=e,o[r].argCount=t)},Ur=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(b[e+4*n>>2]);return t},Lr=(r,e,t)=>{o.hasOwnProperty(r)||pr("Replacing nonexistent public symbol"),void 0!==o[r].overloadTable&&void 0!==t?o[r].overloadTable[t]=e:(o[r]=e,o[r].argCount=t)},Hr=(r,e,t)=>(r=r.replace(/p/g,"i"),(0,o["dynCall_"+r])(e,...t)),Ir=[],Vr=r=>{var e=Ir[r];return e||(r>=Ir.length&&(Ir.length=r+1),Ir[r]=e=zr.get(r)),e},qr=(r,e,t=[])=>r.includes("j")?Hr(r,e,t):Vr(e)(...t),Xr=(r,e)=>(...t)=>qr(r,e,t),Gr=(r,e)=>{function t(){return r.includes("j")?Xr(r,e):Vr(e)}r=ur(r);var n=t();return"function"!=typeof n&&hr(`unknown function pointer with signature ${r}: ${e}`),n},Kr=(r,e)=>{var t=Mr(e,(function(r){this.name=e,this.message=r;var t=new Error(r).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t},Jr=r=>{var e=At(r),t=ur(e);return Pt(e),t},Qr=(r,e)=>{var t=[],n={};function o(r){n[r]||cr[r]||(fr[r]?fr[r].forEach(o):(t.push(r),n[r]=!0))}throw e.forEach(o),new Or(`${r}: `+t.map(Jr).join([", "]))},Yr=r=>{const e=(r=r.trim()).indexOf("(");return-1!==e?r.substr(0,e):r},Zr=(r,e,t,n,o,a,i,s)=>{var l=Ur(e,t);r=ur(r),r=Yr(r),o=Gr(n,o),Br(r,(function(){Qr(`Cannot call ${r} due to unbound types`,l)}),e-1),mr([],l,(t=>{var n=[t[0],null].concat(t.slice(1));return Lr(r,Nr(r,n,null,o,a,i),e-1),[]}))},re=(r,e,t)=>{switch(e){case 1:return t?r=>w[r]:r=>y[r];case 2:return t?r=>g[r>>1]:r=>E[r>>1];case 4:return t?r=>k[r>>2]:r=>b[r>>2];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},ee=(r,e,t,n,o)=>{e=ur(e);var a=r=>r;if(0===n){var i=32-8*t;a=r=>r<<i>>>i}var s=e.includes("unsigned"),l=(r,e)=>{};wr(r,{name:e,fromWireType:a,toWireType:s?function(r,e){return l(e,this.name),e>>>0}:function(r,e){return l(e,this.name),e},argPackAdvance:yr,readValueFromPointer:re(e,t,0!==n),destructorFunction:null})},te=(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function o(r){var e=b[r>>2],t=b[r+4>>2];return new n(w.buffer,t,e)}wr(r,{name:t=ur(t),fromWireType:o,argPackAdvance:yr,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},ne=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i<r.length;++i){var s=r.charCodeAt(i);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(t>=a)break;e[t++]=s}else if(s<=2047){if(t+1>=a)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=a)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}return e[t]=0,t-o},oe=(r,e,t)=>ne(r,y,e,t),ae=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},ie="undefined"!=typeof TextDecoder?new TextDecoder:void 0,se=(r,e=0,t=NaN)=>{for(var n=e+t,o=e;r[o]&&!(o>=n);)++o;if(o-e>16&&r.buffer&&ie)return ie.decode(r.subarray(e,o));for(var a="";e<o;){var i=r[e++];if(128&i){var s=63&r[e++];if(192!=(224&i)){var l=63&r[e++];if((i=224==(240&i)?(15&i)<<12|s<<6|l:(7&i)<<18|s<<12|l<<6|63&r[e++])<65536)a+=String.fromCharCode(i);else{var u=i-65536;a+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},le=(r,e)=>r?se(y,r,e):"",ue=(r,e)=>{wr(r,{name:e=ur(e),fromWireType(r){for(var e,t=b[r>>2],n=r+4,o=n,a=0;a<=t;++a){var i=n+a;if(a==t||0==y[i]){var s=le(o,i-o);void 0===e?e=s:(e+=String.fromCharCode(0),e+=s),o=i+1}}return Pt(r),e},toWireType(r,e){var t;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n="string"==typeof e;n||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||hr("Cannot pass non-string to std::string"),t=n?ae(e):e.length;var o=Ft(4+t+1),a=o+4;if(b[o>>2]=t,n)oe(e,a,t+1);else if(n)for(var i=0;i<t;++i){var s=e.charCodeAt(i);s>255&&(Pt(a),hr("String has UTF-16 code units that do not fit in 8 bits")),y[a+i]=s}else for(i=0;i<t;++i)y[a+i]=e[i];return null!==r&&r.push(Pt,o),o},argPackAdvance:yr,readValueFromPointer:Pr,destructorFunction(r){Pt(r)}})},de="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,ce=(r,e)=>{for(var t=r,n=t>>1,o=n+e/2;!(n>=o)&&E[n];)++n;if((t=n<<1)-r>32&&de)return de.decode(y.subarray(r,t));for(var a="",i=0;!(i>=e/2);++i){var s=g[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a},fe=(r,e,t)=>{if(t??=2147483647,t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a<o;++a){var i=r.charCodeAt(a);g[e>>1]=i,e+=2}return g[e>>1]=0,e-n},he=r=>2*r.length,pe=(r,e)=>{for(var t=0,n="";!(t>=e/4);){var o=k[r+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},me=(r,e,t)=>{if(t??=2147483647,t<4)return 0;for(var n=e,o=n+t-4,a=0;a<r.length;++a){var i=r.charCodeAt(a);if(i>=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),k[e>>2]=i,(e+=4)+4>o)break}return k[e>>2]=0,e-n},ve=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n>=55296&&n<=57343&&++t,e+=4}return e},we=(r,e,t)=>{var n,o,a,i;t=ur(t),2===e?(n=ce,o=fe,i=he,a=r=>E[r>>1]):4===e&&(n=pe,o=me,i=ve,a=r=>b[r>>2]),wr(r,{name:t,fromWireType:r=>{for(var t,o=b[r>>2],i=r+4,s=0;s<=o;++s){var l=r+4+s*e;if(s==o||0==a(l)){var u=n(i,l-i);void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),i=l+e}}return Pt(r),t},toWireType:(r,n)=>{"string"!=typeof n&&hr(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),s=Ft(4+a+e);return b[s>>2]=a/e,o(n,s+4,a+e),null!==r&&r.push(Pt,s),s},argPackAdvance:yr,readValueFromPointer:Pr,destructorFunction(r){Pt(r)}})},ye=(r,e)=>{wr(r,{isVoid:!0,name:e=ur(e),argPackAdvance:0,fromWireType:()=>{},toWireType:(r,e)=>{}})},ge=(r,e,t)=>y.copyWithin(r,e,e+t),Ee=(r,e)=>{var t=cr[r];return void 0===t&&hr(`${e} has unknown type ${Jr(r)}`),t},ke=(r,e,t)=>{var n=[],o=r.toWireType(n,t);return n.length&&(b[e>>2]=Fr.toHandle(n)),o},be=(r,e,t)=>(r=Fr.toValue(r),e=Ee(e,"emval::as"),ke(e,t,r)),_e=[],Ae=(r,e,t,n)=>(r=_e[r])(null,e=Fr.toValue(e),t,n),Fe={},Pe=r=>{var e=Fe[r];return void 0===e?ur(r):e},De=(r,e,t,n,o)=>(r=_e[r])(e=Fr.toValue(e),e[t=Pe(t)],n,o),Se=()=>"object"==typeof globalThis?globalThis:Function("return this")(),Te=r=>0===r?Fr.toHandle(Se()):(r=Pe(r),Fr.toHandle(Se()[r])),Ce=r=>{var e=_e.length;return _e.push(r),e},Me=(r,e)=>{for(var t=new Array(r),n=0;n<r;++n)t[n]=Ee(b[e+4*n>>2],"parameter "+n);return t},je=(r,e,t)=>{var n=Me(r,e),o=n.shift();r--;var a="return function (obj, func, destructorsRef, args) {\n",i=0,s=[];0===t&&s.push("obj");for(var l=["retType"],u=[o],d=0;d<r;++d)s.push("arg"+d),l.push("argType"+d),u.push(n[d]),a+=` var arg${d} = argType${d}.readValueFromPointer(args${i?"+"+i:""});\n`,i+=n[d].argPackAdvance;a+=` var rv = ${1===t?"new func":"func.call"}(${s.join(", ")});\n`,o.isVoid||(l.push("emval_returnValue"),u.push(ke),a+=" return emval_returnValue(retType, destructorsRef, rv);\n"),a+="};\n",l.push(a);var c=Rr(Function,l)(...u),f=`methodCaller<(${n.map((r=>r.name)).join(", ")}) => ${o.name}>`;return Ce(Mr(f,c))},xe=r=>(r=Pe(r),Fr.toHandle(o[r])),Re=(r,e)=>(r=Fr.toValue(r),e=Fr.toValue(e),Fr.toHandle(r[e])),$e=r=>{r>9&&(kr[r+1]+=1)},Ne=r=>Fr.toHandle(Pe(r)),ze=r=>{var e=Fr.toValue(r);jr(e),br(r)},Oe=(r,e,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),i=new Date(o,6,1),s=a.getTimezoneOffset(),l=i.getTimezoneOffset(),u=Math.max(s,l);b[r>>2]=60*u,k[e>>2]=Number(s!=l);var d=r=>{var e=r>=0?"-":"+",t=Math.abs(r);return`UTC${e}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},c=d(s),f=d(l);l<s?(oe(c,t,17),oe(f,n,17)):(oe(c,n,17),oe(f,t,17))},We=()=>2147483648,Be=(r,e)=>Math.ceil(r/e)*e,Ue=r=>{var e=(r-v.buffer.byteLength+65535)/65536|0;try{return v.grow(e),D(),1}catch(t){}},Le=r=>{var e=y.length;r>>>=0;var t=We();if(r>t)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,r+100663296);var a=Math.min(t,Be(Math.max(r,o),65536));if(Ue(a))return!0}return!1},He={},Ie=()=>c||"./this.program",Ve=()=>{if(!Ve.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Ie()};for(var e in He)void 0===He[e]?delete r[e]:r[e]=He[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);Ve.strings=t}return Ve.strings},qe=(r,e)=>{for(var t=0;t<r.length;++t)w[e++]=r.charCodeAt(t);w[e]=0},Xe=(r,e)=>{var t=0;return Ve().forEach(((n,o)=>{var a=e+t;b[r+4*o>>2]=a,qe(n,a),t+=n.length+1})),0},Ge=(r,e)=>{var t=Ve();b[r>>2]=t.length;var n=0;return t.forEach((r=>n+=r.length+1)),b[e>>2]=n,0},Ke={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=Ke.isAbs(r),t="/"===r.substr(-1);return(r=Ke.normalizeArray(r.split("/").filter((r=>!!r)),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=Ke.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:r=>{if("/"===r)return"/";var e=(r=(r=Ke.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===e?r:r.substr(e+1)},join:(...r)=>Ke.normalize(r.join("/")),join2:(r,e)=>Ke.normalize(r+"/"+e)},Je=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);U("initRandomDevice")},Qe=r=>(Qe=Je())(r),Ye={resolve:(...r)=>{for(var e="",t=!1,n=r.length-1;n>=-1&&!t;n--){var o=n>=0?r[n]:ft.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t=Ke.isAbs(o)}return(t?"/":"")+(e=Ke.normalizeArray(e.split("/").filter((r=>!!r)),!t).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e<r.length&&""===r[e];e++);for(var t=r.length-1;t>=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=Ye.resolve(r).substr(1),e=Ye.resolve(e).substr(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var l=[];for(s=i;s<n.length;s++)l.push("..");return(l=l.concat(o.slice(i))).join("/")}},Ze=[];function rt(r,e,t){var n=ae(r)+1,o=new Array(n),a=ne(r,o,0,o.length);return o.length=a,o}var et=()=>{if(!Ze.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n"),!r)return null;Ze=rt(r)}return Ze.shift()},tt={ttys:[],init(){},shutdown(){},register(r,e){tt.ttys[r]={input:[],output:[],ops:e},ft.registerDevice(r,tt.stream_ops)},stream_ops:{open(r){var e=tt.ttys[r.node.rdev];if(!e)throw new ft.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new ft.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=r.tty.ops.get_char(r.tty)}catch(l){throw new ft.ErrnoError(29)}if(void 0===s&&0===a)throw new ft.ErrnoError(6);if(null==s)break;a++,e[t+i]=s}return a&&(r.node.atime=Date.now()),a},write(r,e,t,n,o){if(!r.tty||!r.tty.ops.put_char)throw new ft.ErrnoError(60);try{for(var a=0;a<n;a++)r.tty.ops.put_char(r.tty,e[t+a])}catch(i){throw new ft.ErrnoError(29)}return n&&(r.node.mtime=r.node.ctime=Date.now()),a}},default_tty_ops:{get_char:r=>et(),put_char(r,e){null===e||10===e?(p(se(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(p(se(r.output)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(m(se(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(m(se(r.output)),r.output=[])}}},nt=r=>{U()},ot={ops_table:null,mount:r=>ot.createNode(null,"/",16895,0),createNode(r,e,t,n){if(ft.isBlkdev(t)||ft.isFIFO(t))throw new ft.ErrnoError(63);ot.ops_table||={dir:{node:{getattr:ot.node_ops.getattr,setattr:ot.node_ops.setattr,lookup:ot.node_ops.lookup,mknod:ot.node_ops.mknod,rename:ot.node_ops.rename,unlink:ot.node_ops.unlink,rmdir:ot.node_ops.rmdir,readdir:ot.node_ops.readdir,symlink:ot.node_ops.symlink},stream:{llseek:ot.stream_ops.llseek}},file:{node:{getattr:ot.node_ops.getattr,setattr:ot.node_ops.setattr},stream:{llseek:ot.stream_ops.llseek,read:ot.stream_ops.read,write:ot.stream_ops.write,allocate:ot.stream_ops.allocate,mmap:ot.stream_ops.mmap,msync:ot.stream_ops.msync}},link:{node:{getattr:ot.node_ops.getattr,setattr:ot.node_ops.setattr,readlink:ot.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ot.node_ops.getattr,setattr:ot.node_ops.setattr},stream:ft.chrdev_stream_ops}};var o=ft.createNode(r,e,t,n);return ft.isDir(o.mode)?(o.node_ops=ot.ops_table.dir.node,o.stream_ops=ot.ops_table.dir.stream,o.contents={}):ft.isFile(o.mode)?(o.node_ops=ot.ops_table.file.node,o.stream_ops=ot.ops_table.file.stream,o.usedBytes=0,o.contents=null):ft.isLink(o.mode)?(o.node_ops=ot.ops_table.link.node,o.stream_ops=ot.ops_table.link.stream):ft.isChrdev(o.mode)&&(o.node_ops=ot.ops_table.chrdev.node,o.stream_ops=ot.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),r&&(r.contents[e]=o,r.atime=r.mtime=r.ctime=o.atime),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.contents.length:0;if(!(t>=e)){var n=1048576;e=Math.max(e,t*(t<n?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var o=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(o.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=ft.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,ft.isDir(r.mode)?e.size=4096:ft.isFile(r.mode)?e.size=r.usedBytes:ft.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.atime),e.mtime=new Date(r.mtime),e.ctime=new Date(r.ctime),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){for(const t of["mode","atime","mtime","ctime"])e[t]&&(r[t]=e[t]);void 0!==e.size&&ot.resizeFileStorage(r,e.size)},lookup(r,e){throw ot.doesNotExistError},mknod:(r,e,t,n)=>ot.createNode(r,e,t,n),rename(r,e,t){var n;try{n=ft.lookupNode(e,t)}catch(a){}if(n){if(ft.isDir(r.mode))for(var o in n.contents)throw new ft.ErrnoError(55);ft.hashRemoveNode(n)}delete r.parent.contents[r.name],e.contents[t]=r,r.name=t,e.ctime=e.mtime=r.parent.ctime=r.parent.mtime=Date.now()},unlink(r,e){delete r.contents[e],r.ctime=r.mtime=Date.now()},rmdir(r,e){var t=ft.lookupNode(r,e);for(var n in t.contents)throw new ft.ErrnoError(55);delete r.contents[e],r.ctime=r.mtime=Date.now()},readdir:r=>[".","..",...Object.keys(r.contents)],symlink(r,e,t){var n=ot.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!ft.isLink(r.mode))throw new ft.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)e.set(a.subarray(o,o+i),t);else for(var s=0;s<i;s++)e[t+s]=a[o+s];return i},write(r,e,t,n,o,a){if(e.buffer===w.buffer&&(a=!1),!n)return 0;var i=r.node;if(i.mtime=i.ctime=Date.now(),e.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=e.subarray(t,t+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=e.slice(t,t+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(e.subarray(t,t+n),o),n}if(ot.expandFileStorage(i,o+n),i.contents.subarray&&e.subarray)i.contents.set(e.subarray(t,t+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=e[t+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(r,e,t){var n=e;if(1===t?n+=r.position:2===t&&ft.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new ft.ErrnoError(28);return n},allocate(r,e,t){ot.expandFileStorage(r.node,e+t),r.node.usedBytes=Math.max(r.node.usedBytes,e+t)},mmap(r,e,t,n,o){if(!ft.isFile(r.node.mode))throw new ft.ErrnoError(43);var a,i,s=r.node.contents;if(2&o||!s||s.buffer!==w.buffer){if(i=!0,!(a=nt()))throw new ft.ErrnoError(48);s&&((t>0||t+e<s.length)&&(s=s.subarray?s.subarray(t,t+e):Array.prototype.slice.call(s,t,t+e)),w.set(s,a))}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(r,e,t,n,o)=>(ot.stream_ops.write(r,e,0,n,t,!1),0)}},at=async r=>{var e=await l(r);return new Uint8Array(e)},it=(r,e,t,n,o,a)=>{ft.createDataFile(r,e,t,n,o,a)},st=o.preloadPlugins||[],lt=(r,e,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return st.forEach((a=>{o||a.canHandle(e)&&(a.handle(r,e,t,n),o=!0)})),o},ut=(r,e,t,n,o,a,i,s,l,u)=>{var d=e?Ye.resolve(Ke.join2(r,e)):r;function c(t){function c(t){u?.(),s||it(r,e,t,n,o,l),a?.(),B()}lt(t,d,c,(()=>{i?.(),B()}))||c(t)}W(),"string"==typeof t?at(t).then(c,i):c(t)},dt=r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e},ct=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},ft={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{name="ErrnoError";constructor(r){this.errno=r}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(r){this.node=r}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(r){this.shared.flags=r}get position(){return this.shared.position}set position(r){this.shared.position=r}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.id=ft.nextInode++,this.name=e,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(r){r?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(r){r?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return ft.isDir(this.mode)}get isDevice(){return ft.isChrdev(this.mode)}},lookupPath(r,e={}){if(!r)return{path:"",node:null};e.follow_mount??=!0,Ke.isAbs(r)||(r=ft.cwd()+"/"+r);r:for(var t=0;t<40;t++){for(var n=r.split("/").filter((r=>!!r&&"."!==r)),o=ft.root,a="/",i=0;i<n.length;i++){var s=i===n.length-1;if(s&&e.parent)break;if(".."!==n[i]){a=Ke.join2(a,n[i]);try{o=ft.lookupNode(o,n[i])}catch(u){if(44===u?.errno&&s&&e.noent_okay)return{path:a};throw u}if(!ft.isMountpoint(o)||s&&!e.follow_mount||(o=o.mounted.root),ft.isLink(o.mode)&&(!s||e.follow)){if(!o.node_ops.readlink)throw new ft.ErrnoError(52);var l=o.node_ops.readlink(o);Ke.isAbs(l)||(l=Ke.dirname(a)+"/"+l),r=l+"/"+n.slice(i+1).join("/");continue r}}else a=Ke.dirname(a),o=o.parent}return{path:a,node:o}}throw new ft.ErrnoError(32)},getPath(r){for(var e;;){if(ft.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(r+t>>>0)%ft.nameTable.length},hashAddNode(r){var e=ft.hashName(r.parent.id,r.name);r.name_next=ft.nameTable[e],ft.nameTable[e]=r},hashRemoveNode(r){var e=ft.hashName(r.parent.id,r.name);if(ft.nameTable[e]===r)ft.nameTable[e]=r.name_next;else for(var t=ft.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=ft.mayLookup(r);if(t)throw new ft.ErrnoError(t);for(var n=ft.hashName(r.id,e),o=ft.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return ft.lookup(r,e)},createNode(r,e,t,n){var o=new ft.FSNode(r,e,t,n);return ft.hashAddNode(o),o},destroyNode(r){ft.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>!(49152&~r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>ft.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){if(!ft.isDir(r.mode))return 54;var e=ft.nodePermissions(r,"x");return e||(r.node_ops.lookup?0:2)},mayCreate(r,e){if(!ft.isDir(r.mode))return 54;try{return ft.lookupNode(r,e),20}catch(t){}return ft.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=ft.lookupNode(r,e)}catch(a){return a.errno}var o=ft.nodePermissions(r,"wx");if(o)return o;if(t){if(!ft.isDir(n.mode))return 54;if(ft.isRoot(n)||ft.getPath(n)===ft.cwd())return 10}else if(ft.isDir(n.mode))return 31;return 0},mayOpen:(r,e)=>r?ft.isLink(r.mode)?32:ft.isDir(r.mode)&&("r"!==ft.flagsToPermissionString(e)||512&e)?31:ft.nodePermissions(r,ft.flagsToPermissionString(e)):44,MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=ft.MAX_OPEN_FDS;r++)if(!ft.streams[r])return r;throw new ft.ErrnoError(33)},getStreamChecked(r){var e=ft.getStream(r);if(!e)throw new ft.ErrnoError(8);return e},getStream:r=>ft.streams[r],createStream:(r,e=-1)=>(r=Object.assign(new ft.FSStream,r),-1==e&&(e=ft.nextfd()),r.fd=e,ft.streams[e]=r,r),closeStream(r){ft.streams[r]=null},dupStream(r,e=-1){var t=ft.createStream(r,e);return t.stream_ops?.dup?.(t),t},chrdev_stream_ops:{open(r){var e=ft.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open?.(r)},llseek(){throw new ft.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){ft.devices[r]={stream_ops:e}},getDevice:r=>ft.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push(...n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),ft.syncFSRequests++,ft.syncFSRequests>1&&m(`warning: ${ft.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=ft.getMounts(ft.root.mount),n=0;function o(r){return ft.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}t.forEach((e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)}))},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&ft.root)throw new ft.ErrnoError(10);if(!o&&!a){var i=ft.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,ft.isMountpoint(n))throw new ft.ErrnoError(10);if(!ft.isDir(n.mode))throw new ft.ErrnoError(54)}var s={type:r,opts:e,mountpoint:t,mounts:[]},l=r.mount(s);return l.mount=s,s.root=l,o?ft.root=l:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),l},unmount(r){var e=ft.lookupPath(r,{follow_mount:!1});if(!ft.isMountpoint(e.node))throw new ft.ErrnoError(28);var t=e.node,n=t.mounted,o=ft.getMounts(n);Object.keys(ft.nameTable).forEach((r=>{for(var e=ft.nameTable[r];e;){var t=e.name_next;o.includes(e.mount)&&ft.destroyNode(e),e=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=ft.lookupPath(r,{parent:!0}).node,o=Ke.basename(r);if(!o||"."===o||".."===o)throw new ft.ErrnoError(28);var a=ft.mayCreate(n,o);if(a)throw new ft.ErrnoError(a);if(!n.node_ops.mknod)throw new ft.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},statfs(r){var e={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:ft.nextInode,ffree:ft.nextInode-1,fsid:42,flags:2,namelen:255},t=ft.lookupPath(r,{follow:!0}).node;return t?.node_ops.statfs&&Object.assign(e,t.node_ops.statfs(t.mount.opts.root)),e},create:(r,e=438)=>(e&=4095,e|=32768,ft.mknod(r,e,0)),mkdir:(r,e=511)=>(e&=1023,e|=16384,ft.mknod(r,e,0)),mkdirTree(r,e){for(var t=r.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{ft.mkdir(n,e)}catch(a){if(20!=a.errno)throw a}}},mkdev:(r,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,ft.mknod(r,e,t)),symlink(r,e){if(!Ye.resolve(r))throw new ft.ErrnoError(44);var t=ft.lookupPath(e,{parent:!0}).node;if(!t)throw new ft.ErrnoError(44);var n=Ke.basename(e),o=ft.mayCreate(t,n);if(o)throw new ft.ErrnoError(o);if(!t.node_ops.symlink)throw new ft.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=Ke.dirname(r),a=Ke.dirname(e),i=Ke.basename(r),s=Ke.basename(e);if(t=ft.lookupPath(r,{parent:!0}).node,n=ft.lookupPath(e,{parent:!0}).node,!t||!n)throw new ft.ErrnoError(44);if(t.mount!==n.mount)throw new ft.ErrnoError(75);var l,u=ft.lookupNode(t,i),d=Ye.relative(r,a);if("."!==d.charAt(0))throw new ft.ErrnoError(28);if("."!==(d=Ye.relative(e,o)).charAt(0))throw new ft.ErrnoError(55);try{l=ft.lookupNode(n,s)}catch(h){}if(u!==l){var c=ft.isDir(u.mode),f=ft.mayDelete(t,i,c);if(f)throw new ft.ErrnoError(f);if(f=l?ft.mayDelete(n,s,c):ft.mayCreate(n,s))throw new ft.ErrnoError(f);if(!t.node_ops.rename)throw new ft.ErrnoError(63);if(ft.isMountpoint(u)||l&&ft.isMountpoint(l))throw new ft.ErrnoError(10);if(n!==t&&(f=ft.nodePermissions(t,"w")))throw new ft.ErrnoError(f);ft.hashRemoveNode(u);try{t.node_ops.rename(u,n,s),u.parent=n}catch(h){throw h}finally{ft.hashAddNode(u)}}},rmdir(r){var e=ft.lookupPath(r,{parent:!0}).node,t=Ke.basename(r),n=ft.lookupNode(e,t),o=ft.mayDelete(e,t,!0);if(o)throw new ft.ErrnoError(o);if(!e.node_ops.rmdir)throw new ft.ErrnoError(63);if(ft.isMountpoint(n))throw new ft.ErrnoError(10);e.node_ops.rmdir(e,t),ft.destroyNode(n)},readdir(r){var e=ft.lookupPath(r,{follow:!0}).node;if(!e.node_ops.readdir)throw new ft.ErrnoError(54);return e.node_ops.readdir(e)},unlink(r){var e=ft.lookupPath(r,{parent:!0}).node;if(!e)throw new ft.ErrnoError(44);var t=Ke.basename(r),n=ft.lookupNode(e,t),o=ft.mayDelete(e,t,!1);if(o)throw new ft.ErrnoError(o);if(!e.node_ops.unlink)throw new ft.ErrnoError(63);if(ft.isMountpoint(n))throw new ft.ErrnoError(10);e.node_ops.unlink(e,t),ft.destroyNode(n)},readlink(r){var e=ft.lookupPath(r).node;if(!e)throw new ft.ErrnoError(44);if(!e.node_ops.readlink)throw new ft.ErrnoError(28);return e.node_ops.readlink(e)},stat(r,e){var t=ft.lookupPath(r,{follow:!e}).node;if(!t)throw new ft.ErrnoError(44);if(!t.node_ops.getattr)throw new ft.ErrnoError(63);return t.node_ops.getattr(t)},lstat:r=>ft.stat(r,!0),chmod(r,e,t){var n;if(!(n="string"==typeof r?ft.lookupPath(r,{follow:!t}).node:r).node_ops.setattr)throw new ft.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&e|-4096&n.mode,ctime:Date.now()})},lchmod(r,e){ft.chmod(r,e,!0)},fchmod(r,e){var t=ft.getStreamChecked(r);ft.chmod(t.node,e)},chown(r,e,t,n){var o;if(!(o="string"==typeof r?ft.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new ft.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(r,e,t){ft.chown(r,e,t,!0)},fchown(r,e,t){var n=ft.getStreamChecked(r);ft.chown(n.node,e,t)},truncate(r,e){if(e<0)throw new ft.ErrnoError(28);var t;if(!(t="string"==typeof r?ft.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new ft.ErrnoError(63);if(ft.isDir(t.mode))throw new ft.ErrnoError(31);if(!ft.isFile(t.mode))throw new ft.ErrnoError(28);var n=ft.nodePermissions(t,"w");if(n)throw new ft.ErrnoError(n);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate(r,e){var t=ft.getStreamChecked(r);if(!(2097155&t.flags))throw new ft.ErrnoError(28);ft.truncate(t.node,e)},utime(r,e,t){var n=ft.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{atime:e,mtime:t})},open(r,e,t=438){if(""===r)throw new ft.ErrnoError(44);var n;if(t=64&(e="string"==typeof e?dt(e):e)?4095&t|32768:0,"object"==typeof r)n=r;else{var a=ft.lookupPath(r,{follow:!(131072&e),noent_okay:!0});n=a.node,r=a.path}var i=!1;if(64&e)if(n){if(128&e)throw new ft.ErrnoError(20)}else n=ft.mknod(r,t,0),i=!0;if(!n)throw new ft.ErrnoError(44);if(ft.isChrdev(n.mode)&&(e&=-513),65536&e&&!ft.isDir(n.mode))throw new ft.ErrnoError(54);if(!i){var s=ft.mayOpen(n,e);if(s)throw new ft.ErrnoError(s)}512&e&&!i&&ft.truncate(n,0),e&=-131713;var l=ft.createStream({node:n,path:ft.getPath(n),flags:e,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),!o.logReadFiles||1&e||r in ft.readFiles||(ft.readFiles[r]=1),l},close(r){if(ft.isClosed(r))throw new ft.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(e){throw e}finally{ft.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(ft.isClosed(r))throw new ft.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new ft.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new ft.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new ft.ErrnoError(28);if(ft.isClosed(r))throw new ft.ErrnoError(8);if(1==(2097155&r.flags))throw new ft.ErrnoError(8);if(ft.isDir(r.node.mode))throw new ft.ErrnoError(31);if(!r.stream_ops.read)throw new ft.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new ft.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=i),i},write(r,e,t,n,o,a){if(n<0||o<0)throw new ft.ErrnoError(28);if(ft.isClosed(r))throw new ft.ErrnoError(8);if(!(2097155&r.flags))throw new ft.ErrnoError(8);if(ft.isDir(r.node.mode))throw new ft.ErrnoError(31);if(!r.stream_ops.write)throw new ft.ErrnoError(28);r.seekable&&1024&r.flags&&ft.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new ft.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,e,t,n,o,a);return i||(r.position+=s),s},allocate(r,e,t){if(ft.isClosed(r))throw new ft.ErrnoError(8);if(e<0||t<=0)throw new ft.ErrnoError(28);if(!(2097155&r.flags))throw new ft.ErrnoError(8);if(!ft.isFile(r.node.mode)&&!ft.isDir(r.node.mode))throw new ft.ErrnoError(43);if(!r.stream_ops.allocate)throw new ft.ErrnoError(138);r.stream_ops.allocate(r,e,t)},mmap(r,e,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&r.flags))throw new ft.ErrnoError(2);if(1==(2097155&r.flags))throw new ft.ErrnoError(2);if(!r.stream_ops.mmap)throw new ft.ErrnoError(43);if(!e)throw new ft.ErrnoError(28);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new ft.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){if(e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error(`Invalid encoding type "${e.encoding}"`);var t,n=ft.open(r,e.flags),o=ft.stat(r).size,a=new Uint8Array(o);return ft.read(n,a,0,o,0),"utf8"===e.encoding?t=se(a):"binary"===e.encoding&&(t=a),ft.close(n),t},writeFile(r,e,t={}){t.flags=t.flags||577;var n=ft.open(r,t.flags,t.mode);if("string"==typeof e){var o=new Uint8Array(ae(e)+1),a=ne(e,o,0,o.length);ft.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");ft.write(n,e,0,e.byteLength,void 0,t.canOwn)}ft.close(n)},cwd:()=>ft.currentPath,chdir(r){var e=ft.lookupPath(r,{follow:!0});if(null===e.node)throw new ft.ErrnoError(44);if(!ft.isDir(e.node.mode))throw new ft.ErrnoError(54);var t=ft.nodePermissions(e.node,"x");if(t)throw new ft.ErrnoError(t);ft.currentPath=e.path},createDefaultDirectories(){ft.mkdir("/tmp"),ft.mkdir("/home"),ft.mkdir("/home/web_user")},createDefaultDevices(){ft.mkdir("/dev"),ft.registerDevice(ft.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n,llseek:()=>0}),ft.mkdev("/dev/null",ft.makedev(1,3)),tt.register(ft.makedev(5,0),tt.default_tty_ops),tt.register(ft.makedev(6,0),tt.default_tty1_ops),ft.mkdev("/dev/tty",ft.makedev(5,0)),ft.mkdev("/dev/tty1",ft.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(e=Qe(r).byteLength),r[--e]);ft.createDevice("/dev","random",t),ft.createDevice("/dev","urandom",t),ft.mkdir("/dev/shm"),ft.mkdir("/dev/shm/tmp")},createSpecialDirectories(){ft.mkdir("/proc");var r=ft.mkdir("/proc/self");ft.mkdir("/proc/self/fd"),ft.mount({mount(){var e=ft.createNode(r,"fd",16895,73);return e.stream_ops={llseek:ot.stream_ops.llseek},e.node_ops={lookup(r,e){var t=+e,n=ft.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(ft.streams.entries()).filter((([r,e])=>e)).map((([r,e])=>r.toString()))},e}},{},"/proc/self/fd")},createStandardStreams(r,e,t){r?ft.createDevice("/dev","stdin",r):ft.symlink("/dev/tty","/dev/stdin"),e?ft.createDevice("/dev","stdout",null,e):ft.symlink("/dev/tty","/dev/stdout"),t?ft.createDevice("/dev","stderr",null,t):ft.symlink("/dev/tty1","/dev/stderr"),ft.open("/dev/stdin",0),ft.open("/dev/stdout",1),ft.open("/dev/stderr",1)},staticInit(){ft.nameTable=new Array(4096),ft.mount(ot,{},"/"),ft.createDefaultDirectories(),ft.createDefaultDevices(),ft.createSpecialDirectories(),ft.filesystems={MEMFS:ot}},init(r,e,t){ft.initialized=!0,r??=o.stdin,e??=o.stdout,t??=o.stderr,ft.createStandardStreams(r,e,t)},quit(){ft.initialized=!1;for(var r=0;r<ft.streams.length;r++){var e=ft.streams[r];e&&ft.close(e)}},findObject(r,e){var t=ft.analyzePath(r,e);return t.exists?t.object:null},analyzePath(r,e){try{r=(n=ft.lookupPath(r,{follow:!e})).path}catch(o){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=ft.lookupPath(r,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=Ke.basename(r),n=ft.lookupPath(r,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(o){t.error=o.errno}return t},createPath(r,e,t,n){r="string"==typeof r?r:ft.getPath(r);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var i=Ke.join2(r,a);try{ft.mkdir(i)}catch(s){}r=i}}return i},createFile(r,e,t,n,o){var a=Ke.join2("string"==typeof r?r:ft.getPath(r),e),i=ct(n,o);return ft.create(a,i)},createDataFile(r,e,t,n,o,a){var i=e;r&&(r="string"==typeof r?r:ft.getPath(r),i=e?Ke.join2(r,e):r);var s=ct(n,o),l=ft.create(i,s);if(t){if("string"==typeof t){for(var u=new Array(t.length),d=0,c=t.length;d<c;++d)u[d]=t.charCodeAt(d);t=u}ft.chmod(l,146|s);var f=ft.open(l,577);ft.write(f,t,0,t.length,0,a),ft.close(f),ft.chmod(l,s)}},createDevice(r,e,t,n){var o=Ke.join2("string"==typeof r?r:ft.getPath(r),e),a=ct(!!t,!!n);ft.createDevice.major??=64;var i=ft.makedev(ft.createDevice.major++,0);return ft.registerDevice(i,{open(r){r.seekable=!1},close(r){n?.buffer?.length&&n(10)},read(r,e,n,o,a){for(var i=0,s=0;s<o;s++){var l;try{l=t()}catch(u){throw new ft.ErrnoError(29)}if(void 0===l&&0===i)throw new ft.ErrnoError(6);if(null==l)break;i++,e[n+s]=l}return i&&(r.node.atime=Date.now()),i},write(r,e,t,o,a){for(var i=0;i<o;i++)try{n(e[t+i])}catch(s){throw new ft.ErrnoError(29)}return o&&(r.node.mtime=r.node.ctime=Date.now()),i}}),ft.mkdev(o,a,i)},forceLoadFile(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{r.contents=u(r.url),r.usedBytes=r.contents.length}catch(e){throw new ft.ErrnoError(29)}},createLazyFile(r,e,t,n,o){class a{lengthKnown=!1;chunks=[];get(r){if(!(r>this.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}}setDataGetter(r){this.getter=r}cacheLength(){var r=new XMLHttpRequest;if(r.open("HEAD",t,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,i=1048576;o||(i=n);var s=(r,e)=>{if(r>e)throw new Error("invalid range ("+r+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+e),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):rt(o.responseText||"")},l=this;l.setDataGetter((r=>{var e=r*i,t=(r+1)*i-1;if(t=Math.min(t,n-1),void 0===l.chunks[r]&&(l.chunks[r]=s(e,t)),void 0===l.chunks[r])throw new Error("doXHR failed!");return l.chunks[r]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,p("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if("undefined"!=typeof XMLHttpRequest){if(!s)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i={isDevice:!1,contents:new a}}else i={isDevice:!1,url:t};var l=ft.createFile(r,e,i,n,o);i.contents?l.contents=i.contents:i.url&&(l.contents=null,l.url=i.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var u={};function d(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)e[t+s]=a[o+s];else for(s=0;s<i;s++)e[t+s]=a.get(o+s);return i}return Object.keys(l.stream_ops).forEach((r=>{var e=l.stream_ops[r];u[r]=(...r)=>(ft.forceLoadFile(l),e(...r))})),u.read=(r,e,t,n,o)=>(ft.forceLoadFile(l),d(r,e,t,n,o)),u.mmap=(r,e,t,n,o)=>{ft.forceLoadFile(l);var a=nt();if(!a)throw new ft.ErrnoError(48);return d(r,w,a,e,t),{ptr:a,allocated:!0}},l.stream_ops=u,l}},ht={DEFAULT_POLLMASK:5,calculateAt(r,e,t){if(Ke.isAbs(e))return e;var n;if(n=-100===r?ft.cwd():ht.getStreamFromFD(r).path,0==e.length){if(!t)throw new ft.ErrnoError(44);return n}return n+"/"+e},doStat(r,e,t){var n=r(e);k[t>>2]=n.dev,k[t+4>>2]=n.mode,b[t+8>>2]=n.nlink,k[t+12>>2]=n.uid,k[t+16>>2]=n.gid,k[t+20>>2]=n.rdev,I=[n.size>>>0,(H=n.size,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[t+24>>2]=I[0],k[t+28>>2]=I[1],k[t+32>>2]=4096,k[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return I=[Math.floor(o/1e3)>>>0,(H=Math.floor(o/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[t+40>>2]=I[0],k[t+44>>2]=I[1],b[t+48>>2]=o%1e3*1e3*1e3,I=[Math.floor(a/1e3)>>>0,(H=Math.floor(a/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[t+56>>2]=I[0],k[t+60>>2]=I[1],b[t+64>>2]=a%1e3*1e3*1e3,I=[Math.floor(i/1e3)>>>0,(H=Math.floor(i/1e3),+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[t+72>>2]=I[0],k[t+76>>2]=I[1],b[t+80>>2]=i%1e3*1e3*1e3,I=[n.ino>>>0,(H=n.ino,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[t+88>>2]=I[0],k[t+92>>2]=I[1],0},doMsync(r,e,t,n,o){if(!ft.isFile(e.node.mode))throw new ft.ErrnoError(43);if(2&n)return 0;var a=y.slice(r,r+t);ft.msync(e,a,o,t,n)},getStreamFromFD:r=>ft.getStreamChecked(r),varargs:void 0,getStr:r=>le(r)};function pt(r){try{var e=ht.getStreamFromFD(r);return ft.close(e),0}catch(t){if(void 0===ft||"ErrnoError"!==t.name)throw t;return t.errno}}var mt=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=b[e>>2],s=b[e+4>>2];e+=8;var l=ft.read(r,w,i,s,n);if(l<0)return-1;if(o+=l,l<s)break}return o};function vt(r,e,t,n){try{var o=ht.getStreamFromFD(r),a=mt(o,e,t);return b[n>>2]=a,0}catch(i){if(void 0===ft||"ErrnoError"!==i.name)throw i;return i.errno}}var wt=(r,e)=>e+2097152>>>0<4194305-!!r?(r>>>0)+4294967296*e:NaN;function yt(r,e,t,n,o){var a=wt(e,t);try{if(isNaN(a))return 61;var i=ht.getStreamFromFD(r);return ft.llseek(i,a,n),I=[i.position>>>0,(H=i.position,+Math.abs(H)>=1?H>0?+Math.floor(H/4294967296)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)],k[o>>2]=I[0],k[o+4>>2]=I[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(s){if(void 0===ft||"ErrnoError"!==s.name)throw s;return s.errno}}var gt=(r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var i=b[e>>2],s=b[e+4>>2];e+=8;var l=ft.write(r,w,i,s,n);if(l<0)return-1;if(o+=l,l<s)break}return o};function Et(r,e,t,n){try{var o=ht.getStreamFromFD(r),a=gt(o,e,t);return b[n>>2]=a,0}catch(i){if(void 0===ft||"ErrnoError"!==i.name)throw i;return i.errno}}lr(),nr=o.BindingError=class extends Error{constructor(r){super(r),this.name="BindingError"}},or=o.InternalError=class extends Error{constructor(r){super(r),this.name="InternalError"}},Ar(),Or=o.UnboundTypeError=Kr(Error,"UnboundTypeError"),ft.createPreloadedFile=ut,ft.staticInit(),ot.doesNotExistError=new ft.ErrnoError(44),ot.doesNotExistError.stack="<generic error, no stack>";var kt,bt={q:ar,w:ir,s:sr,D:gr,B:Sr,o:Cr,p:Zr,c:ee,a:te,C:ue,i:we,E:ye,A:ge,m:be,k:Ae,j:De,b:br,F:Te,g:je,l:xe,e:Re,h:$e,f:Ne,d:ze,t:Oe,z:Le,u:Xe,v:Ge,x:pt,y:vt,r:yt,n:Et};Z();var _t,At=r=>(At=kt.I)(r),Ft=r=>(Ft=kt.K)(r),Pt=r=>(Pt=kt.L)(r);function Dt(){function r(){_t||(_t=!0,o.calledRun=!0,P||(j(),t(o),o.onRuntimeInitialized?.(),x()))}z>0||(M(),z>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>o.setStatus("")),1),r()}),1)):r()))}if(o.dynCall_jiji=(r,e,t,n,a)=>(o.dynCall_jiji=kt.M)(r,e,t,n,a),o.dynCall_viijii=(r,e,t,n,a,i,s)=>(o.dynCall_viijii=kt.N)(r,e,t,n,a,i,s),o.dynCall_iiiiij=(r,e,t,n,a,i,s)=>(o.dynCall_iiiiij=kt.O)(r,e,t,n,a,i,s),o.dynCall_iiiiijj=(r,e,t,n,a,i,s,l,u)=>(o.dynCall_iiiiijj=kt.P)(r,e,t,n,a,i,s,l,u),o.dynCall_iiiiiijj=(r,e,t,n,a,i,s,l,u,d)=>(o.dynCall_iiiiiijj=kt.Q)(r,e,t,n,a,i,s,l,u,d),O=function r(){_t||Dt(),_t||(O=r)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Dt(),a});export{e as default};