PageSourceSearch

https://vgpu.sh/_next/static/immutable/chunks/0o3fy592mo5vu.js

js vgpu.sh collected 2026-10-08 10:05:13 UTC 35,274 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,732602,e=>{"use strict";var t=e.i(295901),n=e.i(795848),r=e.i(126756),i=e.i(650240);let a={version:1,wgsl:"// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment-bake.wgsl\n// Bakes either authored analytic environment into the same equirectangular HDR\n// texture layout used by the environment-map and transmission examples.\n\n     \n     \n     \n\nstruct _vgsl_97791c5c__BakeParams {\n  debug: f32,\n}\n\n@group(0) @binding(0) var<uniform> params: _vgsl_97791c5c__BakeParams;\n\n@fragment\nfn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n  let direction = _vgsl_b84a4467__direction_from_equirect(uv);\n  if (params.debug > 0.5) {\n    return vec4f(_vgsl_1ad61646__sampleDebugEnvironment(direction), 1.0);\n  }\n  return vec4f(_vgsl_d291d894__sampleStudioEnvironment(direction), 1.0);\n}\n\n// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment-debug-map.wgsl\n// Directional environment used to audit reflection and refraction paths.\n//\n// The six dominant-axis faces deliberately have unrelated colors, matching the\n// topology of a cubemap without requiring a texture. Three great-circle ribbons\n// cross those face boundaries. Their colors come only from the global direction,\n// so the center of every ribbon is continuous even where the face color changes.\n\nconst _vgsl_1ad61646__DEBUG_POSITIVE_X = vec3f(1.0, 0.16, 0.11);\nconst _vgsl_1ad61646__DEBUG_NEGATIVE_X = vec3f(0.05, 0.92, 0.92);\nconst _vgsl_1ad61646__DEBUG_POSITIVE_Y = vec3f(0.18, 1.0, 0.26);\nconst _vgsl_1ad61646__DEBUG_NEGATIVE_Y = vec3f(1.0, 0.12, 0.72);\nconst _vgsl_1ad61646__DEBUG_POSITIVE_Z = vec3f(0.14, 0.32, 1.0);\nconst _vgsl_1ad61646__DEBUG_NEGATIVE_Z = vec3f(1.0, 0.72, 0.06);\n\nstruct _vgsl_1ad61646__DebugFace {\n  color: vec3f,\n  /** WebGPU cubemap face coordinates: (0, 0) is the authored top-left. */\n  uv: vec2f,\n}\n\nfn _vgsl_1ad61646__debugFace(direction: vec3f) -> _vgsl_1ad61646__DebugFace {\n  let absolute = abs(direction);\n  if (absolute.x >= absolute.y && absolute.x >= absolute.z) {\n    let positive = direction.x >= 0.0;\n    let facePosition = select(\n      vec2f(direction.z, -direction.y),\n      vec2f(-direction.z, -direction.y),\n      positive,\n    );\n    return _vgsl_1ad61646__DebugFace(\n      select(_vgsl_1ad61646__DEBUG_NEGATIVE_X, _vgsl_1ad61646__DEBUG_POSITIVE_X, positive),\n      facePosition / absolute.x * 0.5 + 0.5,\n    );\n  }\n  if (absolute.y >= absolute.z) {\n    let positive = direction.y >= 0.0;\n    let facePosition = select(\n      vec2f(direction.x, -direction.z),\n      vec2f(direction.x, direction.z),\n      positive,\n    );\n    return _vgsl_1ad61646__DebugFace(\n      select(_vgsl_1ad61646__DEBUG_NEGATIVE_Y, _vgsl_1ad61646__DEBUG_POSITIVE_Y, positive),\n      facePosition / absolute.y * 0.5 + 0.5,\n    );\n  }\n  let positive = direction.z >= 0.0;\n  let facePosition = select(\n    vec2f(-direction.x, -direction.y),\n    vec2f(direction.x, -direction.y),\n    positive,\n  );\n  return _vgsl_1ad61646__DebugFace(\n    select(_vgsl_1ad61646__DEBUG_NEGATIVE_Z, _vgsl_1ad61646__DEBUG_POSITIVE_Z, positive),\n    facePosition / absolute.z * 0.5 + 0.5,\n  );\n}\n\nfn _vgsl_1ad61646__debugRibbonMask(distanceFromPlane: f32) -> f32 {\n  return 1.0 - smoothstep(0.018, 0.035, abs(distanceFromPlane));\n}\n\nfn _vgsl_1ad61646__debugArrowMask(uv: vec2f) -> f32 {\n  let point = vec2f(uv.x * 2.0 - 1.0, 1.0 - uv.y * 2.0);\n  let shaft = (1.0 - smoothstep(0.05, 0.075, abs(point.x)))\n    * smoothstep(-0.62, -0.54, point.y)\n    * (1.0 - smoothstep(0.18, 0.25, point.y));\n  let headWidth = max(0.0, (0.68 - point.y) * 0.72);\n  let head = (1.0 - smoothstep(headWidth, headWidth + 0.025, abs(point.x)))\n    * smoothstep(0.12, 0.18, point.y)\n    * (1.0 - smoothstep(0.62, 0.68, point.y));\n  return max(shaft, head);\n}\n\n/** Diagnostic radiance arriving from `direction`, in linear RGB. */\n fn _vgsl_1ad61646__sampleDebugEnvironment(directionInput: vec3f) -> vec3f {\n  let direction = normalize(directionInput);\n  let face = _vgsl_1ad61646__debugFace(direction);\n\n  // This world-space ramp is independent of face-local UV. Negating direction.y\n  // therefore reverses the lighting of all four side faces at once.\n  let worldHeight = direction.y * 0.5 + 0.5;\n  var color = face.color * (0.42 + worldHeight * 0.44) + vec3f(0.025);
1\n\n  // Dark seams make the analytically selected cubemap face unambiguous.\n  let edgeDistance = min(\n    min(face.uv.x, 1.0 - face.uv.x),\n    min(face.uv.y, 1.0 - face.uv.y),\n  );\n  let faceEdge = 1.0 - smoothstep(0.012, 0.026, edgeDistance);\n  color = mix(color, vec3f(0.012), faceEdge * 0.78);\n\n  // Each ribbon follows a great circle through both ends of its named axis.\n  // Its gradient is derived from that world-space coordinate, not face-local UV,\n  // which makes it a continuous reference across every cubemap seam it crosses.\n  let xRibbon = _vgsl_1ad61646__debugRibbonMask(direction.y);\n  let yRibbon = _vgsl_1ad61646__debugRibbonMask(direction.z);\n  let zRibbon = _vgsl_1ad61646__debugRibbonMask(direction.x);\n  let xGradient = mix(_vgsl_1ad61646__DEBUG_NEGATIVE_X, _vgsl_1ad61646__DEBUG_POSITIVE_X, direction.x * 0.5 + 0.5);\n  let yGradient = mix(_vgsl_1ad61646__DEBUG_NEGATIVE_Y, _vgsl_1ad61646__DEBUG_POSITIVE_Y, direction.y * 0.5 + 0.5);\n  let zGradient = mix(_vgsl_1ad61646__DEBUG_NEGATIVE_Z, _vgsl_1ad61646__DEBUG_POSITIVE_Z, direction.z * 0.5 + 0.5);\n\n  color = mix(color, xGradient * 1.35 + vec3f(0.08), xRibbon * 0.92);\n  color = mix(color, yGradient * 1.35 + vec3f(0.08), yRibbon * 0.92);\n  color = mix(color, zGradient * 1.35 + vec3f(0.08), zRibbon * 0.92);\n\n  // Face-local orientation legend. It is intentionally not symmetric under\n  // either U or V inversion:\n  //   top = white, bottom = black, left = cyan, right = orange.\n  let top = 1.0 - smoothstep(0.035, 0.06, face.uv.y);\n  let bottom = smoothstep(0.94, 0.965, face.uv.y);\n  let left = 1.0 - smoothstep(0.035, 0.06, face.uv.x);\n  let right = smoothstep(0.94, 0.965, face.uv.x);\n  color = mix(color, vec3f(1.8), top * 0.96);\n  color = mix(color, vec3f(0.004), bottom * 0.98);\n  color = mix(color, vec3f(0.0, 1.4, 1.7), left * 0.94);\n  color = mix(color, vec3f(1.8, 0.42, 0.02), right * 0.94);\n\n  // A white upward arrow remains readable away from the face boundaries and\n  // makes a vertical flip obvious even in a small internal reflection.\n  color = mix(color, vec3f(1.8), _vgsl_1ad61646__debugArrowMask(face.uv) * 0.94);\n  return color;\n}\n\n// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment-map-common.wgsl\nconst _vgsl_b84a4467__PI: f32 = 3.141592653589793;\n\n// Copied from the environment-map and transmission examples. Texture v=0 is\n// the zenith and v=1 the nadir, so the direction-to-texture Y convention stays\n// explicit and shared by every reflection/refraction path.\n \n\n fn _vgsl_b84a4467__direction_from_equirect(uv: vec2f) -> vec3f {\n  let phi = (uv.x - 0.5) * 2.0 * _vgsl_b84a4467__PI;\n  let theta = uv.y * _vgsl_b84a4467__PI;\n  return vec3f(\n    sin(theta) * cos(phi),\n    cos(theta),\n    sin(theta) * sin(phi),\n  );\n}\n\n/** Selects the prefiltered level matching the direction's angular footprint. */\n \n\n/**\n * One texture fetch with the examples' smooth reconstruction. `size` is level\n * zero's extent and `lod` may be fractional for trilinear mip blending.\n */\n \n\n// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment.wgsl\n// The deliberately sparse studio the prism reflects.\n//\n// It started as `glass-fractal`'s nine-panel baked cubemap, but this shot only\n// needs three intentional surfaces: a dark back-left wall, a cool right key and\n// a neutral strip below the prism. Defining them here keeps the environment editable\n// in one WGSL file; `environment-bake.wgsl` rasterizes it once into the same 360° HDR\n// texture layout used by the environment-map and transmission examples.\n//\n// The final line replays the round trip the asset used to perform — encode to\n// gamma 2.2, decode as sRGB — so the values a reflection reads here are the values\n// a reflection reads there, including the small mismatch between those two curves.\n//\n// The glass has no material roughness cone, but its pixel footprint can still\n// select a prefiltered mip when a reflection compresses this map on screen.\n\n     \n\nstruct _vgsl_d291d894__StudioPanel {\n  direction: vec3f,\n  /** Half-extents of the panel in tangent space, as a fraction of its distance. */\n  size: vec2f,\n  feather: f32,\n  color: vec3f,\n  intensity: f32,\n}
1\n\n/** A back-left wall, soft center fill and dominant right key. */\nfn _vgsl_d291d894__studioPanels() -> array<_vgsl_d291d894__StudioPanel, 3> {\n  return array<_vgsl_d291d894__StudioPanel, 3>(\n    // A broad back-left wall, only a touch brighter than the dark floor.\n    _vgsl_d291d894__StudioPanel(\n      vec3f(-0.82, 0.08, 0.57), // direction\n      vec2f(1.35, 1.1), // size\n      0.22, // feather\n      vec3f(0.82, 0.84, 0.88), // color\n      0.011 // intensity\n    ),\n    // A broad, heavily feathered center fill that barely lifts the bottom edge.\n    _vgsl_d291d894__StudioPanel(\n      vec3f(0.0, -0.707, 0.707), // direction\n      vec2f(0.38, 0.62), // size\n      0.18, // feather\n      vec3f(1.0, 0.97, 0.91), // color\n      0.22 // intensity\n    ),\n    // The cool right panel is the dominant key and keeps a more defined edge.\n    _vgsl_d291d894__StudioPanel(\n      vec3f(0.612, 0.354, 0.707), // direction\n      vec2f(0.5, 0.16), // size\n      0.035, // feather\n      vec3f(0.76, 0.88, 1.0), // color\n      20.0 // intensity\n    ),\n  );\n}\n\n/**\n * How much of `panel` a ray heading in `direction` sees: a rectangle projected\n * onto the sphere, feathered at its border so its edge does not alias in a\n * mirror-smooth reflection.\n */\nfn _vgsl_d291d894__studioPanelMask(direction: vec3f, panel: _vgsl_d291d894__StudioPanel) -> f32 {\n  let forward = normalize(panel.direction);\n  // Any helper axis works as long as it is not parallel to the panel's own; the\n  // overhead panels are the ones that need the fallback.\n  let helper = select(vec3f(0.0, 1.0, 0.0), vec3f(0.0, 0.0, 1.0), abs(forward.y) > 0.92);\n  let right = normalize(cross(helper, forward));\n  let up = cross(forward, right);\n  let facing = dot(direction, forward);\n  if (facing <= 0.01) {\n    return 0.0;\n  }\n  let localX = abs(dot(direction, right) / facing);\n  let localY = abs(dot(direction, up) / facing);\n  let edgeX = 1.0 - smoothstep(panel.size.x, panel.size.x + panel.feather, localX);\n  let edgeY = 1.0 - smoothstep(panel.size.y, panel.size.y + panel.feather, localY);\n  return edgeX * edgeY;\n}\n\n/** Rotates a reflection into the studio's frame. Copied from `glass-fractal`. */\n \n\n/** Radiance arriving from `direction`, in linear RGB. */\n fn _vgsl_d291d894__sampleStudioEnvironment(directionInput: vec3f) -> vec3f {\n  let direction = normalize(directionInput);\n  let floorBlend = 1.0 - smoothstep(-0.22, -0.02, direction.y);\n  var room = mix(\n    vec3f(0.00025, 0.0003, 0.0004),\n    vec3f(0.006, 0.007, 0.009),\n    floorBlend,\n  );\n\n  // The projection wall occupies the upper part of the -Z hemisphere. Keep the\n  // floor below it, but drive the wall itself essentially to black so the prism\n  // reflects the same dark surface it physically stands in front of.\n  let negativeZ = 1.0 - smoothstep(-0.08, 0.08, direction.z);\n  let aboveFloor = smoothstep(-0.28, -0.08, direction.y);\n  let backWall = negativeZ * aboveFloor;\n  room = mix(room, vec3f(0.00002), backWall);\n\n  // A restrained seam is just bright enough to preserve the floor/wall read.\n  let horizon = exp(-abs(direction.y + 0.1) * 22.0) * 0.0012;\n  var color = room + vec3f(horizon, horizon * 0.96, horizon * 0.9);\n  let panels = _vgsl_d291d894__studioPanels();\n  for (var index = 0u; index < 3u; index = index + 1u) {\n    let panel = panels[index];\n    color = color + panel.color * (_vgsl_d291d894__studioPanelMask(direction, panel) * panel.intensity);\n  }\n  // Filmic compression, then the asset's gamma-2.2 encode and the sRGB decode a\n  // sample of it performs.\n  let mapped = color / (vec3f(1.0) + color);\n  return _vgsl_03f57267__srgbToLinear3(pow(max(mapped, vec3f(0.0)), vec3f(1.0 / 2.2)));\n}\n\n// vgsl-module: /vercel/path0/apps/docs/node_modules/@vgpu/wgsl-std/src/color/index.wgsl\n\n\n \n\n fn _vgsl_03f57267__srgbToLinear(value: f32) -> f32 {\n  if (value <= 0.04045) {\n    return value / 12.92;\n  }\n  return pow((value + 0.055) / 1.055, 2.4);\n}\n\n fn _vgsl_03f57267__srgbToLinear3(value: vec3f) -> vec3f {\n  return vec3f(_vgsl_03f57267__srgbToLinear(value.r), _vgsl_03f57267__srgbToLinear(value.g), _vgsl_03f57267__srgbToLinear(value.b));\n}\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n",functionExports:[{name:"sampleDebugEnvironment",resolvedName:"_vgsl_1ad61646__sampleDebugEnvironment",parameterNames:["directionInput"]},{name:"direction_from_equirect",resolvedName:"_vgsl_b84a4467__direction_from_equirect",parameterNames:["uv"]},{name:"sampleStudioEnvironment",resolvedName:"_vgsl_d291d894__sampleStudioEnvironment",parameterNames:["directionInput"]},{name:"srgbToLinear",resolvedName:"_vgsl_03f57267__srgbToLinear",parameterNames:["value"]},{name:"srgbToLinear3",resolvedName:"_vgsl_03f57267__srgbToLinear3",parameterNames:["value"]}]},o={version:1,wgsl:"// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment-blur.wgsl\n// Copied from the environment-map/transmission environment pyramid. This runs\n// only while baking; runtime glass shading still performs one environment fetch.\n\n     \n\nstruct _vgsl_59912ce2__Blur {\n  texel: vec2f,\n  direction: vec2f,\n  radius: f32,\n  equirect_compensation: f32,\n}\n\n@group(0) @binding(0) var<uniform> blur: _vgsl_59912ce2__Blur;\n@group(0) @binding(1) var src: texture_2d<f32>;\n@group(0) @binding(2) var src_samp: sampler;\n\n@fragment\nfn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {\n  let sin_theta = max(sin(uv.y * _vgsl_b84a4467__PI), 0.15);\n  let scale = mix(1.0, 1.0 / sin_theta, blur.equirect_compensation);\n  let step = blur.direction * blur.texel * blur.radius * scale;\n\n  var offsets = array<f32, 3>(0.0, 1.3846153846, 3.2307692308);\n  var weights = array<f32, 3>(0.2270270270, 0.3162162162, 0.0702702703);\n  var sum = textureSampleLevel(src, src_samp, uv, 0.0) * weights[0];\n  for (var index = 1; index < 3; index = index + 1) {\n    sum += textureSampleLevel(\n      src,\n      src_samp,\n      uv + step * offsets[index],\n      0.0,\n    ) * weights[index];\n    sum += textureSampleLevel(\n      src,\n      src_samp,\n      uv - step * offsets[index],\n      0.0,\n    ) * weights[index];\n  }\n  return sum;\n}\n\n// vgsl-module: /vercel/path0/apps/docs/app/[lang]/(home)/components/prism-background/environment/environment-map-common.wgsl\nconst _vgsl_b84a4467__PI: f32 = 3.141592653589793;\n\n// Copied from the environment-map and transmission examples. Texture v=0 is\n// the zenith and v=1 the nadir, so the direction-to-texture Y convention stays\n// explicit and shared by every reflection/refraction path.\n \n\n \n\n/** Selects the prefiltered level matching the direction's angular footprint. */\n \n\n/**\n * One texture fetch with the examples' smooth reconstruction. `size` is level\n * zero's extent and `lod` may be fractional for trilinear mip blending.\n */\n \n",functionExports:[]},l=[1024,512],s=2*Math.PI/l[0];async function c(e,t,r){if(t.prepared)return;let a=(0,i.target)(e,{size:l,format:"rgba16float",label:`${t.texture.label}.level0`});await Promise.all([t.bake.compile(a),t.blur.compile(a)]),(0,n.frame)(e,e=>{e.pass({target:a,clear:[0,0,0,1]},e=>e.draw(t.bake))}),m(e,a,t.texture,0);for(let o=1;o<8;o++){let s=[Math.max(1,l[0]>>o),Math.max(1,l[1]>>o)],c=(0,i.target)(e,{size:s,format:"rgba16float",label:`${t.texture.label}.blur-h${o}`}),_=(0,i.target)(e,{size:s,format:"rgba16float",label:`${t.texture.label}.level${o}`}),u=[1/s[0],1/s[1]];t.blur.set({src:a,src_samp:r,blur:{texel:u,direction:[1,0],radius:1.15,equirect_compensation:1}}),(0,n.frame)(e,e=>{e.pass({target:c},e=>e.draw(t.blur))}),t.blur.set({src:c,src_samp:r,blur:{texel:u,direction:[0,1],radius:1.15,equirect_compensation:0}}),(0,n.frame)(e,e=>{e.pass({target:_},e=>e.draw(t.blur))}),m(e,_,t.texture,o),d(c),d(a),a=_}d(a),t.prepared=!0}function m(e,t,n,r){let i=e.gpu.createCommandEncoder({label:`${n.label}.copy-level${r}`});i.copyTextureToTexture({texture:t.color.gpu},{texture:n.gpu,mipLevel:r},[t.size[0],t.size[1],1]),e.gpu.queue.submit([i.finish()])}function d(e){e.destroy?.()}e.s(["ENVIRONMENT_SIZE",0,l,"ENVIRONMENT_TEXEL_ANGLE",0,s,"createEnvironmentSampler",0,function(e){return(0,r.sampler)(e,{minFilter:"linear",magFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"clamp-to-edge"})},"createEnvironmentTexture",0,function(e,n,r){let i=e.device.createTexture({kind:"2d",size:[...l],format:"rgba16float",mipLevelCount:8,usage:["texture_binding","copy_dst"],label:`${n}.texture`}),s=(0,t.effect)(e,a,{label:`${n}.bake`}),c=(0,t.effect)(e,o,{label:`${n}.blur`});return s.set({params:{debug:+!!r}}),{texture:i,bake:s,blur:c,prepared:!1}},"destroyEnvironmentTexture",0,function(e){e?.texture.destroy()},"prepareEnvironmentTexture",0,c],732602)},639811,e=>{"use strict";let t=[6,10,14,18];t.at(-1),e.s(["BLOOM_KERNEL_TAPS",0,t,"BLOOM_LEVELS",0,4,"BLOOM_LEVEL_DIVISORS",0,[2,4,8,16],"BLOOM_LEVEL_FACTORS",0,[1,.8,.55],"BLOOM_VISIBLE_LEVELS",0,3,"PARTICLE_LIGHT_FIRST_LEVEL",0,3,"bloomKernelWeights",0,function(e,t=24){let n=Math.min(t,Math.max(1,Math.floor(e))),r=n/3,i=Array.from({length:t},(e,t)=>t<n?Math.exp(-.5*t*t/(r*r)):0),a=i[0]+2*i.slice(1,n).reduce((e,t)=>
1e+t,0);return i.map(e=>e/a)},"bloomSpread",0,function(e,t,n){return Number.isFinite(e)&&n>t?Math.min(1,Math.max(0,(e-t)/(n-t))):0}])},284134,e=>{"use strict";var t=e.i(474363),n=e.i(639811);let r=(0,t.lightMeshLayout)(64,12);e.s(["LOW_DARK_BLOOM_STRENGTH",0,.15,"darkBloomLevelCountForQuality",0,function(e){return"low"===e?2:n.BLOOM_LEVELS},"darkBloomStrengthForQuality",0,function(e,t){return"low"===e?.15:t},"darkBloomVisibleLevelsForQuality",0,function(e){return"low"===e?2:n.BLOOM_VISIBLE_LEVELS},"lightMeshLayoutForQuality",0,function(e){return"low"===e?r:t.HIGH_LIGHT_MESH_LAYOUT}])},252259,e=>{"use strict";let t=+(1-Math.cbrt(.75)),n={dark:[0,0,0],light:[250/255,250/255,250/255]};function r(e){return Math.min(1,Math.max(0,e))}e.s(["heroRevealProgress",0,function(e){return{opacity:1-(1-r(e/1))**3,beamWidth:1-(1-r((e-t)/(2.5-t)))**3}},"presentationRevealUniforms",0,function(e,t=1){return{backgroundColor:n[e],revealProgress:Math.min(1,Math.max(0,t))}}])},872140,414058,e=>{"use strict";var t=e.i(126756),n=e.i(443236),r=e.i(732602),i=e.i(530284),a=e.i(474363),o=e.i(430893),l=e.i(783243),s=e.i(718315);async function c(e){let t,n=!1,r=e.map(e=>Promise.resolve(e).catch(e=>{throw n||(n=!0,t=e),e}));if(await Promise.allSettled(r),n)throw t}e.s(["settleAllOrThrow",0,c],414058);var m=e.i(921763);e.s(["createPrismRuntime",0,function(e,c,d,_={}){let u=(0,s.normalizeControls)(l.DEFAULT_PRISM_CONTROLS),h=c[0]/Math.max(1,c[1]),f=[],p=_.lightMeshLayout??a.HIGH_LIGHT_MESH_LAYOUT,g=(0,a.buildLightMesh)({light:(0,m.lampAt)(l.PRISM_DEFAULT_ARC,u.beamWidth,.5,u.beamMouseY),dispersion:u.spectralDispersion??l.PRISM_DISPERSION_PRESETS[u.dispersion],edgeFalloff:u.lightFade.edgeFalloff,wallHalfExtent:(0,m.wallExtent)(h,l.CAMERA_DISTANCE,u.cameraFov),samples:p.samples,beamSlices:p.beamSlices},void 0,f),v=e.device.createBuffer({size:a.HIGH_LIGHT_MESH_LAYOUT.vertexCount*a.LIGHT_VERTEX_STRIDE,usage:["vertex","copy_dst"],label:`${d}.light-vertices`});v.write(g.vertices);let b=(0,o.prismGeometry)(e,`${d}.prism`);return{gpu:e,label:d,outputSize:c,lightBuffer:v,lightVertexScratch:f,lightVertices:g.vertices,lightMeshLayout:p,lightGeometry:{vertexBuffers:[v.gpu],vertexBufferLayouts:[{arrayStride:a.LIGHT_VERTEX_STRIDE,attributes:[{shaderLocation:0,offset:0,format:"float32x2"},{shaderLocation:3,offset:8,format:"float32"}]}],vertexCount:p.vertexCount},prism:b,sceneSampler:(0,t.sampler)(e,{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}),environmentSampler:(0,r.createEnvironmentSampler)(e),debugEnvironmentEnabled:!0===_.debugEnvironment,controls:u,lightStats:g.stats,lampArc:l.PRISM_DEFAULT_ARC,lampTarget:.5,orbit:[0,0],aspect:h,cameraDistance:l.CAMERA_DISTANCE,framing:i.IDENTITY_PROJECTION_FRAMING,view:(0,n.cameraView)(h,0,0,l.CAMERA_DISTANCE,u.cameraFov)}},"destroyPrismRuntime",0,function(e){(0,r.destroyEnvironmentTexture)(e.studioEnvironment),e.studioEnvironment=void 0,(0,r.destroyEnvironmentTexture)(e.debugEnvironment),e.debugEnvironment=void 0,e.environmentReady=void 0,e.lightBuffer.destroy(),e.prism.destroy(),e.prismWireframe?.destroy(),e.prismWireframe=void 0},"ensurePrismWireframeGeometry",0,function(e){return e.prismWireframe??=(0,o.prismWireframeGeometry)(e.gpu,`${e.label}.prism-wireframe`),e.prismWireframe},"prepareRuntimeEnvironment",0,function(e){if(e.environmentReady)return e.environmentReady;e.studioEnvironment??=(0,r.createEnvironmentTexture)(e.gpu,`${e.label}.environment-studio`,!1);let t=[e.studioEnvironment];return e.debugEnvironmentEnabled&&(e.debugEnvironment??=(0,r.createEnvironmentTexture)(e.gpu,`${e.label}.environment-debug`,!0),t.push(e.debugEnvironment)),e.environmentReady=c(t.map(t=>(0,r.prepareEnvironmentTexture)(e.gpu,t,e.environmentSampler))),e.environmentReady}],872140)},474363,e=>{"use strict";var t=e.i(151190),n=e.i(783243);let r=3*Float32Array.BYTES_PER_ELEMENT,i=n.PRISM_MAX_INTERNAL_BOUNCES+1;function a(e=n.PRISM_SPECTRAL_SAMPLES,t=n.PRISM_BEAM_SLICES){let r=Math.max(2,Math.floor(e)),o=Math.max(1,Math.floor(t)),l=r*o*i,s=6*o,c=6*l,m=(r-1)*o*6;return Object.freeze({samples:r,beamSlices:o,whiteQuads:o,internalQuads:l,whiteVertices:s,internalFirstVertex:s,internalVertices:c,outgoingFirstVertex:s+c,outgoingVertices:m,vertexCount:s+c+m})}let o=a();o.whiteQuads,o.internalQuads,o.whiteVertices,o.internalVertices,o.internalFirstVertex,o.outgoingFirstVertex,o.outgoingVertices;let l=(e,t)=>
1[e[0]+t[0],e[1]+t[1]],s=(e,t)=>[e[0]-t[0],e[1]-t[1]],c=(e,t)=>[e[0]*t,e[1]*t],m=(e,t)=>e[0]*t[1]-e[1]*t[0],d=e=>{let t=Math.hypot(e[0],e[1])||1;return[e[0]/t,e[1]/t]};function _(e,t){let n=[-e.direction[1],e.direction[0]];return l(e.center,c(n,e.beamHalfWidth*Math.min(1,Math.max(-1,t))))}function u(e,t,n){let r=1/0;for(let i=0;i<2;i++){let a=t[i];if(!(1e-8>Math.abs(a)))for(let o of[-n[i],n[i]]){let l=(o-e[i])/a;if(l<=0||l>=r)continue;let s=1-i;Math.abs(e[s]+t[s]*l)<=n[s]+1e-6&&(r=l)}}return Number.isFinite(r)?l(e,c(t,r)):e}function h(e,t){return e.edges.length===t.edges.length&&e.edges.every((e,n)=>e===t.edges[n])}function f(e,n,r,i,a){return(0,t.tracePrismDetailed)(e,_(n,a),n.direction,(0,t.iorAt)(i,r.base,r.strength))}function p(e,t,n){e.push(t[0],t[1],n)}function g(e,t,n,r,i,a,o=a){p(e,t,a),p(e,n,a),p(e,i,o),p(e,t,a),p(e,i,o),p(e,r,o)}function v(e){g(e,[0,0],[0,0],[0,0],[0,0],-1)}function b(e){return l(e.origin,c(e.direction,1))}e.s(["HIGH_LIGHT_MESH_LAYOUT",0,o,"LIGHT_INTERNAL_SEGMENTS",0,i,"LIGHT_VERTEX_FLOATS",0,3,"LIGHT_VERTEX_STRIDE",0,r,"buildLightMesh",0,function(e,r,a){var o,E,x,M;let S,I,R=e.triangle??n.PRISM_TRIANGLE,T=Math.max(2,Math.floor(e.samples??n.PRISM_SPECTRAL_SAMPLES)),y=Math.max(1,Math.floor(e.beamSlices??n.PRISM_BEAM_SLICES)),P=e.exposure??n.PRISM_LIGHT_EXPOSURE,L=Math.max(0,e.edgeFalloff??n.DEFAULT_LIGHT_FADE_CONTROLS.edgeFalloff),A=function(e=n.PRISM_SPECTRAL_SAMPLES,t=n.PRISM_BEAM_SLICES){let r=Math.max(1,e-1);return(t+e*t*i+r*t)*6}(T,y),w=3*A;if(r&&r.length!==w)throw RangeError(`Light mesh target has ${r.length} floats; expected ${w}.`);let G=a??[];G.length=0;let N=2*e.light.beamHalfWidth,D=Array.from({length:y},(e,t)=>-1+2*(t+.5)/y),O=(I=(S=D.map(e=>{let t=Math.min(1,Math.max(0,(Math.abs(e)-.55)/.45));return Math.exp(-L*e*e)*(1-t*t*(3-2*t))})).reduce((e,t)=>e+t,0)||1,S.map(e=>e/I)),F=Array.from({length:y+1},(e,t)=>-1+2*t/y),B=F.map(n=>
1{let r,i,a=_(e.light,n),o=(0,t.intersectTriangle)(R,a,e.light.direction,1e-4),s=o&&0>(r=e.light.direction,i=o.normal,r[0]*i[0]+r[1]*i[1])?l(a,c(e.light.direction,o.t)):void 0;return{profile:n,origin:a,entry:s,wall:function(e,t,n){let r=-1/0,i=1/0;for(let a=0;a<2;a++){let o=t[a],l=e[a],s=n[a];if(1e-8>Math.abs(o)){if(Math.abs(l)>s)return;continue}let c=(-s-l)/o,m=(s-l)/o;if((r=Math.max(r,Math.min(c,m)))>(i=Math.min(i,Math.max(c,m))))return}if(Number.isFinite(r=Math.max(0,r))&&Number.isFinite(i)&&!(i<r))return[l(e,c(t,r)),l(e,c(t,i))]}(a,e.light.direction,e.wallHalfExtent)}}),C=[-e.light.direction[0],-e.light.direction[1]];for(let t=0;t<y;t++){let n=B[t],r=B[t+1];if(n.entry&&r.entry)g(G,u(n.entry,C,e.wallHalfExtent),u(r.entry,C,e.wallHalfExtent),n.entry,r.entry,0,6);else{let t=(n.profile+r.profile)*.5;!function(e,t){let n=[-t.direction[1],t.direction[0]],r=[e.a,e.b,e.c].map(e=>{let r=s(e,t.center);return[r[0]*t.direction[0]+r[1]*t.direction[1],r[0]*n[0]+r[1]*n[1]]}),i=e=>{let t=r;r=[];for(let n=0;n<t.length;n++){let i=t[n],a=t[(n+1)%t.length],o=e(i),l=e(a),s=o>=0,c=l>=0;if(s&&r.push(i),s===c)continue;let m=o/(o-l);r.push([i[0]+(a[0]-i[0])*m,i[1]+(a[1]-i[1])*m])}};return i(e=>e[0]),0!==r.length&&(i(e=>e[1]+t.beamHalfWidth),0!==r.length&&(i(e=>t.beamHalfWidth-e[1]),r.length>0))}(R,{center:_(e.light,t),direction:e.light.direction,beamHalfWidth:e.light.beamHalfWidth*(r.profile-n.profile)*.5})&&n.wall&&r.wall?g(G,n.wall[0],r.wall[0],n.wall[1],r.wall[1],6):v(G)}}let H=[],k=1/0,V=0;for(let r=0;r<T;r++){let i=n.PRISM_WAVELENGTHS.min+(n.PRISM_WAVELENGTHS.max-n.PRISM_WAVELENGTHS.min)*(r/(T-1)),a=function(e,n,r,i){let a=(0,t.iorAt)(i,r.base,r.strength),[o,c]=[_(n,-1),_(n,1)],u=(0,t.tracePrismDetailed)(e,o,n.direction,a),f=(0,t.tracePrismDetailed)(e,c,n.direction,a);if(!u||!f||!h(u,f))return;let p=d(l(u.direction,f.direction)),g=Math.abs(m(s(f.origin,u.origin),p));if(!(g<=1e-5))return{wavelength:i,lower:u,upper:f,outputWidth:g,transmission:(u.transmission+f.transmission)*.5}}(R,e.light,e.dispersion,i),o=D.map(t=>f(R,e.light,e.dispersion,i,t)),c=F.map(t=>f(R,e.light,e.dispersion,i,t));if(o.every(e=>!e)&&c.every(e=>!e)){H.push(void 0);continue}a&&(k=Math.min(k,a.outputWidth),V=Math.max(V,a.outputWidth)),H.push({wavelength:i,paths:o,boundaryPaths:c})}let z=H.map((e,t)=>D.map((n,r)=>e?function(e,t,n,r,i,a){let o=e[t],c=o?.paths[n];if(!c)return 0;let _=t-1;for(;_>=0&&!e[_]?.paths[n];)_--;let u=t+1;for(;u<e.length&&!e[u]?.paths[n];)u++;if(_<0&&(_=t),u>=e.length&&(u=t),_===u)return 0;let f=e[_].paths[n],p=e[u].paths[n];if(!h(f,p))return 0;let g=d(l(f.direction,p.direction)),v=Math.abs(m(s(b(p),b(f)),g)),E=(u-_)/(e.length-1);return r*i*a*c.transmission/Math.max(v/E,1e-4)}(H,t,r,P,N,O[r]):0)),U=H.reduce((e,n)=>{if(!n)return e;let r=(0,t.wavelengthToBeamRgb)(n.wavelength);return[e[0]+r[0],e[1]+r[1],e[2]+r[2]]},[0,0,0]),W=6/Math.max(U[0],U[1],U[2],1);for(let e of H){if(!e){for(let e=0;e<y*i;e++)v(G);continue}for(let t=0;t<y;t++){let n=e.boundaryPaths[t],r=e.boundaryPaths[t+1],a=!!(n&&r&&h(n,r)),o=a?W*(n.entryTransmission+r.entryTransmission)*.5:0;for(let e=0;e<i;e++){let t=n?.points[e],i=n?.points[e+1],l=r?.points[e],s=r?.points[e+1];a&&t&&i&&l&&s?g(G,t,l,i,s,o):v(G)}}}let Y=0;for(let t=0;t<T-1;t++){let n=H[t],r=H[t+1];for(let i=0;i<y;i++){if(!function(e,t,n){let r=e?.paths[n],i=t?.paths[n];return!!(r&&i&&h(r,i))}(n,r,i)){v(G);continue}let a=n.paths[i],l=r.paths[i],s=z[t][i],c=z[t+1][i];Y+=P*N*O[i]*(a.transmission+l.transmission)*.5/(T-1),o=a.origin,E=l.origin,x=u(a.origin,a.direction,e.wallHalfExtent),M=u(l.origin,l.direction,e.wallHalfExtent),p(G,o,s),p(G,E,c),p(G,M,c),p(G,o,s),p(G,M,c),p(G,x,s)}}let X=G.length/3;if(G.length!==w||X!==A)throw Error(`Light mesh wrote ${X} vertices; expected ${A}.`);let $=r??new Float32Array(w);$.set(G);let q=H.filter(Boolean).length;return{vertices:$,vertexCount:X,stats:{samples:T,beamSlices:y,validBands:q,rejectedTopology:T-q,minOutputWidth:Number.isFinite(k)?k:0,maxOutputWidth:V,totalFlux:Y}}},"lightMeshLayout",0,a])},151190,783243,e=>{"use strict";let t,n,r={min:.01,max:.2,step:.005},i={top:-35,bottom:75},a={beamOpacity:1,edgeFalloff:16,rainbowFalloffRate:3.8,rainbowFalloffPower:3.7},o={fov:{min:20,max:70,step:1}},l={transmission:{dark:{ior:1.645,absorption:[1,1,.54]},light:{ior:1.645,absorption:[0,0,0]}},reflection:{dark:{reflectionStrength:2.14,environmentExposure:2.3},light:{reflectionStrength:3,environmentExposure:4}}};function s(e){return Number.isFinite(e)?Math.min(r.max,Math.max(r.min,e)):.025}let c=e=>e*Math.PI/180;function m(e,t){let n=Math.cos(t),r=Math.sin(t);return[e[0]*n-e[1]*r,e[0]*r+e[1]*n]}
1let d=[0,0],_=(t=.57/Math.sqrt(3),{a:(n=e=>{let n=m([t,0],c(e+0));return[d[0]+n[0],d[1]+n[1]]})(90),b:n(210),c:n(330)});function u(e,t=.025,n=.5){let r,i=[_.a[0]-_.c[0],_.a[1]-_.c[1]],a=Math.hypot(i[0],i[1]),o=m([-i[1]/a,i[0]/a],c(-e)),l=s(t),d=Math.min(.45,l/(2*a*Math.max(.05,Math.abs(Math.cos(c(e)))))+1e-4),h=(r=Math.min(1,Math.max(0,Math.min(1-d,Math.max(d,n)))),[_.a[0]+(_.c[0]-_.a[0])*r,_.a[1]+(_.c[1]-_.a[1])*r]);return function(e,t,n=.025){let r=[t[0]-e[0],t[1]-e[1]],i=Math.hypot(r[0],r[1]);if(!Number.isFinite(i)||i<=1e-8)throw Error("A collimated light needs distinct finite center and target points.");return{center:e,direction:[r[0]/i,r[1]/i],beamHalfWidth:.5*s(n)}}([h[0]-6.5*o[0],h[1]-6.5*o[1]],h,l)}_.a[0],_.c[0],_.a[1],_.c[1],i.top,i.bottom,u(60);let h={min:400,max:700},f={...l,environmentRotation:[0,0,0]};e.s(["CAMERA_DISTANCE",0,1.25,"CAMERA_FOV_DEGREES",0,48,"CAMERA_ORBIT_DEGREES",0,3.5,"CAMERA_ORBIT_LERP",0,.08,"CAMERA_PITCH_DEGREES",0,0,"CAMERA_YAW_DEGREES",0,0,"DEFAULT_LIGHT_FADE_CONTROLS",0,a,"DEFAULT_PRISM_CONTROLS",0,{dispersion:"stylized",spectralDispersion:{base:1.2,strength:.1},view:"glass",cameraFov:48,beamWidth:.025,beamMouseY:i,lightFade:a,lightMode:{wall:{normalStrength:.6,lightmapGamma:.65,shadowContrast:6.85,shadowPivot:.9,shadowFloor:.87,highlightExposure:3.31,ambientFill:.42},caustic:{strength:1.9,coverage:.86,normalInfluence:1,normalElevation:35},output:{exposure:1,toneMapping:"aces"}},wallColor:"#000000",wireframe:!1,lightWireframe:!1,environmentDebug:!1,glass:l,postprocess:{bloomStrength:.7,bloomThreshold:.1,bloomRadius:.25}},"LAMP_AIM_LERP",0,.12,"PRISM_BACK_Z",0,.015,"PRISM_BEAM_MOUSE_Y_RANGES",0,{top:{min:-85,max:85,step:1},bottom:{min:-85,max:85,step:1}},"PRISM_BEAM_SLICES",0,24,"PRISM_BEAM_WIDTH_RANGE",0,r,"PRISM_CAMERA_RANGES",0,o,"PRISM_CENTROID",0,d,"PRISM_DEFAULT_ARC",0,.5,"PRISM_DISPERSION_LABELS",0,{stylized:"Stylized",crown:"Crown glass",flint:"Dense flint"},"PRISM_DISPERSION_ORDER",0,["stylized","crown","flint"],"PRISM_DISPERSION_PRESETS",0,{stylized:{base:1.245,strength:.06},crown:{base:1.5046,strength:.0042},flint:{base:1.664,strength:.0105}},"PRISM_FRONT_Z",0,.315,"PRISM_GLASS",0,f,"PRISM_GLASS_RANGES",0,{ior:{min:1,max:2.5,step:.001},reflectionStrength:{min:0,max:3,step:.01},absorption:{min:0,max:1,step:.005},environmentExposure:{min:0,max:4,step:.05}},"PRISM_LIGHT_EXPOSURE",0,88,"PRISM_LIGHT_FADE_RANGES",0,{beamOpacity:{min:0,max:1,step:.01},edgeFalloff:{min:0,max:16,step:.1},rainbowFalloffRate:{min:0,max:40,step:.1},rainbowFalloffPower:{min:.25,max:8,step:.05}},"PRISM_LIGHT_MODE_RANGES",0,{wall:{normalStrength:{min:0,max:3,step:.05},lightmapGamma:{min:.5,max:4,step:.05},shadowContrast:{min:.25,max:8,step:.05},shadowPivot:{min:.05,max:.95,step:.01},shadowFloor:{min:0,max:1.2,step:.01},highlightExposure:{min:.25,max:8,step:.01},ambientFill:{min:0,max:2.5,step:.01}},caustic:{strength:{min:0,max:4,step:.01},coverage:{min:0,max:1,step:.01},normalInfluence:{min:0,max:1,step:.01},normalElevation:{min:5,max:85,step:1}},output:{exposure:{min:.25,max:2,step:.01}}},"PRISM_LIGHT_PLANE_Z",0,.165,"PRISM_LIGHT_TONE_MAPPING_CODES",0,{aces:0,neutral:1,reinhard:2,clamp:3},"PRISM_LIGHT_TONE_MAPPING_LABELS",0,{aces:"ACES",neutral:"Neutral",reinhard:"Reinhard",clamp:"Clamp (none)"},"PRISM_LIGHT_TONE_MAPPING_ORDER",0,["aces","neutral","reinhard","clamp"],"PRISM_MAX_INTERNAL_BOUNCES",0,3,"PRISM_MOUSE_Y_MIDPOINT_INCIDENCE_DEGREES",0,60,"PRISM_POSTPROCESS_RANGES",0,{bloomStrength:{min:0,max:3,step:.05},bloomThreshold:{min:0,max:4,step:.05},bloomRadius:{min:.25,max:3,step:.05}},"PRISM_SIDE",0,.57,"PRISM_SPECTRAL_DISPERSION_RANGES",0,{base:{min:1.2,max:2.1,step:.001},strength:{min:0,max:.2,step:5e-4}},"PRISM_SPECTRAL_SAMPLES",0,128,"PRISM_TRIANGLE",0,_,"PRISM_WAVELENGTHS",0,h,"clampBeamWidth",0,s,"clampCameraFov",0,function(e){return Number.isFinite(e)?Math.min(o.fov.max,Math.max(o.fov.min,e)):48},"lampForIncidence",0,u],783243);let p=(e,t)=>[e[0]+t[0],e[1]+t[1]],g=(e,t)=>[e[0]-t[0],e[1]-t[1]],v=(e,t)=>[e[0]*t,e[1]*t],b=(e,t)=>e[0]*t[0]+e[1]*t[1],E=e=>v(e,1/Math.hypot(e[0],e[1])),x=(e,t)=>e[0]*t[1]-e[1]*t[0];function M(e,t,n,r){let i,a=[e.a,e.b,e.c];for(let e=0;e<3;e++){let o=a[e],l=g(a[(e+1)%3],o),s=x(n,l);if(0===s)continue;let c=g(o,t),m=x(c,l)/s,d=x(c,n)/s;
1m<=r||d<0||d>1||i&&i.t<=m||(i={t:m,normal:E([l[1],-l[0]]),edge:e})}return i}function S(e,t,n){let r=-b(e,t),i=n*n*(1-r*r);if(i>1)return;let a=Math.sqrt(1-i);return p(v(e,n),v(t,n*r-a))}function I(e,t,n,r){let i=Math.min(1,Math.max(0,-b(e,t))),a=n/r,o=a*a*(1-i*i);if(o>=1)return 0;let l=Math.sqrt(1-o);return 1-.5*(((n*i-r*l)/(n*i+r*l))**2+((n*l-r*i)/(n*l+r*i))**2)}let R=[82.7549,91.486,93.4318,86.6823,104.865,117.008,117.812,114.861,115.923,108.811,109.354,107.802,104.79,107.689,104.405,104.046,100,96.3342,95.788,88.6856,90.0062,89.5991,87.6987,83.2886,83.6992,80.0268,80.2146,82.2778,78.2842,69.7213,71.6091];e.s(["intersectTriangle",0,M,"iorAt",0,function(e,t,n){let r=.001*e;return t+n/(r*r)},"tracePrismDetailed",0,function(e,t,n,r,i=3){let a=M(e,t,n,1e-4);if(!a||b(n,a.normal)>=0)return;let o=p(t,v(n,a.t)),l=S(n,a.normal,1/r);if(!l)return;let s=[o],c=[a.edge],m=I(n,a.normal,1,r),d=m;for(let t=0;t<=i;t++){var _,u;let n=M(e,o,l,1e-4);if(!n)break;o=p(o,v(l,n.t)),s.push(o),c.push(n.edge);let i=S(l,v(n.normal,-1),r);if(i)return d*=I(l,v(n.normal,-1),r,1),{origin:o,direction:E(i),bounces:t,points:s,edges:c,transmission:d,entryTransmission:m};l=g(_=l,v(u=n.normal,2*b(_,u)))}},"wavelengthToBeamRgb",0,function(e){let t,n,r,i,a,o,l,s,c,m,d=Math.min(h.max,Math.max(h.min,e)),_=.362*Math.exp(-.5*(t=(d-442)*(d<442?.0624:.0374))*t)+1.056*Math.exp(-.5*(n=(d-599.8)*(d<599.8?.0264:.0323))*n)-.065*Math.exp(-.5*(r=(d-501.1)*(d<501.1?.049:.0382))*r),u=.821*Math.exp(-.5*(i=(d-568.8)*(d<568.8?.0213:.0247))*i)+.286*Math.exp(-.5*(a=(d-530.9)*(d<530.9?.0613:.0322))*a),f=1.217*Math.exp(-.5*(o=(d-437)*(d<437?.0845:.0278))*o)+.681*Math.exp(-.5*(l=(d-459)*(d<459?.0385:.0725))*l),p=[3.2406*_-1.5372*u-.4986*f,-.9689*_+1.8758*u+.0415*f,.0557*_-.204*u+1.057*f],g=Math.min(0,...p),v=[p[0]-g,p[1]-g,p[2]-g],b=Math.max(...v,Number.EPSILON),E=(1-Math.exp(-4.5*(s=Math.min(R.length-1,Math.max(0,(d-h.min)/10)),c=Math.min(R.length-2,Math.floor(s)),m=s-c,(R[c]*(1-m)+R[c+1]*m)/100*u/1.0347)))/(1-Math.exp(-4.5));return[v[0]/b*E*1.1868,v[1]/b*E*1,v[2]/b*E*2.2495]}],151190)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.