shaderkit 0.1.13 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,6 +6,41 @@
6
6
 
7
7
  Tools and IntelliSense for GLSL and WGSL.
8
8
 
9
+ ## Table of Contents
10
+
11
+ - [Installation](#installation)
12
+ - [Tokenize](#tokenize)
13
+ - [Minify](#minify)
14
+ - [Parse](#parse)
15
+ - [Generate](#generate)
16
+ - [AST](#ast)
17
+ - [Literal](#literal)
18
+ - [Identifier](#identifier)
19
+ - [Type](#type)
20
+ - [VariableDeclaration](#variabledeclaration)
21
+ - [VariableDeclarator](#variabledeclarator)
22
+ - [StructDeclaration](#structdeclaration)
23
+ - [FunctionDeclaration](#functiondeclaration)
24
+ - [UnaryExpression](#unaryexpression)
25
+ - [BinaryExpression](#binaryexpression)
26
+ - [TernaryExpression](#ternaryexpression)
27
+ - [CallExpression](#callexpression)
28
+ - [MemberExpression](#memberexpression)
29
+ - [ArrayExpression](#arrayexpression)
30
+ - [BlockStatement](#blockstatement)
31
+ - [IfStatement](#ifstatement)
32
+ - [ForStatement](#forstatement)
33
+ - [WhileStatement](#whilestatement)
34
+ - [DoWhileStatement](#dowhilestatement)
35
+ - [SwitchStatement](#switchstatement)
36
+ - [SwitchCase](#switchcase)
37
+ - [ReturnStatement](#returnstatement)
38
+ - [PreprocessorStatement](#preprocessorstatement)
39
+ - [PrecisionStatement](#precisionstatement)
40
+ - [ContinueStatement](#continuestatement)
41
+ - [BreakStatement](#breakstatement)
42
+ - [DiscardStatement](#discardstatement)
43
+
9
44
  ## Installation
10
45
 
11
46
  To install, use your preferred package manager:
@@ -28,6 +63,13 @@ Or, use a CDN:
28
63
 
29
64
  Tokenizes a string of GLSL or WGSL code, returning an array of `Token` objects, where each `Token` object represents a single syntax feature in the input code.
30
65
 
66
+ ```ts
67
+ interface Token {
68
+ type: 'whitespace' | 'comment' | 'symbol' | 'bool' | 'float' | 'int' | 'identifier' | 'keyword'
69
+ value: string
70
+ }
71
+ ```
72
+
31
73
  <details>
32
74
  <summary>GLSL Example</summary>
33
75
 
@@ -175,11 +217,318 @@ const minified: string = minify(code: string, {
175
217
  To shared mangled interfaces when using `mangleExternal`, declare and re-use a `mangleMap` between shaders:
176
218
 
177
219
  ```ts
178
- const programOpts = { mangle: true, mangleExternals: true, mangleMap: new Map() }
220
+ const options = { mangle: true, mangleExternals: true, mangleMap: new Map() }
179
221
 
180
222
  // #version 300 es\nin vec2 a;out vec2 b;void main(){b=a;}
181
- minify(`#version 300 es\nin vec2 sstt;out vec2 c;void main(){c=sstt;}`, programOpts)
223
+ minify(`#version 300 es\nin vec2 sstt;out vec2 c;void main(){c=sstt;}`, options)
182
224
 
183
225
  // #version 300 es\nin vec2 b;out vec4 a[gl_MaxDrawBuffers];void main(){a[0]=b.sstt;}
184
- minify(`#version 300 es\nin vec2 c;out vec4 data[gl_MaxDrawBuffers];void main(){data[0]=c.sstt;}`, programOpts)
226
+ minify(`#version 300 es\nin vec2 c;out vec4 data[gl_MaxDrawBuffers];void main(){data[0]=c.sstt;}`, options)
227
+ ```
228
+
229
+ ## Parse
230
+
231
+ Parses a string of GLSL (WGSL is WIP) code into an [AST](#ast).
232
+
233
+ ```ts
234
+ const ast: AST[] = parse(code: string)
235
+ ```
236
+
237
+ ## Generate
238
+
239
+ Generates a string of GLSL (WGSL is WIP) code from an [AST](#ast).
240
+
241
+ ```ts
242
+ const code: string = generate(ast: AST[], {
243
+ target: 'GLSL' // | 'WGSL'
244
+ })
245
+ ```
246
+
247
+ ## AST
248
+
249
+ An [Abstract Syntax Tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree) loosely based on [ESTree](https://github.com/estree/estree) for GLSL and WGSL grammars.
250
+
251
+ ### Literal
252
+
253
+ A shader literal representing a `bool`, `float`, `int`, or `uint` type.
254
+
255
+ ```ts
256
+ class Literal {
257
+ value: string
258
+ }
259
+ ```
260
+
261
+ ### Identifier
262
+
263
+ A variable identifier.
264
+
265
+ ```ts
266
+ class Identifier {
267
+ value: string
268
+ }
269
+ ```
270
+
271
+ ### Type
272
+
273
+ Represents a type specifier and its parameters (WGSL specific).
274
+
275
+ ```ts
276
+ class Type {
277
+ name: string
278
+ parameters: (Type | Literal | Identifier)[] | null
279
+ }
280
+ ```
281
+
282
+ ### VariableDeclaration
283
+
284
+ A variable declaration with an optional binding layout, type qualifiers, kind (WGSL only), and declarators (e.g. a comma-separated list).
285
+
286
+ ```ts
287
+ class VariableDeclaration {
288
+ layout: Record<string, string | boolean> | null
289
+ qualifiers: string[]
290
+ kind: 'var' | 'let' | 'const' | null
291
+ type: Type | Identifier
292
+ declarations: VariableDeclarator[]
293
+ }
294
+ ```
295
+
296
+ #### VariableDeclarator
297
+
298
+ A single named declarator as part of a `VariableDeclaration`.
299
+
300
+ ```ts
301
+ class VariableDeclarator {
302
+ name: string
303
+ value: AST | null
304
+ }
305
+ ```
306
+
307
+ ### StructDeclaration
308
+
309
+ A struct declaration. Can be used as a type or constructor.
310
+
311
+ ```ts
312
+ class StructDeclaration {
313
+ name: string
314
+ members: VariableDeclaration[]
315
+ }
316
+ ```
317
+
318
+ ### FunctionDeclaration
319
+
320
+ A function declaration with an optional type qualifier and arguments.
321
+
322
+ ```ts
323
+ class FunctionDeclaration {
324
+ name: string
325
+ type: Type | Identifier
326
+ qualifiers: string[]
327
+ args: VariableDeclaration[]
328
+ body: BlockStatement | null
329
+ }
330
+ ```
331
+
332
+ ### UnaryExpression
333
+
334
+ A unary expression with a left or right handed operator.
335
+
336
+ ```ts
337
+ class UnaryExpression {
338
+ operator: string
339
+ left: AST | null
340
+ right: AST | null
341
+ }
342
+ ```
343
+
344
+ ### BinaryExpression
345
+
346
+ A binary expression with a left and right operand.
347
+
348
+ ```ts
349
+ class BinaryExpression {
350
+ operator: string
351
+ left: AST
352
+ right: AST
353
+ }
354
+ ```
355
+
356
+ ### TernaryExpression
357
+
358
+ A ternary or conditional expression.
359
+
360
+ ```ts
361
+ class TernaryExpression {
362
+ test: AST
363
+ consequent: AST
364
+ alternate: AST
365
+ }
366
+ ```
367
+
368
+ ### CallExpression
369
+
370
+ A call expression.
371
+
372
+ ```ts
373
+ class CallExpression {
374
+ callee: AST
375
+ args: AST[]
376
+ }
377
+ ```
378
+
379
+ ### MemberExpression
380
+
381
+ A member expression.
382
+
383
+ ```ts
384
+ class MemberExpression {
385
+ object: AST
386
+ property: AST
387
+ }
388
+ ```
389
+
390
+ ### ArrayExpression
391
+
392
+ An array expression. `members` can be empty if uninitialized.
393
+
394
+ ```ts
395
+ class ArrayExpression {
396
+ type: Type
397
+ members: AST[]
398
+ }
399
+ ```
400
+
401
+ ### BlockStatement
402
+
403
+ A block statement.
404
+
405
+ ```ts
406
+ class BlockStatement {
407
+ body: AST[]
408
+ }
409
+ ```
410
+
411
+ ### IfStatement
412
+
413
+ An if statement.
414
+
415
+ ```ts
416
+ class IfStatement {
417
+ test: AST
418
+ consequent: AST
419
+ alternate: AST | null
420
+ }
421
+ ```
422
+
423
+ ### ForStatement
424
+
425
+ A for statement.
426
+
427
+ ```ts
428
+ class ForStatement {
429
+ init: AST | null
430
+ test: AST | null
431
+ update: AST | null
432
+ body: AST
433
+ }
434
+ ```
435
+
436
+ ### WhileStatement
437
+
438
+ A while statement.
439
+
440
+ ```ts
441
+ class WhileStatement {
442
+ test: AST
443
+ body: AST
444
+ }
445
+ ```
446
+
447
+ ### DoWhileStatement
448
+
449
+ A do-while statement.
450
+
451
+ ```ts
452
+ class DoWhileStatement {
453
+ test: AST
454
+ body: AST
455
+ }
456
+ ```
457
+
458
+ ### SwitchStatement
459
+
460
+ A switch statement.
461
+
462
+ ```ts
463
+ class SwitchStatement {
464
+ discriminant: AST
465
+ cases: SwitchCase[]
466
+ }
467
+ ```
468
+
469
+ #### SwitchCase
470
+
471
+ A switch-case statement. `test` is null for a `default` case.
472
+
473
+ ```ts
474
+ class SwitchCase {
475
+ test: AST | null
476
+ consequent: AST[]
477
+ }
478
+ ```
479
+
480
+ ### ReturnStatement
481
+
482
+ A return statement with an optional argument.
483
+
484
+ ```ts
485
+ class ReturnStatement {
486
+ argument: Literal | Identifier | UnaryExpression | null
487
+ }
488
+ ```
489
+
490
+ ### PreprocessorStatement
491
+
492
+ A GLSL preprocessor statement with an optional value.
493
+
494
+ ```ts
495
+ class PreprocessorStatement {
496
+ name: string
497
+ value: AST[] | null
498
+ }
499
+ ```
500
+
501
+ ### PrecisionStatement
502
+
503
+ A GLSL precision statement.
504
+
505
+ ```ts
506
+ class PrecisionStatement {
507
+ precision: 'lowp' | 'mediump' | 'highp'
508
+ type: Type
509
+ }
510
+ ```
511
+
512
+ ### ContinueStatement
513
+
514
+ A continue statement.
515
+
516
+ ```ts
517
+ class ContinueStatement {}
518
+ ```
519
+
520
+ ### BreakStatement
521
+
522
+ A break statement.
523
+
524
+ ```ts
525
+ class BreakStatement {}
526
+ ```
527
+
528
+ ### DiscardStatement
529
+
530
+ A discard statement.
531
+
532
+ ```ts
533
+ class DiscardStatement {}
185
534
  ```
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const K=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],Z=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],X=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],J=[...X,"#","\\"],Q=[...X,"->","@"],ae=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/),V=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),re=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),ie=RegExp.prototype.test.bind(/^(true|false)$/),oe=48,se=57,ne=65,le=90,ue=10,ce=13,me=9,pe=32,fe=95,U=47,q=42,ge=35,de=64,ee=e=>oe<=e&&e<=se,xe=e=>(e&=-33,ne<=e&&e<=le),he=e=>e===ue||e===ce,Y=e=>he(e)||e===me||e===pe,N=e=>xe(e)||ee(e)||e===fe,_e=e=>e===ge||e===de;function te(e,o=0){const i=[];let p=-1;const[d,f]=ae(e)?[K,Q]:[Z,J];for(;o<e.length;){let a=e[o];const s=e.charCodeAt(o++);if(Y(s)){for(;Y(e.charCodeAt(o));)a+=e[o++];i.push({type:"whitespace",value:a})}else if(ee(s)){for(;V(a+e[o])||re(a+e[o]);)a+=e[o++];V(a)?i.push({type:"float",value:a}):i.push({type:"int",value:a})}else if(N(s)){for(;N(e.charCodeAt(o));)a+=e[o++];ie(a)?i.push({type:"bool",value:a}):d.includes(_e(p)?String.fromCharCode(p)+a:a)?i.push({type:"keyword",value:a}):i.push({type:"identifier",value:a})}else if(s===U&&(e.charCodeAt(o)===U||e.charCodeAt(o)===q)){const u=e.charCodeAt(o)===q?"*/":`
2
- `;for(;!a.endsWith(u);)a+=e[o++];i.push({type:"comment",value:a})}else{for(const u of f)u.length>a.length&&e.startsWith(u,o-1)&&(a=u);o+=a.length-1,i.push({type:"symbol",value:a})}p=s}return i}const j=RegExp.prototype.test.bind(/^\w/),ve=RegExp.prototype.test.bind(/[^\w\\]/),H=RegExp.prototype.test.bind(/^[_A-Za-z]/),ye=RegExp.prototype.test.bind(/[;{}\\@]/),$=RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/);function be(e,{mangle:o=!1,mangleMap:i=new Map,mangleExternals:p=!1}={}){var d,f,a,s,u,h,_,y,b,D,w,S,k,C,L,A,M,E,B,R,O,F;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const T=new Map,r=te(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment");let P=-1,I=-1,g=-1,m="";for(let t=0;t<r.length;t++){const n=r[t];($(n.value)||ye((d=r[t-1])==null?void 0:d.value))&&(I=t),n.value==="{"&&H((f=r[t-1])==null?void 0:f.value)?g=t-1:n.value==="}"&&(g=-1),j(n.value)&&j((a=r[t-1])==null?void 0:a.value)&&(m+=" "),ve(n.value)&&(((s=r[t-2])==null?void 0:s.value)==="#"&&((u=r[t-1])==null?void 0:u.value)==="include"||((h=r[t-3])==null?void 0:h.value)==="#"&&((_=r[t-2])==null?void 0:_.value)==="define")&&(m+=" ");let c=n.value;if(((y=r[t-1])==null?void 0:y.value)==="."&&(c=`${(b=r[t-2])==null?void 0:b.value}.`+c),n.type==="identifier"&&c!=="main"&&(typeof o=="boolean"?o:o(n,t,r))){const G=((D=r[t-1])==null?void 0:D.value)==="}"&&((w=r[t+1])==null?void 0:w.value)===";",v=$((S=r[I])==null?void 0:S.value),z=v&&((k=r[t-1])==null?void 0:k.value)===",";let l=(C=i.get(c))!=null?C:T.get(c);if(!l&&g===-1&&(H((L=r[t-1])==null?void 0:L.value)||G||z||((A=r[t-1])==null?void 0:A.type)==="symbol"&&((M=r[t+1])==null?void 0:M.value)===":")&&(p||!v)){const W=p&&v||((E=r[t-2])==null?void 0:E.value)==="#"||G||z||((B=r[t-1])==null?void 0:B.value)==="fn"&&(((R=r[t-2])==null?void 0:R.value)===")"||((O=r[t-3])==null?void 0:O.value)==="@")?i:T;for(;!l||W.has(l);){l="",P++;let x=P;for(;x>0;)l=String.fromCharCode(97+(x-1)%26)+l,x=Math.floor(x/26)}W.set(c,l)}m+=l!=null?l:n.value}else n.value==="#"&&((F=r[t-1])==null?void 0:F.value)!=="\\"?m+=`
3
- #`:n.value==="\\"?m+=`
4
- `:m+=n.value}return m.trim()}exports.GLSL_KEYWORDS=Z,exports.GLSL_SYMBOLS=J,exports.WGSL_KEYWORDS=K,exports.WGSL_SYMBOLS=Q,exports.minify=be,exports.tokenize=te;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class fe{constructor(t){this.value=t}}class A{constructor(t){this.value=t}}class D{constructor(t,r){this.name=t,this.parameters=r}}class F{constructor(t,r){this.name=t,this.value=r}}class P{constructor(t,r,n,s,u){this.layout=t,this.qualifiers=r,this.kind=n,this.type=s,this.declarations=u}}class he{constructor(t,r){this.name=t,this.members=r}}class ge{constructor(t,r,n,s,u){this.name=t,this.type=r,this.qualifiers=n,this.args=s,this.body=u}}class O{constructor(t,r,n){this.operator=t,this.left=r,this.right=n}}class M{constructor(t,r,n){this.operator=t,this.left=r,this.right=n}}class de{constructor(t,r,n){this.test=t,this.consequent=r,this.alternate=n}}class ve{constructor(t,r){this.callee=t,this.args=r}}class xe{constructor(t,r){this.object=t,this.property=r}}class C{constructor(t,r){this.type=t,this.members=r}}class we{constructor(t){this.body=t}}class _e{constructor(t,r,n){this.test=t,this.consequent=r,this.alternate=n}}class ye{constructor(t,r,n,s){this.init=t,this.test=r,this.update=n,this.body=s}}class Se{constructor(t,r){this.test=t,this.body=r}}class be{constructor(t,r){this.test=t,this.body=r}}class T{constructor(t,r){this.test=t,this.consequent=r}}class De{constructor(t,r){this.discriminant=t,this.cases=r}}class Ee{constructor(t){this.argument=t}}class ke{constructor(t,r){this.name=t,this.value=r}}class Re{constructor(t,r){this.precision=t,this.type=r}}class Le{}class Ae{}class Be{}const Ce=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],Ie=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],Oe=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],Me=[...Oe,"#","\\"],Te=[...Oe,"->","@"],We=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let|const)\s+\w+\s*[:=]/),ae=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),Ue=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),je=RegExp.prototype.test.bind(/^(true|false)$/),$e=48,Ye=57,ze=65,Ne=90,He=10,Xe=13,Ke=9,Ze=32,Qe=95,re=47,ie=42,Je=35,et=64,Fe=e=>$e<=e&&e<=Ye,tt=e=>(e&=-33,ze<=e&&e<=Ne),nt=e=>e===He||e===Xe,oe=e=>nt(e)||e===Ke||e===Ze,le=e=>tt(e)||Fe(e)||e===Qe,st=e=>e===Je||e===et;function q(e,t=0){const r=[];let n=-1;const[s,u]=We(e)?[Ce,Te]:[Ie,Me];for(;t<e.length;){let o=e[t];const i=e.charCodeAt(t++);if(oe(i)){for(;oe(e.charCodeAt(t));)o+=e[t++];r.push({type:"whitespace",value:o})}else if(Fe(i)){for(;ae(o+e[t])||Ue(o+e[t]);)o+=e[t++];ae(o)?r.push({type:"float",value:o}):r.push({type:"int",value:o})}else if(le(i)){for(;le(e.charCodeAt(t));)o+=e[t++];je(o)?r.push({type:"bool",value:o}):s.includes(st(n)?String.fromCharCode(n)+o:o)?r.push({type:"keyword",value:o}):r.push({type:"identifier",value:o})}else if(i===re&&(e.charCodeAt(t)===re||e.charCodeAt(t)===ie)){const l=e.charCodeAt(t)===ie?"*/":`
2
+ `;for(;!o.endsWith(l);)o+=e[t++];r.push({type:"comment",value:o})}else{for(const l of u)l.length>o.length&&e.startsWith(l,t-1)&&(o=l);t+=o.length-1,r.push({type:"symbol",value:o})}n=i}return r}const ce=RegExp.prototype.test.bind(/^\w/),at=RegExp.prototype.test.bind(/[^\w\\]/),ue=RegExp.prototype.test.bind(/^[_A-Za-z]/),rt=RegExp.prototype.test.bind(/[;{}\\@]/),pe=RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/);function it(e,{mangle:t=!1,mangleMap:r=new Map,mangleExternals:n=!1}={}){var s,u,o,i,l,d,h,m,x,w,g,S,I,U,j,W,N,H,Y,Z,K,X;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const J=new Map,v=q(e).filter(p=>p.type!=="whitespace"&&p.type!=="comment");let Q=-1,ee=-1,$=-1,L="";for(let p=0;p<v.length;p++){const b=v[p];(pe(b.value)||rt((s=v[p-1])==null?void 0:s.value))&&(ee=p),b.value==="{"&&ue((u=v[p-1])==null?void 0:u.value)?$=p-1:b.value==="}"&&($=-1),ce(b.value)&&ce((o=v[p-1])==null?void 0:o.value)&&(L+=" "),at(b.value)&&(((i=v[p-2])==null?void 0:i.value)==="#"&&((l=v[p-1])==null?void 0:l.value)==="include"||((d=v[p-3])==null?void 0:d.value)==="#"&&((h=v[p-2])==null?void 0:h.value)==="define")&&(L+=" ");let R=b.value;if(((m=v[p-1])==null?void 0:m.value)==="."&&(R=`${(x=v[p-2])==null?void 0:x.value}.`+R),b.type==="identifier"&&R!=="main"&&(typeof t=="boolean"?t:t(b,p,v))){const te=((w=v[p-1])==null?void 0:w.value)==="}"&&((g=v[p+1])==null?void 0:g.value)===";",z=pe((S=v[ee])==null?void 0:S.value),ne=z&&((I=v[p-1])==null?void 0:I.value)===",";let E=(U=r.get(R))!=null?U:J.get(R);if(!E&&$===-1&&(ue((j=v[p-1])==null?void 0:j.value)||te||ne||((W=v[p-1])==null?void 0:W.type)==="symbol"&&((N=v[p+1])==null?void 0:N.value)===":")&&(n||!z)){const se=n&&z||((H=v[p-2])==null?void 0:H.value)==="#"||te||ne||((Y=v[p-1])==null?void 0:Y.value)==="fn"&&(((Z=v[p-2])==null?void 0:Z.value)===")"||((K=v[p-3])==null?void 0:K.value)==="@")?r:J;for(;!E||se.has(E);){E="",Q++;let V=Q;for(;V>0;)E=String.fromCharCode(97+(V-1)%26)+E,V=Math.floor(V/26)}se.set(R,E)}L+=E!=null?E:b.value}else b.value==="#"&&((X=v[p-1])==null?void 0:X.value)!=="\\"?L+=`
3
+ #`:b.value==="\\"?L+=`
4
+ `:L+=b.value}return L.trim()}const me=["+","-","~","!","++","--"],ot=[">>=","<<=","|=","&=","^=","%=","/=","*=","-=","+=","=","?","||","^^","&&","|","^","&","!=","==",">=","<=",">","<",">>","<<","+","-","%","/","*"],lt=/^(void|bool|float|u?int|[uib]?vec\d|mat\d(x\d)?)$/,Pe=/^(const|uniform|in|out|inout|centroid|flat|smooth|invariant|lowp|mediump|highp)$/,ct=new RegExp(`${lt.source}|${Pe.source}|layout`),ut=RegExp.prototype.test.bind(ct),pt=RegExp.prototype.test.bind(/^[\(\[\{]$/),mt=RegExp.prototype.test.bind(/^[\)\]\}]$/);function G(e){return pt(e.value)?1:mt(e.value)?-1:0}let f=[],a=0;function _(e,t,r=0){const n=[];let s=0;for(;r<t.length;){const u=t[r++];if(n.push(u),s+=G(u),s===0&&u.value===e)break}return n}function y(e){const t=_(e,f,a);return a+=t.length,t}function c(e){var t,r,n;if(e.length===0)return null;const s=e[0],u=e[e.length-1];if(me.includes(s.value)){const i=c(e.slice(1));return new O(s.value,null,i)}else if(me.includes(u.value)){const i=c(e.slice(0,e.length-1));return new O(u.value,i,null)}if(s.value==="("){const i=_(")",e),l=c(i.slice(1,i.length-1)),d=e[i.length];if(d){const h=e.slice(i.length+1),m=c(h);return new M(d.value,l,m)}return l}let o=0;for(const i of ot)for(let l=0;l<e.length;l++){const d=e[l];if(d.type==="symbol"){if(o+=G(d),o===0&&d.value===i)if(i==="?"){const h=e.slice(0,l),m=_(":",e,l+1).slice(0,-1),x=e.slice(l+m.length+2),w=c(h),g=c(m),S=c(x);return new de(w,g,S)}else{const h=c(e.slice(0,l)),m=c(e.slice(l+1,e.length));return new M(i,h,m)}if(o<0)return c(e.slice(0,l))}}if(s.type==="bool"||s.type==="int"||s.type==="float")return new fe(s.value);if(s.type==="identifier"||s.type==="keyword"){const i=e[1];if(i){if(i.value==="("){const l=new A(s.value),d=[],h=_(")",e,1).slice(1,-1);let m=0;for(;m<h.length;){const g=_(",",h,m);m+=g.length,((t=g[g.length-1])==null?void 0:t.value)===","&&g.pop();const S=c(g);S&&d.push(S)}const x=new ve(l,d);let w=3+m;if(((r=e[w])==null?void 0:r.value)==="."){const g=c([s,...e.slice(w)]);return g.object=x,g}return x}else if(i.value==="."){const l=new A(s.value),d=c([e[2]]),h=new xe(l,d);if(((n=e[3])==null?void 0:n.value)==="("&&u.value===")"){const m=c(e.slice(2));return m.callee=h,m}return h}else if(i.value==="["){let l=2;const d=new D(s.value,[]);e[l].value!=="]"&&d.parameters.push(c([e[l++]])),l++;const h=_(")",e,l).slice(1,-1),m=[];let x=0;for(;x<h.length;){const w=_(",",h,x);x+=w.length,w[w.length-1].value===","&&w.pop(),m.push(c(w))}return new C(d,m)}}else return new A(s.value)}return null}function qe(e=[],t=null){a--;const r=null,n=new D(f[a++].value,null),s=[],u=y(";");let o=0;for(;o<u.length;){const i=u[o++].value;let l=null;u[o].value==="["&&(o++,l=new C(new D(n.name,[c([u[o++]])]),[]),o++);let d=null;const h=u[o++];if((h==null?void 0:h.value)==="="){const m=_(",",u,o);o+=m.length,d=c(m.slice(0,-1))}s.push(new F(i,d!=null?d:l))}return new P(t,e,r,n,s)}function ft(e){var t,r,n;a--;const s=new D(f[a++].value,null),u=f[a++].value,o=[],i=y(")").slice(1,-1);let l=0;for(;l<i.length;){const h=[];for(;i[l]&&i[l].type!=="identifier";)h.push(i[l++].value);const m=new D(h.pop(),null),x=_(",",i,l);l+=x.length;const w=x.shift().value;let g=null;((t=x[0])==null?void 0:t.value)==="["&&(x.shift(),g=new C(new D(m.name,[c([x.shift()])]),[]),x.shift()),((r=x[x.length-1])==null?void 0:r.value)===","&&x.pop();const S=(n=c(x))!=null?n:g,I=[new F(w,S)];o.push(new P(null,h,null,m,I))}let d=null;return f[a].value===";"?a++:d=k(),new ge(u,s,e,o,d)}function Ge(){var e;a--;let t=null;if(f[a].value==="layout"){a++,t={};let n=null;for(;f[a]&&f[a].value!==")";){const s=f[a++];s.value===","&&(n=null),s.type!=="symbol"&&(n?t[n]=s.value:(n=s.value,t[n]=!0))}a++}const r=[];for(;f[a]&&Pe.test(f[a].value);)r.push(f[a++].value);return a++,((e=f[a+1])==null?void 0:e.value)==="("?ft(r):qe(r,t)}function ht(){const e=f[a++].value;a++;const t=[];for(;f[a]&&f[a].value!=="}";)a++,t.push(Ge());return a++,a++,new he(e,t)}function gt(){const e=y(";");e.pop();const t=c(e);return new Ee(t)}function Ve(){const e=c(y(")")),t=k();let r=null;return f[a].value==="else"&&(a++,f[a].value==="if"?(a++,r=Ve()):r=k()),new _e(e,t,r)}function dt(){const e=c(y(")")),t=k();return new Se(e,t)}function vt(){const e=a+(_(")",f,a).length-1);a++,a++;const t=qe(),r=c(y(";").slice(0,-1)),n=c(f.slice(a,e));a=e,a++;const s=k();return new ye(t,r,n,s)}function xt(){const e=k();a++;const t=c(y(")"));return a++,new be(t,e)}function wt(){const e=c(y(")")),t=a+_("}",f,a).length-1,r=[];for(;a<t;){const n=f[a++];if(n.value==="case"){const s=c(y(":").slice(0,-1)),u=B();r.push(new T(s,u))}else if(n.value==="default"){a++;const s=B();r.push(new T(null,s))}}return new De(e,r)}function _t(){const e=f[a++].value,t=new D(f[a++].value,null);return a++,new Re(e,t)}function yt(){const e=f[a++].value,t=y("\\").slice(0,-1);let r=null;if(e!=="else"&&e!=="endif")if(r=[],e==="define"){const n=c([t.shift()]),s=c(t);r.push(n,s)}else if(e==="extension"){const n=c([t.shift()]);t.shift();const s=c(t);r.push(n,s)}else e==="include"?r.push(c(t.slice(1,-1))):r.push(c(t));return new ke(e,r)}function B(){const e=[];let t=0;for(;a<f.length;){const r=f[a++];if(t+=G(r),t<0)break;let n=null;if(r.value==="#")n=yt();else if(r.type==="keyword")if(r.value==="case"||r.value==="default"){a--;break}else r.value==="struct"?n=ht():r.value==="continue"?(n=new Le,a++):r.value==="break"?(n=new Ae,a++):r.value==="discard"?(n=new Be,a++):r.value==="return"?n=gt():r.value==="if"?n=Ve():r.value==="while"?n=dt():r.value==="for"?n=vt():r.value==="do"?n=xt():r.value==="switch"?n=wt():r.value==="precision"?n=_t():ut(r.value)&&f[a].value!=="["&&(n=Ge());if(n)e.push(n);else{const s=[r,...y(";")];s[s.length-1].value===";"&&s.pop();const u=c(s);u&&e.push(u)}}return e}function k(){a++;const e=B();return new we(e)}const St=/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm;function bt(e){return e=e.replace("#version 300 es",""),e=e.replace(St,"$1\\$2"),f=q(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment"),a=0,B()}exports.ArrayExpression=C,exports.BinaryExpression=M,exports.BlockStatement=we,exports.BreakStatement=Ae,exports.CallExpression=ve,exports.ContinueStatement=Le,exports.DiscardStatement=Be,exports.DoWhileStatement=be,exports.ForStatement=ye,exports.FunctionDeclaration=ge,exports.GLSL_KEYWORDS=Ie,exports.GLSL_SYMBOLS=Me,exports.Identifier=A,exports.IfStatement=_e,exports.Literal=fe,exports.MemberExpression=xe,exports.PrecisionStatement=Re,exports.PreprocessorStatement=ke,exports.ReturnStatement=Ee,exports.StructDeclaration=he,exports.SwitchCase=T,exports.SwitchStatement=De,exports.TernaryExpression=de,exports.Type=D,exports.UnaryExpression=O,exports.VariableDeclaration=P,exports.VariableDeclarator=F,exports.WGSL_KEYWORDS=Ce,exports.WGSL_SYMBOLS=Te,exports.WhileStatement=Se,exports.minify=it,exports.parse=bt,exports.tokenize=q;
5
5
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","value","char","terminator","symbol","isWord","isSymbol","isName","isScoped","isStorage","minify","mangle","mangleMap","mangleExternals","mangleCache","token","mangleIndex","lineIndex","blockIndex","minified","i","_a","_b","_c","_d","_e","_f","_g","prefix","_h","_i","namespace","_j","_k","storage","_l","list","_m","renamed","_n","_o","_p","_q","cache","_r","_s","_t","_u","j","_v"],"mappings":"gFACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WA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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/ast.ts","../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts","../src/parser.ts"],"sourcesContent":null,"names":["Literal","value","Identifier","Type","name","parameters","VariableDeclarator","VariableDeclaration","layout","qualifiers","kind","type","declarations","StructDeclaration","members","FunctionDeclaration","args","body","UnaryExpression","operator","left","right","BinaryExpression","TernaryExpression","test","consequent","alternate","CallExpression","callee","MemberExpression","object","property","ArrayExpression","BlockStatement","IfStatement","ForStatement","init","update","WhileStatement","DoWhileStatement","SwitchCase","SwitchStatement","discriminant","cases","ReturnStatement","argument","PreprocessorStatement","PrecisionStatement","precision","ContinueStatement","BreakStatement","DiscardStatement","WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","char","terminator","symbol","isWord","isSymbol","isName","isScoped","isStorage","minify","mangle","mangleMap","mangleExternals","mangleCache","token","mangleIndex","lineIndex","blockIndex","minified","i","_a","_b","_c","_d","_e","_f","_g","prefix","_h","_i","namespace","_j","_k","storage","_l","list","_m","renamed","_n","_o","_p","_q","cache","_r","_s","_t","_u","j","_v","UNARY_OPERATORS","BINARY_OPERATORS","TYPE_REGEX","QUALIFIER_REGEX","VARIABLE_REGEX","isDeclaration","isOpen","isClose","getScopeDelta","readUntil","offset","output","scopeIndex","consumeUntil","parseExpression","first","last","leftBody","rightBody","testBody","consequentBody","alternateBody","second","scope","line","arg","expression","next","parseVariable","delimiter","parseFunction","header","parseBlock","parseIndeterminate","key","parseStruct","parseReturn","parseIf","parseWhile","parseFor","delimiterIndex","parseDoWhile","parseSwitch","parseStatements","parsePrecision","parsePreprocessor","statement","DIRECTIVE_REGEX","parse"],"mappings":"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A,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,GAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WACA,gBACA,cACA,mBACA,QACA,WACA,MACA,MACA,MAGA,cACA,UACA,cACA,aACA,gBACA,aACA,mBACA,oBACA,mBACA,iBACA,uBACA,cACA,oBACA,kBACA,wBAGA,OACA,OACA,SAGA,WAGA,YAIA,gBACA,mBACF,EAEMC,GAAU,CAEd,KACA,KACA,KAGA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAGA,IACA,KACA,KACA,IAGA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,KACA,KAGA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,IACF,EAGaC,GAAe,CAC1B,GAAGD,GAEH,IAEA,IACF,EAGaE,GAAe,CAC1B,GAAGF,GAEH,KAEA,GACF,EC13BMG,GAAS,OAAO,UAAU,KAAK,KAAK,gDAAgD,EAEpFC,GAAU,OAAO,UAAU,KAAK,KAAK,+CAA+C,EACpFC,GAAQ,OAAO,UAAU,KAAK,KAAK,6BAA6B,EAChEC,GAAS,OAAO,UAAU,KAAK,KAAK,gBAAgB,EAEpDC,GAAO,GACPC,GAAO,GACPC,GAAI,GACJC,GAAI,GACJC,GAAK,GACLC,GAAK,GACLC,GAAM,EACNC,GAAQ,GACRC,GAAa,GACbC,GAAQ,GACRC,GAAO,GACPC,GAAO,GACPC,GAAK,GAELC,GAAWC,GAAcd,IAAQc,GAAKA,GAAKb,GAC3Cc,GAAWD,IAAgBA,GAAK,IAAMZ,IAAKY,GAAKA,GAAKX,IACrDa,GAAUF,GAAcA,IAAMV,IAAMU,IAAMT,GAC1CY,GAAWH,GAAcE,GAAOF,CAAC,GAAKA,IAAMR,IAAOQ,IAAMP,GACzDW,GAAWJ,GAAcC,GAAQD,CAAC,GAAKD,GAAQC,CAAC,GAAKA,IAAMN,GAC3DW,GAAWL,GAAcA,IAAMH,IAAQG,IAAMF,GAKnC,SAAAQ,EAASC,EAAcC,EAAgB,EAAY,CACjE,MAAMC,EAAkB,CAAA,EAExB,IAAIC,EAAe,GACnB,KAAM,CAACC,EAAUhC,CAAO,EAAIG,GAAOyB,CAAI,EAAI,CAAC9B,GAAeI,EAAY,EAAI,CAACH,GAAeE,EAAY,EAChG,KAAA4B,EAAQD,EAAK,QAAQ,CACtB,IAAAjF,EAAQiF,EAAKC,CAAK,EAChB,MAAAI,EAAOL,EAAK,WAAWC,GAAO,EAEhC,GAAAL,GAAQS,CAAI,EAAG,CACjB,KAAOT,GAAQI,EAAK,WAAWC,CAAK,CAAC,GAAGlF,GAASiF,EAAKC,GAAO,EAC7DC,EAAO,KAAK,CAAE,KAAM,aAAc,MAAAnF,CAAO,CAAA,CAAA,SAChCyE,GAAQa,CAAI,EAAG,CACjB,KAAA7B,GAAQzD,EAAQiF,EAAKC,CAAK,CAAC,GAAKxB,GAAM1D,EAAQiF,EAAKC,CAAK,CAAC,GAAGlF,GAASiF,EAAKC,GAAO,EACpFzB,GAAQzD,CAAK,EAAGmF,EAAO,KAAK,CAAE,KAAM,QAAS,MAAAnF,CAAO,CAAA,EACnDmF,EAAO,KAAK,CAAE,KAAM,MAAO,MAAAnF,CAAO,CAAA,CAAA,SAC9B8E,GAAQQ,CAAI,EAAG,CACxB,KAAOR,GAAQG,EAAK,WAAWC,CAAK,CAAC,GAAGlF,GAASiF,EAAKC,GAAO,EACzDvB,GAAO3D,CAAK,EAAGmF,EAAO,KAAK,CAAE,KAAM,OAAQ,MAAAnF,CAAO,CAAA,EAC7CqF,EAAS,SAASN,GAAQK,CAAI,EAAI,OAAO,aAAaA,CAAI,EAAIpF,EAAQA,CAAK,EAClFmF,EAAO,KAAK,CAAE,KAAM,UAAW,MAAAnF,CAAO,CAAA,EACnCmF,EAAO,KAAK,CAAE,KAAM,aAAc,MAAAnF,CAAO,CAAA,CACrC,SAAAsF,IAASjB,KAAUY,EAAK,WAAWC,CAAK,IAAMb,IAASY,EAAK,WAAWC,CAAK,IAAMZ,IAAO,CAClG,MAAMiB,EAAaN,EAAK,WAAWC,CAAK,IAAMZ,GAAO,KAAO;AAAA,EACrD,KAAA,CAACtE,EAAM,SAASuF,CAAU,GAAGvF,GAASiF,EAAKC,GAAO,EACzDC,EAAO,KAAK,CAAE,KAAM,UAAW,MAAAnF,CAAO,CAAA,CAAA,KACjC,CACL,UAAWwF,KAAUnC,EACfmC,EAAO,OAASxF,EAAM,QAAUiF,EAAK,WAAWO,EAAQN,EAAQ,CAAC,IAAWlF,EAAAwF,GAElFN,GAASlF,EAAM,OAAS,EACxBmF,EAAO,KAAK,CAAE,KAAM,SAAU,MAAAnF,CAAO,CAAA,CACvC,CACOoF,EAAAE,CACT,CAEO,OAAAH,CACT,CChEA,MAAMM,GAAS,OAAO,UAAU,KAAK,KAAK,KAAK,EACzCC,GAAW,OAAO,UAAU,KAAK,KAAK,SAAS,EAC/CC,GAAS,OAAO,UAAU,KAAK,KAAK,YAAY,EAChDC,GAAW,OAAO,UAAU,KAAK,KAAK,UAAU,EAChDC,GAAY,OAAO,UAAU,KAAK,KAAK,2DAA2D,EAKjG,SAASC,GACdb,EACA,CAAE,OAAAc,EAAS,GAAO,UAAAC,EAAgB,IAAA,IAAO,gBAAAC,EAAkB,EAAM,EAA4B,CAAA,EACrF,iDAEDhB,EAAAA,EAAK,QAAQ,gCAAiC,QAAQ,EAEvD,MAAAiB,MAAkB,IAClBf,EAAkBH,EAASC,CAAI,EAAE,OAAQkB,GAAUA,EAAM,OAAS,cAAgBA,EAAM,OAAS,SAAS,EAEhH,IAAIC,EAAsB,GACtBC,GAAoB,GACpBC,EAAqB,GACrBC,EAAmB,GACvB,QAASC,EAAI,EAAGA,EAAIrB,EAAO,OAAQqB,IAAK,CAChC,MAAAL,EAAQhB,EAAOqB,CAAC,GAGlBX,GAAUM,EAAM,KAAK,GAAKP,IAASa,EAAAtB,EAAOqB,EAAI,CAAC,IAAZ,KAAAC,OAAAA,EAAe,KAAK,KAAeJ,GAAAG,GAGtEL,EAAM,QAAU,KAAOR,IAAOe,EAAAvB,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAE,EAAe,KAAK,EAAGJ,EAAaE,EAAI,EACjEL,EAAM,QAAU,MAAkBG,EAAA,IAGvCb,GAAOU,EAAM,KAAK,GAAKV,IAAOkB,EAAAxB,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAG,EAAe,KAAK,IAAeJ,GAAA,KAInEb,GAASS,EAAM,KAAK,MAClBS,EAAAzB,EAAOqB,EAAI,CAAC,IAAZ,KAAAI,OAAAA,EAAe,SAAU,OAAOC,EAAA1B,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAK,EAAe,SAAU,aACxDC,EAAA3B,EAAOqB,EAAI,CAAC,IAAZ,KAAAM,OAAAA,EAAe,SAAU,OAAOC,EAAA5B,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAO,EAAe,SAAU,YAEhDR,GAAA,KAEd,IAAIS,EAASb,EAAM,MAMnB,KALIc,EAAA9B,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAS,EAAe,SAAU,MAC3BD,EAAS,IAAGE,EAAA/B,EAAOqB,EAAI,CAAC,IAAZ,KAAAU,OAAAA,EAAe,KAAK,IAAMF,GAKtCb,EAAM,OAAS,cAEfa,IAAW,SACV,OAAOjB,GAAW,UAAYA,EAASA,EAAOI,EAAOK,EAAGrB,CAAM,GAC/D,CACM,MAAAgC,KAAYC,EAAAjC,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAY,EAAe,SAAU,OAAOC,EAAAlC,EAAOqB,EAAI,CAAC,IAAZ,KAAAa,OAAAA,EAAe,SAAU,IACrEC,EAAUzB,IAAU0B,EAAApC,EAAOkB,EAAS,IAAhB,KAAAkB,OAAAA,EAAmB,KAAK,EAC5CC,GAAOF,KAAWG,EAAAtC,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAiB,EAAe,SAAU,IACjD,IAAIC,GAAUC,EAAA3B,EAAU,IAAIgB,CAAM,IAApB,KAAAW,EAAyBzB,EAAY,IAAIc,CAAM,EAC7D,GAEE,CAACU,GAEDpB,IAAe,KAEdX,IAAOiC,EAAAzC,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAoB,EAAe,KAAK,GAE1BT,IAEAK,MAECK,EAAA1C,EAAOqB,EAAI,CAAC,IAAZ,KAAAqB,OAAAA,EAAe,QAAS,YAAYC,EAAA3C,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAsB,EAAe,SAAU,OAE/D7B,GAAmB,CAACqB,GACrB,CAcM,MAAAS,GATH9B,GAAmBqB,KAEpBU,EAAA7C,EAAOqB,EAAI,CAAC,IAAZ,KAAAwB,OAAAA,EAAe,SAAU,KAEzBb,IAEAK,MAECS,EAAA9C,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAAyB,EAAe,SAAU,SAASC,EAAA/C,EAAOqB,EAAI,CAAC,IAAZ,KAAA0B,OAAAA,EAAe,SAAU,OAAOC,EAAAhD,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAA2B,EAAe,SAAU,KACnEnC,EAAYE,EAEvC,KAAO,CAACwB,GAAWK,GAAM,IAAIL,CAAO,GAAG,CAC3BA,EAAA,GACVtB,IAEA,IAAIgC,EAAIhC,EACR,KAAOgC,EAAI,GACTV,EAAU,OAAO,aAAa,IAAOU,EAAI,GAAK,EAAG,EAAIV,EACjDU,EAAA,KAAK,MAAMA,EAAI,EAAE,CAEzB,CAEML,GAAA,IAAIf,EAAQU,CAAO,CAC3B,CAEAnB,GAAYmB,GAAA,KAAAA,EAAWvB,EAAM,KAAA,MAEzBA,EAAM,QAAU,OAAOkC,EAAAlD,EAAOqB,EAAI,CAAC,IAAZ,KAAA,OAAA6B,EAAe,SAAU,KAAkB9B,GAAA;AAAA,GAC7DJ,EAAM,QAAU,KAAkBI,GAAA;AAAA,EACtCA,GAAYJ,EAAM,KAE3B,CAEA,OAAOI,EAAS,MAClB,CChGA,MAAM+B,GAAkB,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,IAAI,EAEjDC,GAAmB,CACvB,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,GACF,EAGMC,GAAa,oDACbC,GAAkB,mFAClBC,GAAiB,IAAI,OAAO,GAAGF,GAAW,MAAM,IAAIC,GAAgB,MAAM,SAAS,EAEnFE,GAAgB,OAAO,UAAU,KAAK,KAAKD,EAAc,EAEzDE,GAAS,OAAO,UAAU,KAAK,KAAK,YAAY,EAChDC,GAAU,OAAO,UAAU,KAAK,KAAK,YAAY,EAEvD,SAASC,EAAc3C,EAAsB,CACvC,OAAAyC,GAAOzC,EAAM,KAAK,EAAU,EAC5B0C,GAAQ1C,EAAM,KAAK,EAAU,GAC1B,CACT,CAEA,IAAIhB,EAAkB,CAAA,EAClBqB,EAAY,EAEhB,SAASuC,EAAU/I,EAAegB,EAAegI,EAAiB,EAAY,CAC5E,MAAMC,EAAkB,CAAA,EACxB,IAAIC,EAAa,EAEV,KAAAF,EAAShI,EAAK,QAAQ,CACrB,MAAAmF,EAAQnF,EAAKgI,GAAQ,EAIvB,GAHJC,EAAO,KAAK9C,CAAK,EAEjB+C,GAAcJ,EAAc3C,CAAK,EAC7B+C,IAAe,GAAK/C,EAAM,QAAUnG,EAAO,KACjD,CAEO,OAAAiJ,CACT,CAEA,SAASE,EAAanJ,EAAwB,CAC5C,MAAMiJ,EAASF,EAAU/I,EAAOmF,EAAQqB,CAAC,EACzC,OAAAA,GAAKyC,EAAO,OACLA,CACT,CAEA,SAASG,EAAgBpI,EAA2B,WAClD,GAAIA,EAAK,SAAW,EAAU,OAAA,KAExB,MAAAqI,EAAQrI,EAAK,CAAC,EACdsI,EAAOtI,EAAKA,EAAK,OAAS,CAAC,EACjC,GAAIsH,GAAgB,SAASe,EAAM,KAAK,EAAG,CACzC,MAAMjI,EAAQgI,EAAgBpI,EAAK,MAAM,CAAC,CAAC,EAC3C,OAAO,IAAIC,EAAgBoI,EAAM,MAAO,KAAMjI,CAAK,CAC1C,SAAAkH,GAAgB,SAASgB,EAAK,KAAK,EAAG,CACzC,MAAAnI,EAAOiI,EAAgBpI,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,CAAC,EAC3D,OAAO,IAAIC,EAAgBqI,EAAK,MAAOnI,EAAM,IAAI,CACnD,CAEI,GAAAkI,EAAM,QAAU,IAAK,CACjB,MAAAE,EAAWR,EAAU,IAAK/H,CAAI,EAC9BG,EAAOiI,EAAgBG,EAAS,MAAM,EAAGA,EAAS,OAAS,CAAC,CAAC,EAE7DrI,EAAWF,EAAKuI,EAAS,MAAM,EACrC,GAAIrI,EAAU,CACZ,MAAMsI,EAAYxI,EAAK,MAAMuI,EAAS,OAAS,CAAC,EAC1CnI,EAAQgI,EAAgBI,CAAS,EAEvC,OAAO,IAAInI,EAAiBH,EAAS,MAAOC,EAAMC,CAAK,CACzD,CAEO,OAAAD,CACT,CAEA,IAAI+H,EAAa,EAEjB,UAAWhI,KAAYqH,GACrB,QAAS/B,EAAI,EAAGA,EAAIxF,EAAK,OAAQwF,IAAK,CAC9B,MAAAL,EAAQnF,EAAKwF,CAAC,EACpB,GAAIL,EAAM,OAAS,SAInB,CAAA,GAFA+C,GAAcJ,EAAc3C,CAAK,EAE7B+C,IAAe,GAAK/C,EAAM,QAAUjF,EACtC,GAAIA,IAAa,IAAK,CACpB,MAAMuI,EAAWzI,EAAK,MAAM,EAAGwF,CAAC,EAC1BkD,EAAiBX,EAAU,IAAK/H,EAAMwF,EAAI,CAAC,EAAE,MAAM,EAAG,EAAE,EACxDmD,EAAgB3I,EAAK,MAAMwF,EAAIkD,EAAe,OAAS,CAAC,EAExDnI,EAAO6H,EAAgBK,CAAQ,EAC/BjI,EAAa4H,EAAgBM,CAAc,EAC3CjI,EAAY2H,EAAgBO,CAAa,EAE/C,OAAO,IAAIrI,GAAkBC,EAAMC,EAAYC,CAAS,CAAA,KACnD,CACL,MAAMN,EAAOiI,EAAgBpI,EAAK,MAAM,EAAGwF,CAAC,CAAC,EACvCpF,EAAQgI,EAAgBpI,EAAK,MAAMwF,EAAI,EAAGxF,EAAK,MAAM,CAAC,EAE5D,OAAO,IAAIK,EAAiBH,EAAUC,EAAMC,CAAK,CACnD,CAGF,GAAI8H,EAAa,EACf,OAAOE,EAAgBpI,EAAK,MAAM,EAAGwF,CAAC,CAAC,EAE3C,CAGE,GAAA6C,EAAM,OAAS,QAAUA,EAAM,OAAS,OAASA,EAAM,OAAS,QAC3D,OAAA,IAAItJ,GAAQsJ,EAAM,KAAK,KACrBA,EAAM,OAAS,cAAgBA,EAAM,OAAS,UAAW,CAC5D,MAAAO,EAAS5I,EAAK,CAAC,EAErB,GAAK4I,GAEL,GAAWA,EAAO,QAAU,IAAK,CAC/B,MAAMjI,EAAS,IAAI1B,EAAWoJ,EAAM,KAAK,EACnCtI,EAAc,CAAA,EAEd8I,EAAQd,EAAU,IAAK/H,EAAM,CAAC,EAAE,MAAM,EAAG,EAAE,EAEjD,IAAIoH,EAAI,EACD,KAAAA,EAAIyB,EAAM,QAAQ,CACvB,MAAMC,EAAOf,EAAU,IAAKc,EAAOzB,CAAC,EACpCA,GAAK0B,EAAK,SACNrD,EAAAqD,EAAKA,EAAK,OAAS,CAAC,IAApB,KAAArD,OAAAA,EAAuB,SAAU,KAAKqD,EAAK,IAAI,EAE7C,MAAAC,EAAMX,EAAgBU,CAAI,EAC5BC,GAAKhJ,EAAK,KAAKgJ,CAAG,CACxB,CAEA,MAAMC,EAAa,IAAItI,GAAeC,EAAQZ,CAAI,EAGlD,IAAIyF,EAAI,EAAI4B,EACZ,KAAI1B,EAAA1F,EAAKwF,CAAC,IAAN,KAAA,OAAAE,EAAS,SAAU,IAAK,CACpB,MAAAtF,EAAQgI,EAAgB,CAACC,EAAO,GAAGrI,EAAK,MAAMwF,CAAC,CAAC,CAAC,EACvD,OAAApF,EAAM,OAAS4I,EACR5I,CACT,CAEO,OAAA4I,CAAA,SACEJ,EAAO,QAAU,IAAK,CAC/B,MAAM/H,EAAS,IAAI5B,EAAWoJ,EAAM,KAAK,EACnCvH,EAAWsH,EAAgB,CAACpI,EAAK,CAAC,CAAC,CAAC,EACpCG,EAAO,IAAIS,GAAiBC,EAAQC,CAAQ,EAGlD,KAAI6E,EAAA3F,EAAK,CAAC,IAAN,KAAA2F,OAAAA,EAAS,SAAU,KAAO2C,EAAK,QAAU,IAAK,CAChD,MAAMlI,EAAQgI,EAAgBpI,EAAK,MAAM,CAAC,CAAC,EAC3C,OAAAI,EAAM,OAASD,EACRC,CACT,CAEO,OAAAD,CAAA,SACEyI,EAAO,QAAU,IAAK,CAC/B,IAAIpD,EAAI,EAER,MAAM9F,EAAO,IAAIR,EAAKmJ,EAAM,MAAO,CAAE,CAAA,EAEjCrI,EAAKwF,CAAC,EAAE,QAAU,KAAU9F,EAAA,WAAY,KAAK0I,EAAgB,CAACpI,EAAKwF,GAAG,CAAC,CAAC,CAAQ,EACpFA,IAEM,MAAAqD,EAAQd,EAAU,IAAK/H,EAAMwF,CAAC,EAAE,MAAM,EAAG,EAAE,EAE3C3F,EAAiB,CAAA,EAEvB,IAAIuH,EAAI,EACD,KAAAA,EAAIyB,EAAM,QAAQ,CACvB,MAAMI,EAAOlB,EAAU,IAAKc,EAAOzB,CAAC,EACpCA,GAAK6B,EAAK,OAENA,EAAKA,EAAK,OAAS,CAAC,EAAE,QAAU,KAAKA,EAAK,IAAI,EAE1CpJ,EAAA,KAAKuI,EAAgBa,CAAI,CAAE,CACrC,CAEO,OAAA,IAAIlI,EAAgBrB,EAAMG,CAAO,CAC1C,cAhES,IAAIZ,EAAWoJ,EAAM,KAAK,CAiErC,CAEO,OAAA,IACT,CAEA,SAASa,GACP1J,EAAuB,GACvBD,EAAkD,KAC7B,CACrBiG,IAEA,MAAM/F,EAAO,KACPC,EAAO,IAAIR,EAAKiF,EAAOqB,GAAG,EAAE,MAAO,IAAI,EAEvC7F,EAAqC,CAAA,EAErCK,EAAOmI,EAAa,GAAG,EAC7B,IAAIf,EAAI,EAED,KAAAA,EAAIpH,EAAK,QAAQ,CAChB,MAAAb,EAAOa,EAAKoH,GAAG,EAAE,MAEvB,IAAIpB,EAAqB,KACrBhG,EAAKoH,CAAC,EAAE,QAAU,MACpBA,IACApB,EAAS,IAAIjF,EAAgB,IAAI7B,EAAKQ,EAAK,KAAM,CAAC0I,EAAgB,CAACpI,EAAKoH,GAAG,CAAC,CAAC,CAAQ,CAAC,EAAG,CAAE,CAAA,EAC3FA,KAGF,IAAIpI,EAAoB,KAElB,MAAAmK,EAAYnJ,EAAKoH,GAAG,EACtB,IAAA+B,GAAA,KAAA,OAAAA,EAAW,SAAU,IAAK,CAC5B,MAAM/I,EAAQ2H,EAAU,IAAK/H,EAAMoH,CAAC,EACpCA,GAAKhH,EAAM,OAEXpB,EAAQoJ,EAAgBhI,EAAM,MAAM,EAAG,EAAE,CAAC,CAC5C,CAEAT,EAAa,KAAK,IAAIN,EAAmBF,EAAMH,GAAA,KAAAA,EAASgH,CAAM,CAAC,CACjE,CAEA,OAAO,IAAI1G,EAAoBC,EAAQC,EAAYC,EAAMC,EAAMC,CAAY,CAC7E,CAEA,SAASyJ,GAAc5J,EAA2C,WAChEgG,IAEA,MAAM9F,EAAO,IAAIR,EAAKiF,EAAOqB,GAAG,EAAE,MAAO,IAAI,EACvCrG,EAAOgF,EAAOqB,GAAG,EAAE,MACnBzF,EAA8B,CAAA,EAG9BsJ,EAASlB,EAAa,GAAG,EAAE,MAAM,EAAG,EAAE,EAC5C,IAAIf,EAAI,EACD,KAAAA,EAAIiC,EAAO,QAAQ,CACxB,MAAM7J,EAAuB,CAAA,EAC7B,KAAO6J,EAAOjC,CAAC,GAAKiC,EAAOjC,CAAC,EAAE,OAAS,cACrC5H,EAAW,KAAK6J,EAAOjC,GAAG,EAAE,KAAK,EAEnC,MAAM1H,EAAO,IAAIR,EAAKM,EAAW,IAAA,EAAQ,IAAI,EAEvCsJ,EAAOf,EAAU,IAAKsB,EAAQjC,CAAC,EACrCA,GAAK0B,EAAK,OAEJ3J,MAAAA,EAAO2J,EAAK,MAAA,EAAS,MAE3B,IAAI9C,EAAqB,OACrBP,EAAAqD,EAAK,CAAC,IAAN,KAAA,OAAArD,EAAS,SAAU,MACrBqD,EAAK,MAAM,EACX9C,EAAS,IAAIjF,EAAgB,IAAI7B,EAAKQ,EAAK,KAAM,CAAC0I,EAAgB,CAACU,EAAK,MAAQ,CAAA,CAAC,CAAQ,CAAC,EAAG,CAAE,CAAA,EAC/FA,EAAK,MAAM,KAGTpD,EAAAoD,EAAKA,EAAK,OAAS,CAAC,IAApB,KAAA,OAAApD,EAAuB,SAAU,KAAKoD,EAAK,IAAI,EAE7C,MAAA9J,GAAQ2G,EAAAyC,EAAgBU,CAAI,IAApB,KAAAnD,EAAyBK,EAEjCrG,EAAqC,CAAC,IAAIN,EAAmBF,EAAMH,CAAK,CAAC,EAE1Ee,EAAA,KAAK,IAAIT,EAAoB,KAAME,EAAY,KAAME,EAAMC,CAAY,CAAC,CAC/E,CAEA,IAAIK,EAAO,KACP,OAAAmE,EAAOqB,CAAC,EAAE,QAAU,IAAKA,IACxBxF,EAAOsJ,EAAW,EAEhB,IAAIxJ,GAAoBX,EAAMO,EAAMF,EAAYO,EAAMC,CAAI,CACnE,CAEA,SAASuJ,IAAgE,OACvE/D,IAEA,IAAIjG,EAAkD,KACtD,GAAI4E,EAAOqB,CAAC,EAAE,QAAU,SAAU,CAChCA,IAEAjG,EAAS,CAAA,EAET,IAAIiK,EAAqB,KACzB,KAAOrF,EAAOqB,CAAC,GAAKrB,EAAOqB,CAAC,EAAE,QAAU,KAAK,CACrC,MAAAL,EAAQhB,EAAOqB,GAAG,EAEpBL,EAAM,QAAU,MAAWqE,EAAA,MAC3BrE,EAAM,OAAS,WAEdqE,EAIIjK,EAAAiK,CAAG,EAAIrE,EAAM,OAHpBqE,EAAMrE,EAAM,MACZ5F,EAAOiK,CAAG,EAAI,IAIlB,CAEAhE,GACF,CAEA,MAAMhG,EAAuB,CAAA,EACtB,KAAA2E,EAAOqB,CAAC,GAAKiC,GAAgB,KAAKtD,EAAOqB,CAAC,EAAE,KAAK,GACtDhG,EAAW,KAAK2E,EAAOqB,GAAG,EAAE,KAAK,EAEnC,OAAAA,MAEOC,EAAAtB,EAAOqB,EAAI,CAAC,IAAZ,YAAAC,EAAe,SAAU,IAAM2D,GAAc5J,CAAU,EAAI0J,GAAc1J,EAAYD,CAAM,CACpG,CAEA,SAASkK,IAAiC,CAClC,MAAAtK,EAAOgF,EAAOqB,GAAG,EAAE,MACzBA,IACA,MAAM3F,EAAiC,CAAA,EACvC,KAAOsE,EAAOqB,CAAC,GAAKrB,EAAOqB,CAAC,EAAE,QAAU,KACtCA,IACQ3F,EAAA,KAAK0J,IAA2C,EAE1D,OAAA/D,IACAA,IAEO,IAAI5F,GAAkBT,EAAMU,CAAO,CAC5C,CAEA,SAAS6J,IAA+B,CAChC,MAAA1J,EAAOmI,EAAa,GAAG,EAC7BnI,EAAK,IAAI,EAEH,MAAA4B,EAAWwG,EAAgBpI,CAAI,EAE9B,OAAA,IAAI2B,GAAgBC,CAAe,CAC5C,CAEA,SAAS+H,IAAuB,CAC9B,MAAMpJ,EAAO6H,EAAgBD,EAAa,GAAG,CAAC,EACxC3H,EAAa8I,IAEnB,IAAI7I,EAAY,KAChB,OAAI0D,EAAOqB,CAAC,EAAE,QAAU,SACtBA,IAEIrB,EAAOqB,CAAC,EAAE,QAAU,MACtBA,IACA/E,EAAYkJ,GAAQ,GAEpBlJ,EAAY6I,EAAW,GAIpB,IAAIrI,GAAYV,EAAMC,EAAYC,CAAS,CACpD,CAEA,SAASmJ,IAA6B,CACpC,MAAMrJ,EAAO6H,EAAgBD,EAAa,GAAG,CAAC,EACxCnI,EAAOsJ,IAEN,OAAA,IAAIjI,GAAed,EAAMP,CAAI,CACtC,CAEA,SAAS6J,IAAyB,CAChC,MAAMC,EAAiBtE,GAAKuC,EAAU,IAAK5D,EAAQqB,CAAC,EAAE,OAAS,GAE/DA,IACAA,IAEA,MAAMrE,EAAO+H,KACP3I,EAAO6H,EAAgBD,EAAa,GAAG,EAAE,MAAM,EAAG,EAAE,CAAC,EACrD/G,EAASgH,EAAgBjE,EAAO,MAAMqB,EAAGsE,CAAc,CAAC,EAE1DtE,EAAAsE,EACJtE,IAEA,MAAMxF,EAAOsJ,IAEb,OAAO,IAAIpI,GAAaC,EAAMZ,EAAMa,EAAQpB,CAAI,CAClD,CAEA,SAAS+J,IAAiC,CACxC,MAAM/J,EAAOsJ,IACb9D,IACA,MAAMjF,EAAO6H,EAAgBD,EAAa,GAAG,CAAC,EAC9C,OAAA3C,IAEO,IAAIlE,GAAiBf,EAAMP,CAAI,CACxC,CAEA,SAASgK,IAA+B,CACtC,MAAMvI,EAAe2G,EAAgBD,EAAa,GAAG,CAAC,EAChD2B,EAAiBtE,EAAIuC,EAAU,IAAK5D,EAAQqB,CAAC,EAAE,OAAS,EAExD9D,EAAsB,CAAA,EAC5B,KAAO8D,EAAIsE,GAAgB,CACnB,MAAA3E,EAAQhB,EAAOqB,GAAG,EAEpB,GAAAL,EAAM,QAAU,OAAQ,CACpB,MAAA5E,EAAO6H,EAAgBD,EAAa,GAAG,EAAE,MAAM,EAAG,EAAE,CAAC,EACrD3H,EAAayJ,IACnBvI,EAAM,KAAK,IAAIH,EAAWhB,EAAMC,CAAU,CAAC,CAAA,SAClC2E,EAAM,QAAU,UAAW,CACpCK,IACA,MAAMhF,EAAayJ,IACnBvI,EAAM,KAAK,IAAIH,EAAW,KAAMf,CAAU,CAAC,CAC7C,CACF,CAEO,OAAA,IAAIgB,GAAgBC,EAAeC,CAAK,CACjD,CAEA,SAASwI,IAAqC,CACtC,MAAAnI,EAAYoC,EAAOqB,GAAG,EAAE,MACxB9F,EAAO,IAAIR,EAAKiF,EAAOqB,GAAG,EAAE,MAAO,IAAI,EAC7C,OAAAA,IACO,IAAI1D,GAAmBC,EAAkBrC,CAAI,CACtD,CAEA,SAASyK,IAA2C,CAC5C,MAAAhL,EAAOgF,EAAOqB,GAAG,EAAE,MAEnBxF,EAAOmI,EAAa,IAAI,EAAE,MAAM,EAAG,EAAE,EAC3C,IAAInJ,EAAsB,KAEtB,GAAAG,IAAS,QAAUA,IAAS,QAG9B,GAFAH,EAAQ,CAAA,EAEJG,IAAS,SAAU,CACrB,MAAMgB,EAAOiI,EAAgB,CAACpI,EAAK,MAAA,CAAQ,CAAC,EACtCI,EAAQgI,EAAgBpI,CAAI,EAC5BhB,EAAA,KAAKmB,EAAMC,CAAK,CAAA,SACbjB,IAAS,YAAa,CAC/B,MAAMgB,EAAOiI,EAAgB,CAACpI,EAAK,MAAA,CAAQ,CAAC,EAC5CA,EAAK,MAAM,EACL,MAAAI,EAAQgI,EAAgBpI,CAAI,EAC5BhB,EAAA,KAAKmB,EAAMC,CAAK,CAAA,MACbjB,IAAS,UAClBH,EAAM,KAAKoJ,EAAgBpI,EAAK,MAAM,EAAG,EAAE,CAAC,CAAE,EAExChB,EAAA,KAAKoJ,EAAgBpI,CAAI,CAAE,EAI9B,OAAA,IAAI6B,GAAsB1C,EAAMH,CAAK,CAC9C,CAEA,SAASiL,GAAyB,CAChC,MAAMjK,EAAc,CAAA,EACpB,IAAIkI,EAAa,EAEV,KAAA1C,EAAIrB,EAAO,QAAQ,CAClB,MAAAgB,EAAQhB,EAAOqB,GAAG,EAGxB,GADA0C,GAAcJ,EAAc3C,CAAK,EAC7B+C,EAAa,EAAG,MAEpB,IAAIkC,EAAwB,KAExB,GAAAjF,EAAM,QAAU,IAClBiF,EAAYD,GAAkB,UACrBhF,EAAM,OAAS,UACxB,GAAIA,EAAM,QAAU,QAAUA,EAAM,QAAU,UAAW,CACvDK,IACA,KAAA,MACSL,EAAM,QAAU,SAAUiF,EAAYX,GAAY,EACpDtE,EAAM,QAAU,YAAaiF,EAAY,IAAIpI,GAAsBwD,KACnEL,EAAM,QAAU,SAAUiF,EAAY,IAAInI,GAAmBuD,KAC7DL,EAAM,QAAU,WAAYiF,EAAY,IAAIlI,GAAqBsD,KACjEL,EAAM,QAAU,SAAUiF,EAAYV,GAAY,EAClDvE,EAAM,QAAU,KAAMiF,EAAYT,GAAQ,EAC1CxE,EAAM,QAAU,QAASiF,EAAYR,GAAW,EAChDzE,EAAM,QAAU,MAAOiF,EAAYP,GAAS,EAC5C1E,EAAM,QAAU,KAAMiF,EAAYL,GAAa,EAC/C5E,EAAM,QAAU,SAAUiF,EAAYJ,GAAY,EAClD7E,EAAM,QAAU,YAAaiF,EAAYF,GAAe,EACxDvC,GAAcxC,EAAM,KAAK,GAAKhB,EAAOqB,CAAC,EAAE,QAAU,MAAK4E,EAAYb,GAAmB,GAGjG,GAAIa,EACFpK,EAAK,KAAKoK,CAAS,MACd,CACL,MAAMtB,EAAO,CAAC3D,EAAO,GAAGgD,EAAa,GAAG,CAAC,EACrCW,EAAKA,EAAK,OAAS,CAAC,EAAE,QAAU,KAAKA,EAAK,IAAI,EAC5C,MAAAE,EAAaZ,EAAgBU,CAAI,EACnCE,GAAYhJ,EAAK,KAAKgJ,CAAU,CACtC,CACF,CAEO,OAAAhJ,CACT,CAEA,SAASsJ,GAA6B,CACpC9D,IACA,MAAMxF,EAAOiK,IACN,OAAA,IAAIjJ,GAAehB,CAAI,CAChC,CAEA,MAAMqK,GAAkB,gCAKjB,SAASC,GAAMrG,EAAqB,CAElC,OAAAA,EAAAA,EAAK,QAAQ,kBAAmB,EAAE,EAGlCA,EAAAA,EAAK,QAAQoG,GAAiB,QAAQ,EAGpClG,EAAAH,EAASC,CAAI,EAAE,OAAQkB,GAAUA,EAAM,OAAS,cAAgBA,EAAM,OAAS,SAAS,EAC7FK,EAAA,EAEGyE,EAAgB,CACzB"}