@amxts/core 0.1.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.
Files changed (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -0
  3. package/README.ru.md +162 -0
  4. package/amxmodx/base/include/amxconst.inc +594 -0
  5. package/amxmodx/base/include/amxmisc.inc +902 -0
  6. package/amxmodx/base/include/amxmodx.inc +3447 -0
  7. package/amxmodx/base/include/amxmodx_version.inc +20 -0
  8. package/amxmodx/base/include/cellarray.inc +525 -0
  9. package/amxmodx/base/include/cellstack.inc +166 -0
  10. package/amxmodx/base/include/celltrie.inc +412 -0
  11. package/amxmodx/base/include/core.inc +202 -0
  12. package/amxmodx/base/include/csstats.inc +298 -0
  13. package/amxmodx/base/include/csstats_const.inc +29 -0
  14. package/amxmodx/base/include/cstrike.inc +1287 -0
  15. package/amxmodx/base/include/cstrike_const.inc +521 -0
  16. package/amxmodx/base/include/csx.inc +259 -0
  17. package/amxmodx/base/include/cvars.inc +547 -0
  18. package/amxmodx/base/include/datapack.inc +161 -0
  19. package/amxmodx/base/include/dbi.inc +154 -0
  20. package/amxmodx/base/include/dodconst.inc +152 -0
  21. package/amxmodx/base/include/dodfun.inc +152 -0
  22. package/amxmodx/base/include/dodstats.inc +69 -0
  23. package/amxmodx/base/include/dodx.inc +161 -0
  24. package/amxmodx/base/include/engine.inc +1343 -0
  25. package/amxmodx/base/include/engine_const.inc +310 -0
  26. package/amxmodx/base/include/engine_stocks.inc +248 -0
  27. package/amxmodx/base/include/esf.inc +70 -0
  28. package/amxmodx/base/include/esf_const.inc +74 -0
  29. package/amxmodx/base/include/fakemeta.inc +1127 -0
  30. package/amxmodx/base/include/fakemeta_const.inc +793 -0
  31. package/amxmodx/base/include/fakemeta_stocks.inc +395 -0
  32. package/amxmodx/base/include/fakemeta_util.inc +882 -0
  33. package/amxmodx/base/include/file.inc +666 -0
  34. package/amxmodx/base/include/float.inc +422 -0
  35. package/amxmodx/base/include/fun.inc +333 -0
  36. package/amxmodx/base/include/gameconfig.inc +93 -0
  37. package/amxmodx/base/include/geoip.inc +264 -0
  38. package/amxmodx/base/include/ham_const.inc +4352 -0
  39. package/amxmodx/base/include/hamsandwich.inc +439 -0
  40. package/amxmodx/base/include/hlsdk_const.inc +808 -0
  41. package/amxmodx/base/include/json.inc +777 -0
  42. package/amxmodx/base/include/lang.inc +119 -0
  43. package/amxmodx/base/include/message_const.inc +1130 -0
  44. package/amxmodx/base/include/message_stocks.inc +161 -0
  45. package/amxmodx/base/include/messages.inc +604 -0
  46. package/amxmodx/base/include/newmenus.inc +387 -0
  47. package/amxmodx/base/include/ns.inc +754 -0
  48. package/amxmodx/base/include/ns_const.inc +196 -0
  49. package/amxmodx/base/include/nvault.inc +154 -0
  50. package/amxmodx/base/include/regex.inc +348 -0
  51. package/amxmodx/base/include/sockets.inc +183 -0
  52. package/amxmodx/base/include/sorting.inc +107 -0
  53. package/amxmodx/base/include/sqlx.inc +582 -0
  54. package/amxmodx/base/include/string.inc +786 -0
  55. package/amxmodx/base/include/string_const.inc +156 -0
  56. package/amxmodx/base/include/string_stocks.inc +325 -0
  57. package/amxmodx/base/include/textparse_ini.inc +214 -0
  58. package/amxmodx/base/include/textparse_smc.inc +261 -0
  59. package/amxmodx/base/include/tfcconst.inc +84 -0
  60. package/amxmodx/base/include/tfcstats.inc +62 -0
  61. package/amxmodx/base/include/tfcx.inc +148 -0
  62. package/amxmodx/base/include/time.inc +118 -0
  63. package/amxmodx/base/include/tsconst.inc +154 -0
  64. package/amxmodx/base/include/tsfun.inc +198 -0
  65. package/amxmodx/base/include/tsstats.inc +65 -0
  66. package/amxmodx/base/include/tsx.inc +88 -0
  67. package/amxmodx/base/include/vault.inc +60 -0
  68. package/amxmodx/base/include/vector.inc +131 -0
  69. package/amxmodx/base/include/xs.inc +1570 -0
  70. package/as/amxts.d.ts +153 -0
  71. package/as/constants.ts +4730 -0
  72. package/as/effects.ts +1449 -0
  73. package/as/entities.ts +5482 -0
  74. package/as/events.ts +3054 -0
  75. package/as/facade.ts +4639 -0
  76. package/as/flags.ts +299 -0
  77. package/as/fs.ts +287 -0
  78. package/as/hooks.ts +18536 -0
  79. package/as/kit.ts +25 -0
  80. package/as/lib/check.ts +86 -0
  81. package/as/modules/http.ts +184 -0
  82. package/as/natives.ts +11845 -0
  83. package/as/os.ts +30 -0
  84. package/as/promise.ts +1392 -0
  85. package/as/promise.types.d.ts +82 -0
  86. package/as/remote.ts +288 -0
  87. package/as/tsconfig.json +22 -0
  88. package/as/vector.ts +65 -0
  89. package/bin/amxts.mjs +10 -0
  90. package/includes/menu_core.inc +355 -0
  91. package/includes/order.txt +54 -0
  92. package/includes/sources.json +27 -0
  93. package/includes/universal_config.inc +355 -0
  94. package/lint/oxlint-plugin.mjs +77 -0
  95. package/node_modules/assemblyscript/LICENSE +201 -0
  96. package/node_modules/assemblyscript/NOTICE +93 -0
  97. package/node_modules/assemblyscript/package.json +63 -0
  98. package/node_modules/assemblyscript/std/README.md +6 -0
  99. package/node_modules/assemblyscript/std/assembly/array.ts +526 -0
  100. package/node_modules/assemblyscript/std/assembly/arraybuffer.ts +77 -0
  101. package/node_modules/assemblyscript/std/assembly/atomics.ts +127 -0
  102. package/node_modules/assemblyscript/std/assembly/bindings/asyncify.ts +16 -0
  103. package/node_modules/assemblyscript/std/assembly/bindings/dom.ts +291 -0
  104. package/node_modules/assemblyscript/std/assembly/bindings/node.ts +6 -0
  105. package/node_modules/assemblyscript/std/assembly/builtins.ts +2631 -0
  106. package/node_modules/assemblyscript/std/assembly/compat.ts +2 -0
  107. package/node_modules/assemblyscript/std/assembly/console.ts +42 -0
  108. package/node_modules/assemblyscript/std/assembly/crypto.ts +9 -0
  109. package/node_modules/assemblyscript/std/assembly/dataview.ts +181 -0
  110. package/node_modules/assemblyscript/std/assembly/date.ts +373 -0
  111. package/node_modules/assemblyscript/std/assembly/diagnostics.ts +11 -0
  112. package/node_modules/assemblyscript/std/assembly/error.ts +44 -0
  113. package/node_modules/assemblyscript/std/assembly/function.ts +38 -0
  114. package/node_modules/assemblyscript/std/assembly/index.d.ts +2822 -0
  115. package/node_modules/assemblyscript/std/assembly/iterator.ts +35 -0
  116. package/node_modules/assemblyscript/std/assembly/map.ts +260 -0
  117. package/node_modules/assemblyscript/std/assembly/math.ts +3289 -0
  118. package/node_modules/assemblyscript/std/assembly/memory.ts +123 -0
  119. package/node_modules/assemblyscript/std/assembly/number.ts +388 -0
  120. package/node_modules/assemblyscript/std/assembly/object.ts +36 -0
  121. package/node_modules/assemblyscript/std/assembly/performance.ts +9 -0
  122. package/node_modules/assemblyscript/std/assembly/polyfills.ts +27 -0
  123. package/node_modules/assemblyscript/std/assembly/process.ts +50 -0
  124. package/node_modules/assemblyscript/std/assembly/reference.ts +48 -0
  125. package/node_modules/assemblyscript/std/assembly/regexp.ts +12 -0
  126. package/node_modules/assemblyscript/std/assembly/rt/README.md +83 -0
  127. package/node_modules/assemblyscript/std/assembly/rt/common.ts +81 -0
  128. package/node_modules/assemblyscript/std/assembly/rt/index-incremental.ts +2 -0
  129. package/node_modules/assemblyscript/std/assembly/rt/index-minimal.ts +2 -0
  130. package/node_modules/assemblyscript/std/assembly/rt/index-stub.ts +1 -0
  131. package/node_modules/assemblyscript/std/assembly/rt/index.d.ts +37 -0
  132. package/node_modules/assemblyscript/std/assembly/rt/itcms.ts +419 -0
  133. package/node_modules/assemblyscript/std/assembly/rt/rtrace.ts +15 -0
  134. package/node_modules/assemblyscript/std/assembly/rt/stub.ts +133 -0
  135. package/node_modules/assemblyscript/std/assembly/rt/tcms.ts +254 -0
  136. package/node_modules/assemblyscript/std/assembly/rt/tlsf.ts +592 -0
  137. package/node_modules/assemblyscript/std/assembly/rt.ts +87 -0
  138. package/node_modules/assemblyscript/std/assembly/set.ts +220 -0
  139. package/node_modules/assemblyscript/std/assembly/shared/feature.ts +65 -0
  140. package/node_modules/assemblyscript/std/assembly/shared/runtime.ts +11 -0
  141. package/node_modules/assemblyscript/std/assembly/shared/target.ts +11 -0
  142. package/node_modules/assemblyscript/std/assembly/shared/tsconfig.json +11 -0
  143. package/node_modules/assemblyscript/std/assembly/shared/typeinfo.ts +72 -0
  144. package/node_modules/assemblyscript/std/assembly/staticarray.ts +401 -0
  145. package/node_modules/assemblyscript/std/assembly/string.ts +847 -0
  146. package/node_modules/assemblyscript/std/assembly/symbol.ts +114 -0
  147. package/node_modules/assemblyscript/std/assembly/table.ts +16 -0
  148. package/node_modules/assemblyscript/std/assembly/tsconfig.json +6 -0
  149. package/node_modules/assemblyscript/std/assembly/typedarray.ts +1945 -0
  150. package/node_modules/assemblyscript/std/assembly/uri.ts +17 -0
  151. package/node_modules/assemblyscript/std/assembly/util/bytes.ts +107 -0
  152. package/node_modules/assemblyscript/std/assembly/util/casemap.ts +497 -0
  153. package/node_modules/assemblyscript/std/assembly/util/error.ts +54 -0
  154. package/node_modules/assemblyscript/std/assembly/util/hash.ts +117 -0
  155. package/node_modules/assemblyscript/std/assembly/util/math.ts +1922 -0
  156. package/node_modules/assemblyscript/std/assembly/util/memory.ts +290 -0
  157. package/node_modules/assemblyscript/std/assembly/util/number.ts +873 -0
  158. package/node_modules/assemblyscript/std/assembly/util/sort.ts +313 -0
  159. package/node_modules/assemblyscript/std/assembly/util/string.ts +1202 -0
  160. package/node_modules/assemblyscript/std/assembly/util/uri.ts +275 -0
  161. package/node_modules/assemblyscript/std/assembly/vector.ts +4 -0
  162. package/node_modules/assemblyscript/std/assembly.json +16 -0
  163. package/node_modules/assemblyscript/std/portable/index.d.ts +462 -0
  164. package/node_modules/assemblyscript/std/portable/index.js +416 -0
  165. package/node_modules/assemblyscript/std/portable.json +11 -0
  166. package/node_modules/assemblyscript/std/types/assembly/index.d.ts +1 -0
  167. package/node_modules/assemblyscript/std/types/assembly/package.json +3 -0
  168. package/node_modules/assemblyscript/std/types/portable/index.d.ts +1 -0
  169. package/node_modules/assemblyscript/std/types/portable/package.json +3 -0
  170. package/node_modules/assemblyscript/tsconfig-base.json +13 -0
  171. package/package.json +112 -0
  172. package/runtime/deps/assemblyscript/LICENSE +201 -0
  173. package/runtime/deps/assemblyscript/NOTICE +93 -0
  174. package/runtime/deps/assemblyscript/bin/asc.js +35 -0
  175. package/runtime/deps/assemblyscript/dist/asc.js +25035 -0
  176. package/runtime/deps/assemblyscript/dist/assemblyscript.js +337 -0
  177. package/runtime/deps/assemblyscript/node_modules/binaryen/LICENSE +201 -0
  178. package/runtime/deps/assemblyscript/node_modules/binaryen/index.js +28905 -0
  179. package/runtime/deps/assemblyscript/node_modules/binaryen/package.json +50 -0
  180. package/runtime/deps/assemblyscript/node_modules/long/LICENSE +202 -0
  181. package/runtime/deps/assemblyscript/node_modules/long/index.js +1581 -0
  182. package/runtime/deps/assemblyscript/node_modules/long/package.json +58 -0
  183. package/runtime/deps/assemblyscript/package.json +114 -0
  184. package/runtime/host/amxts.inc +85 -0
  185. package/runtime/licenses/AMXX-LICENSE.txt +34 -0
  186. package/runtime/licenses/AssemblyScript-LICENSE +201 -0
  187. package/runtime/licenses/AssemblyScript-NOTICE +93 -0
  188. package/runtime/licenses/Binaryen-LICENSE +201 -0
  189. package/runtime/licenses/Bun-LICENSE.md +84 -0
  190. package/runtime/licenses/GPL-3.0.txt +674 -0
  191. package/runtime/licenses/LLVM-LICENSE.TXT +279 -0
  192. package/runtime/licenses/README.md +25 -0
  193. package/runtime/licenses/WAMR-LICENSE +219 -0
  194. package/runtime/natives.txt +1095 -0
  195. package/runtime/patches/README.md +59 -0
  196. package/runtime/patches/assemblyscript-0.28.20-amxts.patch +14174 -0
  197. package/runtime/patches/wamr-2.4.5-amxts.patch +364 -0
  198. package/scripts/apply-docs.ts +508 -0
  199. package/scripts/asc.ts +27 -0
  200. package/scripts/auto-imports.ts +258 -0
  201. package/scripts/build-wasm.ts +595 -0
  202. package/scripts/check.ts +93 -0
  203. package/scripts/compile-cache.ts +179 -0
  204. package/scripts/compile.ts +401 -0
  205. package/scripts/docker-server.ts +73 -0
  206. package/scripts/docs/as/amxts.ts +210 -0
  207. package/scripts/docs/as/effects.ts +1684 -0
  208. package/scripts/docs/as/facade.ts +3302 -0
  209. package/scripts/docs/as/fs.ts +173 -0
  210. package/scripts/docs/as/lib/check.ts +68 -0
  211. package/scripts/docs/as/modules/http.ts +66 -0
  212. package/scripts/docs/as/os.ts +16 -0
  213. package/scripts/docs/as/promise.ts +132 -0
  214. package/scripts/docs/as/promise.types.ts +63 -0
  215. package/scripts/docs/as/vector.ts +48 -0
  216. package/scripts/docs/entities.ts +2338 -0
  217. package/scripts/docs/events.ts +245 -0
  218. package/scripts/docs/game.ts +497 -0
  219. package/scripts/docs/messages.ts +148 -0
  220. package/scripts/file-contents.ts +74 -0
  221. package/scripts/includes.ts +134 -0
  222. package/scripts/player-fields.ts +866 -0
  223. package/scripts/plugin-cache.ts +92 -0
  224. package/scripts/plugin-natives.ts +1157 -0
  225. package/scripts/prebuilt.ts +268 -0
  226. package/scripts/prepare.ts +134 -0
  227. package/scripts/project.ts +973 -0
  228. package/scripts/run.ts +28 -0
  229. package/scripts/shared-modules.ts +906 -0
  230. package/scripts/system.ts +33 -0
  231. package/scripts/tracked-fs.ts +115 -0
  232. package/scripts/typed-configs.ts +788 -0
  233. package/scripts/ui.ts +77 -0
  234. package/src/cli-api.mjs +175 -0
  235. package/src/parser/include-parser.ts +506 -0
  236. package/src/system.mjs +155 -0
  237. package/src/testing/compile-cache.ts +31 -0
  238. package/src/testing/compile.ts +222 -0
  239. package/src/testing/coroutines.ts +191 -0
  240. package/src/testing/index.ts +39 -0
  241. package/src/testing/kits.ts +55 -0
  242. package/src/testing/memory.ts +125 -0
  243. package/src/testing/natives.ts +925 -0
  244. package/src/testing/server.ts +1874 -0
  245. package/src/testing/setup.ts +63 -0
  246. package/src/testing/tables.ts +139 -0
  247. package/src/types.ts +51 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * @license
3
+ * The AssemblyScript compiler
4
+ * Copyright 2026 Daniel Wirtz / The AssemblyScript Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ var _o=Object.defineProperty;var uf=Object.getOwnPropertyDescriptor;var Dx=Object.getOwnPropertyNames;var Ux=Object.prototype.hasOwnProperty;var ho=(r,n)=>{for(var e in n)_o(r,e,{get:n[e],enumerable:!0})},of=(r,n,e,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Dx(n))!Ux.call(r,i)&&i!==e&&_o(r,i,{get:()=>n[i],enumerable:!(t=uf(n,i))||t.enumerable});return r},mo=(r,n,e)=>(of(r,n,"default"),e&&of(e,n,"default"));var pf=(r,n,e,t)=>{for(var i=t>1?void 0:t?uf(n,e):n,s=r.length-1,l;s>=0;s--)(l=r[s])&&(i=(t?l(n,e,i):l(i))||i);return t&&i&&_o(n,e,i),i};var lf={};ho(lf,{ASTBuilder:()=>sf,ArrayLiteralExpression:()=>Pr,ArrowKind:()=>nr,AssertionExpression:()=>Il,AssertionKind:()=>Ii,AtomicRMWOp:()=>Mp,BinaryExpression:()=>kl,BinaryModule:()=>La,BinaryOp:()=>wi,BlockStatement:()=>ta,BrOnOp:()=>ag,BreakStatement:()=>ra,CallExpression:()=>Fl,Class:()=>or,ClassDeclaration:()=>Pn,ClassExpression:()=>Rl,ClassPrototype:()=>ps,ClosureScan:()=>us,CommaExpression:()=>wl,CommentKind:()=>Fp,CommentNode:()=>Sl,CommonFlags:()=>je,CommonNames:()=>z,CompiledExpression:()=>Jl,Compiler:()=>Bs,ConditionKind:()=>rc,ConstantValueKind:()=>uc,Constraints:()=>Hc,ConstructorExpression:()=>Cl,ContinueStatement:()=>ia,DEFAULT_STACK_SIZE:()=>M3,DeclarationStatement:()=>Xe,DeclaredElement:()=>ur,DecoratorFlags:()=>zt,DecoratorKind:()=>wt,DecoratorNode:()=>vl,DiagnosticCategory:()=>Tl,DiagnosticCode:()=>mt,DiagnosticEmitter:()=>Qe,DiagnosticMessage:()=>xl,DoStatement:()=>na,Element:()=>ss,ElementAccessExpression:()=>Pl,ElementKind:()=>gt,EmptyStatement:()=>sa,Enum:()=>ro,EnumDeclaration:()=>la,EnumValue:()=>io,EnumValueDeclaration:()=>aa,ExportDefaultStatement:()=>ca,ExportImportStatement:()=>oa,ExportMember:()=>ua,ExportNames:()=>Ps,ExportStatement:()=>pa,Expression:()=>xe,ExpressionId:()=>Lr,ExpressionRunnerFlags:()=>Ma,ExpressionStatement:()=>fa,ExternalKind:()=>Lp,FEATURES_ALL:()=>t0,FEATURES_DEFAULT:()=>r0,FEATURE_BULK_MEMORY:()=>O3,FEATURE_EXCEPTION_HANDLING:()=>K3,FEATURE_EXTENDED_CONST:()=>$3,FEATURE_GC:()=>X3,FEATURE_MEMORY64:()=>Z3,FEATURE_MULTI_VALUE:()=>H3,FEATURE_MUTABLE_GLOBALS:()=>U3,FEATURE_NONTRAPPING_F2I:()=>V3,FEATURE_REFERENCE_TYPES:()=>Q3,FEATURE_RELAXED_SIMD:()=>Y3,FEATURE_SHARED_EVERYTHING:()=>e0,FEATURE_SIGN_EXTENSION:()=>D3,FEATURE_SIMD:()=>q3,FEATURE_STRINGREF:()=>J3,FEATURE_TAIL_CALLS:()=>j3,FEATURE_THREADS:()=>W3,FalseExpression:()=>Zl,Feature:()=>er,FeatureFlags:()=>Bp,FieldDeclaration:()=>_a,FieldFlags:()=>tc,File:()=>as,FloatLiteralExpression:()=>Nl,Flow:()=>Lt,FlowFlags:()=>ja,ForOfStatement:()=>da,ForStatement:()=>ha,Function:()=>Je,FunctionDeclaration:()=>Bn,FunctionExpression:()=>Bl,FunctionPrototype:()=>Le,FunctionTypeNode:()=>Cr,GETTER_PREFIX:()=>ol,Global:()=>Mr,HeapTypeRef:()=>Ee,INDEX_SUFFIX:()=>Ve,INNER_DELIMITER:()=>dp,INSTANCE_DELIMITER:()=>hp,IdentifierExpression:()=>He,IdentifierHandling:()=>wp,IfStatement:()=>ma,ImportDeclaration:()=>ya,ImportNames:()=>Yi,ImportStatement:()=>Ln,IndexSignature:()=>Jn,IndexSignatureNode:()=>ea,InstanceOfExpression:()=>Ll,IntegerLiteralExpression:()=>Ml,Interface:()=>es,InterfaceDeclaration:()=>ga,InterfacePrototype:()=>no,JSBuilder:()=>Ki,LIBRARY_PREFIX:()=>dt,LIBRARY_SUBST:()=>Qy,LiteralExpression:()=>yt,LiteralKind:()=>Ct,Local:()=>Ke,LocalFlags:()=>Xn,LoweredCall:()=>Mt,MemoryOrder:()=>ig,MemorySegment:()=>Ri,MethodDeclaration:()=>Nr,Module:()=>Bt,ModuleDeclaration:()=>Sa,NamedTypeNode:()=>wr,Namespace:()=>os,NamespaceDeclaration:()=>ba,NewExpression:()=>zl,Node:()=>A,NodeKind:()=>Rt,NullExpression:()=>Gl,ObjectLiteralExpression:()=>Dl,OmittedExpression:()=>Ul,OperatorKind:()=>Ce,Options:()=>Ns,PARENT_SUBST:()=>Yx,PATH_DELIMITER:()=>lt,PRIVATE_NAME_PREFIX:()=>Pa,PackedType:()=>Dn,Parameter:()=>oc,ParameterKind:()=>Br,ParameterNode:()=>Ai,ParenthesizedExpression:()=>Vl,Parser:()=>is,Pattern:()=>Nn,PatternElement:()=>Si,Precedence:()=>yg,Program:()=>ns,Property:()=>$n,PropertyAccessExpression:()=>Ol,PropertyPrototype:()=>Gi,Range:()=>ue,RefAsOp:()=>ng,RegexpLiteralExpression:()=>ql,Relooper:()=>Ba,ReportMode:()=>Za,Resolver:()=>Yn,ReturnStatement:()=>xa,Runtime:()=>ll,RuntimeFeatures:()=>Xc,SETTER_PREFIX:()=>ul,SIMDExtractOp:()=>zp,SIMDLoadOp:()=>Up,SIMDLoadStoreLaneOp:()=>Vp,SIMDReplaceOp:()=>Gp,SIMDShiftOp:()=>Dp,SIMDTernaryOp:()=>Op,STATIC_DELIMITER:()=>Sn,STUB_DELIMITER:()=>tr,SideEffects:()=>ec,Signature:()=>ge,Source:()=>ye,SourceKind:()=>ki,State:()=>Ca,Statement:()=>fe,StringEncodeOp:()=>pg,StringEqOp:()=>cg,StringLiteralExpression:()=>Kl,StringMeasureOp:()=>ug,StringNewOp:()=>og,SuperExpression:()=>jl,SwitchBuilder:()=>Un,SwitchCase:()=>Ta,SwitchStatement:()=>Ea,TSDBuilder:()=>$i,Target:()=>hi,TemplateLiteralExpression:()=>Ql,TernaryExpression:()=>Wl,ThisExpression:()=>Hl,ThrowStatement:()=>Aa,Token:()=>Fi,Tokenizer:()=>zn,TrueExpression:()=>Xl,TryStatement:()=>va,TupleTypeNode:()=>El,Type:()=>p,TypeBuilderErrorReason:()=>Np,TypeDeclaration:()=>Ia,TypeDefinition:()=>rt,TypeFlags:()=>bt,TypeKind:()=>lr,TypeName:()=>Ei,TypeNode:()=>Ti,TypeParameterNode:()=>Al,TypeRef:()=>P,TypedElement:()=>Dt,Typeinfo:()=>di,TypeinfoFlags:()=>al,UnaryExpression:()=>Cn,UnaryOp:()=>Vn,UnaryPostfixExpression:()=>Yl,UnaryPrefixExpression:()=>$l,UncheckedBehavior:()=>Qa,VariableDeclaration:()=>ka,VariableLikeDeclarationStatement:()=>vi,VariableLikeElement:()=>zr,VariableStatement:()=>Fa,VoidStatement:()=>Ra,WhileStatement:()=>wa,WideIntAddSubOp:()=>sg,WideIntMulOp:()=>lg,addGlobalAlias:()=>w3,allocPtrArray:()=>de,buildJS:()=>w0,buildTSD:()=>R0,compile:()=>F0,createType:()=>Ze,defaultFeatures:()=>fo,diagnosticCategoryToColor:()=>Jy,diagnosticCategoryToString:()=>kp,diagnosticCodeToString:()=>pl,ensureType:()=>Hn,expandType:()=>qp,featureToString:()=>_i,fieldPathKey:()=>Ka,findDecorator:()=>Pt,formatDiagnostic:()=>eg,formatDiagnosticMessage:()=>eg,functionUsesItsName:()=>Xg,getBinaryLeft:()=>$e,getBinaryOp:()=>Pi,getBinaryRight:()=>De,getBinaryenModuleRef:()=>C0,getBlockChildAt:()=>jn,getBlockChildCount:()=>Kn,getBlockName:()=>Wn,getBreakCondition:()=>w2,getBreakName:()=>R2,getCallOperandAt:()=>Be,getCallOperandCount:()=>pt,getCallTarget:()=>Bi,getConstValueF32:()=>Se,getConstValueF64:()=>Ie,getConstValueI32:()=>ie,getConstValueI64High:()=>Ne,getConstValueI64Low:()=>ke,getConstValueInteger:()=>Wp,getConstValueV128:()=>Kp,getDefaultParameterName:()=>Eg,getDependee:()=>I0,getDiagnosticCategory:()=>_0,getDiagnosticCode:()=>f0,getDiagnosticMessage:()=>h0,getDiagnosticRange:()=>d0,getDiagnosticRelatedRange:()=>m0,getDropValue:()=>P2,getExpressionId:()=>ee,getExpressionType:()=>ae,getFunctionBody:()=>L2,getFunctionName:()=>$p,getFunctionParams:()=>M2,getFunctionResults:()=>z2,getFunctionVars:()=>G2,getGlobalGetName:()=>Ci,getGlobalInit:()=>V2,getGlobalName:()=>D2,getGlobalType:()=>U2,getIfCondition:()=>Oa,getIfFalse:()=>Ni,getIfTrue:()=>Qn,getLoadBytes:()=>jp,getLoadOffset:()=>Qp,getLoadPtr:()=>Hp,getLocalGetIndex:()=>We,getLocalSetIndex:()=>Da,getLocalSetValue:()=>Ua,getLoopBody:()=>F2,getLoopName:()=>k2,getMemoryGrowDelta:()=>B2,getRangeEnd:()=>g0,getRangeSource:()=>b0,getRangeStart:()=>y0,getReturnValue:()=>N2,getSelectCondition:()=>C2,getSelectElse:()=>Yp,getSelectThen:()=>Zp,getSideEffects:()=>Li,getSource:()=>c0,getSourceNormalizedPath:()=>x0,getStoreBytes:()=>A2,getStoreOffset:()=>v2,getStorePtr:()=>S2,getStoreValue:()=>I2,getTagName:()=>O2,getTagParams:()=>q2,getTagResults:()=>W2,getUnaryOp:()=>qn,getUnaryValue:()=>Va,initializeProgram:()=>k0,isConstExpressionNaN:()=>Ga,isConstNaN:()=>E2,isConstNegZero:()=>za,isConstNonZero:()=>ut,isConstZero:()=>Ye,isDeclaredElement:()=>ls,isError:()=>A0,isGlobalMutable:()=>Jp,isIllegalVariableIdentifier:()=>Cp,isInfo:()=>T0,isLoadSigned:()=>Xp,isLocalTee:()=>On,isNullableType:()=>fg,isPluginSource:()=>_e,isTupleClass:()=>Ya,isTypeOmitted:()=>pe,isTypedElement:()=>Ha,isWarning:()=>E0,mangleInternalName:()=>Ue,mangleInternalPath:()=>Mn,mustPreserveSideEffects:()=>qa,newOptions:()=>d3,newProgram:()=>u0,nextDiagnostic:()=>p0,nextFile:()=>S0,operatorTokenToString:()=>we,optimize:()=>N0,optionalChainLink:()=>ot,parse:()=>v0,readString:()=>qe,removeGlobalAlias:()=>C3,runtimeFunctions:()=>ji,runtimeGlobals:()=>Qi,scanClosures:()=>Zi,scanTopLevelClosures:()=>Hg,setBasenameHint:()=>s0,setBindingsHint:()=>l0,setBundleVersion:()=>G3,setDebugInfo:()=>o0,setExportMemory:()=>b3,setExportRuntime:()=>L3,setExportStart:()=>P3,setExportTable:()=>S3,setFeature:()=>i0,setImportMemory:()=>x3,setImportTable:()=>v3,setInitialMemory:()=>T3,setLowMemoryLimit:()=>B3,setMaximumMemory:()=>E3,setMemoryBase:()=>F3,setNoAssert:()=>g3,setNoUnsafe:()=>N3,setOptimizeLevelHints:()=>n0,setPedantic:()=>a0,setRuntime:()=>y3,setSharedMemory:()=>A3,setSourceMap:()=>I3,setStackSize:()=>z3,setTableBase:()=>R3,setTarget:()=>m3,setUncheckedBehavior:()=>k3,tokenFromKeyword:()=>tg,tokenIsAlsoIdentifier:()=>rg,typesToRefs:()=>xt,typesToString:()=>Xa,util:()=>Ip,validate:()=>P0});var J=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof J.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
8
+ `+new Error().stack},t=function(l){this.message=l||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=this.name+": "+this.message+`
9
+ `+new Error().stack},i=function(l,a){if(l==a){if(l!=0)return 0;l=1/l,a=1/a}else{let o=l!=l,u=a!=a;if(o|u)return o-u;l==null&&(l=String(l)),a==null&&(a=String(a))}return l>a?1:-1};Vx=e,Ox=t,qx=i,J.ASC_TARGET=0,J.ASC_RUNTIME=0,J.ASC_NO_ASSERT=!1,J.ASC_MEMORY_BASE=0,J.ASC_OPTIMIZE_LEVEL=3,J.ASC_SHRINK_LEVEL=0,J.ASC_FEATURE_MUTABLE_GLOBAL=!1,J.ASC_FEATURE_SIGN_EXTENSION=!1,J.ASC_FEATURE_BULK_MEMORY=!1,J.ASC_FEATURE_SIMD=!1,J.ASC_FEATURE_THREADS=!1;let r=new Float64Array(1),n=new Uint32Array(r.buffer);Object.defineProperties(J.i8=function(a){return a<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(l,a){return parseInt(l,a)<<24>>24}}),Object.defineProperties(J.i16=function(a){return a<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(l,a){return parseInt(l,a)<<16>>16}}),Object.defineProperties(J.i32=J.isize=function(a){return a|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(l,a){return parseInt(l,a)|0}}),Object.defineProperties(J.u8=function(a){return a&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(l,a){return parseInt(l,a)&255}}),Object.defineProperties(J.u16=function(a){return a&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(l,a){return parseInt(l,a)&65535}}),Object.defineProperties(J.u32=J.usize=function(a){return a>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(l,a){return parseInt(l,a)>>>0}}),Object.defineProperties(J.bool=function(a){return!!a},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(l){return l.trim()==="true"}}),Object.defineProperties(J.f32=function(a){return Math.fround(a)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(l){return Math.fround(parseFloat(l))}}),Object.defineProperties(J.f64=function(a){return+a},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(l){return parseFloat(l)}}),J.clz=Math.clz32,J.ctz=function(a){return 32-Math.clz32(~a&a-1)},J.popcnt=function(a){return a-=a>>>1&1431655765,a=(a&858993459)+(a>>>2&858993459),(a+(a>>>4)&252645135)*16843009>>>24},J.rotl=function(a,o){return o&=31,a<<o|a>>>32-o},J.rotr=function(a,o){return o&=31,a>>>o|a<<32-o},J.abs=Math.abs,J.max=Math.max,J.min=Math.min,J.ceil=Math.ceil,J.floor=Math.floor,J.nearest=function(a){let u=Math.abs(a);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(a):a},J.select=function(a,o,u){return u?a:o},J.sqrt=Math.sqrt,J.trunc=Math.trunc,J.copysign=function(a,o){return o?Math.abs(a)*Math.sign(o):(r[0]=o,n[1]>>>31?-1:1)},J.bswap=function(a){let o=a>>8&16711935,u=(a&16711935)<<8;return a=o|u,o=a>>16&65535,u=(a&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",J.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",J.assert=function(a,o){if(a)return a;throw new t(o)},J.changetype=function(a){return a},String.fromCharCodes=function(a){let u=a.length;if(u<=8192)return String.fromCharCode.apply(String,a);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,a.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(a){let u=a.length;if(u<=8192)return String.fromCodePoint.apply(String,a);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,a.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(a){return this.charAt(a>=0?a:a+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(a,o){let u=this.split(a).join(o);return a.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(a){return s.call(this,a||i)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(l=>{l.prototype.at||Object.defineProperty(l.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),l.prototype.findLastIndex||Object.defineProperty(l.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),l!=Array&&Object.defineProperty(l,"wrap",{value:function(o,u,c){return new l(o,u,c)},configurable:!0})}),J.isInteger=Number.isInteger,J.isFloat=function(a){return typeof a=="number"},J.isNullable=function(a){return!0},J.isReference=function(a){return typeof a=="object"||typeof a=="string"},J.isFunction=function(a){return typeof a=="function"},J.isString=function(a){return typeof a=="string"||a instanceof String},J.isArray=Array.isArray,J.isArrayLike=function(a){return a&&typeof a=="object"&&typeof a.length=="number"&&a.length>=0&&Math.trunc(a.length)===a.length},J.isDefined=function(a){return typeof a<"u"},J.isConstant=function(a){return!1},J.unchecked=function(a){return a},J.fmod=function(a,o){return a%o},J.fmodf=function(a,o){return Math.fround(a%o)},J.JSMath=Math,Object.defineProperties(J.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(a){return r[0]=a,!!(n[1]>>>31)}},sincos:{value:function(a){this.sincos_sin=Math.sin(a),this.sincos_cos=Math.cos(a)}},exp2:{value:function(a){return Math.pow(2,a)}}}),J.unmanaged=function(){},J.trace=function(l,a){a&&(l+=Array.prototype.slice.call(arguments,2,2+a)),console.error("trace: "+l)}}var Vx,Ox,qx;var en={};ho(en,{default:()=>tn});mo(en,aB);import*as aB from"binaryen";import{default as tn}from"binaryen";import Wx from"long";var{_BinaryenTypeCreate:cf,_BinaryenTypeArity:ff,_BinaryenTypeExpand:_f,_BinaryenTypeGetHeapType:Ht,_BinaryenTypeFromHeapType:me,_BinaryenTypeIsNullable:hf,_BinaryenTypeFuncref:df,_BinaryenTypeExternref:mf,_BinaryenTypeAnyref:yf,_BinaryenTypeEqref:gf,_BinaryenTypeI31ref:bf,_BinaryenTypeStructref:xf,_BinaryenTypeArrayref:Tf,_BinaryenTypeStringref:Ef,_BinaryenTypeNullref:Af,_BinaryenTypeNullExternref:vf,_BinaryenTypeNullFuncref:Sf,_BinaryenHeapTypeFunc:cB,_BinaryenHeapTypeExt:fB,_BinaryenHeapTypeAny:_B,_BinaryenHeapTypeEq:hB,_BinaryenHeapTypeI31:dB,_BinaryenHeapTypeStruct:mB,_BinaryenHeapTypeArray:yB,_BinaryenHeapTypeString:gB,_BinaryenHeapTypeNone:bB,_BinaryenHeapTypeNoext:xB,_BinaryenHeapTypeNofunc:TB,_BinaryenHeapTypeIsBasic:EB,_BinaryenHeapTypeIsSignature:AB,_BinaryenHeapTypeIsStruct:vB,_BinaryenHeapTypeIsArray:SB,_BinaryenHeapTypeIsBottom:If,_BinaryenHeapTypeGetBottom:kf,_BinaryenHeapTypeIsSubType:Ff,_BinaryenStructTypeGetNumFields:Rf,_BinaryenStructTypeGetFieldType:IB,_BinaryenStructTypeGetFieldPackedType:kB,_BinaryenStructTypeIsFieldMutable:FB,_BinaryenArrayTypeGetElementType:RB,_BinaryenArrayTypeGetElementPackedType:wB,_BinaryenArrayTypeIsElementMutable:CB,_BinaryenSignatureTypeGetParams:PB,_BinaryenSignatureTypeGetResults:NB,_BinaryenModuleCreate:wf,_BinaryenModuleDispose:Cf,_BinaryenSizeofLiteral:yo,_BinaryenLiteralInt32:Pf,_BinaryenLiteralFloat32:Nf,_BinaryenLiteralFloat64:Bf,_BinaryenLiteralVec128:Lf,_BinaryenLiteralFloat32Bits:BB,_BinaryenExpressionGetId:It,_BinaryenExpressionGetType:Xt,_BinaryenExpressionSetType:LB,_BinaryenExpressionPrint:MB,_BinaryenExpressionCopy:Mf,_BinaryenExpressionFinalize:zf,_BinaryenBlock:Gf,_BinaryenBlockGetName:zs,_BinaryenBlockSetName:zB,_BinaryenBlockGetNumChildren:rn,_BinaryenBlockGetChildAt:nn,_BinaryenBlockSetChildAt:Df,_BinaryenBlockAppendChild:GB,_BinaryenBlockInsertChildAt:DB,_BinaryenBlockRemoveChildAt:UB,_BinaryenIf:Uf,_BinaryenIfGetCondition:sn,_BinaryenIfSetCondition:Vf,_BinaryenIfGetIfTrue:ln,_BinaryenIfSetIfTrue:Of,_BinaryenIfGetIfFalse:an,_BinaryenIfSetIfFalse:qf,_BinaryenLoop:Wf,_BinaryenLoopGetName:Gs,_BinaryenLoopSetName:VB,_BinaryenLoopGetBody:on,_BinaryenLoopSetBody:Kf,_BinaryenBreak:jf,_BinaryenBreakGetName:Ds,_BinaryenBreakSetName:OB,_BinaryenBreakGetCondition:un,_BinaryenBreakSetCondition:Qf,_BinaryenBreakGetValue:go,_BinaryenBreakSetValue:Hf,_BinaryenSwitch:Xf,_BinaryenSwitchGetNumNames:Zf,_BinaryenSwitchGetNameAt:Yf,_BinaryenSwitchSetNameAt:qB,_BinaryenSwitchAppendName:WB,_BinaryenSwitchInsertNameAt:KB,_BinaryenSwitchRemoveNameAt:jB,_BinaryenSwitchGetDefaultName:$f,_BinaryenSwitchSetDefaultName:QB,_BinaryenSwitchGetCondition:bo,_BinaryenSwitchSetCondition:Jf,_BinaryenSwitchGetValue:xo,_BinaryenSwitchSetValue:e_,_BinaryenCall:t_,_BinaryenCallGetTarget:si,_BinaryenCallSetTarget:HB,_BinaryenCallGetNumOperands:Zt,_BinaryenCallGetOperandAt:Yt,_BinaryenCallSetOperandAt:Us,_BinaryenCallAppendOperand:XB,_BinaryenCallInsertOperandAt:ZB,_BinaryenCallRemoveOperandAt:YB,_BinaryenCallIsReturn:$B,_BinaryenCallSetReturn:JB,_BinaryenReturnCall:r_,_BinaryenCallIndirect:i_,_BinaryenCallIndirectGetTable:eL,_BinaryenCallIndirectSetTable:tL,_BinaryenCallIndirectGetTarget:To,_BinaryenCallIndirectSetTarget:n_,_BinaryenCallIndirectGetNumOperands:pn,_BinaryenCallIndirectGetOperandAt:cn,_BinaryenCallIndirectSetOperandAt:Vs,_BinaryenCallIndirectAppendOperand:rL,_BinaryenCallIndirectInsertOperandAt:iL,_BinaryenCallIndirectRemoveOperandAt:nL,_BinaryenCallIndirectIsReturn:sL,_BinaryenCallIndirectSetReturn:lL,_BinaryenReturnCallIndirect:s_,_BinaryenLocalGet:l_,_BinaryenLocalGetGetIndex:Os,_BinaryenLocalGetSetIndex:aL,_BinaryenLocalSet:a_,_BinaryenLocalSetIsTee:qs,_BinaryenLocalSetGetIndex:li,_BinaryenLocalSetSetIndex:oL,_BinaryenLocalSetGetValue:xr,_BinaryenLocalSetSetValue:Ws,_BinaryenLocalTee:o_,_BinaryenGlobalGet:u_,_BinaryenGlobalGetGetName:Ks,_BinaryenGlobalGetSetName:uL,_BinaryenGlobalSet:p_,_BinaryenGlobalSetGetName:c_,_BinaryenGlobalSetSetName:pL,_BinaryenGlobalSetGetValue:Eo,_BinaryenGlobalSetSetValue:f_,_BinaryenMemorySize:__,_BinaryenMemoryGrow:h_,_BinaryenMemoryGrowGetDelta:fn,_BinaryenMemoryGrowSetDelta:d_,_BinaryenLoad:m_,_BinaryenLoadIsAtomic:cL,_BinaryenLoadSetAtomic:fL,_BinaryenLoadIsSigned:y_,_BinaryenLoadSetSigned:_L,_BinaryenLoadGetOffset:g_,_BinaryenLoadSetOffset:hL,_BinaryenLoadGetBytes:b_,_BinaryenLoadSetBytes:dL,_BinaryenLoadGetAlign:mL,_BinaryenLoadSetAlign:yL,_BinaryenLoadGetPtr:_n,_BinaryenLoadSetPtr:x_,_BinaryenAtomicLoad:T_,_BinaryenStore:E_,_BinaryenStoreIsAtomic:gL,_BinaryenStoreSetAtomic:bL,_BinaryenStoreGetBytes:js,_BinaryenStoreSetBytes:xL,_BinaryenStoreGetOffset:Qs,_BinaryenStoreSetOffset:TL,_BinaryenStoreGetAlign:EL,_BinaryenStoreSetAlign:AL,_BinaryenStoreGetPtr:Tr,_BinaryenStoreSetPtr:Hs,_BinaryenStoreGetValue:hn,_BinaryenStoreSetValue:A_,_BinaryenStoreGetValueType:vL,_BinaryenStoreSetValueType:SL,_BinaryenAtomicStore:v_,_BinaryenConst:ai,_BinaryenConstGetValueI32:S_,_BinaryenConstSetValueI32:IL,_BinaryenConstGetValueF32:I_,_BinaryenConstSetValueF32:kL,_BinaryenConstGetValueF64:k_,_BinaryenConstSetValueF64:FL,_BinaryenConstGetValueV128:F_,_BinaryenConstSetValueV128:RL,_BinaryenUnary:R_,_BinaryenUnaryGetOp:w_,_BinaryenUnarySetOp:wL,_BinaryenUnaryGetValue:dn,_BinaryenUnarySetValue:C_,_BinaryenWideIntAddSub:P_,_BinaryenWideIntMul:N_,_BinaryenBinary:B_,_BinaryenBinaryGetOp:L_,_BinaryenBinarySetOp:CL,_BinaryenBinaryGetLeft:mn,_BinaryenBinarySetLeft:M_,_BinaryenBinaryGetRight:yn,_BinaryenBinarySetRight:z_,_BinaryenSelect:G_,_BinaryenSelectGetIfTrue:gn,_BinaryenSelectSetIfTrue:D_,_BinaryenSelectGetIfFalse:bn,_BinaryenSelectSetIfFalse:U_,_BinaryenSelectGetCondition:xn,_BinaryenSelectSetCondition:V_,_BinaryenDrop:Ao,_BinaryenDropGetValue:Tn,_BinaryenDropSetValue:O_,_BinaryenReturn:q_,_BinaryenReturnGetValue:Er,_BinaryenReturnSetValue:Xs,_BinaryenNop:W_,_BinaryenUnreachable:K_,_BinaryenAtomicRMW:j_,_BinaryenAtomicRMWGetOp:PL,_BinaryenAtomicRMWSetOp:NL,_BinaryenAtomicRMWGetBytes:BL,_BinaryenAtomicRMWSetBytes:LL,_BinaryenAtomicRMWGetOffset:ML,_BinaryenAtomicRMWSetOffset:zL,_BinaryenAtomicRMWGetPtr:vo,_BinaryenAtomicRMWSetPtr:Q_,_BinaryenAtomicRMWGetValue:So,_BinaryenAtomicRMWSetValue:H_,_BinaryenAtomicCmpxchg:X_,_BinaryenAtomicCmpxchgGetBytes:GL,_BinaryenAtomicCmpxchgSetBytes:DL,_BinaryenAtomicCmpxchgGetOffset:UL,_BinaryenAtomicCmpxchgSetOffset:VL,_BinaryenAtomicCmpxchgGetPtr:Io,_BinaryenAtomicCmpxchgSetPtr:Z_,_BinaryenAtomicCmpxchgGetExpected:ko,_BinaryenAtomicCmpxchgSetExpected:Y_,_BinaryenAtomicCmpxchgGetReplacement:Fo,_BinaryenAtomicCmpxchgSetReplacement:$_,_BinaryenAtomicWait:J_,_BinaryenAtomicWaitGetPtr:Ro,_BinaryenAtomicWaitSetPtr:eh,_BinaryenAtomicWaitGetExpected:wo,_BinaryenAtomicWaitSetExpected:th,_BinaryenAtomicWaitGetTimeout:Co,_BinaryenAtomicWaitSetTimeout:rh,_BinaryenAtomicWaitGetExpectedType:OL,_BinaryenAtomicWaitSetExpectedType:qL,_BinaryenAtomicNotify:ih,_BinaryenAtomicNotifyGetPtr:Po,_BinaryenAtomicNotifySetPtr:nh,_BinaryenAtomicNotifyGetNotifyCount:No,_BinaryenAtomicNotifySetNotifyCount:sh,_BinaryenAtomicFence:lh,_BinaryenAtomicFenceGetOrder:WL,_BinaryenAtomicFenceSetOrder:KL,_BinaryenSIMDExtract:ah,_BinaryenSIMDExtractGetOp:jL,_BinaryenSIMDExtractSetOp:QL,_BinaryenSIMDExtractGetVec:Bo,_BinaryenSIMDExtractSetVec:oh,_BinaryenSIMDExtractGetIndex:HL,_BinaryenSIMDExtractSetIndex:XL,_BinaryenSIMDReplace:uh,_BinaryenSIMDReplaceGetOp:ZL,_BinaryenSIMDReplaceSetOp:YL,_BinaryenSIMDReplaceGetVec:Lo,_BinaryenSIMDReplaceSetVec:ph,_BinaryenSIMDReplaceGetIndex:$L,_BinaryenSIMDReplaceSetIndex:JL,_BinaryenSIMDReplaceGetValue:Mo,_BinaryenSIMDReplaceSetValue:ch,_BinaryenSIMDShuffle:fh,_BinaryenSIMDShuffleGetLeft:zo,_BinaryenSIMDShuffleSetLeft:_h,_BinaryenSIMDShuffleGetRight:Go,_BinaryenSIMDShuffleSetRight:hh,_BinaryenSIMDShuffleGetMask:eM,_BinaryenSIMDShuffleSetMask:tM,_BinaryenSIMDTernary:dh,_BinaryenSIMDTernaryGetOp:rM,_BinaryenSIMDTernarySetOp:iM,_BinaryenSIMDTernaryGetA:Do,_BinaryenSIMDTernarySetA:mh,_BinaryenSIMDTernaryGetB:Uo,_BinaryenSIMDTernarySetB:yh,_BinaryenSIMDTernaryGetC:Vo,_BinaryenSIMDTernarySetC:gh,_BinaryenSIMDShift:bh,_BinaryenSIMDShiftGetOp:nM,_BinaryenSIMDShiftSetOp:sM,_BinaryenSIMDShiftGetVec:Oo,_BinaryenSIMDShiftSetVec:xh,_BinaryenSIMDShiftGetShift:qo,_BinaryenSIMDShiftSetShift:Th,_BinaryenSIMDLoad:Eh,_BinaryenSIMDLoadGetOp:lM,_BinaryenSIMDLoadSetOp:aM,_BinaryenSIMDLoadGetOffset:oM,_BinaryenSIMDLoadSetOffset:uM,_BinaryenSIMDLoadGetAlign:pM,_BinaryenSIMDLoadSetAlign:cM,_BinaryenSIMDLoadGetPtr:Wo,_BinaryenSIMDLoadSetPtr:Ah,_BinaryenSIMDLoadStoreLane:vh,_BinaryenSIMDLoadStoreLaneGetOp:fM,_BinaryenSIMDLoadStoreLaneSetOp:_M,_BinaryenSIMDLoadStoreLaneGetOffset:hM,_BinaryenSIMDLoadStoreLaneSetOffset:dM,_BinaryenSIMDLoadStoreLaneGetAlign:mM,_BinaryenSIMDLoadStoreLaneSetAlign:yM,_BinaryenSIMDLoadStoreLaneGetIndex:gM,_BinaryenSIMDLoadStoreLaneSetIndex:bM,_BinaryenSIMDLoadStoreLaneGetPtr:Ko,_BinaryenSIMDLoadStoreLaneSetPtr:Sh,_BinaryenSIMDLoadStoreLaneGetVec:jo,_BinaryenSIMDLoadStoreLaneSetVec:Ih,_BinaryenSIMDLoadStoreLaneIsStore:xM,_BinaryenMemoryInit:TM,_BinaryenMemoryInitGetSegment:EM,_BinaryenMemoryInitSetSegment:AM,_BinaryenMemoryInitGetDest:Qo,_BinaryenMemoryInitSetDest:kh,_BinaryenMemoryInitGetOffset:Ho,_BinaryenMemoryInitSetOffset:Fh,_BinaryenMemoryInitGetSize:Xo,_BinaryenMemoryInitSetSize:Rh,_BinaryenDataDrop:vM,_BinaryenDataDropGetSegment:SM,_BinaryenDataDropSetSegment:IM,_BinaryenMemoryCopy:wh,_BinaryenMemoryCopyGetDest:Zo,_BinaryenMemoryCopySetDest:Ch,_BinaryenMemoryCopyGetSource:Yo,_BinaryenMemoryCopySetSource:Ph,_BinaryenMemoryCopyGetSize:$o,_BinaryenMemoryCopySetSize:Nh,_BinaryenMemoryFill:Bh,_BinaryenMemoryFillGetDest:Jo,_BinaryenMemoryFillSetDest:Lh,_BinaryenMemoryFillGetValue:eu,_BinaryenMemoryFillSetValue:Mh,_BinaryenMemoryFillGetSize:tu,_BinaryenMemoryFillSetSize:zh,_BinaryenRefNull:Gh,_BinaryenRefIsNull:Dh,_BinaryenRefIsNullGetValue:ru,_BinaryenRefIsNullSetValue:Uh,_BinaryenRefAs:iu,_BinaryenRefAsGetOp:kM,_BinaryenRefAsSetOp:FM,_BinaryenRefAsGetValue:nu,_BinaryenRefAsSetValue:Vh,_BinaryenRefFunc:Oh,_BinaryenRefFuncGetFunc:qh,_BinaryenRefFuncSetFunc:RM,_BinaryenRefEq:Wh,_BinaryenRefEqGetLeft:su,_BinaryenRefEqSetLeft:Kh,_BinaryenRefEqGetRight:lu,_BinaryenRefEqSetRight:jh,_BinaryenTableGet:Qh,_BinaryenTableGetGetTable:wM,_BinaryenTableGetSetTable:CM,_BinaryenTableGetGetIndex:PM,_BinaryenTableGetSetIndex:NM,_BinaryenTableSet:Hh,_BinaryenTableSetGetTable:BM,_BinaryenTableSetSetTable:LM,_BinaryenTableSetGetIndex:MM,_BinaryenTableSetSetIndex:zM,_BinaryenTableSetGetValue:GM,_BinaryenTableSetSetValue:DM,_BinaryenTableSize:Xh,_BinaryenTableSizeGetTable:UM,_BinaryenTableSizeSetTable:VM,_BinaryenTableGrow:Zh,_BinaryenTableGrowGetTable:OM,_BinaryenTableGrowSetTable:qM,_BinaryenTableGrowGetValue:WM,_BinaryenTableGrowSetValue:KM,_BinaryenTableGrowGetDelta:jM,_BinaryenTableGrowSetDelta:QM,_BinaryenTry:Yh,_BinaryenTryGetName:HM,_BinaryenTrySetName:XM,_BinaryenTryGetBody:au,_BinaryenTrySetBody:$h,_BinaryenTryGetNumCatchTags:ZM,_BinaryenTryGetNumCatchBodies:ou,_BinaryenTryGetCatchTagAt:YM,_BinaryenTrySetCatchTagAt:$M,_BinaryenTryAppendCatchTag:JM,_BinaryenTryInsertCatchTagAt:e7,_BinaryenTryRemoveCatchTagAt:t7,_BinaryenTryGetCatchBodyAt:uu,_BinaryenTrySetCatchBodyAt:Jh,_BinaryenTryAppendCatchBody:r7,_BinaryenTryInsertCatchBodyAt:i7,_BinaryenTryRemoveCatchBodyAt:n7,_BinaryenTryHasCatchAll:s7,_BinaryenTryGetDelegateTarget:l7,_BinaryenTrySetDelegateTarget:a7,_BinaryenTryIsDelegate:o7,_BinaryenThrow:ed,_BinaryenThrowGetTag:td,_BinaryenThrowSetTag:u7,_BinaryenThrowGetNumOperands:pu,_BinaryenThrowGetOperandAt:cu,_BinaryenThrowSetOperandAt:rd,_BinaryenThrowAppendOperand:p7,_BinaryenThrowInsertOperandAt:c7,_BinaryenThrowRemoveOperandAt:f7,_BinaryenRethrow:id,_BinaryenRethrowGetTarget:_7,_BinaryenRethrowSetDepth:h7,_BinaryenTupleMake:nd,_BinaryenTupleMakeGetNumOperands:fu,_BinaryenTupleMakeGetOperandAt:_u,_BinaryenTupleMakeSetOperandAt:sd,_BinaryenTupleMakeAppendOperand:d7,_BinaryenTupleMakeInsertOperandAt:m7,_BinaryenTupleMakeRemoveOperandAt:y7,_BinaryenTupleExtract:ld,_BinaryenTupleExtractGetTuple:hu,_BinaryenTupleExtractSetTuple:ad,_BinaryenTupleExtractGetIndex:g7,_BinaryenTupleExtractSetIndex:b7,_BinaryenPop:od,_BinaryenRefI31:ud,_BinaryenRefI31GetValue:du,_BinaryenRefI31SetValue:pd,_BinaryenI31Get:cd,_BinaryenI31GetGetI31:mu,_BinaryenI31GetSetI31:fd,_BinaryenI31GetIsSigned:x7,_BinaryenI31GetSetSigned:T7,_BinaryenCallRef:E7,_BinaryenCallRefGetNumOperands:yu,_BinaryenCallRefGetOperandAt:gu,_BinaryenCallRefSetOperandAt:_d,_BinaryenCallRefAppendOperand:A7,_BinaryenCallRefInsertOperandAt:v7,_BinaryenCallRefRemoveOperandAt:S7,_BinaryenCallRefGetTarget:bu,_BinaryenCallRefSetTarget:hd,_BinaryenCallRefIsReturn:I7,_BinaryenCallRefSetReturn:k7,_BinaryenRefTest:F7,_BinaryenRefTestGetRef:xu,_BinaryenRefTestSetRef:dd,_BinaryenRefTestGetCastType:R7,_BinaryenRefTestSetCastType:w7,_BinaryenRefCast:C7,_BinaryenRefCastGetRef:Tu,_BinaryenRefCastSetRef:md,_BinaryenBrOn:P7,_BinaryenBrOnGetOp:N7,_BinaryenBrOnSetOp:B7,_BinaryenBrOnGetName:yd,_BinaryenBrOnSetName:L7,_BinaryenBrOnGetRef:Eu,_BinaryenBrOnSetRef:gd,_BinaryenBrOnGetCastType:M7,_BinaryenBrOnSetCastType:z7,_BinaryenStructNew:G7,_BinaryenStructNewGetNumOperands:Au,_BinaryenStructNewGetOperandAt:vu,_BinaryenStructNewSetOperandAt:bd,_BinaryenStructNewAppendOperand:D7,_BinaryenStructNewInsertOperandAt:U7,_BinaryenStructNewRemoveOperandAt:V7,_BinaryenStructGet:O7,_BinaryenStructGetGetIndex:xd,_BinaryenStructGetSetIndex:q7,_BinaryenStructGetGetRef:Su,_BinaryenStructGetSetRef:Td,_BinaryenStructGetIsSigned:W7,_BinaryenStructGetSetSigned:K7,_BinaryenStructSet:j7,_BinaryenStructSetGetIndex:Ed,_BinaryenStructSetSetIndex:Q7,_BinaryenStructSetGetRef:Iu,_BinaryenStructSetSetRef:Ad,_BinaryenStructSetGetValue:ku,_BinaryenStructSetSetValue:vd,_BinaryenArrayNew:H7,_BinaryenArrayNewGetInit:Fu,_BinaryenArrayNewSetInit:Sd,_BinaryenArrayNewGetSize:Ru,_BinaryenArrayNewSetSize:Id,_BinaryenArrayNewFixed:X7,_BinaryenArrayNewFixedGetNumValues:wu,_BinaryenArrayNewFixedGetValueAt:Cu,_BinaryenArrayNewFixedSetValueAt:kd,_BinaryenArrayNewFixedAppendValue:Z7,_BinaryenArrayNewFixedInsertValueAt:Y7,_BinaryenArrayNewFixedRemoveValueAt:$7,_BinaryenArrayNewData:J7,_BinaryenArrayNewDataGetSegment:ez,_BinaryenArrayNewDataSetSegment:tz,_BinaryenArrayNewDataGetOffset:rz,_BinaryenArrayNewDataSetOffset:iz,_BinaryenArrayNewDataGetSize:nz,_BinaryenArrayNewDataSetSize:sz,_BinaryenArrayNewElem:lz,_BinaryenArrayNewElemGetSegment:az,_BinaryenArrayNewElemSetSegment:oz,_BinaryenArrayNewElemGetOffset:uz,_BinaryenArrayNewElemSetOffset:pz,_BinaryenArrayNewElemGetSize:cz,_BinaryenArrayNewElemSetSize:fz,_BinaryenArrayGet:_z,_BinaryenArrayGetGetRef:Pu,_BinaryenArrayGetSetRef:Fd,_BinaryenArrayGetGetIndex:Nu,_BinaryenArrayGetSetIndex:Rd,_BinaryenArrayGetIsSigned:hz,_BinaryenArrayGetSetSigned:dz,_BinaryenArraySet:mz,_BinaryenArraySetGetRef:Bu,_BinaryenArraySetSetRef:wd,_BinaryenArraySetGetIndex:Lu,_BinaryenArraySetSetIndex:Cd,_BinaryenArraySetGetValue:Mu,_BinaryenArraySetSetValue:Pd,_BinaryenArrayLen:yz,_BinaryenArrayLenGetRef:zu,_BinaryenArrayLenSetRef:Nd,_BinaryenArrayFill:gz,_BinaryenArrayFillGetRef:bz,_BinaryenArrayFillSetRef:xz,_BinaryenArrayFillGetIndex:Tz,_BinaryenArrayFillSetIndex:Ez,_BinaryenArrayFillGetValue:Az,_BinaryenArrayFillSetValue:vz,_BinaryenArrayFillGetSize:Sz,_BinaryenArrayFillSetSize:Iz,_BinaryenArrayCopy:kz,_BinaryenArrayCopyGetDestRef:Gu,_BinaryenArrayCopySetDestRef:Bd,_BinaryenArrayCopyGetDestIndex:Du,_BinaryenArrayCopySetDestIndex:Ld,_BinaryenArrayCopyGetSrcRef:Uu,_BinaryenArrayCopySetSrcRef:Md,_BinaryenArrayCopyGetSrcIndex:Vu,_BinaryenArrayCopySetSrcIndex:zd,_BinaryenArrayCopyGetLength:Ou,_BinaryenArrayCopySetLength:Gd,_BinaryenArrayInitData:Fz,_BinaryenArrayInitDataGetSegment:Rz,_BinaryenArrayInitDataSetSegment:wz,_BinaryenArrayInitDataGetRef:Cz,_BinaryenArrayInitDataSetRef:Pz,_BinaryenArrayInitDataGetIndex:Nz,_BinaryenArrayInitDataSetIndex:Bz,_BinaryenArrayInitDataGetOffset:Lz,_BinaryenArrayInitDataSetOffset:Mz,_BinaryenArrayInitDataGetSize:zz,_BinaryenArrayInitDataSetSize:Gz,_BinaryenArrayInitElem:Dz,_BinaryenArrayInitElemGetSegment:Uz,_BinaryenArrayInitElemSetSegment:Vz,_BinaryenArrayInitElemGetRef:Oz,_BinaryenArrayInitElemSetRef:qz,_BinaryenArrayInitElemGetIndex:Wz,_BinaryenArrayInitElemSetIndex:Kz,_BinaryenArrayInitElemGetOffset:jz,_BinaryenArrayInitElemSetOffset:Qz,_BinaryenArrayInitElemGetSize:Hz,_BinaryenArrayInitElemSetSize:Xz,_BinaryenStringNew:Zz,_BinaryenStringNewGetOp:Yz,_BinaryenStringNewSetOp:$z,_BinaryenStringNewGetRef:qu,_BinaryenStringNewSetRef:Dd,_BinaryenStringNewGetStart:Wu,_BinaryenStringNewSetStart:Ud,_BinaryenStringNewGetEnd:Ku,_BinaryenStringNewSetEnd:Vd,_BinaryenStringConst:Jz,_BinaryenStringConstGetString:eG,_BinaryenStringConstSetString:tG,_BinaryenStringMeasure:rG,_BinaryenStringMeasureGetOp:iG,_BinaryenStringMeasureSetOp:nG,_BinaryenStringMeasureGetRef:ju,_BinaryenStringMeasureSetRef:Od,_BinaryenStringEncode:sG,_BinaryenStringEncodeGetOp:lG,_BinaryenStringEncodeSetOp:aG,_BinaryenStringEncodeGetStr:Qu,_BinaryenStringEncodeSetStr:qd,_BinaryenStringEncodeGetArray:Hu,_BinaryenStringEncodeSetArray:Wd,_BinaryenStringEncodeGetStart:Xu,_BinaryenStringEncodeSetStart:Kd,_BinaryenStringConcat:oG,_BinaryenStringConcatGetLeft:Zu,_BinaryenStringConcatSetLeft:jd,_BinaryenStringConcatGetRight:Yu,_BinaryenStringConcatSetRight:Qd,_BinaryenStringEq:$u,_BinaryenStringEqGetOp:uG,_BinaryenStringEqSetOp:pG,_BinaryenStringEqGetLeft:Ju,_BinaryenStringEqSetLeft:Hd,_BinaryenStringEqGetRight:ep,_BinaryenStringEqSetRight:Xd,_BinaryenStringWTF16Get:cG,_BinaryenStringWTF16GetGetRef:tp,_BinaryenStringWTF16GetSetRef:Zd,_BinaryenStringWTF16GetGetPos:rp,_BinaryenStringWTF16GetSetPos:Yd,_BinaryenStringSliceWTF:fG,_BinaryenStringSliceWTFGetRef:ip,_BinaryenStringSliceWTFSetRef:$d,_BinaryenStringSliceWTFGetStart:np,_BinaryenStringSliceWTFSetStart:Jd,_BinaryenStringSliceWTFGetEnd:sp,_BinaryenStringSliceWTFSetEnd:em,_BinaryenAddFunction:oi,_BinaryenGetFunction:ui,_BinaryenRemoveFunction:En,_BinaryenGetNumFunctions:tm,_BinaryenGetFunctionByIndex:rm,_BinaryenFunctionGetName:pi,_BinaryenFunctionGetParams:An,_BinaryenFunctionGetResults:vn,_BinaryenFunctionGetNumVars:Zs,_BinaryenFunctionGetVar:Ys,_BinaryenFunctionAddVar:_G,_BinaryenFunctionGetNumLocals:lp,_BinaryenFunctionHasLocalName:hG,_BinaryenFunctionGetLocalName:dG,_BinaryenFunctionSetLocalName:im,_BinaryenFunctionGetBody:$t,_BinaryenFunctionSetBody:$s,_BinaryenFunctionGetType:mG,_BinaryenFunctionSetType:yG,_BinaryenFunctionOptimize:gG,_BinaryenFunctionRunPasses:nm,_BinaryenFunctionSetDebugLocation:sm,_BinaryenAddFunctionImport:lm,_BinaryenAddTableImport:am,_BinaryenAddMemoryImport:om,_BinaryenAddGlobalImport:um,_BinaryenAddTagImport:pm,_BinaryenAddFunctionExport:Js,_BinaryenAddTableExport:cm,_BinaryenAddMemoryExport:fm,_BinaryenAddGlobalExport:_m,_BinaryenAddTagExport:hm,_BinaryenGetExport:el,_BinaryenRemoveExport:tl,_BinaryenGetNumExports:bG,_BinaryenGetExportByIndex:xG,_BinaryenExportGetKind:dm,_BinaryenExportGetName:mm,_BinaryenExportGetValue:ym,_BinaryenAddGlobal:gm,_BinaryenGetGlobal:ap,_BinaryenRemoveGlobal:bm,_BinaryenGetNumGlobals:xm,_BinaryenGetGlobalByIndex:Tm,_BinaryenGlobalGetName:Em,_BinaryenGlobalGetType:Am,_BinaryenGlobalIsMutable:vm,_BinaryenGlobalGetInitExpr:rl,_BinaryenAddTag:Sm,_BinaryenGetTag:Im,_BinaryenRemoveTag:km,_BinaryenTagGetName:Fm,_BinaryenTagGetParams:Rm,_BinaryenTagGetResults:wm,_BinaryenAddTable:op,_BinaryenRemoveTable:TG,_BinaryenGetNumTables:EG,_BinaryenGetTable:up,_BinaryenGetTableByIndex:AG,_BinaryenTableGetName:vG,_BinaryenTableSetName:SG,_BinaryenTableGetInitial:IG,_BinaryenTableSetInitial:Cm,_BinaryenTableHasMax:kG,_BinaryenTableGetMax:FG,_BinaryenTableSetMax:Pm,_BinaryenTableGetType:RG,_BinaryenTableSetType:wG,_BinaryenAddActiveElementSegment:Nm,_BinaryenAddPassiveElementSegment:CG,_BinaryenRemoveElementSegment:PG,_BinaryenGetNumElementSegments:NG,_BinaryenGetElementSegment:BG,_BinaryenGetElementSegmentByIndex:LG,_BinaryenSetMemory:Bm,_BinaryenGetNumMemorySegments:MG,_BinaryenGetMemorySegmentByteOffset:zG,_BinaryenGetMemorySegmentByteLength:GG,_BinaryenCopyMemorySegmentData:DG,_BinaryenAddDataSegment:UG,_BinaryenSetStart:Lm,_BinaryenGetStart:VG,_BinaryenModuleParse:OG,_BinaryenModulePrint:qG,_BinaryenModulePrintAsmjs:WG,_BinaryenModuleValidate:Mm,_BinaryenModuleOptimize:KG,_BinaryenModuleRunPasses:zm,_BinaryenSizeofAllocateAndWriteResult:Gm,_BinaryenModuleAllocateAndWrite:Dm,_BinaryenModuleAllocateAndWriteText:Um,_BinaryenModuleAllocateAndWriteStackIR:Vm,_BinaryenModuleRead:Om,_BinaryenModuleReadWithFeatures:jG,_BinaryenModuleInterpret:qm,_BinaryenModuleAddDebugInfoFileName:Wm,_BinaryenModuleGetDebugInfoFileName:Km,_BinaryenModuleGetFeatures:jm,_BinaryenModuleSetFeatures:Qm,_BinaryenAddCustomSection:Hm,_BinaryenExpressionGetSideEffects:Xm,_RelooperCreate:Zm,_RelooperAddBlock:Ym,_RelooperAddBranch:$m,_RelooperAddBlockWithSwitch:Jm,_RelooperAddBranchForSwitch:ey,_RelooperRenderAndDispose:ty,_ExpressionRunnerCreate:ry,_ExpressionRunnerSetLocalValue:QG,_ExpressionRunnerSetGlobalValue:HG,_ExpressionRunnerRunAndDispose:iy,_TypeBuilderCreate:ny,_TypeBuilderGrow:pp,_TypeBuilderGetSize:il,_TypeBuilderSetSignatureType:sy,_TypeBuilderSetStructType:ly,_TypeBuilderSetArrayType:XG,_TypeBuilderGetTempHeapType:cp,_TypeBuilderGetTempTupleType:fp,_TypeBuilderGetTempRefType:ci,_TypeBuilderSetSubType:ay,_TypeBuilderSetOpen:ZG,_TypeBuilderCreateRecGroup:YG,_TypeBuilderBuildAndDispose:oy,_BinaryenModuleSetTypeName:uy,_BinaryenModuleSetFieldName:py,_BinaryenGetOptimizeLevel:cy,_BinaryenSetOptimizeLevel:fy,_BinaryenGetShrinkLevel:_y,_BinaryenSetShrinkLevel:hy,_BinaryenGetDebugInfo:dy,_BinaryenSetDebugInfo:my,_BinaryenGetTrapsNeverHappen:yy,_BinaryenSetTrapsNeverHappen:gy,_BinaryenGetClosedWorld:by,_BinaryenSetClosedWorld:xy,_BinaryenGetLowMemoryUnused:Ty,_BinaryenSetLowMemoryUnused:Ey,_BinaryenGetZeroFilledMemory:Ay,_BinaryenSetZeroFilledMemory:vy,_BinaryenGetFastMath:Sy,_BinaryenSetFastMath:Iy,_BinaryenGetGenerateStackIR:ky,_BinaryenSetGenerateStackIR:Fy,_BinaryenGetOptimizeStackIR:Ry,_BinaryenSetOptimizeStackIR:wy,_BinaryenGetPassArgument:Cy,_BinaryenSetPassArgument:Py,_BinaryenClearPassArguments:Ny,_BinaryenHasPassToSkip:$G,_BinaryenAddPassToSkip:JG,_BinaryenClearPassesToSkip:e9,_BinaryenGetAlwaysInlineMaxSize:By,_BinaryenSetAlwaysInlineMaxSize:Ly,_BinaryenGetFlexibleInlineMaxSize:My,_BinaryenSetFlexibleInlineMaxSize:zy,_BinaryenGetOneCallerInlineMaxSize:Gy,_BinaryenSetOneCallerInlineMaxSize:Dy,_BinaryenGetAllowInliningFunctionsWithLoops:Uy,_BinaryenSetAllowInliningFunctionsWithLoops:Vy,_malloc:ht,_free:te,__i32_store8:Ge,__i32_store16:t9,__i32_store:nl,__f32_store:r9,__f64_store:i9,__i32_load8_s:n9,__i32_load8_u:Ar,__i32_load16_s:s9,__i32_load16_u:l9,__i32_load:Jt,__f32_load:a9,__f64_load:o9}=tn;function Kx(r){return BigInt(r.high|0)<<32n|BigInt(r.low>>>0)}function jx(r){return Wx.fromBits(Number(r&0xFFFFFFFFn)|0,Number(r>>32n)|0)}function Oy(r,n){return tn._BinaryenLiteralInt64(r,Kx(n))}function _p(r){return jx(tn._BinaryenConstGetValueI64(r))}var Wy="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:Ky}=(await WebAssembly.instantiateStreaming(fetch(Wy))).instance.exports;var sl=new Float64Array(1),jy=new Float32Array(sl.buffer),fi=new Int32Array(sl.buffer);globalThis.f32_as_i32=function(n){return jy[0]=n,fi[0]};globalThis.i32_as_f32=function(n){return fi[0]=n,jy[0]};globalThis.f64_as_i64=function(n){return sl[0]=n,i64_new(fi[0],fi[1])};globalThis.i64_as_f64=function(n){return fi[0]=i64_low(n),fi[1]=i64_high(n),sl[0]};globalThis.f64_pow=Ky;import Ae from"long";globalThis.i64_zero=Ae.ZERO;globalThis.i64_one=Ae.ONE;globalThis.i64_neg_one=Ae.fromInt(-1);globalThis.i64_minimum=Ae.MIN_VALUE;globalThis.i64_maximum=Ae.MAX_VALUE;globalThis.i64_is=function(n){return Ae.isLong(n)};globalThis.i64_new=function(n,e){return Ae.fromBits(n,e)};globalThis.i64_low=function(n){return n.low};globalThis.i64_high=function(n){return n.high};globalThis.i64_not=function(n){return n.not()};globalThis.i64_neg=function(n){return n.neg()};globalThis.i64_clz=function(n){return n.clz()};globalThis.i64_ctz=function(n){return n.ctz()};globalThis.i64_add=function(n,e){return n.add(e)};globalThis.i64_sub=function(n,e){return n.sub(e)};globalThis.i64_mul=function(n,e){return n.mul(e)};globalThis.i64_pow=function(n,e){let t=e.low,i=e.high;if(i<=0){if(i<0)return n.eq(globalThis.i64_neg_one)?t&1?n:Ae.ONE:n.eq(Ae.ONE)?n:Ae.ZERO;if(t==0)return Ae.ONE;if(t==1)return n;if(t==2)return n.mul(n)}let s=Ae.ONE;for(;t|i;)t&1&&(s=s.mul(n)),e=e.shru(1),n=n.mul(n),t=e.low,i=e.high;return s};globalThis.i64_div=function(n,e){return n.div(e)};globalThis.i64_div_u=function(n,e){return n.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(n,e){return n.mod(e)};globalThis.i64_rem_u=function(n,e){return n.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(n,e){return n.and(e)};globalThis.i64_or=function(n,e){return n.or(e)};globalThis.i64_xor=function(n,e){return n.xor(e)};globalThis.i64_shl=function(n,e){return n.shl(e)};globalThis.i64_shr=function(n,e){return n.shr(e)};globalThis.i64_shr_u=function(n,e){return n.shru(e)};globalThis.i64_eq=function(n,e){return n.eq(e)};globalThis.i64_ne=function(n,e){return n.ne(e)};globalThis.i64_ge=function(n,e){return n.ge(e)};globalThis.i64_ge_u=function(n,e){return n.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(n,e){return n.gt(e)};globalThis.i64_gt_u=function(n,e){return n.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(n,e){return n.le(e)};globalThis.i64_le_u=function(n,e){return n.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(n,e){return n.lt(e)};globalThis.i64_lt_u=function(n,e){return n.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(n,e){assert(e&&(e&e-1)==0);let t=Ae.fromInt(e-1);return n.add(t).and(t.not())};globalThis.i64_signbit=function(n){return!!(n.high>>>31)};globalThis.i64_is_i8=function(n){return n.high===0&&n.low>=0&&n.low<=i8.MAX_VALUE||n.high===-1&&n.low>=i8.MIN_VALUE&&n.low<0};globalThis.i64_is_i16=function(n){return n.high===0&&n.low>=0&&n.low<=i16.MAX_VALUE||n.high===-1&&n.low>=i16.MIN_VALUE&&n.low<0};globalThis.i64_is_i32=function(n){return n.high===0&&n.low>=0||n.high===-1&&n.low<0};globalThis.i64_is_u8=function(n){return n.high===0&&n.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(n){return n.high===0&&n.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(n){return n.high===0};globalThis.i64_is_bool=function(n){return(n.high|n.low&-2)===0};var Qx=Ae.fromNumber(f32.MIN_SAFE_INTEGER),Hx=Ae.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(n){return n.gte(Qx)&&n.lte(Hx)};var Xx=Ae.fromNumber(f64.MIN_SAFE_INTEGER),Zx=Ae.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(n){return n.gte(Xx)&&n.lte(Zx)};globalThis.i64_to_f32=function(n){return globalThis.Math.fround(n.toNumber())};globalThis.i64_to_f64=function(n){return n.toNumber()};globalThis.i64_to_string=function(n,e){return e?n.toUnsigned().toString():n.toString()};globalThis.i64_clone=function(n){return Ae.fromBits(n.low,n.high,n.unsigned)};globalThis.Map_keys=function(n){return Array.from(n.keys())};globalThis.Map_values=function(n){return Array.from(n.values())};globalThis.Set_values=function(n){return Array.from(n.values())};var er=(x=>(x[x.None=0]="None",x[x.SignExtension=1]="SignExtension",x[x.MutableGlobals=2]="MutableGlobals",x[x.NontrappingF2I=4]="NontrappingF2I",x[x.BulkMemory=8]="BulkMemory",x[x.Simd=16]="Simd",x[x.Threads=32]="Threads",x[x.ExceptionHandling=64]="ExceptionHandling",x[x.TailCalls=128]="TailCalls",x[x.ReferenceTypes=256]="ReferenceTypes",x[x.MultiValue=512]="MultiValue",x[x.GC=1024]="GC",x[x.Memory64=2048]="Memory64",x[x.RelaxedSimd=4096]="RelaxedSimd",x[x.ExtendedConst=8192]="ExtendedConst",x[x.Strings=16384]="Strings",x[x.SharedEverything=32768]="SharedEverything",x[x.All=65535]="All",x))(er||{});function _i(r){switch(r){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything"}return assert(!1),""}var hi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(hi||{});var ll=(t=>(t[t.Stub=0]="Stub",t[t.Minimal=1]="Minimal",t[t.Incremental=2]="Incremental",t))(ll||{});var di=class{constructor(){this.flags=0}};di=pf([unmanaged],di);var al=(G=>(G[G.NONE=0]="NONE",G[G.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",G[G.ARRAY=2]="ARRAY",G[G.STATICARRAY=4]="STATICARRAY",G[G.SET=8]="SET",G[G.MAP=16]="MAP",G[G.POINTERFREE=32]="POINTERFREE",G[G.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",G[G.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",G[G.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",G[G.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",G[G.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",G[G.VALUE_SIGNED=2048]="VALUE_SIGNED",G[G.VALUE_FLOAT=4096]="VALUE_FLOAT",G[G.VALUE_NULLABLE=8192]="VALUE_NULLABLE",G[G.VALUE_MANAGED=16384]="VALUE_MANAGED",G[G.KEY_ALIGN_0=32768]="KEY_ALIGN_0",G[G.KEY_ALIGN_1=65536]="KEY_ALIGN_1",G[G.KEY_ALIGN_2=131072]="KEY_ALIGN_2",G[G.KEY_ALIGN_3=262144]="KEY_ALIGN_3",G[G.KEY_ALIGN_4=524288]="KEY_ALIGN_4",G[G.KEY_SIGNED=1048576]="KEY_SIGNED",G[G.KEY_FLOAT=2097152]="KEY_FLOAT",G[G.KEY_NULLABLE=4194304]="KEY_NULLABLE",G[G.KEY_MANAGED=8388608]="KEY_MANAGED",G))(al||{});var je=(j=>(j[j.None=0]="None",j[j.Import=1]="Import",j[j.Export=2]="Export",j[j.Declare=4]="Declare",j[j.Const=8]="Const",j[j.Let=16]="Let",j[j.Static=32]="Static",j[j.Readonly=64]="Readonly",j[j.Abstract=128]="Abstract",j[j.Public=256]="Public",j[j.Private=512]="Private",j[j.Protected=1024]="Protected",j[j.Get=2048]="Get",j[j.Set=4096]="Set",j[j.Override=8192]="Override",j[j.DefinitelyAssigned=16384]="DefinitelyAssigned",j[j.Ambient=32768]="Ambient",j[j.Generic=65536]="Generic",j[j.GenericContext=131072]="GenericContext",j[j.Instance=262144]="Instance",j[j.Constructor=524288]="Constructor",j[j.ModuleExport=1048576]="ModuleExport",j[j.ModuleImport=2097152]="ModuleImport",j[j.Resolved=4194304]="Resolved",j[j.Compiled=8388608]="Compiled",j[j.Errored=16777216]="Errored",j[j.Inlined=33554432]="Inlined",j[j.Scoped=67108864]="Scoped",j[j.Stub=134217728]="Stub",j[j.Overridden=268435456]="Overridden",j[j.Closure=536870912]="Closure",j[j.Quoted=1073741824]="Quoted",j[j.InternallyNullable=-2147483648]="InternallyNullable",j))(je||{}),lt="/",Yx="..",ol="get:",ul="set:",hp="#",Sn=".",dp="~",Qy="~lib",dt=Qy+lt,Ve=lt+"index",tr="@",z;(q=>(q.Empty="",q.i8="i8",q.i16="i16",q.i32="i32",q.i64="i64",q.isize="isize",q.u8="u8",q.u16="u16",q.u32="u32",q.u64="u64",q.usize="usize",q.bool="bool",q.f32="f32",q.f64="f64",q.v128="v128",q.ref_func="ref_func",q.ref_extern="ref_extern",q.ref_any="ref_any",q.ref_eq="ref_eq",q.ref_struct="ref_struct",q.ref_array="ref_array",q.ref_i31="ref_i31",q.ref_string="ref_string",q.ref_stringview_wtf8="ref_stringview_wtf8",q.ref_stringview_wtf16="ref_stringview_wtf16",q.ref_stringview_iter="ref_stringview_iter",q.i8x16="i8x16",q.u8x16="u8x16",q.i16x8="i16x8",q.u16x8="u16x8",q.i32x4="i32x4",q.u32x4="u32x4",q.i64x2="i64x2",q.u64x2="u64x2",q.f32x4="f32x4",q.f64x2="f64x2",q.void_="void",q.number="number",q.boolean="boolean",q.string="string",q.native="native",q.indexof="indexof",q.valueof="valueof",q.returnof="returnof",q.nonnull="nonnull",q.null_="null",q.true_="true",q.false_="false",q.this_="this",q.super_="super",q.constructor="constructor",q.ASC_TARGET="ASC_TARGET",q.ASC_RUNTIME="ASC_RUNTIME",q.ASC_NO_ASSERT="ASC_NO_ASSERT",q.ASC_MEMORY_BASE="ASC_MEMORY_BASE",q.ASC_TABLE_BASE="ASC_TABLE_BASE",q.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",q.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",q.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",q.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",q.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",q.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",q.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",q.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",q.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",q.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",q.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",q.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",q.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",q.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",q.ASC_FEATURE_GC="ASC_FEATURE_GC",q.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",q.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",q.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",q.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",q.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",q.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",q.ASC_VERSION_MINOR="ASC_VERSION_MINOR",q.ASC_VERSION_PATCH="ASC_VERSION_PATCH",q.EnumToString="__enum_to_string",q.I8="I8",q.I16="I16",q.I32="I32",q.I64="I64",q.Isize="Isize",q.U8="U8",q.U16="U16",q.U32="U32",q.U64="U64",q.Usize="Usize",q.Bool="Bool",q.F32="F32",q.F64="F64",q.V128="V128",q.RefFunc="RefFunc",q.RefExtern="RefExtern",q.RefAny="RefAny",q.RefEq="RefEq",q.RefStruct="RefStruct",q.RefArray="RefArray",q.RefI31="RefI31",q.RefString="RefString",q.String="String",q.RegExp="RegExp",q.Object="Object",q.Array="Array",q.StaticArray="StaticArray",q.Set="Set",q.Map="Map",q.Function="Function",q.ArrayBufferView="ArrayBufferView",q.ArrayBuffer="ArrayBuffer",q.Math="Math",q.Mathf="Mathf",q.NativeMath="NativeMath",q.NativeMathf="NativeMathf",q.Int8Array="Int8Array",q.Int16Array="Int16Array",q.Int32Array="Int32Array",q.Int64Array="Int64Array",q.Uint8Array="Uint8Array",q.Uint8ClampedArray="Uint8ClampedArray",q.Uint16Array="Uint16Array",q.Uint32Array="Uint32Array",q.Uint64Array="Uint64Array",q.Float32Array="Float32Array",q.Float64Array="Float64Array",q.TemplateStringsArray="TemplateStringsArray",q.Error="Error",q.abort="abort",q.trace="trace",q.seed="seed",q.pow="pow",q.ipow32="ipow32",q.ipow64="ipow64",q.mod="mod",q.alloc="__alloc",q.realloc="__realloc",q.free="__free",q.new_="__new",q.renew="__renew",q.link="__link",q.collect="__collect",q.visit="__visit",q.newBuffer="__newBuffer",q.newArray="__newArray",q.BLOCK="~lib/rt/common/BLOCK",q.OBJECT="~lib/rt/common/OBJECT",q.DefaultMemory="0",q.DefaultTable="0"))(z||={});var mt=(F=>(F[F.Not_implemented_0=100]="Not_implemented_0",F[F.Operation_is_unsafe=101]="Operation_is_unsafe",F[F.User_defined_0=102]="User_defined_0",F[F.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",F[F.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",F[F.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",F[F.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",F[F.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",F[F.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",F[F.Transform_0_1=109]="Transform_0_1",F[F.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",F[F.Element_0_not_found=111]="Element_0_not_found",F[F.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",F[F.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",F[F.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",F[F.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",F[F.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",F[F.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",F[F.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",F[F.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",F[F.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",F[F.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",F[F.Expression_is_never_null=210]="Expression_is_never_null",F[F.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",F[F.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",F[F.Duplicate_decorator=213]="Duplicate_decorator",F[F.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",F[F.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",F[F.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",F[F.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",F[F.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",F[F.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",F[F.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",F[F.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",F[F._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",F[F._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",F[F._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",F[F.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",F[F.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",F[F.Array_literal_expected=227]="Array_literal_expected",F[F.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",F[F.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",F[F._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",F[F.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",F[F.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",F[F.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",F[F.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",F[F.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",F[F.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",F[F.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",F[F.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",F[F.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",F[F.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",F[F.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",F[F.Promise_0_of_1_and_2_their_values_share_no_type_Await_them_one_by_one_or_give_them_a_common_base_class=243]="Promise_0_of_1_and_2_their_values_share_no_type_Await_them_one_by_one_or_give_them_a_common_base_class",F[F.Promise_0_takes_at_most_1_promises_of_different_types=244]="Promise_0_takes_at_most_1_promises_of_different_types",F[F._for_in_is_not_supported_an_object_has_no_properties_to_enumerate_at_run_time_Use_for_const_item_of_array_or_a_Map_for_const_key_of_map_keys=245]="_for_in_is_not_supported_an_object_has_no_properties_to_enumerate_at_run_time_Use_for_const_item_of_array_or_a_Map_for_const_key_of_map_keys",F[F.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",F[F.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",F[F.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",F[F.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",F[F.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",F[F.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",F[F._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",F[F.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",F[F.Unterminated_string_literal=1002]="Unterminated_string_literal",F[F.Identifier_expected=1003]="Identifier_expected",F[F._0_expected=1005]="_0_expected",F[F.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",F[F.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",F[F.Unexpected_token=1012]="Unexpected_token",F[F.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",F[F.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",F[F.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",F[F._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",F[F.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",F[F.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",F[F._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",F[F.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",F[F.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",F[F.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",F[F.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",F[F.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",F[F.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",F[F.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",F[F.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",F[F.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",F[F.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",F[F.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",F[F.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",F[F.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",F[F.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",F[F.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",F[F.Expression_expected=1109]="Expression_expected",F[F.Type_expected=1110]="Type_expected",F[F.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",F[F.Duplicate_label_0=1114]="Duplicate_label_0",F[F.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",F[F.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",F[F.Digit_expected=1124]="Digit_expected",F[F.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",F[F.Unexpected_end_of_text=1126]="Unexpected_end_of_text",F[F.Invalid_character=1127]="Invalid_character",F[F._case_or_default_expected=1130]="_case_or_default_expected",F[F._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",F[F.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",F[F.Type_argument_expected=1140]="Type_argument_expected",F[F.String_literal_expected=1141]="String_literal_expected",F[F.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",F[F.Declaration_expected=1146]="Declaration_expected",F[F._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",F[F.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",F[F.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",F[F.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",F[F.Binary_digit_expected=1177]="Binary_digit_expected",F[F.Octal_digit_expected=1178]="Octal_digit_expected",F[F.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",F[F.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",F[F.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",F[F.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",F[F.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",F[F._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",F[F.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",F[F.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",F[F.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",F[F.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type=1064]="The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type",F[F._await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules=1308]="_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules",F[F.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",F[F.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",F[F.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",F[F.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",F[F.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",F[F.Duplicate_identifier_0=2300]="Duplicate_identifier_0",F[F.Cannot_find_name_0=2304]="Cannot_find_name_0",F[F.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",F[F.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",F[F.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",F[F.Type_0_is_not_generic=2315]="Type_0_is_not_generic",F[F.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",F[F.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",F[F.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",F[F._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",F[F._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",F[F._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",F[F._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",F[F.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",F[F.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",F[F.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",F[F.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",F[F.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",F[F.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",F[F.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",F[F.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",F[F.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",F[F.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",F[F.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",F[F._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",F[F.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",F[F.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",F[F.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",F[F.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",F[F.Duplicate_function_implementation=2393]="Duplicate_function_implementation",F[F.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",F[F.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",F[F.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",F[F.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",F[F.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",F[F.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",F[F.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",F[F.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",F[F.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",F[F.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",F[F.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",F[F.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",F[F.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",F[F.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",F[F.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",F[F.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",F[F.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",F[F.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",F[F.Tuple_type_0_of_length_1_has_no_element_at_index_2=2493]="Tuple_type_0_of_length_1_has_no_element_at_index_2",F[F._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",F[F.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",F[F.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",F[F.Object_is_possibly_null=2531]="Object_is_possibly_null",F[F.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",F[F.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",F[F.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",F[F.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",F[F.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",F[F.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",F[F.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",F[F.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",F[F._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",F[F._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",F[F.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",F[F.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",F[F.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",F[F.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",F[F.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",F[F.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",F[F.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",F[F.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",F[F.Duplicate_property_0=2718]="Duplicate_property_0",F[F.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",F[F.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",F[F.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",F[F.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",F[F.File_0_not_found=6054]="File_0_not_found",F[F.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",F[F.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",F[F.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",F[F._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",F[F._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",F))(mt||{});function pl(r){switch(r){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 243:return"Promise.{0} of '{1}' and '{2}': their values share no type. Await them one by one, or give them a common base class.";case 244:return"Promise.{0} takes at most {1} promises of different types.";case 245:return"'for...in' is not supported: an object has no properties to enumerate at run time. Use 'for (const item of array)', or a Map: 'for (const key of map.keys())'.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1064:return"The return type of an async function or method must be the global Promise<T> type.";case 1308:return"'await' expressions are only allowed within async functions and at the top levels of modules.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2493:return"Tuple type '{0}' of length '{1}' has no element at index '{2}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";default:return""}}var Ip={};ho(Ip,{BitSet:()=>gp,COLOR_BLUE:()=>b2,COLOR_CYAN:()=>Ap,COLOR_GRAY:()=>y2,COLOR_GREEN:()=>g2,COLOR_MAGENTA:()=>Ep,COLOR_RED:()=>gl,COLOR_RESET:()=>wn,COLOR_WHITE:()=>x2,COLOR_YELLOW:()=>Tp,CharCode:()=>at,SURROGATE_HIGH:()=>kn,SURROGATE_LOW:()=>gi,accuratePow64:()=>fl,cloneMap:()=>se,colorize:()=>T2,combineSurrogates:()=>Fn,dirname:()=>Yy,escapeString:()=>ve,indent:()=>Q,isAlpha:()=>xp,isAlphaOrDecimal:()=>Xy,isColorsEnabled:()=>xi,isDecimal:()=>tt,isHexBase:()=>Rn,isHexOrDecimal:()=>a2,isHighSurrogate:()=>bi,isIdentifier:()=>Oe,isIdentifierPart:()=>ir,isIdentifierStart:()=>kr,isLineBreak:()=>Ft,isLowSurrogate:()=>hl,isOctal:()=>dl,isPowerOf2:()=>kt,isSurrogate:()=>n2,isSurrogateHigh:()=>s2,isSurrogateLow:()=>l2,isWhiteSpace:()=>In,mergeMaps:()=>i2,normalizePath:()=>Rr,numCodeUnits:()=>Ir,readF32:()=>e2,readF64:()=>t2,readI16:()=>Jx,readI32:()=>mi,readI64:()=>Hy,readI8:()=>$x,readV128:()=>r2,resolvePath:()=>ml,setColorsEnabled:()=>bl,v128_ones:()=>Sp,v128_zero:()=>vp,writeF32:()=>vr,writeF64:()=>Sr,writeI16:()=>rr,writeI32:()=>be,writeI32AsI64:()=>cl,writeI64:()=>yi,writeI64AsI32:()=>mp,writeI8:()=>he,writeV128:()=>yp});function $x(r,n){return r[n]}function he(r,n,e){n[e]=r}function Jx(r,n){return i32(r[n])|i32(r[n+1])<<8}function rr(r,n,e){n[e]=r,n[e+1]=r>>>8}function mi(r,n){return i32(r[n])|i32(r[n+1])<<8|i32(r[n+2])<<16|i32(r[n+3])<<24}function be(r,n,e){n[e]=r,n[e+1]=r>>>8,n[e+2]=r>>>16,n[e+3]=r>>>24}function cl(r,n,e,t=!1){be(r,n,e),be(t||r>=0?0:-1,n,e+4)}function Hy(r,n){let e=mi(r,n),t=mi(r,n+4);return i64_new(e,t)}function yi(r,n,e){be(i64_low(r),n,e),be(i64_high(r),n,e+4)}function mp(r,n,e,t=!1){assert(t?i64_is_u32(r):i64_is_i32(r)),be(i64_low(r),n,e)}function e2(r,n){return i32_as_f32(mi(r,n))}function vr(r,n,e){be(f32_as_i32(r),n,e)}function t2(r,n){return i64_as_f64(Hy(r,n))}function Sr(r,n,e){let t=f64_as_i64(r);be(i64_low(t),n,e),be(i64_high(t),n,e+4)}function r2(r,n){return r.slice(n,n+16)}function yp(r,n,e){assert(r.length==16),n.set(r,e)}function se(r){if(ASC_TARGET){let n=new Map;if(r)for(let e=Map_keys(r),t=0,i=e.length;t<i;++t){let s=unchecked(e[t]),l=assert(r.get(s));n.set(s,l)}return n}else return new Map(r)}function i2(r,n){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(r),i=0,s=t.length;i<s;++i){let l=unchecked(t[i]),a=assert(r.get(l));e.set(l,a)}for(let t=Map_keys(n),i=0,s=t.length;i<s;++i){let l=unchecked(t[i]),a=assert(n.get(l));e.set(l,a)}return e}else{let e=new Map(r);return n.forEach((t,i)=>e.set(i,t)),e}}var gp=class{constructor(){this.clear()}get size(){let n=0,e=this.words;for(let t=0,i=e.length;t<i;t++){let s=unchecked(e[t]);s&&(n+=popcnt(s))}return n}add(n){let e=n>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<n),this}delete(n){let e=n>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<n))}has(n){let e=n>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[n>>>5])&1<<n)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let n=new Array(this.size);for(let e=0,t=0,i=this.words.length;e<i;++e){let s=unchecked(this.words[e]);for(;s;){let l=s&-s;unchecked(n[t++]=(e<<5)+popcnt(l-1)),s^=l}}return n}toString(){return`BitSet { ${this.toArray()} }`}};function kt(r){return r!=0&&(r&r-1)==0}function fl(r,n){return ASC_TARGET?Math.pow(r,n):f64_pow(r,n)}var at=(L=>(L[L.Null=0]="Null",L[L.LineFeed=10]="LineFeed",L[L.CarriageReturn=13]="CarriageReturn",L[L.LineSeparator=8232]="LineSeparator",L[L.ParagraphSeparator=8233]="ParagraphSeparator",L[L.NextLine=133]="NextLine",L[L.Space=32]="Space",L[L.NonBreakingSpace=160]="NonBreakingSpace",L[L.EnQuad=8192]="EnQuad",L[L.EmQuad=8193]="EmQuad",L[L.EnSpace=8194]="EnSpace",L[L.EmSpace=8195]="EmSpace",L[L.ThreePerEmSpace=8196]="ThreePerEmSpace",L[L.FourPerEmSpace=8197]="FourPerEmSpace",L[L.SixPerEmSpace=8198]="SixPerEmSpace",L[L.FigureSpace=8199]="FigureSpace",L[L.PunctuationSpace=8200]="PunctuationSpace",L[L.ThinSpace=8201]="ThinSpace",L[L.HairSpace=8202]="HairSpace",L[L.ZeroWidthSpace=8203]="ZeroWidthSpace",L[L.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",L[L.IdeographicSpace=12288]="IdeographicSpace",L[L.MathematicalSpace=8287]="MathematicalSpace",L[L.Ogham=5760]="Ogham",L[L._=95]="_",L[L._0=48]="_0",L[L._1=49]="_1",L[L._2=50]="_2",L[L._3=51]="_3",L[L._4=52]="_4",L[L._5=53]="_5",L[L._6=54]="_6",L[L._7=55]="_7",L[L._8=56]="_8",L[L._9=57]="_9",L[L.a=97]="a",L[L.b=98]="b",L[L.c=99]="c",L[L.d=100]="d",L[L.e=101]="e",L[L.f=102]="f",L[L.g=103]="g",L[L.h=104]="h",L[L.i=105]="i",L[L.j=106]="j",L[L.k=107]="k",L[L.l=108]="l",L[L.m=109]="m",L[L.n=110]="n",L[L.o=111]="o",L[L.p=112]="p",L[L.q=113]="q",L[L.r=114]="r",L[L.s=115]="s",L[L.t=116]="t",L[L.u=117]="u",L[L.v=118]="v",L[L.w=119]="w",L[L.x=120]="x",L[L.y=121]="y",L[L.z=122]="z",L[L.A=65]="A",L[L.B=66]="B",L[L.C=67]="C",L[L.D=68]="D",L[L.E=69]="E",L[L.F=70]="F",L[L.G=71]="G",L[L.H=72]="H",L[L.I=73]="I",L[L.J=74]="J",L[L.K=75]="K",L[L.L=76]="L",L[L.M=77]="M",L[L.N=78]="N",L[L.O=79]="O",L[L.P=80]="P",L[L.Q=81]="Q",L[L.R=82]="R",L[L.S=83]="S",L[L.T=84]="T",L[L.U=85]="U",L[L.V=86]="V",L[L.W=87]="W",L[L.X=88]="X",L[L.Y=89]="Y",L[L.Z=90]="Z",L[L.Ampersand=38]="Ampersand",L[L.Asterisk=42]="Asterisk",L[L.At=64]="At",L[L.Backslash=92]="Backslash",L[L.Backtick=96]="Backtick",L[L.Bar=124]="Bar",L[L.Caret=94]="Caret",L[L.CloseBrace=125]="CloseBrace",L[L.CloseBracket=93]="CloseBracket",L[L.CloseParen=41]="CloseParen",L[L.Colon=58]="Colon",L[L.Comma=44]="Comma",L[L.Dollar=36]="Dollar",L[L.Dot=46]="Dot",L[L.DoubleQuote=34]="DoubleQuote",L[L.Equals=61]="Equals",L[L.Exclamation=33]="Exclamation",L[L.GreaterThan=62]="GreaterThan",L[L.Hash=35]="Hash",L[L.LessThan=60]="LessThan",L[L.Minus=45]="Minus",L[L.OpenBrace=123]="OpenBrace",L[L.OpenBracket=91]="OpenBracket",L[L.OpenParen=40]="OpenParen",L[L.Percent=37]="Percent",L[L.Plus=43]="Plus",L[L.Question=63]="Question",L[L.Semicolon=59]="Semicolon",L[L.SingleQuote=39]="SingleQuote",L[L.Slash=47]="Slash",L[L.Tilde=126]="Tilde",L[L.Backspace=8]="Backspace",L[L.FormFeed=12]="FormFeed",L[L.ByteOrderMark=65279]="ByteOrderMark",L[L.Tab=9]="Tab",L[L.VerticalTab=11]="VerticalTab",L))(at||{});function Ft(r){switch(r){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function In(r){switch(r){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return r>=8192&&r<=8203}}var kn=55296,gi=56320;function n2(r){return(r&63488)==kn}function s2(r){return r<gi}function l2(r){return r>=gi}function bi(r){return(r&64512)==kn}function hl(r){return(r&64512)==gi}function Fn(r,n){return 65536+((r&1023)<<10)|n&1023}function Ir(r){return 1+i32(r>65535)}function xp(r){let n=r|32;return n>=97&&n<=122}function tt(r){return r>=48&&r<=57}function dl(r){return r>=48&&r<=55}function Rn(r){let n=r|32;return n>=97&&n<=102}function a2(r){return tt(r)||Rn(r)}function Xy(r){return xp(r)||tt(r)}function kr(r){return xp(r)||r==95||r==36||r>=u2&&r<=p2&&Zy(r,o2)}function ir(r){return Xy(r)||r==95||r==36||r>=f2&&r<=_2&&Zy(r,c2)}function Oe(r){let n=r.length;if(!n)return!1;let e=r.codePointAt(0);if(!kr(e))return!1;let t=Ir(e);for(;t<n;){if(e=r.codePointAt(t),!ir(e))return!1;t+=Ir(e)}return!0}var o2=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],u2=170,p2=210041,c2=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],f2=170,_2=917999;function Zy(r,n){let e=0,t=n.length;for(;e+1<t;){let i=e+(t-e>>>1);i-=i&1;let s=n[i];if(s<=r&&r<=n[i+1])return!0;r<s?t=i:e=i+2}return!1}var bp=" ",h2=" ",d2=" ",m2=" ",_l=new Map;function Q(r,n){if(n<=4)switch(n){case 1:r.push(bp);break;case 2:r.push(h2);break;case 3:r.push(d2);break;case 4:r.push(m2);break}else{let e;_l.size<=1024?_l.has(n)?e=assert(_l.get(n)):_l.set(n,e=bp.repeat(n)):e=bp.repeat(n),r.push(e)}}function ve(r,n){let e=new Array,t=0,i=0;for(let s=r.length;i<s;)switch(r.charCodeAt(i)){case 0:{i>t&&e.push(r.substring(t,t=i+1)),e.push("\\0"),t=++i;break}case 8:{i>t&&e.push(r.substring(t,i)),t=++i,e.push("\\b");break}case 9:{i>t&&e.push(r.substring(t,i)),t=++i,e.push("\\t");break}case 10:{i>t&&e.push(r.substring(t,i)),t=++i,e.push("\\n");break}case 11:{i>t&&e.push(r.substring(t,i)),t=++i,e.push("\\v");break}case 12:{i>t&&e.push(r.substring(t,i)),t=++i,e.push("\\f");break}case 13:{i>t&&e.push(r.substring(t,i)),e.push("\\r"),t=++i;break}case 34:{n==34?(i>t&&e.push(r.substring(t,i)),e.push('\\"'),t=++i):++i;break}case 39:{n==39?(i>t&&e.push(r.substring(t,i)),e.push("\\'"),t=++i):++i;break}case 92:{i>t&&e.push(r.substring(t,i)),e.push("\\\\"),t=++i;break}case 96:{n==96?(i>t&&e.push(r.substring(t,i)),e.push("\\`"),t=++i):++i;break}default:{++i;break}}return i>t&&e.push(r.substring(t,i)),e.join("")}var Fr=47;function Rr(r){let n=0,e=r.length;for(;n+1<e&&r.charCodeAt(n)==46&&r.charCodeAt(n+1)==Fr;)n+=2;(n>0||e<r.length)&&(r=r.substring(n,e),e-=n,n=0);let t;for(;n+1<e;){if(t=!1,r.charCodeAt(n)==Fr&&r.charCodeAt(n+1)==46){if(t=n+2==e,t||n+2<e&&r.charCodeAt(n+2)==Fr){r=t?r.substring(0,n):r.substring(0,n)+r.substring(n+2),e-=2;continue}if(t=n+3==e,t&&r.charCodeAt(n+2)==46||n+3<e&&r.charCodeAt(n+2)==46&&r.charCodeAt(n+3)==Fr){let i=n;for(;--i>=0;)if(r.charCodeAt(i)==Fr){(n-i!=3||r.charCodeAt(i+1)!=46||r.charCodeAt(i+2)!=46)&&(r=t?r.substring(0,i):r.substring(0,i)+r.substring(n+3),e-=n+3-i,n=i-1);break}if(i<0&&n>0&&(n!=2||r.charCodeAt(0)!=46||r.charCodeAt(1)!=46)){r=r.substring(n+4),e=r.length;continue}}}n++}return e>0?r:"."}function ml(r,n){return r.startsWith("std/")?r:Rr(Yy(n)+lt+r)}function Yy(r){let n=r.length;if(n<=1){if(n==0)return".";if(r.charCodeAt(0)==Fr)return r}for(;--n>0;)if(r.charCodeAt(n)==Fr)return r.substring(0,n);return"."}var y2="\x1B[90m",gl="\x1B[91m",g2="\x1B[92m",Tp="\x1B[93m",b2="\x1B[94m",Ep="\x1B[95m",Ap="\x1B[96m",x2="\x1B[97m",wn="\x1B[0m",yl=!0;function xi(){return yl}function bl(r){let n=yl;return yl=r,n}function T2(r,n){return yl?n+r+wn:r}var vp=new Uint8Array(16),Sp=new Uint8Array(16).fill(255);var Tl=(i=>(i[i.Pedantic=0]="Pedantic",i[i.Info=1]="Info",i[i.Warning=2]="Warning",i[i.Error=3]="Error",i))(Tl||{}),ue=class r{constructor(n,e){this.start=n;this.end=e}static join(n,e){if(n.source!=e.source)throw new Error("source mismatch");let t=new r(n.start<e.start?n.start:e.start,n.end>e.end?n.end:e.end);return t.source=n.source,t}equals(n){return this.source==n.source&&this.start==n.start&&this.end==n.end}get atStart(){let n=new r(this.start,this.start);return n.source=this.source,n}get atEnd(){let n=new r(this.end,this.end);return n.source=this.source,n}toString(){return this.source.text.substring(this.start,this.end)}};function kp(r){switch(r){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function Jy(r){switch(r){case 0:return Ep;case 1:return Ap;case 2:return Tp;case 3:return gl;default:return assert(!1),""}}var xl=class r{constructor(n,e,t){this.range=null;this.relatedRange=null;this.code=n,this.category=e,this.message=t}static create(n,e,t=null,i=null,s=null){let l=pl(n);return t!=null&&(l=l.replace("{0}",t)),i!=null&&(l=l.replace("{1}",i)),s!=null&&(l=l.replace("{2}",s)),new r(n,e,l)}equals(n){if(this.code!=n.code)return!1;let e=this.range,t=n.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let i=this.relatedRange,s=n.relatedRange;if(i){if(!s||!i.equals(s))return!1}else if(s)return!1;return this.message==n.message}withRange(n){return this.range=n,this}withRelatedRange(n){return this.relatedRange=n,this}toString(){let n=kp(this.category),e=this.range,t=this.code,i=this.message;if(e){let s=e.source,l=s.normalizedPath,a=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${n} ${t}: "${i}" in ${l}(${a},${o}+${u})`}return`${n} ${t}: ${i}`}};function eg(r,n=!1,e=!1){let t=bl(n),i=[];xi()&&i.push(Jy(r.category)),i.push(kp(r.category)),xi()&&i.push(wn),i.push(r.code<1e3?" AS":" TS"),i.push(r.code.toString()),i.push(": "),i.push(r.message);let s=r.range;if(s){let l=s.source,a=r.relatedRange,o=0;if(a&&(o=max(l.lineAt(s.start),a.source.lineAt(a.start))),e?(i.push(`
10
+ `),i.push($y(s,o))):(i.push(`
11
+ in `),i.push(l.normalizedPath)),i.push("("),i.push(l.lineAt(s.start).toString()),i.push(","),i.push(l.columnAt().toString()),i.push(")"),a){let u=a.source;e?(i.push(`
12
+ `),i.push($y(a,o))):(i.push(`
13
+ in `),i.push(u.normalizedPath)),i.push("("),i.push(u.lineAt(a.start).toString()),i.push(","),i.push(u.columnAt().toString()),i.push(")")}}return bl(t),i.join("")}function $y(r,n=0){let e=r.source,t=e.text,i=t.length,s=r.start,l=s,a=e.lineAt(s).toString(),o=n?max(n.toString().length,a.length):a.length,u=" ".repeat(o);for(;s>0&&!Ft(t.charCodeAt(s-1));)s--;for(;s<i&&In(t.charCodeAt(s));)s++;for(;l<i&&!Ft(t.charCodeAt(l));)l++;let c=[u,` :
14
+ `," ".repeat(o-a.length),a," \u2502 ",t.substring(s,l).replaceAll(" "," "),`
15
+ `,u," \u2502 "];for(;s<r.start;)t.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(xi()&&c.push(gl),r.start==r.end)c.push("^");else for(;s++<r.end;){let f=t.charCodeAt(s);if(f==9)c.push("~~");else if(Ft(f)){c.push(s==r.start+1?"^":"~");break}else c.push("~")}return xi()&&c.push(wn),c.push(`
16
+ `),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var Qe=class{constructor(n=null){this.seen=new Map;n||(n=[]),this.diagnostics=n}emitDiagnostic(n,e,t,i,s=null,l=null,a=null){let o=xl.create(n,e,s,l,a);if(t&&(o=o.withRange(t)),i&&(o.relatedRange=i),t){let u=this.seen;if(u.has(t.source)){let c=assert(u.get(t.source));if(c.has(t.start)){let f=assert(c.get(t.start));for(let _=0,h=f.length;_<h;++_)if(f[_].equals(o))return;f.push(o)}else c.set(t.start,[o])}else{let c=new Map;c.set(t.start,[o]),u.set(t.source,c)}}this.diagnostics.push(o)}pedantic(n,e,t=null,i=null,s=null){this.emitDiagnostic(n,0,e,null,t,i,s)}pedanticRelated(n,e,t,i=null,s=null,l=null){this.emitDiagnostic(n,0,e,t,i,s,l)}info(n,e,t=null,i=null,s=null){this.emitDiagnostic(n,1,e,null,t,i,s)}infoRelated(n,e,t,i=null,s=null,l=null){this.emitDiagnostic(n,1,e,t,i,s,l)}warning(n,e,t=null,i=null,s=null){this.emitDiagnostic(n,2,e,null,t,i,s)}warningRelated(n,e,t,i=null,s=null,l=null){this.emitDiagnostic(n,2,e,t,i,s,l)}error(n,e,t=null,i=null,s=null){this.emitDiagnostic(n,3,e,null,t,i,s)}errorRelated(n,e,t,i=null,s=null,l=null){this.emitDiagnostic(n,3,e,t,i,s,l)}};var Rt=(K=>(K[K.Source=0]="Source",K[K.NamedType=1]="NamedType",K[K.FunctionType=2]="FunctionType",K[K.TupleType=3]="TupleType",K[K.TypeName=4]="TypeName",K[K.TypeParameter=5]="TypeParameter",K[K.Parameter=6]="Parameter",K[K.Identifier=7]="Identifier",K[K.Assertion=8]="Assertion",K[K.Binary=9]="Binary",K[K.Call=10]="Call",K[K.Class=11]="Class",K[K.Comma=12]="Comma",K[K.ElementAccess=13]="ElementAccess",K[K.False=14]="False",K[K.Function=15]="Function",K[K.InstanceOf=16]="InstanceOf",K[K.Literal=17]="Literal",K[K.New=18]="New",K[K.Null=19]="Null",K[K.Omitted=20]="Omitted",K[K.Parenthesized=21]="Parenthesized",K[K.PropertyAccess=22]="PropertyAccess",K[K.Ternary=23]="Ternary",K[K.Super=24]="Super",K[K.This=25]="This",K[K.True=26]="True",K[K.Constructor=27]="Constructor",K[K.UnaryPostfix=28]="UnaryPostfix",K[K.UnaryPrefix=29]="UnaryPrefix",K[K.Compiled=30]="Compiled",K[K.Block=31]="Block",K[K.Break=32]="Break",K[K.Continue=33]="Continue",K[K.Do=34]="Do",K[K.Empty=35]="Empty",K[K.Export=36]="Export",K[K.ExportDefault=37]="ExportDefault",K[K.ExportImport=38]="ExportImport",K[K.Expression=39]="Expression",K[K.For=40]="For",K[K.ForOf=41]="ForOf",K[K.If=42]="If",K[K.Import=43]="Import",K[K.Return=44]="Return",K[K.Switch=45]="Switch",K[K.Throw=46]="Throw",K[K.Try=47]="Try",K[K.Variable=48]="Variable",K[K.Void=49]="Void",K[K.While=50]="While",K[K.Module=51]="Module",K[K.ClassDeclaration=52]="ClassDeclaration",K[K.EnumDeclaration=53]="EnumDeclaration",K[K.EnumValueDeclaration=54]="EnumValueDeclaration",K[K.FieldDeclaration=55]="FieldDeclaration",K[K.FunctionDeclaration=56]="FunctionDeclaration",K[K.ImportDeclaration=57]="ImportDeclaration",K[K.InterfaceDeclaration=58]="InterfaceDeclaration",K[K.MethodDeclaration=59]="MethodDeclaration",K[K.NamespaceDeclaration=60]="NamespaceDeclaration",K[K.TypeDeclaration=61]="TypeDeclaration",K[K.VariableDeclaration=62]="VariableDeclaration",K[K.Decorator=63]="Decorator",K[K.ExportMember=64]="ExportMember",K[K.SwitchCase=65]="SwitchCase",K[K.IndexSignature=66]="IndexSignature",K[K.Comment=67]="Comment",K))(Rt||{});function _e(r){let n=r.internalPath;if(!n.startsWith("~lib/"))return!0;if(!n.startsWith("~lib/~/"))return!1;let e=n.substring(7);return e!="facade"&&e!="natives"&&e!="constants"&&e!="events"&&e!="entities"&&e!="hooks"&&e!="flags"}var A=class r{constructor(n,e){this.kind=n;this.range=e}static createSimpleTypeName(n,e){return new Ei(r.createIdentifierExpression(n,e),null,e)}static createNamedType(n,e,t,i){return new wr(n,e,t,i)}static createFunctionType(n,e,t,i,s){return new Cr(n,e,t,i,s)}static createTupleType(n,e,t,i){return new El(n,e,t,i)}static createOmittedType(n){return new wr(r.createSimpleTypeName("",n),null,!1,n)}static createTypeParameter(n,e,t,i){return new Al(n,e,t,i)}static createParameter(n,e,t,i,s){return new Ai(n,e,t,i,s)}static createDecorator(n,e,t){return new vl(wt.fromNode(n),n,e,t)}static createComment(n,e,t){return new Sl(n,e,t)}static createIdentifierExpression(n,e,t=!1){return new He(n,t,e)}static createEmptyIdentifierExpression(n){return new He("",!1,n)}static createArrayLiteralExpression(n,e){return new Pr(n,e)}static createAssertionExpression(n,e,t,i){return new Il(n,e,t,i)}static createBinaryExpression(n,e,t,i){return new kl(n,e,t,i)}static createCallExpression(n,e,t,i){return new Fl(n,e,t,i)}static createClassExpression(n){return new Rl(n)}static createCommaExpression(n,e){return new wl(n,e)}static createConstructorExpression(n){return new Cl(n)}static createElementAccessExpression(n,e,t){return new Pl(n,e,t)}static createFalseExpression(n){return new Zl(n)}static createFloatLiteralExpression(n,e){return new Nl(n,e)}static createFunctionExpression(n){return new Bl(n)}static createInstanceOfExpression(n,e,t){return new Ll(n,e,t)}static createIntegerLiteralExpression(n,e){return new Ml(n,e)}static createNewExpression(n,e,t,i){return new zl(n,e,t,i)}static createNullExpression(n){return new Gl(n)}static createObjectLiteralExpression(n,e,t){return new Dl(n,e,t)}static createOmittedExpression(n){return new Ul(n)}static createParenthesizedExpression(n,e){return new Vl(n,e)}static createPropertyAccessExpression(n,e,t){return new Ol(n,e,t)}static createRegexpLiteralExpression(n,e,t){return new ql(n,e,t)}static createTernaryExpression(n,e,t,i){return new Wl(n,e,t,i)}static createStringLiteralExpression(n,e){return new Kl(n,e)}static createSuperExpression(n){return new jl(n)}static createTemplateLiteralExpression(n,e,t,i,s){return new Ql(n,e,t,i,s)}static createThisExpression(n){return new Hl(n)}static createTrueExpression(n){return new Xl(n)}static createUnaryPostfixExpression(n,e,t){return new Yl(n,e,t)}static createUnaryPrefixExpression(n,e,t){return new $l(n,e,t)}static createCompiledExpression(n,e,t){return new Jl(n,e,t)}static createBlockStatement(n,e){return new ta(n,e)}static createBreakStatement(n,e){return new ra(n,e)}static createClassDeclaration(n,e,t,i,s,l,a,o){return new Pn(n,e,t,i,s,l,a,o)}static createContinueStatement(n,e){return new ia(n,e)}static createDoStatement(n,e,t){return new na(n,e,t)}static createEmptyStatement(n){return new sa(n)}static createEnumDeclaration(n,e,t,i,s){return new la(n,e,t,i,s)}static createEnumValueDeclaration(n,e,t,i){return new aa(n,e,t,i)}static createExportStatement(n,e,t,i){return new pa(n,e,t,i)}static createExportDefaultStatement(n,e){return new ca(n,e)}static createExportImportStatement(n,e,t){return new oa(n,e,t)}static createExportMember(n,e,t){return e||(e=n),new ua(n,e,t)}static createExpressionStatement(n){return new fa(n)}static createIfStatement(n,e,t,i){return new ma(n,e,t,i)}static createImportStatement(n,e,t){return new Ln(n,null,e,t)}static createWildcardImportStatement(n,e,t){return new Ln(null,n,e,t)}static createImportDeclaration(n,e,t){return e||(e=n),new ya(e,n,t)}static createInterfaceDeclaration(n,e,t,i,s,l,a,o){return new ga(n,e,t,i,s,l,a,o)}static createFieldDeclaration(n,e,t,i,s,l){return new _a(n,e,t,i,s,-1,l)}static createForStatement(n,e,t,i,s){return new ha(n,e,t,i,s)}static createForOfStatement(n,e,t,i){return new da(n,e,t,i)}static createFunctionDeclaration(n,e,t,i,s,l,a,o){return new Bn(n,e,t,i,s,l,a,o)}static createIndexSignature(n,e,t,i){return new ea(n,e,t,i)}static createMethodDeclaration(n,e,t,i,s,l,a){return new Nr(n,e,t,i,s,l,a)}static createNamespaceDeclaration(n,e,t,i,s){return new ba(n,e,t,i,s)}static createReturnStatement(n,e){return new xa(n,e)}static createSwitchStatement(n,e,t){return new Ea(n,e,t)}static createSwitchCase(n,e,t){return new Ta(n,e,t)}static createThrowStatement(n,e){return new Aa(n,e)}static createTryStatement(n,e,t,i,s){return new va(n,e,t,i,s)}static createTypeDeclaration(n,e,t,i,s,l){return new Ia(n,e,t,i,s,l)}static createModuleDeclaration(n,e,t){return new Sa(n,e,t)}static createVariableStatement(n,e,t){return new Fa(n,e,t)}static createVariableDeclaration(n,e,t,i,s,l){return new ka(n,e,t,i,s,l)}static createVoidStatement(n,e){return new Ra(n,e)}static createWhileStatement(n,e,t){return new wa(n,e,t)}isLiteralKind(n){return this.kind==17&&changetype(this).literalKind==n}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(n){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==n}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},Ti=class extends A{constructor(e,t,i){super(e,i);this.isNullable=t;this.currentlyResolving=!1;this.orUndefined=!1}hasGenericComponent(e){if(this.kind==1){let t=changetype(this);if(!t.name.next){let i=t.typeArguments;if(i&&i.length>0){for(let s=0,l=i.length;s<l;++s)if(i[s].hasGenericComponent(e))return!0}else{let s=t.name.identifier.text;for(let l=0,a=e.length;l<a;++l)if(e[l].name.text==s)return!0}}}else if(this.kind==2){let t=changetype(this),i=t.parameters;for(let l=0,a=i.length;l<a;++l)if(i[l].type.hasGenericComponent(e))return!0;if(t.returnType.hasGenericComponent(e))return!0;let s=t.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let i=changetype(this).elements;for(let s=0,l=i.length;s<l;++s)if(i[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},Ei=class extends A{constructor(e,t,i){super(4,i);this.identifier=e;this.next=t}},wr=class extends Ti{constructor(e,t,i,s){super(1,i,s);this.name=e;this.typeArguments=t;this.keyofTarget=null;this.isBoolString=!1;this.indexType=null;this.acceptsFunction=null;this.acceptsBoolean=!1;this.stringLiterals=null;this.predicateParameter=null;this.predicateType=null;this.typeQuery=null;this.presetType=null}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Cr=class extends Ti{constructor(e,t,i,s,l){super(2,s,l);this.parameters=e;this.returnType=t;this.explicitThisType=i;this.inferFrom=null;this.inferLocals=null;this.isAsync=!1;this.acceptsText=!1}},El=class extends Ti{constructor(e,t,i,s){super(3,i,s);this.elements=e;this.elementNames=t}},Al=class extends A{constructor(e,t,i,s){super(5,s);this.name=e;this.extendsType=t;this.defaultType=i}},Br=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(Br||{}),Ai=class extends A{constructor(e,t,i,s,l){super(6,l);this.parameterKind=e;this.name=t;this.type=i;this.initializer=s;this.implicitFieldDeclaration=null;this.pattern=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},wt=(d=>(d[d.Custom=0]="Custom",d[d.Global=1]="Global",d[d.Operator=2]="Operator",d[d.OperatorBinary=3]="OperatorBinary",d[d.OperatorPrefix=4]="OperatorPrefix",d[d.OperatorPostfix=5]="OperatorPostfix",d[d.Unmanaged=6]="Unmanaged",d[d.Final=7]="Final",d[d.Inline=8]="Inline",d[d.External=9]="External",d[d.ExternalJs=10]="ExternalJs",d[d.Builtin=11]="Builtin",d[d.Lazy=12]="Lazy",d[d.Unsafe=13]="Unsafe",d))(wt||{});(n=>{function r(e){if(e.kind==7){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 98:{if(t=="builtin")return 11;break}case 101:{if(t=="external")return 9;break}case 102:{if(t=="final")return 7;break}case 103:{if(t=="global")return 1;break}case 105:{if(t=="inline")return 8;break}case 108:{if(t=="lazy")return 12;break}case 111:{if(t=="operator")return 2;break}case 117:{if(t=="unmanaged")return 6;if(t=="unsafe")return 13;break}}}else if(e.kind==22){let t=e,i=t.expression;if(i.kind==7){let s=i.text;assert(s.length);let l=t.property.text;if(assert(l.length),s=="operator")switch(l.charCodeAt(0)){case 98:{if(l=="binary")return 3;break}case 112:{if(l=="prefix")return 4;if(l=="postfix")return 5;break}}else if(s=="external")switch(l.charCodeAt(0)){case 106:{if(l=="js")return 10;break}}}}return 0}n.fromNode=r})(wt||={});var vl=class extends A{constructor(e,t,i,s){super(63,s);this.decoratorKind=e;this.name=t;this.args=i}},Fp=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))(Fp||{}),Sl=class extends A{constructor(e,t,i){super(67,i);this.commentKind=e;this.text=t}},xe=class extends A{},He=class extends xe{constructor(e,t,i){super(7,i);this.text=e;this.isQuoted=t;this.undefinedBoolean=!1}},Ct=(a=>(a[a.Float=0]="Float",a[a.Integer=1]="Integer",a[a.String=2]="String",a[a.Template=3]="Template",a[a.RegExp=4]="RegExp",a[a.Array=5]="Array",a[a.Object=6]="Object",a))(Ct||{}),yt=class extends xe{constructor(e,t){super(17,t);this.literalKind=e}},Pr=class extends yt{constructor(e,t){super(5,t);this.elementExpressions=e}},Ii=(i=>(i[i.Prefix=0]="Prefix",i[i.As=1]="As",i[i.NonNull=2]="NonNull",i[i.Const=3]="Const",i))(Ii||{}),Il=class extends xe{constructor(e,t,i,s){super(8,s);this.assertionKind=e;this.expression=t;this.toType=i}},kl=class extends xe{constructor(e,t,i,s){super(9,s);this.operator=e;this.left=t;this.right=i;this.undefinedOnly=!1}},Fl=class extends xe{constructor(e,t,i,s){super(10,s);this.expression=e;this.typeArguments=t;this.args=i;this.isOptionalChain=!1}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ue.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.expression.range}},Rl=class extends xe{constructor(e){super(11,e.range);this.declaration=e}},wl=class extends xe{constructor(e,t){super(12,t);this.expressions=e}},Cl=class extends He{constructor(n){super("constructor",!1,n),this.kind=27}},Pl=class extends xe{constructor(e,t,i){super(13,i);this.expression=e;this.elementExpression=t;this.isOptionalChain=!1}},Nl=class extends yt{constructor(e,t){super(0,t);this.value=e}},Bl=class extends xe{constructor(e){super(15,e.range);this.declaration=e}},Ll=class extends xe{constructor(e,t,i){super(16,i);this.expression=e;this.isType=t}},Ml=class extends yt{constructor(e,t){super(1,t);this.value=e}},zl=class extends xe{constructor(e,t,i,s){super(18,s);this.typeName=e;this.typeArguments=t;this.args=i}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ue.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.typeName.range}},Gl=class extends He{constructor(n){super("null",!1,n),this.kind=19}},Dl=class extends yt{constructor(e,t,i){super(6,i);this.names=e;this.values=t;this.inferredType=null}},Ul=class extends xe{constructor(n){super(20,n)}},Vl=class extends xe{constructor(e,t){super(21,t);this.expression=e}},Ol=class extends xe{constructor(e,t,i){super(22,i);this.expression=e;this.property=t;this.isOptionalChain=!1;this.isHood=!1}},ql=class extends yt{constructor(e,t,i){super(4,i);this.pattern=e;this.patternFlags=t}},Wl=class extends xe{constructor(e,t,i,s){super(23,s);this.condition=e;this.ifThen=t;this.ifElse=i}},Kl=class extends yt{constructor(e,t){super(2,t);this.value=e}},jl=class extends He{constructor(n){super("super",!1,n),this.kind=24}},Ql=class extends yt{constructor(e,t,i,s,l){super(3,l);this.tag=e;this.parts=t;this.rawParts=i;this.expressions=s}},Hl=class extends He{constructor(n){super("this",!1,n),this.kind=25}},Xl=class extends He{constructor(n){super("true",!1,n),this.kind=26}},Zl=class extends He{constructor(n){super("false",!1,n),this.kind=14}},Cn=class extends xe{constructor(e,t,i,s){super(e,s);this.operator=t;this.operand=i}},Yl=class extends Cn{constructor(n,e,t){super(28,n,e,t)}},$l=class extends Cn{constructor(n,e,t){super(29,n,e,t)}},Jl=class extends xe{constructor(e,t,i){super(30,i);this.expr=e;this.type=t}},fe=class extends A{},ki=(i=>(i[i.User=0]="User",i[i.UserEntry=1]="UserEntry",i[i.Library=2]="Library",i[i.LibraryEntry=3]="LibraryEntry",i))(ki||{}),ye=class r extends A{constructor(e,t,i){super(0,new ue(0,i.length));this.sourceKind=e;this.normalizedPath=t;this.text=i;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Mn(t);this.internalPath=s;let l=s.lastIndexOf(lt);this.simplePath=l>=0?s.substring(l+1):s,this.range.source=this}static get native(){let e=r._native;return e||(r._native=e=new r(3,dt+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==r._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let t=this.lineCache;if(!t){this.lineCache=t=[0];let l=this.text,a=0,o=l.length;for(;a<o;)l.charCodeAt(a++)==10&&t.push(a);t.push(2147483647)}let i=0,s=t.length-1;for(;i<s;){let l=i+(s-i>>1),a=unchecked(t[l]);if(e<a)s=l;else{if(e<unchecked(t[l+1]))return this.lineColumn=e-a+1,l+1;i=l+1}}return assert(0)}columnAt(){return this.lineColumn}},Xe=class extends fe{constructor(e,t,i,s,l){super(e,l);this.name=t;this.decorators=i;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},ea=class extends A{constructor(e,t,i,s){super(66,s);this.keyType=e;this.valueType=t;this.flags=i}},vi=class extends Xe{constructor(e,t,i,s,l,a,o){super(e,t,i,s,o);this.type=l;this.initializer=a}},ta=class extends fe{constructor(e,t){super(31,t);this.statements=e}},ra=class extends fe{constructor(e,t){super(32,t);this.label=e}},Pn=class extends Xe{constructor(e,t,i,s,l,a,o,u){super(52,e,t,i,u);this.typeParameters=s;this.extendsType=l;this.implementsTypes=a;this.members=o;this.indexSignature=null;this.isShape=!1}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},ia=class extends fe{constructor(e,t){super(33,t);this.label=e}},na=class extends fe{constructor(e,t,i){super(34,i);this.body=e;this.condition=t;this.label=null}},sa=class extends fe{constructor(n){super(35,n)}},la=class extends Xe{constructor(e,t,i,s,l){super(53,e,t,i,l);this.values=s}},aa=class extends vi{constructor(n,e,t,i){super(54,n,null,e,null,t,i)}},oa=class extends fe{constructor(e,t,i){super(38,i);this.name=e;this.externalName=t}},ua=class extends A{constructor(e,t,i){super(64,i);this.localName=e;this.exportedName=t}},pa=class extends fe{constructor(e,t,i,s){super(36,s);this.members=e;this.path=t;this.isDeclare=i;if(t){let l=Rr(t.value);t.value.startsWith(".")?l=ml(l,s.source.internalPath):l.startsWith(dt)||(l=dt+l),this.internalPath=l}else this.internalPath=null}},ca=class extends fe{constructor(e,t){super(37,t);this.declaration=e}},fa=class extends fe{constructor(e){super(39,e.range);this.expression=e}},_a=class extends vi{constructor(e,t,i,s,l,a,o){super(55,e,t,i,s,l,o);this.parameterIndex=a;this.isOptional=!1}},Nn=class{constructor(n,e,t){this.isArray=n;this.elements=e;this.rest=t}},Si=class{constructor(n,e,t,i,s){this.key=n;this.name=e;this.nested=t;this.defaultValue=i;this.range=s}},ha=class extends fe{constructor(e,t,i,s,l){super(40,l);this.initializer=e;this.condition=t;this.incrementor=i;this.body=s;this.label=null}},da=class extends fe{constructor(e,t,i,s){super(41,s);this.variable=e;this.iterable=t;this.body=i}},nr=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(nr||{}),Bn=class r extends Xe{constructor(e,t,i,s,l,a,o,u){super(56,e,t,i,u);this.typeParameters=s;this.signature=l;this.body=a;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new r(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},ma=class extends fe{constructor(e,t,i,s){super(42,s);this.condition=e;this.ifTrue=t;this.ifFalse=i}},ya=class extends Xe{constructor(e,t,i){super(57,e,null,0,i);this.foreignName=t}},Ln=class extends fe{constructor(e,t,i,s){super(43,s);this.declarations=e;this.namespaceName=t;this.path=i;let l=Rr(i.value);i.value.startsWith(".")?l=ml(l,s.source.internalPath):l.startsWith(dt)||(l=dt+l),this.internalPath=Mn(l)}},ga=class extends Pn{constructor(n,e,t,i,s,l,a,o){super(n,e,t,i,s,l,a,o),this.kind=58}},Nr=class extends Bn{constructor(n,e,t,i,s,l,a){super(n,e,t,i,s,l,0,a),this.kind=59}},ba=class extends Xe{constructor(e,t,i,s,l){super(60,e,t,i,l);this.members=s;this.isStringEnum=!1}},xa=class extends fe{constructor(e,t){super(44,t);this.value=e}},Ta=class extends A{constructor(e,t,i){super(65,i);this.label=e;this.statements=t}get isDefault(){return this.label==null}},Ea=class extends fe{constructor(e,t,i){super(45,i);this.condition=e;this.cases=t}},Aa=class extends fe{constructor(e,t){super(46,t);this.value=e}},va=class extends fe{constructor(e,t,i,s,l){super(47,l);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=i;this.finallyStatements=s}},Sa=class extends fe{constructor(e,t,i){super(51,i);this.moduleName=e;this.flags=t}},Ia=class extends Xe{constructor(e,t,i,s,l,a){super(61,e,t,i,a);this.typeParameters=s;this.type=l}},ka=class extends vi{constructor(n,e,t,i,s,l){super(62,n,e,t,i,s,l)}},Fa=class extends fe{constructor(e,t,i){super(48,i);this.decorators=e;this.declarations=t}},Ra=class extends fe{constructor(e,t){super(49,t);this.expression=e}},wa=class extends fe{constructor(e,t,i){super(50,i);this.condition=e;this.body=t;this.label=null}};function Pt(r,n){if(n)for(let e=0,t=n.length;e<t;++e){let i=n[e];if(i.decoratorKind==r)return i}return null}function Mn(r){return r.endsWith("/")?r+="index":r.endsWith(".ts")&&(r=r.substring(0,r.length-3)),r}function pe(r){if(r.kind==1){let n=r.name;return!(n.next||n.identifier.text.length>0)}return!1}function ot(r){let n=null,e=r;for(;;){switch(e.kind){case 22:{let t=e;t.isOptionalChain&&(n=t),e=t.expression;continue}case 13:{let t=e;t.isOptionalChain&&(n=t),e=t.expression;continue}case 10:{let t=e;t.isOptionalChain&&(n=t),e=t.expression;continue}case 8:{let t=e;if(t.assertionKind!=2)return n;e=t.expression;continue}}return n}}var Fi=(B=>(B[B.Abstract=0]="Abstract",B[B.As=1]="As",B[B.Async=2]="Async",B[B.Await=3]="Await",B[B.Break=4]="Break",B[B.Case=5]="Case",B[B.Catch=6]="Catch",B[B.Class=7]="Class",B[B.Const=8]="Const",B[B.Continue=9]="Continue",B[B.Constructor=10]="Constructor",B[B.Debugger=11]="Debugger",B[B.Declare=12]="Declare",B[B.Default=13]="Default",B[B.Delete=14]="Delete",B[B.Do=15]="Do",B[B.Else=16]="Else",B[B.Enum=17]="Enum",B[B.Export=18]="Export",B[B.Extends=19]="Extends",B[B.False=20]="False",B[B.Finally=21]="Finally",B[B.For=22]="For",B[B.From=23]="From",B[B.Function=24]="Function",B[B.Get=25]="Get",B[B.If=26]="If",B[B.Implements=27]="Implements",B[B.Import=28]="Import",B[B.In=29]="In",B[B.InstanceOf=30]="InstanceOf",B[B.Interface=31]="Interface",B[B.Is=32]="Is",B[B.KeyOf=33]="KeyOf",B[B.Let=34]="Let",B[B.Module=35]="Module",B[B.Namespace=36]="Namespace",B[B.New=37]="New",B[B.Null=38]="Null",B[B.Of=39]="Of",B[B.Override=40]="Override",B[B.Package=41]="Package",B[B.Private=42]="Private",B[B.Protected=43]="Protected",B[B.Public=44]="Public",B[B.Readonly=45]="Readonly",B[B.Return=46]="Return",B[B.Set=47]="Set",B[B.Static=48]="Static",B[B.Super=49]="Super",B[B.Switch=50]="Switch",B[B.This=51]="This",B[B.Throw=52]="Throw",B[B.True=53]="True",B[B.Try=54]="Try",B[B.Type=55]="Type",B[B.TypeOf=56]="TypeOf",B[B.Var=57]="Var",B[B.Void=58]="Void",B[B.While=59]="While",B[B.With=60]="With",B[B.Yield=61]="Yield",B[B.OpenBrace=62]="OpenBrace",B[B.CloseBrace=63]="CloseBrace",B[B.OpenParen=64]="OpenParen",B[B.CloseParen=65]="CloseParen",B[B.OpenBracket=66]="OpenBracket",B[B.CloseBracket=67]="CloseBracket",B[B.Dot=68]="Dot",B[B.Dot_Dot_Dot=69]="Dot_Dot_Dot",B[B.Semicolon=70]="Semicolon",B[B.Comma=71]="Comma",B[B.LessThan=72]="LessThan",B[B.GreaterThan=73]="GreaterThan",B[B.LessThan_Equals=74]="LessThan_Equals",B[B.GreaterThan_Equals=75]="GreaterThan_Equals",B[B.Equals_Equals=76]="Equals_Equals",B[B.Exclamation_Equals=77]="Exclamation_Equals",B[B.Equals_Equals_Equals=78]="Equals_Equals_Equals",B[B.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",B[B.Equals_GreaterThan=80]="Equals_GreaterThan",B[B.Plus=81]="Plus",B[B.Minus=82]="Minus",B[B.Asterisk_Asterisk=83]="Asterisk_Asterisk",B[B.Asterisk=84]="Asterisk",B[B.Slash=85]="Slash",B[B.Percent=86]="Percent",B[B.Plus_Plus=87]="Plus_Plus",B[B.Minus_Minus=88]="Minus_Minus",B[B.LessThan_LessThan=89]="LessThan_LessThan",B[B.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",B[B.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",B[B.Ampersand=92]="Ampersand",B[B.Bar=93]="Bar",B[B.Caret=94]="Caret",B[B.Exclamation=95]="Exclamation",B[B.Tilde=96]="Tilde",B[B.Ampersand_Ampersand=97]="Ampersand_Ampersand",B[B.Bar_Bar=98]="Bar_Bar",B[B.Question_Question=99]="Question_Question",B[B.Question_Dot=100]="Question_Dot",B[B.Question=101]="Question",B[B.Colon=102]="Colon",B[B.Equals=103]="Equals",B[B.Plus_Equals=104]="Plus_Equals",B[B.Minus_Equals=105]="Minus_Equals",B[B.Asterisk_Equals=106]="Asterisk_Equals",B[B.Asterisk_Asterisk_Equals=107]="Asterisk_Asterisk_Equals",B[B.Slash_Equals=108]="Slash_Equals",B[B.Percent_Equals=109]="Percent_Equals",B[B.LessThan_LessThan_Equals=110]="LessThan_LessThan_Equals",B[B.GreaterThan_GreaterThan_Equals=111]="GreaterThan_GreaterThan_Equals",B[B.GreaterThan_GreaterThan_GreaterThan_Equals=112]="GreaterThan_GreaterThan_GreaterThan_Equals",B[B.Ampersand_Equals=113]="Ampersand_Equals",B[B.Bar_Equals=114]="Bar_Equals",B[B.Caret_Equals=115]="Caret_Equals",B[B.Question_Question_Equals=116]="Question_Question_Equals",B[B.At=117]="At",B[B.Identifier=118]="Identifier",B[B.StringLiteral=119]="StringLiteral",B[B.IntegerLiteral=120]="IntegerLiteral",B[B.FloatLiteral=121]="FloatLiteral",B[B.TemplateLiteral=122]="TemplateLiteral",B[B.Invalid=123]="Invalid",B[B.EndOfFile=124]="EndOfFile",B))(Fi||{}),wp=(t=>(t[t.Default=0]="Default",t[t.Prefer=1]="Prefer",t[t.Always=2]="Always",t))(wp||{});function tg(r){let n=r.length;switch(assert(n),r.charCodeAt(0)){case 97:{if(n==5){if(r=="async")return 2;if(r=="await")return 3;break}if(r=="as")return 1;if(r=="abstract")return 0;break}case 98:{if(r=="break")return 4;break}case 99:{if(n==5){if(r=="const")return 8;if(r=="class")return 7;if(r=="catch")return 6;break}if(r=="case")return 5;if(r=="continue")return 9;if(r=="constructor")return 10;break}case 100:{if(n==7){if(r=="default")return 13;if(r=="declare")return 12;break}if(r=="do")return 15;if(r=="delete")return 14;if(r=="debugger")return 11;break}case 101:{if(n==4){if(r=="else")return 16;if(r=="enum")return 17;break}if(r=="export")return 18;if(r=="extends")return 19;break}case 102:{if(n<=5){if(r=="false")return 20;if(r=="for")return 22;if(r=="from")return 23;break}if(r=="function")return 24;if(r=="finally")return 21;break}case 103:{if(r=="get")return 25;break}case 105:{if(n==2){if(r=="if")return 26;if(r=="in")return 29;if(r=="is")return 32;break}switch(r.charCodeAt(3)){case 108:{if(r=="implements")return 27;break}case 111:{if(r=="import")return 28;break}case 116:{if(r=="instanceof")return 30;break}case 101:{if(r=="interface")return 31;break}}break}case 107:{if(r=="keyof")return 33;break}case 108:{if(r=="let")return 34;break}case 109:{if(r=="module")return 35;break}case 110:{if(r=="new")return 37;if(r=="null")return 38;if(r=="namespace")return 36;break}case 111:{if(r=="of")return 39;if(r=="override")return 40;break}case 112:{if(n==7){if(r=="private")return 42;if(r=="package")return 41;break}if(r=="public")return 44;if(r=="protected")return 43;break}case 114:{if(r=="return")return 46;if(r=="readonly")return 45;break}case 115:{if(n==6){if(r=="switch")return 50;if(r=="static")return 48;break}if(r=="set")return 47;if(r=="super")return 49;break}case 116:{if(n==4){if(r=="true")return 53;if(r=="this")return 51;if(r=="type")return 55;break}if(r=="try")return 54;if(r=="throw")return 52;if(r=="typeof")return 56;break}case 118:{if(r=="var")return 57;if(r=="void")return 58;break}case 119:{if(r=="while")return 59;if(r=="with")return 60;break}case 121:{if(r=="yield")return 61;break}}return 123}function rg(r){switch(r){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 40:case 45:case 47:case 55:case 58:return!0;default:return!1}}function Cp(r){switch(assert(r.length),r.charCodeAt(0)){case 100:return r=="delete";case 102:return r=="for";case 105:return r=="instanceof";case 110:return r=="null";case 118:return r=="void"}return!1}function we(r){switch(r){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71:return",";case 72:return"<";case 73:return">";case 74:return"<=";case 75:return">=";case 76:return"==";case 77:return"!=";case 78:return"===";case 79:return"!==";case 81:return"+";case 82:return"-";case 83:return"**";case 84:return"*";case 85:return"/";case 86:return"%";case 87:return"++";case 88:return"--";case 89:return"<<";case 90:return">>";case 91:return">>>";case 92:return"&";case 93:return"|";case 94:return"^";case 95:return"!";case 96:return"~";case 97:return"&&";case 98:return"||";case 99:return"??";case 100:return"?.";case 116:return"??=";case 103:return"=";case 104:return"+=";case 105:return"-=";case 106:return"*=";case 107:return"**=";case 108:return"/=";case 109:return"%=";case 110:return"<<=";case 111:return">>=";case 112:return">>>=";case 113:return"&=";case 114:return"|=";case 115:return"^=";default:return assert(!1),""}}var Pa="__private_";var zn=class extends Qe{constructor(e,t=null){super(t);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;t||(t=[]),this.diagnostics=t,this.source=e;let i=e.text,s=i.length,l=0;if(l<s&&i.charCodeAt(l)==65279&&++l,l+1<s&&i.charCodeAt(l)==35&&i.charCodeAt(l+1)==33)for(l+=2;l<s&&i.charCodeAt(l)!=10;)++l;this.pos=l,this.end=s}next(e=0){this.clearNextToken();let t;do t=this.unsafeNext(e);while(t==123);return this.token=t,t}unsafeNext(e=0,t=i32.MAX_VALUE){let i=this.source.text,s=this.end,l=this.pos;for(;l<s;){this.tokenPos=l;let a=i.charCodeAt(l);switch(a){case 13:if(!(++l<s&&i.charCodeAt(l)==10))break;case 10:case 9:case 11:case 12:case 32:{++l;break}case 33:return++l,t>1&&l<s&&i.charCodeAt(l)==61?(++l,t>2&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,79):(this.pos=l,77)):(this.pos=l,95);case 34:case 39:return this.pos=l,119;case 96:return this.pos=l,122;case 37:return++l,t>1&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,109):(this.pos=l,86);case 38:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==38)return this.pos=l+1,97;if(o==61)return this.pos=l+1,113}return this.pos=l,92}case 40:return this.pos=l+1,64;case 41:return this.pos=l+1,65;case 42:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==61)return this.pos=l+1,106;if(o==42)return++l,t>2&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,107):(this.pos=l,83)}return this.pos=l,84}case 43:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==43)return this.pos=l+1,87;if(o==61)return this.pos=l+1,104}return this.pos=l,81}case 44:return this.pos=l+1,71;case 45:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==45)return this.pos=l+1,88;if(o==61)return this.pos=l+1,105}return this.pos=l,82}case 46:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(tt(o))return this.pos=l-1,121;if(t>2&&l+1<s&&o==46&&i.charCodeAt(l+1)==46)return this.pos=l+2,69}return this.pos=l,68}case 47:{let o=l;if(++l,t>1&&l<s){let u=i.charCodeAt(l);if(u==47){let c=0;for(l+1<s&&i.charCodeAt(l+1)==47&&(++l,c=1);++l<s;)if(i.charCodeAt(l)==10){++l;break}this.onComment&&this.onComment(c,i.substring(o,l),this.range(o,l));break}if(u==42){let c=!1;for(;++l<s;)if(a=i.charCodeAt(l),a==42&&l+1<s&&i.charCodeAt(l+1)==47){l+=2,c=!0;break}c?this.onComment&&this.onComment(2,i.substring(o,l),this.range(o,l)):this.error(1005,this.range(l),"*/");break}if(u==61)return this.pos=l+1,108}return this.pos=l,85}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=l,this.testInteger()?120:121;case 58:return this.pos=l+1,102;case 59:return this.pos=l+1,70;case 60:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==60)return++l,t>2&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,110):(this.pos=l,89);if(o==61)return this.pos=l+1,74}return this.pos=l,72}case 61:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==61)return++l,t>2&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,78):(this.pos=l,76);if(o==62)return this.pos=l+1,80}return this.pos=l,103}case 62:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==62){if(++l,t>2&&l<s){if(o=i.charCodeAt(l),o==62)return++l,t>3&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,112):(this.pos=l,91);if(o==61)return this.pos=l+1,111}return this.pos=l,90}if(o==61)return this.pos=l+1,75}return this.pos=l,73}case 63:return++l,t>1&&l<s&&i.charCodeAt(l)==63?t>2&&l+1<s&&i.charCodeAt(l+1)==61?(this.pos=l+2,116):(this.pos=l+1,99):t>1&&l<s&&i.charCodeAt(l)==46&&!(l+1<s&&tt(i.charCodeAt(l+1)))?(this.pos=l+1,100):(this.pos=l,101);case 91:return this.pos=l+1,66;case 93:return this.pos=l+1,67;case 94:return++l,t>1&&l<s&&i.charCodeAt(l)==61?(this.pos=l+1,115):(this.pos=l,94);case 123:return this.pos=l+1,62;case 124:{if(++l,t>1&&l<s){let o=i.charCodeAt(l);if(o==124)return this.pos=l+1,98;if(o==61)return this.pos=l+1,114}return this.pos=l,93}case 125:return this.pos=l+1,63;case 126:return this.pos=l+1,96;case 64:return this.pos=l+1,117;case 35:return l+1<s&&kr(i.charCodeAt(l+1))?(this.pos=l,118):(this.error(1127,this.range(l,l+1)),this.pos=l+1,123);default:{if(bi(a)&&l+1<s&&(a=Fn(a,i.charCodeAt(l+1))),kr(a)){let u=l;for(;(l+=Ir(a))<s&&ir(a=i.codePointAt(l)););if(e!=2){let c=tg(i.substring(u,l));if(c!=123&&!(e==1&&rg(c)))return this.pos=l,c}return this.pos=u,118}else if(In(a)){++l;break}let o=l;return l+=Ir(a),this.error(1127,this.range(o,l)),this.pos=l,123}}}return this.pos=l,124}peek(e=0,t=i32.MAX_VALUE){let i=this.nextToken;if(i<0){let s=this.pos,l=this.token,a=this.tokenPos;do i=this.unsafeNext(e,t);while(i==123);this.nextToken=i,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=l,this.tokenPos=a}return i}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let t=this.pos,i=this.nextTokenPos;t<i;++t)if(Ft(e.charCodeAt(t)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(118,e)}skip(e,t=0){let i=this.pos,s=this.token,l=this.tokenPos,a=i32.MAX_VALUE;e==73&&(a=1);let o;do o=this.unsafeNext(t,a);while(o==123);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=i,this.token=s,this.tokenPos=l,!1)}mark(){let e=Rp;return e?(Rp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Ca(this.pos,this.token,this.tokenPos),e}discard(e){Rp=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,t=-1){e<0?(e=this.tokenPos,t=this.pos):t<0&&(t=e);let i=new ue(e,t);return i.source=this.source,i}readIdentifier(){let e=this.source.text,t=this.end,i=this.pos;if(e.charCodeAt(i)==35)return this.pos=i+1,Pa+this.readIdentifier();let s=i,l=e.codePointAt(i);for(assert(kr(l));(i+=Ir(l))<t&&ir(l=e.codePointAt(i)););return this.pos=i,e.substring(s,i)}readString(e=0,t=!1){let i=this.source.text,s=this.end,l=this.pos;e||(e=i.charCodeAt(l++));let a=l;this.readStringStart=a;let o="";for(;;){if(l>=s){o+=i.substring(a,l),this.error(1002,this.range(a-1,s)),this.readStringEnd=s;break}let u=i.charCodeAt(l);if(u==e){this.readStringEnd=l,o+=i.substring(a,l++);break}if(u==92){o+=i.substring(a,l),this.pos=l,o+=this.readEscapeSequence(t),l=this.pos,a=l;continue}if(e==96){if(u==36&&l+1<s&&i.charCodeAt(l+1)==123)return o+=i.substring(a,l),this.readStringEnd=l,this.pos=l+2,this.readingTemplateString=!0,o}else if(Ft(u)){o+=i.substring(a,l),this.error(1002,this.range(a-1,l)),this.readStringEnd=l;break}++l}return this.pos=l,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let t=this.pos,i=this.end;if(++this.pos>=i)return this.error(1126,this.range(i)),"";let s=this.source.text,l=s.charCodeAt(this.pos++);switch(l){case 48:return e&&this.pos<i&&tt(s.charCodeAt(this.pos))?(++this.pos,s.substring(t,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
17
+ `;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<i&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-1);case 13:this.pos<i&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(l)}}readRegexpPattern(){let e=this.source.text,t=this.pos,i=this.end,s=!1;for(;;){if(this.pos>=i){this.error(1161,this.range(t,i));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let l=e.charCodeAt(this.pos);if(!s&&l==47)break;if(Ft(l)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,i=this.end,s=0;for(;this.pos<i;){let l=e.charCodeAt(this.pos);if(!ir(l))break;switch(++this.pos,l){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}case 115:{s|=s&8?-1:8;break}case 121:{s|=s&16?-1:16;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,i=this.end;if(t+1<i&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<i;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(dl(e.charCodeAt(t+1))){let i=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(i,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,i=this.end,s=t,l=s,a=i64_zero,o=i64_new(4),u=a,c=!1;for(;t<i;){let f=e.charCodeAt(t);if(tt(f))u=i64_add(i64_shl(a,o),i64_new(f-48));else if(Rn(f))u=i64_add(i64_shl(a,o),i64_new((f|32)+-87));else if(f==95)l==t&&this.error(l==s?6188:6189,this.range(t)),l=t+1;else break;i64_gt_u(a,u)&&(c=!0),a=u,++t}return t==s?this.error(1125,this.range(s)):l==t&&this.error(6188,this.range(l-1)),c&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,a}readDecimalInteger(){let e=this.source.text,t=this.pos,i=this.end,s=t,l=s,a=i64_zero,o=i64_new(10),u=a,c=!1;for(;t<i;){let f=e.charCodeAt(t);if(tt(f))u=i64_add(i64_mul(a,o),i64_new(f-48));else if(f==95)l==t?this.error(l==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),l=t+1;else break;i64_gt_u(a,u)&&(c=!0),a=u,++t}return t==s?this.error(1124,this.range(s)):l==t?this.error(6188,this.range(l-1)):c&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,a}readOctalInteger(){let e=this.source.text,t=this.pos,i=this.end,s=t,l=s,a=i64_zero,o=i64_new(3),u=a,c=!1;for(;t<i;){let f=e.charCodeAt(t);if(dl(f))u=i64_add(i64_shl(a,o),i64_new(f-48));else if(f==95)l==t&&this.error(l==s?6188:6189,this.range(t)),l=t+1;else break;i64_gt_u(a,u)&&(c=!0),a=u,++t}return t==s?this.error(1178,this.range(s)):l==t?this.error(6188,this.range(l-1)):c&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,a}readBinaryInteger(){let e=this.source.text,t=this.pos,i=this.end,s=t,l=s,a=i64_zero,o=a,u=!1;for(;t<i;){let c=e.charCodeAt(t);if(c==48)o=i64_shl(a,i64_one);else if(c==49)o=i64_or(i64_shl(a,i64_one),i64_one);else if(c==95)l==t&&this.error(l==s?6188:6189,this.range(t)),l=t+1;else break;i64_gt(a,o)&&(u=!0),a=o,++t}return t==s?this.error(1177,this.range(s)):l==t?this.error(6188,this.range(l-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,a}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,i=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let a=e.charCodeAt(this.pos);(a|32)==101&&((++this.pos<t&&(a=e.charCodeAt(this.pos))==45||a==43&&tt(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let l=e.substring(i,this.pos);return s&&(l=l.replaceAll("_","")),parseFloat(l)}readDecimalFloatPartial(e=!0){let t=this.source.text,i=this.pos,s=i,l=this.end,a=s,o=0;for(;i<l;){let u=t.charCodeAt(i);if(u==95)a==i?this.error(a==s?6188:6189,this.range(i)):!e&&i-1==s&&t.charCodeAt(i-1)==48&&this.error(6188,this.range(i)),a=i+1,++o;else if(!tt(u))break;++i}return i!=s&&a==i&&this.error(6188,this.range(a-1)),this.pos=i,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,t=-1){let i=0,s=this.source.text,l=this.pos,a=this.end;for(;l<a;){let o=s.charCodeAt(l++);if(tt(o))i=(i<<4)+o-48;else if(Rn(o))i=(i<<4)+(o|32)+-87;else return~t?(this.pos=--l,s.substring(t,l)):(this.pos=l,this.error(1125,this.range(l-1,l)),"");if(--e==0)break}return e?(this.pos=l,~t?s.substring(t,l):(this.error(1126,this.range(l)),"")):(this.pos=l,String.fromCodePoint(i))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&kr(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,i=this.readHexInteger(),s=i64_low(i),l=!1;assert(!i64_high(i)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),l=!0);let a=this.end,o=this.source.text;return this.pos>=a?(e==-1&&this.error(1126,this.range(t,a)),l=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),l=!0),l?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Ca=class{constructor(n,e,t){this.pos=n;this.token=e;this.tokenPos=t}},Rp=null;var P;(x=>(x.None=0,x.Unreachable=1,x.I32=2,x.I64=3,x.F32=4,x.F64=5,x.V128=6,x.Funcref=df(),x.Externref=mf(),x.Anyref=yf(),x.Eqref=gf(),x.Structref=xf(),x.Arrayref=Tf(),x.I31ref=bf(),x.Stringref=Ef(),x.Noneref=Af(),x.Nofuncref=Sf(),x.Noexternref=vf()))(P||={});var Ee;(m=>{m.Extern=8,m.Func=16,m.Any=32,m.Eq=40,m.I31=48,m.Struct=56,m.Array=64,m.Exn=7,m.String=80,m.None=88,m.Noextern=96,m.Nofunc=104;function _(g){return If(g)}m.isBottom=_;function h(g){return kf(g)}m.getBottom=h;function d(g,x){return Ff(g,x)}m.isSubtype=d;function y(g,x){if(g==x)return g;if(h(g)!=h(x))return-1;if(_(g))return x;if(_(x))return g;if(g>x){let v=g;g=x,x=v}switch(g){case m.Extern:return x==m.String?g:-1;case m.Func:return-1;case m.Any:return g;case m.Eq:return x==m.I31||x==m.Struct||x==m.Array?m.Eq:m.Any;case m.I31:return x==m.Struct||x==m.Array?m.Eq:m.Any;case m.Struct:return x==m.Array?m.Eq:m.Any;case m.Array:return m.Any}return assert(!1),-1}m.leastUpperBound=y})(Ee||={});var Dn;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(Dn||={});var Np;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function i(l){switch(l){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=i})(Np||={});var Bp=(O=>(O[O.MVP=0]="MVP",O[O.Atomics=1]="Atomics",O[O.MutableGlobals=2]="MutableGlobals",O[O.TruncSat=4]="TruncSat",O[O.SIMD=8]="SIMD",O[O.BulkMemory=16]="BulkMemory",O[O.SignExt=32]="SignExt",O[O.ExceptionHandling=64]="ExceptionHandling",O[O.TailCall=128]="TailCall",O[O.ReferenceTypes=256]="ReferenceTypes",O[O.MultiValue=512]="MultiValue",O[O.GC=1024]="GC",O[O.Memory64=2048]="Memory64",O[O.RelaxedSIMD=4096]="RelaxedSIMD",O[O.ExtendedConst=8192]="ExtendedConst",O[O.Strings=16384]="Strings",O[O.MultiMemory=32768]="MultiMemory",O[O.StackSwitching=65536]="StackSwitching",O[O.SharedEverything=131072]="SharedEverything",O[O.FP16=262144]="FP16",O[O.BulkMemoryOpt=524288]="BulkMemoryOpt",O[O.CallIndirectOverlong=1048576]="CallIndirectOverlong",O[O.RelaxedAtomics=4194304]="RelaxedAtomics",O[O.CustomPageSizes=8388608]="CustomPageSizes",O[O.Multibyte=16777216]="Multibyte",O[O.WideArithmetic=33554432]="WideArithmetic",O[O.CompactImports=67108864]="CompactImports",O[O.All=134217727]="All",O))(Bp||{}),Lr=(D=>(D[D.Invalid=0]="Invalid",D[D.Block=1]="Block",D[D.If=2]="If",D[D.Loop=3]="Loop",D[D.Break=4]="Break",D[D.Switch=5]="Switch",D[D.Call=6]="Call",D[D.CallIndirect=7]="CallIndirect",D[D.LocalGet=8]="LocalGet",D[D.LocalSet=9]="LocalSet",D[D.GlobalGet=10]="GlobalGet",D[D.GlobalSet=11]="GlobalSet",D[D.Load=12]="Load",D[D.Store=13]="Store",D[D.Const=14]="Const",D[D.Unary=15]="Unary",D[D.Binary=16]="Binary",D[D.Select=17]="Select",D[D.Drop=18]="Drop",D[D.Return=19]="Return",D[D.MemorySize=20]="MemorySize",D[D.MemoryGrow=21]="MemoryGrow",D[D.Nop=22]="Nop",D[D.Unreachable=23]="Unreachable",D[D.AtomicRMW=24]="AtomicRMW",D[D.AtomicCmpxchg=25]="AtomicCmpxchg",D[D.AtomicWait=26]="AtomicWait",D[D.AtomicNotify=27]="AtomicNotify",D[D.AtomicFence=28]="AtomicFence",D[D.Pause=29]="Pause",D[D.SIMDExtract=30]="SIMDExtract",D[D.SIMDReplace=31]="SIMDReplace",D[D.SIMDShuffle=32]="SIMDShuffle",D[D.SIMDTernary=33]="SIMDTernary",D[D.SIMDShift=34]="SIMDShift",D[D.SIMDLoad=35]="SIMDLoad",D[D.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",D[D.MemoryInit=37]="MemoryInit",D[D.DataDrop=38]="DataDrop",D[D.MemoryCopy=39]="MemoryCopy",D[D.MemoryFill=40]="MemoryFill",D[D.Pop=41]="Pop",D[D.RefNull=42]="RefNull",D[D.RefIsNull=43]="RefIsNull",D[D.RefFunc=44]="RefFunc",D[D.RefEq=45]="RefEq",D[D.TableGet=46]="TableGet",D[D.TableSet=47]="TableSet",D[D.TableSize=48]="TableSize",D[D.TableGrow=49]="TableGrow",D[D.TableFill=50]="TableFill",D[D.TableCopy=51]="TableCopy",D[D.TableInit=52]="TableInit",D[D.ElemDrop=53]="ElemDrop",D[D.Try=54]="Try",D[D.TryTable=55]="TryTable",D[D.Throw=56]="Throw",D[D.Rethrow=57]="Rethrow",D[D.ThrowRef=58]="ThrowRef",D[D.TupleMake=59]="TupleMake",D[D.TupleExtract=60]="TupleExtract",D[D.RefI31=61]="RefI31",D[D.I31Get=62]="I31Get",D[D.CallRef=63]="CallRef",D[D.RefTest=64]="RefTest",D[D.RefCast=65]="RefCast",D[D.RefGetDesc=66]="RefGetDesc",D[D.BrOn=67]="BrOn",D[D.StructNew=68]="StructNew",D[D.StructGet=69]="StructGet",D[D.StructSet=70]="StructSet",D[D.StructRMW=71]="StructRMW",D[D.StructCmpxchg=72]="StructCmpxchg",D[D.ArrayNew=73]="ArrayNew",D[D.ArrayNewData=74]="ArrayNewData",D[D.ArrayNewElem=75]="ArrayNewElem",D[D.ArrayNewFixed=76]="ArrayNewFixed",D[D.ArrayGet=77]="ArrayGet",D[D.ArraySet=78]="ArraySet",D[D.ArrayLoad=79]="ArrayLoad",D[D.ArrayStore=80]="ArrayStore",D[D.ArrayLen=81]="ArrayLen",D[D.ArrayCopy=82]="ArrayCopy",D[D.ArrayFill=83]="ArrayFill",D[D.ArrayInitData=84]="ArrayInitData",D[D.ArrayInitElem=85]="ArrayInitElem",D[D.ArrayRMW=86]="ArrayRMW",D[D.ArrayCmpxchg=87]="ArrayCmpxchg",D[D.RefAs=88]="RefAs",D[D.StringNew=89]="StringNew",D[D.StringConst=90]="StringConst",D[D.StringMeasure=91]="StringMeasure",D[D.StringEncode=92]="StringEncode",D[D.StringConcat=93]="StringConcat",D[D.StringEq=94]="StringEq",D[D.StringTest=95]="StringTest",D[D.StringWTF16Get=96]="StringWTF16Get",D[D.StringSliceWTF=97]="StringSliceWTF",D[D.ContNew=98]="ContNew",D[D.ContBind=99]="ContBind",D[D.Suspend=100]="Suspend",D[D.Resume=101]="Resume",D[D.ResumeThrow=102]="ResumeThrow",D[D.StackSwitch=103]="StackSwitch",D[D.StructWait=104]="StructWait",D[D.StructNotify=105]="StructNotify",D[D.WideIntAddSub=106]="WideIntAddSub",D[D.WideIntMul=107]="WideIntMul",D))(Lr||{}),Lp=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(Lp||{}),ig=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(ig||{}),Vn=(N=>(N[N.ClzI32=0]="ClzI32",N[N.ClzI64=1]="ClzI64",N[N.CtzI32=2]="CtzI32",N[N.CtzI64=3]="CtzI64",N[N.PopcntI32=4]="PopcntI32",N[N.PopcntI64=5]="PopcntI64",N[N.NegF32=6]="NegF32",N[N.NegF64=7]="NegF64",N[N.AbsF32=8]="AbsF32",N[N.AbsF64=9]="AbsF64",N[N.CeilF32=10]="CeilF32",N[N.CeilF64=11]="CeilF64",N[N.FloorF32=12]="FloorF32",N[N.FloorF64=13]="FloorF64",N[N.TruncF32=14]="TruncF32",N[N.TruncF64=15]="TruncF64",N[N.NearestF32=16]="NearestF32",N[N.NearestF64=17]="NearestF64",N[N.SqrtF32=18]="SqrtF32",N[N.SqrtF64=19]="SqrtF64",N[N.EqzI32=20]="EqzI32",N[N.EqzI64=21]="EqzI64",N[N.ExtendI32ToI64=22]="ExtendI32ToI64",N[N.ExtendU32ToU64=23]="ExtendU32ToU64",N[N.WrapI64ToI32=24]="WrapI64ToI32",N[N.TruncF32ToI32=25]="TruncF32ToI32",N[N.TruncF32ToI64=26]="TruncF32ToI64",N[N.TruncF32ToU32=27]="TruncF32ToU32",N[N.TruncF32ToU64=28]="TruncF32ToU64",N[N.TruncF64ToI32=29]="TruncF64ToI32",N[N.TruncF64ToI64=30]="TruncF64ToI64",N[N.TruncF64ToU32=31]="TruncF64ToU32",N[N.TruncF64ToU64=32]="TruncF64ToU64",N[N.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",N[N.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",N[N.ConvertI32ToF32=35]="ConvertI32ToF32",N[N.ConvertI32ToF64=36]="ConvertI32ToF64",N[N.ConvertU32ToF32=37]="ConvertU32ToF32",N[N.ConvertU32ToF64=38]="ConvertU32ToF64",N[N.ConvertI64ToF32=39]="ConvertI64ToF32",N[N.ConvertI64ToF64=40]="ConvertI64ToF64",N[N.ConvertU64ToF32=41]="ConvertU64ToF32",N[N.ConvertU64ToF64=42]="ConvertU64ToF64",N[N.PromoteF32ToF64=43]="PromoteF32ToF64",N[N.DemoteF64ToF32=44]="DemoteF64ToF32",N[N.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",N[N.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",N[N.Extend8I32=47]="Extend8I32",N[N.Extend16I32=48]="Extend16I32",N[N.Extend8I64=49]="Extend8I64",N[N.Extend16I64=50]="Extend16I64",N[N.Extend32I64=51]="Extend32I64",N[N.TruncSatF32ToI32=52]="TruncSatF32ToI32",N[N.TruncSatF32ToU32=53]="TruncSatF32ToU32",N[N.TruncSatF64ToI32=54]="TruncSatF64ToI32",N[N.TruncSatF64ToU32=55]="TruncSatF64ToU32",N[N.TruncSatF32ToI64=56]="TruncSatF32ToI64",N[N.TruncSatF32ToU64=57]="TruncSatF32ToU64",N[N.TruncSatF64ToI64=58]="TruncSatF64ToI64",N[N.TruncSatF64ToU64=59]="TruncSatF64ToU64",N[N.SplatI8x16=60]="SplatI8x16",N[N.SplatI16x8=61]="SplatI16x8",N[N.SplatI32x4=62]="SplatI32x4",N[N.SplatI64x2=63]="SplatI64x2",N[N.SplatF32x4=64]="SplatF32x4",N[N.SplatF64x2=65]="SplatF64x2",N[N.NotV128=66]="NotV128",N[N.AnyTrueV128=67]="AnyTrueV128",N[N.AbsI8x16=68]="AbsI8x16",N[N.NegI8x16=69]="NegI8x16",N[N.AllTrueI8x16=70]="AllTrueI8x16",N[N.BitmaskI8x16=71]="BitmaskI8x16",N[N.PopcntI8x16=72]="PopcntI8x16",N[N.AbsI16x8=73]="AbsI16x8",N[N.NegI16x8=74]="NegI16x8",N[N.AllTrueI16x8=75]="AllTrueI16x8",N[N.BitmaskI16x8=76]="BitmaskI16x8",N[N.AbsI32x4=77]="AbsI32x4",N[N.NegI32x4=78]="NegI32x4",N[N.AllTrueI32x4=79]="AllTrueI32x4",N[N.BitmaskI32x4=80]="BitmaskI32x4",N[N.AbsI64x2=81]="AbsI64x2",N[N.NegI64x2=82]="NegI64x2",N[N.AllTrueI64x2=83]="AllTrueI64x2",N[N.BitmaskI64x2=84]="BitmaskI64x2",N[N.AbsF32x4=92]="AbsF32x4",N[N.NegF32x4=93]="NegF32x4",N[N.SqrtF32x4=94]="SqrtF32x4",N[N.CeilF32x4=95]="CeilF32x4",N[N.FloorF32x4=96]="FloorF32x4",N[N.TruncF32x4=97]="TruncF32x4",N[N.NearestF32x4=98]="NearestF32x4",N[N.AbsF64x2=99]="AbsF64x2",N[N.NegF64x2=100]="NegF64x2",N[N.SqrtF64x2=101]="SqrtF64x2",N[N.CeilF64x2=102]="CeilF64x2",N[N.FloorF64x2=103]="FloorF64x2",N[N.TruncF64x2=104]="TruncF64x2",N[N.NearestF64x2=105]="NearestF64x2",N[N.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",N[N.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",N[N.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",N[N.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",N[N.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",N[N.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",N[N.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",N[N.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",N[N.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",N[N.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",N[N.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",N[N.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",N[N.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",N[N.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",N[N.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",N[N.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",N[N.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",N[N.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",N[N.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",N[N.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",N[N.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",N[N.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",N[N.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",N[N.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",N[N.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",N[N.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",N[N.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",N[N.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",N[N.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",N[N.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",N[N.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",N[N._last=141]="_last",N[N.ClzSize=142]="ClzSize",N[N.CtzSize=143]="CtzSize",N[N.PopcntSize=144]="PopcntSize",N[N.EqzSize=145]="EqzSize",N))(Vn||{}),wi=(I=>(I[I.AddI32=0]="AddI32",I[I.SubI32=1]="SubI32",I[I.MulI32=2]="MulI32",I[I.DivI32=3]="DivI32",I[I.DivU32=4]="DivU32",I[I.RemI32=5]="RemI32",I[I.RemU32=6]="RemU32",I[I.AndI32=7]="AndI32",I[I.OrI32=8]="OrI32",I[I.XorI32=9]="XorI32",I[I.ShlI32=10]="ShlI32",I[I.ShrI32=11]="ShrI32",I[I.ShrU32=12]="ShrU32",I[I.RotlI32=13]="RotlI32",I[I.RotrI32=14]="RotrI32",I[I.EqI32=15]="EqI32",I[I.NeI32=16]="NeI32",I[I.LtI32=17]="LtI32",I[I.LtU32=18]="LtU32",I[I.LeI32=19]="LeI32",I[I.LeU32=20]="LeU32",I[I.GtI32=21]="GtI32",I[I.GtU32=22]="GtU32",I[I.GeI32=23]="GeI32",I[I.GeU32=24]="GeU32",I[I.AddI64=25]="AddI64",I[I.SubI64=26]="SubI64",I[I.MulI64=27]="MulI64",I[I.DivI64=28]="DivI64",I[I.DivU64=29]="DivU64",I[I.RemI64=30]="RemI64",I[I.RemU64=31]="RemU64",I[I.AndI64=32]="AndI64",I[I.OrI64=33]="OrI64",I[I.XorI64=34]="XorI64",I[I.ShlI64=35]="ShlI64",I[I.ShrI64=36]="ShrI64",I[I.ShrU64=37]="ShrU64",I[I.RotlI64=38]="RotlI64",I[I.RotrI64=39]="RotrI64",I[I.EqI64=40]="EqI64",I[I.NeI64=41]="NeI64",I[I.LtI64=42]="LtI64",I[I.LtU64=43]="LtU64",I[I.LeI64=44]="LeI64",I[I.LeU64=45]="LeU64",I[I.GtI64=46]="GtI64",I[I.GtU64=47]="GtU64",I[I.GeI64=48]="GeI64",I[I.GeU64=49]="GeU64",I[I.AddF32=50]="AddF32",I[I.SubF32=51]="SubF32",I[I.MulF32=52]="MulF32",I[I.DivF32=53]="DivF32",I[I.CopysignF32=54]="CopysignF32",I[I.MinF32=55]="MinF32",I[I.MaxF32=56]="MaxF32",I[I.EqF32=57]="EqF32",I[I.NeF32=58]="NeF32",I[I.LtF32=59]="LtF32",I[I.LeF32=60]="LeF32",I[I.GtF32=61]="GtF32",I[I.GeF32=62]="GeF32",I[I.AddF64=63]="AddF64",I[I.SubF64=64]="SubF64",I[I.MulF64=65]="MulF64",I[I.DivF64=66]="DivF64",I[I.CopysignF64=67]="CopysignF64",I[I.MinF64=68]="MinF64",I[I.MaxF64=69]="MaxF64",I[I.EqF64=70]="EqF64",I[I.NeF64=71]="NeF64",I[I.LtF64=72]="LtF64",I[I.LeF64=73]="LeF64",I[I.GtF64=74]="GtF64",I[I.GeF64=75]="GeF64",I[I.EqI8x16=76]="EqI8x16",I[I.NeI8x16=77]="NeI8x16",I[I.LtI8x16=78]="LtI8x16",I[I.LtU8x16=79]="LtU8x16",I[I.GtI8x16=80]="GtI8x16",I[I.GtU8x16=81]="GtU8x16",I[I.LeI8x16=82]="LeI8x16",I[I.LeU8x16=83]="LeU8x16",I[I.GeI8x16=84]="GeI8x16",I[I.GeU8x16=85]="GeU8x16",I[I.EqI16x8=86]="EqI16x8",I[I.NeI16x8=87]="NeI16x8",I[I.LtI16x8=88]="LtI16x8",I[I.LtU16x8=89]="LtU16x8",I[I.GtI16x8=90]="GtI16x8",I[I.GtU16x8=91]="GtU16x8",I[I.LeI16x8=92]="LeI16x8",I[I.LeU16x8=93]="LeU16x8",I[I.GeI16x8=94]="GeI16x8",I[I.GeU16x8=95]="GeU16x8",I[I.EqI32x4=96]="EqI32x4",I[I.NeI32x4=97]="NeI32x4",I[I.LtI32x4=98]="LtI32x4",I[I.LtU32x4=99]="LtU32x4",I[I.GtI32x4=100]="GtI32x4",I[I.GtU32x4=101]="GtU32x4",I[I.LeI32x4=102]="LeI32x4",I[I.LeU32x4=103]="LeU32x4",I[I.GeI32x4=104]="GeI32x4",I[I.GeU32x4=105]="GeU32x4",I[I.EqI64x2=106]="EqI64x2",I[I.NeI64x2=107]="NeI64x2",I[I.LtI64x2=108]="LtI64x2",I[I.GtI64x2=109]="GtI64x2",I[I.LeI64x2=110]="LeI64x2",I[I.GeI64x2=111]="GeI64x2",I[I.EqF32x4=118]="EqF32x4",I[I.NeF32x4=119]="NeF32x4",I[I.LtF32x4=120]="LtF32x4",I[I.GtF32x4=121]="GtF32x4",I[I.LeF32x4=122]="LeF32x4",I[I.GeF32x4=123]="GeF32x4",I[I.EqF64x2=124]="EqF64x2",I[I.NeF64x2=125]="NeF64x2",I[I.LtF64x2=126]="LtF64x2",I[I.GtF64x2=127]="GtF64x2",I[I.LeF64x2=128]="LeF64x2",I[I.GeF64x2=129]="GeF64x2",I[I.AndV128=130]="AndV128",I[I.OrV128=131]="OrV128",I[I.XorV128=132]="XorV128",I[I.AndnotV128=133]="AndnotV128",I[I.AddI8x16=134]="AddI8x16",I[I.AddSatI8x16=135]="AddSatI8x16",I[I.AddSatU8x16=136]="AddSatU8x16",I[I.SubI8x16=137]="SubI8x16",I[I.SubSatI8x16=138]="SubSatI8x16",I[I.SubSatU8x16=139]="SubSatU8x16",I[I.MinI8x16=140]="MinI8x16",I[I.MinU8x16=141]="MinU8x16",I[I.MaxI8x16=142]="MaxI8x16",I[I.MaxU8x16=143]="MaxU8x16",I[I.AvgrU8x16=144]="AvgrU8x16",I[I.AddI16x8=145]="AddI16x8",I[I.AddSatI16x8=146]="AddSatI16x8",I[I.AddSatU16x8=147]="AddSatU16x8",I[I.SubI16x8=148]="SubI16x8",I[I.SubSatI16x8=149]="SubSatI16x8",I[I.SubSatU16x8=150]="SubSatU16x8",I[I.MulI16x8=151]="MulI16x8",I[I.MinI16x8=152]="MinI16x8",I[I.MinU16x8=153]="MinU16x8",I[I.MaxI16x8=154]="MaxI16x8",I[I.MaxU16x8=155]="MaxU16x8",I[I.AvgrU16x8=156]="AvgrU16x8",I[I.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",I[I.ExtmulLowI16x8=158]="ExtmulLowI16x8",I[I.ExtmulHighI16x8=159]="ExtmulHighI16x8",I[I.ExtmulLowU16x8=160]="ExtmulLowU16x8",I[I.ExtmulHighU16x8=161]="ExtmulHighU16x8",I[I.AddI32x4=162]="AddI32x4",I[I.SubI32x4=163]="SubI32x4",I[I.MulI32x4=164]="MulI32x4",I[I.MinI32x4=165]="MinI32x4",I[I.MinU32x4=166]="MinU32x4",I[I.MaxI32x4=167]="MaxI32x4",I[I.MaxU32x4=168]="MaxU32x4",I[I.DotI16x8=169]="DotI16x8",I[I.ExtmulLowI32x4=170]="ExtmulLowI32x4",I[I.ExtmulHighI32x4=171]="ExtmulHighI32x4",I[I.ExtmulLowU32x4=172]="ExtmulLowU32x4",I[I.ExtmulHighU32x4=173]="ExtmulHighU32x4",I[I.AddI64x2=174]="AddI64x2",I[I.SubI64x2=175]="SubI64x2",I[I.MulI64x2=176]="MulI64x2",I[I.ExtmulLowI64x2=177]="ExtmulLowI64x2",I[I.ExtmulHighI64x2=178]="ExtmulHighI64x2",I[I.ExtmulLowU64x2=179]="ExtmulLowU64x2",I[I.ExtmulHighU64x2=180]="ExtmulHighU64x2",I[I.AddF32x4=189]="AddF32x4",I[I.SubF32x4=190]="SubF32x4",I[I.MulF32x4=191]="MulF32x4",I[I.DivF32x4=192]="DivF32x4",I[I.MinF32x4=193]="MinF32x4",I[I.MaxF32x4=194]="MaxF32x4",I[I.PminF32x4=195]="PminF32x4",I[I.PmaxF32x4=196]="PmaxF32x4",I[I.AddF64x2=197]="AddF64x2",I[I.SubF64x2=198]="SubF64x2",I[I.MulF64x2=199]="MulF64x2",I[I.DivF64x2=200]="DivF64x2",I[I.MinF64x2=201]="MinF64x2",I[I.MaxF64x2=202]="MaxF64x2",I[I.PminF64x2=203]="PminF64x2",I[I.PmaxF64x2=204]="PmaxF64x2",I[I.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",I[I.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",I[I.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",I[I.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",I[I.SwizzleI8x16=209]="SwizzleI8x16",I[I.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",I[I.RelaxedMinF32x4=211]="RelaxedMinF32x4",I[I.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",I[I.RelaxedMinF64x2=213]="RelaxedMinF64x2",I[I.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",I[I.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",I[I.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",I[I._last=216]="_last",I[I.AddSize=217]="AddSize",I[I.SubSize=218]="SubSize",I[I.MulSize=219]="MulSize",I[I.DivISize=220]="DivISize",I[I.DivUSize=221]="DivUSize",I[I.RemISize=222]="RemISize",I[I.RemUSize=223]="RemUSize",I[I.AndSize=224]="AndSize",I[I.OrSize=225]="OrSize",I[I.XorSize=226]="XorSize",I[I.ShlSize=227]="ShlSize",I[I.ShrISize=228]="ShrISize",I[I.ShrUSize=229]="ShrUSize",I[I.RotlSize=230]="RotlSize",I[I.RotrSize=231]="RotrSize",I[I.EqSize=232]="EqSize",I[I.NeSize=233]="NeSize",I[I.LtISize=234]="LtISize",I[I.LtUSize=235]="LtUSize",I[I.LeISize=236]="LeISize",I[I.LeUSize=237]="LeUSize",I[I.GtISize=238]="GtISize",I[I.GtUSize=239]="GtUSize",I[I.GeISize=240]="GeISize",I[I.GeUSize=241]="GeUSize",I))(wi||{}),Mp=(l=>(l[l.Add=0]="Add",l[l.Sub=1]="Sub",l[l.And=2]="And",l[l.Or=3]="Or",l[l.Xor=4]="Xor",l[l.Xchg=5]="Xchg",l))(Mp||{}),zp=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(zp||{}),Gp=(l=>(l[l.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",l[l.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",l[l.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",l[l.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",l[l.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",l[l.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",l))(Gp||{}),Dp=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(Dp||{}),Up=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(Up||{}),Vp=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(Vp||{}),Op=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(Op||{}),ng=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(ng||{}),sg=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(sg||{}),lg=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(lg||{}),ag=(i=>(i[i.Null=0]="Null",i[i.NonNull=1]="NonNull",i[i.Cast=2]="Cast",i[i.CastFail=3]="CastFail",i))(ag||{}),og=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(og||{}),ug=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(ug||{}),pg=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(pg||{}),cg=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(cg||{}),Ma=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Ma||{}),Ri=class{constructor(n,e){this.buffer=n;this.offset=e}},Bt=class r{constructor(n,e,t){this.ref=n;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==P.I32||t==P.I64),this.lit=ht(yo())}static create(n,e){return new r(wf(),n,e)}static createFrom(n,e,t){let i=Gn(n),s=new r(Om(i,n.length),e,t);return te(changetype(i)),s}i32(n){let e=this.lit;return Pf(e,n),ai(this.ref,e)}i64(n,e=0){let t=this.lit;return Oy(t,i64_new(n,e)),ai(this.ref,t)}usize(n){return i64_is(n)?this.sizeType==P.I64?this.i64(i64_low(n),i64_high(n)):(assert(i64_is_u32(n)),this.i32(i64_low(n))):this.sizeType==P.I64?this.i64(i32(n)):this.i32(i32(n))}f32(n){let e=this.lit;return Nf(e,n),ai(this.ref,e)}f64(n){let e=this.lit;return Bf(e,n),ai(this.ref,e)}v128(n){assert(n.length==16);let e=this.lit;for(let t=0;t<16;++t)Ge(e+t,unchecked(n[t]));return Lf(e,e),ai(this.ref,e)}ref_null(n){return Gh(this.ref,n)}ref_eq(n,e){return Wh(this.ref,n,e)}string_eq(n,e){return $u(this.ref,0,n,e)}string_compare(n,e){return $u(this.ref,1,n,e)}unary(n,e){if(n>141){let t=this.sizeType==P.I64;switch(n){case 142:n=t?1:0;break;case 143:n=t?3:2;break;case 144:n=t?5:4;break;case 145:n=t?21:20;break;default:assert(!1)}}return R_(this.ref,n,e)}binary(n,e,t){if(n>216){let i=this.sizeType==P.I64;switch(n){case 217:n=i?25:0;break;case 218:n=i?26:1;break;case 219:n=i?27:2;break;case 220:n=i?28:3;break;case 221:n=i?29:4;break;case 222:n=i?30:5;break;case 223:n=i?31:6;break;case 224:n=i?32:7;break;case 225:n=i?33:8;break;case 226:n=i?34:9;break;case 227:n=i?35:10;break;case 228:n=i?36:11;break;case 229:n=i?37:12;break;case 230:n=i?38:13;break;case 231:n=i?39:14;break;case 232:n=i?40:15;break;case 233:n=i?41:16;break;case 234:n=i?42:17;break;case 235:n=i?43:18;break;case 236:n=i?44:19;break;case 237:n=i?45:20;break;case 238:n=i?46:21;break;case 239:n=i?47:22;break;case 240:n=i?48:23;break;case 241:n=i?49:24;break;default:assert(!1)}}return B_(this.ref,n,e,t)}wide_int_add_sub(n,e,t,i,s){return P_(this.ref,n,e,t,i,s)}wide_int_mul(n,e,t){return N_(this.ref,n,e,t)}memory_size(n=z.DefaultMemory,e=!1){let t=this.allocStringCached(n);return __(this.ref,t,e)}memory_grow(n,e=z.DefaultMemory,t=!1){let i=this.allocStringCached(e);return h_(this.ref,n,i,t)}table_size(n){let e=this.allocStringCached(n);return Xh(this.ref,e)}table_grow(n,e,t=0){let i=this.allocStringCached(n);return Zh(this.ref,i,t,e)}local_get(n,e){return l_(this.ref,n,e)}tostack(n){if(this.useShadowStack){let e=Xt(n);return assert(e==P.I32||e==P.Unreachable),this.call(b.tostack,[n],e)}return n}local_tee(n,e,t,i=-1){return i==-1&&(i=Xt(e)),t&&this.useShadowStack&&(e=this.tostack(e)),o_(this.ref,n,e,i)}global_get(n,e){let t=this.allocStringCached(n);return u_(this.ref,t,e)}table_get(n,e,t){let i=this.allocStringCached(n);return Qh(this.ref,i,e,t)}load(n,e,t,i,s=0,l=n,a=z.DefaultMemory){let o=this.allocStringCached(a);return m_(this.ref,n,e,s,l,i,t,o)}store(n,e,t,i,s=0,l=n,a=z.DefaultMemory){let o=this.allocStringCached(a);return E_(this.ref,n,s,l,e,t,i,o)}atomic_load(n,e,t,i=0,s=z.DefaultMemory,l=1){let a=this.allocStringCached(s);return T_(this.ref,n,i,t,e,a,l)}atomic_store(n,e,t,i,s=0,l=z.DefaultMemory,a=1){let o=this.allocStringCached(l);return v_(this.ref,n,s,e,t,i,o,a)}atomic_rmw(n,e,t,i,s,l,a=z.DefaultMemory,o=1){let u=this.allocStringCached(a);return j_(this.ref,n,e,t,i,s,l,u,o)}atomic_cmpxchg(n,e,t,i,s,l,a=z.DefaultMemory,o=1){let u=this.allocStringCached(a);return X_(this.ref,n,e,t,i,s,l,u,o)}atomic_wait(n,e,t,i,s=z.DefaultMemory){let l=this.allocStringCached(s);return J_(this.ref,n,e,t,i,l)}atomic_notify(n,e,t=z.DefaultMemory){let i=this.allocStringCached(t);return ih(this.ref,n,e,i)}atomic_fence(n=null){let e=this.allocStringCached(n);return lh(this.ref,e)}local_set(n,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),a_(this.ref,n,e)}global_set(n,e){let t=this.allocStringCached(n);return p_(this.ref,t,e)}table_set(n,e,t){let i=this.allocStringCached(n);return Hh(this.ref,i,e,t)}block(n,e,t=P.None){let i=this.allocStringCached(n),s=de(e),l=Gf(this.ref,i,s,e.length,t);return te(s),l}flatten(n,e=P.None){let t=n.length;if(t==0)return this.nop();if(t==1){let i=n[0];switch(ee(i)){case 19:case 56:case 23:return i}let s=ae(i);return s!=P.Unreachable&&s!=e?this.unreachable():i}return this.block(null,n,e)}br(n,e=0,t=0){let i=this.allocStringCached(n);return jf(this.ref,i,e,t)}drop(n){return Ao(this.ref,n)}maybeDrop(n){let e=Xt(n);return e!=P.None&&e!=P.Unreachable?Ao(this.ref,n):n}maybeDropCondition(n,e){return(Li(n,this.ref)&-21)!=0?this.block(null,[this.drop(n),e],ae(e)):e}loop(n,e){let t=this.allocStringCached(n);return Wf(this.ref,t,e)}if(n,e,t=0){return Uf(this.ref,n,e,t)}nop(){return W_(this.ref)}return(n=0){return q_(this.ref,n)}select(n,e,t){return G_(this.ref,t,n,e)}switch(n,e,t,i=0){let s=n.length,l=new Array(s);for(let c=0;c<s;++c)unchecked(l[c]=this.allocStringCached(n[c]));let a=de(l),o=this.allocStringCached(e),u=Xf(this.ref,a,s,o,t,i);return te(a),u}call(n,e,t,i=!1){let s=this.allocStringCached(n),l=de(e),a=i?r_(this.ref,s,l,e?e.length:0,t):t_(this.ref,s,l,e?e.length:0,t);return te(l),a}return_call(n,e,t){return this.call(n,e,t,!0)}call_indirect(n,e,t,i,s,l=!1){let a=this.allocStringCached(n??z.DefaultTable),o=de(t),u=l?s_(this.ref,a,e,o,t?t.length:0,i,s):i_(this.ref,a,e,o,t?t.length:0,i,s);return te(o),u}return_call_indirect(n,e,t,i,s){return this.call_indirect(n,e,t,i,s,!0)}unreachable(){return K_(this.ref)}memory_copy(n,e,t,i=z.DefaultMemory,s=z.DefaultMemory){let l=this.allocStringCached(i),a=this.allocStringCached(s);return wh(this.ref,n,e,t,l,a)}memory_fill(n,e,t,i=z.DefaultMemory){let s=this.allocStringCached(i);return Bh(this.ref,n,e,t,s)}try(n,e,t,i,s=null){let l=t.length,a=new Array(l);for(let h=0;h<l;++h)a[h]=this.allocStringCached(t[h]);let o=de(a),u=de(i),c=this.allocStringCached(n),f=this.allocStringCached(s),_=Yh(this.ref,c,e,o,l,u,i.length,f);return te(u),te(o),_}throw(n,e){let t=this.allocStringCached(n),i=de(e),s=ed(this.ref,t,i,e.length);return te(i),s}rethrow(n){let e=this.allocStringCached(n);return id(this.ref,e)}pop(n){return od(this.ref,n)}tuple_make(n){let e=de(n),t=nd(this.ref,e,n.length);return te(e),t}tuple_extract(n,e){return ld(this.ref,n,e)}simd_extract(n,e,t){return ah(this.ref,n,e,t)}simd_replace(n,e,t,i){return uh(this.ref,n,e,t,i)}simd_shuffle(n,e,t){assert(t.length==16);let i=Gn(t),s=fh(this.ref,n,e,i);return te(i),s}simd_ternary(n,e,t,i){return dh(this.ref,n,e,t,i)}simd_shift(n,e,t){return bh(this.ref,n,e,t)}simd_load(n,e,t,i,s=z.DefaultMemory){let l=this.allocStringCached(s);return Eh(this.ref,n,t,i,e,l)}simd_loadstorelane(n,e,t,i,s,l,a=z.DefaultMemory){let o=this.allocStringCached(a);return vh(this.ref,n,t,i,s,e,l,o)}ref_is_null(n){return Dh(this.ref,n)}ref_as(n,e){return iu(this.ref,n,e)}ref_as_nonnull(n){return fg(ae(n))?iu(this.ref,0,n):n}ref_func(n,e){let t=this.allocStringCached(n);return Oh(this.ref,t,Ht(e))}i31_new(n){return ud(this.ref,n)}i31_get(n,e){return cd(this.ref,n,e)}addGlobal(n,e,t,i){let s=this.allocStringCached(n);return gm(this.ref,s,e,t,i)}getGlobal(n){let e=this.allocStringCached(n);return ap(this.ref,e)}removeGlobal(n){let e=this.allocStringCached(n);return ap(this.ref,e)?(bm(this.ref,e),!0):!1}addTag(n,e,t){let i=this.allocStringCached(n);return Sm(this.ref,i,e,t)}getTag(n){let e=this.allocStringCached(n);return Im(this.ref,e)}removeTag(n){let e=this.allocStringCached(n);km(this.ref,e)}addFunction(n,e,t,i,s){let l=this.allocStringCached(n),a=de(i),o=oi(this.ref,l,e,t,a,i?i.length:0,s);return te(a),o}setLocalName(n,e,t){im(n,e,this.allocStringCached(t))}getFunction(n){let e=this.allocStringCached(n);return ui(this.ref,e)}removeFunction(n){let e=this.allocStringCached(n);En(this.ref,e)}hasFunction(n){let e=this.allocStringCached(n);return ui(this.ref,e)!=0}addTemporaryFunction(n,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let i=this.allocStringCached(""),s=de(e),l=oi(this.ref,i,Ze(e),n,0,0,t);return te(s),l}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let n=this.allocStringCached("");En(this.ref,n)}setStart(n){Lm(this.ref,n)}addFunctionExport(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);return Js(this.ref,t,i)}addTableExport(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);return cm(this.ref,t,i)}addMemoryExport(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);return fm(this.ref,t,i)}addGlobalExport(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);return _m(this.ref,t,i)}addTagExport(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);return hm(this.ref,t,i)}removeExport(n){let e=this.allocStringCached(n);tl(this.ref,e)}hasExport(n){let e=this.allocStringCached(n);return el(this.ref,e)!=0}addFunctionImport(n,e,t,i,s){let l=this.allocStringCached(n),a=this.allocStringCached(e),o=this.allocStringCached(t);lm(this.ref,l,a,o,i,s)}addTableImport(n,e,t){let i=this.allocStringCached(n),s=this.allocStringCached(e),l=this.allocStringCached(t);am(this.ref,i,s,l)}addMemoryImport(n,e,t,i=!1){let s=this.allocStringCached(n),l=this.allocStringCached(e),a=this.allocStringCached(t);om(this.ref,s,l,a,i)}addGlobalImport(n,e,t,i,s=!1){let l=this.allocStringCached(n),a=this.allocStringCached(e),o=this.allocStringCached(t);um(this.ref,l,a,o,i,s)}addTagImport(n,e,t,i,s){let l=this.allocStringCached(n),a=this.allocStringCached(e),o=this.allocStringCached(t);pm(this.ref,l,a,o,i,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(n,e,t,i,s=null,l=z.DefaultMemory,a=!1){let o=this.allocStringCached(s),u=this.allocStringCached(l),c=t.length,f=new Array(c),_=new Uint8Array(c),h=new Array(c),d=new Array(c);for(let v=0;v<c;++v){let S=unchecked(t[v]),w=S.buffer,R=S.offset;unchecked(f[v]=Gn(w)),unchecked(_[v]=0),unchecked(h[v]=i==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(d[v]=w.length)}let y=de(f),m=Gn(_),g=de(h),x=Pp(d);Bm(this.ref,n,e,o,0,y,m,g,x,c,a,!1,u),te(x),te(g),te(m),te(y);for(let v=c-1;v>=0;--v)te(unchecked(f[v]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(n,e,t,i,s){let l=this.allocStringCached(n),a=i.length,o=new Array(a);for(let f=0;f<a;++f)unchecked(o[f]=this.allocStringCached(i[f]));let u=de(o),c=up(this.ref,l);c?(Cm(c,e),Pm(c,t)):c=op(this.ref,l,e,t,P.Funcref),Nm(this.ref,l,l,u,a,s),te(u)}ensureFunctionTable(n){let e=this.allocStringCached(n);up(this.ref,e)||op(this.ref,e,0,r.UNLIMITED_TABLE,P.Funcref)}addCustomSection(n,e){let t=this.allocStringCached(n),i=Gn(e);Hm(this.ref,t,i,e.length),te(i)}getOptimizeLevel(){return cy()}setOptimizeLevel(n){fy(n)}getShrinkLevel(){return _y()}setShrinkLevel(n){hy(n)}getDebugInfo(){return dy()}setDebugInfo(n){my(n)}getTrapsNeverHappen(){return yy()}setTrapsNeverHappen(n){gy(n)}getClosedWorld(){return by()}setClosedWorld(n){xy(n)}getLowMemoryUnused(){return Ty()}setLowMemoryUnused(n){Ey(n)}getZeroFilledMemory(){return Ay()}setZeroFilledMemory(n){vy(n)}getFastMath(){return Sy()}setFastMath(n){Iy(n)}getGenerateStackIR(){return ky()}setGenerateStackIR(n){Fy(n)}getOptimizeStackIR(){return Ry()}setOptimizeStackIR(n){wy(n)}getPassArgument(n){let e=this.allocStringCached(n),t=Cy(e);return t?qe(t):null}setPassArgument(n,e){let t=this.allocStringCached(n),i=this.allocStringCached(e);Py(t,i)}clearPassArguments(){Ny()}getAlwaysInlineMaxSize(){return By()}setAlwaysInlineMaxSize(n){Ly(n)}getFlexibleInlineMaxSize(){return My()}setFlexibleInlineMaxSize(n){zy(n)}getOneCallerInlineMaxSize(){return Gy()}setOneCallerInlineMaxSize(n){Dy(n)}getAllowInliningFunctionsWithLoops(){return Uy()}setAllowInliningFunctionsWithLoops(n){Vy(n)}setPartialInliningIfs(n){this.setPassArgument("partial-inlining-ifs",n.toString())}getFeatures(){return jm(this.ref)}setFeatures(n){n&16&&(n|=524288),Qm(this.ref,n)}runPasses(n,e=0){let t=n.length,i=new Array(t);for(let l=0;l<t;++l)i[l]=Na(n[l]);let s=de(i);e?nm(e,this.ref,s,t):zm(this.ref,s,t),te(s);for(let l=t-1;l>=0;--l)te(i[l])}optimize(n,e,t=!1,i=!1){(n>=3||e>=2)&&(n=4),this.clearPassArguments(),this.setOptimizeLevel(n),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(i),this.setFastMath(!0);let s=n>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),n>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(n<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(n>=2?4:0),n>0||e>0){let l=new Array;l.push("duplicate-function-elimination"),l.push("remove-unused-module-elements"),n>=2&&l.push("once-reduction"),(n>=2||e>=1)&&(l.push("inlining"),l.push("simplify-globals-optimizing"),l.push("generate-global-effects")),(n>=3||e>=1)&&(l.push("rse"),l.push("vacuum"),l.push("code-folding"),l.push("ssa-nomerge"),l.push("local-cse"),l.push("remove-unused-brs"),l.push("remove-unused-names"),l.push("merge-blocks"),l.push("precompute-propagate"),l.push("simplify-globals-optimizing"),l.push("dae-optimizing")),n>=3&&(l.push("simplify-locals-nostructure"),l.push("flatten"),l.push("vacuum"),l.push("simplify-locals-notee-nostructure"),l.push("vacuum"),l.push("local-cse"),l.push("licm"),l.push("merge-locals"),l.push("reorder-locals")),l.push("optimize-instructions"),n>=2&&l.push("avoid-reinterprets"),l.push("dce"),l.push("remove-unused-brs"),l.push("remove-unused-names"),l.push("merge-blocks"),this.getFeatures()&512&&l.push("tuple-optimization"),n>=3||e>=2?(l.push("inlining"),l.push("precompute-propagate"),l.push("simplify-globals-optimizing")):n>=2||e>=1?l.push("precompute-propagate"):l.push("precompute"),(n>=2||e>=1)&&l.push("pick-load-signs"),l.push("simplify-locals-notee-nostructure"),l.push("vacuum"),(n>=2||e>=1)&&l.push("local-cse"),l.push("reorder-locals"),l.push("coalesce-locals"),l.push("simplify-locals"),l.push("coalesce-locals"),l.push("reorder-locals"),l.push("vacuum"),(n>=2||e>=1)&&(l.push("rse"),l.push("vacuum")),e>=1&&(l.push("merge-locals"),l.push("vacuum")),(n>=2||e>=1)&&(l.push("simplify-globals-optimizing"),l.push("simplify-globals-optimizing")),l.push("remove-unused-brs"),l.push("remove-unused-names"),l.push("merge-blocks"),n>=3&&l.push("optimize-instructions"),(n>=2||e>=1)&&(l.push("simplify-globals-optimizing"),l.push("dae-optimizing")),(n>=2||e>=2)&&l.push("inlining-optimizing"),this.getLowMemoryUnused()&&(n>=3||e>=1?l.push("optimize-added-constants-propagate"):l.push("optimize-added-constants")),l.push("duplicate-import-elimination"),n>=2||e>=2?l.push("simplify-globals-optimizing"):(l.push("simplify-globals"),l.push("vacuum")),n>=2&&(this.getFeatures()&1024)!=0&&(l.push("heap2local"),l.push("merge-locals"),l.push("local-subtyping")),n>=2||e>=1?(l.push("precompute-propagate"),l.push("simplify-globals-optimizing"),l.push("simplify-globals-optimizing")):l.push("precompute"),l.push("directize"),l.push("dae-optimizing"),(n>=3||e>=1)&&l.push("gufa-optimizing"),l.push("inlining-optimizing"),(n>=2||e>=1)&&(l.push("code-folding"),l.push("ssa-nomerge"),l.push("rse"),l.push("code-pushing"),n>=3&&(l.push("simplify-globals"),l.push("vacuum"),l.push("precompute-propagate"),l.push("inlining-optimizing"),l.push("directize"),l.push("dae-optimizing"),l.push("local-cse"),l.push("merge-locals"),l.push("coalesce-locals"),l.push("simplify-locals"),l.push("vacuum"),l.push("inlining"),l.push("precompute-propagate"),l.push("rse"),l.push("vacuum"),l.push("ssa-nomerge"),l.push("simplify-locals"),l.push("coalesce-locals")),l.push("optimize-instructions"),l.push("remove-unused-brs"),l.push("remove-unused-names"),l.push("merge-blocks"),l.push("vacuum"),this.getFeatures()&16384&&l.push("string-gathering"),l.push("simplify-globals-optimizing"),l.push("remove-unused-brs"),l.push("optimize-instructions"),l.push("vacuum")),l.push("reorder-globals"),l.push("reorder-functions"),(n>=2||e>=1)&&l.push("duplicate-function-elimination"),e>=2&&l.push("merge-similar-functions"),l.push("memory-packing"),l.push("remove-unused-module-elements"),(n>=2||e>=1)&&l.push("discard-global-effects"),this.runPasses(l)}}validate(){return Mm(this.ref)==1}interpret(){qm(this.ref)}toBinary(n=null){assert(yo()>=Gm());let e=this.lit,t=Na(n);Dm(e,this.ref,t);let i=Jt(e+0),s=Jt(e+4),l=Jt(e+8),a=new La(Q2(assert(i),s),qe(l));return t&&te(t),l&&te(l),te(i),a}toText(n=!0){let e=n?Vm(this.ref):Um(this.ref),t=qe(e);return e&&te(e),t||""}allocStringCached(n){if(n==null)return 0;let e=this.cachedStringsToPointers;if(e.has(n))return changetype(e.get(n));let t=Na(n);return e.set(n,t),t}readStringCached(n){if(n==0)return null;let e=this.cachedPointersToStrings;if(e.has(n))return changetype(e.get(n));let t=qe(n);return e.set(n,t),t}dispose(){assert(this.ref);for(let n=Map_values(this.cachedStringsToPointers),e=0,t=n.length;e<t;++e){let i=unchecked(n[e]);te(i)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),te(this.lit),Cf(this.ref),this.ref=0}createRelooper(){return Ba.create(this)}tryCopyTrivialExpression(n){return this.isTrivialExpression(n)?this.copyExpression(n):0}isTrivialExpression(n){switch(It(n)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(n){return Mf(n,this.ref)}runExpression(n,e,t=50,i=1){let s=ry(this.ref,e,t,i),l=iy(s,n);if(l){if(!this.isConstExpression(l))return 0;assert(ae(l)==ae(n))}return l}isConstExpression(n){switch(ee(n)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Pi(n)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression($e(n))&&this.isConstExpression(De(n))}break}}return!1}addDebugInfoFile(n){let e=Na(n),t=Wm(this.ref,e);return te(e),t}getDebugInfoFile(n){return qe(Km(this.ref,n))}setDebugLocation(n,e,t,i,s){sm(n,e,t,i,s)}};function Ze(r){if(!r)return P.None;switch(r.length){case 0:return P.None;case 1:return r[0]}let n=de(r),e=cf(n,r.length);return te(n),e}function qp(r){let n=ff(r),e=ht(n<<2);_f(r,e);let t=new Array(n);for(let i=0;i<n;++i)unchecked(t[i]=Jt(e+(i<<2)));return te(e),t}function fg(r){return hf(r)}function ee(r){return It(r)}function ae(r){return Xt(r)}function ie(r){return S_(r)}function ke(r){return i64_low(_p(r))}function Ne(r){return i64_high(_p(r))}function Wp(r,n){let e=0,t=0;return n?(e=ke(r),t=Ne(r)):e=ie(r),i64_new(e,t)}function Se(r){return I_(r)}function Ie(r){return k_(r)}function Kp(r){let n=ht(16);F_(r,n);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Ar(n+t);return te(n),e}function Ye(r){if(ee(r)!=14)return!1;let n=ae(r);return n==P.I32?ie(r)==0:n==P.I64?(ke(r)|Ne(r))==0:n==P.F32?Se(r)==0:n==P.F64?Ie(r)==0:!1}function ut(r){if(ee(r)!=14)return!1;let n=ae(r);return n==P.I32?ie(r)!=0:n==P.I64?(ke(r)|Ne(r))!=0:n==P.F32?Se(r)!=0:n==P.F64?Ie(r)!=0:!1}function za(r){if(ee(r)!=14)return!1;let n=ae(r);if(n==P.F32){let e=Se(r);return e==0&&f32_as_i32(e)<0}if(n==P.F64){let e=Ie(r);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function E2(r){if(ee(r)!=14)return!1;let n=ae(r);return n==P.F32?isNaN(Se(r)):n==P.F64?isNaN(Ie(r)):!1}function Ga(r,n){let e=ee(n),t=ae(n);if(t==P.F32||t==P.F64){if(e==14)return isNaN(t==P.F32?Se(n):Ie(n));if(e==10){let i=r.runExpression(n,0,8);if(i)return isNaN(t==P.F32?Se(i):Ie(i))}}return!1}function We(r){return Os(r)}function Da(r){return li(r)}function Ua(r){return xr(r)}function On(r){return qs(r)}function Ci(r){return qe(Ks(r))}function Pi(r){return L_(r)}function $e(r){return mn(r)}function De(r){return yn(r)}function qn(r){return w_(r)}function Va(r){return dn(r)}function jp(r){return b_(r)}function Qp(r){return g_(r)}function Hp(r){return _n(r)}function Xp(r){return y_(r)}function A2(r){return js(r)}function v2(r){return Qs(r)}function S2(r){return Tr(r)}function I2(r){return hn(r)}function Wn(r){return qe(zs(r))}function Kn(r){return rn(r)}function jn(r,n){return nn(r,n)}function Oa(r){return sn(r)}function Qn(r){return ln(r)}function Ni(r){return an(r)}function k2(r){return qe(Gs(r))}function F2(r){return on(r)}function R2(r){return qe(Ds(r))}function w2(r){return un(r)}function Zp(r){return gn(r)}function Yp(r){return bn(r)}function C2(r){return xn(r)}function P2(r){return Tn(r)}function N2(r){return Er(r)}function Bi(r){return qe(si(r))}function pt(r){return Zt(r)}function Be(r,n){return Yt(r,n)}function B2(r){return fn(r)}function L2(r){return $t(r)}function $p(r){return qe(pi(r))}function M2(r){return An(r)}function z2(r){return vn(r)}function G2(r){let n=Zs(r),e=new Array(n);for(let t=0;t<n;++t)unchecked(e[t]=Ys(r,t));return e}function D2(r){return qe(Em(r))}function U2(r){return Am(r)}function Jp(r){return vm(r)}function V2(r){return rl(r)}function O2(r){return qe(Fm(r))}function q2(r){return Rm(r)}function W2(r){return wm(r)}var Ba=class r{constructor(n,e){this.module=n;this.ref=e}static create(n){return new r(n,Zm(n.ref))}addBlock(n){return Ym(this.ref,n)}addBranch(n,e,t=0,i=0){$m(n,e,t,i)}addBlockWithSwitch(n,e){return Jm(this.ref,n,e)}addBranchForSwitch(n,e,t,i=0){let s=K2(t);ey(n,e,s,t.length,i),te(s)}renderAndDispose(n,e){return ty(this.ref,n,e)}},Un=class{constructor(n,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=n,this.condition=e}addOrReplaceCase(n,e){let t=this.values.indexOf(n),i=this.addCode(e);t>=0?this.indexes[t]=i:(this.values.push(n),this.indexes.push(i))}addCase(n,e){this.values.push(n),this.indexes.push(this.addCode(e))}addCode(n){let e=this.cases,t=e.indexOf(n);return t<0&&(t=e.length,e.push(n)),t}addDefault(n){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(n)}render(n,e=""){let t=this.module,i=this.cases,s=i.length;if(!s)return t.drop(this.condition);let l=this.values,a=l.length,o=this.indexes,u=new Array(1+a+1),c=new Array(s);for(let y=0;y<s;++y)unchecked(c[y]=`case${y}${e}`);u[0]=t.local_set(n,this.condition,!1);for(let y=0;y<a;++y){let m=unchecked(o[y]);unchecked(u[1+y]=t.br(c[m],t.binary(15,t.local_get(n,P.I32),t.i32(l[y]))))}let f=this.defaultIndex,_=`default${e}`;u[1+a]=t.br(~f?c[f]:_);let h=t.block(c[0],u);for(let y=1;y<s;++y){let m=i[y-1];m.unshift(h),h=t.block(unchecked(c[y]),m)}let d=i[s-1];return d.unshift(h),t.block(~f?null:_,d)}},ec=(g=>(g[g.None=0]="None",g[g.Branches=1]="Branches",g[g.Calls=2]="Calls",g[g.ReadsLocal=4]="ReadsLocal",g[g.WritesLocal=8]="WritesLocal",g[g.ReadsGlobal=16]="ReadsGlobal",g[g.WritesGlobal=32]="WritesGlobal",g[g.ReadsMemory=64]="ReadsMemory",g[g.WritesMemory=128]="WritesMemory",g[g.ReadsTable=256]="ReadsTable",g[g.WritesTable=512]="WritesTable",g[g.ImplicitTrap=1024]="ImplicitTrap",g[g.IsAtomic=2048]="IsAtomic",g[g.Throws=4096]="Throws",g[g.DanglingPop=8192]="DanglingPop",g[g.TrapsNeverHappen=16384]="TrapsNeverHappen",g[g.Any=32767]="Any",g))(ec||{});function Li(r,n){return Xm(r,n)}function qa(r,n){return(Li(r,n)&-21)!=0}function Gn(r){if(!r)return 0;let n=r.length,e=ht(n);for(let t=0;t<n;++t)Ge(e+t,unchecked(r[t]));return e}function K2(r){if(!r)return 0;let n=r.length,e=ht(n<<2),t=e;for(let i=0;i<n;++i){let s=unchecked(r[i]);nl(t,s),t+=4}return e}function Pp(r){if(!r)return 0;let n=r.length,e=ht(n<<2),t=e;for(let i=0;i<n;++i){let s=unchecked(r[i]);nl(t,s),t+=4}return e}function de(r){if(!r)return 0;assert(ASC_TARGET!=2);let n=r.length,e=ht(n<<2),t=e;for(let i=0,s=n;i<s;++i){let l=unchecked(r[i]);nl(t,l),t+=4}return e}function j2(r){let n=0;for(let e=0,t=r.length;e<t;++e){let i=r.charCodeAt(e)>>>0;i<=127?n+=1:i<=2047?n+=2:bi(i)&&e+1<t&&hl(r.charCodeAt(e+1))?(e++,n+=4):n+=3}return n}function Na(r){if(r==null)return 0;let n=j2(r),e=ht(n+1)>>>0,t=e;if(n==r.length)for(let i=0,s=r.length;i<s;++i){let l=r.charCodeAt(i)>>>0;Ge(t++,l)}else for(let i=0,s=r.length;i<s;++i){let l=r.charCodeAt(i)>>>0,a;l<=127?Ge(t++,l):l<=2047?(Ge(t++,192|l>>>6),Ge(t++,128|l&63)):bi(l)&&i+1<s&&hl(a=r.charCodeAt(i+1))?(l=Fn(l,a),++i,Ge(t++,240|l>>>18),Ge(t++,128|l>>>12&63),Ge(t++,128|l>>>6&63),Ge(t++,128|l&63)):(Ge(t++,224|l>>>12),Ge(t++,128|l>>>6&63),Ge(t++,128|l&63))}return Ge(t,0),e}function Q2(r,n){let e=new Uint8Array(n);for(let t=0;t<n;++t)unchecked(e[t]=Ar(r+t));return e}function qe(r){if(!r)return null;let n=new Array,e,t,i,s;for(;e=Ar(r++);){if(!(e&128)){n.push(e);continue}if(t=Ar(r++)&63,(e&224)==192){n.push((e&31)<<6|t);continue}if(i=Ar(r++)&63,(e&240)==224?e=(e&15)<<12|t<<6|i:(s=Ar(r++)&63,(e&248)==240?e=(e&7)<<18|t<<12|i<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)n.push(e);else{let l=e-65536;n.push(kn|l>>>10),n.push(gi|l&1023)}}return String.fromCharCodes(n)}var La=class{constructor(n,e){this.output=n;this.sourceMap=e}},Nt=!1;function Hn(r){if(r==p.void)return P.None;let n=_g(r);if(n)return n;let e=r;if(r=r.nonNullableType,n=r.ref)return me(Ht(n),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=ny(0),i=new Map;sr(t,i,r);let s=il(t),l=ht(max(4*s,8));if(!oy(t,l,l,l+4)){let a=Jt(l),o=Jt(l+4);throw te(l),new Error(`type builder error at index ${a}: ${Np.toString(o)}`)}for(let a=Map_keys(i),o=0,u=a.length;o<u;++o){let c=a[o];assert(!c.is(512));let f=Jt(l+4*o),_=me(f,!1);assert(!c.ref),c.ref=_,Nt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let d=h.program.module;uy(d.ref,f,d.allocStringCached(h.internalName));let y=h.members;if(y){let m=Rf(f),g=0;for(let x=Map_values(y),v=0,S=x.length;v<S;++v){let w=x[v];if(w.kind!=10)continue;let R=w.instance;!R||!R.isField||py(d.ref,f,g++,d.allocStringCached(R.name))}assert(m==g)}}}return te(l),Nt&&console.log(` finalize ${r.toString()}`),n=assert(r.ref),me(Ht(n),e.is(512))}function _g(r){switch(r.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return P.I32;case 4:case 9:return P.I64;case 5:case 10:{if(r.isInternalReference)break;return r.size==64?P.I64:P.I32}case 11:return P.F32;case 12:return P.F64;case 13:return P.V128;case 15:return me(Ee.Func,r.is(512));case 14:return me(Ee.Extern,r.is(512));case 16:return me(Ee.Any,r.is(512));case 17:return me(Ee.Eq,r.is(512));case 18:return me(Ee.Struct,r.is(512));case 19:return me(Ee.Array,r.is(512));case 20:return me(Ee.I31,r.is(512));case 21:return me(Ee.String,r.is(512));case 25:assert(!1)}return 0}function H2(r){switch(r.kind){case 0:case 1:case 6:return Dn.I8;case 2:case 7:return Dn.I16}return Dn.NotPacked}function sr(r,n,e){if(e==p.void)return P.None;let t=_g(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(n.has(e))return Nt&&console.log(` prepare ${e.toString()} (seen)`),changetype(n.get(e));Nt&&console.log(`prepare ${e.toString()}`);let i=e.getClass();if(i){let l=i.base,a=0;l&&(a=sr(r,n,l.type));let o=il(r);pp(r,1),Nt&&console.log(` block [${o}]: ${e.toString()}`);let u=cp(r,o);t=ci(r,u,!1),n.set(e,t);let c=new Array,f=new Array,_=new Array,h=i.members;if(h)for(let g=Map_values(h),x=0,v=g.length;x<v;++x){let S=g[x];if(S.kind!=10)continue;let w=S.instance;if(!w||!w.isField)continue;let R=w.type;Nt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(ci(r,Ht(sr(r,n,R.nonNullableType)),!0)):c.push(sr(r,n,R)),f.push(H2(R)),_.push(1)}let d=de(c),y=Pp(f),m=Pp(_);return Nt&&console.log(` concretize [${o}]: ${e.toString()}`),ly(r,o,d,y,m,c.length),l&&(Nt&&console.log(` set super [${o}]: ${e.toString()} <: ${l.type.toString()} ${a==l.type.ref?" (known)":""}`),ay(r,o,Ht(a))),te(m),te(y),te(d),t}let s=e.getSignature();if(s){let l=il(r);pp(r,1);let a=ci(r,cp(r,l),!1);n.set(e,a);let o=new Array,u=new Array,c=s.parameterTypes;for(let d=0,y=c.length;d<y;++d){let m=c[d];m.is(512)?o.push(ci(r,Ht(sr(r,n,m.nonNullableType)),!0)):o.push(sr(r,n,m))}let f=s.returnType;u.push(f==p.void?P.None:f.is(512)?ci(r,Ht(sr(r,n,f.nonNullableType)),!0):sr(r,n,f));let _;if(o.length>1){let d=de(o);_=fp(r,d,o.length),te(d)}else _=o.length?o[0]:P.None;let h;if(u.length>1){let d=de(u);h=fp(r,d,u.length),te(d)}else h=u[0];return Nt&&console.log(` concretize [${l}]: ${e.toString()}`),sy(r,l,_,h),a}throw new Error(`unexpected complex type: ${e.toString()}`)}var ja=(w=>(w[w.None=0]="None",w[w.Returns=1]="Returns",w[w.ReturnsWrapped=2]="ReturnsWrapped",w[w.ReturnsNonNull=4]="ReturnsNonNull",w[w.Throws=8]="Throws",w[w.Breaks=16]="Breaks",w[w.Continues=32]="Continues",w[w.AccessesThis=64]="AccessesThis",w[w.CallsSuper=128]="CallsSuper",w[w.Terminates=256]="Terminates",w[w.ConditionallyReturns=512]="ConditionallyReturns",w[w.ConditionallyThrows=1024]="ConditionallyThrows",w[w.ConditionallyBreaks=2048]="ConditionallyBreaks",w[w.ConditionallyContinues=4096]="ConditionallyContinues",w[w.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",w[w.MayReturnNonThis=16384]="MayReturnNonThis",w[w.UncheckedContext=32768]="UncheckedContext",w[w.CtorParamContext=65536]="CtorParamContext",w[w.InlineContext=131072]="InlineContext",w[w.AnyCategorical=511]="AnyCategorical",w[w.AnyConditional=15872]="AnyConditional",w))(ja||{}),Xn=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(Xn||{}),tc=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(tc||{}),rc=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(rc||{}),Lt=class r{constructor(n,e=null){this.targetFunction=n;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.nonNullPaths=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null}static createDefault(n){let e=new r(n);return n.is(524288)&&e.initThisFieldFlags(),n.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(n,e){let t=new r(n,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),n.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get sourceFunction(){let n=this.inlineFunction;return n||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(n){return(this.flags&n)==n}isAny(n){return(this.flags&n)!=0}set(n){this.flags|=n}unset(n){this.flags&=~n}deriveConditionalFlags(){let n=this.flags&15872;return this.is(1)&&(n|=512),this.is(8)&&(n|=1024),this.is(16)&&(n|=2048),this.is(32)&&(n|=4096),this.is(64)&&(n|=8192),n}fork(n=!1,e=n){let t=new r(this.targetFunction,this.inlineFunction);t.parent=this,t.flags=this.flags,t.outer=this.outer,n?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice();let i=this.nonNullPaths;if(i&&(t.nonNullPaths=X2(i)),this.sourceFunction.is(524288)){let s=assert(this.thisFieldFlags);t.thisFieldFlags=se(s)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(n,e=!1,t=e){let i=this.fork(e,t),s=this.trueFlows;return s&&s.has(n)&&i.inherit(changetype(s.get(n))),i.inheritNonnullIfTrue(n),i}noteThen(n,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(n,e)}forkElse(n){let e=this.fork(),t=this.falseFlows;return t&&t.has(n)&&e.inherit(changetype(t.get(n))),e.inheritNonnullIfFalse(n),e}noteElse(n,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(n,e)}addScopedTypeAlias(n,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(n,e)}lookupScopedTypeAlias(n){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(n))return assert(t.get(n));e=e.parent}while(e);return null}lookupTypeAlias(n){let e=null;if(e=this.lookupScopedTypeAlias(n))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(n):null}getTempLocal(n){let e=this.targetFunction.addLocal(n);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(n){let e=this.scopedLocals;return e&&e.has(n)?assert(e.get(n)):null}addScopedLocal(n,e){let t=this.getTempLocal(e);t.name=n,t.internalName=Ue(n,t.parent,!1);let i=this.scopedLocals;return i?assert(!i.has(n)):this.scopedLocals=i=new Map,t.set(67108864),i.set(n,t),t}addScopedDummyLocal(n,e,t){let i=new Ke(n,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(n)&&this.program.error(2451,t.range,n):this.scopedLocals=s=new Map,i.set(67108864),s.set(n,i),i}addScopedAlias(n,e,t,i=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(n)){let a=assert(s.get(n));return i&&(a.declaration.range.source.isNative?this.program.error(2300,i.range,n):this.program.errorRelated(2300,i.range,a.declaration.name.range,n)),a}assert(t<this.targetFunction.localsByIndex.length);let l=new Ke(n,t,e,this.targetFunction);return l.set(67108864),s.set(n,l),l}freeScopedDummyLocal(n){let e=assert(this.scopedLocals);assert(e.has(n));let t=assert(e.get(n));assert(t.index==-1),e.delete(n)}lookupLocal(n){let e=this;do{let t=e.scopedLocals;if(t&&t.has(n))return assert(t.get(n));e=e.parent}while(e);return null}lookup(n){let e=this.lookupLocal(n);if(e)return e;let t=this.outer;for(;t;){let i=t.lookupLocal(n);if(i)return i;t=t.outer}return this.sourceFunction.lookup(n)}lookupOuterThis(){let n=this;for(;n;){let e=n.sourceFunction;if(e.signature.thisType)return n.lookupLocal(z.this_);if(e.prototype.arrowKind==0)return null;n=n.outer}return null}isLocalFlag(n,e,t=!0){if(n<0)return t;let i=this.localFlags;return n<i.length&&(unchecked(i[n])&e)==e}isAnyLocalFlag(n,e,t=!0){if(n<0)return t;let i=this.localFlags;return n<i.length&&(unchecked(i[n])&e)!=0}setLocalFlag(n,e){if(n<0)return;let t=this.localFlags,i=n<t.length?unchecked(t[n]):0;t[n]=i|e}unsetLocalFlag(n,e){if(n<0)return;let t=this.localFlags,i=n<t.length?unchecked(t[n]):0;t[n]=i&~e}initThisFieldFlags(){let n=this.sourceFunction;assert(n.is(524288));let e=n.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let i=t.members;if(i)for(let s=Map_values(i),l=0,a=s.length;l<a;++l){let o=s[l];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(n,e){let t=this.thisFieldFlags;return t!=null&&t.has(n)?(changetype(t.get(n))&e)==e:!1}setThisFieldFlag(n,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(n)){let i=changetype(t.get(n));t.set(n,i|e)}else t.set(n,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let n=this.targetFunction,e=n.nextBreakId++,t=n.breakStack;return t?t.push(e):n.breakStack=[e],e}popControlFlowLabel(n){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==n)}inherit(n){assert(n.targetFunction==this.targetFunction);let e=n.flags;this.breakLabel!=n.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=n.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=n.localFlags,this.thisFieldFlags=n.thisFieldFlags,this.nonNullPaths=n.nonNullPaths}mergeSideEffects(n){assert(n.targetFunction==this.targetFunction);let e=this.flags,t=n.flags,i=0;e&1?i|=1:t&1?i|=512:i|=(e|t)&512,i|=e&t&2,i|=e&t&4,e&8?i|=8:t&8?i|=1024:i|=(e|t)&1024,e&16?i|=16:n.breakLabel==this.breakLabel?t&16?i|=2048:i|=(e|t)&2048:i|=e&2048,e&32?i|=32:n.continueLabel==this.continueLabel?t&32?i|=4096:i|=(e|t)&4096:i|=e&4096,e&64?t&64?i|=64:i|=8192:t&64&&(i|=8192),i|=(e|t)&16384,i|=e&t&128,e&256&&(i|=256),this.flags=i|e&98304}mergeBranch(n){this.mergeSideEffects(n);let e=this.localFlags,t=e.length,i=n.localFlags,s=i.length,l=max(t,s);for(let a=0;a<l;++a){let o=a<t?e[a]:0,u=a<s?i[a]:0;e[a]=o&u&15}this.nonNullPaths=hg(this.nonNullPaths,n.nonNullPaths)}inheritAlternatives(n,e){assert(n.targetFunction==e.targetFunction),assert(n.targetFunction==this.targetFunction);let t=n.flags,i=e.flags,s=0;t&1?i&1?s|=1:s|=512:i&1?s|=512:s|=(t|i)&512,t&2&&i&2&&(s|=2),t&4&&i&4&&(s|=4),t&8?i&8?s|=8:s|=1024:i&8?s|=1024:s|=(t|i)&1024,t&16?i&16?s|=16:s|=2048:i&16?s|=2048:s|=(t|i)&2048,t&32?i&32?s|=32:s|=4096:i&32?s|=4096:s|=(t|i)&4096,t&64?i&64?s|=64:s|=8192:i&64?s|=8192:s|=(t|i)&8192,s|=(t|i)&16384,t&128&&i&128&&(s|=128),t&256&&i&256&&(s|=256),this.flags=s|this.flags&98304;let l=this.localFlags;if(t&256){if(!(i&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)l[u]=o[u]}}else if(i&256){let o=n.localFlags;for(let u=0,c=o.length;u<c;++u)l[u]=o[u]}else{let o=n.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let h=0;h<_;++h){let d=h<u?o[h]:0,y=h<f?c[h]:0;l[h]=d&y&15}}t&256?i&256||(this.nonNullPaths=e.nonNullPaths):i&256?this.nonNullPaths=n.nonNullPaths:this.nonNullPaths=hg(n.nonNullPaths,e.nonNullPaths);let a=n.thisFieldFlags;if(a){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(a),f=0,_=c.length;f<_;++f){let h=c[f];(changetype(a.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(n,e){let t=this.localFlags.length,i=n.localFlags.length,s=this.targetFunction;assert(s==n.targetFunction);let l=s.localsByIndex;assert(l==n.targetFunction.localsByIndex);let a=!1;for(let u=0,c=min(t,i);u<c;++u){let _=l[u].type;_.isShortIntegerValue&&this.isLocalFlag(u,2)&&!n.isLocalFlag(u,2)&&(this.unsetLocalFlag(u,2),a=!0),_.isNullableReference&&this.isLocalFlag(u,4)&&!n.isLocalFlag(u,4)&&(this.unsetLocalFlag(u,4),a=!0)}let o=this.nonNullPaths;if(o){let u=n.nonNullPaths;for(let c=Set_values(o),f=0,_=c.length;f<_;++f){let h=c[f];(!u||!u.has(h))&&(o.delete(h),a=!0)}}return a&&(assert(l.length>=e),l.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),a}isNonnull(n,e){if(!e.isNullableReference)return!0;switch(ee(n)){case 9:{if(!On(n))break;let t=this.targetFunction.localsByIndex[Da(n)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[We(n)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 6:case 10:case 12:return this.isPathNonNull(n)}return!1}isPathNonNull(n){let e=this.nonNullPaths;if(!e)return!1;let t=this.pathKey(n);return t!=null&&e.has(t)}pathKey(n){if(ee(n)==12){let e=this.targetFunction.closureEnv,t=Hp(n);return e&&ee(t)==8&&We(t)==e.index?"env@"+Qp(n).toString():null}return Ka(n)}setPathNonNull(n,e){let t=this.pathKey(n);if(t==null||!(t.includes(">")||t.includes("@")))return!1;if(e){let s=e.nonNullPaths;if(!s||!s.has(t))return!0}let i=this.nonNullPaths;return i||(this.nonNullPaths=i=new Set),i.add(t),!0}forgetGlobalPaths(n){let e=this.nonNullPaths;if(!e)return;let t="g@"+n;for(let i=Set_values(e),s=0,l=i.length;s<l;++s){let a=i[s];(a==t||a.startsWith(t+">"))&&e.delete(a)}}forgetPaths(n,e=null){let t=this.nonNullPaths;if(!t)return;let i="l"+n.toString(),s=e!=null?">"+e:"";for(let l=Set_values(t),a=0,o=l.length;a<o;++a){let u=l[a];(e!=null?u.includes(s):u==i||u.startsWith(i+">"))&&t.delete(u)}}inheritNonnullIfTrue(n,e=null){switch(ee(n)){case 9:{if(!On(n))break;let t=this.targetFunction.localsByIndex[Da(n)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(Ua(n),e);break}case 8:{let t=this.targetFunction.localsByIndex[We(n)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=Ni(n);t&&Ye(t)&&(this.inheritNonnullIfTrue(Oa(n),e),this.inheritNonnullIfTrue(Qn(n),e));break}case 10:{this.setPathNonNull(n,e);break}case 15:{switch(qn(n)){case 20:case 21:{this.inheritNonnullIfFalse(Va(n),e);break}}break}case 16:{switch(Pi(n)){case 15:case 40:{let t=$e(n),i=De(n);ut(t)?this.inheritNonnullIfTrue(i,e):ut(i)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(n),i=De(n);Ye(t)?this.inheritNonnullIfTrue(i,e):Ye(i)&&this.inheritNonnullIfTrue(t,e);break}}break}case 12:{this.setPathNonNull(n,e);break}case 6:{if(this.setPathNonNull(n,e))break;let t=Bi(n);if(t==b.String_eq){assert(pt(n)==2);let i=Be(n,0),s=Be(n,1);ut(i)?this.inheritNonnullIfTrue(s,e):ut(s)&&this.inheritNonnullIfTrue(i,e)}else if(t==b.String_ne){assert(pt(n)==2);let i=Be(n,0),s=Be(n,1);Ye(i)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(i,e)}else t==b.String_not?(assert(pt(n)==1),this.inheritNonnullIfFalse(Be(n,0),e)):t==b.tostack&&(assert(pt(n)==1),this.inheritNonnullIfTrue(Be(n,0),e));break}}}inheritNonnullIfFalse(n,e=null){switch(ee(n)){case 15:{switch(qn(n)){case 20:case 21:{this.inheritNonnullIfTrue(Va(n),e);break}}break}case 2:{let t=Qn(n);Ni(n)&&ut(t)&&(this.inheritNonnullIfFalse(Oa(n),e),this.inheritNonnullIfFalse(Ni(n),e));break}case 16:{switch(Pi(n)){case 15:case 40:{let t=$e(n),i=De(n);Ye(t)?this.inheritNonnullIfTrue(i,e):Ye(i)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=$e(n),i=De(n);ut(t)?this.inheritNonnullIfTrue(i,e):ut(i)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Bi(n);if(t==b.String_eq){assert(pt(n)==2);let i=Be(n,0),s=Be(n,1);Ye(i)?this.inheritNonnullIfTrue(s,e):Ye(s)&&this.inheritNonnullIfTrue(i,e)}else if(t==b.String_ne){assert(pt(n)==2);let i=Be(n,0),s=Be(n,1);ut(i)?this.inheritNonnullIfTrue(s,e):ut(s)&&this.inheritNonnullIfTrue(i,e)}else t==b.String_not?(assert(pt(n)==1),this.inheritNonnullIfTrue(Be(n,0),e)):t==b.tostack&&(assert(pt(n)==1),this.inheritNonnullIfFalse(Be(n,0),e));break}}}canOverflow(n,e){if(!e.isShortIntegerValue)return!1;let t;switch(ee(n)){case 8:{let i=this.targetFunction.localsByIndex[We(n)];return!this.isLocalFlag(i.index,2,!0)||Wa(i.type,e)}case 9:return assert(On(n)),this.canOverflow(Ua(n),e);case 10:{let i=assert(Ci(n));if(!this.program.elementsByName.has(i))return!0;let s=assert(this.program.elementsByName.get(i));return assert(s.kind==0||s.kind==3),Wa(s.type,e)}case 16:{switch(Pi(n)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!(ee(t=$e(n))==14&&(ie(t)==0||ie(t)==1&&!this.canOverflow(De(n),e))||ee(t=De(n))==14&&(ie(t)==0||ie(t)==1&&!this.canOverflow($e(n),e)));case 7:return!(ee(t=$e(n))==14&&ie(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e)||ee(t=De(n))==14&&ie(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e));case 10:{let i=32-e.size;return ee(t=De(n))!=14||ie(t)<i}case 11:{let i=32-e.size;return this.canOverflow($e(n),e)&&(ee(t=De(n))!=14||ie(t)<i)}case 12:{let i=32-e.size;return e.isSignedIntegerValue?!(ee(t=De(n))==14&&ie(t)>i):this.canOverflow($e(n),e)&&!(ee(t=De(n))==14&&ie(t)>=i)}case 4:case 5:case 6:return this.canOverflow($e(n),e)||this.canOverflow(De(n),e)}break}case 15:{switch(qn(n)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let i=0;switch(ae(n)){case P.I32:{i=ie(n);break}case P.I64:{i=ke(n);break}case P.F32:{i=i32(Se(n));break}case P.F64:{i=i32(Ie(n));break}case P.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(i&-2)!=0;case 1:return i<i8.MIN_VALUE||i>i8.MAX_VALUE;case 2:return i<i16.MIN_VALUE||i>i16.MAX_VALUE;case 6:return i<0||i>u8.MAX_VALUE;case 7:return i<0||i>u16.MAX_VALUE}break}case 12:{let i,s=Xp(n);switch(jp(n)){case 1:{i=s?p.i8:p.u8;break}case 2:{i=s?p.i16:p.u16;break}default:{i=s?p.i32:p.u32;break}}return Wa(i,e)}case 1:{if(!Wn(n)){let i=assert(Kn(n)),s=jn(n,i-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Qn(n),e)||this.canOverflow(assert(Ni(n)),e);case 17:return this.canOverflow(Zp(n),e)||this.canOverflow(Yp(n),e);case 6:{let s=this.program.instancesByName,l=assert(Bi(n));if(s.has(l)){let a=assert(s.get(l));assert(a.kind==5);let o=a,u=o.signature.returnType;return!o.flow.is(2)||Wa(u,e)}return!1}case 23:return!1}return!0}toString(){let n=0,e=this.parent;for(;e;)e=e.parent,++n;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${n}] ${t.join(" ")}`}};function Wa(r,n){return n.isShortIntegerValue&&(!r.isIntegerValue||r.size>n.size||r.isSignedIntegerValue!=n.isSignedIntegerValue)}function Ka(r){switch(ee(r)){case 8:return"l"+We(r).toString();case 10:return"g@"+assert(Ci(r));case 6:{if(pt(r)!=1)return null;let n=Bi(r);if(n==b.tostack)return Ka(Be(r,0));if(!n||!n.includes("#get:"))return null;let e=Ka(Be(r,0));return e!=null?e+">"+n:null}}return null}function X2(r){let n=new Set;for(let e=Set_values(r),t=0,i=e.length;t<i;++t)n.add(e[t]);return n}function hg(r,n){if(!r||!n)return null;let e=new Set;for(let t=Set_values(r),i=0,s=t.length;i<s;++i){let l=t[i];n.has(l)&&e.add(l)}return e}var Za=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(Za||{}),Yn=class extends Qe{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.hiddenLiterals=new Map;this.lateShapes=new Map;this.lateShapeCount=0;this.shapeReads=new Map;this._jsonParseUntyped=null;this.mapGets=new Map;this.spreadArrays=new Map;this.objectCalls=new Map;this.recordKeys=new Map;this.inferringReturn=new Set;this.program=e}resolveType(e,t,i,s=null,l=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let a=null;switch(e.kind){case 1:{a=this.resolveNamedType(e,t,i,s,l),a&&e.orUndefined&&a.isReference&&(a=a.asNullable());break}case 2:{a=this.resolveFunctionType(e,t,i,s,l);break}case 3:{a=this.resolveTupleType(e,t,i,s,l);break}default:assert(!1)}return e.currentlyResolving=!1,a}resolveNamedType(e,t,i,s=null,l=0){let a=e.name,o=e.typeArguments,u=!a.next,c=e.presetType;if(c)return c;let f=e.typeQuery;if(f){let y=t?this.lookupExpression(f,t,p.auto,l):this.lookupTypeQuery(f,i),m=y?this.getTypeOfElement(y):null;return!m||y.kind==6||y.kind==12?(l==0&&this.error(100,e.range,"typeof of anything but a variable or a field"),null):e.isNullable?m.asNullable():m}let _=e.indexType;if(_)return this.resolveType(_,t,i,s,l);if(u){let y=a.identifier.text;if(s&&s.has(y)){let m=assert(s.get(y));if(o&&o.length>0&&l==0&&this.error(2315,e.range,m.toString()),e.isNullable){if(m.isReference)return m.asNullable();let g=e.range.source.internalPath;if(g.startsWith("~lib/")&&!g.startsWith("~lib/~/"))return m;l==0&&this.error(204,e.range,m.toString())}return m}}let h=this.resolveTypeName(a,t,i,l);if(!h)return null;let d=h.shadowType;if(d)h=d;else{if(h.kind==2)return o&&o.length>0&&l==0&&this.error(2315,e.range,h.internalName),e.isNullable&&l==0&&this.error(204,e.range,`${h.name}/i32`),p.i32;if(h.kind==6||h.kind==8){let y=this.resolveClassInclTypeArguments(h,o,t,i,se(s),e,l);return y?e.isNullable?y.type.asNullable():y.type:null}}if(h.kind==14){let y=h;if(h.is(4194304)){o&&o.length>0&&l==0&&this.error(2315,e.range,h.internalName);let v=y.type;if(e.isNullable){if(v.isReference)return v.asNullable();l==0&&this.error(204,a.range,a.identifier.text)}return v}if(u){let v=a.identifier.text;if(ar.has(v)){let S=assert(ar.get(v)),w=new $a(this,e,i,s,l);return S(w)}}let m=y.typeParameterNodes,g=null;if(m){if(g=this.resolveTypeArguments(m,o,t,i,s=se(s),e,l,y),!g)return null}else o&&o.length>0&&this.error(2315,e.range,a.identifier.text);let x=this.resolveType(y.typeNode,t,h,s,l);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();l==0&&this.error(204,a.range,a.identifier.text)}return x}return l==0&&this.error(2304,a.range,a.identifier.text),null}resolveFunctionType(e,t,i,s=null,l=0){let a=e.explicitThisType,o=null;if(a&&(o=this.resolveType(a,t,i,s,l),!o))return null;let u=e.parameters,c=u.length,f=new Array(c),_=0,h=!1;for(let g=0;g<c;++g){let x=u[g];switch(x.parameterKind){case 0:{_=g+1;break}case 2:{assert(g==c-1),h=!0;break}}let v=x.type;if(pe(v))return l==0&&this.error(1110,v.range),null;let S=this.resolveType(v,t,i,s,l);if(!S)return null;if(S==p.void)return l==0&&this.error(214,v.range,S.toString()),null;f[g]=S}let d=e.returnType,y;if(pe(d))l==0&&this.error(1110,d.range),y=p.void;else if(y=this.resolveType(d,t,i,s,l),!y)return null;let m=ge.create(this.program,f,y,o,_,h);return e.isNullable?m.type.asNullable():m.type}resolveTupleType(e,t,i,s=null,l=0){let a=e.elements,o=new Array(a.length);for(let f=0,_=a.length;f<_;++f){let h=this.resolveType(a[f],t,i,s,l);if(!h)return null;o[f]=h}let u=a.length>=2&&a.length<=Mt.MAX_TUPLE?this.program.lookup(`__Tuple${a.length}`):null;if(!u||u.kind!=6)return l==0&&this.error(100,e.range,"a tuple of other than 2 to 8 elements"),null;let c=this.resolveClass(u,o,new Map,l);return c?e.isNullable?c.type.asNullable():c.type:null}resolveBuiltinNotNullableType(e,t,i=null,s=0){let l=this.ensureOneTypeArgument(e,s);if(!l)return null;let a=this.resolveType(l,null,t,i,s);return a?a.isNullableReference?a.nonNullableType:a:null}resolveTypeName(e,t,i,s=0){let l=null;if(t&&(l=t.lookupTypeAlias(e.identifier.text)),l||(l=i.lookup(e.identifier.text,!0)),!l)return s==0&&this.error(2304,e.range,e.identifier.text),null;let a=e,o=e.next;for(;o;){if(!(l=l.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,a.identifier.text),null;a=o,o=o.next}return l}lookupTypeQuery(e,t){if(e.kind==7)return t.lookup(e.text);if(e.kind!=22)return null;let i=e,s=this.lookupTypeQuery(i.expression,t);return s?s.getMember(i.property.text):null}resolveTypeArguments(e,t,i,s,l=new Map,a=null,o=0,u=null){let c=0,f=0;for(let y=0,m=e.length;y<m;++y)e[y].defaultType||++c,++f;let _=t?t.length:0;if(_<c||_>f)return o==0&&this.error(2558,_?ue.join(t[0].range,t[_-1].range):a.range,(_<c?c:f).toString(),_.toString()),null;let h=new Array(f),d=se(l);l.clear();for(let y=0;y<f;++y){let m=y<_?this.resolveType(t[y],i,s,d,o):this.resolveType(assert(e[y].defaultType),u?null:i,u||s,se(l),o);if(!m)return null;l.set(e[y].name.text,m),h[y]=m}return h}maybeInferCall(e,t,i,s=0){let l=e.typeArguments;if(l)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,l,i.sourceFunction,se(i.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let a=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,i,s);return a?this.resolveFunction(t,a,se(i.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}keyofTargetOf(e,t){if(!t||e.kind!=1)return null;let i=e;if(i.name.next||i.hasTypeArguments||i.indexType)return null;let s=i.name.identifier.text;for(let l=0,a=t.length;l<a;++l){let o=t[l];if(o.name.text!=s)continue;let u=o.extendsType;return u?u.keyofTarget:null}return null}eventTypeOf(e,t,i,s,l){if(t.kind!=17||t.literalKind!=2)return l==0&&this.error(100,t.range,"an event name that is not written out as a string literal"),null;let a=t.value,o=this.resolveType(e,s,i,se(s.contextualTypeArguments),l);if(!o)return null;let u=o.getClass();if(u){let c=u.prototype.instanceMembers,f=c?c.get(a):null;if(f&&f.kind==10){let _=f.fieldDeclaration,h=_?_.type:null;if(h)return this.resolveType(h,null,u.prototype.parent,null,l)}}return l==0&&this.error(2339,t.range,a,o.toString()),null}inferGenericTypeArguments(e,t,i,s,l=0){if(!i)return null;let a=se(s.contextualTypeArguments),o=t.parent;if(o.kind==7){let g=o.contextualTypeArguments;if(g)for(let x=Map_keys(g),v=0,S=x.length;v<S;++v){let w=x[v];a.has(w)||a.set(w,assert(g.get(w)))}}let u=i.length,c=new Set;for(let g=0;g<u;++g){let x=i[g].name.text;a.set(x,p.auto),c.add(x)}let f=t.functionTypeNode.parameters,_=f.length,h,d;switch(e.kind){case 10:{let g=e;h=g.args,d=g.argumentsRange;break}case 18:{let g=e;h=g.args,d=g.argumentsRange;break}default:return assert(!1),null}let y=h.length;for(let g=0;g<_;++g){let x=g<y?h[g]:f[g].initializer,v=this.keyofTargetOf(f[g].type,i);if(v&&x){let w=this.eventTypeOf(v,x,t,s,l);if(!w)return null;a.set(f[g].type.name.identifier.text,w);continue}if(!x){if(f[g].parameterKind==1)continue;return l==0&&(f[g].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,_.toString(),y.toString())),null}let S=f[g].type;if(f[g].parameterKind==2&&(S=S.typeArguments[0]),!(x.kind==17&&x.literalKind==6&&!x.inferredType)&&S.hasGenericComponent(i)){let w=p.auto;if(x.kind==15&&S.kind==2){let C=S,M=new Array;for(let G=0,U=C.parameters.length;G<U;++G){let W=this.resolveType(C.parameters[G].type,null,t,a,1);if(!W)break;M.push(W)}M.length==C.parameters.length&&(w=ge.create(this.program,M,p.void,null,M.length,!1).type)}let R=this.resolveExpression(x,s,w,1);R&&this.propagateInferredGenericTypes(S,R,t,a,c)}}let m=new Array(u);for(let g=0;g<u;++g){let x=i[g],v=x.name.text;if(a.has(v)){let S=assert(a.get(v));if(S!=p.auto){m[g]=S;continue}let w=x.defaultType;if(w){let R=t.parent,C=null;(R.kind==7||R.kind==5)&&(C=R.contextualTypeArguments);let M=this.resolveType(w,null,t,C,l);if(!M)return null;m[g]=M;continue}}if(l==0){let S;switch(e.kind){case 10:S=e.expression.range;break;case 18:S=e.typeName.range;break;default:return assert(!1),null}this.error(1140,S.atEnd)}return null}return m}propagateInferredGenericTypes(e,t,i,s,l){if(e.kind==1){let a=e,o=a.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let c=this.resolveTypeName(a.name,null,i);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,h=f.length;_<h;++_)this.propagateInferredGenericTypes(o[_],f[_],i,s,l);return}}}}else{let u=a.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||l.has(u)&&c.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let a=e,o=a.parameters,u=t.signatureReference;if(u){let c=u.parameterTypes;for(let d=0,y=min(c.length,o.length);d<y;++d)this.propagateInferredGenericTypes(o[d].type,c[d],i,s,l);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(a.returnType,f,i,s,l);let _=u.thisType,h=a.explicitThisType;_&&h&&this.propagateInferredGenericTypes(h,_,i,s,l);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Ha(t)){let i=e.type,s=i.getClassOrWrapper(this.program);if(s){let l=s.wrappedType;l&&(i=i.isNullableReference&&l.isReference?l.asNullable():l)}return i}return null}getElementOfType(e){let t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,i=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,t,i,s);case 9:return this.lookupBinaryExpression(e,t,i,s);case 10:return this.lookupCallExpression(e,t,i,s);case 12:return this.lookupCommaExpression(e,t,i,s);case 13:return this.lookupElementAccessExpression(e,t,i,s);case 15:return this.lookupFunctionExpression(e,t,i,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 25:return this.lookupThisExpression(e,t,i,s);case 24:return this.lookupSuperExpression(e,t,i,s);case 16:return this.lookupInstanceOfExpression(e,t,i,s);case 17:return this.lookupLiteralExpression(e,t,i,s);case 18:return this.lookupNewExpression(e,t,i,s);case 22:return this.lookupPropertyAccessExpression(e,t,i,s);case 23:return this.lookupTernaryExpression(e,t,i,s);case 28:return this.lookupUnaryPostfixExpression(e,t,i,s);case 29:return this.lookupUnaryPrefixExpression(e,t,i,s)}return assert(!1),null}resolveExpression(e,t,i=p.auto,s=0){let l=this.resolvingExpressions;if(l.has(e))return null;l.add(e);let a=this.doResolveExpression(e,t,i,s);return l.delete(e),a&&a.isReference&&ot(e)&&(a=a.asNullable()),a}doResolveExpression(e,t,i=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,t,i,s);case 9:return this.resolveBinaryExpression(e,t,i,s);case 10:return this.resolveCallExpression(e,t,i,s);case 12:return this.resolveCommaExpression(e,t,i,s);case 13:return this.resolveElementAccessExpression(e,t,i,s);case 15:return this.resolveFunctionExpression(e,t,i,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,t,i,t.sourceFunction,s);case 25:return this.resolveThisExpression(e,t,i,s);case 24:return this.resolveSuperExpression(e,t,i,s);case 16:return this.resolveInstanceOfExpression(e,t,i,s);case 17:return this.resolveLiteralExpression(e,t,i,s);case 18:return this.resolveNewExpression(e,t,i,s);case 22:return this.resolvePropertyAccessExpression(e,t,i,s);case 23:return this.resolveTernaryExpression(e,t,i,s);case 28:return this.resolveUnaryPostfixExpression(e,t,i,s);case 29:return this.resolveUnaryPrefixExpression(e,t,i,s)}return assert(!1),null}lookupIdentifierExpression(e,t,i=t.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,t,p.auto,i,s);return u?this.getElementOfType(u):null}}let l=e.text,a;if(a=t.lookup(l))return this.currentThisExpression=null,this.currentElementExpression=null,a;let o=t.outer;return o&&(a=o.lookup(l))?(this.currentThisExpression=null,this.currentElementExpression=null,a):(a=i.lookup(l))?(this.currentThisExpression=null,this.currentElementExpression=null,a):(a=this.program.lookup(l))?(this.currentThisExpression=null,this.currentElementExpression=null,a):(s==0&&this.error(2304,e.range,l),null)}resolveIdentifierExpression(e,t,i=p.auto,s=t.sourceFunction,l=0){if(e.kind==7&&e.text=="undefined"&&!this.lookupIdentifierExpression(e,t,s,1)){if(i.kind==12||i==p.auto)return p.f64;if(i.isValue)return i;let u=i.getClass();if(u)return u.type.asNullable();let c=i.getSignature();return c?c.type.asNullable():i}switch(e.kind){case 26:case 14:return p.bool;case 19:{let u=i.getClass();if(u)return u.type.asNullable();{let c=i.getSignature();if(c)return c.type.asNullable();if(i.isExternalReference)return i}return this.program.options.usizeType}}let a=this.lookupIdentifierExpression(e,t,s,l);if(!a)return null;if(a.kind==4){let u=this.resolveFunction(a,null,new Map,l);if(!u)return null;a=u}let o=this.getTypeOfElement(a);return o||l==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,t=0){if(e.is(4194304))return!0;let i=e.typeNode,s=i?this.resolveType(i,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,i,s=0){let l=e.expression,a=this.lookupExpression(l,t,i,s);if(!a)return null;let o=e.property.text;switch(a.kind){case 0:if(!this.ensureResolvedLazyGlobal(a,s))return null;case 3:case 1:{let u=a,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;a=f;break}case 10:{let u=this.resolveProperty(a,s);if(!u)return null;a=u}case 11:{let u=a,c=u.getterInstance;if(!c){let h=assert(u.setterInstance);return this.errorRelated(229,l.range,h.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;a=_;break}case 15:{let c=a.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),h=f.lookupOverload(1);if(!h)return s==0&&this.error(2329,_.range,c.internalName),null;let d=h.signature.returnType,y=d.getClassOrWrapper(this.program);if(!y)return s==0&&this.error(2339,e.property.range,o,d.toString()),null;a=y;break}case 4:{let u=a.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(a=c.prototype);break}else if(!a.is(65536)&&!a.getMember(o)){let f=this.resolveFunction(a,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(a=_)}}break}}if(a.kind==7){let u=this.recordKeyOf(e,a);if(u)return this.lookupElementAccessExpression(u,t,i,s)}switch(a.kind){case 6:case 8:case 7:case 9:{let u=a,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=l}else this.currentThisExpression=l;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);break}}}while(c);break}default:{let u=a.getMember(o);if(u)return this.currentThisExpression=l,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,a.internalName),null}resolvePropertyAccessExpression(e,t,i,s=0){let l=this.lookupPropertyAccessExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}lookupElementAccessExpression(e,t,i,s=0){let l=this.tupleFieldOf(e,t,s);if(l)return l==e?null:this.lookupExpression(l,t,i,s);let a=e.expression,o=this.resolveExpression(a,t,i,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u)do{let c=u.indexSignature;if(c)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,c;u=u.base}while(u);return s==0&&this.error(2329,a.range,o.toString()),null}resolveElementAccessExpression(e,t,i,s=0){let l=this.tupleFieldOf(e,t,s);if(l)return l==e?null:this.resolveExpression(l,t,i,s);let a=this.lookupElementAccessExpression(e,t,i,s);if(!a)return null;let o=this.getTypeOfElement(a);return o||s==0&&this.error(225,e.range),o}determineIntegerLiteralType(e,t,i){let s=e.value;if(t){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let l=e.range;this.error(236,l,l.source.text.substring(l.start-1,l.end))}else if(i64_eq(s,i64_zero)){if(i.isFloatValue)return i.kind==11?p.f32:p.f64;if(!i.isIntegerValue)return p.f64}s=i64_neg(s)}if(i==p.auto&&_e(e.range.source))return p.f64;if(i.isValue)switch(i.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return _e(e.range.source)?p.f64:i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,t,i=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let l=this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);if(!l)return null;let a=this.getElementOfType(l);return a||(s==0&&this.error(214,e.range,l.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,t,i,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,i=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let l=this.resolveExpression(e.expression,t,i,s);return l?l.nonNullableType:null}case 3:{let l=this.lookupExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,t,i=p.auto,s=0){let l=this.resolveUnaryPrefixExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||s==0&&this.error(2469,e.range,we(e.operator),l.toString()),a}resolveUnaryPrefixExpression(e,t,i=p.auto,s=0){let l=e.operand,a=e.operator;switch(a){case 82:if(l.isLiteralKind(1))return this.determineIntegerLiteralType(l,!0,i);case 81:case 87:case 88:{let o=this.resolveExpression(l,t,i,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Ce.fromUnaryPrefixToken(a));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,we(a),o.toString()),null)}case 95:{let o=this.resolveExpression(l,t,i,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 96:{let o=this.resolveExpression(l,t,i,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;case 14:return p.bool;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,i=p.auto,s=0){let l=this.resolveUnaryPostfixExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||s==0&&this.error(2469,e.range,we(e.operator),l.toString()),a}resolveUnaryPostfixExpression(e,t,i=p.auto,s=0){let l=e.operator;switch(l){case 87:case 88:{let a=this.resolveExpression(e.operand,t,i,s);if(!a)return null;let o=a.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Ce.fromUnaryPostfixToken(l));if(u)return u.signature.returnType}return a.isNumericValue?a:(s==0&&this.error(2469,e.range,we(l),a.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,i=p.auto,s=0){let l=this.resolveBinaryExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||(s==0&&this.error(214,e.range,l.toString()),null)}resolveBinaryExpression(e,t,i=p.auto,s=0){let l=e.left,a=e.right,o=e.operator;switch(o){case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:return this.resolveExpression(l,t,i,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Ce.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Ce.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Ce.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(a,t,u,s);if(!f)return null;let _=this.program.stringInstance;if(o==81&&f.classReference==_&&_e(e.range.source))return _.type;let h=p.commonType(u,f,i);return h||s==0&&this.error(2365,e.range,we(o),u.toString(),f.toString()),h&&o==85&&h.isIntegerValue&&_e(e.range.source)?p.f64:h}case 89:case 90:case 91:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Ce.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isFloatValue?o==91?p.u32:p.i32:u.isIntegerValue?u:(s==0&&this.error(2469,e.range,we(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Ce.fromBinaryToken(o));if(h)return h.signature.returnType}let f=this.resolveExpression(a,t,i,s);if(!f)return null;u.isFloatValue&&(u=p.i32),f.isFloatValue&&(f=p.i32);let _=p.commonType(u,f,i);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,we(o),u.toString(),f.toString()),_}case 97:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=this.resolveExpression(a,t,u,s);if(!c)return null;let f=p.commonType(u,c,i);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 98:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;let c=this.resolveExpression(a,t,u,s);if(!c)return null;let f=p.commonType(u,c,i);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}case 99:{let u=this.resolveExpression(l,t,i,s);if(!u)return null;if(!u.isNullableReference)return u;let c=this.resolveExpression(a,t,u.nonNullableType,s);if(!c)return null;let f=p.commonType(u,c,i);return f?c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"??",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,t,i=p.auto,s=0){if(t.isInline){let a=t.lookupLocal(z.this_);if(a)return this.currentThisExpression=null,this.currentElementExpression=null,a}if(!t.sourceFunction.signature.thisType&&t.sourceFunction.prototype.arrowKind!=0){let a=t.lookupOuterThis();if(a)return this.currentThisExpression=null,this.currentElementExpression=null,a}let l=t.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,t,i=p.auto,s=0){let l=this.lookupThisExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}lookupSuperExpression(e,t,i=p.auto,s=0){if(t.isInline){let a=t.lookupLocal(z.super_);if(a)return this.currentThisExpression=null,this.currentElementExpression=null,a}if(!t.sourceFunction.signature.thisType&&t.sourceFunction.prototype.arrowKind!=0){let a=t.lookupOuterThis(),o=a?a.type.getClass():null;if(o&&o.base)return this.currentThisExpression=null,this.currentElementExpression=null,o.base}let l=t.sourceFunction.parent;if(l&&l.kind==7){let a=l.base;if(a)return this.currentThisExpression=null,this.currentElementExpression=null,a}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,t,i=p.auto,s=0){let l=this.lookupSuperExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}lookupLiteralExpression(e,t,i=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let l=this.determineIntegerLiteralType(e,!1,i);return assert(l.getClassOrWrapper(this.program))}case 0:{let l=i==p.f32?p.f32:p.f64;return assert(l.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let l=i.getClass();if(l&&Ya(l))return l;let a=this.spreadArrayOf(e);if(a)return this.lookupExpression(a,t,i,s);let o=i.getClass();if(o&&o.prototype==this.program.arrayPrototype)return this.getElementOfType(i);let u=e.elementExpressions,c=u.length,f=p.auto,_=0;for(let h=0,d=c;h<d;++h){let y=u[h];if(y)if(y.kind==19&&c>1)++_;else{let m=this.resolveExpression(y,t,f);if(!m)return null;if(f==p.auto)f=m;else if(m!=f){let g=p.commonType(f,m,f);g&&(f=g)}}}if(f==p.auto)if(_==c)f=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return _>0&&f.isInternalReference&&(f=f.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[f]))}case 6:{if(i.isClass)return i.classReference;let l=e.inferredType;if(l||(l=this.lateShapeOf(e,t)),l){let a=this.resolveType(l,t,t.sourceFunction,se(t.contextualTypeArguments),s);if(a)return a.classReference}return s==0&&this.error(225,e.range),null}}return assert(!1),null}resolveLiteralExpression(e,t,i=p.auto,s=0){let l=this.lookupLiteralExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}lookupCallExpression(e,t,i=p.void,s=0){let l=this.resolveCallExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||s==0&&this.error(214,e.range,l.toString()),a}resolveCallExpression(e,t,i=p.void,s=0){let l=this.jsonParseOf(e,t,i);if(l)return l==this.jsonParseUntyped?null:l.signature.returnType;let a=this.objectCallOf(e,t);if(a){if(a==e)return null;let f=this.resolveExpression(a,t,i,s);return f&&this.mapGets.has(a)?f.nonNullableType:f}let o=this.lowerPromiseCall(e,t,s);if(o){let f=o.instance;return f?f.signature.returnType:null}let u=e.expression,c=this.lookupExpression(u,t,i,s);if(!c)return null;switch(c.kind){case 4:{let f=c;if(f.internalName==b.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,i,s);let _=this.maybeInferCall(e,f,t,s);if(!_)return null;c=_}case 5:return c.signature.returnType;case 10:{let f=this.resolveProperty(c,s);if(!f)return null;c=f}default:{if(!Ha(c.kind))break;let f=this.getElementOfType(c.type);if(!f||f.kind!=7)break;c=f}case 7:{let f=c.getTypeArgumentsTo(this.program.functionPrototype);if(!(f&&f.length))break;return assert(f[0].getSignature()).returnType}}return s==0&&this.error(2349,u.range,c.internalName),null}lookupCommaExpression(e,t,i=p.auto,s=0){let l=e.expressions;return this.lookupExpression(l[assert(l.length)-1],t,i,s)}resolveCommaExpression(e,t,i=p.auto,s=0){let l=e.expressions;return this.resolveExpression(l[assert(l.length)-1],t,i,s)}lookupInstanceOfExpression(e,t,i=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,i=p.auto,s=0){return p.bool}lookupTernaryExpression(e,t,i,s=0){let l=this.resolveTernaryExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||s==0&&this.error(214,e.range,l.toString()),a}resolveTernaryExpression(e,t,i,s=0){if(e.ifThen.kind==19&&i==p.auto){let u=this.resolveExpression(e.ifElse,t,i,s);return u&&u.isReference?u.asNullable():u}let l=this.resolveExpression(e.ifThen,t,i,s);if(!l)return null;let a=this.resolveExpression(e.ifElse,t,l,s);if(!a)return null;let o=p.commonType(l,a,i);return o||s==0&&this.error(2365,e.range,"?:",l.toString(),a.toString()),o}lookupNewExpression(e,t,i,s=0){let l=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return l?l.kind==6?this.resolveClassInclTypeArguments(l,e.typeArguments,t,t.sourceFunction,se(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,i,s=0){let l=this.lookupNewExpression(e,t,i,s);if(!l)return null;let a=this.getTypeOfElement(l);return a||s==0&&this.error(225,e.range),a}lookupFunctionExpression(e,t,i,s=0){let l=this.resolveFunctionExpression(e,t,i,s);if(!l)return null;let a=this.getElementOfType(l);return a||s==0&&this.error(214,e.range,l.toString()),a}resolveFunctionExpression(e,t,i,s=0){let l=e.declaration,a=l.signature,o=l.body;if(l.arrowKind==0&&!a.isAsync&&pe(a.returnType)&&a.inferFrom){let d=a.parameters,y=new Array(d.length),m=0,g=!1;for(let S=0,w=d.length;S<w;++S){let R=d[S];if(R.parameterKind==0?m=S+1:R.parameterKind==2&&(g=!0),pe(R.type))return null;let C=this.resolveType(R.type,t,t.sourceFunction,t.contextualTypeArguments,s);if(!C)return null;y[S]=C}let x=new Le(l.name.text,t.sourceFunction,l,0),v=this.inferReturnType(x,null,y,null,m,g,se(t.contextualTypeArguments),a.inferFrom,a.inferLocals,!1,t);return v?ge.create(this.program,y,v,null,m,g).type:(s==0&&this.error(1110,a.returnType.range),null)}let u=i.getSignature(),c=!1;for(let d=0,y=a.parameters.length;d<y;++d)pe(a.parameters[d].type)&&(c=!0);let f=null;if(c&&u&&u.parameterTypes.length>=a.parameters.length){let d=new Array(a.parameters.length);for(let y=0,m=a.parameters.length;y<m;++y){let g=a.parameters[y].type,x=pe(g)?u.parameterTypes[y]:this.resolveType(g,null,t.sourceFunction,t.contextualTypeArguments,s);if(!x)return null;d[y]=x}f=ge.create(this.program,d,p.void,null,d.length,!1).type}else f=this.resolveType(a,null,t.sourceFunction,t.contextualTypeArguments,s);let _=a.inferFrom;if(f&&l.arrowKind!=0&&pe(a.returnType)&&o&&o.kind!=39&&_&&_.length>0){let d=assert(f.getSignature()),y=new Le(l.name.text.length?l.name.text:"anonymous",t.sourceFunction,l,0),m=this.inferReturnType(y,null,d.parameterTypes,d.thisType,d.requiredParameters,d.hasRest,se(t.contextualTypeArguments),_,a.inferLocals,a.isAsync,t);if(m&&a.isAsync&&(m=this.promiseTypeOf(m,l.signature,s)),m)return ge.create(this.program,d.parameterTypes,m,d.thisType,d.requiredParameters,d.hasRest).type}let h=null;if(o&&o.kind==39?h=o.expression:o&&a.inferFrom&&a.inferFrom.length>0&&(h=a.inferFrom[0]),f&&l.arrowKind!=0&&h&&pe(a.returnType)){let d=h,y=assert(f.getSignature()),m=Lt.createDefault(t.sourceFunction);m.outer=t;let g=a.parameters;assert(y.parameterTypes.length==g.length);for(let S=0,w=g.length;S<w;S++){let R=g[S],C=y.parameterTypes[S];m.addScopedDummyLocal(R.name.text,C,R)}let x=a.inferLocals;if(a.isAsync&&x)for(let S=0,w=x.length;S<w;++S){let R=x[S],C=R.name.text;if(m.lookupLocal(C))continue;let M=null;R.type?M=this.resolveType(R.type,m,t.sourceFunction,t.contextualTypeArguments,1):R.initializer&&(M=this.resolveExpression(R.initializer,m,p.auto,1)),M&&M!=p.void&&m.addScopedDummyLocal(C,M,R)}let v=this.resolveExpression(d,m,a.isAsync?p.auto:i,s);if(v&&a.isAsync){let S=v.classReference;(!S||!this.isPromisePrototype(S.prototype))&&(v=this.promiseTypeOf(v,d,s))}if(v)return ge.create(this.program,y.parameterTypes,v,y.thisType,y.requiredParameters,y.hasRest).type}if(f&&a.isAsync&&pe(a.returnType)){let d=f.getSignature(),y=d?this.promiseTypeOf(p.void,a,s):null;if(d&&y)return ge.create(this.program,d.parameterTypes,y,d.thisType,d.requiredParameters,d.hasRest).type}return f}resolveFunction(e,t,i=new Map,s=0){let l=null,a=t?Xa(t):"";if(e.is(262144)){l=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(a);if(R)return R;let C=l.typeArguments;if(C){let M=assert(l.prototype.typeParameterNodes),G=M.length;assert(G==M.length);for(let U=0;U<G;++U){let W=M[U].name.text;i.set(W,C[U])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(a);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(t&&(c=t.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)i.set(u[R].name.text,t[R])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,i,s),!f)return null;i.set(z.this_,f)}else l&&(f=l.type,i.set(z.this_,f));let h=o.parameters,d=h.length,y=new Array(d),m=0,g=!1;for(let R=0;R<d;++R){let C=h[R];C.parameterKind==0?m=R+1:C.parameterKind==2&&(g=!0);let M=C.type;if(pe(M))return s==0&&this.error(1110,M.range),null;let G=this.keyofTargetOf(M,e.typeParameterNodes)?this.program.stringInstance.type:this.resolveType(M,null,e.parent,i,s);if(!G)return null;if(G==p.void)return s==0&&this.error(1110,M.range),null;y[R]=G}let x=p.void;if(e.is(4096))x=p.void;else if(e.is(524288))x=l.type;else{let R=o.returnType,C=o.inferFrom;if(o.isAsync){let M=null;if(C){if(M=this.inferReturnType(e,t,y,f,m,g,i,C,o.inferLocals,!0),!M)return s==0&&this.error(1110,R.range),null}else if(pe(R))M=p.void;else{let G=this.resolveType(R,null,e.parent,i,s);if(!G)return null;if(G==p.void)M=p.void;else{let U=G.classReference;if(!U||!this.isPromisePrototype(U.prototype))return s==0&&this.error(1064,R.range),null;x=G}}if(M){let G=this.promiseTypeOf(M,R,s);if(!G)return null;x=G}}else if(C){let M=this.inferReturnType(e,t,y,f,m,g,i,C,o.inferLocals);if(!M)return s==0&&this.error(1110,R.range),null;x=M}else{if(pe(R))return s==0&&this.error(1110,R.range),null;{let M=this.resolveType(R,null,e.parent,i,s);if(!M)return null;x=M}}}let v=ge.create(this.program,y,x,f,m,g),S=e.name;a.length&&(S+=`<${a}>`);let w=new Je(S,e,t,v,i);if(e.setResolvedInstance(a,w),l){let R=w.declaration.name.text,C=l.base;if(C){let M=C.getMember(R);if(M){this.discoveredOverride=!0;let G=!0;if(w.isAny(6144)){if(M.kind==10){let U=this.resolveProperty(M,s);if(U)if(w.is(2048)){let W=U.getterInstance;W&&w.signature.isAssignableTo(W.signature,!0)&&(G=!1)}else{assert(w.is(4096));let W=U.setterInstance;W&&w.signature.isAssignableTo(W.signature,!0)&&(G=!1)}}}else if(w.is(524288))G=!1;else if(M.kind==4){let U=M,W=U.typeParameterNodes,O=W!=null&&W.length>0,X=t!=null&&t.length>0;if(O!=X)this.errorRelated(242,w.identifierAndSignatureRange,M.identifierAndSignatureRange,R),G=!1;else{let $=this.resolveFunction(U,t,new Map,1);$&&w.signature.isAssignableTo($.signature,!0)&&(G=!1)}}G&&this.errorRelated(2394,w.identifierAndSignatureRange,M.identifierAndSignatureRange)}}}return w}resolveFunctionInclTypeArguments(e,t,i,s,l,a=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let h=0;h<_;++h)s.set(f[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,i,s,l,a,e),!o)return null}else if(t&&t.length>0)return a==0&&this.error(2315,l.range,e.internalName),null;return this.resolveFunction(e,o,s,a)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let i=assert(e.getBoundClassOrInterface()),s=new Set;for(let l=Set_values(t),a=0,o=l.length;a<o;++a){let u=l[a];assert(!u.isBound);let c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),h=0,d=_.length;h<d;++h){let y=_[h];if(!y.isAssignableTo(i)&&!this.hasAssignableExtender(y,i))continue;let m=null;if(e.isAny(6144)){let g=e.declaration.name.text,x=assert(y.getMember(g));assert(x.kind==10);let v=this.resolveProperty(x);if(!v)continue;e.is(2048)?m=v.getterInstance:(assert(e.is(4096)),m=v.setterInstance)}else{let g=y.getMember(u.name);if(g){assert(g.kind==4);let x=g;x.is(65536)==e.is(65536)&&(m=this.resolveFunction(x,e.typeArguments))}}m&&s.add(m)}}return Set_values(s)}hasAssignableExtender(e,t){if(t.kind!=9)return!1;let i=e.extenders;if(!i)return!1;for(let s=Set_values(i),l=0,a=s.length;l<a;++l)if(s[l].isAssignableTo(t))return!0;return!1}resolveClass(e,t,i=new Map,s=0){t&&t.length==1&&t[0]==p.void&&this.isPromisePrototype(e)&&(t=[p.bool]);let l=t?Xa(t):"",a=e.getResolvedInstance(l);if(a)return a;let o=e.name;l.length&&(o+=`<${l}>`),e.kind==8?a=new es(o,e,t):a=new or(o,e,t),e.setResolvedInstance(l,a);let u=this.resolveClassPending;if(u.add(a),t){let h=assert(e.typeParameterNodes),d=h.length,y=t.length;assert(y==d);for(let m=0;m<y;++m)i.set(h[m].name.text,t[m])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}a.contextualTypeArguments=i;let c=!1,f=e.basePrototype;if(f){let h=f;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let d=assert(e.extendsNode),y=this.resolveClassInclTypeArguments(f,d.typeArguments,null,e.parent,se(i),d,s);if(!y)return null;a.setBase(y),u.has(y)&&(c=!0)}else e.implicitlyExtendsObject&&a.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let h=0,d=_.length;h<d;++h){let y=_[h],m=y;do{if(m==e)return this.error(2506,e.identifierNode.range,e.internalName),null;m=m.basePrototype}while(m);let g=assert(e.implementsNodes[h]),x=this.resolveClassInclTypeArguments(y,g.typeArguments,null,e.parent,se(i),g,s);if(!x)return null;assert(x.kind==9),a.addInterface(x),u.has(x)&&(c=!0)}return c||this.finishResolveClass(a,s),a}checkOverrideVisibility(e,t,i,s,l,a){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(a==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,l.internalName),o=!0)):t.is(512)?s.is(512)?(a==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(a==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,i.internalName,l.internalName),o=!0):t.is(1024)?s.is(512)?(a==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,l.internalName,i.internalName),o=!0):s.isPublic?(a==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,i.internalName,l.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(a==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,l.internalName,i.internalName),o=!0):s.is(1024)?(a==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,l.internalName,i.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let i=e.members;i||(e.members=i=new Map);let s=this.resolveClassPending,l=new Map,a=e.interfaces;if(a)for(let g=Set_values(a),x=0,v=g.length;x<v;++x){let S=g[x];assert(!s.has(S));let w=S.members;if(w)for(let R=Map_keys(w),C=0,M=R.length;C<M;++C){let G=unchecked(R[C]),U=assert(w.get(G)),W=e.getMember(G);W&&!this.checkOverrideVisibility(G,W,e,U,S,t)||(i.set(G,U),l.set(G,U))}}let o=0,u=e.base;if(u){let g=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let x=u.members;if(x)for(let v=Map_keys(x),S=0,w=v.length;S<w;++S){let R=unchecked(v[S]),C=assert(x.get(R));if(g&&C.is(32))continue;let M=e.getMember(R);M&&!this.checkOverrideVisibility(R,M,e,C,u,t)||(i.set(R,C),C.is(128)?l.set(R,C):l.delete(R))}o=u.nextMemoryOffset}let c=new Array,f=new Array,_=e.prototype.declaration,h=_.kind==52&&_.isShape,d=e.prototype,y=d.instanceMembers;if(y)for(let g=Map_values(y),x=0,v=g.length;x<v;++x){let S=unchecked(g[x]),w=S.name;if(u){let R=u.getMember(w);R&&this.checkOverrideVisibility(w,S,e,R,u,t)}switch(S.kind){case 4:{let R=S.toBound(e);e.add(R.name,R);break}case 10:{let R=S.toBound(e);if(R.isField){let C=this.resolveProperty(R,t);if(C){let M=C.type;if(M==p.void)break;if(M.isExternalReference){this.error(100,assert(R.typeNode).range,"Reference typed fields");break}let G=!0;if(u){let W=u.getMember(R.name);if(W&&W.kind==10){let O=W,X=this.resolveProperty(O,t);if(X&&X.isField){if(X.type!=C.type){this.errorRelated(2416,C.identifierNode.range,X.identifierNode.range,C.name,e.internalName,u.internalName);break}C.memoryOffset=X.memoryOffset,C.presenceOffset=X.presenceOffset,G=!1}}}G&&f.push(C),R.instance=C,e.add(R.name,R);let U=assert(R.fieldDeclaration).type;U&&this.program.checkTypeSupported(M,U)}}else e.add(R.name,R);break}default:assert(!1)}!S.is(128)&&!S.is(65536)&&l.delete(w)}h&&f.sort((g,x)=>g.name<x.name?-1:g.name>x.name?1:0);for(let g=0,x=f.length;g<x;++g){let v=f[g],S=v.type.byteSize;assert(kt(S));let w=S-1;o&w&&(o=(o|w)+1),v.memoryOffset=o,o+=S,v.isOptional&&v.type.isValue&&v.type.kind!=12&&c.push(v)}for(let g=0,x=c.length;g<x;++g)c[g].presenceOffset=o++;if(e.kind!=9){if(!e.is(128)&&l.size>0)for(let g=Map_keys(l),x=0,v=g.length;x<v;++x){let S=g[x],w=assert(l.get(S));this.errorRelated(2515,e.identifierNode.range,w.identifierNode.range,e.internalName,S,w.parent.internalName)}e.nextMemoryOffset=o;{let g=e.getMember(z.constructor);if(g&&g.parent==e){assert(g.kind==4);let x=this.resolveFunction(g,null,assert(e.contextualTypeArguments),t);x&&(e.constructorInstance=x)}}}let m=d.operatorOverloadPrototypes;for(let g=Map_keys(m),x=0,v=g.length;x<v;++x){let S=unchecked(g[x]),w=assert(m.get(S));if(assert(S!=0),w.is(65536))continue;let R;if(w.is(262144)){let M=w.toBound(e);R=this.resolveFunction(M,null,new Map,t)}else R=this.resolveFunction(w,null,new Map,t);if(!R)continue;let C=e.operatorOverloads;if(C||(e.operatorOverloads=C=new Map),R.is(262144))switch(S){case 27:case 28:case 29:case 30:{let M=R.signature.returnType;M.isAssignableTo(e.type)||t==0&&this.error(2322,w.functionTypeNode.returnType.range,M.toString(),e.type.toString())}}if(C.has(S))t==0&&this.error(213,R.declaration.range);else if(C.set(S,R),S==1||S==2){let M=e.indexSignature;M||(e.indexSignature=M=new Jn(e)),S==1&&M.setType(R.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let g=Set_values(s),x=0,v=g.length;x<v;++x){let S=g[x],w=S.base==e,R=S.interfaces;if(R){let C=!1;for(let M=Set_values(R),G=0,U=M.length;G<U;++G){let W=M[G];W==e?w=!0:s.has(W)&&(C=!0)}if(C)continue}w&&this.finishResolveClass(S,t)}}resolveClassInclTypeArguments(e,t,i,s,l,a,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!t&&c&&i&&l.size==0?u=this.inferGenericTypeArguments(a,c,e.typeParameterNodes,i):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,i,s,l,a,o,e),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,a.range,e.internalName),null;return this.resolveClass(e,u,l,o)}resolveProperty(e,t=0){let i=e.instance;if(i)return i;e.instance=i=new $n(e,e.parent);let s=e.getterPrototype;if(s){let a=this.resolveFunction(s,null,new Map,t);a&&(i.getterInstance=a,i.setType(a.signature.returnType))}let l=e.setterPrototype;if(l){let a=this.resolveFunction(l,null,new Map,t);a&&(i.setterInstance=a,i.is(4194304)||(assert(a.signature.parameterTypes.length==1),i.setType(a.signature.parameterTypes[0])))}return i.checkVisibility(this),i}isPromisePrototype(e){return e.name=="Promise"&&e.hasDecorator(1)}promiseTypeOf(e,t,i=0){let s=this.program.lookup("Promise");if(!s||s.kind!=6||!this.isPromisePrototype(s))return i==0&&this.error(2304,t.range,"Promise"),null;let l=this.resolveClass(s,[e],new Map,i);return l?l.type:null}lowerPromiseCall(e,t,i=0){let s=e.expression;if(s.kind!=22)return null;let l=s,a=l.expression;if(a.kind!=7||a.text!="Promise")return null;let o=l.property.text;if(o!="all"&&o!="allSettled"&&o!="race"&&o!="any"||t.lookupLocal("Promise"))return null;let u=this.program.lookup("Promise");if(!u||u.kind!=6||!this.isPromisePrototype(u))return null;let c=new Mt(null,e.args);if(e.args.length!=1)return i==0&&this.error(2554,e.range,"1",e.args.length.toString()),c;let f=e.args[0],_=o=="all"||o=="allSettled";if(f.kind!=17||f.literalKind!=5){let x=this.resolveExpression(f,t,p.auto,i);if(!x)return c;let v=x.getClass(),S=v!=null&&v.prototype==this.program.arrayPrototype&&v.typeArguments!=null,w=S?this.settledTypeOf(assert(v).typeArguments[0]):null;return!w&&S&&o=="all"?this.lowerTo("__co_allValues",[assert(v).typeArguments[0]],e.args,e,i):w?this.lowerTo(_?`__co_${o}`:`__co_${o}List`,[w],e.args,e,i):(i==0&&this.error(2322,f.range,x.toString(),"Promise<T>[]"),c)}let h=f.elementExpressions,d=h.length,y=new Array(d);for(let x=0;x<d;++x){let v=h[x],S=v.kind==20?null:this.resolveExpression(v,t,p.auto,i);if(!S)return c;let w=this.settledTypeOf(S);if(!w&&S!=p.void&&(h[x]=dg(v),w=S),!w)return i==0&&this.error(2322,v.range,S.toString(),"Promise<T>"),c;y[x]=w}if(d==0)return i==0&&this.error(100,f.range,`Promise.${o} of an empty list`),c;let m=!0;for(let x=1;x<d;++x)y[x]!=y[0]&&(m=!1);if(m)return this.lowerTo(_?`__co_${o}`:`__co_${o}List`,[y[0]],e.args,e,i);if(_)return d>Mt.MAX_TUPLE?(this.error(244,f.range,o,Mt.MAX_TUPLE.toString()),c):this.lowerTo(`__co_${o}${d}`,y,h,e,i);let g=this.commonSettledType(y);if(!g){let x=y[0],v=y[0];for(let S=1;S<d;++S)if(y[S]!=x){v=y[S];break}this.error(243,f.range,o,this.settledName(x),this.settledName(v)),g=x}return this.lowerTo(`__co_${o}`,[g],e.args,e,i)}settledTypeOf(e){let t=e.getClass();if(!t||!this.isPromisePrototype(t.prototype))return null;let i=t.typeArguments;return i&&i.length==1?i[0]:null}settledName(e){return e==p.bool?"void":this.plainTypeName(e)}plainTypeName(e){let t=e.getClass();return t?t==this.program.stringInstance?"string":t.name:e==p.bool?"boolean":e.isNumericValue?"number":e.toString()}commonSettledType(e){let t=!0;for(let a=0,o=e.length;a<o;++a)(e[a]==p.bool||!e[a].isNumericValue)&&(t=!1);if(t)return p.f64;let i=!1,s=new Array;for(let a=0,o=e.length;a<o;++a){let u=e[a];if(u==p.bool){i=!0;continue}let c=u.isReference?u.getClass():null;if(!c)return null;u.isNullableReference&&(i=!0),s.push(c)}if(!s.length)return null;let l=s[0];for(;l&&l!=this.program.objectInstance;){let a=!0;for(let o=1,u=s.length;o<u;++o)if(!s[o].isAssignableTo(l)){a=!1;break}if(a)return i?l.type.asNullable():l.type;l=l.base}return null}lowerTo(e,t,i,s,l){let a=this.program.lookup(e);if(!a||a.kind!=4)return l==0&&this.error(2304,s.range,e),new Mt(null,i);let o=this.resolveFunction(a,t,new Map,l);return new Mt(o,i)}tupleFieldOf(e,t,i=0){let s=this.resolveExpression(e.expression,t,p.auto,1),l=s?s.getClass():null;if(!l)return null;let a=l.prototype;if(!a.name.startsWith("__Tuple")||!a.hasDecorator(1))return this.shapeFieldOf(e,l,t);let o=l.typeArguments?l.typeArguments.length:0,u=e.elementExpression;for(;u.kind==21||u.kind==8;)u=(u.kind==21,u.expression);let c=-1;if(u.kind==17&&u.literalKind==1){let f=u.value;i64_is_i32(f)&&(c=i64_low(f))}return c<0||c>=o?(i==0&&this.error(2493,e.elementExpression.range,this.tupleName(l),o.toString(),c<0?"?":c.toString()),e):A.createPropertyAccessExpression(e.expression,A.createIdentifierExpression(`_${c}`,e.elementExpression.range),e.range)}regExpCallOf(e,t){let i=e.expression,s=e.args;if(i.kind!=22||!s.length||!_e(e.range.source))return null;let l=i,a=l.property.text;if(a!="match"&&a!="matchAll"&&a!="replace"&&a!="replaceAll"&&a!="search"&&a!="split")return null;let o=this.program.stringInstance,u=this.resolveExpression(l.expression,t,p.auto,1);if(!u||u.classReference!=o)return null;let c=this.resolveExpression(s[0],t,p.auto,1);if(!c||c.classReference!=this.program.regexpInstance)return null;let f="__"+a;if((a=="replace"||a=="replaceAll")&&s.length==2){let d=s[1],y=-1;if(d.kind==15)y=d.declaration.signature.parameters.length;else{let m=this.resolveExpression(d,t,p.auto,1),g=m?m.signatureReference:null;g&&(y=g.parameterTypes.length)}y>=0&&(f="__replaceBy"+max(1,min(y,5)).toString())}let _=A.createPropertyAccessExpression(s[0],A.createIdentifierExpression(f,l.property.range),i.range);_.isHood=!0;let h=[l.expression];for(let d=1,y=s.length;d<y;++d)h.push(s[d]);return A.createCallExpression(_,null,h,e.range)}hiddenClassOf(e,t){if(this.hiddenLiterals.has(e)){let x=this.hiddenLiterals.get(e);return x||null}this.hiddenLiterals.set(e,null);let i=e.range,s=this.program.filesByName.get(i.source.internalPath),l=t.members,a=t.prototype;if(!s||!l||a.kind!=8)return null;let o=x=>{let v=A.createNamedType(A.createSimpleTypeName(x.toString(),i),[],!1,i);return v.presetType=x,v},u=new Array,c=new Set;for(let x=Map_values(l),v=0,S=x.length;v<S;++v){let w=x[v],R=w.name;if(w.kind==10){let C=this.resolveProperty(w,1);if(!C)return null;u.push(A.createFieldDeclaration(A.createIdentifierExpression(R,i),null,262144,o(C.type),null,i))}else if(w.kind==4&&!w.is(32)){let C=this.resolveFunction(w,null,new Map,1);if(!C)return null;let M=C.signature,G="__fn_"+R,U=ge.create(this.program,M.parameterTypes,M.returnType,null,M.requiredParameters,M.hasRest);u.push(A.createFieldDeclaration(A.createIdentifierExpression(G,i),null,262144,o(U.type),null,i));let W=new Array,O=new Array,X=M.parameterTypes;for(let j=0,ne=X.length;j<ne;++j){let ce=A.createIdentifierExpression("p"+j.toString(),i);W.push(A.createParameter(0,ce,o(X[j]),null,i)),O.push(A.createIdentifierExpression(ce.text,i))}let $=A.createCallExpression(A.createPropertyAccessExpression(A.createThisExpression(i),A.createIdentifierExpression(G,i),i),null,O,i),V=M.returnType,re=A.createBlockStatement([V==p.void?A.createExpressionStatement($):A.createReturnStatement($,i)],i);u.push(A.createMethodDeclaration(A.createIdentifierExpression(R,i),null,262144,null,A.createFunctionType(W,o(V),null,!1,i),re,i)),c.add(R)}}let f="__hidden"+(this.lateShapeCount++).toString(),_=t.typeArguments,h=new Array;if(_)for(let x=0,v=_.length;x<v;++x)h.push(o(_[x]));let d=A.createClassDeclaration(A.createIdentifierExpression(f,i),null,0,null,null,[A.createNamedType(A.createSimpleTypeName(a.name,i),h,!1,i)],u,i);if(!this.program.initializeHiddenClass(d,s,a))return null;let y=new Array,m=e.names;for(let x=0,v=m.length;x<v;++x){let S=m[x];y.push(c.has(S.text)?A.createIdentifierExpression("__fn_"+S.text,S.range):S)}let g=A.createObjectLiteralExpression(y,e.values,i);return g.inferredType=A.createNamedType(A.createSimpleTypeName(f,i),[],!1,i),this.hiddenLiterals.set(e,g),g}lateShapeOf(e,t){if(this.lateShapes.has(e)){let _=this.lateShapes.get(e);return _||null}this.lateShapes.set(e,null);let i=e.range,s=this.program.filesByName.get(i.source.internalPath);if(!s||!_e(i.source))return null;let l=e.names,a=e.values,o=new Array;for(let _=0,h=l.length;_<h;++_){let d=l[_],y=a[_];if(d.text=="...")return null;let m=this.resolveExpression(y,t,p.auto,1);if(!m||m==p.void)return null;m.isIntegerValue&&(y.kind==17||y.kind==29)&&(m=p.f64);let g=A.createNamedType(A.createSimpleTypeName(m.toString(),d.range),[],!1,d.range);g.presetType=m,o.push(A.createFieldDeclaration(d,null,262144,g,null,d.range))}let u="__shape"+(this.lateShapeCount++).toString(),c=A.createClassDeclaration(A.createIdentifierExpression(u,i),null,0,null,null,null,o,i);if(c.isShape=!0,!this.program.initializeLateShape(c,s))return null;let f=A.createNamedType(A.createSimpleTypeName(u,i),[],!1,i);return this.lateShapes.set(e,f),f}shapeFieldOf(e,t,i,s=null){if(!s&&this.shapeReads.has(e))return assert(this.shapeReads.get(e));let l=t.prototype.declaration;if(l.kind!=52||!l.isShape)return null;let a=e.expression,o=e.elementExpression,u=e.range,c=_=>{let h=A.createPropertyAccessExpression(a,_,u);return s?A.createBinaryExpression(103,h,s,u):h},f=null;if(o.kind==17&&o.literalKind==2)f=c(A.createIdentifierExpression(o.value,o.range));else{let _=this.resolveExpression(o,i,p.auto,1);if(!_||_.classReference!=this.program.stringInstance||!Zn(a)||!Zn(o))return null;let h=new Array,d=null,y=t.members;if(y)for(let m=Map_values(y),g=0,x=m.length;g<x;++g){let v=m[g];if(v.kind!=10||v.is(32))continue;let S=v.instance;if(!(!S||!S.isField)){if(d&&S.type!=d)return null;d=S.type,h.push(v.name)}}if(!h.length)return null;f=c(A.createIdentifierExpression(h[h.length-1],u));for(let m=h.length-2;m>=0;--m){let g=A.createBinaryExpression(76,o,A.createStringLiteralExpression(h[m],u),u);f=A.createTernaryExpression(g,c(A.createIdentifierExpression(h[m],u)),f,u)}}return s||this.shapeReads.set(e,f),f}recordKeyOf(e,t){let i=this.recordKeys.get(e);if(i)return i;if(e.isHood||!_e(e.range.source)||!this.isRecordClass(t))return null;let s=e.property,l=A.createElementAccessExpression(e.expression,A.createStringLiteralExpression(s.text,s.range),e.range);return this.recordKeys.set(e,l),l}objectCallOf(e,t){let i=this.objectCalls.get(e);if(i)return i;let s=e.expression;if(s.kind==22&&s.expression.kind==7&&s.expression.text=="Math"&&!t.lookupLocal("Math")){let m=s.property.text,g=e.args,x=!1;for(let v=0,S=g.length;v<S;++v)ic(g[v])&&(x=!0);if((m=="max"||m=="min")&&(x||g.length!=2)){let v=A.createArrayLiteralExpression(g,e.range),S=A.createCallExpression(A.createIdentifierExpression(m=="max"?"__mathMax":"__mathMin",e.range),null,[v],e.range);return this.objectCalls.set(e,S),S}}if(s.kind==7&&s.text=="__spreadOf"&&e.args.length==1){let m=e.args[0],g=this.resolveExpression(m,t,p.auto,1),x=g?g.getClass():null,v=m;if(x){let S=x.extendsPrototype(this.program.mapPrototype)&&!this.isRecordClass(x)?"entries":x.extendsPrototype(this.program.setPrototype)?"values":x==this.program.stringInstance?"split":null;if(S){let w=A.createPropertyAccessExpression(m,A.createIdentifierExpression(S,e.range),e.range);w.isHood=!0,v=A.createCallExpression(w,null,S=="split"?[A.createStringLiteralExpression("",e.range)]:[],e.range)}}return this.objectCalls.set(e,v),v}if(s.kind==7&&s.text=="__forOf"&&e.args.length==1){let m=e.args[0],g=this.resolveExpression(m,t,p.auto,1),x=g?g.getClass():null,v=m;if(x&&!this.isRecordClass(x)){let S=x.extendsPrototype(this.program.mapPrototype)?"entries":x.extendsPrototype(this.program.setPrototype)?"values":null;if(S){let w=A.createPropertyAccessExpression(m,A.createIdentifierExpression(S,e.range),e.range);w.isHood=!0,v=A.createCallExpression(w,null,[],e.range)}}return this.objectCalls.set(e,v),v}let l=this.regExpCallOf(e,t);if(l)return this.objectCalls.set(e,l),l;if(s.kind==7&&s.text=="__restOf"&&e.args.length>=1){let m=e.args,g=m[0],x=this.resolveExpression(g,t,p.auto,1),v=x?x.getClass():null,S=v&&!this.isRecordClass(v)?v.members:null;if(!S)return null;let w=new Set;for(let G=1,U=m.length;G<U;++G)w.add(m[G].value);let R=new Array,C=new Array;for(let G=Map_values(S),U=0,W=G.length;U<W;++U){let O=G[U];if(O.kind!=10||O.isAny(544))continue;let X=O.instance;if(!X||!X.isField||w.has(O.name))continue;let $=A.createIdentifierExpression(O.name,e.range);R.push($),C.push(A.createPropertyAccessExpression(g,A.createIdentifierExpression(O.name,e.range),e.range))}let M=A.createObjectLiteralExpression(R,C,e.range);return this.objectCalls.set(e,M),M}if(s.kind==7&&s.text=="__await"&&e.args.length==1){let m=e.args[0],g=this.resolveExpression(m,t,p.auto,1);if(g&&!this.settledTypeOf(g)){let x=A.createCallExpression(s,null,[dg(m)],e.range);return this.objectCalls.set(e,x),x}}let a=this.conversionCallOf(e,t);if(a)return this.objectCalls.set(e,a),a;if(s.kind==22&&e.args.length==1&&s.property.text=="get"&&!s.isHood&&_e(e.range.source)){let m=s.expression,g=this.resolveExpression(m,t,p.auto,1),x=g?g.getClass():null;if(x&&x.extendsPrototype(this.program.mapPrototype)&&!this.isRecordClass(x)){let v=A.createPropertyAccessExpression(m,A.createIdentifierExpression("__getOrUndefined",s.range),s.range);v.isHood=!0;let S=A.createCallExpression(v,null,[e.args[0]],e.range);return this.mapGets.set(S,A.createElementAccessExpression(m,e.args[0],e.range)),this.objectCalls.set(e,S),S}}if(s.kind!=22||e.args.length!=1)return null;let o=s,u=o.expression;if(u.kind!=7||u.text!="Object")return null;let c=o.property.text;if(c!="keys"&&c!="values"&&c!="entries"||t.lookupLocal("Object"))return null;let f=e.args[0],_=this.resolveExpression(f,t,p.auto,1),h=_?_.getClass():null;if(!h)return null;let d=e.range,y=e;if(h.getMember("__recordKeys")){let m=c=="keys"?"__recordKeys":c=="values"?"__recordValues":"__recordEntries",g=A.createPropertyAccessExpression(f,A.createIdentifierExpression(m,d),d);g.isHood=!0,y=A.createCallExpression(g,null,[],d)}else if(_e(h.prototype.declaration.range.source)){let m=new Array,g=h.members;if(g)for(let v=Map_values(g),S=0,w=v.length;S<w;++S){let R=unchecked(v[S]);R.kind==10&&R.isField&&!R.is(32)&&m.push(R.name)}let x=new Array;if(c=="keys"){for(let v=0,S=m.length;v<S;++v)x.push(A.createStringLiteralExpression(m[v],d));y=A.createArrayLiteralExpression(x,d)}else if(c=="values"&&Z2(f)){for(let v=0,S=m.length;v<S;++v)x.push(A.createPropertyAccessExpression(f,A.createIdentifierExpression(m[v],d),d));y=A.createArrayLiteralExpression(x,d)}}return this.objectCalls.set(e,y),y}conversionCallOf(e,t){let i=e.expression;if(i.kind!=7||e.typeArguments)return null;let s=i.text;if(s!="String"&&s!="Number"&&s!="Boolean"||t.lookupLocal(s))return null;let l=this.program.lookup(s);if(l&&!l.internalName.startsWith("~lib/"))return null;let a=e.args;if(a.length>1)return null;let o=e.range;if(!a.length)return s=="String"?A.createStringLiteralExpression("",o):s=="Number"?A.createIntegerLiteralExpression(i64_new(0),o):A.createFalseExpression(o);let u=a[0];return s=="String"?A.createTemplateLiteralExpression(null,["",""],["",""],[u],o):s=="Boolean"?A.createUnaryPrefixExpression(95,A.createUnaryPrefixExpression(95,u,o),o):A.createCallExpression(A.createIdentifierExpression("__toNumber",o),null,[u],o)}jsonParseOf(e,t,i){if(e.typeArguments||e.args.length!=1)return null;let s=e.expression;if(s.kind!=22)return null;let l=s;if(l.property.text!="parse"||l.expression.kind!=7||l.expression.text!="JSON"||t.lookupLocal("JSON"))return null;let a=this.program.lookup("JSON");if(!a||a.internalName!="~lib/json/JSON")return null;let o=a.getMember("parse");return!o||o.kind!=4?null:i==p.auto||i==p.void?this.jsonParseUntyped:this.resolveFunction(o,[i])}get jsonParseUntyped(){let e=this._jsonParseUntyped;if(!e){let t=assert(this.program.abortInstance);this._jsonParseUntyped=e=t}return e}spreadArrayOf(e){let t=this.spreadArrays.get(e);if(t)return t;let i=e.elementExpressions,s=!1;for(let f=0,_=i.length;f<_;++f)ic(i[f])&&(s=!0);if(!s)return null;let l=e.range,a=new Array,o=new Array;for(let f=0,_=i.length;f<_;++f){let h=i[f];ic(h)?(o.length&&a.push(A.createArrayLiteralExpression(o,l)),o=new Array,a.push(A.createCallExpression(A.createIdentifierExpression("__spreadOf",h.range),null,[h.operand],h.range))):o.push(h)}o.length&&a.push(A.createArrayLiteralExpression(o,l));let u=a[0],c=1;if(a.length==1){let f=A.createPropertyAccessExpression(u,A.createIdentifierExpression("slice",l),l);f.isHood=!0,u=A.createCallExpression(f,null,[],l)}for(let f=c,_=a.length;f<_;++f){let h=A.createPropertyAccessExpression(u,A.createIdentifierExpression("concat",l),l);h.isHood=!0,u=A.createCallExpression(h,null,[a[f]],l)}return this.spreadArrays.set(e,u),u}isRecordClass(e){let t=e;for(;t;){if(t.prototype.internalName=="~lib/map/Record")return!0;t=t.base}return!1}tupleName(e){let t=e.typeArguments,i=new Array;if(t)for(let s=0,l=t.length;s<l;++s)i.push(this.plainTypeName(t[s]));return`[${i.join(", ")}]`}inferReturnType(e,t,i,s,l,a,o,u,c,f=!1,_=null){if(this.inferringReturn.has(e))return null;this.inferringReturn.add(e);let h=ge.create(this.program,i,p.void,s,l,a),d=new Je(e.name+"~inferring",e,t,h,o),y=d.flow;if(_&&(y.outer=_),c){let x=!0;for(;x;){x=!1;for(let v=0,S=c.length;v<S;++v){let w=c[v],R=w.name.text;if(y.lookupLocal(R))continue;let C=w.type,M=w.initializer,G=null;C?G=this.resolveType(C,y,y.sourceFunction,o,1):M&&(G=this.resolveExpression(M,y,p.auto,1)),G&&G!=p.void&&(y.addScopedLocal(R,G),x=!0)}}}let m=null,g=!1;for(let x=0,v=u.length;x<v;++x){if(u[x].kind==19){g=!0;continue}let S=u[x];if(S.kind==10&&!e.is(262144)){let G=S.expression;if(G.kind==7&&G.text==e.name)continue}let w=S.kind==17&&S.literalKind==5,R=m&&w?m:p.auto,C=this.resolveExpression(S,y,R,1);if(!C){m=null;break}let M=C.classReference;if(f&&M&&this.isPromisePrototype(M.prototype)&&(C=assert(M.typeArguments)[0]),C.isNullableReference&&S.kind==7&&u.length>1&&(C=C.nonNullableType),!m){m=C;continue}if(m!=C){if(m.isReference&&C.isReference&&m.nonNullableType==C.nonNullableType){m=m.asNullable();continue}if(m.isNumericValue&&C.isNumericValue&&!m.isBooleanValue&&!C.isBooleanValue){m=p.f64;continue}m=null;break}}return m&&g&&(m=m.isReference?m.asNullable():null),this.program.instancesByName.delete(d.internalName),this.inferringReturn.delete(e),m}ensureOneTypeArgument(e,t=0){let i=e.typeArguments,s=0;return!i||(s=i.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):i[0]}};function Ya(r){let n=r.prototype;return n.name.startsWith("__Tuple")&&n.name.length>7&&n.hasDecorator(1)}function ic(r){return r.kind==29&&r.operator==69}function Z2(r){for(;r.kind==22;)r=r.expression;return r.kind==7||r.kind==25}var Mt=class{constructor(n,e){this.instance=n;this.args=e}static{this.MAX_TUPLE=8}};function dg(r){let n=r.range,e=A.createPropertyAccessExpression(A.createIdentifierExpression("Promise",n),A.createIdentifierExpression("resolve",n),n);return A.createCallExpression(e,null,[r],n)}function Zn(r){switch(r.kind){case 7:case 25:case 17:return!0;case 22:return Zn(r.expression);case 21:return Zn(r.expression);case 8:return Zn(r.expression)}return!1}var rs=class{constructor(n,e){this.source=n;this.reportNode=e}},is=class extends Qe{constructor(e=null,t=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.currentModuleName=null;this.pendingAsync=!1;this.asyncBodies=[];this.destructured=0;this.constraintDepth=0;this.typeLiterals=new Map;this.needsCallEnv=!1;this.options=null;this.sharedShapes=new Set;this.shapeNames=new Set;this.pendingShapes=[];this.pendingRecords=[];this.literalAliases=new Map;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.hoistedForInference=null;this.forAwaits=[];this.usesExceptions=!1;this.forOfCounter=0;this.sources=t}parseFile(e,t,i){let s=Rr(t),l=Mn(s);if(this.donelog.has(l))return;if(this.donelog.add(l),this.seenlog.add(l),e==null){let c=this.dependees,f=null;c.has(l)&&(f=assert(c.get(l))),this.error(6054,f?f.reportNode.range:null,t);return}let a=new ye(i?1:t.startsWith(dt)?t.indexOf(lt,dt.length)<0?3:2:0,s,e);this.sources.push(a),this.currentSource=a,this.currentModuleName=null;let o=new zn(a,this.diagnostics);o.onComment=this.onComment;let u=a.statements;for(;!o.skip(124);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,t=null){let i=t?t.flags&32768:0,s=-1,l=null;for(;e.skip(117);){s<0&&(s=e.tokenPos);let m=this.parseDecorator(e);if(!m){this.skipStatement(e);continue}l?l.push(m):l=[m]}let a=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),i|=2,a=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,h=t!=null&&t.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,i|=32772):h&&(i|=32768);let d=null,y=e.peek();switch(s<0&&(s=e.nextTokenPos),y){case 8:{e.next(),i|=8,e.skip(17)?d=this.parseEnum(e,i,l,s):d=this.parseVariable(e,i,l,s),l=null;break}case 34:i|=16;case 57:{e.next(),d=this.parseVariable(e,i,l,s),l=null;break}case 17:{e.next(),d=this.parseEnum(e,i,l,s),l=null;break}case 24:{e.next(),d=this.parseFunction(e,i,l,s),l=null;break}case 2:{let m=e.mark();if(e.next(),e.peek()==24&&!e.peekOnNewLine()){e.discard(m),e.next(),this.pendingAsync=!0,d=this.parseFunction(e,i,l,s),l=null;break}e.reset(m),d=this.parseStatement(e,!0);break}case 0:{let m=e.mark();e.next();let g=e.tokenPos,x=e.pos;if(e.peekOnNewLine()){e.reset(m),d=this.parseStatement(e,!0);break}let v=e.peek();if(v!=7){v==31&&this.error(1242,e.range(g,x)),e.reset(m),d=this.parseStatement(e,!0);break}else e.discard(m);i|=128}case 7:case 31:{e.next(),d=this.parseClassOrInterface(e,i,l,s),l=null;break}case 36:{let m=e.mark();e.next(),e.peek(1)==118?(e.discard(m),d=this.parseNamespace(e,i,l,s),l=null):(e.reset(m),d=this.parseStatement(e,!0));break}case 28:{e.next(),i|=1,i&2?d=this.parseExportImport(e,s):d=this.parseImport(e);break}case 55:{let m=e.mark();e.next(),e.peek(1)==118?(e.discard(m),d=this.parseTypeDeclaration(e,i,l,s),l=null):(e.reset(m),d=this.parseStatement(e,!0));break}case 35:{let m=e.mark();e.next(),e.peek()==119&&!e.peekOnNewLine()?(e.discard(m),d=this.parseModuleDeclaration(e,i)):(e.reset(m),d=this.parseStatement(e,!0));break}default:{i&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),d=this.parseExportDefaultAlias(e,s,u,c),u=c=0):d=this.parseExport(e,s,(i&4)!=0):(o&&this.error(1042,e.range(a,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),t?this.error(2695,e.range(s)):d=this.parseStatement(e,!0));break}}if(l)for(let m=0,g=l.length;m<g;++m)this.error(1206,l[m].range);if(c&&d!=null)switch(d.kind){case 53:case 56:case 52:case 58:case 60:return A.createExportDefaultStatement(d,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return d}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear()}parseTypeName(e){let t=A.createSimpleTypeName(e.readIdentifier(),e.range()),i=t;for(;e.skip(68);)if(e.skip(118)){let s=A.createSimpleTypeName(e.readIdentifier(),e.range());i.next=s,i=s}else return this.error(1003,e.range(e.pos)),null;return t}parseTypeLiteral(e,t,i){let s=assert(this.currentSource),l=new Array,a=A.createInterfaceDeclaration(A.createIdentifierExpression("",e.range(t,t)),null,0,null,null,null,l,e.range(t,e.pos));for(;!e.skip(63);){if(e.peek()==124)return i||this.error(1005,e.range(),"}"),null;let f=this.parseClassMember(e,a);if(!f)return null;if(f.kind==66&&l.length==0&&(e.skip(70)||e.skip(71),e.skip(63))){let _=this.recordOf(f);return _.range=e.range(t,e.pos),_}if(f.kind!=55)return i||this.error(100,f.range,"methods and index signatures in an object type - declare an interface"),null;l.push(f)}let o=e.range(t,e.pos),u=s.text.substring(t,e.pos),c="";for(let f=0,_=u.length;f<_;++f){let h=u.charCodeAt(f);h!=32&&h!=9&&h!=10&&h!=13&&(c+=u.charAt(f))}return this.shapeType(c,l,o,s)}shapeType(e,t,i,s){let l=!0;for(let u=0,c=t.length;u<c;++u){let f=t[u].type;if(!f||!this.isSharedType(f)){l=!1;break}}let a=(l?"*":s.normalizedPath)+"|"+e,o;if(this.typeLiterals.has(a))o=assert(this.typeLiterals.get(a));else{o="__type"+this.typeLiterals.size.toString(),this.typeLiterals.set(a,o);let u=null;l&&(u=[A.createDecorator(A.createIdentifierExpression("global",i),null,i)],this.sharedShapes.add(o));let c=A.createClassDeclaration(A.createIdentifierExpression(o,i),u,0,null,null,null,t,i);c.overriddenModuleName=this.currentModuleName,c.isShape=!0,s.statements.push(c)}return A.createNamedType(A.createSimpleTypeName(o,i),[],!1,i)}isSharedType(e){if(e.kind!=1)return!1;let t=e;if(t.name.next)return!1;let i=t.name.identifier.text,s=t.typeArguments;return s&&s.length?i=="Array"&&s.length==1&&this.isSharedType(s[0]):i=="number"||i=="string"||i=="boolean"||i=="bool"||i=="i32"||i=="f64"||this.sharedShapes.has(i)}inferLiteralType(e,t){let i=e.names,s=e.values,l=e.range,a=new Array,o="{";for(let u=0,c=i.length;u<c;++u){let f=this.valueType(s[u],t);if(!f)return null;a.push(A.createFieldDeclaration(i[u],null,262144,f,null,i[u].range)),o+=i[u].text+":"+Mi(f)+";"}return this.shapeType(o+"}",a,l,t)}valueType(e,t){let i=e.range,s=l=>A.createNamedType(A.createSimpleTypeName(l,i),[],!1,i);switch(e.kind){case 21:return this.valueType(e.expression,t);case 9:{switch(e.operator){case 84:case 85:case 82:case 86:case 83:case 93:case 92:case 94:case 89:case 90:case 91:return s("number");case 76:case 77:case 78:case 79:case 72:case 73:case 74:case 75:return s("boolean")}return null}case 26:case 14:return s("boolean");case 29:{let l=e;if(l.operator==95)return s("boolean");if(l.operator!=82&&l.operator!=81)return null;let a=l.operand;return a.isLiteralKind(1)||a.isLiteralKind(0)?s("number"):null}case 18:{let l=e;return A.createNamedType(l.typeName,l.typeArguments,!1,i)}case 17:{let l=e;switch(l.literalKind){case 1:case 0:return s("number");case 2:return s("string");case 3:return l.tag?null:s("string");case 6:return l.inferredType;case 5:{let a=l.elementExpressions;if(!a.length)return null;let o=this.valueType(a[0],t);if(!o)return null;let u=Mi(o);for(let c=1,f=a.length;c<f;++c){let _=this.valueType(a[c],t);if(!_||Mi(_)!=u)return null}return A.createNamedType(A.createSimpleTypeName("Array",i),[o],!1,i)}}}}return null}recordOf(e){let t=e.range;return A.createNamedType(A.createSimpleTypeName("Record",t),[e.keyType,e.valueType],!1,t)}literalRecord(e,t,i,s){let l=s.normalizedPath+"|Record|"+e.join("|")+"|"+t.range.source.text.substring(t.range.start,t.range.end),a;if(this.typeLiterals.has(l))a=assert(this.typeLiterals.get(l));else{a="__type"+this.typeLiterals.size.toString(),this.typeLiterals.set(l,a);let o=new Array,u=A.createNamedType(A.createSimpleTypeName("string",i),[],!1,i),c=C=>A.createIdentifierExpression(C,i),f=C=>A.createPropertyAccessExpression(A.createThisExpression(i),c(C),i),_=new Array,h=new Array,d=new Array,y=new Array;for(let C=0,M=e.length;C<M;++C){let G=e[C];o.push(A.createFieldDeclaration(c(G),null,262144,t,null,i));let U=A.createReturnStatement(f(G),i),W=A.createBlockStatement([A.createExpressionStatement(A.createBinaryExpression(103,f(G),c("value"),i)),A.createReturnStatement(null,i)],i);if(C<M-1){let O=()=>A.createBinaryExpression(76,c("key"),A.createStringLiteralExpression(G,i),i);_.push(A.createIfStatement(O(),U,null,i)),h.push(A.createIfStatement(O(),W,null,i))}else _.push(U),h.push(W);d.push(A.createStringLiteralExpression(G,i)),y.push(f(G))}let m=(C,M,G,U,W)=>{let O=M==null?null:[A.createDecorator(A.createIdentifierExpression("operator",i),[A.createStringLiteralExpression(M,i)],i)];return A.createMethodDeclaration(c(C),O,262144,null,A.createFunctionType(G,U,null,!1,i),A.createBlockStatement(W,i),i)},g=A.createNamedType(A.createSimpleTypeName("void",i),[],!1,i),x=()=>A.createParameter(0,c("key"),u,null,i);o.push(m("__recordGet","[]",[x()],t,_)),o.push(m("__recordSet","[]=",[x(),A.createParameter(0,c("value"),t,null,i)],g,h));let v=C=>A.createNamedType(A.createSimpleTypeName("Array",i),[C],!1,i);o.push(m("__recordKeys",null,[],v(u),[A.createReturnStatement(A.createArrayLiteralExpression(d,i),i)])),o.push(m("__recordValues",null,[],v(t),[A.createReturnStatement(A.createArrayLiteralExpression(y,i),i)]));let S=()=>A.createNamedType(A.createSimpleTypeName("__Tuple2",i),[u,t],!1,i),w=new Array;for(let C=0,M=e.length;C<M;++C)w.push(A.createNewExpression(S().name,[u,t],[A.createStringLiteralExpression(e[C],i),f(e[C])],i));o.push(m("__recordEntries",null,[],v(S()),[A.createReturnStatement(A.createArrayLiteralExpression(w,i),i)]));let R=A.createClassDeclaration(A.createIdentifierExpression(a,i),null,0,null,null,null,o,i);R.overriddenModuleName=this.currentModuleName,s.statements.push(R)}return A.createNamedType(A.createSimpleTypeName(a,i),[],!1,i)}finishShapes(){let e=this.pendingShapes,t=!0;for(;t;){t=!1;for(let i=0;i<e.length;++i){let s=e[i],l=assert(s.extendsType).name;if(l.next||!this.shapeNames.has(l.identifier.text))continue;let a=s.range.source.statements,o=a.indexOf(s);if(o<0)continue;let u=A.createClassDeclaration(s.name,s.decorators,s.flags,null,s.extendsType,null,s.members,s.range);u.overriddenModuleName=s.overriddenModuleName,u.isShape=!0,a[o]=u,this.shapeNames.add(s.name.text),e.splice(i--,1),t=!0}}this.pendingShapes=[]}finishRecords(){this.currentModuleName=null;let e=this.pendingRecords;for(let t=0,i=e.length;t<i;++t){let s=e[t],l=assert(s.typeArguments),a=l[0].name.identifier.text;if(!this.literalAliases.has(a))continue;let o=this.literalAliases.get(a);if(!o)continue;let u=this.literalRecord(o,l[1],s.range,s.range.source);s.name=u.name,s.typeArguments=[]}this.pendingRecords=[]}parseType(e,t=!0,i=!1,s=!1){let l=e.next(),a=e.tokenPos,o;if(l==64){let u=e.skip(64),c=this.tryParseFunctionType(e);if(c){if(u&&!e.skip(65))return i||this.error(1005,e.range(),")"),null;o=c}else{if(u||this.tryParseSignatureIsSignature)return i||this.error(1012,e.range()),null;if(t){let f=this.parseType(e,!1,i);if(!f)return null;if(f.kind==1&&f.name.identifier.text=="string"&&e.skip(92)&&(!e.skip(62)||!e.skip(63)))return i||this.error(100,e.range(),"intersection types"),null;if(!e.skip(65))return i||this.error(1005,e.range(e.pos),")"),null;o=f,o.range.start=a,o.range.end=e.pos}else return i||this.error(1012,e.range()),null}}else if(l==45){let u=this.parseType(e,t,i);if(!u)return null;o=u,o.range.start=a}else if(l==66){let u=[],c=[],f=!1;if(!e.skip(67)){do{let _=null,h=e.mark();if(e.skip(118)){let y=e.readIdentifier(),m=e.range();e.skip(102)?(_=A.createIdentifierExpression(y,m),f=!0):e.reset(h)}let d=this.parseType(e,!0,i);if(!d)return null;u.push(d),c.push(_)}while(e.skip(71));if(!e.skip(67))return i||this.error(1005,e.range(e.pos),"]"),null}o=A.createTupleType(u,f?c:null,!1,e.range(a,e.pos))}else if(l==58)o=A.createNamedType(A.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(l==56){if(!e.skipIdentifier())return i||this.error(1003,e.range()),null;let u=A.createIdentifierExpression(e.readIdentifier(),e.range());for(;e.skip(68);){if(!e.skipIdentifier(2))return null;u=A.createPropertyAccessExpression(u,A.createIdentifierExpression(e.readIdentifier(),e.range()),e.range(a,e.pos))}let c=A.createNamedType(A.createSimpleTypeName("__typeof",e.range(a,e.pos)),[],!1,e.range(a,e.pos));c.typeQuery=u,o=c}else if(l==33){let u=this.parseType(e,t,i,!0);if(!u)return null;let c=A.createNamedType(A.createSimpleTypeName("string",e.range(a,e.pos)),[],!1,e.range(a,e.pos));c.keyofTarget=u,o=c}else if(l==51)o=A.createNamedType(A.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(l==53||l==20)o=A.createNamedType(A.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(l==38)o=A.createNamedType(A.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(l==119){let u=e.readString(),c=A.createNamedType(A.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));c.stringLiterals=[u],o=c}else if(l==62){let u=this.parseTypeLiteral(e,a,i);if(!u)return null;o=u}else if(l==118){let u=this.parseTypeName(e);if(!u)return null;if(!u.next&&e.skip(32)){let f=this.parseType(e,t,i);if(!f)return null;let _=A.createNamedType(A.createSimpleTypeName("bool",e.range(a,e.pos)),[],!1,e.range(a,e.pos));return _.predicateParameter=u.identifier.text,_.predicateType=f,_}let c=null;if(e.skip(72)){do{let f=this.parseType(e,!0,i);if(!f)return null;c?c.push(f):c=[f]}while(e.skip(71));if(!e.skip(73))return i||this.error(1005,e.range(e.pos),">"),null}if(c||(c=[]),o=A.createNamedType(u,c,!1,e.range(a,e.pos)),!u.next&&u.identifier.text=="Record"&&c.length==2&&c[0].kind==1){let f=c[0],_=f.stringLiterals;_?o=this.literalRecord(_,c[1],o.range,assert(this.currentSource)):!f.name.next&&!f.hasTypeArguments&&this.pendingRecords.push(o)}}else return i||this.error(1110,e.range()),null;for(;!s&&e.skip(93);){let u=this.parseType(e,!0,!1);if(!u)return null;let c=o.kind==1&&o.isNull,f=u.kind==1&&u.isNull,_=o.kind==1&&o.name.identifier.text=="string",h=u.kind==1&&u.name.identifier.text=="string";if(_&&h){o.range.end=u.range.end;let M=o.stringLiterals,G=u.stringLiterals;o.stringLiterals=M&&G?M.concat(G):null;continue}let d=o.kind==2,y=u.kind==2;if(_&&y||d&&h){let M=d?o:u,G=d?u:o;M.acceptsText=!0,G.isNullable&&(M.isNullable=!0),M.range=e.range(a,e.pos),o=M,this.needsCallEnv=!0;continue}let m=Ja(o),g=Ja(u);if(d&&g||m&&y){let M=m?o:u;M.acceptsFunction=d?o:u,M.range=e.range(a,e.pos),o=M,this.needsCallEnv=!0;continue}let x=o.kind==1&&mg(o.name.identifier.text),v=u.kind==1&&mg(u.name.identifier.text);if(x&&v){o.range.end=u.range.end;continue}if((x||_)&&(v||h)){let M=A.createNamedType(A.createSimpleTypeName("string",o.range),[],o.isNullable||u.isNullable,e.range(a,e.pos));M.isBoolString=!0,o=M;continue}let S=o.kind==1&&!x&&!_&&!c&&!Ja(o),w=u.kind==1&&!v&&!h&&!f&&!Ja(u);if(x&&w||S&&v){let M=S?o:u;M.acceptsBoolean=!0,M.range=e.range(a,e.pos),o=M;continue}let R=o.kind==1&&o.name.identifier.text=="undefined",C=u.kind==1&&u.name.identifier.text=="undefined";if(R!=C){let M=R?u:o;M.kind==1?M.orUndefined=!0:M.isNullable=!0,M.range=e.range(a,e.pos),o=M;continue}if(this.constraintDepth>0){o.range.end=u.range.end;continue}if(!c&&!f)return i||this.error(100,u.range,"union types"),null;f?(o.isNullable=!0,o.range.end=u.range.end):c?(u.range.start=o.range.start,u.isNullable=!0,o=u):o.range.end=u.range.end}for(;e.skip(66);){let u=e.tokenPos;if(o.kind==1&&!o.indexType&&e.peek()!=67){let h=this.parseType(e,!0,i);if(!h)return null;if(!e.skip(67))return i||this.error(1005,e.range(),"]"),null;o.indexType=h,o.range.end=e.pos;continue}if(!e.skip(67))return i||this.error(1005,e.range(),"]"),null;let c=e.range(u,e.pos),f=!1,_=null;if(e.skip(93))if(e.skip(38))f=!0;else if(e.peek()==64){let h=this.parseType(e,!0,i);if(!h)return null;if(h.kind!=2)return i||this.error(100,h.range,"union types"),null;_=h,this.needsCallEnv=!0}else return i||this.error(100,e.range(),"union types"),null;if(o=A.createNamedType(A.createSimpleTypeName("Array",c),[o],f,e.range(a,e.pos)),_){o.acceptsFunction=_;break}if(f)break}for(;!s&&this.constraintDepth>0&&e.skip(93);)if(!this.parseType(e,!0,i))return null;return o}tryParseFunctionType(e){let t=e.mark(),i=e.tokenPos,s=null,l=null,a=!1,o=null,u=0;if(e.skip(65))a=!0,e.discard(t),s=[];else{a=!1;do{let f=-1,_=0;if(e.skip(69)&&(f=e.tokenPos,a=!0,e.discard(t),_=2),e.skip(51))if(f<0&&(f=e.tokenPos),e.skip(102)){a=!0,e.discard(t);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;l=h}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let h=A.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(101)&&(a=!0,e.discard(t),_==2?this.error(1047,e.range()):_=1),e.skip(102)){a=!0,e.discard(t);let d=this.parseType(e);if(!d)return this.tryParseSignatureIsSignature=a,null;let y=A.createParameter(_,h,d,null,e.range(f,e.pos));s?s.push(y):s=[y]}else if(a||e.peek()==71&&(a=!0,e.discard(t)),a){let d=A.createParameter(_,h,A.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(d):s=[d],this.error(1110,d.type.range)}else s||(o=h,u=_)}else{if(a){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=a,null}}while(e.skip(71));if(!e.skip(65))return a?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=a,null}let c;if(e.skip(80)){if(!a&&(a=!0,e.discard(t),o)){let f=A.createParameter(u,o,A.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=a,null}else return a?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=a,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),A.createFunctionType(s,c,l,!1,e.range(i,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let i=e.readIdentifier(),s=A.createIdentifierExpression(i,e.range(t,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))i=e.readIdentifier(),s=A.createPropertyAccessExpression(s,A.createIdentifierExpression(i,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let l;if(e.skip(64)){if(l=this.parseArguments(e),l)return A.createDecorator(s,l,e.range(t,e.pos))}else return A.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,i,s,l=!1){let a=new Array;do{if(!l&&e.skip(66)){if(!this.parseArrayDestructuring(e,t,i,a))return null;continue}if(!l&&e.skip(62)){if(!this.parseObjectDestructuring(e,t,i,a))return null;continue}let u=this.parseVariableDeclaration(e,t,i,l);if(!u)return null;u.overriddenModuleName=this.currentModuleName,a.push(u)}while(e.skip(71));let o=A.createVariableStatement(i,a,e.range(s,e.pos));return!e.skip(70)&&!l&&this.checkASI(e),o}parseArrayDestructuring(e,t,i,s){let l=e.tokenPos,a=this.parsePattern(e,!0);if(!a)return!1;if(!e.skip(103))return this.error(1005,e.range(),"="),!1;let o=this.parseExpression(e,2);if(!o)return!1;let u=e.range(l,e.pos),c="__d"+(this.destructured++).toString();return s.push(A.createVariableDeclaration(A.createIdentifierExpression(c,u),i,t,null,o,u)),this.patternDeclarations(a,c,t,i,s),!0}parsePattern(e,t){let i=t?67:63,s=new Array,l=null;for(;!e.skip(i);){if(t&&e.skip(71)){s.push(new Si(null,null,null,null,e.range()));continue}if(e.skip(69)){if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(l=A.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(i))return this.error(1005,e.range(),t?"]":"}"),null;break}let a=e.nextTokenPos,o=null;if(!t){if(!e.skipIdentifier(2))return this.error(100,e.range(e.nextTokenPos),"a computed key in object destructuring"),null;o=A.createIdentifierExpression(e.readIdentifier(),e.range())}let u=o,c=null;if(!o||e.skip(102)){let _=e.skip(66);if(_||e.skip(62)){if(c=this.parsePattern(e,_),!c)return null;u=null}else if(e.skipIdentifier())u=A.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null}let f=null;if(e.skip(103)&&(f=this.parseExpression(e,2),!f))return null;if(s.push(new Si(o,u,c,f,e.range(a,e.pos))),!e.skip(71)){if(!e.skip(i))return this.error(1005,e.range(),t?"]":"}"),null;break}}return new Nn(t,s,l)}patternDeclarations(e,t,i,s,l){let a=e.elements;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.name,h=f.nested;if(!_&&!h)continue;let d=f.range,y=f.key,m=y?A.createPropertyAccessExpression(A.createIdentifierExpression(t,d),y,d):A.createElementAccessExpression(A.createIdentifierExpression(t,d),nc(u,d),d),g=f.defaultValue;if(g){let x=A.createBinaryExpression(99,m,g,d);if(x.undefinedOnly=!0,m=x,!y){let v=A.createPropertyAccessExpression(A.createIdentifierExpression(t,d),A.createIdentifierExpression("length",d),d);m=A.createTernaryExpression(A.createBinaryExpression(73,v,nc(u,d),d),m,g,d)}}if(h){let x="__d"+(this.destructured++).toString();this.declarePattern(A.createIdentifierExpression(x,d),m,i&-17|8,s,l),this.patternDeclarations(h,x,i,s,l)}else this.declarePattern(assert(_),m,i,s,l)}let o=e.rest;if(o){let u=o.range,c=A.createIdentifierExpression(t,u),f;if(e.isArray){let _=A.createPropertyAccessExpression(c,A.createIdentifierExpression("slice",u),u);f=A.createCallExpression(_,null,[nc(a.length,u)],u)}else{let _=[c];for(let h=0,d=a.length;h<d;++h)_.push(A.createStringLiteralExpression(assert(a[h].key).text,u));f=A.createCallExpression(A.createIdentifierExpression("__restOf",u),null,_,u)}this.declarePattern(o,f,i,s,l)}}declarePattern(e,t,i,s,l){let a=A.createVariableDeclaration(e,s,i,null,t,t.range);a.overriddenModuleName=this.currentModuleName,l.push(a)}parseObjectDestructuring(e,t,i,s){let l=e.tokenPos,a=this.parsePattern(e,!1);if(!a)return!1;let o=null;if(e.skip(102)&&(o=this.parseType(e),!o))return!1;if(!e.skip(103))return this.error(1005,e.range(),"="),!1;let u=this.parseExpression(e,2);if(!u)return!1;let c=e.range(l,e.pos),f="__d"+(this.destructured++).toString(),_=A.createVariableDeclaration(A.createIdentifierExpression(f,c),i,t&-17|8,o,u,c);return _.overriddenModuleName=this.currentModuleName,s.push(_),this.patternDeclarations(a,f,t,i,s),!0}applyParameterPatterns(e,t){let i=null;for(let l=0,a=e.length;l<a;++l){let o=e[l],u=o.pattern;u&&(i||(i=new Array),this.patternDeclarations(u,o.name.text,16,null,i))}if(!i)return t;let s=A.createVariableStatement(null,i,t.range);if(t.kind==31)return t.statements.unshift(s),t;if(t.kind==39){let l=t.expression;return A.createBlockStatement([s,A.createReturnStatement(l,l.range)],t.range)}return A.createBlockStatement([s,t],t.range)}parseVariableDeclaration(e,t,i,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=A.createIdentifierExpression(e.readIdentifier(),e.range());Cp(l.text)&&this.error(1003,l.range);let a=t;e.skip(95)&&(a|=16384);let o=null;e.skip(102)&&(o=this.parseType(e,!0));let u=null;if(e.skip(103)){if(a&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;a&16384&&this.error(1263,u.range)}else s||(a&8?a&32768||this.error(1155,l.range):o||this.error(1110,e.range(e.pos)));let c=ue.join(l.range,e.range());return(a&16384)!=0&&(a&32768)!=0&&this.error(1255,c),A.createVariableDeclaration(l,i,a,o,u,c)}parseEnum(e,t,i,s){if(e.next()!=118)return this.error(1003,e.range()),null;let l=A.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let a=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(a.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(70),a.length&&a.every(J2))return this.stringEnum(l,i,t,a,e.range(s,e.pos));let o=A.createEnumDeclaration(l,i,t,a,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,o}stringEnum(e,t,i,s,l){let a=new Array;for(let u=0,c=s.length;u<c;++u){let f=s[u],_=A.createVariableDeclaration(f.name,null,10,null,f.initializer,f.range);_.overriddenModuleName=this.currentModuleName,a.push(_)}let o=A.createNamespaceDeclaration(e,t,i&-9,[A.createVariableStatement(null,a,l)],l);return o.isStringEnum=!0,o.overriddenModuleName=this.currentModuleName,o}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let i=A.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(103)&&(s=this.parseExpression(e,2),!s)?null:A.createEnumValueDeclaration(i,t,s,ue.join(i.range,e.range()))}parseReturn(e){let t=e.tokenPos,i=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(i=this.parseExpression(e)))return null;let l=A.createReturnStatement(i,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),l}parseTypeParameters(e){let t=new Array,i=!1,s=e.tokenPos;for(;!e.skip(73);){let l=this.parseTypeParameter(e);if(!l)return null;if(l.defaultType?i=!0:i&&(this.error(2706,l.range),l.defaultType=null),t.push(l),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==118){let t=A.createIdentifierExpression(e.readIdentifier(),e.range()),i=null;if(e.skip(19)){this.constraintDepth++;let l=this.parseType(e,!0,!1,!0);if(this.constraintDepth--,!l)return null;let a=!1;for(;e.skip(93);){a=!0,this.constraintDepth++;let o=this.parseType(e,!0,!1,!0);if(this.constraintDepth--,!o)return null}if(a)i=null;else{if(l.kind!=1)return this.error(1003,l.range),null;i=l}}let s=null;if(e.skip(103)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1003,l.range),null;s=l}return A.createTypeParameter(t,i,s,ue.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let i=new Array,s=null,l=!1,a=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(102)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(71))return e.skip(65)?i:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!a&&(this.error(1014,s.name.range),a=!0),u.parameterKind){default:{l&&this.error(1016,u.name.range);break}case 1:{l=!0;break}case 2:{s=u;break}}if(i.push(u),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return i}parseParameter(e,t=!1){let i=!1,s=!1,l=null,a=0;if(t&&(e.skip(44)?(l=e.range(),a|=256):e.skip(43)?(l=e.range(),a|=1024):e.skip(42)&&(l=e.range(),a|=512),e.peek()==45)){let f=e.mark();e.next(),e.peek()!=102?(e.discard(f),l||(l=e.range()),a|=64):e.reset(f)}e.skip(69)&&(a?this.error(1317,e.range()):l=e.range(),i=!0);let o=null,u=e.pos,c=!i&&!a&&e.skip(66);if((c||!i&&!a&&e.skip(62))&&(o=this.parsePattern(e,c),!o))return null;if(o||e.skipIdentifier()){i||(l=o?e.range(u,e.pos):e.range());let f=o?A.createIdentifierExpression("__p"+(this.destructured++).toString(),e.range(u,e.pos)):A.createIdentifierExpression(e.readIdentifier(),e.range()),_=null;if((s=e.skip(101))&&i&&this.error(1047,f.range),e.skip(102)){if(_=this.parseType(e),!_)return null}else _=A.createOmittedType(e.range(e.pos));let h=null;if(e.skip(103)&&(i&&this.error(1048,f.range),s?this.error(1015,f.range):s=!0,h=this.parseExpression(e,2),!h))return null;if(_.kind==1&&_.name.identifier.text==""&&h){let y=this.typeOfInitializer(h);y&&(_=y)}if(s&&!h&&!i&&_.kind==1&&_e(e.source)){let y=_.name.identifier.text;if(y=="number"&&!_.isNullable)h=A.createIdentifierExpression("undefined",f.range);else if(y=="boolean"&&!_.isNullable){let m=A.createIdentifierExpression("undefined",f.range);m.undefinedBoolean=!0,h=m}else $2(y)?this.error(100,f.range,"an optional "+y+" without a default - write one: "+f.text+" = ..."):(_.isNullable=!0,h=A.createNullExpression(f.range))}let d=A.createParameter(i?2:s?1:0,f,_,h,ue.join(assert(l),e.range()));return d.flags|=a,d.pattern=o,d}else this.error(1003,e.range());return null}parseFunction(e,t,i,s){let l=this.pendingAsync;if(this.pendingAsync=!1,!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=A.createIdentifierExpression(e.readIdentifier(),e.range()),o=-1,u=null;if(e.skip(72)){if(o=e.tokenPos,u=this.parseTypeParameters(e),!u)return null;t|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;o<0&&(o=e.tokenPos);let c=this.parseParameters(e);if(!c)return null;let f=this.parseParametersThis,_=(t&4096)!=0;_&&(c.length!=1&&this.error(1049,a.range),c.length>0&&c[0].initializer&&this.error(1052,a.range)),t&2048&&c.length&&this.error(1054,a.range);let h=null;if(e.skip(102)&&(h=this.parseType(e,!0,_),!h))return null;let d=!h;h||(h=A.createNamedType(A.createSimpleTypeName("void",e.range(e.pos)),[],!1,e.range(e.pos)));let y=A.createFunctionType(c,h,f,!1,e.range(o,e.pos));y.isAsync=l,l&&(this.needsCallEnv=!0);let m=null;if(e.skip(62)){if(t&32768&&this.error(1183,e.range()),this.asyncBodies.push(l),l&&(this.usesExceptions=!0),m=this.parseBlockStatement(e,!1),this.asyncBodies.pop(),!m)return null}else if(!(t&32768)){if(this.isFollowedBySameFunction(e,a.text))return e.skip(70),A.createEmptyStatement(e.range(s,e.pos));this.error(2391,e.range(e.pos))}m&&(m=this.applyParameterPatterns(c,m)),d&&m&&this.inferReturnFromBody(y,m);let g=A.createFunctionDeclaration(a,i,t,u,y,m,0,e.range(s,e.pos));return g.overriddenModuleName=this.currentModuleName,e.skip(70),g}isFollowedBySameFunction(e,t){let i=e.mark();e.skip(70),e.skip(18),e.skip(2);let s=e.skip(24)&&e.skipIdentifier()&&e.readIdentifier()==t;return e.reset(i),s}parseFunctionExpression(e){let t=e.tokenPos,i,s=0;if(e.token==24){if(e.skipIdentifier()?i=A.createIdentifierExpression(e.readIdentifier(),e.range()):i=A.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),i=A.createEmptyIdentifierExpression(e.range(e.tokenPos));let l=this.pendingAsync;this.pendingAsync=!1;let a=e.pos,o=this.parseParameters(e);return o?(this.pendingAsync=l,this.parseFunctionExpressionCommon(e,i,o,this.parseParametersThis,s,t,a)):null}parseFunctionExpressionCommon(e,t,i,s,l,a=-1,o=-1){a<0&&(a=t.range.start),o<0&&(o=a);let u=null;if(l!=2&&e.skip(102)){if(u=this.parseType(e),!u)return null}else u=A.createOmittedType(e.range(e.pos));if(l&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=A.createFunctionType(i,u,s,!1,e.range(o,e.pos)),f=this.pendingAsync;this.pendingAsync=!1,c.isAsync=f,this.needsCallEnv=!0;let _=null;if(this.asyncBodies.push(f),f&&(this.usesExceptions=!0),l)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let d=this.parseExpression(e,2);d&&(_=f?A.createBlockStatement([A.createReturnStatement(d,d.range)],d.range):A.createExpressionStatement(d))}else{if(!e.skip(62))return this.asyncBodies.pop(),this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(this.asyncBodies.pop(),!_)return null;_=this.applyParameterPatterns(i,_),pe(u)&&_.kind==31&&(this.inferReturnFromBody(c,_),!f&&!c.inferFrom&&(c.returnType=A.createNamedType(A.createSimpleTypeName("void",u.range),[],!1,u.range)));let h=A.createFunctionDeclaration(t,null,0,null,c,_,l,e.range(a,e.pos));return A.createFunctionExpression(h)}parseClassOrInterface(e,t,i,s){let l=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=A.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let c=null;if(e.skip(27)){l&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;l||(c||(c=[]),c.push(d))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(l?(assert(!c),_=A.createInterfaceDeclaration(a,i,t,o,u,null,f,e.range(s,e.pos))):_=A.createClassDeclaration(a,i,t,o,u,c,f,e.range(s,e.pos)),!e.skip(63))do{let d=this.parseClassMember(e,_);if(d)d.kind==66?_.indexSignature=d:(assert(d instanceof Xe),f.push(d));else if(this.skipStatement(e),e.skip(124))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));_.range.end=e.pos,_.overriddenModuleName=this.currentModuleName;let h=_.indexSignature;if(l&&h&&!u&&f.length==0){let d=A.createTypeDeclaration(a,i,t,o,this.recordOf(h),_.range);return d.overriddenModuleName=this.currentModuleName,d}if(l&&!_.indexSignature&&(f.length>0||u)){let d=!0;for(let y=0,m=f.length;y<m;++y)if(f[y].kind!=55){d=!1;break}if(d&&u)o||this.pendingShapes.push(_);else if(d){let y=A.createClassDeclaration(a,i,t,o,null,null,f,_.range);return y.overriddenModuleName=this.currentModuleName,y.isShape=!o,o||this.shapeNames.add(a.text),y}}return _}parseClassExpression(e){let t=e.tokenPos,i;if(e.skipIdentifier()?i=A.createIdentifierExpression(e.readIdentifier(),e.range()):i=A.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,l=A.createClassDeclaration(i,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(63))do{let a=this.parseClassMember(e,l);if(a)a.kind==66?l.indexSignature=a:(assert(l instanceof Xe),s.push(a));else if(this.skipStatement(e),e.skip(124))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return l.range.end=e.pos,A.createClassExpression(l)}parseClassMember(e,t){let i=t.kind==58,s=0,l=null;if(e.skip(117)){s=e.tokenPos;do{let j=this.parseDecorator(e);if(!j)break;l||(l=new Array),l.push(j)}while(e.skip(117));i&&l&&this.error(1206,ue.join(l[0].range,l[l.length-1].range))}let a=t.flags&32768;i&&(a|=268435456);let o=0,u=0,c=t.is(32768);e.skip(12)?(i?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(a|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(a|=32768);let f=0,_=0;e.skip(44)?(i?this.error(1042,e.range(),"public"):(a|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(i?this.error(1042,e.range(),"private"):(a|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(i?this.error(1042,e.range(),"protected"):(a|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let h=0,d=0,y=0,m=0;e.skip(48)?(i?this.error(1042,e.range(),"static"):(a|=32,h=e.tokenPos,d=e.pos),s||(s=e.tokenPos)):(a|=262144,e.skip(0)&&(i||!t.is(128)?this.error(1042,e.range(),"abstract"):(a|=128,y=e.tokenPos,m=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(a|=131072));let g=0,x=0;e.skip(40)&&(i||t.extendsType==null?this.error(1042,e.range(),"override"):(a|=8192,g=e.tokenPos,x=e.pos),s||(s=e.tokenPos));let v=0,S=0;if(e.peek()==45){let j=e.mark();e.next(),e.peek()!=102?(e.discard(j),a|=64,v=e.tokenPos,S=e.pos,s||(s=v)):e.reset(j)}let w=!1;if(e.peek()==2){let j=e.mark();e.next(),e.peek(1)==118&&!e.peekOnNewLine()?(e.discard(j),w=!0,s||(s=e.tokenPos)):e.reset(j)}let R=e.mark(),C=!1,M=!1,G=0,U=0,W=!1,O=0,X=0;e.skip(25)?e.peek(1)==118&&!e.peekOnNewLine()?(a|=2048,M=!0,G=e.tokenPos,U=e.pos,s||(s=G),a&64&&this.error(1042,e.range(v,S),"readonly")):e.reset(R):e.skip(47)?e.peek(1)==118&&!e.peekOnNewLine()?(a|=4096,W=!0,O=e.tokenPos,X=e.pos,s||(s=O),a&64&&this.error(1042,e.range(v,S),"readonly")):e.reset(R):!i&&e.skip(10)&&(a|=524288,C=!0,s||(s=e.tokenPos),a&32&&this.error(1042,e.range(h,d),"static"),a&128&&this.error(1042,e.range(y,m),"abstract"),a&64&&this.error(1042,e.range(v,S),"readonly"));let $=M||W,V;if(C)V=A.createConstructorExpression(e.range());else{if(!$&&e.skip(66)){s||(s=e.tokenPos),a&256?this.error(1042,e.range(f,_),"public"):a&1024?this.error(1042,e.range(f,_),"protected"):a&512&&this.error(1042,e.range(f,_),"private"),a&32&&this.error(1042,e.range(h,d),"static"),a&8192&&this.error(1042,e.range(g,x),"override"),a&128&&this.error(1042,e.range(y,m),"abstract");let j=this.parseIndexSignature(e,a,l);return j?(e.skip(70),j):(a&64&&this.error(1042,e.range(v,S),"readonly"),null)}if(e.skip(119))s||(s=e.tokenPos),V=A.createIdentifierExpression(e.readString(),e.range());else{if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),V=A.createIdentifierExpression(e.readIdentifier(),e.range())}}let re=null;if(e.skip(72)){let j=e.tokenPos;if(re=this.parseTypeParameters(e),!re)return null;C?this.error(1092,e.range(j,e.pos)):$?this.error(1094,e.range(j,e.pos)):a|=65536}if(e.skip(64)){a&4&&this.error(1031,e.range(o,u),"declare");let j=e.tokenPos,ne=this.parseParameters(e,C);if(!ne)return null;let ce=this.parseParametersThis;if(C)for(let jt=0,ii=ne.length;jt<ii;++jt){let st=ne[jt];if(st.isAny(1856)){let Qt=A.createFieldDeclaration(st.name,null,st.flags|262144,st.type,null,st.range);Qt.parameterIndex=jt,st.implicitFieldDeclaration=Qt,t.members.push(Qt)}}else M?ne.length&&this.error(1054,V.range):W?(ne.length!=1&&this.error(1049,V.range),ne.length>0&&ne[0].initializer&&this.error(1052,V.range)):V.text=="constructor"&&this.error(230,V.range,"constructor");let le=null,Te=!1;if(e.skip(102)){if(V.kind==27?this.error(1093,e.range()):W&&this.error(1095,e.range()),le=this.parseType(e,W||V.kind==27),!le)return null}else!W&&V.kind!=27?(Te=!0,le=A.createNamedType(A.createSimpleTypeName("void",e.range(e.pos)),[],!1,e.range(e.pos))):le=A.createOmittedType(e.range(e.pos));let nt=A.createFunctionType(ne,le,ce,!1,e.range(j,e.pos));nt.isAsync=w,w&&(this.needsCallEnv=!0);let Re=null;if(e.skip(62)){if(a&32768?this.error(1183,e.range()):a&128?this.error(1245,e.range(),V.text):i&&this.error(1005,e.range(),";"),this.asyncBodies.push(w),w&&(this.usesExceptions=!0),Re=this.parseBlockStatement(e,!1),this.asyncBodies.pop(),!Re)return null}else!i&&!(a&32896)&&this.error(2391,e.range());Re&&(Re=this.applyParameterPatterns(ne,Re)),Te&&Re&&this.inferReturnFromBody(nt,Re);let ri=A.createMethodDeclaration(V,l,a,re,nt,Re,e.range(s,e.pos));return i&&e.skip(71)||e.skip(70),ri}else if(C)this.error(2390,V.range);else if($)this.error(2391,V.range);else{a&4&&this.error(100,e.range(o,u),"Ambient fields"),a&128&&this.error(1042,e.range(y,m),"abstract"),a&2048&&this.error(1042,e.range(G,U),"get"),a&4096&&this.error(1042,e.range(O,X),"set");let j=null,ne=e.skip(101);e.skip(95)&&(a|=16384);let ce=null;if(e.skip(102)){if(j=this.parseType(e),!j)return null}else ce=e.range();let le=null;if(e.skip(103)){if(a&32768&&this.error(1039,e.range()),le=this.parseExpression(e),!le)return null;a&16384&&this.error(1263,V.range)}!j&&le&&(j=this.typeOfInitializer(le)),!j&&ce&&this.error(1110,ce);let Te=ne&&!le&&j!=null;Te&&(j.kind==1?j.orUndefined=!0:j.isNullable=!0,le=A.createIdentifierExpression("undefined",V.range));let nt=e.range(s,e.pos);(a&16384)!=0&&(i||(a&32768)!=0)&&this.error(1255,nt);let Re=A.createFieldDeclaration(V,l,a,j,le,nt);return Re.isOptional=Te,i&&e.skip(71)||e.skip(70),Re}return null}inferReturnFromBody(e,t){let i=new Array,s=new Map,l=new Array,a=this.hoistedForInference;if(this.hoistedForInference=l,this.collectReturns(t,i,s),this.hoistedForInference=a,i.length==0)return;let o=l;for(let u=Map_values(s),c=0,f=u.length;c<f;++c){let _=u[c];_&&o.push(_)}e.inferLocals=o,e.returnType=A.createOmittedType(e.returnType.range),e.inferFrom=i}collectReturns(e,t,i){switch(e.kind){case 39:{let s=e.expression,l=this.hoistedForInference;if(l&&s.kind==15){let a=s.declaration,o=a.name;o.text.length&&a.arrowKind==0&&l.push(A.createVariableDeclaration(o,null,8,null,s,o.range))}break}case 48:{let s=e.declarations;for(let l=0,a=s.length;l<a;++l){let o=s[l],u=o.name.text;i.has(u)||i.set(u,o)}break}case 44:{let s=e.value;s&&t.push(s);break}case 31:{let s=e.statements;for(let l=0,a=s.length;l<a;++l)this.collectReturns(s[l],t,i);break}case 42:{let s=e;this.collectReturns(s.ifTrue,t,i);let l=s.ifFalse;l&&this.collectReturns(l,t,i);break}case 40:{let s=e.initializer;s&&this.collectReturns(s,t,i),this.collectReturns(e.body,t,i);break}case 41:{this.collectReturns(e.body,t,i);break}case 50:{this.collectReturns(e.body,t,i);break}case 34:{this.collectReturns(e.body,t,i);break}case 45:{let s=e.cases;for(let l=0,a=s.length;l<a;++l){let o=s[l].statements;for(let u=0,c=o.length;u<c;++u)this.collectReturns(o[u],t,i)}break}case 47:{let s=e;for(let o=0,u=s.bodyStatements.length;o<u;++o)this.collectReturns(s.bodyStatements[o],t,i);let l=s.catchStatements;if(l)for(let o=0,u=l.length;o<u;++o)this.collectReturns(l[o],t,i);let a=s.finallyStatements;if(a)for(let o=0,u=a.length;o<u;++o)this.collectReturns(a[o],t,i);break}}}typeOfInitializer(e){let t=e.range;switch(e.kind){case 21:return this.typeOfInitializer(e.expression);case 26:case 14:return A.createNamedType(A.createSimpleTypeName("boolean",t),null,!1,t);case 29:{let i=e;return i.operator!=82&&i.operator!=81?null:this.typeOfInitializer(i.operand)}case 17:{let i=e.literalKind,s=null;return i==1?s=_e(e.range.source)?"number":"i32":i==0?s=_e(e.range.source)?"number":"f64":(i==2||i==3)&&(s="string"),s?A.createNamedType(A.createSimpleTypeName(s,t),null,!1,t):null}case 18:{let i=e;return A.createNamedType(i.typeName,i.typeArguments,!1,t)}case 15:{let i=e.declaration.signature,s=i.parameters;for(let c=0,f=s.length;c<f;++c)if(pe(s[c].type))return null;if(!pe(i.returnType))return i;let l=e.declaration.body,a=l&&l.kind==39?[l.expression]:i.inferFrom;if(!a||!a.length||i.isAsync)return null;let o=assert(this.currentSource),u=this.valueType(a[0],o);if(!u)return null;for(let c=1,f=a.length;c<f;++c){let _=this.valueType(a[c],o);if(!_||Mi(_)!=Mi(u))return null}return A.createFunctionType(s,u,i.explicitThisType,!1,t)}}return null}parseIndexSignature(e,t,i){i&&i.length>0&&this.error(1206,ue.join(i[0].range,i[i.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier(),e.skip(102)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(102)){let a=this.parseType(e);return a?A.createIndexSignature(l,a,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1003,e.range());return null}parseNamespace(e,t,i,s){if(e.skipIdentifier()){let l=A.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let a=new Array,o=A.createNamespaceDeclaration(l,i,t,a,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;a.push(u)}else if(this.skipStatement(e),e.skip(124))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,i){let s=null,l=assert(this.currentSource);if(e.skip(62)){let a=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(a.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(119))s=A.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=A.createExportStatement(a,s,i,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new rs(l,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(119)){s=A.createStringLiteralExpression(e.readString(),e.range());let a=A.createExportStatement(null,s,i,e.range(t,e.pos)),o=assert(a.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new rs(l,s)),this.backlog.push(o)),e.skip(70),a}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=A.createIdentifierExpression(e.readIdentifier(),e.range()),i=null;if(e.skip(1))if(e.skipIdentifier(2))i=A.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return i?A.createExportMember(t,i,ue.join(t.range,i.range)):A.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,i,s){let l=e.readIdentifier(),a=e.range(),o=A.createExportStatement([A.createExportMember(A.createIdentifierExpression(l,a),A.createIdentifierExpression("default",e.range(i,s)),a)],null,!1,e.range(t,e.pos));return e.skip(70),o}parseImport(e){let t=e.tokenPos,i=null,s=null,l=!1;if(e.peek()==55){let a=e.mark();e.next();let o=e.peek();o==62||o==84?e.discard(a):e.reset(a)}if(e.skip(62))for(i=new Array;!e.skip(63);){let a=this.parseImportDeclaration(e);if(!a)return null;if(i.push(a),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=A.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(118,1)){let a=e.readIdentifier(),o=e.range();if(i=[A.createImportDeclaration(A.createIdentifierExpression("default",o),A.createIdentifierExpression(a,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else l=!0;if(l||e.skip(23))if(e.skip(119)){let a=A.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!i),o=A.createWildcardImportStatement(s,a,e.range(t,e.pos))):o=A.createImportStatement(i,a,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new rs(assert(this.currentSource),a)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=A.createIdentifierExpression(e.readIdentifier(),e.range()),i=null;if(e.skip(1))if(e.skipIdentifier())i=A.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return i?A.createImportDeclaration(t,i,ue.join(t.range,i.range)):A.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let i=A.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(103))if(e.skipIdentifier()){let s=A.createIdentifierExpression(e.readIdentifier(),e.range()),l=A.createExportImportStatement(s,i,e.range(t,e.pos));return e.skip(70),l}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let i=e.mark(),s=e.next(),l=null;switch(s){case 4:{l=this.parseBreak(e);break}case 8:{l=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{l=this.parseContinue(e);break}case 15:{l=this.parseDoStatement(e);break}case 22:{l=this.parseForStatement(e);break}case 26:{l=this.parseIfStatement(e);break}case 34:{l=this.parseVariable(e,16,null,e.tokenPos);break}case 57:{l=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{l=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),l=this.parseReturn(e);break}case 70:return A.createEmptyStatement(e.range(e.tokenPos));case 50:{l=this.parseSwitchStatement(e);break}case 52:{l=this.parseThrowStatement(e);break}case 54:{l=this.parseTryStatement(e);break}case 58:{l=this.parseVoidStatement(e);break}case 59:{l=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==118){l=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{if(s==118){let a=e.readIdentifier();if(e.skip(102)){l=this.parseStatement(e),l&&gg(l,a);break}}e.reset(i),l=this.parseExpressionStatement(e);break}}return l?e.discard(i):(e.reset(i),this.skipStatement(e)),l}parseBlockStatement(e,t){let i=e.tokenPos,s=new Array;for(;!e.skip(63);){let a=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(a),s.push(o);else{if(e.token==124)return null;e.reset(a),this.skipStatement(e)}}let l=A.createBlockStatement(s,e.range(i,e.pos));return t&&e.skip(70),l}parseBreak(e){let t=null;e.peek()==118&&!e.peekOnNewLine()&&(e.next(1),t=A.createIdentifierExpression(e.readIdentifier(),e.range()));let i=A.createBreakStatement(t,e.range());return e.skip(70),i}parseContinue(e){let t=null;e.peek()==118&&!e.peekOnNewLine()&&(e.next(1),t=A.createIdentifierExpression(e.readIdentifier(),e.range()));let i=A.createContinueStatement(t,e.range());return e.skip(70),i}parseDoStatement(e){let t=e.tokenPos,i=this.parseStatement(e);if(!i)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let l=A.createDoStatement(i,s,e.range(t,e.pos));return e.skip(70),l}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let i=A.createExpressionStatement(t);return e.skip(70),i}parseForStatement(e){let t=e.tokenPos,i=e.skip(3);if(i){let a=this.asyncBodies;(!a.length||!a[a.length-1])&&this.error(1308,e.range())}let s=this.forAwaits;s.push(i);let l=this.parseForStatementAt(e,t);return s.pop(),l}parseForStatementAt(e,t){if(e.skip(64)){let i=null,s=e.mark(),l=16;e.skip(8)?l=8:e.skip(34)||e.skip(57);let a=e.skip(66);if(a||e.skip(62)){let o=e.tokenPos;e.discard(s);let u=this.parsePattern(e,a);if(!u)return null;let c=e.range(o,e.pos);if(!e.skip(39))return this.error(1005,e.range(),"of"),null;let f=this.parseExpression(e);if(!f)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let _=this.parseStatement(e);if(!_)return null;let h="__d"+(this.destructured++).toString(),d=new Array;this.patternDeclarations(u,h,l,null,d);let y=A.createVariableStatement(null,[A.createVariableDeclaration(A.createIdentifierExpression(h,c),null,8,null,null,c)],c),m=[A.createVariableStatement(null,d,c),_];return this.lowerForOf(y,f,A.createBlockStatement(m,_.range),e.range(t,e.pos))}if(e.skipIdentifier()){let o=A.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(29)){e.discard(s);let u=this.parseExpression(e);if(!u)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let c=this.parseStatement(e);if(!c)return null;let f=e.range(t,e.pos),_=A.createCallExpression(A.createPropertyAccessExpression(A.createIdentifierExpression("Object",o.range),A.createIdentifierExpression("keys",o.range),o.range),null,[u],u.range),h=A.createVariableStatement(null,[A.createVariableDeclaration(o,null,l,null,null,o.range)],o.range);return this.lowerForOf(h,_,c,f)}}if(e.reset(s),e.skip(8))i=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))i=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(57))i=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(i=this.parseExpressionStatement(e),!i))return null;if(i){if(e.skip(39)){if(i.kind==39)return i.expression.kind!=7?(this.error(1003,i.range),null):this.parseForOfStatement(e,t,i);if(i.kind==48){let o=i.declarations;for(let u=0,c=o.length;u<c;++u){let _=o[u].initializer;_&&this.error(1190,_.range)}return this.parseForOfStatement(e,t,i)}return this.error(1003,i.range),null}if(i.kind==48){let o=i.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u];f.initializer||(f.flags&8?this.error(1155,f.name.range):f.type||this.error(1110,f.name.range.atEnd))}}}if(e.token==70){let o=null;if(!e.skip(70)&&(o=this.parseExpressionStatement(e),!o))return null;if(e.token==70){let u=null;if(!e.skip(65)){if(u=this.parseExpression(e),!u)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let c=this.parseStatement(e);return c?A.createForStatement(i,o?o.expression:null,u,c,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,i){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let l=this.parseStatement(e);return l?this.lowerForOf(i,s,l,e.range(t,e.pos)):null}lowerForOf(e,t,i,s){if(e.kind==48){let l=e.declarations;if(l.length==1&&!l[0].initializer){let a=this.forOfCounter++,o=A.createIdentifierExpression("__of"+a.toString(),s),u=A.createIdentifierExpression("__ofi"+a.toString(),s),c=A.createNamedType(A.createSimpleTypeName("i32",s),null,!1,s),f=A.createCallExpression(A.createIdentifierExpression("__forOf",t.range),null,[t],t.range),_=A.createVariableStatement(null,[A.createVariableDeclaration(o,null,8,null,f,s)],s),h=A.createVariableStatement(null,[A.createVariableDeclaration(u,null,16,c,A.createIntegerLiteralExpression(i64_new(0),s),s)],s),d=A.createBinaryExpression(72,A.createIdentifierExpression(u.text,s),A.createPropertyAccessExpression(A.createIdentifierExpression(o.text,s),A.createIdentifierExpression("length",s),s),s),y=A.createUnaryPostfixExpression(87,A.createIdentifierExpression(u.text,s),s),m=A.createElementAccessExpression(A.createIdentifierExpression(o.text,s),A.createIdentifierExpression(u.text,s),s),g=this.forAwaits;g.length&&g[g.length-1]&&(m=A.createCallExpression(A.createIdentifierExpression("__await",s),null,[m],s)),l[0].initializer=m;let x=A.createBlockStatement([e,i],s),v=A.createForStatement(h,d,y,x,s);return A.createBlockStatement([_,v],s)}}return A.createForOfStatement(e,t,i,s)}determineNextPrecedence(e){let t=e.peek();if(t==118&&e.source.text.startsWith("satisfies",e.nextTokenPos)){let i=e.nextTokenPos+9,s=e.source.text;if(i>=s.length||!ir(s.charCodeAt(i)))return 12}return Y2(t)}parseIfStatement(e){let t=e.tokenPos;if(e.skip(64)){let i=this.parseExpression(e);if(!i)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let l=null;return e.skip(16)&&(l=this.parseStatement(e),!l)?null:A.createIfStatement(i,s,l,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(64)){let i=this.parseExpression(e);if(!i)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let a=this.parseSwitchCase(e);if(!a)return null;s.push(a)}let l=A.createSwitchStatement(i,s,e.range(t,e.pos));return e.skip(70),l}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,i,s;if(e.skip(5)){let l=this.parseExpression(e);if(!l)return null;if(e.skip(102)){for(i=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;i.push(s)}return A.createSwitchCase(l,i,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(102)){for(i=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;i.push(s)}return A.createSwitchCase(null,i,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,i=this.parseExpression(e);if(!i)return null;let s=A.createThrowStatement(i,e.range(t,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,i;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){if(i=this.parseStatement(e),!i)return null;s.push(i)}let l=null,a=null,o=null;if(e.skip(6)){if(e.skip(64)){if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(l=A.createIdentifierExpression(e.readIdentifier(),e.range()),e.skip(102)&&!this.parseType(e))return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(a=[];!e.skip(63);){if(i=this.parseStatement(e),!i)return null;a.push(i)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(i=this.parseStatement(e),!i)return null;o.push(i)}}if(!(a||o))return this.error(1005,e.range(),"catch"),null;let u=A.createTryStatement(s,l,a,o,e.range(t,e.pos));return this.usesExceptions=!0,e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,i,s){if(e.skipIdentifier()){let l=A.createIdentifierExpression(e.readIdentifier(),e.range()),a=null;if(e.skip(72)){if(a=this.parseTypeParameters(e),!a)return null;t|=65536}if(e.skip(103)){e.skip(93);let o=this.parseType(e);if(!o)return null;if(ts(l.text,o))return this.error(2456,l.range,l.text),null;let u=A.createTypeDeclaration(l,i,t,a,o,e.range(s,e.pos)),c=o.kind==1&&!a?o.stringLiterals:null,f=this.literalAliases,_=f.has(l.text)?f.get(l.text):c;return f.set(l.text,c&&_&&_.join("|")==c.join("|")?c:null),e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let i=e.tokenPos;assert(e.next()==119);let s=e.readString(),l=A.createModuleDeclaration(s,t,e.range(i,e.pos));return this.currentModuleName=s,e.skip(70),l}parseVoidStatement(e){let t=e.tokenPos,i=this.parseExpression(e,21);if(!i)return null;let s=A.createVoidStatement(i,e.range(t,e.pos));return e.skip(70),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(64)){let i=this.parseExpression(e);if(!i)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let l=A.createWhileStatement(i,s,e.range(t,e.pos));return e.skip(70),l}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),i=e.tokenPos;if(t==118&&e.source.text.startsWith("delete",e.pos)){let s=e.mark(),l=e.readIdentifier(),a=e.peek();l=="delete"&&(a==118||a==51||a==64)?(e.discard(s),t=14):e.reset(s)}switch(t){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?A.createUnaryPrefixExpression(t,s,e.range(i,e.pos)):null}case 3:{let s=e.range(i,e.pos),l=this.parseExpression(e,17);if(!l)return null;let a=this.asyncBodies;return(!a.length||!a[a.length-1])&&this.error(1308,s),A.createCallExpression(A.createIdentifierExpression("__await",s),null,[l],e.range(i,e.pos))}case 2:{let s=e.peek(1);if((s==64||s==24||s==118)&&!e.peekOnNewLine()){this.pendingAsync=!0;let l=this.parseExpressionStart(e);return this.pendingAsync&&(this.pendingAsync=!1,this.error(1005,e.range(i,e.pos),"=>")),l}return this.error(1109,e.range(i,e.pos)),null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return A.createUnaryPrefixExpression(t,s,e.range(i,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let l=null,a=null;if(e.skip(64)||(l=this.tryParseTypeArgumentsBeforeArguments(e))){if(a=this.parseArguments(e),!a)return null}else a=[];return a.length&&s.identifier.text=="Promise"&&!s.next&&(this.needsCallEnv=!0),A.createNewExpression(s,l,a,e.range(i,e.pos))}case 38:return A.createNullExpression(e.range());case 53:return A.createTrueExpression(e.range());case 20:return A.createFalseExpression(e.range());case 51:return A.createThisExpression(e.range());case 10:return A.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,A.createEmptyIdentifierExpression(e.range(i)),[],null,1);let s=e.mark(),l=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 66:case 62:{if(this.skipBraces(e,e.token)){let o=e.next();if(o==102||o==103||o==71||o==65&&(e.skip(80)||e.skip(102)))return e.reset(s),this.parseFunctionExpression(e)}l=!1;break}case 118:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(102)&&this.parseType(e,!0,!0)==null){l=!1;break}if(!e.skip(80)){l=!1;break}}case 102:return e.reset(s),this.parseFunctionExpression(e);case 101:{if(e.skip(102)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);l=!1;break}case 71:break;default:{l=!1;break}}break}default:{l=!1;break}}while(l);e.reset(s);let a=this.parseExpression(e);return a?e.skip(65)?(a=A.createParenthesizedExpression(a,e.range(i,e.pos)),this.maybeParseCallExpression(e,a)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let l;if(e.peek()==71)l=A.createOmittedExpression(e.range(e.pos));else if(l=this.parseExpression(e,2),!l)return null;if(s.push(l),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return A.createArrayLiteralExpression(s,e.range(i,e.pos))}case 62:{let s=e.tokenPos,l=new Array,a=new Array,o;for(;!e.skip(63);){if(e.skip(69)){let c=e.tokenPos,f=this.parseExpression(e,2);if(!f)return null;if(l.push(A.createIdentifierExpression("...",e.range(c,c+3))),a.push(f),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}continue}if(e.skipIdentifier())o=A.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(119))return this.error(1003,e.range()),null;o=A.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(l.push(o),e.skip(102)){let c=this.parseExpression(e,2);if(!c)return null;a.push(c)}else if(e.skip(64)){let c=e.pos,f=this.parseParameters(e);if(!f)return null;let _=this.parseFunctionExpressionCommon(e,A.createEmptyIdentifierExpression(o.range),f,this.parseParametersThis,0,o.range.start,c);if(!_)return null;a.push(_)}else if(!o.isQuoted)a.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let u=A.createObjectLiteralExpression(l,a,e.range(s,e.pos));return u.inferredType=this.inferLiteralType(u,e.source),u}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let l=this.parseExpression(e,19);return l?A.createAssertionExpression(0,l,s,e.range(i,e.pos)):null}case 118:{let s=e.readIdentifier();if(s=="null")return A.createNullExpression(e.range());let l=A.createIdentifierExpression(s,e.range(i,e.pos));return e.skip(122)?this.parseTemplateLiteral(e,l):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,A.createEmptyIdentifierExpression(e.range(i)),[A.createParameter(0,l,A.createOmittedType(l.range.atEnd),null,l.range)],null,2,i):this.maybeParseCallExpression(e,l,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=A.createSuperExpression(e.range(i,e.pos));return this.maybeParseCallExpression(e,s)}case 119:return A.createStringLiteralExpression(e.readString(),e.range(i,e.pos));case 122:return this.parseTemplateLiteral(e);case 120:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),A.createIntegerLiteralExpression(s,e.range(i,e.pos))}case 121:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),A.createFloatLiteralExpression(s,e.range(i,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?A.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(i,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==124?this.error(1126,e.range(i)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(72))return null;let i=e.tokenPos,s=null;do{if(e.peek()==73)break;let l=this.parseType(e,!0,!0);if(!l)return e.reset(t),null;s?s.push(l):s=[l]}while(e.skip(71));if(e.skip(73)){let l=e.pos;if(e.skip(64))return s||this.error(1099,e.range(i,l)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(65);){let i=this.parseExpression(e,2);if(!i)return null;if(t.push(i),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return t}parseExpression(e,t=1){assert(t!=0);let i=this.parseExpressionStart(e);if(!i)return null;let s=i.range.start,l;for(;(l=this.determineNextPrecedence(e))>=t;){let a=e.next();switch(a){case 118:{e.readIdentifier();let o=this.parseType(e);if(!o)return null;i=A.createAssertionExpression(1,i,o,e.range(s,e.pos));break}case 1:{if(e.skip(8))i.range=e.range(s,e.pos);else{let o=this.parseType(e);if(!o)return null;i=A.createAssertionExpression(1,i,o,e.range(s,e.pos))}break}case 95:{i=A.createAssertionExpression(2,i,null,e.range(s,e.pos)),i=this.maybeParseCallExpression(e,i);break}case 30:{let o=this.parseType(e);if(!o)return null;i=A.createInstanceOfExpression(i,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;i=A.createElementAccessExpression(i,o,e.range(s,e.pos)),i=this.maybeParseCallExpression(e,i);break}case 87:case 88:{i.kind!=7&&i.kind!=13&&i.kind!=22&&this.error(2357,i.range),i=A.createUnaryPostfixExpression(a,i,e.range(s,e.pos));break}case 101:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(102))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;i=A.createTernaryExpression(i,o,u,e.range(s,e.pos));break}case 71:{let o=[i];do{if(i=this.parseExpression(e,2),!i)return null;o.push(i)}while(e.skip(71));i=A.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=A.createIdentifierExpression(e.readIdentifier(),e.range());i=A.createPropertyAccessExpression(i,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,l+1);if(!o)return null;if(o.kind==10){if(i=this.joinPropertyCall(e,s,i,o),!i)return null}else return this.error(1003,o.range),null}if(e.skip(122)){if(i=this.parseTemplateLiteral(e,i),!i)return null}else i=this.maybeParseCallExpression(e,i,!0);break}case 100:{if(e.skip(64)){let o=this.parseArguments(e);if(!o)return null;let u=A.createCallExpression(i,null,o,e.range(s,e.pos));u.isOptionalChain=!0,i=this.maybeParseCallExpression(e,u)}else if(e.skip(66)){let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;let u=A.createElementAccessExpression(i,o,e.range(s,e.pos));u.isOptionalChain=!0,i=this.maybeParseCallExpression(e,u)}else if(e.skipIdentifier(2)){let o=A.createIdentifierExpression(e.readIdentifier(),e.range()),u=A.createPropertyAccessExpression(i,o,e.range(s,e.pos));u.isOptionalChain=!0,i=this.maybeParseCallExpression(e,u,!0)}else return this.error(1003,e.range()),null;break}case 103:case 104:case 105:case 107:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 115:case 114:case 116:case 83:{let o=this.parseExpression(e,l);if(!o)return null;i=A.createBinaryExpression(a,i,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 99:case 29:{let o=this.parseExpression(e,l+1);if(!o)return null;i=A.createBinaryExpression(a,i,o,e.range(s,e.pos));break}default:assert(!1)}}return i}skipBraces(e,t=62){let i=t==66?67:63,s=1;for(;s>0;){let l=e.next();switch(l==t?++s:l==i&&--s,l){case 124:return!1;case 118:{e.readIdentifier();break}case 119:case 122:{e.readString();break}case 120:{e.readInteger();break}case 121:{e.readFloat();break}}}return!0}parseTemplateLiteral(e,t=null){let i=t?t.range.start:e.tokenPos,s=new Array,l=new Array,a=new Array;for(s.push(e.readString(0,t!=null)),l.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(a.push(o),!e.skip(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),l.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return A.createTemplateLiteralExpression(t,s,l,a,e.range(i,e.pos))}joinPropertyCall(e,t,i,s){let l=s.expression;switch(l.kind){case 7:{s.expression=A.createPropertyAccessExpression(i,l,e.range(t,e.pos));break}case 10:{let a=this.joinPropertyCall(e,t,i,l);if(!a)return null;s.expression=a,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,i=!1){let s=null;for(;e.skip(64)||i&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let l=this.parseArguments(e);if(!l)break;t=A.createCallExpression(t,s,l,e.range(t.range.start,e.pos)),i=!1}return t}checkASI(e){let t=e.peek();t==124||t==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==124||t==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 118:{e.readIdentifier();break}case 119:case 122:{e.readString();break}case 120:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 121:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,i=!0;do switch(e.next()){case 124:{this.error(1005,e.range(),"}"),i=!1;break}case 62:{++t;break}case 63:{--t,t||(i=!1);break}case 118:{e.readIdentifier();break}case 119:{e.readString();break}case 122:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 120:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 121:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(i)}},yg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(yg||{});function Y2(r){switch(r){case 71:return 1;case 103:case 104:case 105:case 107:case 106:case 108:case 109:case 110:case 111:case 112:case 113:case 115:case 114:case 116:return 4;case 101:return 5;case 98:case 99:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 100:case 66:case 95:return 20}return 0}function ts(r,n){switch(n.kind){case 1:{if(n.name.identifier.text==r)return!0;let e=n.typeArguments;if(e){for(let t=0,i=e.length;t<i;t++)if(ts(r,e[t]))return!0}break}case 2:{let e=n;if(ts(r,e.returnType))return!0;let t=e.parameters;for(let i=0,s=t.length;i<s;i++)if(ts(r,t[i].type))return!0;break}case 3:{let e=n.elements;for(let t=0,i=e.length;t<i;t++)if(ts(r,e[t]))return!0;break}default:assert(!1)}return!1}function Ja(r){if(r.kind!=1)return!1;let n=r,e=n.typeArguments;return n.name.identifier.text=="Array"&&!n.name.next&&e!=null&&e.length==1}function mg(r){return r=="bool"||r=="boolean"}function $2(r){switch(r){case"number":case"boolean":case"bool":case"i8":case"i16":case"i32":case"i64":case"isize":case"u8":case"u16":case"u32":case"u64":case"usize":case"f32":case"f64":case"v128":return!0}return!1}function Mi(r){if(r.kind!=1)return"?";let n=r,e=n.name.identifier.text,t=n.name.next;for(;t;)e+="."+t.identifier.text,t=t.next;let i=n.typeArguments;if(i&&i.length){let s=new Array;for(let l=0,a=i.length;l<a;++l)s.push(Mi(i[l]));e+="<"+s.join(",")+">"}return n.isNullable?e+"|null":e}function gg(r,n){switch(r.kind){case 40:{r.label=n;break}case 50:{r.label=n;break}case 34:{r.label=n;break}case 31:{let e=r.statements;e.length&&gg(e[e.length-1],n);break}}}function nc(r,n){let e=A.createNamedType(A.createSimpleTypeName("i32",n),null,!1,n);return A.createAssertionExpression(0,A.createIntegerLiteralExpression(i64_new(r),n),e,n)}function J2(r){let n=r.initializer;return n!=null&&n.kind==17&&n.literalKind==2}var bg=16,zi=bg-1,eo=class{constructor(n,e,t,i,s){this.localFile=n;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=i;this.foreignPathAlt=s}},to=class{constructor(n,e,t,i){this.localIdentifier=n;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=i}},ac=class{constructor(n,e,t){this.foreignPath=n;this.foreignPathAlt=e;this.pathLiteral=t}},Ce=(V=>(V[V.Invalid=0]="Invalid",V[V.IndexedGet=1]="IndexedGet",V[V.IndexedSet=2]="IndexedSet",V[V.UncheckedIndexedGet=3]="UncheckedIndexedGet",V[V.UncheckedIndexedSet=4]="UncheckedIndexedSet",V[V.Add=5]="Add",V[V.Sub=6]="Sub",V[V.Mul=7]="Mul",V[V.Div=8]="Div",V[V.Rem=9]="Rem",V[V.Pow=10]="Pow",V[V.BitwiseAnd=11]="BitwiseAnd",V[V.BitwiseOr=12]="BitwiseOr",V[V.BitwiseXor=13]="BitwiseXor",V[V.BitwiseShl=14]="BitwiseShl",V[V.BitwiseShr=15]="BitwiseShr",V[V.BitwiseShrU=16]="BitwiseShrU",V[V.Eq=17]="Eq",V[V.Ne=18]="Ne",V[V.Gt=19]="Gt",V[V.Ge=20]="Ge",V[V.Lt=21]="Lt",V[V.Le=22]="Le",V[V.Plus=23]="Plus",V[V.Minus=24]="Minus",V[V.Not=25]="Not",V[V.BitwiseNot=26]="BitwiseNot",V[V.PrefixInc=27]="PrefixInc",V[V.PrefixDec=28]="PrefixDec",V[V.PostfixInc=29]="PostfixInc",V[V.PostfixDec=30]="PostfixDec",V))(Ce||{});(i=>{function r(s,l){switch(assert(l.length),s){case 2:case 3:{switch(l.charCodeAt(0)){case 91:{if(l=="[]")return 1;if(l=="[]=")return 2;break}case 123:{if(l=="{}")return 3;if(l=="{}=")return 4;break}case 43:{if(l=="+")return 5;break}case 45:{if(l=="-")return 6;break}case 42:{if(l=="*")return 7;if(l=="**")return 10;break}case 47:{if(l=="/")return 8;break}case 37:{if(l=="%")return 9;break}case 38:{if(l=="&")return 11;break}case 124:{if(l=="|")return 12;break}case 94:{if(l=="^")return 13;break}case 61:{if(l=="==")return 17;break}case 33:{if(l=="!=")return 18;break}case 62:{if(l==">")return 19;if(l==">=")return 20;if(l==">>")return 15;if(l==">>>")return 16;break}case 60:{if(l=="<")return 21;if(l=="<=")return 22;if(l=="<<")return 14;break}}break}case 4:{switch(l.charCodeAt(0)){case 43:{if(l=="+")return 23;if(l=="++")return 27;break}case 45:{if(l=="-")return 24;if(l=="--")return 28;break}case 33:{if(l=="!")return 25;break}case 126:{if(l=="~")return 26;break}}break}case 5:{switch(l.charCodeAt(0)){case 43:{if(l=="++")return 29;break}case 45:{if(l=="--")return 30;break}}break}}return 0}i.fromDecorator=r;function n(s){switch(s){case 81:case 104:return 5;case 82:case 105:return 6;case 84:case 106:return 7;case 85:case 108:return 8;case 86:case 109:return 9;case 83:case 107:return 10;case 92:case 113:return 11;case 93:case 114:return 12;case 94:case 115:return 13;case 89:case 110:return 14;case 90:case 111:return 15;case 91:case 112:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}i.fromBinaryToken=n;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}i.fromUnaryPrefixToken=e;function t(s){switch(s){case 87:return 29;case 88:return 30}return 0}i.fromUnaryPostfixToken=t})(Ce||={});var ns=class extends Qe{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Bt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new is(this.diagnostics,this.sources),this.resolver=new Yn(this);let i=new as(this,ye.native);this.nativeFile=i,this.filesByName.set(i.internalName,i),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(z.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(z.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(z.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(z.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(z.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(z.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(z.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(z.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(z.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(z.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(z.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(z.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(z.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(z.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(z.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(z.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(z.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(z.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(z.String)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(z.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(z.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(z.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(z.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(z.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(z.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(z.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(z.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(z.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(z.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(z.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(z.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(z.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(z.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(z.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(z.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(z.OBJECT)),e}getSource(e){let t=this.sources;for(let i=0;i<t.length;++i){let s=t[i];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+zi&~zi}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=$p(e);if(t){let i=this.instancesByName;if(i.has(t)){let s=assert(i.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+zi&~zi)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),bg),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let i=this.computeBlockStart(e),s=this.blockOverhead,l=(3*this.options.usizeType.byteSize+s+zi&~zi)-s;i<l&&(i=l);let a=1<<30;if(i>=a||(i&3)!=0)throw new Error("invalid block size");return i}makeNativeVariableDeclaration(e,t=0){let i=ye.native.range;return A.createVariableDeclaration(A.createIdentifierExpression(e,i),null,t,null,null,i)}makeNativeTypeDeclaration(e,t=0){let i=ye.native.range,s=A.createIdentifierExpression(e,i);return A.createTypeDeclaration(s,null,t,null,A.createOmittedType(i),i)}makeNativeFunctionDeclaration(e,t=0){let i=ye.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=A.createFunctionType([],A.createNamedType(A.createSimpleTypeName(z.void_,i),null,!1,i),null,!1,i)),A.createFunctionDeclaration(A.createIdentifierExpression(e,i),null,t,null,s,null,0,i)}makeNativeNamespaceDeclaration(e,t=0){let i=ye.native.range;return A.createNamespaceDeclaration(A.createIdentifierExpression(e,i),null,t,[],i)}makeNativeFunction(e,t,i=this.nativeFile,s=0,l=0){return new Je(e,new Le(e,i,this.makeNativeFunctionDeclaration(e,s),l),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0,this.parser.finishRecords(),this.parser.finishShapes();let e=this.options;this.registerNativeType(z.i8,p.i8),this.registerNativeType(z.i16,p.i16),this.registerNativeType(z.i32,p.i32),this.registerNativeType(z.i64,p.i64),this.registerNativeType(z.isize,e.isizeType),this.registerNativeType(z.u8,p.u8),this.registerNativeType(z.u16,p.u16),this.registerNativeType(z.u32,p.u32),this.registerNativeType(z.u64,p.u64),this.registerNativeType(z.usize,e.usizeType),this.registerNativeType(z.bool,p.bool),this.registerNativeType(z.f32,p.f32),this.registerNativeType(z.f64,p.f64),this.registerNativeType(z.void_,p.void),this.registerNativeType(z.number,p.f64),this.registerNativeType("float",p.f64),this.registerNativeType(z.boolean,p.bool),this.nativeFile.add(z.native,new rt(z.native,this.nativeFile,this.makeNativeTypeDeclaration(z.native,65538),512)),this.nativeFile.add(z.indexof,new rt(z.indexof,this.nativeFile,this.makeNativeTypeDeclaration(z.indexof,65538),512)),this.nativeFile.add(z.valueof,new rt(z.valueof,this.nativeFile,this.makeNativeTypeDeclaration(z.valueof,65538),512)),this.nativeFile.add(z.returnof,new rt(z.returnof,this.nativeFile,this.makeNativeTypeDeclaration(z.returnof,65538),512)),this.nativeFile.add(z.nonnull,new rt(z.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(z.nonnull,65538),512)),this.registerNativeType(z.v128,p.v128),this.registerNativeType(z.ref_func,p.func),this.registerNativeType(z.ref_extern,p.extern),this.registerNativeType(z.ref_any,p.any),this.registerNativeType(z.ref_eq,p.eq),this.registerNativeType(z.ref_struct,p.struct),this.registerNativeType(z.ref_array,p.array),this.registerNativeType(z.ref_i31,p.i31),this.registerNativeType(z.ref_string,p.string),this.registerNativeType(z.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(z.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(z.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(z.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(z.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(z.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(z.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(z.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(z.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(z.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(z.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(z.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(z.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(z.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(z.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(z.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(z.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(16384)?1:0,0));let t=new Array,i=new Map,s=new Map,l=new Array,a=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new as(this,f);this.filesByName.set(_.internalName,_);let h=f.statements;for(let d=0,y=h.length;d<y;++d){let m=h[d];switch(m.kind){case 36:{this.initializeExports(m,_,i,s);break}case 37:{this.initializeExportDefault(m,_,l,a);break}case 43:{this.initializeImports(m,_,t,i);break}case 48:{this.initializeVariables(m,_);break}case 52:{this.initializeClass(m,_,l,a);break}case 53:{this.initializeEnum(m,_);break}case 56:{this.initializeFunction(m,_);break}case 58:{this.initializeInterface(m,_,l);break}case 60:{this.initializeNamespace(m,_,l,a);break}case 61:{this.initializeTypeDefinition(m,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],h=assert(s.get(_));for(let d=0,y=h.length;d<y;++d){let m=unchecked(h[d]),g=this.lookupForeignFile(m.foreignPath,m.foreignPathAlt);if(!g){this.error(6054,m.pathLiteral.range,m.pathLiteral.value);continue}_.ensureExportStar(g)}}do{let u=0,c=!1;for(;u<t.length;){let f=t[u],_=f.localIdentifier,h=f.foreignIdentifier,d=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(h){let y=this.lookupForeign(h.text,d,i);y?(f.localFile.add(_.text,y,_),t.splice(u,1),c=!0):++u}else{let y=f.localFile,m=_.text;y.add(m,d.asAliasNamespace(m,y,_),_),t.splice(u,1),c=!0}}if(!c){for(let f=0,_=t.length;f<_;++f){let h=t[f],d=h.foreignIdentifier;d&&this.error(2305,d.range,h.foreignPath,d.text)}break}}while(!0);for(let u=Map_keys(i),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),h=assert(i.get(_));for(let d=Map_keys(h),y=0,m=d.length;y<m;++y){let g=unchecked(d[y]),x=assert(h.get(g)),v=x.localIdentifier.text,S=x.foreignPath;if(S){let w=assert(this.lookupForeignFile(S,assert(x.foreignPathAlt))),R=this.lookupForeign(v,w,i);R?_.ensureExport(g,R):this.error(2305,x.localIdentifier.range,S,v)}else{let w=_.getMember(v);if(w)_.ensureExport(g,w);else{let R=this.lookup(v);R&&ls(R.kind)?_.ensureExport(g,R):this.error(2305,x.foreignIdentifier.range,_.internalName,x.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,z.I8),this.registerWrapperClass(p.i16,z.I16),this.registerWrapperClass(p.i32,z.I32),this.registerWrapperClass(p.i64,z.I64),this.registerWrapperClass(e.isizeType,z.Isize),this.registerWrapperClass(p.u8,z.U8),this.registerWrapperClass(p.u16,z.U16),this.registerWrapperClass(p.u32,z.U32),this.registerWrapperClass(p.u64,z.U64),this.registerWrapperClass(e.usizeType,z.Usize),this.registerWrapperClass(p.bool,z.Bool),this.registerWrapperClass(p.f32,z.F32),this.registerWrapperClass(p.f64,z.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,z.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,z.RefFunc),this.registerWrapperClass(p.extern,z.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,z.RefAny),this.registerWrapperClass(p.eq,z.RefEq),this.registerWrapperClass(p.struct,z.RefStruct),this.registerWrapperClass(p.array,z.RefArray),this.registerWrapperClass(p.i31,z.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,z.RefString));let o=this.resolver;for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.extendsNode),h=o.resolveTypeName(_.name,null,f.parent);if(h){if(f.kind==6)if(h.kind==6){let d=h;d.hasDecorator(32)&&this.error(211,_.range,d.identifierNode.text),d.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,ue.join(f.identifierNode.range,_.range)),f.extends(d)?this.error(2506,d.identifierNode.range,d.identifierNode.text):f.basePrototype=d}else this.error(1311,_.range);else if(f.kind==8)if(h.kind==8){let d=h;f.extends(d)?this.error(2506,d.identifierNode.range,d.identifierNode.text):f.basePrototype=d}else this.error(2312,_.range)}}for(let u=0,c=l.length;u<c;u++){let f=l[u],_=f.instanceMembers;if(_){let h=Map_values(_);for(let d=0,y=h.length;d<y;d++){let m=h[d],g=m.declaration;if(g.is(8192)){let x=f.basePrototype,v=!1;for(;x;){let S=x.instanceMembers;if(S&&S.has(m.name)){v=!0;break}x=x.basePrototype}if(!v){let S=assert(f.basePrototype);this.error(4117,g.name.range,S.name)}}}}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.implementsNodes);for(let h=0,d=_.length;h<d;++h){let y=_[h],m=o.resolveTypeName(y.name,null,f.parent);if(m)if(m.kind==8){let g=m,x=f.interfacePrototypes;x||(f.interfacePrototypes=x=new Array),x.push(g)}else m.kind==6&&!f.basePrototype&&m.declaration.kind==52&&m.declaration.isShape?(f.basePrototype=m,f.implicitlyExtendsObject=!1,f.declaration.extendsType=y,_.splice(h--,1),--d):this.error(2422,y.range)}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype,h=f.interfacePrototypes;if(_&&this.processOverrides(f,_),h)for(let d=0,y=h.length;d<y;++d)this.processOverrides(f,h[d]),this.processInheritedImplementations(f,h[d])}{let u=e.globalAliases;u||(u=new Map),u.has(z.abort)||u.set(z.abort,b.abort),u.has(z.trace)||u.set(z.trace,b.trace),u.has(z.seed)||u.set(z.seed,b.seed),u.has(z.Math)||u.set(z.Math,z.NativeMath),u.has(z.Mathf)||u.set(z.Mathf,z.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),d=changetype(u.get(h));if(assert(d!=null),!d.length){this.elementsByName.delete(h);continue}let y=d.charCodeAt(0);if(y>=48&&y<=57)this.registerConstantInteger(h,p.i32,i64_new(parseInt(d,10)));else{let m=this.elementsByName;m.has(d)?m.set(h,assert(m.get(d))):this.error(111,null,d)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,t){let i=e.instanceMembers;if(i){let s=Map_values(i),l=null;do{let a=t.instanceMembers;if(a)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(a.has(_.name)){let h=assert(a.get(_.name));this.doProcessOverride(e,_,t,h)}}let o=t.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=t&&this.processOverrides(e,_)}let u=t.basePrototype;if(!u||(l||(l=new Set),l.add(t),l.has(u)))break;t=u}while(!0)}}processInheritedImplementations(e,t){let i=e.instanceMembers,s=new Set,l=t;for(;l&&!s.has(l);){s.add(l);let a=l.instanceMembers;if(a)for(let o=Map_values(a),u=0,c=o.length;u<c;++u){let f=o[u];if(i&&i.has(f.name))continue;let _=e.basePrototype,h=new Set;for(;_&&!h.has(_);){h.add(_);let d=_.instanceMembers;if(d&&d.has(f.name)){this.doProcessOverride(_,assert(d.get(f.name)),l,f);break}_=_.basePrototype}}l=l.basePrototype}}doProcessOverride(e,t,i,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let l=t,a=s,o=l.is(65536),u=a.is(65536);if(o!=u){this.errorRelated(242,l.identifierNode.range,a.identifierNode.range,l.name);return}l.visibilityEquals(a)||this.errorRelated(2385,l.identifierNode.range,a.identifierNode.range),s.set(268435456);let c=a.unboundOverrides;c||(a.unboundOverrides=c=new Set),c.add(t);let f=a.instances;if(f)for(let _=Map_values(f),h=0,d=_.length;h<d;++h)_[h].set(268435456)}else if(t.kind==10&&s.kind==10){let l=t,a=s;if(l.visibilityEquals(a)||this.errorRelated(2385,l.identifierNode.range,a.identifierNode.range),a.parent.kind!=8){let c=l.isField;if(c!=a.isField){c?this.errorRelated(2610,l.identifierNode.range,a.identifierNode.range,l.name,i.internalName,e.internalName):this.errorRelated(2611,l.identifierNode.range,a.identifierNode.range,l.name,i.internalName,e.internalName);return}else if(c)return}a.set(268435456);let o=a.getterPrototype;if(o){o.set(268435456);let c=l.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),h=0,d=_.length;h<d;++h)_[h].set(268435456)}let u=a.setterPrototype;if(u&&l.setterPrototype){u.set(268435456);let c=l.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),h=0,d=_.length;h<d;++h)_[h].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,i.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let i=this.lookup(e);if(!i)throw new Error(`Missing standard library component: ${e}`);if(i.kind!=t)throw Error(`Invalid standard library component kind: ${e}`);return i}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),i=this.resolver.resolveClass(t,null);if(!i)throw new Error(`Invalid standard library class: ${e}`);return i}requireFunction(e,t=null){let i=this.require(e,4),s=this.resolver.resolveFunction(i,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),l=0,a=s.length;l<a;++l){let o=unchecked(s[l]);this.markModuleExport(o)}let i=e.exportsStar;if(i)for(let s=0,l=i.length;s<l;++s)this.markModuleExports(i[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let i=e.instanceMembers;if(i)for(let s=Map_values(i),l=0,a=s.length;l<a;++l){let o=unchecked(s[l]);this.markModuleExport(o)}break}case 10:{let i=e,s=i.getterPrototype;s&&this.markModuleExport(s);let l=i.setterPrototype;l&&this.markModuleExport(l);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]);this.markModuleExport(a)}}markModuleImport(e,t,i){i.set(2097152);let s=this.moduleImports,l;s.has(e)?l=assert(s.get(e)):(l=new Map,s.set(e,l)),l.set(t,i)}registerNativeType(e,t){let i=new rt(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);i.setType(t),this.nativeFile.add(e,i)}registerWrapperClass(e,t){let i=this.wrapperClasses;assert(!e.isInternalReference&&!i.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let l=assert(this.resolver.resolveClass(s,null));l.wrappedType=e,i.set(e,l)}registerConstantInteger(e,t,i){assert(t.isIntegerInclReference);let s=new Mr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(i,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,i){assert(t.isFloatValue);let s=new Mr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(i,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let i=this.elementsByName;if(i.has(e)){let s=assert(i.get(e));if(s!=t){let l=cc(s,t);if(!l)return ls(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=l}}return i.set(e,t),t}lookupForeignFile(e,t){let i=this.filesByName;return i.has(e)?assert(i.get(e)):i.has(t)?assert(i.get(t)):null}lookupForeign(e,t,i){do{let l=t.lookupExport(e);if(l)return l;if(i.has(t)){let a=assert(i.get(t));if(a.has(e)){let o=assert(a.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,t=c;continue}if(l=t.getMember(o.localIdentifier.text),l)return l}}break}while(!0);let s=t.exportsStar;if(s)for(let l=0,a=s.length;l<a;++l){let o=this.lookupForeign(e,s[l],i);if(o)return o}return null}checkDecorators(e,t){let i=0;if(e)for(let s=0,l=e.length;s<l;++s){let a=e[s],o=wt.fromNode(a.name),u=zt.fromKind(o);u&&(t&u?i&u?this.error(213,a.range):i|=u:this.error(212,a.range,a.name.range.toString()))}return i}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,_i(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let i=e.getClass();if(i)do{let s=i.typeArguments;if(s){for(let l=0,a=s.length;l<a;++l)if(!this.checkTypeSupported(s[l],t))return!1}i=i.base}while(i);else{let s=e.getSignature();if(s){let l=s.thisType;if(l&&!this.checkTypeSupported(l,t))return!1;let a=s.parameterTypes;for(let u=0,c=a.length;u<c;++u)if(!this.checkTypeSupported(a[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}initializeLateShape(e,t){return this.initializeClass(e,t,[],[])!=null}initializeHiddenClass(e,t,i){let s=this.initializeClass(e,t,[],[]);if(!s)return!1;s.interfacePrototypes=[i],this.processOverrides(s,i),this.processInheritedImplementations(s,i);let l=i.instanceMembers;if(l)for(let a=Map_values(l),o=0,u=a.length;o<u;++o){let c=a[o];if(c.kind==4)lc(c);else if(c.kind==10){let f=c.getterPrototype;f&&lc(f);let _=c.setterPrototype;_&&lc(_)}}return!0}initializeClass(e,t,i,s){let l=e.name.text,a=new ps(l,t,e,this.checkDecorators(e.decorators,49));if(!t.add(l,a))return null;let o=e.implementsTypes;if(o){let c=o.length;c&&(a.hasDecorator(16)?this.error(208,ue.join(e.name.range,o[c-1].range)):s.push(a))}e.extendsType?i.push(a):!a.hasDecorator(16)&&a.internalName!=b.Object&&(a.implicitlyExtendsObject=!0);let u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeField(_,a);break}case 59:{let h=_;if(h.is(128)&&h.is(65536)&&this.error(241,h.name.range,h.name.text),_.isAny(6144))this.initializeProperty(h,a);else{let d=this.initializeMethod(h,a);d&&h.name.kind==27&&(a.constructorPrototype=d)}break}case 66:break;default:assert(!1)}}return a}initializeField(e,t){let i=e.name.text,s=e.decorators,l,a=2048;if(t.is(32768)&&(a|=128),e.is(32)){if(assert(t.kind!=8),a|=1024,e.is(64)&&(a|=64),l=new Mr(i,t,this.checkDecorators(s,a),e),!t.add(i,l))return}else if(assert(!e.isAny(6272)),l=Gi.forField(i,t,e,this.checkDecorators(s,a)),!t.addInstance(i,l))return}initializeMethod(e,t){let i=e.name.text,s=e.is(32),l=2112;e.is(65536)||(l|=14),t.is(32768)&&(l|=128),e.range.source.isLibrary&&(l|=512);let a=new Le(i,t,e,this.checkDecorators(e.decorators,l));if(a.hasDecorator(512)&&!E.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),s){if(assert(e.name.kind!=27),!t.add(i,a))return null}else if(!t.addInstance(i,a))return null;return this.checkOperatorOverloads(e.decorators,a,t),a}checkOperatorOverloads(e,t,i){if(e)for(let s=0,l=e.length;s<l;++s){let a=e[s];switch(a.decoratorKind){case 2:case 3:case 4:case 5:{let o=a.args,u=o?o.length:0;if(u==1){let c=a.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Ce.fromDecorator(a.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let h=i.operatorOverloadPrototypes;h.has(_)?this.error(2393,c.range):(t.operatorKind=_,h.set(_,t))}}else this.error(1141,c.range)}else this.error(2554,a.range,"1",u.toString())}}}}ensureProperty(e,t){let i=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(i)){let l=assert(s.get(i));if(l.kind==10)return l}else{let l=new Gi(i,t,e);return t.add(i,l)?l:null}}else{let s=t.instanceMembers;if(s&&s.has(i)){let l=assert(s.get(i));if(l.kind==10)return l}else{let l=new Gi(i,t,e);return t.addInstance(i,l)?l:null}}return this.error(2718,e.name.range,i),null}initializeProperty(e,t){let i=this.ensureProperty(e,t);if(!i)return;let s=e.name.text,l=e.is(2048);if(l){if(i.getterPrototype){this.error(2718,e.name.range,s);return}}else if(i.setterPrototype){this.error(2718,e.name.range,s);return}let a=new Le((l?ol:ul)+s,i.parent,e,this.checkDecorators(e.decorators,2112));l?i.getterPrototype=a:i.setterPrototype=a}initializeEnum(e,t){let i=e.name.text,s=new ro(i,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(i,s))return null;let l=e.values;for(let a=0,o=l.length;a<o;++a)this.initializeEnumValue(l[a],s);return s}initializeEnumValue(e,t){let i=e.name.text,s=new io(i,t,e,this.checkDecorators(e.decorators,0));t.add(i,s)}initializeExports(e,t,i,s){let l=e.members;if(l)for(let a=0,o=l.length;a<o;++a)this.initializeExport(l[a],t,e.internalPath,i);else{let a;s.has(t)?a=assert(s.get(t)):s.set(t,a=[]);let o=e.internalPath;a.push(new ac(o,o.endsWith(Ve)?o.substring(0,o.length-Ve.length):o+Ve,assert(e.path)))}}initializeExport(e,t,i,s){let l=e.localName.text,a=e.exportedName.text,o=t.lookupExport(a);if(o){this.error(2484,e.exportedName.range,a);return}if(i==null)if(o=t.getMember(l))t.ensureExport(a,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(a,new to(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(a,new to(e.localName,e.exportedName,i,i.endsWith(Ve)?i.substring(0,i.length-Ve.length):i+Ve))}}initializeExportDefault(e,t,i,s){let l=e.declaration,a=null;switch(l.kind){case 53:{a=this.initializeEnum(l,t);break}case 56:{a=this.initializeFunction(l,t);break}case 52:{a=this.initializeClass(l,t,i,s);break}case 58:{a=this.initializeInterface(l,t,i);break}case 60:{a=this.initializeNamespace(l,t,i,s);break}default:assert(!1)}if(a){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,l.name.range,u.declaration.name.range,"default");return}o.set("default",a)}}initializeImports(e,t,i,s){let l=e.declarations;if(l)for(let a=0,o=l.length;a<o;++a)this.initializeImport(l[a],t,e.internalPath,i,s);else{let a=e.namespaceName;a&&i.push(new eo(t,a,null,e.internalPath,e.internalPath+Ve))}}initializeImport(e,t,i,s,l){let a=i.endsWith(Ve)?i.substring(0,i.length-Ve.length):i+Ve,o=this.lookupForeignFile(i,a);if(o){let u=this.lookupForeign(e.foreignName.text,o,l);if(u){t.add(e.name.text,u,e.name);return}}s.push(new eo(t,e.name,e.foreignName,i,a))}initializeFunction(e,t){let i=e.name.text,s=2048;e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1),e.range.source.isLibrary&&(s|=512);let l=new Le(i,t,e,this.checkDecorators(e.decorators,s));return l.hasDecorator(512)&&!E.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),t.add(i,l)?l:null}initializeInterface(e,t,i){let s=e.name.text,l=new no(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,l))return null;e.extendsType&&i.push(l);let a=e.members;for(let o=0,u=a.length;o<u;++o){let c=a[o];switch(c.kind){case 55:{this.initializeFieldAsProperty(c,l);break}case 59:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,l):this.initializeMethod(f,l);break}default:assert(!1)}}return l}initializeFieldAsProperty(e,t){let i=e.initializer;i&&this.error(1246,i.range);let s=e.type;s||(s=A.createOmittedType(e.name.range.atEnd)),this.initializeProperty(A.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,A.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(A.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,A.createFunctionType([A.createParameter(0,e.name,s,null,e.name.range)],A.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,i,s){let l=e.name.text,a=new os(l,t,e,this.checkDecorators(e.decorators,1));if(!t.add(l,a))return null;let o=assert(t.getMember(l)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 52:{this.initializeClass(_,a,i,s);break}case 53:{this.initializeEnum(_,a);break}case 56:{this.initializeFunction(_,a);break}case 58:{this.initializeInterface(_,a,i);break}case 60:{this.initializeNamespace(_,a,i,s);break}case 61:{this.initializeTypeDefinition(_,a);break}case 48:{this.initializeVariables(_,a);break}default:assert(!1)}}return a!=o&&Gt(a,o),o}initializeTypeDefinition(e,t){let i=e.name.text,s=new rt(i,t,e,this.checkDecorators(e.decorators,0));t.add(i,s)}initializeVariables(e,t){let i=e.declarations;for(let s=0,l=i.length;s<l;++s){let a=i[s],o=a.name.text,u=1025;a.is(32768)&&(u|=128),a.is(8)&&(u|=64),a.range.source.isLibrary&&(u|=512);let c=new Mr(o,t,this.checkDecorators(a.decorators,u),a);c.hasDecorator(512)&&!ct.has(c.internalName)&&this.error(100,a.range,`Builtin '${c.internalName}'`),t.add(o,c)}}},gt=(m=>(m[m.Global=0]="Global",m[m.Local=1]="Local",m[m.Enum=2]="Enum",m[m.EnumValue=3]="EnumValue",m[m.FunctionPrototype=4]="FunctionPrototype",m[m.Function=5]="Function",m[m.ClassPrototype=6]="ClassPrototype",m[m.Class=7]="Class",m[m.InterfacePrototype=8]="InterfacePrototype",m[m.Interface=9]="Interface",m[m.PropertyPrototype=10]="PropertyPrototype",m[m.Property=11]="Property",m[m.Namespace=12]="Namespace",m[m.File=13]="File",m[m.TypeDefinition=14]="TypeDefinition",m[m.IndexSignature=15]="IndexSignature",m))(gt||{}),zt=(h=>(h[h.None=0]="None",h[h.Global=1]="Global",h[h.OperatorBinary=2]="OperatorBinary",h[h.OperatorPrefix=4]="OperatorPrefix",h[h.OperatorPostfix=8]="OperatorPostfix",h[h.Unmanaged=16]="Unmanaged",h[h.Final=32]="Final",h[h.Inline=64]="Inline",h[h.External=128]="External",h[h.ExternalJs=256]="ExternalJs",h[h.Builtin=512]="Builtin",h[h.Lazy=1024]="Lazy",h[h.Unsafe=2048]="Unsafe",h))(zt||{});(n=>{function r(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;default:return 0}}n.fromKind=r})(zt||={});var ss=class{constructor(n,e,t,i,s){this.kind=n;this.name=e;this.internalName=t;this.program=i;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=i,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let n=this;do if(n=n.parent,n.kind==13)return n;while(!0)}is(n){return(this.flags&n)==n}isAny(n){return(this.flags&n)!=0}set(n){this.flags|=n}unset(n){this.flags&=~n}hasDecorator(n){return(this.decoratorFlags&n)==n}hasAnyDecorator(n){return(this.decoratorFlags&n)!=0}getMember(n){let e=this.members;return e&&e.has(n)?assert(e.get(n)):null}lookup(n,e=!1){return this.parent.lookup(n,e)}add(n,e,t=null){let i=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(n)){let a=assert(s.get(n));if(a.parent==this){let o=cc(a,e);if(o)e=o;else{let u=t||e.identifierNode;return ls(a.kind)?this.program.errorRelated(2300,u.range,a.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(n,e);let l=this.program;return(e.kind!=4||!e.isBound)&&(l.elementsByName.set(e.internalName,e),l.elementsByDeclaration.set(i,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(n){if(this.isPublic==n.isPublic)return!0;let e=1536;return(this.flags&e)==(n.flags&e)}visibilityNoLessThan(n){return this.isPublic?!0:this.is(512)?n.is(512):this.is(1024)?n.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let n=this.parent;switch(n.kind){case 7:case 9:return n}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},xg=new Set;function ls(r){return xg.has(r)}var ur=class extends ss{constructor(e,t,i,s,l,a){super(e,t,i,s,l);this.declaration=a;xg.add(e),this.declaration=a,this.flags=a.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==56||e.kind==59){let i=e.signature;if(t.range.source==i.range.source)return ue.join(t.range,i.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},Tg=new Set;function Ha(r){return Tg.has(r)}var Dt=class extends ur{constructor(e,t,i,s,l,a){super(e,t,i,s,l,a);this.type=p.void;Tg.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},as=class extends ss{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let i=this.program.makeNativeFunction(`start:${this.internalName}`,ge.create(e,[],p.void),this);i.internalName=i.name,this.startFunction=i}add(e,t,i=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,i)?(t=assert(this.getMember(e)),t.is(2)&&!i&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let i=this.exportsStar;if(i){for(let s=0,l=i.length;s<l;++s)if(t=i[s].getMember(e))return t}return null}lookup(e,t=!1){let i=this.getMember(e);if(i&&t){if(i.kind==4)i=null;else if(i.kind==12&&i.declaration.isStringEnum)return this.program.lookup(z.string)}return i||this.program.lookup(e)}ensureExport(e,t){let i=this.exports;i||(this.exports=i=new Map),i.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let i=this.exportsStar;if(i)for(let s=0,l=i.length;s<l;++s){let a=i[s].lookupExport(e);if(a)return a}return null}asAliasNamespace(e,t,i){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=i;let l=new os(e,t,s);return l.set(67108864),this.copyExportsToNamespace(l),this.aliasNamespaces.push(l),l}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),l=0,a=s.length;l<a;++l){let o=unchecked(s[l]),u=assert(t.get(o));e.add(o,u)}let i=this.exportsStar;if(i)for(let s=0,l=i.length;s<l;++s)i[s].copyExportsToNamespace(e)}},rt=class extends Dt{constructor(n,e,t,i=0){super(14,n,Ue(n,e,!1),e.program,e,t),this.decoratorFlags=i}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},os=class extends ur{constructor(n,e,t,i=0){super(12,n,Ue(n,e,!1),e.program,e,t),this.decoratorFlags=i}lookup(n,e=!1){let t=this.getMember(n);return t||super.lookup(n,e)}},ro=class extends Dt{constructor(e,t,i,s=0){super(2,e,Ue(e,t,!1),t.program,t,i);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,t=!1){let i=this.getMember(e);return i||super.lookup(e,t)}},uc=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(uc||{}),zr=class extends Dt{constructor(e,t,i,s=i.program.makeNativeVariableDeclaration(t)){super(e,t,Ue(t,i,s.is(262144)),i.program,i,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},io=class extends zr{constructor(e,t,i,s=0){super(3,e,t,i);this.isImmutable=!1;this.decoratorFlags=s,this.setType(p.i32)}get valueNode(){return this.declaration.initializer}},Mr=class extends zr{constructor(e,t,i,s=t.program.makeNativeVariableDeclaration(e)){super(0,e,t,s);this.tdzFlag=null;this.decoratorFlags=i}},oc=class{constructor(n,e,t=null){this.name=n;this.type=e;this.initializer=t}},Ke=class extends zr{constructor(e,t,i,s,l=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,l);this.index=t;this.closureBox=-1;this.closureAssigned=!1;this.closurePredeclared=!1;this.closureTdz=!1;this.originalName=e,this.index=t,assert(i!=p.void),this.setType(i)}declaredByFlow(e){return this.parent==e.targetFunction}},us=class{constructor(){this.captured=new Set;this.assigned=new Set;this.early=new Set}},Le=class r extends ur{constructor(e,t,i,s=0){super(4,e,Ue(e,t,i.is(262144)),t.program,t,i);this.operatorKind=0;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let i=this.declaration;assert(i.kind==59);let s=new r(this.name,e,i,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let i=this.instances;i?assert(!i.has(e)):this.instances=i=new Map,i.set(e,t)}},Je=class r extends Dt{constructor(e,t,i,s,l=null){super(5,e,Ue(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.closureScan=null;this.closureSlots=null;this.closureEnv=null;this.closureDefaults=!1;this.closureSelf=null;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=i,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=l,this.original=this;let a=t.program;this.type=s.type;let o=Lt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,c=s.thisType;if(c){let _=new Ke(z.this_,u++,c,this),h=this.flow.scopedLocals;h||(this.flow.scopedLocals=h=new Map),h.set(z.this_,_),this.localsByIndex[_.index]=_,o.setLocalFlag(_.index,8)}let f=s.parameterTypes;for(let _=0,h=f.length;_<h;++_){let d=f[_],y=this.getParameterName(_),m=new Ke(y,u++,d,this),g=this.flow.scopedLocals;g||(this.flow.scopedLocals=g=new Map),g.set(y,m),this.localsByIndex[m.index]=m,o.setLocalFlag(m.index,8)}}a.instancesByName.has(this.internalName)?(a.error(2393,t.declaration.name.range),this.set(16777216)):pc(a,this)}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,i=e.length,s=t.parameterTypes.length;t.thisType&&++s;let l=i-s,a=new Array(l);for(let o=0;o<l;++o)a[o]=e[s+o].type;return a}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:Eg(e)}newStub(e,t=this.signature.requiredParameters){let i=new r(this.original.name+tr+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return i.original=this.original,i.set(this.flags&-8388609|134217728),i}addLocal(e,t=null,i=null){let s=this.localsByIndex,l=s.length,a=t??l.toString();i||(i=this.program.makeNativeVariableDeclaration(a));let o=new Ke(a,l,e,this,i);if(t){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(t))throw new Error("duplicate local name");c.set(t,o)}return s[l]=o,o}lookup(e,t=!1){if(!t){let i=this.flow.scopedLocals;if(i&&i.has(e))return assert(i.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let i=this.breakStack;assert(!i||!i.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let i=this.debugLocations;for(let s=Map_keys(i),l=0,a=s.length;l<a;++l){let o=s[l],u=assert(i.get(o)),c=u.source;e.setDebugLocation(t,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let i=new Set,s=this.localsByIndex;for(let l=0,a=s.length;l<a;l++){let o=s[l].name;i.has(o)&&(o=`${o}|${l}`),i.add(o),e.setLocalName(t,l,o)}}}},Gi=class r extends ur{constructor(e,t,i){super(10,e,Ue(e,t,i.is(262144)),t.program,t,i);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,i,s){let l=ye.native.range,a=i.type;a||(a=A.createOmittedType(i.name.range.atEnd));let o=new Nr(i.name,i.decorators,i.flags|262144|2048,null,new Cr([],a,null,!1,l),null,l),u=new Nr(i.name,i.decorators,i.flags|262144|4096,null,new Cr([new Ai(0,i.name,a,null,l)],new wr(new Ei(new He("",!1,l),null,l),null,!1,l),null,!1,l),null,l),c=new r(e,t,o);return c.fieldDeclaration=i,c.decoratorFlags=s,c.getterPrototype=new Le(ol+e,t,o,s),c.setterPrototype=new Le(ul+e,t,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==56)return s.signature.returnType}let i=this.setterPrototype;if(i){let s=i.declaration;if(s.kind==56){let l=s.signature.parameters;if(l.length)return l[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let i=this.declaration;assert(i.kind==59);let s=new r(this.name,e,i);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let l=this.getterPrototype;l&&(s.getterPrototype=l.toBound(e));let a=this.setterPrototype;return a&&(s.setterPrototype=a.toBound(e)),t.set(e,s),s}},$n=class extends zr{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):A.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.presenceOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&pc(this.program,this)}get isOptional(){let e=this.prototype.fieldDeclaration;return e!=null&&e.isOptional}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,i=this.setterInstance;t&&i&&!t.visibilityNoLessThan(i)&&e.errorRelated(2808,t.identifierNode.range,i.identifierNode.range,t.identifierNode.text)}},Jn=class extends Dt{constructor(n){super(15,"[]",n.internalName+"[]",n.program,n,n.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(n){return this.parent.lookupOverload(1,n)}getSetterInstance(n){return this.parent.lookupOverload(2,n)}},ps=class extends ur{constructor(e,t,i,s=0,l=!1){super(l?8:6,e,Ue(e,t,i.is(262144)),t.program,t,i);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,i=new Set;do{if(i.has(t))break;if(i.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let i=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let l=assert(s.get(e)),a=cc(l,t);if(!a)return ls(l.kind)?this.program.errorRelated(2300,t.identifierNode.range,l.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=a}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(i,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let i=this.instances;i?assert(!i.has(e)):this.instances=i=new Map,i.set(e,t)}},or=class extends Dt{constructor(e,t,i=null,s=!1){super(s?9:7,e,Ue(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=i;let l=this.program,a=l.options.usizeType,o=new p(a.kind,a.flags&-129|256,a.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=l.nextClassId++;this._id=c,l.managedClasses.set(c,this)}let u=t.typeParameterNodes;if(i){let c=i.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,i[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");pc(l,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let i=new Set;for(i.add(e),i.add(t);;){let s=e.base,l=t.base;if(!s&&!l)return null;if(s){if(i.has(s))return s;i.add(e=s)}if(l){if(i.has(l))return l;i.add(t=l)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let l=this.contextualTypeArguments;for(let a=Map_keys(t),o=0,u=a.length;o<u;++o){let c=unchecked(a[o]),f=assert(t.get(c));l?l.has(c)||l.set(c,f):(this.contextualTypeArguments=l=new Map,l.set(c,f))}}e.propagateExtenderUp(this);let i=this.extenders;if(i)for(let l=Set_values(i),a=0,o=l.length;a<o;++a){let u=l[a];e.propagateExtenderUp(u)}let s=e;do{let l=s.interfaces;if(l)for(let a=Set_values(l),o=0,u=a.length;o<u;++o){let c=a[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let i=t.extenders;i||(t.extenders=i=new Set),i.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,i=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),i)for(let l=Set_values(i),a=0,o=l.length;a<o;++a){let u=l[a];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let i=this;do{let s=i.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));i=i.base}while(i);return null}getMethod(e,t=null){let i=this.getMember(e);return i&&i.kind==4?this.program.resolver.resolveFunction(i,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,i=this.nextMemoryOffset+e,s=t.computeBlockSize(i,!0),l=new Uint8Array(t.blockOverhead+s),a=t.OBJECTInstance;return a.writeField("mmInfo",s,l,0),a.writeField("gcInfo",0,l,0),a.writeField("gcInfo2",0,l,0),a.writeField("rtId",this.id,l,0),a.writeField("rtSize",i,l,0),l}writeField(e,t,i,s=this.program.totalOverhead){let l=this.getMember(e);if(l&&l.kind==10){let o=l.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(t)),he(i32(t),i,u),1;case 2:case 7:return assert(!i64_is(t)),rr(i32(t),i,u),2;case 3:case 8:return assert(!i64_is(t)),be(i32(t),i,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?yi(t,i,u):cl(i32(t),i,u,c==10),8):(i64_is(t)?mp(t,i,u,c==10):be(i32(t),i,u),4);case 4:case 9:return i64_is(t)?yi(t,i,u):cl(i32(t),i,u,c==9),8;case 11:return assert(!i64_is(t)),vr(f32(t),i,u),4;case 12:return assert(!i64_is(t)),Sr(f64(t),i,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,i=t.arrayPrototype;if(this.extendsPrototype(i))return this.getTypeArgumentsTo(i)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let l=t.arrayBufferViewInstance;for(;e.base!=l;)e=assert(e.base);let a=e.prototype;switch(a.name.charCodeAt(0)){case 70:{if(a==t.float32ArrayPrototype)return p.f32;if(a==t.float64ArrayPrototype)return p.f64;break}case 73:{if(a==t.int8ArrayPrototype)return p.i8;if(a==t.int16ArrayPrototype)return p.i16;if(a==t.int32ArrayPrototype)return p.i32;if(a==t.int64ArrayPrototype)return p.i64;break}case 85:{if(a==t.uint8ArrayPrototype)return p.u8;if(a==t.uint8ClampedArrayPrototype)return p.u8;if(a==t.uint16ArrayPrototype)return p.u16;if(a==t.uint32ArrayPrototype)return p.u32;if(a==t.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]);if(a.kind==10){let u=a.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(z.visit)){let i=this.prototype;if(i==e.arrayPrototype||i==e.staticArrayPrototype||i==e.setPrototype||i==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(i));for(let l=0,a=s.length;l<a;++l)if(s[l].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let i=Set_values(t),s=0,l=i.length;s<l;++s)if(i[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let i=Set_values(t),s=0,l=i.length;s<l;++s)if(i[s].implements(e))return!0}return!1}},no=class extends ps{constructor(n,e,t,i){super(n,e,t,i,!0)}},es=class extends or{constructor(n,e,t=null){super(n,e,t,!0)}};function pc(r,n){assert(!r.instancesByName.has(n.internalName)),r.instancesByName.set(n.internalName,n)}function cc(r,n){if(assert(r.program==n.program),n.members)return null;let e=null;switch(r.kind){case 4:{switch(n.kind){case 12:{Gt(n,r),e=r;break}case 14:{r.shadowType||(r.shadowType=n,Gt(n,r),e=r);break}}break}case 6:case 2:{if(n.kind==12){Gt(n,r),e=r;break}break}case 12:{switch(n.kind){case 2:case 6:case 4:{Gt(r,n),e=n;break}case 12:{Gt(n,r),e=r;break}case 14:{r.shadowType||(r.shadowType=n,Gt(n,r),e=r);break}}break}case 0:{n.kind==14&&(r.shadowType||(r.shadowType=n,Gt(n,r),e=r));break}case 14:{switch(n.kind){case 0:case 4:case 12:{n.shadowType||(n.shadowType=r,Gt(r,n),e=n);break}}break}}if(e){let t=r.is(2)||r.hasDecorator(1),i=n.is(2)||n.hasDecorator(1);t!=i&&r.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Gt(r,n){let e=r.members;if(e){let t=n.members;t||(n.members=t=new Map);for(let i=Map_keys(e),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]),o=assert(e.get(a));t.set(a,o)}}}function Ue(r,n,e,t=!1){switch(n.kind){case 13:return t?r:n.internalName+lt+r;case 5:return t?r:(assert(!e),n.internalName+dp+r);case 10:case 11:n=n.parent;default:return Ue(n.name,n.parent,n.is(262144),t)+(e?hp:Sn)+r}}var sc=[];function Eg(r){for(let n=sc.length;n<=r;++n)sc.push(`$${n}`);return sc[r]}function lc(r){let n=r.boundPrototypes;if(n)for(let e=Map_values(n),t=0,i=e.length;t<i;++t){let s=e[t];s.unboundOverrides=r.unboundOverrides,r.is(268435456)&&s.set(268435456)}}var lr=(U=>(U[U.Bool=0]="Bool",U[U.I8=1]="I8",U[U.I16=2]="I16",U[U.I32=3]="I32",U[U.I64=4]="I64",U[U.Isize=5]="Isize",U[U.U8=6]="U8",U[U.U16=7]="U16",U[U.U32=8]="U32",U[U.U64=9]="U64",U[U.Usize=10]="Usize",U[U.F32=11]="F32",U[U.F64=12]="F64",U[U.V128=13]="V128",U[U.Extern=14]="Extern",U[U.Func=15]="Func",U[U.Any=16]="Any",U[U.Eq=17]="Eq",U[U.Struct=18]="Struct",U[U.Array=19]="Array",U[U.I31=20]="I31",U[U.String=21]="String",U[U.StringviewWTF8=22]="StringviewWTF8",U[U.StringviewWTF16=23]="StringviewWTF16",U[U.StringviewIter=24]="StringviewIter",U[U.Void=25]="Void",U))(lr||{}),bt=(y=>(y[y.None=0]="None",y[y.Signed=1]="Signed",y[y.Unsigned=2]="Unsigned",y[y.Integer=4]="Integer",y[y.Float=8]="Float",y[y.Varying=16]="Varying",y[y.Short=32]="Short",y[y.Long=64]="Long",y[y.Value=128]="Value",y[y.Reference=256]="Reference",y[y.Nullable=512]="Nullable",y[y.Vector=1024]="Vector",y[y.External=2048]="External",y[y.Class=4096]="Class",y[y.Function=8192]="Function",y))(bt||{}),p=class r{constructor(n,e,t){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=n,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==r.auto)return this;switch(this.kind){case 0:case 3:case 11:return r.i32;case 1:return r.i8;case 2:return r.i16;case 12:case 4:return r.i64;case 5:return this.size==64?r.isize64:r.isize32;case 6:return r.u8;case 7:return r.u16;case 8:return r.u32;case 9:return r.u64;case 10:return this.size==64?r.usize64:r.usize32;default:return r.i32}}get exceptVoid(){return this.kind==25?r.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==r.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(n){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let i=t.type,s=assert(n.resolver.resolveClass(n.functionPrototype,[i]));return s.wrappedType=i,s}else{let i=n.wrapperClasses;if(i.has(this))return assert(i.get(this))}}return null}lookupOverload(n,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(n):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let n=this.classReference;return n?!n.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let n=this.classReference;return n!=null&&n.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(n){return n.size-this.size}computeSmallIntegerMask(n){let e=this.size;return this.is(2)||(e-=1),-1>>>n.size-e}is(n){return(this.flags&n)==n}isAny(n){return(this.flags&n)!=0}asNullable(){assert(this.isReference);let n=this._nullableType;return n||(assert(!this.isNullableReference),this._nullableType=n=new r(this.kind,this.flags|512,this.size),n.classReference=this.classReference,n.signatureReference=this.signatureReference,n._nonNullableType=this),n}toUnsigned(){switch(this.kind){case 1:return r.u8;case 2:return r.u16;case 3:return r.u32;case 4:return r.u64;case 5:return this.size==64?r.usize64:r.usize32}return this}equals(n){if(this.kind!=n.kind)return!1;if(this.isReference){let e=this.signatureReference,t=n.signatureReference;return this.classReference==n.classReference&&e==t&&this.isNullableReference==n.isNullableReference}return!0}isAssignableTo(n,e=!1){let t,i,s,l;if(this.isReference){if(n.isReference&&(!this.isNullableReference||n.isNullableReference)){if(t=this.getClass()){if(i=n.getClass())return t.isAssignableTo(i)}else if(s=this.getSignature()){if(l=n.getSignature())return s.isAssignableTo(l)}else if(this.isExternalReference&&(this.kind==n.kind||n.kind==16&&this.kind!=14))return!0}}else if(!n.isReference){if(this.isIntegerValue)if(n.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==n.isSignedIntegerValue)return this.size<=n.size}else{if(n.kind==11)return this.size<=23;if(n.kind==12)return this.size<=52}else if(this.isFloatValue){if(n.isFloatValue)return this.size<=n.size}else if(this.isVectorValue&&n.isVectorValue)return this.size==n.size}return!1}isStrictlyAssignableTo(n,e=!1){return this.isReference?this.isAssignableTo(n):n.isReference?!1:this.isIntegerValue?n.isIntegerValue&&n.size==this.size&&(!e||this.isSignedIntegerValue==n.isSignedIntegerValue):this.kind==n.kind}hasSubtypeAssignableTo(n){let e=this.getClass(),t=n.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(n){if(this.is(4)&&n.is(4)){let e=this.size;return e==n.size&&(e>=32||this.is(1)==n.is(1))}return this.kind==n.kind}canExtendOrImplement(n){let e=this.getClass(),t=n.getClass();if(!e||!t||this.isManaged!=n.isManaged)return!1;if(this.isInternalReference){if(!n.isInternalReference)return!1}else if(this.isExternalReference){if(!n.isExternalReference)return!1}else return!1;return!0}static commonType(n,e,t=r.auto,i=!1){if(n.isInternalReference){if(!e.isInternalReference)return null;if(t!=r.void&&n.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=n.getClass(),l=e.getClass();if(s&&l){let a=or.leastUpperBound(s,l);if(a)return n.is(512)||e.is(512)?a.type.asNullable():a.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(n,i)?n:n.isAssignableTo(e,i)?e:null}kindToString(){switch(this.kind){case 0:return z.bool;case 1:return z.i8;case 2:return z.i16;case 3:return z.i32;case 4:return z.i64;case 5:return z.isize;case 6:return z.u8;case 7:return z.u16;case 8:return z.u32;case 9:return z.u64;case 10:return z.usize;case 11:return z.f32;case 12:return z.f64;case 13:return z.v128;case 15:return z.ref_func;case 14:return z.ref_extern;case 16:return z.ref_any;case 17:return z.ref_eq;case 18:return z.ref_struct;case 19:return z.ref_array;case 20:return z.ref_i31;case 21:return z.ref_string;case 22:return z.ref_stringview_wtf8;case 23:return z.ref_stringview_wtf16;case 24:return z.ref_stringview_iter;default:assert(!1);case 25:return z.void_}}toString(n=!1){let e=n?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let i=this.getSignature();return i?this.isNullableReference?`(${i.toString(n)})${e}`:i.toString(n):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==r.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return P.I32;case 5:case 10:if(this.size!=64)return P.I32;case 4:case 9:return P.I64;case 11:return P.F32;case 12:return P.F64;case 13:return P.V128;case 15:return me(Ee.Func,this.is(512));case 14:return me(Ee.Extern,this.is(512));case 16:return me(Ee.Any,this.is(512));case 17:return me(Ee.Eq,this.is(512));case 18:return me(Ee.Struct,this.is(512));case 19:return me(Ee.Array,this.is(512));case 20:return me(Ee.I31,this.is(512));case 21:return me(Ee.String,this.is(512));case 25:return P.None}return assert(!1),Hn(this)}static{this.i8=new r(1,165,8)}static{this.i16=new r(2,165,16)}static{this.i32=new r(3,133,32)}static{this.i64=new r(4,197,64)}static{this.isize32=new r(5,149,32)}static{this.isize64=new r(5,213,64)}static{this.u8=new r(6,166,8)}static{this.u16=new r(7,166,16)}static{this.u32=new r(8,134,32)}static{this.u64=new r(9,198,64)}static{this.usize32=new r(10,150,32)}static{this.usize64=new r(10,214,64)}static{this.bool=new r(0,166,1)}static{this.f32=new r(11,137,32)}static{this.f64=new r(12,201,64)}static{this.v128=new r(13,1152,128)}static{this.func=new r(15,2304,0)}static{this.extern=new r(14,2304,0)}static{this.any=new r(16,2304,0)}static{this.eq=new r(17,2304,0)}static{this.struct=new r(18,2304,0)}static{this.array=new r(19,2304,0)}static{this.i31=new r(20,2304,0)}static{this.string=new r(21,2304,0)}static{this.stringview_wtf8=new r(22,2304,0)}static{this.stringview_wtf16=new r(23,2304,0)}static{this.stringview_iter=new r(24,2304,0)}static{this.void=new r(25,0,0)}static{this.auto=new r(r.i32.kind,r.i32.flags,r.i32.size)}};function xt(r){let n=r.length,e=new Array(n);for(let t=0;t<n;++t)unchecked(e[t]=r[t].toRef());return e}function Xa(r){let n=r.length;if(!n)return"";let e=new Array(n);for(let t=0;t<n;++t)unchecked(e[t]=r[t].toString(!0));return e.join(",")}var ge=class r{constructor(n,e,t,i,s,l,a,o){this.program=n;this.parameterTypes=e;this.returnType=t;this.thisType=i;this.requiredParameters=s;this.hasRest=l;this.id=a;this.type=o}static create(n,e=[],t=p.void,i=null,s=e?e.length:0,l=!1){let a=n.options.usizeType,o=new p(a.kind,a.flags&-129|256,a.size),u=n.uniqueSignatures,c=n.nextSignatureId,f=new r(n,e,t,i,s,l,c,o),_=f.toString();if(u.has(_)){let h=assert(u.get(_));return assert(f.equals(h)),h}return n.nextSignatureId=c+1,o.signatureReference=f,u.set(_,f),f}get paramRefs(){let n=this.thisType,e=this.parameterTypes,t=e.length;if(!t)return n?n.toRef():P.None;if(n){let i=new Array(1+t);unchecked(i[0]=n.toRef());for(let s=0;s<t;++s)unchecked(i[s+1]=e[s].toRef());return Ze(i)}return Ze(xt(e))}get resultRefs(){return this.returnType.toRef()}equals(n){let e=this.thisType,t=n.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=n.hasRest||!this.returnType.equals(n.returnType))return!1;let i=this.parameterTypes,s=n.parameterTypes,l=i.length;if(l!=s.length)return!1;for(let a=0;a<l;++a){let o=unchecked(i[a]),u=unchecked(s[a]);if(!o.equals(u))return!1}return!0}isAssignableTo(n,e=!1){let t=this.thisType,i=n.thisType;if(t&&i){if(!(e?t.canExtendOrImplement(i):i.isAssignableTo(t)))return!1}else if(t||i)return!1;if(this.hasRest!=n.hasRest)return!1;let s=this.returnType,l=n.returnType;if(!(s==l||s.isAssignableTo(l)))return!1;let a=this.parameterTypes,o=n.parameterTypes,u=a.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(a[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let n=this.thisType;if(n&&n.isManaged)return!0;let e=this.parameterTypes;for(let t=0,i=e.length;t<i;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let n=new Array,e=0,t=this.thisType;t&&(t.isManaged&&n.push(e),++e);let i=this.parameterTypes;for(let s=0,l=i.length;s<l;++s)unchecked(i[s]).isManaged&&n.push(e),++e;return n}get hasVectorValueOperands(){let n=this.thisType;if(n&&n.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,i=e.length;t<i;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let n=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&n.push(e),++e);let i=this.parameterTypes;for(let s=0,l=i.length;s<l;++s)unchecked(i[s]).isVectorValue&&n.push(e),++e;return n}toString(n=!1){let e=new Array;e.push(n?"%28":"(");let t=0,i=this.thisType;i&&(e.push(n?"this:":"this: "),e.push(i.toString(n)),t=1);let s=this.parameterTypes,l=s.length;if(l){let a=this.requiredParameters,o=this.hasRest?l-1:-1;for(let u=0;u<l;++u,++t)t&&e.push(n?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(n)),u>=a&&u!=o&&e.push("?"),u==o&&u<a&&!n&&e.push("!")}return e.push(n?"%29=>":") => "),e.push(this.returnType.toString(n)),e.join("")}clone(n=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,i=t.length,s=new Array(i);for(let l=0;l<i;++l)unchecked(s[l]=t[l]);return r.create(this.program,s,this.returnType,this.thisType,n,e)}};var b;(T=>(T.start="~start",T.started="~started",T.argumentsLength="~argumentsLength",T.setArgumentsLength="~setArgumentsLength",T.abort="~lib/builtins/abort",T.trace="~lib/builtins/trace",T.seed="~lib/builtins/seed",T.isBoolean="~lib/builtins/isBoolean",T.isInteger="~lib/builtins/isInteger",T.isSigned="~lib/builtins/isSigned",T.isFloat="~lib/builtins/isFloat",T.isVector="~lib/builtins/isVector",T.isReference="~lib/builtins/isReference",T.isString="~lib/builtins/isString",T.isArray="~lib/builtins/isArray",T.isArrayLike="~lib/builtins/isArrayLike",T.isFunction="~lib/builtins/isFunction",T.isNullable="~lib/builtins/isNullable",T.isDefined="~lib/builtins/isDefined",T.isConstant="~lib/builtins/isConstant",T.isManaged="~lib/builtins/isManaged",T.isVoid="~lib/builtins/isVoid",T.add="~lib/builtins/add",T.sub="~lib/builtins/sub",T.mul="~lib/builtins/mul",T.div="~lib/builtins/div",T.clz="~lib/builtins/clz",T.ctz="~lib/builtins/ctz",T.popcnt="~lib/builtins/popcnt",T.rotl="~lib/builtins/rotl",T.rotr="~lib/builtins/rotr",T.abs="~lib/builtins/abs",T.max="~lib/builtins/max",T.min="~lib/builtins/min",T.ceil="~lib/builtins/ceil",T.floor="~lib/builtins/floor",T.copysign="~lib/builtins/copysign",T.nearest="~lib/builtins/nearest",T.reinterpret="~lib/builtins/reinterpret",T.sqrt="~lib/builtins/sqrt",T.trunc="~lib/builtins/trunc",T.eq="~lib/builtins/eq",T.ne="~lib/builtins/ne",T.rem="~lib/builtins/rem",T.load="~lib/builtins/load",T.store="~lib/builtins/store",T.atomic_load="~lib/builtins/atomic.load",T.atomic_store="~lib/builtins/atomic.store",T.atomic_add="~lib/builtins/atomic.add",T.atomic_sub="~lib/builtins/atomic.sub",T.atomic_and="~lib/builtins/atomic.and",T.atomic_or="~lib/builtins/atomic.or",T.atomic_xor="~lib/builtins/atomic.xor",T.atomic_xchg="~lib/builtins/atomic.xchg",T.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",T.atomic_wait="~lib/builtins/atomic.wait",T.atomic_notify="~lib/builtins/atomic.notify",T.atomic_fence="~lib/builtins/atomic.fence",T.sizeof="~lib/builtins/sizeof",T.alignof="~lib/builtins/alignof",T.offsetof="~lib/builtins/offsetof",T.nameof="~lib/builtins/nameof",T.lengthof="~lib/builtins/lengthof",T.select="~lib/builtins/select",T.unreachable="~lib/builtins/unreachable",T.changetype="~lib/builtins/changetype",T.assert="~lib/builtins/assert",T.call_indirect="~lib/builtins/call_indirect",T.unchecked="~lib/builtins/unchecked",T.inline_always="~lib/builtins/inline.always",T.instantiate="~lib/builtins/instantiate",T.idof="~lib/builtins/idof",T.i8="~lib/builtins/i8",T.i16="~lib/builtins/i16",T.i32="~lib/builtins/i32",T.i64="~lib/builtins/i64",T.isize="~lib/builtins/isize",T.u8="~lib/builtins/u8",T.u16="~lib/builtins/u16",T.u32="~lib/builtins/u32",T.u64="~lib/builtins/u64",T.usize="~lib/builtins/usize",T.bool="~lib/builtins/bool",T.f32="~lib/builtins/f32",T.f64="~lib/builtins/f64",T.v128="~lib/builtins/v128",T.i32_clz="~lib/builtins/i32.clz",T.i64_clz="~lib/builtins/i64.clz",T.i32_ctz="~lib/builtins/i32.ctz",T.i64_ctz="~lib/builtins/i64.ctz",T.i32_popcnt="~lib/builtins/i32.popcnt",T.i64_popcnt="~lib/builtins/i64.popcnt",T.i32_rotl="~lib/builtins/i32.rotl",T.i64_rotl="~lib/builtins/i64.rotl",T.i32_rotr="~lib/builtins/i32.rotr",T.i64_rotr="~lib/builtins/i64.rotr",T.f32_abs="~lib/builtins/f32.abs",T.f64_abs="~lib/builtins/f64.abs",T.f32_max="~lib/builtins/f32.max",T.f64_max="~lib/builtins/f64.max",T.f32_min="~lib/builtins/f32.min",T.f64_min="~lib/builtins/f64.min",T.f32_ceil="~lib/builtins/f32.ceil",T.f64_ceil="~lib/builtins/f64.ceil",T.f32_floor="~lib/builtins/f32.floor",T.f64_floor="~lib/builtins/f64.floor",T.f32_copysign="~lib/builtins/f32.copysign",T.f64_copysign="~lib/builtins/f64.copysign",T.f32_nearest="~lib/builtins/f32.nearest",T.f64_nearest="~lib/builtins/f64.nearest",T.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",T.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",T.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",T.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",T.f32_sqrt="~lib/builtins/f32.sqrt",T.f64_sqrt="~lib/builtins/f64.sqrt",T.f32_trunc="~lib/builtins/f32.trunc",T.f64_trunc="~lib/builtins/f64.trunc",T.i32_add="~lib/builtins/i32.add",T.i64_add="~lib/builtins/i64.add",T.f32_add="~lib/builtins/f32.add",T.f64_add="~lib/builtins/f64.add",T.i32_sub="~lib/builtins/i32.sub",T.i64_sub="~lib/builtins/i64.sub",T.f32_sub="~lib/builtins/f32.sub",T.f64_sub="~lib/builtins/f64.sub",T.i32_mul="~lib/builtins/i32.mul",T.i64_mul="~lib/builtins/i64.mul",T.f32_mul="~lib/builtins/f32.mul",T.f64_mul="~lib/builtins/f64.mul",T.i32_div_s="~lib/builtins/i32.div_s",T.i32_div_u="~lib/builtins/i32.div_u",T.i64_div_s="~lib/builtins/i64.div_s",T.i64_div_u="~lib/builtins/i64.div_u",T.f32_div="~lib/builtins/f32.div",T.f64_div="~lib/builtins/f64.div",T.i32_eq="~lib/builtins/i32.eq",T.i64_eq="~lib/builtins/i64.eq",T.f32_eq="~lib/builtins/f32.eq",T.f64_eq="~lib/builtins/f64.eq",T.i32_ne="~lib/builtins/i32.ne",T.i64_ne="~lib/builtins/i64.ne",T.f32_ne="~lib/builtins/f32.ne",T.f64_ne="~lib/builtins/f64.ne",T.i32_rem_s="~lib/builtins/i32.rem_s",T.i32_rem_u="~lib/builtins/i32.rem_u",T.i64_rem_s="~lib/builtins/i64.rem_s",T.i64_rem_u="~lib/builtins/i64.rem_u",T.i32_load8_s="~lib/builtins/i32.load8_s",T.i32_load8_u="~lib/builtins/i32.load8_u",T.i32_load16_s="~lib/builtins/i32.load16_s",T.i32_load16_u="~lib/builtins/i32.load16_u",T.i32_load="~lib/builtins/i32.load",T.i64_load8_s="~lib/builtins/i64.load8_s",T.i64_load8_u="~lib/builtins/i64.load8_u",T.i64_load16_s="~lib/builtins/i64.load16_s",T.i64_load16_u="~lib/builtins/i64.load16_u",T.i64_load32_s="~lib/builtins/i64.load32_s",T.i64_load32_u="~lib/builtins/i64.load32_u",T.i64_load="~lib/builtins/i64.load",T.f32_load="~lib/builtins/f32.load",T.f64_load="~lib/builtins/f64.load",T.i32_store8="~lib/builtins/i32.store8",T.i32_store16="~lib/builtins/i32.store16",T.i32_store="~lib/builtins/i32.store",T.i64_store8="~lib/builtins/i64.store8",T.i64_store16="~lib/builtins/i64.store16",T.i64_store32="~lib/builtins/i64.store32",T.i64_store="~lib/builtins/i64.store",T.f32_store="~lib/builtins/f32.store",T.f64_store="~lib/builtins/f64.store",T.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",T.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",T.i32_atomic_load="~lib/builtins/i32.atomic.load",T.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",T.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",T.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",T.i64_atomic_load="~lib/builtins/i64.atomic.load",T.i32_atomic_store8="~lib/builtins/i32.atomic.store8",T.i32_atomic_store16="~lib/builtins/i32.atomic.store16",T.i32_atomic_store="~lib/builtins/i32.atomic.store",T.i64_atomic_store8="~lib/builtins/i64.atomic.store8",T.i64_atomic_store16="~lib/builtins/i64.atomic.store16",T.i64_atomic_store32="~lib/builtins/i64.atomic.store32",T.i64_atomic_store="~lib/builtins/i64.atomic.store",T.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",T.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",T.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",T.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",T.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",T.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",T.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",T.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",T.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",T.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",T.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",T.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",T.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",T.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",T.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",T.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",T.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",T.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",T.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",T.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",T.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",T.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",T.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",T.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",T.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",T.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",T.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",T.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",T.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",T.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",T.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",T.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",T.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",T.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",T.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",T.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",T.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",T.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",T.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",T.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",T.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",T.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",T.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",T.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",T.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",T.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",T.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",T.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",T.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",T.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",T.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",T.v128_splat="~lib/builtins/v128.splat",T.v128_extract_lane="~lib/builtins/v128.extract_lane",T.v128_replace_lane="~lib/builtins/v128.replace_lane",T.v128_shuffle="~lib/builtins/v128.shuffle",T.v128_swizzle="~lib/builtins/v128.swizzle",T.v128_load_splat="~lib/builtins/v128.load_splat",T.v128_load_ext="~lib/builtins/v128.load_ext",T.v128_load_zero="~lib/builtins/v128.load_zero",T.v128_load_lane="~lib/builtins/v128.load_lane",T.v128_store_lane="~lib/builtins/v128.store_lane",T.v128_load="~lib/builtins/v128.load",T.v128_load8x8_s="~lib/builtins/v128.load8x8_s",T.v128_load8x8_u="~lib/builtins/v128.load8x8_u",T.v128_load16x4_s="~lib/builtins/v128.load16x4_s",T.v128_load16x4_u="~lib/builtins/v128.load16x4_u",T.v128_load32x2_s="~lib/builtins/v128.load32x2_s",T.v128_load32x2_u="~lib/builtins/v128.load32x2_u",T.v128_load8_splat="~lib/builtins/v128.load8_splat",T.v128_load16_splat="~lib/builtins/v128.load16_splat",T.v128_load32_splat="~lib/builtins/v128.load32_splat",T.v128_load64_splat="~lib/builtins/v128.load64_splat",T.v128_load32_zero="~lib/builtins/v128.load32_zero",T.v128_load64_zero="~lib/builtins/v128.load64_zero",T.v128_load8_lane="~lib/builtins/v128.load8_lane",T.v128_load16_lane="~lib/builtins/v128.load16_lane",T.v128_load32_lane="~lib/builtins/v128.load32_lane",T.v128_load64_lane="~lib/builtins/v128.load64_lane",T.v128_store8_lane="~lib/builtins/v128.store8_lane",T.v128_store16_lane="~lib/builtins/v128.store16_lane",T.v128_store32_lane="~lib/builtins/v128.store32_lane",T.v128_store64_lane="~lib/builtins/v128.store64_lane",T.v128_store="~lib/builtins/v128.store",T.v128_add="~lib/builtins/v128.add",T.v128_sub="~lib/builtins/v128.sub",T.v128_mul="~lib/builtins/v128.mul",T.v128_div="~lib/builtins/v128.div",T.v128_neg="~lib/builtins/v128.neg",T.v128_add_sat="~lib/builtins/v128.add_sat",T.v128_sub_sat="~lib/builtins/v128.sub_sat",T.v128_shl="~lib/builtins/v128.shl",T.v128_shr="~lib/builtins/v128.shr",T.v128_and="~lib/builtins/v128.and",T.v128_or="~lib/builtins/v128.or",T.v128_xor="~lib/builtins/v128.xor",T.v128_andnot="~lib/builtins/v128.andnot",T.v128_not="~lib/builtins/v128.not",T.v128_bitselect="~lib/builtins/v128.bitselect",T.v128_any_true="~lib/builtins/v128.any_true",T.v128_all_true="~lib/builtins/v128.all_true",T.v128_bitmask="~lib/builtins/v128.bitmask",T.v128_popcnt="~lib/builtins/v128.popcnt",T.v128_min="~lib/builtins/v128.min",T.v128_max="~lib/builtins/v128.max",T.v128_pmin="~lib/builtins/v128.pmin",T.v128_pmax="~lib/builtins/v128.pmax",T.v128_dot="~lib/builtins/v128.dot",T.v128_avgr="~lib/builtins/v128.avgr",T.v128_abs="~lib/builtins/v128.abs",T.v128_sqrt="~lib/builtins/v128.sqrt",T.v128_ceil="~lib/builtins/v128.ceil",T.v128_floor="~lib/builtins/v128.floor",T.v128_trunc="~lib/builtins/v128.trunc",T.v128_nearest="~lib/builtins/v128.nearest",T.v128_eq="~lib/builtins/v128.eq",T.v128_ne="~lib/builtins/v128.ne",T.v128_lt="~lib/builtins/v128.lt",T.v128_le="~lib/builtins/v128.le",T.v128_gt="~lib/builtins/v128.gt",T.v128_ge="~lib/builtins/v128.ge",T.v128_convert="~lib/builtins/v128.convert",T.v128_convert_low="~lib/builtins/v128.convert_low",T.v128_trunc_sat="~lib/builtins/v128.trunc_sat",T.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",T.v128_narrow="~lib/builtins/v128.narrow",T.v128_extend_low="~lib/builtins/v128.extend_low",T.v128_extend_high="~lib/builtins/v128.extend_high",T.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",T.v128_demote_zero="~lib/builtins/v128.demote_zero",T.v128_promote_low="~lib/builtins/v128.promote_low",T.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",T.v128_extmul_low="~lib/builtins/v128.extmul_low",T.v128_extmul_high="~lib/builtins/v128.extmul_high",T.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",T.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",T.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",T.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",T.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",T.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",T.v128_relaxed_min="~lib/builtins/v128.relaxed_min",T.v128_relaxed_max="~lib/builtins/v128.relaxed_max",T.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",T.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",T.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",T.i8x16="~lib/builtins/i8x16",T.i16x8="~lib/builtins/i16x8",T.i32x4="~lib/builtins/i32x4",T.i64x2="~lib/builtins/i64x2",T.f32x4="~lib/builtins/f32x4",T.f64x2="~lib/builtins/f64x2",T.i8x16_splat="~lib/builtins/i8x16.splat",T.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",T.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",T.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",T.i8x16_add="~lib/builtins/i8x16.add",T.i8x16_sub="~lib/builtins/i8x16.sub",T.i8x16_mul="~lib/builtins/i8x16.mul",T.i8x16_min_s="~lib/builtins/i8x16.min_s",T.i8x16_min_u="~lib/builtins/i8x16.min_u",T.i8x16_max_s="~lib/builtins/i8x16.max_s",T.i8x16_max_u="~lib/builtins/i8x16.max_u",T.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",T.i8x16_abs="~lib/builtins/i8x16.abs",T.i8x16_neg="~lib/builtins/i8x16.neg",T.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",T.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",T.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",T.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",T.i8x16_shl="~lib/builtins/i8x16.shl",T.i8x16_shr_s="~lib/builtins/i8x16.shr_s",T.i8x16_shr_u="~lib/builtins/i8x16.shr_u",T.i8x16_all_true="~lib/builtins/i8x16.all_true",T.i8x16_bitmask="~lib/builtins/i8x16.bitmask",T.i8x16_popcnt="~lib/builtins/i8x16.popcnt",T.i8x16_eq="~lib/builtins/i8x16.eq",T.i8x16_ne="~lib/builtins/i8x16.ne",T.i8x16_lt_s="~lib/builtins/i8x16.lt_s",T.i8x16_lt_u="~lib/builtins/i8x16.lt_u",T.i8x16_le_s="~lib/builtins/i8x16.le_s",T.i8x16_le_u="~lib/builtins/i8x16.le_u",T.i8x16_gt_s="~lib/builtins/i8x16.gt_s",T.i8x16_gt_u="~lib/builtins/i8x16.gt_u",T.i8x16_ge_s="~lib/builtins/i8x16.ge_s",T.i8x16_ge_u="~lib/builtins/i8x16.ge_u",T.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",T.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",T.i8x16_shuffle="~lib/builtins/i8x16.shuffle",T.i8x16_swizzle="~lib/builtins/i8x16.swizzle",T.i16x8_splat="~lib/builtins/i16x8.splat",T.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",T.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",T.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",T.i16x8_add="~lib/builtins/i16x8.add",T.i16x8_sub="~lib/builtins/i16x8.sub",T.i16x8_mul="~lib/builtins/i16x8.mul",T.i16x8_min_s="~lib/builtins/i16x8.min_s",T.i16x8_min_u="~lib/builtins/i16x8.min_u",T.i16x8_max_s="~lib/builtins/i16x8.max_s",T.i16x8_max_u="~lib/builtins/i16x8.max_u",T.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",T.i16x8_abs="~lib/builtins/i16x8.abs",T.i16x8_neg="~lib/builtins/i16x8.neg",T.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",T.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",T.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",T.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",T.i16x8_shl="~lib/builtins/i16x8.shl",T.i16x8_shr_s="~lib/builtins/i16x8.shr_s",T.i16x8_shr_u="~lib/builtins/i16x8.shr_u",T.i16x8_all_true="~lib/builtins/i16x8.all_true",T.i16x8_bitmask="~lib/builtins/i16x8.bitmask",T.i16x8_eq="~lib/builtins/i16x8.eq",T.i16x8_ne="~lib/builtins/i16x8.ne",T.i16x8_lt_s="~lib/builtins/i16x8.lt_s",T.i16x8_lt_u="~lib/builtins/i16x8.lt_u",T.i16x8_le_s="~lib/builtins/i16x8.le_s",T.i16x8_le_u="~lib/builtins/i16x8.le_u",T.i16x8_gt_s="~lib/builtins/i16x8.gt_s",T.i16x8_gt_u="~lib/builtins/i16x8.gt_u",T.i16x8_ge_s="~lib/builtins/i16x8.ge_s",T.i16x8_ge_u="~lib/builtins/i16x8.ge_u",T.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",T.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",T.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",T.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",T.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",T.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",T.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",T.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",T.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",T.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",T.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",T.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",T.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",T.i16x8_shuffle="~lib/builtins/i16x8.shuffle",T.i32x4_splat="~lib/builtins/i32x4.splat",T.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",T.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",T.i32x4_add="~lib/builtins/i32x4.add",T.i32x4_sub="~lib/builtins/i32x4.sub",T.i32x4_mul="~lib/builtins/i32x4.mul",T.i32x4_min_s="~lib/builtins/i32x4.min_s",T.i32x4_min_u="~lib/builtins/i32x4.min_u",T.i32x4_max_s="~lib/builtins/i32x4.max_s",T.i32x4_max_u="~lib/builtins/i32x4.max_u",T.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",T.i32x4_abs="~lib/builtins/i32x4.abs",T.i32x4_neg="~lib/builtins/i32x4.neg",T.i32x4_shl="~lib/builtins/i32x4.shl",T.i32x4_shr_s="~lib/builtins/i32x4.shr_s",T.i32x4_shr_u="~lib/builtins/i32x4.shr_u",T.i32x4_all_true="~lib/builtins/i32x4.all_true",T.i32x4_bitmask="~lib/builtins/i32x4.bitmask",T.i32x4_eq="~lib/builtins/i32x4.eq",T.i32x4_ne="~lib/builtins/i32x4.ne",T.i32x4_lt_s="~lib/builtins/i32x4.lt_s",T.i32x4_lt_u="~lib/builtins/i32x4.lt_u",T.i32x4_le_s="~lib/builtins/i32x4.le_s",T.i32x4_le_u="~lib/builtins/i32x4.le_u",T.i32x4_gt_s="~lib/builtins/i32x4.gt_s",T.i32x4_gt_u="~lib/builtins/i32x4.gt_u",T.i32x4_ge_s="~lib/builtins/i32x4.ge_s",T.i32x4_ge_u="~lib/builtins/i32x4.ge_u",T.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",T.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",T.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",T.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",T.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",T.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",T.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",T.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",T.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",T.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",T.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",T.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",T.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",T.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",T.i32x4_shuffle="~lib/builtins/i32x4.shuffle",T.i64x2_splat="~lib/builtins/i64x2.splat",T.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",T.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",T.i64x2_add="~lib/builtins/i64x2.add",T.i64x2_sub="~lib/builtins/i64x2.sub",T.i64x2_mul="~lib/builtins/i64x2.mul",T.i64x2_abs="~lib/builtins/i64x2.abs",T.i64x2_neg="~lib/builtins/i64x2.neg",T.i64x2_shl="~lib/builtins/i64x2.shl",T.i64x2_shr_s="~lib/builtins/i64x2.shr_s",T.i64x2_shr_u="~lib/builtins/i64x2.shr_u",T.i64x2_all_true="~lib/builtins/i64x2.all_true",T.i64x2_bitmask="~lib/builtins/i64x2.bitmask",T.i64x2_eq="~lib/builtins/i64x2.eq",T.i64x2_ne="~lib/builtins/i64x2.ne",T.i64x2_lt_s="~lib/builtins/i64x2.lt_s",T.i64x2_lt_u="~lib/builtins/i64x2.lt_u",T.i64x2_le_s="~lib/builtins/i64x2.le_s",T.i64x2_le_u="~lib/builtins/i64x2.le_u",T.i64x2_gt_s="~lib/builtins/i64x2.gt_s",T.i64x2_gt_u="~lib/builtins/i64x2.gt_u",T.i64x2_ge_s="~lib/builtins/i64x2.ge_s",T.i64x2_ge_u="~lib/builtins/i64x2.ge_u",T.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",T.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",T.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",T.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",T.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",T.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",T.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",T.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",T.i64x2_shuffle="~lib/builtins/i64x2.shuffle",T.f32x4_splat="~lib/builtins/f32x4.splat",T.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",T.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",T.f32x4_add="~lib/builtins/f32x4.add",T.f32x4_sub="~lib/builtins/f32x4.sub",T.f32x4_mul="~lib/builtins/f32x4.mul",T.f32x4_div="~lib/builtins/f32x4.div",T.f32x4_neg="~lib/builtins/f32x4.neg",T.f32x4_min="~lib/builtins/f32x4.min",T.f32x4_max="~lib/builtins/f32x4.max",T.f32x4_pmin="~lib/builtins/f32x4.pmin",T.f32x4_pmax="~lib/builtins/f32x4.pmax",T.f32x4_abs="~lib/builtins/f32x4.abs",T.f32x4_sqrt="~lib/builtins/f32x4.sqrt",T.f32x4_ceil="~lib/builtins/f32x4.ceil",T.f32x4_floor="~lib/builtins/f32x4.floor",T.f32x4_trunc="~lib/builtins/f32x4.trunc",T.f32x4_nearest="~lib/builtins/f32x4.nearest",T.f32x4_eq="~lib/builtins/f32x4.eq",T.f32x4_ne="~lib/builtins/f32x4.ne",T.f32x4_lt="~lib/builtins/f32x4.lt",T.f32x4_le="~lib/builtins/f32x4.le",T.f32x4_gt="~lib/builtins/f32x4.gt",T.f32x4_ge="~lib/builtins/f32x4.ge",T.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",T.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",T.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",T.f32x4_shuffle="~lib/builtins/f32x4.shuffle",T.f64x2_splat="~lib/builtins/f64x2.splat",T.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",T.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",T.f64x2_add="~lib/builtins/f64x2.add",T.f64x2_sub="~lib/builtins/f64x2.sub",T.f64x2_mul="~lib/builtins/f64x2.mul",T.f64x2_div="~lib/builtins/f64x2.div",T.f64x2_neg="~lib/builtins/f64x2.neg",T.f64x2_min="~lib/builtins/f64x2.min",T.f64x2_max="~lib/builtins/f64x2.max",T.f64x2_pmin="~lib/builtins/f64x2.pmin",T.f64x2_pmax="~lib/builtins/f64x2.pmax",T.f64x2_abs="~lib/builtins/f64x2.abs",T.f64x2_sqrt="~lib/builtins/f64x2.sqrt",T.f64x2_ceil="~lib/builtins/f64x2.ceil",T.f64x2_floor="~lib/builtins/f64x2.floor",T.f64x2_trunc="~lib/builtins/f64x2.trunc",T.f64x2_nearest="~lib/builtins/f64x2.nearest",T.f64x2_eq="~lib/builtins/f64x2.eq",T.f64x2_ne="~lib/builtins/f64x2.ne",T.f64x2_lt="~lib/builtins/f64x2.lt",T.f64x2_le="~lib/builtins/f64x2.le",T.f64x2_gt="~lib/builtins/f64x2.gt",T.f64x2_ge="~lib/builtins/f64x2.ge",T.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",T.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",T.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",T.f64x2_shuffle="~lib/builtins/f64x2.shuffle",T.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",T.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",T.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",T.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",T.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",T.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",T.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",T.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",T.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",T.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",T.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",T.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",T.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",T.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",T.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",T.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",T.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",T.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",T.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",T.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",T.i31_new="~lib/builtins/i31.new",T.i31_get="~lib/builtins/i31.get",T.data_end="~lib/memory/__data_end",T.stack_pointer="~lib/memory/__stack_pointer",T.heap_base="~lib/memory/__heap_base",T.rtti_base="~lib/rt/__rtti_base",T.visit_globals="~lib/rt/__visit_globals",T.visit_members="~lib/rt/__visit_members",T.tostack="~lib/rt/__tostack",T.NaN="~lib/number/NaN",T.Infinity="~lib/number/Infinity",T.isNaN="~lib/number/isNaN",T.isFinite="~lib/number/isFinite",T.ERROR="~lib/diagnostics/ERROR",T.WARNING="~lib/diagnostics/WARNING",T.INFO="~lib/diagnostics/INFO",T.Function="~lib/function/Function",T.Function_call="~lib/function/Function#call",T.memory_size="~lib/memory/memory.size",T.memory_grow="~lib/memory/memory.grow",T.memory_copy="~lib/memory/memory.copy",T.memory_fill="~lib/memory/memory.fill",T.memory_data="~lib/memory/memory.data",T.Int8Array="~lib/typedarray/Int8Array",T.Uint8Array="~lib/typedarray/Uint8Array",T.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",T.Int16Array="~lib/typedarray/Int16Array",T.Uint16Array="~lib/typedarray/Uint16Array",T.Int32Array="~lib/typedarray/Int32Array",T.Uint32Array="~lib/typedarray/Uint32Array",T.Int64Array="~lib/typedarray/Int64Array",T.Uint64Array="~lib/typedarray/Uint64Array",T.Float32Array="~lib/typedarray/Float32Array",T.Float64Array="~lib/typedarray/Float64Array",T.String_raw="~lib/string/String.raw",T.String_eq="~lib/string/String.__eq",T.String_ne="~lib/string/String.__ne",T.String_not="~lib/string/String.__not",T.Object="~lib/object/Object"))(b||={});var $a=class{constructor(n,e,t,i,s){this.resolver=n;this.node=e;this.ctxElement=t;this.ctxTypes=i;this.reportMode=s}},cs=class{constructor(n,e,t=e.type,i=e.identifierNode){this.compiler=n;this.element=e;this.contextualType=t;this.reportNode=i}},so=class{constructor(n,e,t,i,s,l,a,o){this.compiler=n;this.prototype=e;this.typeArguments=t;this.operands=i;this.thisOperand=s;this.contextualType=l;this.reportNode=a;this.contextIsExact=o}},ar=new Map,E=new Map,Vt=new Map,ct=new Map;function e1(r){let n=r.resolver,e=r.node,t=r.ctxElement,i=r.ctxTypes,s=r.reportMode,l=n.ensureOneTypeArgument(e,s);if(!l)return null;let a=n.resolveType(l,null,t,i,s);if(!a)return null;switch(a.kind){case 1:case 2:case 3:return p.i32;case 5:if(!n.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!n.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 25:return p.void;default:assert(!1)}return null}ar.set(z.native,e1);function t1(r){let n=r.resolver,e=r.node,t=r.ctxElement,i=r.ctxTypes,s=r.reportMode,l=n.ensureOneTypeArgument(e,s);if(!l)return null;let a=n.resolveType(l,null,t,i,s);if(!a)return null;let o=a.classReference;if(!o)return s==0&&n.error(2329,l.range,a.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&n.error(2329,l.range,a.toString()),null}ar.set(z.indexof,t1);function r1(r){let n=r.resolver,e=r.node,t=r.ctxElement,i=r.ctxTypes,s=r.reportMode,l=n.ensureOneTypeArgument(e,s);if(!l)return null;let a=n.resolveType(l,null,t,i,s);if(!a)return null;let o=a.getClassOrWrapper(n.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&n.error(2329,l.range,a.toString()),null}ar.set(z.valueof,r1);function i1(r){let n=r.resolver,e=r.node,t=r.ctxElement,i=r.ctxTypes,s=r.reportMode,l=n.ensureOneTypeArgument(e,s);if(!l)return null;let a=n.resolveType(l,null,t,i,s);if(!a)return null;let o=a.getSignature();return o?o.returnType:(s==0&&n.error(2757,l.range,a.toString()),null)}ar.set(z.returnof,i1);function n1(r){let n=r.resolver,e=r.node,t=r.ctxElement,i=r.ctxTypes,s=r.reportMode,l=n.ensureOneTypeArgument(e,s);if(!l)return null;let a=n.resolveType(l,null,t,i,s);return a?a.isNullableReference?a.nonNullableType:a:null}ar.set(z.nonnull,n1);var Ui=0;function s1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isBooleanValue?1:0)):e.unreachable()}E.set(b.isBoolean,s1);function l1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isIntegerValue?1:0)):e.unreachable()}E.set(b.isInteger,l1);function a1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}E.set(b.isSigned,a1);function o1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isFloatValue?1:0)):e.unreachable()}E.set(b.isFloat,o1);function u1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isVectorValue?1:0)):e.unreachable()}E.set(b.isVector,u1);function p1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isReference?1:0)):e.unreachable()}E.set(b.isReference,p1);function c1(r){let n=r.compiler,e=n.module,t=ze(r);if(n.currentType=p.bool,!t)return e.unreachable();let i=t.getClass();return Pe(r,e.i32(i&&i.isAssignableTo(n.program.stringInstance)?1:0))}E.set(b.isString,c1);E.set("~lib/json/__jsonReadFields",r=>r.compiler.compileJsonReadFields(r));E.set("~lib/json/__jsonWriteFields",r=>r.compiler.compileJsonWriteFields(r));function f1(r){let n=r.compiler,e=n.module,t=ze(r);if(n.currentType=p.bool,!t)return e.unreachable();let i=t.getClass();return Pe(r,e.i32(i&&i.extendsPrototype(n.program.arrayPrototype)?1:0))}E.set(b.isArray,f1);function _1(r){let n=r.compiler,e=n.module,t=ze(r);if(n.currentType=p.bool,!t)return e.unreachable();let i=t.getClass();return Pe(r,e.i32(i&&i.isArrayLike?1:0))}E.set(b.isArrayLike,_1);function h1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isFunction?1:0)):e.unreachable()}E.set(b.isFunction,h1);function d1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isNullableReference?1:0)):e.unreachable()}E.set(b.isNullable,d1);function m1(r){let n=r.compiler,e=n.module;if(n.currentType=p.bool,k(r)|H(r,1))return e.unreachable();let t=n.resolver.lookupExpression(r.operands[0],n.currentFlow,p.auto,1);return e.i32(t?1:0)}E.set(b.isDefined,m1);function y1(r){let n=r.compiler,e=n.module;if(n.currentType=p.bool,k(r)|H(r,1))return e.unreachable();let t=n.compileExpression(r.operands[0],p.auto);return n.currentType=p.bool,qa(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],ae(t)):e.i32(e.isConstExpression(t)?1:0)}E.set(b.isConstant,y1);function g1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.isManaged?1:0)):e.unreachable()}E.set(b.isManaged,g1);function b1(r){let n=r.compiler,e=n.module,t=ze(r);return n.currentType=p.bool,t?Pe(r,e.i32(t.kind==25?1:0)):e.unreachable()}E.set(b.isVoid,b1);function x1(r){let n=r.compiler,e=n.module,t=ze(r);if(n.currentType=p.i32,!t)return e.unreachable();let i=t.signatureReference;return i?Pe(r,e.i32(i.parameterTypes.length)):(n.error(2757,r.reportNode.range,t.toString()),e.unreachable())}E.set(b.lengthof,x1);function T1(r){let n=r.compiler,e=n.module;if(n.currentType=n.options.usizeType,Y(r)|H(r,0))return e.unreachable();let t=r.typeArguments[0],i=t.byteSize;return i?lo(n,i64_new(i),r.contextualType):(n.error(203,r.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable())}E.set(b.sizeof,T1);function E1(r){let n=r.compiler,e=n.module;if(n.currentType=n.options.usizeType,Y(r)|H(r,0))return e.unreachable();let t=r.typeArguments[0],i=t.byteSize;return kt(i)?lo(n,i64_new(ctz(i)),r.contextualType):(n.error(203,r.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable())}E.set(b.alignof,E1);function A1(r){let n=r.compiler,e=n.module;if(n.currentType=n.options.usizeType,Y(r)|Fe(r,0,1))return e.unreachable();let t=r.operands,i=r.contextualType,s=r.typeArguments[0],l=s.getClassOrWrapper(n.program);if(!l)return n.error(203,r.reportNode.typeArgumentsRange,"offsetof",s.toString()),n.options.isWasm64?i.isIntegerValue&&i.size<=32&&(n.currentType=p.u32):i.isIntegerValue&&i.size==64&&(n.currentType=p.u64),e.unreachable();if(t.length){let a=t[0];if(!a.isLiteralKind(2))return n.error(1141,t[0].range),e.unreachable();let o=a.value,u=l.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),lo(n,i64_new(c.memoryOffset),i)}return n.error(2460,a.range,l.internalName,o),e.unreachable()}return lo(n,i64_new(l.nextMemoryOffset),i)}E.set(b.offsetof,A1);function v1(r){let n=r.compiler,e=n.module,t=ze(r);if(!t)return n.currentType=n.program.stringInstance.type,e.unreachable();let i;if(t.isInternalReference){let s=t.getClass();s?i=s.name:(assert(t.getSignature()),i="Function")}else i=t.toString();return Pe(r,n.ensureStaticString(i))}E.set(b.nameof,v1);function S1(r){let n=r.compiler,e=n.module,t=ze(r);if(n.currentType=p.u32,!t)return e.unreachable();let i=t.getSignature();if(i)return Pe(r,e.i32(i.id));let s=t.getClassOrWrapper(n.program);return s&&!s.hasDecorator(16)?Pe(r,e.i32(s.id)):(n.error(203,r.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}E.set(b.idof,S1);function I1(r){let n=r.element;if(n.is(1048576)){let e=r.compiler.module;e.addGlobal(n.internalName,P.F64,!1,e.f64(NaN))}}Vt.set(b.NaN,I1);function k1(r){let n=r.compiler,e=n.module;return r.contextualType==p.f32?(n.currentType=p.f32,e.f32(NaN)):(n.currentType=p.f64,e.f64(NaN))}ct.set(b.NaN,k1);function F1(r){let n=r.element;if(n.is(1048576)){let e=r.compiler.module;e.addGlobal(n.internalName,P.F64,!1,e.f64(1/0))}}Vt.set(b.Infinity,F1);function R1(r){let n=r.compiler,e=n.module;return r.contextualType==p.f32?(n.currentType=p.f32,e.f32(1/0)):(n.currentType=p.f64,e.f64(1/0))}ct.set(b.Infinity,R1);function fc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.typeArguments,i=t?n.compileExpression(r.operands[0],t[0],5):n.compileExpression(r.operands[0],p.i32,4),s=n.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,i);case 5:case 10:return e.unary(142,i);case 4:case 9:return e.unary(1,i)}return n.error(203,r.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}E.set(b.clz,fc);function _c(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],5):n.compileExpression(t[0],p.i32,4),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return n.error(203,r.reportNode.typeArgumentsRange,"ctz",l.toString()),e.unreachable()}E.set(b.ctz,_c);function hc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],5):n.compileExpression(t[0],p.i32,4),l=n.currentType;if(l.isValue)switch(n.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return n.error(203,r.reportNode.typeArgumentsRange,"popcnt",l.toString()),e.unreachable()}E.set(b.popcnt,hc);function dc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],5):n.compileExpression(t[0],p.i32,4),l=n.currentType;if(l.isValue){let a=n.compileExpression(t[1],l,1);switch(l.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=n.currentFlow,u=o.getTempLocal(l);o.setLocalFlag(u.index,2);let c=o.getTempLocal(l);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,a,!1),e.i32(l.size-1))),e.binary(12,e.local_get(u.index,P.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,P.I32)),e.i32(l.size-1))))}case 3:case 8:return e.binary(13,s,a);case 4:case 9:return e.binary(38,s,a);case 5:case 10:return e.binary(230,s,a)}}return n.error(203,r.reportNode.typeArgumentsRange,"rotl",l.toString()),e.unreachable()}E.set(b.rotl,dc);function mc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],5):n.compileExpression(t[0],p.i32,4),l=n.currentType;if(l.isValue){let a=n.compileExpression(t[1],l,1);switch(l.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=n.currentFlow,u=o.getTempLocal(l);o.setLocalFlag(u.index,2);let c=o.getTempLocal(l);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,a,!1),e.i32(l.size-1))),e.binary(10,e.local_get(u.index,P.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,P.I32)),e.i32(l.size-1))))}case 3:case 8:return e.binary(14,s,a);case 4:case 9:return e.binary(39,s,a);case 5:case 10:return e.binary(231,s,a)}}return n.error(203,r.reportNode.typeArgumentsRange,"rotr",l.toString()),e.unreachable()}E.set(b.rotr,mc);function yc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],5):n.compileExpression(t[0],p.auto,4),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let a=n.currentFlow,o=a.getTempLocal(p.i32),u=a.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,P.I32)),e.local_get(u.index,P.I32))}case 5:{let a=n.options,o=n.currentFlow,u=o.getTempLocal(a.usizeType),c=o.getTempLocal(a.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),n.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,a.sizeTypeRef)),e.local_get(c.index,a.sizeTypeRef))}case 4:{let a=n.currentFlow,o=a.getTempLocal(p.i64),u=a.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,P.I64)),e.local_get(u.index,P.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return n.error(203,r.reportNode.typeArgumentsRange,"abs",l.toString()),e.unreachable()}E.set(b.abs,yc);function gc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],5):n.compileExpression(t[0],p.auto,4),a=n.currentType;if(a.isValue){let o;!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a,4),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,5))):o=n.compileExpression(t[1],a,5);let u=-1;switch(a.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,l,o);case 12:return e.binary(69,l,o)}if(u!=-1){let c=n.currentFlow,f=a.toRef(),_=c.getTempLocal(a);c.setLocalFlag(_.index,2);let h=c.getTempLocal(a);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,l,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return n.error(203,r.reportNode.typeArgumentsRange,"max",a.toString()),e.unreachable()}E.set(b.max,gc);function bc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],5):n.compileExpression(t[0],p.auto,4),a=n.currentType;if(a.isValue){let o;!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a,4),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,5))):o=n.compileExpression(t[1],a,5);let u=-1;switch(a.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,l,o);case 12:return e.binary(68,l,o)}if(u!=-1){let c=n.currentFlow,f=a.toRef(),_=c.getTempLocal(a);c.setLocalFlag(_.index,2);let h=c.getTempLocal(a);return c.setLocalFlag(h.index,2),e.select(e.local_tee(_.index,l,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(h.index,f)))}}return n.error(203,r.reportNode.typeArgumentsRange,"min",a.toString()),e.unreachable()}E.set(b.min,bc);function xc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto,0),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return n.error(203,r.reportNode.typeArgumentsRange,"ceil",l.toString()),e.unreachable()}E.set(b.ceil,xc);function Tc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto,0),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return n.error(203,r.reportNode.typeArgumentsRange,"floor",l.toString()),e.unreachable()}E.set(b.floor,Tc);function Ec(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.f64,0),l=n.currentType;if(l.isValue){let a=n.compileExpression(t[1],l,1);switch(l.kind){case 11:return e.binary(54,s,a);case 12:return e.binary(67,s,a)}}return n.error(203,r.reportNode.typeArgumentsRange,"copysign",l.toString()),e.unreachable()}E.set(b.copysign,Ec);function Ac(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto,0),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return n.error(203,r.reportNode.typeArgumentsRange,"nearest",l.toString()),e.unreachable()}E.set(b.nearest,Ac);function fs(r){let n=r.compiler,e=n.module;if(Y(r,!0)|H(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let l=n.compileExpression(t[0],p.f32,1);return n.currentType=s,e.unary(33,l)}case 4:case 9:{let l=n.compileExpression(t[0],p.f64,1);return n.currentType=s,e.unary(34,l)}case 5:case 10:{let l=n.options.isWasm64,a=n.compileExpression(t[0],l?p.f64:p.f32,1);return n.currentType=s,e.unary(l?34:33,a)}case 11:{let l=n.compileExpression(t[0],p.i32,1);return n.currentType=p.f32,e.unary(45,l)}case 12:{let l=n.compileExpression(t[0],p.i64,1);return n.currentType=p.f64,e.unary(46,l)}}return n.error(203,r.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}E.set(b.reinterpret,fs);function vc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.f64,0),l=n.currentType;if(l.isValue)switch(l.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return n.error(203,r.reportNode.typeArgumentsRange,"sqrt",l.toString()),e.unreachable()}E.set(b.sqrt,vc);function Sc(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,1))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto,0),l=n.currentType;if(l.isValue)switch(l.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return n.error(203,r.reportNode.typeArgumentsRange,"trunc",l.toString()),e.unreachable()}E.set(b.trunc,Sc);function w1(r){let n=r.compiler,e=n.module;if(oe(r)|H(r,1))return n.currentType=p.bool,e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto),l=n.currentType;if(n.currentType=p.bool,l.isValue)switch(l.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(ee(s)==8)return e.binary(58,s,e.local_get(We(s),P.F32));let o=n.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F32))}case 12:{if(ee(s)==8)return e.binary(71,s,e.local_get(We(s),P.F64));let o=n.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F64))}}return n.error(203,r.reportNode.typeArgumentsRange,"isNaN",l.toString()),e.unreachable()}E.set(b.isNaN,w1);function C1(r){let n=r.compiler,e=n.module;if(oe(r)|H(r,1))return n.currentType=p.bool,e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto),l=n.currentType;if(n.currentType=p.bool,l.isValue)switch(l.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(ee(s)==8)return e.binary(57,e.binary(51,s,e.local_get(We(s),P.F32)),e.f32(0));let o=n.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F32)),e.f32(0))}case 12:{if(ee(s)==8)return e.binary(70,e.binary(64,s,e.local_get(We(s),P.F64)),e.f64(0));let o=n.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,P.F64)),e.f64(0))}}return n.error(203,r.reportNode.typeArgumentsRange,"isFinite",l.toString()),e.unreachable()}E.set(b.isFinite,C1);function P1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;n.runtimeFeatures|=4,e.addGlobal(t.internalName,i.toRef(),!0,n.makeZero(i))}Vt.set(b.heap_base,P1);function N1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;return n.runtimeFeatures|=4,n.currentType=i,e.global_get(t.internalName,i.toRef())}ct.set(b.heap_base,N1);function B1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;n.runtimeFeatures|=1,e.addGlobal(t.internalName,i.toRef(),!0,n.makeZero(i))}Vt.set(b.data_end,B1);function L1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;return n.runtimeFeatures|=1,n.currentType=i,e.global_get(t.internalName,i.toRef())}ct.set(b.data_end,L1);function M1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;n.runtimeFeatures|=2,e.addGlobal(t.internalName,i.toRef(),!0,n.makeZero(i))}Vt.set(b.stack_pointer,M1);function z1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;return n.runtimeFeatures|=2,n.currentType=i,e.global_get(t.internalName,i.toRef())}ct.set(b.stack_pointer,z1);function G1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;n.runtimeFeatures|=8,e.addGlobal(t.internalName,i.toRef(),!0,n.makeZero(i))}Vt.set(b.rtti_base,G1);function D1(r){let n=r.compiler,e=n.module,t=r.element,i=t.type;return n.runtimeFeatures|=8,n.currentType=i,e.global_get(t.internalName,i.toRef())}ct.set(b.rtti_base,D1);function Me(r){let n=r.compiler,e=n.module;if(Y(r,!0)|Fe(r,1,3))return e.unreachable();let t=r.operands,i=r.typeArguments,s=r.contextualType,l=i[0],a=s!=p.auto&&l.isIntegerValue&&s.isIntegerValue&&s.size>l.size?s:l;if(!a.isMemory)return n.error(203,r.reportNode.typeArgumentsRange,"load",a.toString()),n.currentType=p.void,e.unreachable();let o=n.compileExpression(t[0],n.options.usizeType,1),u=t.length,c=0,f=l.byteSize;return u>=2&&(c=it(t[1],n),c<0||u==3&&(f=Ut(t[2],f,n),f<0))?(n.currentType=a,e.unreachable()):(n.currentType=a,e.load(l.byteSize,l.isSignedIntegerValue,o,a.toRef(),c,f))}E.set(b.load,Me);function ft(r){let n=r.compiler,e=n.module;if(n.currentType=p.void,Y(r)|Fe(r,2,4))return e.unreachable();let t=r.operands,i=t.length,s=r.typeArguments,l=r.contextualType,a=s[0],o=n.compileExpression(t[0],n.options.usizeType,1),u=r.contextIsExact?n.compileExpression(t[1],l,1):n.compileExpression(t[1],a,a.isIntegerValue?0:1),c=n.currentType;if(!c.isMemory)return n.error(203,r.reportNode.typeArgumentsRange,"store",c.toString()),n.currentType=p.void,e.unreachable();a.isIntegerValue&&(!c.isIntegerValue||c.size<a.size)&&(u=n.convertExpression(u,c,a,!1,t[1]),c=a);let f=0,_=a.byteSize;if(i>=3){if(f=it(t[2],n),f<0)return n.currentType=p.void,e.unreachable();if(i==4&&(_=Ut(t[3],_,n),_<0))return n.currentType=p.void,e.unreachable()}return n.currentType=p.void,e.store(a.byteSize,o,u,c.toRef(),f,_)}E.set(b.store,ft);function _s(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isIntegerValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isIntegerValue)return n.makeRem(l,o,a,r.reportNode)}return n.error(203,r.reportNode.typeArgumentsRange,"rem",a.toString()),e.unreachable()}E.set(b.rem,_s);function hs(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.makeAdd(l,o,a)}return n.error(203,r.reportNode.typeArgumentsRange,"add",a.toString()),e.unreachable()}E.set(b.add,hs);function ds(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.makeSub(l,o,a)}return n.error(203,r.reportNode.typeArgumentsRange,"sub",a.toString()),e.unreachable()}E.set(b.sub,ds);function ms(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.makeMul(l,o,a)}return n.error(203,r.reportNode.typeArgumentsRange,"mul",a.toString()),e.unreachable()}E.set(b.mul,ms);function Gr(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.makeDiv(l,o,a)}return n.error(203,r.reportNode.typeArgumentsRange,"div",a.toString()),e.unreachable()}E.set(b.div,Gr);function ys(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.currentType=p.i32,n.makeEq(l,o,a,r.reportNode)}return n.error(203,r.reportNode.typeArgumentsRange,"eq",a.toString()),e.unreachable()}E.set(b.eq,ys);function gs(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=t[0],l=i?n.compileExpression(s,i[0],1):n.compileExpression(t[0],p.auto),a=n.currentType;if(a.isValue){let o;if(!i&&s.isNumericLiteral?(o=n.compileExpression(t[1],a),n.currentType!=a&&(l=n.compileExpression(s,a=n.currentType,1))):o=n.compileExpression(t[1],a,1),a.isNumericValue)return n.currentType=p.i32,n.makeNe(l,o,a,r.reportNode)}return n.error(203,r.reportNode.typeArgumentsRange,"ne",a.toString()),e.unreachable()}E.set(b.ne,gs);function pr(r){let n=r.compiler,e=n.module;if(Z(r,32)|Y(r,!0)|Fe(r,1,2))return e.unreachable();let t=r.operands,i=r.typeArguments,s=r.contextualType,l=i[0],a=l.isIntegerValue&&s.isIntegerValue&&s.size>l.size?s:l;if(!l.isIntegerValue)return n.error(203,r.reportNode.typeArgumentsRange,"atomic.load",l.toString()),n.currentType=a,e.unreachable();let o=n.compileExpression(t[0],n.options.usizeType,1),u=t.length==2?it(t[1],n):0;return u<0?(n.currentType=a,e.unreachable()):(n.currentType=a,e.atomic_load(l.byteSize,o,a.toRef(),u))}E.set(b.atomic_load,pr);function cr(r){let n=r.compiler,e=n.module;if(Z(r,32)|Y(r)|Fe(r,2,3))return e.unreachable();let t=r.operands,i=r.typeArguments,s=r.contextualType,l=i[0];if(!l.isIntegerValue)return n.error(203,r.reportNode.typeArgumentsRange,"atomic.store",l.toString()),n.currentType=p.void,e.unreachable();let a=n.compileExpression(t[0],n.options.usizeType,1),o=r.contextIsExact?n.compileExpression(t[1],s,1):n.compileExpression(t[1],l,l.isIntegerValue?0:1),u=n.currentType;l.isIntegerValue&&(!u.isIntegerValue||u.size<l.size)&&(o=n.convertExpression(o,u,l,!1,t[1]),u=l);let c=t.length==3?it(t[2],n):0;return c<0?(n.currentType=p.void,e.unreachable()):(n.currentType=p.void,e.atomic_store(l.byteSize,a,o,u.toRef(),c))}E.set(b.atomic_store,cr);function Vi(r,n,e){let t=r.compiler,i=t.module;if(Z(r,32)|Y(r,!0)|Fe(r,2,3))return i.unreachable();let s=r.operands,l=r.typeArguments,a=r.contextualType,o=l[0];if(!o.isIntegerValue||o.size<8)return t.error(203,r.reportNode.typeArgumentsRange,e,o.toString()),i.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),c=r.contextIsExact?t.compileExpression(s[1],a,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),f=t.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=t.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?it(s[2],t):0;return _<0?(t.currentType=f,i.unreachable()):(t.currentType=f,i.atomic_rmw(n,o.byteSize,_,u,c,f.toRef()))}function fr(r){return Vi(r,0,"atomic.add")}E.set(b.atomic_add,fr);function _r(r){return Vi(r,1,"atomic.sub")}E.set(b.atomic_sub,_r);function hr(r){return Vi(r,2,"atomic.and")}E.set(b.atomic_and,hr);function dr(r){return Vi(r,3,"atomic.or")}E.set(b.atomic_or,dr);function mr(r){return Vi(r,4,"atomic.xor")}E.set(b.atomic_xor,mr);function yr(r){return Vi(r,5,"atomic.xchg")}E.set(b.atomic_xchg,yr);function gr(r){let n=r.compiler,e=n.module;if(Z(r,32)|Y(r,!0)|Fe(r,3,4))return e.unreachable();let t=r.operands,i=r.typeArguments,s=r.contextualType,l=i[0];if(!l.isIntegerValue||l.size<8)return n.error(203,r.reportNode.typeArgumentsRange,"atomic.cmpxchg",l.toString()),e.unreachable();let a=n.compileExpression(t[0],n.options.usizeType,1),o=r.contextIsExact?n.compileExpression(t[1],s,1):n.compileExpression(t[1],l,l.isIntegerValue?0:1),u=n.currentType,c=n.compileExpression(t[2],u,1);l.isIntegerValue&&(!u.isIntegerValue||u.size<l.size)&&(o=n.convertExpression(o,u,l,!1,t[1]),c=n.convertExpression(c,u,l,!1,t[2]),u=l);let f=t.length==4?it(t[3],n):0;return f<0?(n.currentType=u,e.unreachable()):(n.currentType=u,e.atomic_cmpxchg(l.byteSize,f,a,o,c,u.toRef()))}E.set(b.atomic_cmpxchg,gr);function Ic(r){let n=r.compiler,e=n.module;if(Z(r,32)|Y(r)|Fe(r,2,3))return n.currentType=p.i32,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=n.compileExpression(t[1],s,1),o=t.length==3?n.compileExpression(t[2],p.i64,1):e.i64(-1,-1);switch(n.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(l,a,o,s.toRef())}return n.error(203,r.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}E.set(b.atomic_wait,Ic);function U1(r){let n=r.compiler,e=n.module;if(Z(r,32)|k(r)|Fe(r,1,2))return n.currentType=p.i32,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],n.options.usizeType,1),s=t.length==2?n.compileExpression(t[1],p.i32,1):e.i32(-1);return n.currentType=p.i32,e.atomic_notify(i,s)}E.set(b.atomic_notify,U1);function V1(r){let n=r.compiler,e=n.module;return n.currentType=p.void,Z(r,32)|k(r)|H(r,0)?e.unreachable():e.atomic_fence()}E.set(b.atomic_fence,V1);function O1(r){let n=r.compiler,e=n.module;if(oe(r,!0)|H(r,3))return e.unreachable();let t=r.operands,i=r.typeArguments,s=i?n.compileExpression(t[0],i[0],1):n.compileExpression(t[0],p.auto),l=n.currentType;if(!l.isAny(384))return n.error(203,r.reportNode.typeArgumentsRange,"select",l.toString()),e.unreachable();let a=n.compileExpression(t[1],l,1),o=n.makeIsTrueish(n.compileExpression(t[2],p.bool),n.currentType,t[2]);return n.currentType=l,e.select(s,a,o)}E.set(b.select,O1);function q1(r){return k(r),H(r,0),r.compiler.module.unreachable()}E.set(b.unreachable,q1);function W1(r){let n=r.compiler,e=n.module;return n.currentType=p.i32,k(r)|H(r,0)?e.unreachable():e.memory_size()}E.set(b.memory_size,W1);function K1(r){let n=r.compiler,e=n.module;return n.currentType=p.i32,k(r)|H(r,1)?e.unreachable():e.memory_grow(n.compileExpression(r.operands[0],p.i32,1))}E.set(b.memory_grow,K1);function j1(r){let n=r.compiler,e=n.module;if(n.currentType=p.void,k(r)|H(r,3))return e.unreachable();let t=r.operands;if(!n.options.hasFeature(8)){let o=n.resolver.resolveFunction(r.prototype,null);return n.currentType=p.void,!o||!n.compileFunction(o,!0)?e.unreachable():n.compileCallDirect(o,t,r.reportNode)}let i=n.options.usizeType,s=n.compileExpression(t[0],i,1),l=n.compileExpression(t[1],i,1),a=n.compileExpression(t[2],i,1);return n.currentType=p.void,e.memory_copy(s,l,a)}E.set(b.memory_copy,j1);function Q1(r){let n=r.compiler,e=n.module;if(n.currentType=p.void,k(r)|H(r,3))return e.unreachable();let t=r.operands;if(!n.options.hasFeature(8)){let o=n.resolver.resolveFunction(r.prototype,null);return n.currentType=p.void,!o||!n.compileFunction(o,!0)?e.unreachable():n.compileCallDirect(o,t,r.reportNode)}let i=n.options.usizeType,s=n.compileExpression(t[0],i,1),l=n.compileExpression(t[1],p.u8,1),a=n.compileExpression(t[2],i,1);return n.currentType=p.void,e.memory_fill(s,l,a)}E.set(b.memory_fill,Q1);function H1(r){let n=r.compiler,e=n.module;if(n.currentType=p.i32,oe(r)|Fe(r,1,2))return e.unreachable();let t=r.typeArguments,i=r.operands,s=i.length,l=n.options.usizeType,a;if(t&&t.length>0){let o=t[0];if(!o.isValue)return n.error(203,r.reportNode.typeArgumentsRange,"memory.data",o.toString()),n.currentType=l,e.unreachable();let u=i[0];if(u.kind!=17||u.literalKind!=5)return n.error(227,i[0].range),n.currentType=l,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),h=!0;for(let m=0;m<f;++m){let g=c[m];if(g.kind!=20){let x=n.compileExpression(g,o,1),v=e.runExpression(x,1);v?x=v:h=!1,_[m]=x}else _[m]=n.makeZero(o)}if(!h)return n.error(220,u.range),n.currentType=l,e.unreachable();let d=o.byteSize;if(s==2&&(d=Ut(i[1],d,n),d<0))return n.currentType=l,e.unreachable();let y=new Uint8Array(f*o.byteSize);assert(n.writeStaticBuffer(y,0,o,_)==y.byteLength),a=n.addAlignedMemorySegment(y,d).offset}else{let o=n.compileExpression(i[0],p.i32,1),u=e.runExpression(o,1);if(!u)return n.error(220,i[0].range),n.currentType=l,e.unreachable();let c=ie(u);if(c<1)return n.error(222,i[0].range,"1",i32.MAX_VALUE.toString()),n.currentType=l,e.unreachable();let f=16;if(s==2&&(f=Ut(i[1],f,n),f<0))return n.currentType=l,e.unreachable();a=n.addAlignedMemorySegment(new Uint8Array(c),f).offset}return n.currentType=l,l==p.usize32?(assert(!i64_high(a)),e.i32(i64_low(a))):e.i64(i64_low(a),i64_high(a))}E.set(b.memory_data,H1);function X1(r){let n=r.compiler,e=n.module;if(k(r)|H(r,1))return e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.i32,1);return n.currentType=p.i31,e.i31_new(i)}E.set(b.i31_new,X1);function Z1(r){let n=r.compiler,e=n.module;if(k(r)|H(r,1))return e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.i31.asNullable(),1);return r.contextualType.is(2)?(n.currentType=p.u32,e.i31_get(i,!1)):(n.currentType=p.i32,e.i31_get(i,!0))}E.set(b.i31_get,Z1);function Y1(r){let n=r.compiler,e=n.module;if(Y(r,!0)|H(r,1))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.auto),a=n.currentType;return n.currentType=s,a.isChangeableTo(s)?l:(n.error(202,r.reportNode.range,a.toString(),s.toString()),e.unreachable())}E.set(b.changetype,Y1);function $1(r){let n=r.compiler,e=n.module,t=r.typeArguments;if(oe(r,!0)|Fe(r,1,2))return t&&(assert(t.length),n.currentType=t[0].nonNullableType),e.unreachable();let i=r.operands,s=r.contextualType,l=t?n.compileExpression(i[0],t[0],5):n.compileExpression(i[0],p.bool,4),a=n.currentType;if(n.currentType=a.nonNullableType,n.options.noAssert)return l;let o=e.runExpression(l,0);if(o)switch(ae(o)){case P.I32:{if(ie(o))return l;break}case P.I64:{if(ke(o)|Ne(o))return l;break}case P.F32:{if(Se(o))return l;break}case P.F64:{if(Ie(o))return l;break}}let u=n.makeAbort(i.length==2?i[1]:null,r.reportNode);if(n.currentType=a.nonNullableType,s==p.void)switch(n.currentType=p.void,a.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,l),u);case 4:case 9:return e.if(e.unary(21,l),u);case 5:case 10:return e.if(e.unary(145,l),u);case 11:return e.if(e.binary(57,l,e.f32(0)),u);case 12:return e.if(e.binary(70,l,e.f64(0)),u);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(l),u)}else{n.currentType=a.nonNullableType;let c=n.currentFlow;switch(n.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(a);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,l,!1),e.local_get(f.index,P.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,l,!1)),u,e.local_get(f.index,P.I64))}case 5:case 10:{let f=c.getTempLocal(n.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,l,a.isManaged)),u,e.local_get(f.index,n.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,l,!1),e.f32(0)),u,e.local_get(f.index,P.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,l,!1),e.f64(0)),u,e.local_get(f.index,P.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let f=c.getTempLocal(a);return e.if(e.ref_is_null(e.local_tee(f.index,l,!1)),u,e.local_get(f.index,a.toRef()))}}}return n.error(203,r.reportNode.typeArgumentsRange,"assert",n.currentType.toString()),u}E.set(b.assert,$1);function J1(r){let n=r.compiler,e=n.module;if(k(r)|H(r,1))return e.unreachable();let t=n.currentFlow,i=n.options.uncheckedBehavior===1,s=t.is(32768);i?assert(!s):t.set(32768);let l=n.compileExpression(r.operands[0],r.contextualType);return s||t.unset(32768),l}E.set(b.unchecked,J1);function eT(r){let n=r.compiler,e=n.module;if(k(r)|H(r,1))return e.unreachable();let t=n.currentFlow,i=t.is(131072);i||t.set(131072);let s=n.compileExpression(r.operands[0],r.contextualType);return i||t.unset(131072),s}E.set(b.inline_always,eT);function tT(r){let n=r.compiler,e=n.module;if(oe(r,!0)|Fe(r,1,i32.MAX_VALUE))return e.unreachable();let t=r.operands,i=r.typeArguments,s;i?(assert(i.length),s=i[0]):s=r.contextualType;let l=n.compileExpression(t[0],p.u32,1),a=t.length-1,o=new Array(a),u=new Array(a);for(let c=0;c<a;++c)o[c]=n.compileExpression(t[1+c],p.auto),n.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=n.currentType.toRef();return n.currentType=s,e.call_indirect(null,l,o,Ze(u),s.toRef())}E.set(b.call_indirect,tT);function rT(r){let n=r.compiler,e=n.module;if(Y(r,!0))return e.unreachable();let t=r.operands,l=r.typeArguments[0].getClass();if(!l)return n.error(2351,r.reportNode.expression.range),e.unreachable();n.currentType=l.type;let a=n.ensureConstructor(l,r.reportNode);return n.checkFieldInitialization(l,r.reportNode),n.compileInstantiate(a,t,0,r.reportNode)}E.set(b.instantiate,rT);function kc(r,n){let e=r.compiler,t=e.module;k(r);let i=r.operands,s=r.reportNode;return e.emitDiagnostic(102,n,s.range,null,i.length?i[0].range.toString():s.range.toString()),n==3?t.unreachable():t.nop()}function iT(r){return kc(r,3)}E.set(b.ERROR,iT);function nT(r){return kc(r,2)}E.set(b.WARNING,nT);function sT(r){return kc(r,1)}E.set(b.INFO,sT);function lT(r){let n=r.compiler,e=r.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==n.program.functionPrototype);let i=assert(t.typeArguments);assert(i.length==1);let s=i[0],l=assert(s.getSignature()),a=l.returnType;if(k(r)|Fe(r,1+l.requiredParameters,1+l.parameterTypes.length))return n.currentType=a,n.module.unreachable();let o=n.compileExpression(assert(r.thisOperand),s,1),u=assert(r.operands.shift()),c=l.thisType,f=0;if(c)f=n.compileExpression(u,c,1);else if(u.kind!=19)return n.error(2332,u.range),n.module.unreachable();return n.compileCallIndirect(l,o,r.operands,r.reportNode,f,r.contextualType==p.void)}E.set(b.Function_call,lT);function aT(r){let n=r.compiler,e=n.module;return n.currentType=r.compiler.program.stringInstance.type,n.error(100,r.reportNode.range,"String.raw"),e.unreachable()}E.set(b.String_raw,aT);function et(r,n){let e=r.compiler;return k(r)|H(r,1)?(e.currentType=n,e.module.unreachable()):e.compileExpression(r.operands[0],n,2)}function oT(r){return et(r,p.i8)}E.set(b.i8,oT);function uT(r){return et(r,p.i16)}E.set(b.i16,uT);function pT(r){return et(r,p.i32)}E.set(b.i32,pT);function cT(r){return et(r,p.i64)}E.set(b.i64,cT);function fT(r){return et(r,r.compiler.options.isizeType)}E.set(b.isize,fT);function _T(r){return et(r,p.u8)}E.set(b.u8,_T);function hT(r){return et(r,p.u16)}E.set(b.u16,hT);function dT(r){return et(r,p.u32)}E.set(b.u32,dT);function mT(r){return et(r,p.u64)}E.set(b.u64,mT);function yT(r){return et(r,r.compiler.options.usizeType)}E.set(b.usize,yT);function gT(r){return et(r,p.bool)}E.set(b.bool,gT);function bT(r){return et(r,p.f32)}E.set(b.f32,bT);function xT(r){return et(r,p.f64)}E.set(b.f64,xT);function TT(r){return Ag(r)}E.set(b.v128,TT);function Ag(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,16))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(16),l=0;for(let a=0;a<16;++a){let o=n.compileExpression(t[a],p.i8,1),u=e.runExpression(o,1);u?he(ie(u),i,a):(s[a]=o,l++)}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==16;o?a=e.unary(60,s[0]):a=e.v128(i);for(let u=i32(o);u<16;u++){let c=s[u];c&&(a=e.simd_replace(0,a,u,c))}return a}}E.set(b.i8x16,Ag);function ET(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,8))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(8),l=0;for(let a=0;a<8;++a){let o=n.compileExpression(t[a],p.i16,1),u=e.runExpression(o,1);u?rr(ie(u),i,a<<1):(s[a]=o,l++)}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==8;o?a=e.unary(61,s[0]):a=e.v128(i);for(let u=i32(o);u<8;u++){let c=s[u];c&&(a=e.simd_replace(1,a,u,c))}return a}}E.set(b.i16x8,ET);function AT(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,4))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(4),l=0;for(let a=0;a<4;++a){let o=n.compileExpression(t[a],p.i32,1),u=e.runExpression(o,1);u?be(ie(u),i,a<<2):(s[a]=o,l++)}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==4;o?a=e.unary(62,s[0]):a=e.v128(i);for(let u=i32(o);u<4;u++){let c=s[u];c&&(a=e.simd_replace(2,a,u,c))}return a}}E.set(b.i32x4,AT);function vT(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(2),l=0;for(let a=0;a<2;++a){let o=n.compileExpression(t[a],p.i64,1),u=e.runExpression(o,1);if(u){let c=a<<3;be(ke(u),i,c+0),be(Ne(u),i,c+4)}else s[a]=o,l++}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==2;o?a=e.unary(63,s[0]):a=e.v128(i);for(let u=i32(o);u<2;u++){let c=s[u];c&&(a=e.simd_replace(3,a,u,c))}return a}}E.set(b.i64x2,vT);function ST(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,4))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(4),l=0;for(let a=0;a<4;++a){let o=n.compileExpression(t[a],p.f32,1),u=e.runExpression(o,1);u?vr(Se(u),i,a<<2):(s[a]=o,l++)}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==4;o?a=e.unary(64,s[0]):a=e.v128(i);for(let u=i32(o);u<4;u++){let c=s[u];c&&(a=e.simd_replace(5,a,u,c))}return a}}E.set(b.f32x4,ST);function IT(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=new Uint8Array(16),s=new Array(2),l=0;for(let a=0;a<2;++a){let o=n.compileExpression(t[a],p.f64,1),u=e.runExpression(o,1);u?Sr(Ie(u),i,a<<3):(s[a]=o,l++)}if(n.currentType=p.v128,l==0)return e.v128(i);{let a,o=l==2;o?a=e.unary(65,s[0]):a=e.v128(i);for(let u=i32(o);u<2;u++){let c=s[u];c&&(a=e.simd_replace(6,a,u,c))}return a}}E.set(b.f64x2,IT);function Dr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],s,1);if(n.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,l);case 2:case 7:return e.unary(61,l);case 3:case 8:return e.unary(62,l);case 4:case 9:return e.unary(63,l);case 5:case 10:return e.unary(n.options.isWasm64?63:62,l);case 11:return e.unary(64,l);case 12:return e.unary(65,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}E.set(b.v128_splat,Dr);function Ot(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|H(r,2))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.u8,1);n.currentType=s;let o=0,u=e.runExpression(a,1);if(u?o=ie(u):n.error(220,t[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(n.error(222,t[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,l,o);case 6:return e.simd_extract(1,l,o);case 2:return e.simd_extract(2,l,o);case 7:return e.simd_extract(3,l,o);case 3:case 8:return e.simd_extract(4,l,o);case 4:case 9:return e.simd_extract(5,l,o);case 5:case 10:return e.simd_extract(n.options.isWasm64?5:4,l,o);case 11:return e.simd_extract(7,l,o);case 12:return e.simd_extract(8,l,o)}}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}E.set(b.v128_extract_lane,Ot);function Ur(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,3))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.u8,1),o=n.compileExpression(t[2],s,1);n.currentType=p.v128;let u=0,c=e.runExpression(a,1);if(c?u=ie(c):n.error(220,t[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(n.error(222,t[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,l,u,o);case 2:case 7:return e.simd_replace(1,l,u,o);case 3:case 8:return e.simd_replace(2,l,u,o);case 4:case 9:return e.simd_replace(3,l,u,o);case 5:case 10:return e.simd_replace(n.options.isWasm64?3:2,l,u,o);case 11:return e.simd_replace(5,l,u,o);case 12:return e.simd_replace(6,l,u,o)}}return n.error(203,r.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}E.set(b.v128_replace_lane,Ur);function Vr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0];if(s.isValue){let l=s.byteSize,a=16/l;if(assert(Number.isInteger(a)&&kt(a)),H(r,2+a))return n.currentType=p.v128,e.unreachable();let o=n.compileExpression(t[0],p.v128,1),u=n.compileExpression(t[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(a<<1)-1;for(let _=0;_<a;++_){let h=t[2+_],d=n.compileExpression(h,p.u8,1),y=e.runExpression(d,1),m=0;switch(y?(m=ie(y),(m<0||m>f)&&(n.error(222,h.range,"Lane index","0",f.toString()),m=0)):n.error(220,h.range),l){case 1:{he(m,c,_);break}case 2:{let g=_<<1,x=m<<1;he(x,c,g),he(x+1,c,g+1);break}case 4:{let g=_<<2,x=m<<2;he(x,c,g),he(x+1,c,g+1),he(x+2,c,g+2),he(x+3,c,g+3);break}case 8:{let g=_<<3,x=m<<3;he(x,c,g),he(x+1,c,g+1),he(x+2,c,g+2),he(x+3,c,g+3),he(x+4,c,g+4),he(x+5,c,g+5),he(x+6,c,g+6),he(x+7,c,g+7);break}default:assert(!1)}}return n.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return n.error(203,r.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),n.currentType=p.v128,e.unreachable()}E.set(b.v128_shuffle,Vr);function vg(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.v128,1),s=n.compileExpression(t[1],p.v128,1);return e.binary(209,i,s)}E.set(b.v128_swizzle,vg);function bs(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|Fe(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=t.length,o=0,u=s.byteSize;if(a>=2){if(o=it(t[1],n),o<0)return n.currentType=p.v128,e.unreachable();if(a==3&&(u=Ut(t[2],u,n),u<0))return n.currentType=p.v128,e.unreachable()}if(n.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,l,o,u);case 2:case 7:return e.simd_load(1,l,o,u);case 3:case 8:case 11:return e.simd_load(2,l,o,u);case 5:case 10:if(!n.options.isWasm64)return e.simd_load(2,l,o,u);case 4:case 9:case 12:return e.simd_load(3,l,o,u)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}E.set(b.v128_load_splat,bs);function Or(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|Fe(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=t.length,o=0,u=s.byteSize;if(a>=2){if(o=it(t[1],n),o<0)return n.currentType=p.v128,e.unreachable();if(a==3&&(u=Ut(t[2],u,n),u<0))return n.currentType=p.v128,e.unreachable()}if(n.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,l,o,u);case 6:return e.simd_load(5,l,o,u);case 2:return e.simd_load(6,l,o,u);case 7:return e.simd_load(7,l,o,u);case 5:if(n.options.isWasm64)break;case 3:return e.simd_load(8,l,o,u);case 10:if(n.options.isWasm64)break;case 8:return e.simd_load(9,l,o,u)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}E.set(b.v128_load_ext,Or);function Fc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|Fe(r,1,3))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=t.length,o=0,u=s.byteSize;if(a>=2){if(o=it(t[1],n),o<0)return n.currentType=p.v128,e.unreachable();if(a==3&&(u=Ut(t[2],u,n),u<0))return n.currentType=p.v128,e.unreachable()}if(n.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,l,o,u);case 4:case 9:case 12:return e.simd_load(11,l,o,u);case 5:case 10:return e.simd_load(n.options.isWasm64?11:10,l,o,u)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}E.set(b.v128_load_zero,Fc);function xs(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|Fe(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ie(c):n.error(220,t[2].range);let f=t.length,_=0,h=s.byteSize;if(f>=4){if(_=it(t[3],n),_<0)return n.currentType=p.v128,e.unreachable();if(f==5&&(h=Ut(t[4],h,n),h<0))return n.currentType=p.v128,e.unreachable()}if(n.currentType=p.v128,s.isValue){let d=16/assert(s.byteSize)-1;switch((u<0||u>d)&&(n.error(222,t[1].range,"Lane index","0",d.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,l,_,h,u,a);case 2:case 7:return e.simd_loadstorelane(1,l,_,h,u,a);case 3:case 8:case 11:return e.simd_loadstorelane(2,l,_,h,u,a);case 4:case 9:case 12:return e.simd_loadstorelane(3,l,_,h,u,a);case 5:case 10:return e.simd_loadstorelane(n.options.isWasm64?3:2,l,_,h,u,a)}}return n.error(203,r.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}E.set(b.v128_load_lane,xs);function Ts(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r,!0)|Fe(r,3,5))return e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],n.options.usizeType,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ie(c):n.error(220,t[2].range);let f=t.length,_=0,h=s.byteSize;if(f>=4){if(_=it(t[3],n),_<0)return n.currentType=p.v128,e.unreachable();if(f==5&&(h=Ut(t[4],h,n),h<0))return n.currentType=p.v128,e.unreachable()}if(n.currentType=p.void,s.isValue){let d=16/assert(s.byteSize)-1;switch((u<0||u>d)&&(n.error(222,t[1].range,"Lane index","0",d.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,l,_,h,u,a);case 2:case 7:return e.simd_loadstorelane(5,l,_,h,u,a);case 3:case 8:case 11:return e.simd_loadstorelane(6,l,_,h,u,a);case 4:case 9:case 12:return e.simd_loadstorelane(7,l,_,h,u,a);case 5:case 10:return e.simd_loadstorelane(n.options.isWasm64?7:6,l,_,h,u,a)}}return n.error(203,r.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}E.set(b.v128_store_lane,Ts);function qr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,l,a);case 2:case 7:return e.binary(145,l,a);case 3:case 8:return e.binary(162,l,a);case 4:case 9:return e.binary(174,l,a);case 5:case 10:return e.binary(n.options.isWasm64?174:162,l,a);case 11:return e.binary(189,l,a);case 12:return e.binary(197,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}E.set(b.v128_add,qr);function Wr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,l,a);case 2:case 7:return e.binary(148,l,a);case 3:case 8:return e.binary(163,l,a);case 4:case 9:return e.binary(175,l,a);case 5:case 10:return e.binary(n.options.isWasm64?175:163,l,a);case 11:return e.binary(190,l,a);case 12:return e.binary(198,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}E.set(b.v128_sub,Wr);function Oi(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,l,a);case 3:case 8:return e.binary(164,l,a);case 4:case 9:return e.binary(176,l,a);case 5:case 10:return e.binary(n.options.isWasm64?176:164,l,a);case 11:return e.binary(191,l,a);case 12:return e.binary(199,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}E.set(b.v128_mul,Oi);function Rc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,l,a);case 12:return e.binary(200,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}E.set(b.v128_div,Rc);function Es(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,l,a);case 6:return e.binary(136,l,a);case 2:return e.binary(146,l,a);case 7:return e.binary(147,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}E.set(b.v128_add_sat,Es);function As(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,l,a);case 6:return e.binary(139,l,a);case 2:return e.binary(149,l,a);case 7:return e.binary(150,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}E.set(b.v128_sub_sat,As);function qt(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,l,a);case 6:return e.binary(141,l,a);case 2:return e.binary(152,l,a);case 7:return e.binary(153,l,a);case 5:if(n.options.isWasm64)break;case 3:return e.binary(165,l,a);case 10:if(n.options.isWasm64)break;case 8:return e.binary(166,l,a);case 11:return e.binary(193,l,a);case 12:return e.binary(201,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}E.set(b.v128_min,qt);function Wt(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,l,a);case 6:return e.binary(143,l,a);case 2:return e.binary(154,l,a);case 7:return e.binary(155,l,a);case 5:if(n.options.isWasm64)break;case 3:return e.binary(167,l,a);case 10:if(n.options.isWasm64)break;case 8:return e.binary(168,l,a);case 11:return e.binary(194,l,a);case 12:return e.binary(202,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}E.set(b.v128_max,Wt);function wc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,l,a);case 12:return e.binary(203,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}E.set(b.v128_pmin,wc);function Cc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,l,a);case 12:return e.binary(204,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}E.set(b.v128_pmax,Cc);function Sg(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,l,a):(n.error(203,r.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}E.set(b.v128_dot,Sg);function Pc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,l,a);case 7:return e.binary(156,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}E.set(b.v128_avgr,Pc);function Kr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,l,a);case 2:case 7:return e.binary(86,l,a);case 3:case 8:return e.binary(96,l,a);case 4:case 9:return e.binary(106,l,a);case 5:case 10:return e.binary(n.options.isWasm64?106:96,l,a);case 11:return e.binary(118,l,a);case 12:return e.binary(124,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}E.set(b.v128_eq,Kr);function jr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,l,a);case 2:case 7:return e.binary(87,l,a);case 3:case 8:return e.binary(97,l,a);case 4:case 9:return e.binary(107,l,a);case 5:case 10:return e.binary(n.options.isWasm64?107:97,l,a);case 11:return e.binary(119,l,a);case 12:return e.binary(125,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}E.set(b.v128_ne,jr);function Tt(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,l,a);case 6:return e.binary(79,l,a);case 2:return e.binary(88,l,a);case 7:return e.binary(89,l,a);case 3:return e.binary(98,l,a);case 8:return e.binary(99,l,a);case 4:return e.binary(108,l,a);case 5:return e.binary(n.options.isWasm64?108:98,l,a);case 10:{if(n.options.isWasm64)break;return e.binary(99,l,a)}case 11:return e.binary(120,l,a);case 12:return e.binary(126,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}E.set(b.v128_lt,Tt);function Et(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,l,a);case 6:return e.binary(83,l,a);case 2:return e.binary(92,l,a);case 7:return e.binary(93,l,a);case 3:return e.binary(102,l,a);case 8:return e.binary(103,l,a);case 4:return e.binary(110,l,a);case 5:return e.binary(n.options.isWasm64?110:102,l,a);case 10:{if(n.options.isWasm64)break;return e.binary(103,l,a)}case 11:return e.binary(122,l,a);case 12:return e.binary(128,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}E.set(b.v128_le,Et);function At(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,l,a);case 6:return e.binary(81,l,a);case 2:return e.binary(90,l,a);case 7:return e.binary(91,l,a);case 3:return e.binary(100,l,a);case 8:return e.binary(101,l,a);case 4:return e.binary(109,l,a);case 5:return e.binary(n.options.isWasm64?109:100,l,a);case 10:{if(n.options.isWasm64)break;return e.binary(101,l,a)}case 11:return e.binary(121,l,a);case 12:return e.binary(127,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}E.set(b.v128_gt,At);function vt(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,l,a);case 6:return e.binary(85,l,a);case 2:return e.binary(94,l,a);case 7:return e.binary(95,l,a);case 3:return e.binary(104,l,a);case 8:return e.binary(105,l,a);case 4:return e.binary(111,l,a);case 5:return e.binary(n.options.isWasm64?111:104,l,a);case 10:{if(n.options.isWasm64)break;return e.binary(105,l,a)}case 11:return e.binary(123,l,a);case 12:return e.binary(129,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}E.set(b.v128_ge,vt);function vs(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,l,a);case 7:return e.binary(206,l,a);case 3:return e.binary(207,l,a);case 8:return e.binary(208,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}E.set(b.v128_narrow,vs);function Qr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,l);case 2:case 7:return e.unary(74,l);case 3:case 8:return e.unary(78,l);case 4:case 9:return e.unary(82,l);case 5:case 10:return e.unary(n.options.isWasm64?82:78,l);case 11:return e.unary(93,l);case 12:return e.unary(100,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}E.set(b.v128_neg,Qr);function Hr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,l);case 2:return e.unary(73,l);case 3:return e.unary(77,l);case 4:return e.unary(81,l);case 5:return e.unary(n.options.isWasm64?81:77,l);case 6:case 7:case 8:case 9:case 10:return l;case 11:return e.unary(92,l);case 12:return e.unary(99,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}E.set(b.v128_abs,Hr);function Nc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,l);case 12:return e.unary(101,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}E.set(b.v128_sqrt,Nc);function Bc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,l);case 12:return e.unary(102,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}E.set(b.v128_ceil,Bc);function Lc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,l);case 12:return e.unary(103,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}E.set(b.v128_floor,Lc);function Mc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,l);case 12:return e.unary(104,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}E.set(b.v128_trunc,Mc);function zc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,l);case 12:return e.unary(105,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}E.set(b.v128_nearest,zc);function Gc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(112,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(113,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}E.set(b.v128_convert,Gc);function Dc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(126,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(127,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}E.set(b.v128_convert_low,Dc);function Uc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(110,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(111,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}E.set(b.v128_trunc_sat,Uc);function Vc(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(128,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(129,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}E.set(b.v128_trunc_sat_zero,Vc);function Xr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,l);case 6:return e.unary(116,l);case 2:return e.unary(118,l);case 7:return e.unary(120,l);case 5:if(n.options.isWasm64)break;case 3:return e.unary(122,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(124,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}E.set(b.v128_extend_low,Xr);function Zr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,l);case 6:return e.unary(117,l);case 2:return e.unary(119,l);case 7:return e.unary(121,l);case 5:if(n.options.isWasm64)break;case 3:return e.unary(123,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(125,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}E.set(b.v128_extend_high,Zr);function Ss(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1),l=n.compileExpression(t[1],p.i32,1);if(n.currentType=p.v128,i.isValue)switch(i.kind){case 1:case 6:return e.simd_shift(0,s,l);case 2:case 7:return e.simd_shift(3,s,l);case 3:case 8:return e.simd_shift(6,s,l);case 4:case 9:return e.simd_shift(9,s,l);case 5:case 10:return e.simd_shift(n.options.isWasm64?9:6,s,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.shl",i.toString()),e.unreachable()}E.set(b.v128_shl,Ss);function Kt(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1),l=n.compileExpression(t[1],p.i32,1);if(n.currentType=p.v128,i.isValue)switch(i.kind){case 1:return e.simd_shift(1,s,l);case 6:return e.simd_shift(2,s,l);case 2:return e.simd_shift(4,s,l);case 7:return e.simd_shift(5,s,l);case 3:return e.simd_shift(7,s,l);case 8:return e.simd_shift(8,s,l);case 4:return e.simd_shift(10,s,l);case 9:return e.simd_shift(11,s,l);case 5:return e.simd_shift(n.options.isWasm64?10:7,s,l);case 10:return e.simd_shift(n.options.isWasm64?11:8,s,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.shr",i.toString()),e.unreachable()}E.set(b.v128_shr,Kt);function ao(r,n){let e=r.compiler,t=e.module;if(Z(r,16)|k(r)|H(r,2))return e.currentType=p.v128,t.unreachable();let i=r.operands,s=e.compileExpression(i[0],p.v128,1),l=e.compileExpression(i[1],p.v128,1);return t.binary(n,s,l)}function kT(r){return ao(r,130)}E.set(b.v128_and,kT);function FT(r){return ao(r,131)}E.set(b.v128_or,FT);function RT(r){return ao(r,132)}E.set(b.v128_xor,RT);function wT(r){return ao(r,133)}E.set(b.v128_andnot,wT);function CT(r,n){let e=r.compiler,t=e.module;if(Z(r,16)|k(r)|H(r,1))return e.currentType=p.v128,t.unreachable();let i=r.operands,s=e.compileExpression(i[0],p.v128,1);return t.unary(n,s)}function PT(r){return CT(r,66)}E.set(b.v128_not,PT);function NT(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,3))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.v128,1),s=n.compileExpression(t[1],p.v128,1),l=n.compileExpression(t[2],p.v128,1);return e.simd_ternary(0,i,s,l)}E.set(b.v128_bitselect,NT);function BT(r){let n=r.compiler,e=n.module;if(Z(r,16)|k(r)|H(r,1))return n.currentType=p.bool,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.v128,1);return n.currentType=p.bool,e.unary(67,i)}E.set(b.v128_any_true,BT);function Is(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.bool,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1);if(n.currentType=p.bool,i.isValue)switch(i.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(n.options.isWasm64?83:79,s)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.all_true",i.toString()),e.unreachable()}E.set(b.v128_all_true,Is);function ks(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.i32,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1);if(n.currentType=p.i32,i.isValue)switch(i.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(n.options.isWasm64?84:80,s)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.bitmask",i.toString()),e.unreachable()}E.set(b.v128_bitmask,ks);function Ig(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1);if(n.currentType=p.v128,i.isValue)switch(i.kind){case 1:case 6:return e.unary(72,s)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.popcnt",i.toString()),e.unreachable()}E.set(b.v128_popcnt,Ig);function Fs(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments[0],s=n.compileExpression(t[0],p.v128,1);if(n.currentType=p.v128,i.isValue)switch(i.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extadd_pairwise",i.toString()),e.unreachable()}E.set(b.v128_extadd_pairwise,Fs);function kg(r){let n=r.compiler,e=n.module;if(Z(r,16)|oe(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments,s=i?i[0]:p.f64,l=n.compileExpression(t[0],p.v128,1);return n.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,l):(n.error(203,r.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}E.set(b.v128_demote_zero,kg);function Fg(r){let n=r.compiler,e=n.module;if(Z(r,16)|oe(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=r.typeArguments,s=i?i[0]:p.f32,l=n.compileExpression(t[0],p.v128,1);return n.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,l):(n.error(203,r.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}E.set(b.v128_promote_low,Fg);function Rg(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,l,a):(n.error(203,r.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}E.set(b.v128_q15mulr_sat,Rg);function Yr(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,l,a);case 6:return e.binary(160,l,a);case 2:return e.binary(170,l,a);case 7:return e.binary(172,l,a);case 3:return e.binary(177,l,a);case 8:return e.binary(179,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}E.set(b.v128_extmul_low,Yr);function $r(r){let n=r.compiler,e=n.module;if(Z(r,16)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,l,a);case 6:return e.binary(161,l,a);case 2:return e.binary(171,l,a);case 7:return e.binary(173,l,a);case 3:return e.binary(178,l,a);case 8:return e.binary(180,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}E.set(b.v128_extmul_high,$r);function wg(r){let n=r.compiler,e=n.module;if(Z(r,4096)|k(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.v128,1),s=n.compileExpression(t[1],p.v128,1);return e.binary(210,i,s)}E.set(b.v128_relaxed_swizzle,wg);function Oc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(132,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(133,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}E.set(b.v128_relaxed_trunc,Oc);function qc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,1))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.unary(134,l);case 10:if(n.options.isWasm64)break;case 8:return e.unary(135,l)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}E.set(b.v128_relaxed_trunc_zero,qc);function Wc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,3))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,l,a,o);case 12:return e.simd_ternary(3,l,a,o)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}E.set(b.v128_relaxed_madd,Wc);function Kc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,3))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,l,a,o);case 12:return e.simd_ternary(4,l,a,o)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}E.set(b.v128_relaxed_nmadd,Kc);function Rs(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,3))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,l,a,o);case 2:case 7:return e.simd_ternary(6,l,a,o);case 3:case 8:return e.simd_ternary(7,l,a,o);case 4:case 9:return e.simd_ternary(8,l,a,o);case 5:case 10:return e.simd_ternary(n.options.isWasm64?8:7,l,a,o)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}E.set(b.v128_relaxed_laneselect,Rs);function jc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,l,a);case 12:return e.binary(213,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}E.set(b.v128_relaxed_min,jc);function Qc(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,l,a);case 12:return e.binary(214,l,a)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}E.set(b.v128_relaxed_max,Qc);function Cg(r){let n=r.compiler,e=n.module;if(Z(r,4096)|Y(r)|H(r,2))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,l,a):(n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}E.set(b.v128_relaxed_q15mulr,Cg);function Pg(r){let n=r.compiler,e=n.module;if(Z(r,4096)|H(r,2)|Y(r))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1);return s.kind===2?e.binary(216,l,a):(n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}E.set(b.v128_relaxed_dot,Pg);function Ng(r){let n=r.compiler,e=n.module;if(Z(r,4096)|H(r,3)|Y(r))return n.currentType=p.v128,e.unreachable();let t=r.operands,s=r.typeArguments[0],l=n.compileExpression(t[0],p.v128,1),a=n.compileExpression(t[1],p.v128,1),o=n.compileExpression(t[2],p.v128,1);switch(s.kind){case 5:if(n.options.isWasm64)break;case 3:return e.simd_ternary(9,l,a,o)}return n.error(203,r.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}E.set(b.v128_relaxed_dot_add,Ng);function LT(r){let n=r.compiler,e=n.module;if(k(r)|H(r,1))return n.currentType=p.void,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],p.u32,1);return n.runtimeFeatures|=16,n.currentType=p.void,e.call(b.visit_globals,[i],P.None)}E.set(b.visit_globals,LT);function MT(r){let n=r.compiler,e=n.module;if(k(r)|H(r,2))return n.currentType=p.void,e.unreachable();let t=r.operands,i=n.compileExpression(t[0],n.options.usizeType,1),s=n.compileExpression(t[1],p.u32,1);return n.runtimeFeatures|=32,n.currentType=p.void,e.call(b.visit_members,[i,s],P.None)}E.set(b.visit_members,MT);function zT(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,fc(r)}E.set(b.i32_clz,zT);function GT(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,fc(r)}E.set(b.i64_clz,GT);function DT(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,_c(r)}E.set(b.i32_ctz,DT);function UT(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,_c(r)}E.set(b.i64_ctz,UT);function VT(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,hc(r)}E.set(b.i32_popcnt,VT);function OT(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,hc(r)}E.set(b.i64_popcnt,OT);function qT(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,dc(r)}E.set(b.i32_rotl,qT);function WT(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,dc(r)}E.set(b.i64_rotl,WT);function KT(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,mc(r)}E.set(b.i32_rotr,KT);function jT(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,mc(r)}E.set(b.i64_rotr,jT);function QT(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,yc(r)}E.set(b.f32_abs,QT);function HT(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,yc(r)}E.set(b.f64_abs,HT);function XT(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,gc(r)}E.set(b.f32_max,XT);function ZT(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,gc(r)}E.set(b.f64_max,ZT);function YT(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,bc(r)}E.set(b.f32_min,YT);function $T(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,bc(r)}E.set(b.f64_min,$T);function JT(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,xc(r)}E.set(b.f32_ceil,JT);function e6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,xc(r)}E.set(b.f64_ceil,e6);function t6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Tc(r)}E.set(b.f32_floor,t6);function r6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Tc(r)}E.set(b.f64_floor,r6);function i6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Ec(r)}E.set(b.f32_copysign,i6);function n6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Ec(r)}E.set(b.f64_copysign,n6);function s6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Ac(r)}E.set(b.f32_nearest,s6);function l6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Ac(r)}E.set(b.f64_nearest,l6);function a6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.f32,fs(r)}E.set(b.i32_reinterpret_f32,a6);function o6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.f64,fs(r)}E.set(b.i64_reinterpret_f64,o6);function u6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.i32,fs(r)}E.set(b.f32_reinterpret_i32,u6);function p6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.i64,fs(r)}E.set(b.f64_reinterpret_i64,p6);function c6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,vc(r)}E.set(b.f32_sqrt,c6);function f6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,vc(r)}E.set(b.f64_sqrt,f6);function _6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Sc(r)}E.set(b.f32_trunc,_6);function h6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Sc(r)}E.set(b.f64_trunc,h6);function d6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,_s(r)}E.set(b.i32_rem_s,d6);function m6(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.u32,_s(r)}E.set(b.i32_rem_u,m6);function y6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,_s(r)}E.set(b.i64_rem_s,y6);function g6(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.u64,_s(r)}E.set(b.i64_rem_u,g6);function b6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,hs(r)}E.set(b.i32_add,b6);function x6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,hs(r)}E.set(b.i64_add,x6);function T6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,hs(r)}E.set(b.f32_add,T6);function E6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,hs(r)}E.set(b.f64_add,E6);function A6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,ds(r)}E.set(b.i32_sub,A6);function v6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,ds(r)}E.set(b.i64_sub,v6);function S6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,ds(r)}E.set(b.f32_sub,S6);function I6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,ds(r)}E.set(b.f64_sub,I6);function k6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,ms(r)}E.set(b.i32_mul,k6);function F6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,ms(r)}E.set(b.i64_mul,F6);function R6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,ms(r)}E.set(b.f32_mul,R6);function w6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,ms(r)}E.set(b.f64_mul,w6);function C6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,Gr(r)}E.set(b.i32_div_s,C6);function P6(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.u32,Gr(r)}E.set(b.i32_div_u,P6);function N6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,Gr(r)}E.set(b.i64_div_s,N6);function B6(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.u64,Gr(r)}E.set(b.i64_div_u,B6);function L6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Gr(r)}E.set(b.f32_div,L6);function M6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Gr(r)}E.set(b.f64_div,M6);function z6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,ys(r)}E.set(b.i32_eq,z6);function G6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i32,ys(r)}E.set(b.i64_eq,G6);function D6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.i32,ys(r)}E.set(b.f32_eq,D6);function U6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.i32,ys(r)}E.set(b.f64_eq,U6);function V6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,gs(r)}E.set(b.i32_ne,V6);function O6(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i32,gs(r)}E.set(b.i64_ne,O6);function q6(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.i32,gs(r)}E.set(b.f32_ne,q6);function W6(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.i32,gs(r)}E.set(b.f64_ne,W6);function K6(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,Me(r)}E.set(b.i32_load8_s,K6);function j6(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,Me(r)}E.set(b.i32_load8_u,j6);function Q6(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,Me(r)}E.set(b.i32_load16_s,Q6);function H6(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,Me(r)}E.set(b.i32_load16_u,H6);function X6(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,Me(r)}E.set(b.i32_load,X6);function Z6(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i64,Me(r)}E.set(b.i64_load8_s,Z6);function Y6(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,Me(r)}E.set(b.i64_load8_u,Y6);function $6(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i64,Me(r)}E.set(b.i64_load16_s,$6);function J6(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,Me(r)}E.set(b.i64_load16_u,J6);function eE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i64,Me(r)}E.set(b.i64_load32_s,eE);function tE(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,Me(r)}E.set(b.i64_load32_u,tE);function rE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,Me(r)}E.set(b.i64_load,rE);function iE(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Me(r)}E.set(b.f32_load,iE);function nE(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Me(r)}E.set(b.f64_load,nE);function sE(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,r.contextIsExact=!0,ft(r)}E.set(b.i32_store8,sE);function lE(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,r.contextIsExact=!0,ft(r)}E.set(b.i32_store16,lE);function aE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,ft(r)}E.set(b.i32_store,aE);function oE(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i64,r.contextIsExact=!0,ft(r)}E.set(b.i64_store8,oE);function uE(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i64,r.contextIsExact=!0,ft(r)}E.set(b.i64_store16,uE);function pE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i64,r.contextIsExact=!0,ft(r)}E.set(b.i64_store32,pE);function cE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,ft(r)}E.set(b.i64_store,cE);function fE(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,r.contextIsExact=!0,ft(r)}E.set(b.f32_store,fE);function _E(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,r.contextIsExact=!0,ft(r)}E.set(b.f64_store,_E);function hE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,pr(r)}E.set(b.i32_atomic_load8_u,hE);function dE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,pr(r)}E.set(b.i32_atomic_load16_u,dE);function mE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,pr(r)}E.set(b.i32_atomic_load,mE);function yE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,pr(r)}E.set(b.i64_atomic_load8_u,yE);function gE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,pr(r)}E.set(b.i64_atomic_load16_u,gE);function bE(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,pr(r)}E.set(b.i64_atomic_load32_u,bE);function xE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,pr(r)}E.set(b.i64_atomic_load,xE);function TE(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,r.contextIsExact=!0,cr(r)}E.set(b.i32_atomic_store8,TE);function EE(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,r.contextIsExact=!0,cr(r)}E.set(b.i32_atomic_store16,EE);function AE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,cr(r)}E.set(b.i32_atomic_store,AE);function vE(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i64,r.contextIsExact=!0,cr(r)}E.set(b.i64_atomic_store8,vE);function SE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,cr(r)}E.set(b.i64_atomic_store16,SE);function IE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i64,r.contextIsExact=!0,cr(r)}E.set(b.i64_atomic_store32,IE);function kE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,cr(r)}E.set(b.i64_atomic_store,kE);function FE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,fr(r)}E.set(b.i32_atomic_rmw8_add_u,FE);function RE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,fr(r)}E.set(b.i32_atomic_rmw16_add_u,RE);function wE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,fr(r)}E.set(b.i32_atomic_rmw_add,wE);function CE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,fr(r)}E.set(b.i64_atomic_rmw8_add_u,CE);function PE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,fr(r)}E.set(b.i64_atomic_rmw16_add_u,PE);function NE(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,fr(r)}E.set(b.i64_atomic_rmw32_add_u,NE);function BE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,fr(r)}E.set(b.i64_atomic_rmw_add,BE);function LE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,_r(r)}E.set(b.i32_atomic_rmw8_sub_u,LE);function ME(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,_r(r)}E.set(b.i32_atomic_rmw16_sub_u,ME);function zE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,_r(r)}E.set(b.i32_atomic_rmw_sub,zE);function GE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,_r(r)}E.set(b.i64_atomic_rmw8_sub_u,GE);function DE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,_r(r)}E.set(b.i64_atomic_rmw16_sub_u,DE);function UE(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,_r(r)}E.set(b.i64_atomic_rmw32_sub_u,UE);function VE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,_r(r)}E.set(b.i64_atomic_rmw_sub,VE);function OE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,hr(r)}E.set(b.i32_atomic_rmw8_and_u,OE);function qE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,hr(r)}E.set(b.i32_atomic_rmw16_and_u,qE);function WE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,hr(r)}E.set(b.i32_atomic_rmw_and,WE);function KE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,hr(r)}E.set(b.i64_atomic_rmw8_and_u,KE);function jE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,hr(r)}E.set(b.i64_atomic_rmw16_and_u,jE);function QE(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,hr(r)}E.set(b.i64_atomic_rmw32_and_u,QE);function HE(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,hr(r)}E.set(b.i64_atomic_rmw_and,HE);function XE(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,dr(r)}E.set(b.i32_atomic_rmw8_or_u,XE);function ZE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,dr(r)}E.set(b.i32_atomic_rmw16_or_u,ZE);function YE(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,dr(r)}E.set(b.i32_atomic_rmw_or,YE);function $E(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,dr(r)}E.set(b.i64_atomic_rmw8_or_u,$E);function JE(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,dr(r)}E.set(b.i64_atomic_rmw16_or_u,JE);function eA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,dr(r)}E.set(b.i64_atomic_rmw32_or_u,eA);function tA(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,dr(r)}E.set(b.i64_atomic_rmw_or,tA);function rA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,mr(r)}E.set(b.i32_atomic_rmw8_xor_u,rA);function iA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,mr(r)}E.set(b.i32_atomic_rmw16_xor_u,iA);function nA(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,mr(r)}E.set(b.i32_atomic_rmw_xor,nA);function sA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,mr(r)}E.set(b.i64_atomic_rmw8_xor_u,sA);function lA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,mr(r)}E.set(b.i64_atomic_rmw16_xor_u,lA);function aA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,mr(r)}E.set(b.i64_atomic_rmw32_xor_u,aA);function oA(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,mr(r)}E.set(b.i64_atomic_rmw_xor,oA);function uA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,yr(r)}E.set(b.i32_atomic_rmw8_xchg_u,uA);function pA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,yr(r)}E.set(b.i32_atomic_rmw16_xchg_u,pA);function cA(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,yr(r)}E.set(b.i32_atomic_rmw_xchg,cA);function fA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,yr(r)}E.set(b.i64_atomic_rmw8_xchg_u,fA);function _A(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,yr(r)}E.set(b.i64_atomic_rmw16_xchg_u,_A);function hA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,yr(r)}E.set(b.i64_atomic_rmw32_xchg_u,hA);function dA(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,yr(r)}E.set(b.i64_atomic_rmw_xchg,dA);function mA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,r.contextIsExact=!0,gr(r)}E.set(b.i32_atomic_rmw8_cmpxchg_u,mA);function yA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,r.contextIsExact=!0,gr(r)}E.set(b.i32_atomic_rmw16_cmpxchg_u,yA);function gA(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,r.contextIsExact=!0,gr(r)}E.set(b.i32_atomic_rmw_cmpxchg,gA);function bA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i64,r.contextIsExact=!0,gr(r)}E.set(b.i64_atomic_rmw8_cmpxchg_u,bA);function xA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i64,r.contextIsExact=!0,gr(r)}E.set(b.i64_atomic_rmw16_cmpxchg_u,xA);function TA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.i64,r.contextIsExact=!0,gr(r)}E.set(b.i64_atomic_rmw32_cmpxchg_u,TA);function EA(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,r.contextIsExact=!0,gr(r)}E.set(b.i64_atomic_rmw_cmpxchg,EA);function AA(r){return k(r),r.typeArguments=[p.i32],Ic(r)}E.set(b.memory_atomic_wait32,AA);function vA(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i32,Ic(r)}E.set(b.memory_atomic_wait64,vA);function SA(r){return k(r),r.typeArguments=[p.v128],r.contextualType=p.v128,Me(r)}E.set(b.v128_load,SA);function IA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Or(r)}E.set(b.v128_load8x8_s,IA);function kA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Or(r)}E.set(b.v128_load8x8_u,kA);function FA(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Or(r)}E.set(b.v128_load16x4_s,FA);function RA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Or(r)}E.set(b.v128_load16x4_u,RA);function wA(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Or(r)}E.set(b.v128_load32x2_s,wA);function CA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Or(r)}E.set(b.v128_load32x2_u,CA);function PA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,bs(r)}E.set(b.v128_load8_splat,PA);function NA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,bs(r)}E.set(b.v128_load16_splat,NA);function BA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,bs(r)}E.set(b.v128_load32_splat,BA);function LA(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.v128,bs(r)}E.set(b.v128_load64_splat,LA);function MA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Fc(r)}E.set(b.v128_load32_zero,MA);function zA(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.v128,Fc(r)}E.set(b.v128_load64_zero,zA);function GA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,xs(r)}E.set(b.v128_load8_lane,GA);function DA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,xs(r)}E.set(b.v128_load16_lane,DA);function UA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,xs(r)}E.set(b.v128_load32_lane,UA);function VA(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.v128,xs(r)}E.set(b.v128_load64_lane,VA);function OA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Ts(r)}E.set(b.v128_store8_lane,OA);function qA(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Ts(r)}E.set(b.v128_store16_lane,qA);function WA(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Ts(r)}E.set(b.v128_store32_lane,WA);function KA(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.v128,Ts(r)}E.set(b.v128_store64_lane,KA);function jA(r){return k(r),r.typeArguments=[p.v128],r.contextualType=p.v128,r.contextIsExact=!0,ft(r)}E.set(b.v128_store,jA);function QA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Dr(r)}E.set(b.i8x16_splat,QA);function HA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,Ot(r)}E.set(b.i8x16_extract_lane_s,HA);function XA(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.i32,Ot(r)}E.set(b.i8x16_extract_lane_u,XA);function ZA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Ur(r)}E.set(b.i8x16_replace_lane,ZA);function YA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,qr(r)}E.set(b.i8x16_add,YA);function $A(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Wr(r)}E.set(b.i8x16_sub,$A);function JA(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,qt(r)}E.set(b.i8x16_min_s,JA);function ev(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,qt(r)}E.set(b.i8x16_min_u,ev);function tv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Wt(r)}E.set(b.i8x16_max_s,tv);function rv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Wt(r)}E.set(b.i8x16_max_u,rv);function iv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Pc(r)}E.set(b.i8x16_avgr_u,iv);function nv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Hr(r)}E.set(b.i8x16_abs,nv);function sv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Qr(r)}E.set(b.i8x16_neg,sv);function lv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Es(r)}E.set(b.i8x16_add_sat_s,lv);function av(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Es(r)}E.set(b.i8x16_add_sat_u,av);function ov(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,As(r)}E.set(b.i8x16_sub_sat_s,ov);function uv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,As(r)}E.set(b.i8x16_sub_sat_u,uv);function pv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Ss(r)}E.set(b.i8x16_shl,pv);function cv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Kt(r)}E.set(b.i8x16_shr_s,cv);function fv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Kt(r)}E.set(b.i8x16_shr_u,fv);function _v(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,Is(r)}E.set(b.i8x16_all_true,_v);function hv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.i32,ks(r)}E.set(b.i8x16_bitmask,hv);function dv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Ig(r)}E.set(b.i8x16_popcnt,dv);function mv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Kr(r)}E.set(b.i8x16_eq,mv);function yv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,jr(r)}E.set(b.i8x16_ne,yv);function gv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Tt(r)}E.set(b.i8x16_lt_s,gv);function bv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Tt(r)}E.set(b.i8x16_lt_u,bv);function xv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Et(r)}E.set(b.i8x16_le_s,xv);function Tv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Et(r)}E.set(b.i8x16_le_u,Tv);function Ev(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,At(r)}E.set(b.i8x16_gt_s,Ev);function Av(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,At(r)}E.set(b.i8x16_gt_u,Av);function vv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,vt(r)}E.set(b.i8x16_ge_s,vv);function Sv(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,vt(r)}E.set(b.i8x16_ge_u,Sv);function Iv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,vs(r)}E.set(b.i8x16_narrow_i16x8_s,Iv);function kv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,vs(r)}E.set(b.i8x16_narrow_i16x8_u,kv);function Fv(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Vr(r)}E.set(b.i8x16_shuffle,Fv);function Rv(r){return k(r),r.typeArguments=null,r.contextualType=p.v128,vg(r)}E.set(b.i8x16_swizzle,Rv);function wv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Dr(r)}E.set(b.i16x8_splat,wv);function Cv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,Ot(r)}E.set(b.i16x8_extract_lane_s,Cv);function Pv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.i32,Ot(r)}E.set(b.i16x8_extract_lane_u,Pv);function Nv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Ur(r)}E.set(b.i16x8_replace_lane,Nv);function Bv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,qr(r)}E.set(b.i16x8_add,Bv);function Lv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Wr(r)}E.set(b.i16x8_sub,Lv);function Mv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Oi(r)}E.set(b.i16x8_mul,Mv);function zv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,qt(r)}E.set(b.i16x8_min_s,zv);function Gv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,qt(r)}E.set(b.i16x8_min_u,Gv);function Dv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Wt(r)}E.set(b.i16x8_max_s,Dv);function Uv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Wt(r)}E.set(b.i16x8_max_u,Uv);function Vv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Pc(r)}E.set(b.i16x8_avgr_u,Vv);function Ov(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Hr(r)}E.set(b.i16x8_abs,Ov);function qv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Qr(r)}E.set(b.i16x8_neg,qv);function Wv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Es(r)}E.set(b.i16x8_add_sat_s,Wv);function Kv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Es(r)}E.set(b.i16x8_add_sat_u,Kv);function jv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,As(r)}E.set(b.i16x8_sub_sat_s,jv);function Qv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,As(r)}E.set(b.i16x8_sub_sat_u,Qv);function Hv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Ss(r)}E.set(b.i16x8_shl,Hv);function Xv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Kt(r)}E.set(b.i16x8_shr_s,Xv);function Zv(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Kt(r)}E.set(b.i16x8_shr_u,Zv);function Yv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,Is(r)}E.set(b.i16x8_all_true,Yv);function $v(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.i32,ks(r)}E.set(b.i16x8_bitmask,$v);function Jv(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Kr(r)}E.set(b.i16x8_eq,Jv);function e4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,jr(r)}E.set(b.i16x8_ne,e4);function t4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Tt(r)}E.set(b.i16x8_lt_s,t4);function r4(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Tt(r)}E.set(b.i16x8_lt_u,r4);function i4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Et(r)}E.set(b.i16x8_le_s,i4);function n4(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Et(r)}E.set(b.i16x8_le_u,n4);function s4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,At(r)}E.set(b.i16x8_gt_s,s4);function l4(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,At(r)}E.set(b.i16x8_gt_u,l4);function a4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,vt(r)}E.set(b.i16x8_ge_s,a4);function o4(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,vt(r)}E.set(b.i16x8_ge_u,o4);function u4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,vs(r)}E.set(b.i16x8_narrow_i32x4_s,u4);function p4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,vs(r)}E.set(b.i16x8_narrow_i32x4_u,p4);function c4(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Xr(r)}E.set(b.i16x8_extend_low_i8x16_s,c4);function f4(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Xr(r)}E.set(b.i16x8_extend_low_i8x16_u,f4);function _4(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Zr(r)}E.set(b.i16x8_extend_high_i8x16_s,_4);function h4(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Zr(r)}E.set(b.i16x8_extend_high_i8x16_u,h4);function d4(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Fs(r)}E.set(b.i16x8_extadd_pairwise_i8x16_s,d4);function m4(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Fs(r)}E.set(b.i16x8_extadd_pairwise_i8x16_u,m4);function y4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Rg(r)}E.set(b.i16x8_q15mulr_sat_s,y4);function g4(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Yr(r)}E.set(b.i16x8_extmul_low_i8x16_s,g4);function b4(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,Yr(r)}E.set(b.i16x8_extmul_low_i8x16_u,b4);function x4(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,$r(r)}E.set(b.i16x8_extmul_high_i8x16_s,x4);function T4(r){return k(r),r.typeArguments=[p.u8],r.contextualType=p.v128,$r(r)}E.set(b.i16x8_extmul_high_i8x16_u,T4);function E4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Vr(r)}E.set(b.i16x8_shuffle,E4);function A4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Dr(r)}E.set(b.i32x4_splat,A4);function v4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,Ot(r)}E.set(b.i32x4_extract_lane,v4);function S4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Ur(r)}E.set(b.i32x4_replace_lane,S4);function I4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,qr(r)}E.set(b.i32x4_add,I4);function k4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Wr(r)}E.set(b.i32x4_sub,k4);function F4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Oi(r)}E.set(b.i32x4_mul,F4);function R4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,qt(r)}E.set(b.i32x4_min_s,R4);function w4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,qt(r)}E.set(b.i32x4_min_u,w4);function C4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Wt(r)}E.set(b.i32x4_max_s,C4);function P4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Wt(r)}E.set(b.i32x4_max_u,P4);function N4(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Sg(r)}E.set(b.i32x4_dot_i16x8_s,N4);function B4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Hr(r)}E.set(b.i32x4_abs,B4);function L4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Qr(r)}E.set(b.i32x4_neg,L4);function M4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Ss(r)}E.set(b.i32x4_shl,M4);function z4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Kt(r)}E.set(b.i32x4_shr_s,z4);function G4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Kt(r)}E.set(b.i32x4_shr_u,G4);function D4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,Is(r)}E.set(b.i32x4_all_true,D4);function U4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.i32,ks(r)}E.set(b.i32x4_bitmask,U4);function V4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Kr(r)}E.set(b.i32x4_eq,V4);function O4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,jr(r)}E.set(b.i32x4_ne,O4);function q4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Tt(r)}E.set(b.i32x4_lt_s,q4);function W4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Tt(r)}E.set(b.i32x4_lt_u,W4);function K4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Et(r)}E.set(b.i32x4_le_s,K4);function j4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Et(r)}E.set(b.i32x4_le_u,j4);function Q4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,At(r)}E.set(b.i32x4_gt_s,Q4);function H4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,At(r)}E.set(b.i32x4_gt_u,H4);function X4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,vt(r)}E.set(b.i32x4_ge_s,X4);function Z4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,vt(r)}E.set(b.i32x4_ge_u,Z4);function Y4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Uc(r)}E.set(b.i32x4_trunc_sat_f32x4_s,Y4);function $4(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Uc(r)}E.set(b.i32x4_trunc_sat_f32x4_u,$4);function J4(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Vc(r)}E.set(b.i32x4_trunc_sat_f64x2_s_zero,J4);function eS(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Vc(r)}E.set(b.i32x4_trunc_sat_f64x2_u_zero,eS);function tS(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Xr(r)}E.set(b.i32x4_extend_low_i16x8_s,tS);function rS(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Xr(r)}E.set(b.i32x4_extend_low_i16x8_u,rS);function iS(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Zr(r)}E.set(b.i32x4_extend_high_i16x8_s,iS);function nS(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Zr(r)}E.set(b.i32x4_extend_high_i16x8_u,nS);function sS(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Fs(r)}E.set(b.i32x4_extadd_pairwise_i16x8_s,sS);function lS(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Fs(r)}E.set(b.i32x4_extadd_pairwise_i16x8_u,lS);function aS(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Yr(r)}E.set(b.i32x4_extmul_low_i16x8_s,aS);function oS(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,Yr(r)}E.set(b.i32x4_extmul_low_i16x8_u,oS);function uS(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,$r(r)}E.set(b.i32x4_extmul_high_i16x8_s,uS);function pS(r){return k(r),r.typeArguments=[p.u16],r.contextualType=p.v128,$r(r)}E.set(b.i32x4_extmul_high_i16x8_u,pS);function cS(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Vr(r)}E.set(b.i32x4_shuffle,cS);function fS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Dr(r)}E.set(b.i64x2_splat,fS);function _S(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i64,Ot(r)}E.set(b.i64x2_extract_lane,_S);function hS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Ur(r)}E.set(b.i64x2_replace_lane,hS);function dS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,qr(r)}E.set(b.i64x2_add,dS);function mS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Wr(r)}E.set(b.i64x2_sub,mS);function yS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Oi(r)}E.set(b.i64x2_mul,yS);function gS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Hr(r)}E.set(b.i64x2_abs,gS);function bS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Qr(r)}E.set(b.i64x2_neg,bS);function xS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Ss(r)}E.set(b.i64x2_shl,xS);function TS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Kt(r)}E.set(b.i64x2_shr_s,TS);function ES(r){return k(r),r.typeArguments=[p.u64],r.contextualType=p.v128,Kt(r)}E.set(b.i64x2_shr_u,ES);function AS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i32,Is(r)}E.set(b.i64x2_all_true,AS);function vS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.i32,ks(r)}E.set(b.i64x2_bitmask,vS);function SS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Kr(r)}E.set(b.i64x2_eq,SS);function IS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,jr(r)}E.set(b.i64x2_ne,IS);function kS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Tt(r)}E.set(b.i64x2_lt_s,kS);function FS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Et(r)}E.set(b.i64x2_le_s,FS);function RS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,At(r)}E.set(b.i64x2_gt_s,RS);function wS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,vt(r)}E.set(b.i64x2_ge_s,wS);function CS(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Xr(r)}E.set(b.i64x2_extend_low_i32x4_s,CS);function PS(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Xr(r)}E.set(b.i64x2_extend_low_i32x4_u,PS);function NS(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Zr(r)}E.set(b.i64x2_extend_high_i32x4_s,NS);function BS(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Zr(r)}E.set(b.i64x2_extend_high_i32x4_u,BS);function LS(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Yr(r)}E.set(b.i64x2_extmul_low_i32x4_s,LS);function MS(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Yr(r)}E.set(b.i64x2_extmul_low_i32x4_u,MS);function zS(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,$r(r)}E.set(b.i64x2_extmul_high_i32x4_s,zS);function GS(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,$r(r)}E.set(b.i64x2_extmul_high_i32x4_u,GS);function DS(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Vr(r)}E.set(b.i64x2_shuffle,DS);function US(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Dr(r)}E.set(b.f32x4_splat,US);function VS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.f32,Ot(r)}E.set(b.f32x4_extract_lane,VS);function OS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Ur(r)}E.set(b.f32x4_replace_lane,OS);function qS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,qr(r)}E.set(b.f32x4_add,qS);function WS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Wr(r)}E.set(b.f32x4_sub,WS);function KS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Oi(r)}E.set(b.f32x4_mul,KS);function jS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Rc(r)}E.set(b.f32x4_div,jS);function QS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Qr(r)}E.set(b.f32x4_neg,QS);function HS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,qt(r)}E.set(b.f32x4_min,HS);function XS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Wt(r)}E.set(b.f32x4_max,XS);function ZS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,wc(r)}E.set(b.f32x4_pmin,ZS);function YS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Cc(r)}E.set(b.f32x4_pmax,YS);function $S(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Hr(r)}E.set(b.f32x4_abs,$S);function JS(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Nc(r)}E.set(b.f32x4_sqrt,JS);function eI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Bc(r)}E.set(b.f32x4_ceil,eI);function tI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Lc(r)}E.set(b.f32x4_floor,tI);function rI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Mc(r)}E.set(b.f32x4_trunc,rI);function iI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,zc(r)}E.set(b.f32x4_nearest,iI);function nI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Kr(r)}E.set(b.f32x4_eq,nI);function sI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,jr(r)}E.set(b.f32x4_ne,sI);function lI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Tt(r)}E.set(b.f32x4_lt,lI);function aI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Et(r)}E.set(b.f32x4_le,aI);function oI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,At(r)}E.set(b.f32x4_gt,oI);function uI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,vt(r)}E.set(b.f32x4_ge,uI);function pI(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Gc(r)}E.set(b.f32x4_convert_i32x4_s,pI);function cI(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Gc(r)}E.set(b.f32x4_convert_i32x4_u,cI);function fI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,kg(r)}E.set(b.f32x4_demote_f64x2_zero,fI);function _I(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Vr(r)}E.set(b.f32x4_shuffle,_I);function hI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Dr(r)}E.set(b.f64x2_splat,hI);function dI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.f64,Ot(r)}E.set(b.f64x2_extract_lane,dI);function mI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Ur(r)}E.set(b.f64x2_replace_lane,mI);function yI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,qr(r)}E.set(b.f64x2_add,yI);function gI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Wr(r)}E.set(b.f64x2_sub,gI);function bI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Oi(r)}E.set(b.f64x2_mul,bI);function xI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Rc(r)}E.set(b.f64x2_div,xI);function TI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Qr(r)}E.set(b.f64x2_neg,TI);function EI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,qt(r)}E.set(b.f64x2_min,EI);function AI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Wt(r)}E.set(b.f64x2_max,AI);function vI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,wc(r)}E.set(b.f64x2_pmin,vI);function SI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Cc(r)}E.set(b.f64x2_pmax,SI);function II(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Hr(r)}E.set(b.f64x2_abs,II);function kI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Nc(r)}E.set(b.f64x2_sqrt,kI);function FI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Bc(r)}E.set(b.f64x2_ceil,FI);function RI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Lc(r)}E.set(b.f64x2_floor,RI);function wI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Mc(r)}E.set(b.f64x2_trunc,wI);function CI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,zc(r)}E.set(b.f64x2_nearest,CI);function PI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Kr(r)}E.set(b.f64x2_eq,PI);function NI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,jr(r)}E.set(b.f64x2_ne,NI);function BI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Tt(r)}E.set(b.f64x2_lt,BI);function LI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Et(r)}E.set(b.f64x2_le,LI);function MI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,At(r)}E.set(b.f64x2_gt,MI);function zI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,vt(r)}E.set(b.f64x2_ge,zI);function GI(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Dc(r)}E.set(b.f64x2_convert_low_i32x4_s,GI);function DI(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Dc(r)}E.set(b.f64x2_convert_low_i32x4_u,DI);function UI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Fg(r)}E.set(b.f64x2_promote_low_f32x4,UI);function VI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Vr(r)}E.set(b.f64x2_shuffle,VI);function OI(r){return k(r),r.typeArguments=null,r.contextualType=p.v128,wg(r)}E.set(b.i8x16_relaxed_swizzle,OI);function qI(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Oc(r)}E.set(b.i32x4_relaxed_trunc_f32x4_s,qI);function WI(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,Oc(r)}E.set(b.i32x4_relaxed_trunc_f32x4_u,WI);function KI(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,qc(r)}E.set(b.i32x4_relaxed_trunc_f64x2_s_zero,KI);function jI(r){return k(r),r.typeArguments=[p.u32],r.contextualType=p.v128,qc(r)}E.set(b.i32x4_relaxed_trunc_f64x2_u_zero,jI);function QI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Wc(r)}E.set(b.f32x4_relaxed_madd,QI);function HI(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Kc(r)}E.set(b.f32x4_relaxed_nmadd,HI);function XI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Wc(r)}E.set(b.f64x2_relaxed_madd,XI);function ZI(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Kc(r)}E.set(b.f64x2_relaxed_nmadd,ZI);function YI(r){return k(r),r.typeArguments=[p.i8],r.contextualType=p.v128,Rs(r)}E.set(b.i8x16_relaxed_laneselect,YI);function $I(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Rs(r)}E.set(b.i16x8_relaxed_laneselect,$I);function JI(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Rs(r)}E.set(b.i32x4_relaxed_laneselect,JI);function e3(r){return k(r),r.typeArguments=[p.i64],r.contextualType=p.v128,Rs(r)}E.set(b.i64x2_relaxed_laneselect,e3);function t3(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,jc(r)}E.set(b.f32x4_relaxed_min,t3);function r3(r){return k(r),r.typeArguments=[p.f32],r.contextualType=p.v128,Qc(r)}E.set(b.f32x4_relaxed_max,r3);function i3(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,jc(r)}E.set(b.f64x2_relaxed_min,i3);function n3(r){return k(r),r.typeArguments=[p.f64],r.contextualType=p.v128,Qc(r)}E.set(b.f64x2_relaxed_max,n3);function s3(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Cg(r)}E.set(b.i16x8_relaxed_q15mulr_s,s3);function l3(r){return k(r),r.typeArguments=[p.i16],r.contextualType=p.v128,Pg(r)}E.set(b.i16x8_relaxed_dot_i8x16_i7x16_s,l3);function a3(r){return k(r),r.typeArguments=[p.i32],r.contextualType=p.v128,Ng(r)}E.set(b.i32x4_relaxed_dot_i8x16_i7x16_add_s,a3);function Bg(r){let n=r.module,e=new Array,t=r.options.sizeTypeRef,i=assert(r.program.visitInstance);r.compileFunction(i,!0);for(let s=Map_values(r.program.elementsByName),l=0,a=s.length;l<a;++l){let o=unchecked(s[l]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(n.call(i.internalName,[r.options.isWasm64?n.i64(i64_low(_),i64_high(_)):n.i32(i64_low(_)),n.local_get(0,P.I32)],P.None))}else e.push(n.if(n.local_tee(1,n.global_get(u.internalName,t),!1),n.call(i.internalName,[n.local_get(1,t),n.local_get(0,P.I32)],P.None)))}n.addFunction(b.visit_globals,P.I32,P.None,[t],e.length?n.block(null,e):n.nop())}function Lg(r,n){if(assert(n.type.isManaged),n.visitRef)return;let e=r.program,t=r.module,i=e.options.usizeType,s=i.toRef(),l=i.byteSize,a=assert(e.visitInstance),o=new Array,u=n.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,P.I32)],P.None));let c=!1;if(n.isDeclaredInLibrary){let _=n.getMember("__visit");if(_){assert(_.kind==4);let h=e.resolver.resolveFunction(_,null);if(!h||!r.compileFunction(h))o.push(t.unreachable());else{let d=h.signature,y=assert(d.thisType);assert(d.parameterTypes.length==1&&d.parameterTypes[0]==p.u32&&d.returnType==p.void&&n.type.isStrictlyAssignableTo(y)),o.push(t.call(h.internalName,[t.local_get(0,s),t.local_get(1,P.I32)],P.None))}c=!0}}let f=!1;if(!c){let _=n.members;if(_)for(let h=Map_values(_),d=0,y=h.length;d<y;++d){let m=unchecked(h[d]);if(m.kind!=10)continue;let g=m.instance;if(!g)continue;let x=g.type;if(!g.isField||g.getBoundClassOrInterface()!=n||!x.isManaged)continue;let v=g.memoryOffset;assert(v>=0),f=!0,o.push(t.call(a.internalName,[t.load(l,!1,t.local_get(0,s),s,v),t.local_get(1,P.I32)],P.None))}}n.visitRef=t.addFunction(`${n.internalName}~visit`,Ze([s,P.I32]),P.None,f?[s]:null,t.flatten(o,P.None)),u&&u.type.isManaged&&Lg(r,u)}function Mg(r){let n=r.program,e=r.module,i=n.options.usizeType.toRef(),s=n.managedClasses,l=assert(n.visitInstance);r.compileFunction(l,!0);let a=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,h=f.length;_<h;++_){let d=f[_];assert(d==u++);let y=assert(s.get(d));a[_]=y.internalName,y.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${y.internalName}~visit`,[e.local_get(0,i),e.local_get(1,P.I32)],P.None),e.return()],P.None),Lg(r,y))}let c=e.block(a[0],[e.switch(a,"invalid",e.load(4,!1,i==P.I64?e.binary(26,e.local_get(0,i),e.i64(8)):e.binary(1,e.local_get(0,i),e.i32(8)),P.I32,0))],P.None);for(let f=0,_=a.length-1;f<_;++f)c=e.block(a[f+1],[c,o[f]],P.None);c=e.block("invalid",[c,o[a.length-1]],P.None),e.addFunction(b.visit_members,Ze([i,P.I32]),P.None,null,e.flatten([c,e.unreachable()]))}function Di(r){let n=64*(1<<r.alignLog2);return r.is(1)&&(n|=2048),r.is(8)&&(n|=4096),r.is(512)&&(n|=8192),r.isManaged&&(n|=16384),n/64}function zg(r){let n=r.program,e=r.module,t=n.managedClasses,i=t.size,s=4+4*i,l=new Uint8Array(s);be(i,l,0);let a=4,o=n.arrayBufferViewInstance,u=o.prototype,c=n.arrayPrototype,f=n.setPrototype,_=n.mapPrototype,h=n.staticArrayPrototype,d=0;for(let g=Map_keys(t),x=0,v=g.length;x<v;++x){let S=unchecked(g[x]),w=assert(t.get(S));assert(S==d++);let R=0;if(w.isPointerfree&&(R|=32),w!=o&&w.extendsPrototype(u)){let C=w.getArrayValueType();R|=1,R|=64*Di(C)}else if(w.extendsPrototype(c)){let C=w.getArrayValueType();R|=2,R|=64*Di(C)}else if(w.extendsPrototype(f)){let C=assert(w.getTypeArgumentsTo(f));assert(C.length==1),R|=8,R|=64*Di(C[0])}else if(w.extendsPrototype(_)){let C=assert(w.getTypeArgumentsTo(_));assert(C.length==2),R|=16,R|=32768*Di(C[0]),R|=64*Di(C[1])}else if(w.extendsPrototype(h)){let C=w.getArrayValueType();R|=4,R|=64*Di(C)}be(R,l,a),a+=4,w.rttiFlags=R}assert(a==s);let y=n.options.usizeType,m=r.addAlignedMemorySegment(l);if(y.size==8){let g=m.offset;e.addGlobal(b.rtti_base,P.I64,!1,e.i64(i64_low(g),i64_high(g)))}else e.addGlobal(b.rtti_base,P.I32,!1,e.i32(i64_low(m.offset)))}function ze(r){let n=r.compiler,e=r.operands,t=r.typeArguments;if(Ui=0,e.length==0)return!t||t.length!=1?(n.error(2558,r.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return n.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),null;Ui=n.compileExpression(e[0],t[0],1)}else Ui=n.compileExpression(e[0],p.auto);return n.currentType}return t&&t.length>1&&n.error(2558,r.reportNode.typeArgumentsRange,"1",t.length.toString()),n.error(2554,r.reportNode.argumentsRange,"1",e.length.toString()),null}function Pe(r,n){let e=r.compiler.module;return Ui&&qa(Ui,e.ref)&&(n=e.block(null,[e.maybeDrop(Ui),n],ae(n))),n}function it(r,n){let e=n.module,t;if(n.options.isWasm64){let i=n.compileExpression(r,p.usize64,1),s=e.runExpression(i,1);s?(assert(Ne(s)==0),t=ke(s)):(n.error(220,r.range),t=-1)}else{let i=n.compileExpression(r,p.usize32,1),s=e.runExpression(i,1);s?t=ie(s):(n.error(220,r.range),t=-1)}return t}function Ut(r,n,e){let t=it(r,e);return t<0?t:t<1||n>16?(e.error(222,r.range,"Alignment","1",n.toString()),-1):kt(t)?t:(e.error(223,r.range,"Alignment"),-1)}function Z(r,n){let e=r.compiler;return e.options.hasFeature(n)?0:(e.error(103,r.reportNode.range,_i(n)),1)}function Y(r,n=!1){let e=r.compiler,t=r.typeArguments;if(t){let i=t.length;if(i==1)return 0;assert(i),n&&(e.currentType=t[0]),e.error(2558,r.reportNode.typeArgumentsRange,"1",i.toString())}else e.error(2558,r.reportNode.range,"1","0");return 1}function oe(r,n=!1){let e=r.typeArguments;if(e){let t=r.compiler,i=e.length;return i==1?0:(assert(i),n&&(t.currentType=e[0]),t.error(2558,r.reportNode.typeArgumentsRange,"1",i.toString()),1)}return 0}function k(r){if(r.typeArguments){let e=r.prototype;return e.program.error(2315,r.reportNode.typeArgumentsRange,e.internalName),1}return 0}function H(r,n){let e=r.operands;return e.length!=n?(r.compiler.error(2554,r.reportNode.range,n.toString(),e.length.toString()),1):0}function Fe(r,n,e){let i=r.operands.length;return i<n?(r.compiler.error(2555,r.reportNode.range,n.toString(),i.toString()),1):i>e?(r.compiler.error(2554,r.reportNode.range,e.toString(),i.toString()),1):0}function lo(r,n,e){let t=r.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(n))return r.currentType=p.i32,t.i32(i64_low(n));break}case 8:{if(i64_is_u32(n))return r.currentType=p.u32,t.i32(i64_low(n));break}case 4:case 9:return r.currentType=e,t.i64(i64_low(n),i64_high(n))}return r.options.isWasm64?(r.currentType=p.usize64,t.i64(i64_low(n),i64_high(n))):(r.currentType=p.usize32,assert(!i64_high(n)),t.i32(i64_low(n)))}var Zc=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let n=this._currentExpression;if(!n)throw new Error("not walking expressions");return n}get parentExpressionOrNull(){let n=this.stack,e=n.length;return e?n[e-1]:0}visitBlock(n){}visitIf(n){}visitLoop(n){}visitBreak(n){}visitSwitch(n){}visitCallPre(n){}visitCall(n){}visitCallIndirectPre(n){}visitCallIndirect(n){}visitLocalGet(n){}visitLocalSet(n){}visitGlobalGet(n){}visitGlobalSet(n){}visitLoad(n){}visitStore(n){}visitConst(n){}visitUnary(n){}visitBinary(n){}visitSelect(n){}visitDrop(n){}visitReturn(n){}visitMemorySize(n){}visitMemoryGrow(n){}visitNop(n){}visitUnreachable(n){}visitAtomicRMW(n){}visitAtomicCmpxchg(n){}visitAtomicWait(n){}visitAtomicNotify(n){}visitAtomicFence(n){}visitSIMDExtract(n){}visitSIMDReplace(n){}visitSIMDShuffle(n){}visitSIMDTernary(n){}visitSIMDShift(n){}visitSIMDLoad(n){}visitSIMDLoadStoreLane(n){}visitMemoryInit(n){}visitDataDrop(n){}visitMemoryCopy(n){}visitMemoryFill(n){}visitPop(n){}visitRefNull(n){}visitRefIsNull(n){}visitRefFunc(n){}visitRefEq(n){}visitTry(n){}visitThrow(n){}visitRethrow(n){}visitTupleMake(n){}visitTupleExtract(n){}visitRefI31(n){}visitI31Get(n){}visitCallRef(n){}visitRefTest(n){}visitRefCast(n){}visitBrOn(n){}visitStructNew(n){}visitStructGet(n){}visitStructSet(n){}visitArrayNew(n){}visitArrayNewFixed(n){}visitArrayGet(n){}visitArraySet(n){}visitArrayLen(n){}visitArrayCopy(n){}visitRefAs(n){}visitStringNew(n){}visitStringConst(n){}visitStringMeasure(n){}visitStringEncode(n){}visitStringConcat(n){}visitStringEq(n){}visitStringAs(n){}visitStringWTF8Advance(n){}visitStringWTF16Get(n){}visitStringIterNext(n){}visitStringIterMove(n){}visitStringSliceWTF(n){}visitStringSliceIter(n){}visitName(n){}visitLabel(n){}visitIndex(n){}visitTag(n){}visit(n){let e=this._currentExpression;switch(this._currentExpression=assert(n),It(n)){case 1:{this.stack.push(n);let t=zs(n);t&&this.visitLabel(t);for(let i=0,s=rn(n);i<s;++i)this.visit(nn(n,i));assert(this.stack.pop()==n),this.visitBlock(n);break}case 2:{this.stack.push(n),this.visit(sn(n)),this.visit(ln(n));let t=an(n);t&&this.visit(t),assert(this.stack.pop()==n),this.visitIf(n);break}case 3:{this.stack.push(n);let t=Gs(n);t&&this.visitLabel(t),this.visit(on(n)),assert(this.stack.pop()==n),this.visitLoop(n);break}case 4:{this.stack.push(n),this.visitLabel(Ds(n));let t=un(n);t&&this.visit(t);let i=go(n);i&&this.visit(i),assert(this.stack.pop()==n),this.visitBreak(n);break}case 5:{this.stack.push(n);let t=$f(n);t&&this.visitLabel(t);let i=Zf(n);for(let l=0;l<i;++l)this.visitLabel(Yf(n,l));this.visit(bo(n));let s=xo(n);s&&this.visit(s),assert(this.stack.pop()==n),this.visitSwitch(n);break}case 6:{this.visitCallPre(n),this.stack.push(n),this.visitName(si(n));let t=Zt(n);for(let i=0;i<t;++i)this.visit(Yt(n,i));assert(this.stack.pop()==n),this.visitCall(n);break}case 7:{this.visitCallIndirectPre(n),this.stack.push(n),this.visit(To(n));for(let t=0,i=pn(n);t<i;++t)this.visit(cn(n,t));assert(this.stack.pop()==n),this.visitCallIndirect(n);break}case 8:{this.stack.push(n),this.visitIndex(Os(n)),assert(this.stack.pop()==n),this.visitLocalGet(n);break}case 9:{this.stack.push(n),this.visitIndex(li(n)),this.visit(xr(n)),assert(this.stack.pop()==n),this.visitLocalSet(n);break}case 10:{this.stack.push(n),this.visitName(Ks(n)),assert(this.stack.pop()==n),this.visitGlobalGet(n);break}case 11:{this.stack.push(n),this.visitName(c_(n)),this.visit(Eo(n)),assert(this.stack.pop()==n),this.visitGlobalSet(n);break}case 12:{this.stack.push(n),this.visit(_n(n)),assert(this.stack.pop()==n),this.visitLoad(n);break}case 13:{this.stack.push(n),this.visit(Tr(n)),this.visit(hn(n)),assert(this.stack.pop()==n),this.visitStore(n);break}case 14:{this.visitConst(n);break}case 15:{this.stack.push(n),this.visit(dn(n)),assert(this.stack.pop()==n),this.visitUnary(n);break}case 16:{this.stack.push(n),this.visit(mn(n)),this.visit(yn(n)),assert(this.stack.pop()==n),this.visitBinary(n);break}case 17:{this.stack.push(n),this.visit(gn(n)),this.visit(bn(n)),this.visit(xn(n)),assert(this.stack.pop()==n),this.visitSelect(n);break}case 18:{this.stack.push(n),this.visit(Tn(n)),assert(this.stack.pop()==n),this.visitDrop(n);break}case 19:{let t=Er(n);t&&(this.stack.push(n),this.visit(t),assert(this.stack.pop()==n)),this.visitReturn(n);break}case 20:{this.visitMemorySize(n);break}case 21:{this.stack.push(n),this.visit(fn(n)),assert(this.stack.pop()==n),this.visitMemoryGrow(n);break}case 22:{this.visitNop(n);break}case 23:{this.visitUnreachable(n);break}case 24:{this.stack.push(n),this.visit(vo(n)),this.visit(So(n)),assert(this.stack.pop()==n),this.visitAtomicRMW(n);break}case 25:{this.stack.push(n),this.visit(Io(n)),this.visit(ko(n)),this.visit(Fo(n)),assert(this.stack.pop()==n),this.visitAtomicCmpxchg(n);break}case 26:{this.stack.push(n),this.visit(Ro(n)),this.visit(wo(n)),this.visit(Co(n)),assert(this.stack.pop()==n),this.visitAtomicWait(n);break}case 27:{this.stack.push(n),this.visit(Po(n)),this.visit(No(n)),assert(this.stack.pop()==n),this.visitAtomicNotify(n);break}case 28:{this.visitAtomicFence(n);break}case 30:{this.stack.push(n),this.visit(Bo(n)),assert(this.stack.pop()==n),this.visitSIMDExtract(n);break}case 31:{this.stack.push(n),this.visit(Lo(n)),this.visit(Mo(n)),assert(this.stack.pop()==n),this.visitSIMDReplace(n);break}case 32:{this.stack.push(n),this.visit(zo(n)),this.visit(Go(n)),assert(this.stack.pop()==n),this.visitSIMDShuffle(n);break}case 33:{this.stack.push(n),this.visit(Do(n)),this.visit(Uo(n)),this.visit(Vo(n)),assert(this.stack.pop()==n),this.visitSIMDTernary(n);break}case 34:{this.stack.push(n),this.visit(Oo(n)),this.visit(qo(n)),assert(this.stack.pop()==n),this.visitSIMDShift(n);break}case 35:{this.stack.push(n),this.visit(Wo(n)),assert(this.stack.pop()==n),this.visitSIMDLoad(n);break}case 36:{this.stack.push(n),this.visit(Ko(n)),this.visit(jo(n)),assert(this.stack.pop()==n),this.visitSIMDLoadStoreLane(n);break}case 37:{this.stack.push(n),this.visit(Qo(n)),this.visit(Ho(n)),this.visit(Xo(n)),assert(this.stack.pop()==n),this.visitMemoryInit(n);break}case 38:{this.visitDataDrop(n);break}case 39:{this.stack.push(n),this.visit(Zo(n)),this.visit(Yo(n)),this.visit($o(n)),assert(this.stack.pop()==n),this.visitMemoryCopy(n);break}case 40:{this.stack.push(n),this.visit(Jo(n)),this.visit(eu(n)),this.visit(tu(n)),assert(this.stack.pop()==n),this.visitMemoryFill(n);break}case 41:{this.visitPop(n);break}case 42:{this.visitRefNull(n);break}case 43:{this.stack.push(n),this.visit(ru(n)),assert(this.stack.pop()==n),this.visitRefIsNull(n);break}case 44:{this.stack.push(n),this.visitName(qh(n)),assert(this.stack.pop()==n),this.visitRefFunc(n);break}case 45:{this.stack.push(n),this.visit(su(n)),this.visit(lu(n)),assert(this.stack.pop()==n),this.visitRefEq(n);break}case 54:{this.stack.push(n),this.visit(au(n));let t=ou(n);for(let i=0;i<t;++i)this.visit(uu(n,i));assert(this.stack.pop()==n),this.visitTry(n);break}case 56:{this.stack.push(n),this.visitTag(td(n));let t=pu(n);for(let i=0;i<t;++i)this.visit(cu(n,i));assert(this.stack.pop()==n),this.visitThrow(n);break}case 57:{this.visitRethrow(n);break}case 59:{let t=fu(n);if(t){this.stack.push(n);for(let i=0;i<t;++i)this.visit(_u(n,i));assert(this.stack.pop()==n)}this.visitTupleMake(n);break}case 60:{this.stack.push(n),this.visit(hu(n)),assert(this.stack.pop()==n),this.visitTupleExtract(n);break}case 61:{this.stack.push(n),this.visit(du(n)),assert(this.stack.pop()==n),this.visitRefI31(n);break}case 62:{this.stack.push(n),this.visit(mu(n)),assert(this.stack.pop()==n),this.visitI31Get(n);break}case 63:{this.stack.push(n);let t=yu(n);if(t)for(let i=0;i<t;++i)this.visit(gu(n,i));this.visit(bu(n)),assert(this.stack.pop()==n),this.visitCallRef(n);break}case 64:{this.stack.push(n),this.visit(xu(n)),assert(this.stack.pop()==n),this.visitRefTest(n);break}case 65:{this.stack.push(n),this.visit(Tu(n)),assert(this.stack.pop()==n),this.visitRefCast(n);break}case 67:{this.stack.push(n),this.visitLabel(yd(n)),this.visit(Eu(n)),assert(this.stack.pop()==n),this.visitBrOn(n);break}case 68:{let t=Au(n);if(t){this.stack.push(n);for(let i=0;i<t;++i)this.visit(vu(n,i));assert(this.stack.pop()==n)}this.visitStructNew(n);break}case 69:{this.stack.push(n),this.visit(Su(n)),this.visitIndex(xd(n)),assert(this.stack.pop()==n),this.visitStructGet(n);break}case 70:{this.stack.push(n),this.visit(Iu(n)),this.visitIndex(Ed(n)),this.visit(ku(n)),assert(this.stack.pop()==n),this.visitStructSet(n);break}case 73:{this.stack.push(n),this.visit(Ru(n));let t=Fu(n);t&&this.visit(t),assert(this.stack.pop()==n),this.visitArrayNew(n);break}case 76:{let t=wu(n);if(t){this.stack.push(n);for(let i=0;i<t;++i)this.visit(Cu(n,i));assert(this.stack.pop()==n)}this.visitArrayNewFixed(n);break}case 77:{this.stack.push(n),this.visit(Pu(n)),this.visit(Nu(n)),assert(this.stack.pop()==n),this.visitArrayGet(n);break}case 78:{this.stack.push(n),this.visit(Bu(n)),this.visit(Lu(n)),this.visit(Mu(n)),assert(this.stack.pop()==n),this.visitArraySet(n);break}case 81:{this.stack.push(n),this.visit(zu(n)),assert(this.stack.pop()==n),this.visitArrayLen(n);break}case 82:{this.stack.push(n),this.visit(Gu(n)),this.visit(Du(n)),this.visit(Uu(n)),this.visit(Vu(n)),this.visit(Ou(n)),assert(this.stack.pop()==n),this.visitArrayCopy(n);break}case 88:{this.stack.push(n),this.visit(nu(n)),assert(this.stack.pop()==n),this.visitRefAs(n);break}case 89:{this.stack.push(n),this.visit(qu(n));let t=Wu(n);t&&this.visit(t);let i=Ku(n);i&&this.visit(i),assert(this.stack.pop()==n),this.visitStringNew(n);break}case 90:{this.stack.push(n),assert(this.stack.pop()==n),this.visitStringConst(n);break}case 91:{this.stack.push(n),this.visit(ju(n)),assert(this.stack.pop()==n),this.visitStringMeasure(n);break}case 92:{this.stack.push(n),this.visit(Qu(n)),this.visit(Hu(n));let t=Xu(n);t&&this.visit(t),assert(this.stack.pop()==n),this.visitStringEncode(n);break}case 93:{this.stack.push(n),this.visit(Zu(n)),this.visit(Yu(n)),assert(this.stack.pop()==n),this.visitStringConcat(n);break}case 94:{this.stack.push(n),this.visit(Ju(n)),this.visit(ep(n)),assert(this.stack.pop()==n),this.visitStringEq(n);break}case 96:{this.stack.push(n),this.visit(tp(n)),this.visit(rp(n)),assert(this.stack.pop()==n),this.visitStringWTF16Get(n);break}case 97:{this.stack.push(n),this.visit(ip(n)),this.visit(np(n)),this.visit(sp(n)),assert(this.stack.pop()==n),this.visitStringSliceWTF(n);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},Jr=class extends Zc{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,i=tm(e);t<i;++t)this.walkFunction(rm(e,t))}walkFunction(e){let t=$t(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,i=xm(e);t<i;++t)this.walkGlobal(Tm(e,t))}walkGlobal(e){this._currentGlobal=e;let t=rl(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,i=this.currentFunction;if($t(i)==t)$s(i,e);else{let l=assert(this.parentExpressionOrNull);if(!o3(l,t,e))throw Error("failed to replace expression");zf(l)}}};function o3(r,n,e){switch(It(r)){case 1:{let t=rn(r);for(let i=0;i<t;++i){let s=nn(r,i);if(s==n)return Df(r,i,e),s}break}case 2:{let t=sn(r);if(t==n)return Vf(r,e),t;let i=ln(r);if(i==n)return Of(r,e),i;let s=an(r);if(s==n)return qf(r,e),s;break}case 3:{let t=on(r);if(t==n)return Kf(r,e),t;break}case 4:{let t=un(r);if(t==n)return Qf(r,e),t;let i=go(r);if(i==n)return Hf(r,e),i;break}case 5:{let t=bo(r);if(t==n)return Jf(r,e),t;let i=xo(r);if(i==n)return e_(r,e),i;break}case 6:{let t=Zt(r);for(let i=0;i<t;++i){let s=Yt(r,i);if(s==n)return Us(r,i,e),s}break}case 7:{let t=To(r);if(t==n)return n_(r,e),t;let i=pn(r);for(let s=0;s<i;++s){let l=cn(r,s);if(l==n)return Vs(r,s,e),l}break}case 8:break;case 9:{let t=xr(r);if(t==n)return Ws(r,e),t;break}case 10:break;case 11:{let t=Eo(r);if(t==n)return f_(r,e),t;break}case 12:{let t=_n(r);if(t==n)return x_(r,e),t;break}case 13:{let t=Tr(r);if(t==n)return Hs(r,e),t;let i=hn(r);if(i==n)return A_(r,e),i;break}case 14:break;case 15:{let t=dn(r);if(t==n)return C_(r,e),t;break}case 16:{let t=mn(r);if(t==n)return M_(r,e),t;let i=yn(r);if(i==n)return z_(r,e),i;break}case 17:{let t=gn(r);if(t==n)return D_(r,e),t;let i=bn(r);if(i==n)return U_(r,e),i;let s=xn(r);if(s==n)return V_(r,e),s;break}case 18:{let t=Tn(r);if(t==n)return O_(r,e),t;break}case 19:{let t=Er(r);if(t==n)return Xs(r,e),t;break}case 20:break;case 21:{let t=fn(r);if(t==n)return d_(r,e),t;break}case 22:break;case 23:break;case 24:{let t=vo(r);if(t==n)return Q_(r,e),t;let i=So(r);if(i==n)return H_(r,e),i;break}case 25:{let t=Io(r);if(t==n)return Z_(r,e),t;let i=ko(r);if(i==n)return Y_(r,e),i;let s=Fo(r);if(s==n)return $_(r,e),s;break}case 26:{let t=Ro(r);if(t==n)return eh(r,e),t;let i=wo(r);if(i==n)return th(r,e),i;let s=Co(r);if(s==n)return rh(r,e),s;break}case 27:{let t=Po(r);if(t==n)return nh(r,e),t;let i=No(r);if(i==n)return sh(r,e),i;break}case 28:break;case 30:{let t=Bo(r);if(t==n)return oh(r,e),t;break}case 31:{let t=Lo(r);if(t==n)return ph(r,e),t;let i=Mo(r);if(i==n)return ch(r,e),i;break}case 32:{let t=zo(r);if(t==n)return _h(r,e),t;let i=Go(r);if(i==n)return hh(r,e),i;break}case 33:{let t=Do(r);if(t==n)return mh(r,e),t;let i=Uo(r);if(i==n)return yh(r,e),i;let s=Vo(r);if(s==n)return gh(r,e),s;break}case 34:{let t=Oo(r);if(t==n)return xh(r,e),t;let i=qo(r);if(i==n)return Th(r,e),i;break}case 35:{let t=Wo(r);if(t==n)return Ah(r,e),t;break}case 36:{let t=Ko(r);if(t==n)return Sh(r,e),t;if(jo(r)==n)return Ih(r,e),t;break}case 37:{let t=Qo(r);if(t==n)return kh(r,e),t;let i=Ho(r);if(i==n)return Fh(r,e),i;let s=Xo(r);if(s==n)return Rh(r,e),s;break}case 38:break;case 39:{let t=Zo(r);if(t==n)return Ch(r,e),t;let i=Yo(r);if(i==n)return Ph(r,e),i;let s=$o(r);if(s==n)return Nh(r,e),s;break}case 40:{let t=Jo(r);if(t==n)return Lh(r,e),t;let i=eu(r);if(i==n)return Mh(r,e),i;let s=tu(r);if(s==n)return zh(r,e),s;break}case 41:break;case 42:break;case 43:{let t=ru(r);if(t==n)return Uh(r,e),t;break}case 44:break;case 45:{let t=su(r);if(t==n)return Kh(r,e),t;let i=lu(r);if(i==n)return jh(r,e),i;break}case 54:{let t=au(r);if(t==n)return $h(r,e),t;let i=ou(r);for(let s=0;s<i;++s){let l=uu(r,s);if(l==n)return Jh(r,s,e),l}break}case 56:{let t=pu(r);for(let i=0;i<t;++i){let s=cu(r,i);if(s==n)return rd(r,i,e),s}break}case 57:break;case 59:{let t=fu(r);for(let i=0;i<t;++i){let s=_u(r,i);if(s==n)return sd(r,i,e),s}break}case 60:{let t=hu(r);if(t==n)return ad(r,e),t;break}case 61:{let t=du(r);if(t==n)return pd(r,e),t;break}case 62:{let t=mu(r);if(t==n)return fd(r,e),t;break}case 63:{let t=yu(r);for(let s=0;s<t;++s){let l=gu(r,s);if(l==n)return _d(r,s,e),l}let i=bu(r);if(i==n)return hd(r,e),i;break}case 64:{let t=xu(r);if(t==n)return dd(r,e),t;break}case 65:{let t=Tu(r);if(t==n)return md(r,e),t;break}case 67:{let t=Eu(r);if(t==n)return gd(r,e),t;break}case 68:{let t=Au(r);for(let i=0;i<t;++i){let s=vu(r,i);if(s==n)return bd(r,i,e),s}break}case 69:{let t=Su(r);if(t==n)return Td(r,e),t;break}case 70:{let t=Iu(r);if(t==n)return Ad(r,e),t;let i=ku(r);if(i==n)return vd(r,e),i;break}case 73:{let t=Ru(r);if(t==n)return Id(r,e),t;let i=Fu(r);if(i==n)return Sd(r,e),i;break}case 76:{let t=wu(r);for(let i=0;i<t;++i){let s=Cu(r,i);if(s==n)return kd(r,i,e),s}break}case 77:{let t=Pu(r);if(t==n)return Fd(r,e),t;let i=Nu(r);if(i==n)return Rd(r,e),i;break}case 78:{let t=Bu(r);if(t==n)return wd(r,e),t;let i=Lu(r);if(i==n)return Cd(r,e),i;let s=Mu(r);if(s==n)return Pd(r,e),s;break}case 81:{let t=zu(r);if(t==n)return Nd(r,e),t;break}case 82:{let t=Gu(r);if(t==n)return Bd(r,e),t;let i=Du(r);if(i==n)return Ld(r,e),i;let s=Uu(r);if(s==n)return Md(r,e),s;let l=Vu(r);if(l==n)return zd(r,e),l;let a=Ou(r);if(a==n)return Gd(r,e),a;break}case 88:{let t=nu(r);if(t==n)return Vh(r,e),t;break}case 89:{let t=qu(r);if(t==n)return Dd(r,e),t;let i=Wu(r);if(i==n)return Ud(r,e),i;let s=Ku(r);if(s==n)return Vd(r,e),s;break}case 90:break;case 91:{let t=ju(r);if(t==n)return Od(r,e),t;break}case 92:{let t=Qu(r);if(t==n)return qd(r,e),t;let i=Hu(r);if(i==n)return Wd(r,e),i;let s=Xu(r);if(s==n)return Kd(r,e),s;break}case 93:{let t=Zu(r);if(t==n)return jd(r,e),t;let i=Yu(r);if(i==n)return Qd(r,e),i;break}case 94:{let t=Ju(r);if(t==n)return Hd(r,e),t;let i=ep(r);if(i==n)return Xd(r,e),i;break}case 96:{let t=tp(r);if(t==n)return Zd(r,e),t;let i=rp(r);if(i==n)return Yd(r,e),i;break}case 97:{let t=ip(r);if(t==n)return $d(r,e),t;let i=np(r);if(i==n)return Jd(r,e),i;let s=sp(r);if(s==n)return em(r,e),s;break}default:throw new Error("unexpected expression id")}return 0}var oo=class extends Jr{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(pi(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,i=Tr(e),s=Qs(e),l=js(e);Hs(e,t.call("~onstore",[i,t.i32(s),t.i32(l),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",Ze([this.ptrType,P.I32,P.I32,P.I32]),this.ptrType)}};function Gg(r,n){let e=!1;for(;It(n)==6&&r.readStringCached(si(n))==b.tostack;)assert(Zt(n)==1),n=Yt(n,0),e=!0;return e?n:0}function Dg(r){return It(r)===14?!Ye(r):!0}var uo=class extends Jr{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==P.I64?8:4}get ptrBinaryAdd(){return this.ptrType==P.I64?25:0}get ptrBinarySub(){return this.ptrType==P.I64?26:1}ptrConst(e){return this.ptrType==P.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let i;if(this.slotMaps.has(e)){if(i=changetype(this.slotMaps.get(e)),i.has(t))return changetype(i.get(t))}else i=new Map,this.slotMaps.set(e,i);let s=i.size;return i.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let i;if(this.tempMaps.has(e)){if(i=changetype(this.tempMaps.get(e)),i.has(t))return changetype(i.get(t))}else i=new Map,this.tempMaps.set(e,i);let l=lp(e)+i.size;return i.set(t,l),l}makeStackOffset(e){assert(e!=0);let t=this.module,i=t.global_set(b.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(b.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?i:t.block(null,[i,this.makeStackCheck()],P.None)}makeStackFill(e,t){assert(e>0);let i=this.module;if(this.options.hasFeature(8)&&e>16)t.push(i.memory_fill(i.global_get(b.stack_pointer,this.ptrType),i.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(i.store(8,i.global_get(b.stack_pointer,this.ptrType),i.i64(0),P.I64,e-s)),s-=8;s&&(assert(s==4),t.push(i.store(4,i.global_get(b.stack_pointer,this.ptrType),i.i32(0),P.I32,e-s)))}}makeStackCheck(){let e=this.module;return this.hasStackCheckFunction||(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",P.None,P.None,null,e.if(e.binary(17,e.global_get(b.stack_pointer,this.ptrType),e.global_get(b.data_end,this.ptrType)),this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),ye.native)))),e.call("~stack_check",null,P.None)}updateCallOperands(e){let t=this.module,i=0;for(let s=0,l=e.length;s<l;++s){let a=e[s],o=Gg(t,a);if(!o)continue;if(!Dg(o)){e[s]=o;continue}let u=this.currentFunction,c=lp(u),f=this.noteSlot(u,c+this.callSlotOffset+i),_=this.getSharedTemp(u,this.ptrType),h=new Array;h.push(t.local_set(_,o,!1)),h.push(t.store(this.ptrSize,t.global_get(b.stack_pointer,this.ptrType),t.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),h.push(t.local_get(_,this.ptrType)),e[s]=t.block(null,h,this.ptrType),++i}return i}visitCallPre(e){let t=Zt(e),i=new Array(t);for(let l=0;l<t;++l)i[l]=Yt(e,l);let s=this.updateCallOperands(i);for(let l=0,a=i.length;l<a;++l)Us(e,l,i[l]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=pn(e),i=new Array(t);for(let l=0;l<t;++l)i[l]=cn(e,l);let s=this.updateCallOperands(i);for(let l=0,a=i.length;l<a;++l)Vs(e,l,i[l]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,i=xr(e),s=Gg(t,i);if(!s)return;if(!Dg(s)){Ws(e,s);return}let l=li(e),a=this.noteSlot(this.currentFunction,l),o=new Array;o.push(t.store(this.ptrSize,t.global_get(b.stack_pointer,this.ptrType),t.local_tee(l,s,!1),this.ptrType,a*this.ptrSize)),qs(e)?(o.push(t.local_get(l,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,P.None))}updateFunction(e){let t=pi(e),i=An(e),s=vn(e),l=assert($t(e)),a=Zs(e),o=new Array;for(let h=0;h<a;++h)o[h]=Ys(e,h);let u=this.tempMaps;if(u.has(e)){let h=changetype(u.get(e));for(let d=Map_keys(h),y=0,m=d.length;y<m;++y)o.push(d[y])}let c=this.module.ref;En(c,t);let f=de(o),_=oi(c,t,i,s,f,o.length,l);if(this.options.sourceMap||this.options.debugInfo){let h=this.compiler.program.searchFunctionByRef(_);h&&h.addDebugInfo(this.module,_)}te(f)}updateExport(e,t){let i=this.module,s=i.ref;assert(dm(e)==0);let l=ym(e),a=i.readStringCached(l),o=mm(e),u=ui(s,l),c=An(u),f=qp(c),_=f.length,h=vn(u),d=_,y=new Array,m=assert(t.length),g=m*this.ptrSize,x="export:"+a,v=i.allocStringCached(x);if(ui(s,v)==0){let S=new Array;S.push(this.makeStackOffset(-g));for(let C=0;C<m;++C)S.push(i.store(this.ptrSize,i.global_get(b.stack_pointer,this.ptrType),i.local_get(t[C],this.ptrType),this.ptrType,C*this.ptrSize));let w=new Array(_);for(let C=0;C<_;++C)w[C]=i.local_get(C,f[C]);if(h!=P.None){let C=d++;y.push(h),S.push(i.local_set(C,i.call(a,w,h),!1)),S.push(this.makeStackOffset(+g)),S.push(i.local_get(C,h))}else S.push(i.call(a,w,h)),S.push(this.makeStackOffset(+g));let R=de(y);oi(s,v,c,h,R,y.length,i.block(null,S,h)),te(R)}tl(s,o),Js(s,v,o)}walkModule(){super.walkModule();let e=this.module,t=new Yc(this);for(let s=Map_keys(this.slotMaps),l=0,a=s.length;l<a;++l){let o=s[l],c=changetype(this.slotMaps.get(o)).size*this.ptrSize;t.frameSize=c,t.walkFunction(o);let f=new Array;f.push(this.makeStackOffset(-c)),this.makeStackFill(c,f);let _=$t(o),h=Xt(_);if(h==P.Unreachable)f.push(_);else if(h==P.None)f.push(_),f.push(this.makeStackOffset(+c));else{let d=this.getSharedTemp(o,h);f.push(e.local_set(d,_,!1)),f.push(this.makeStackOffset(+c)),f.push(e.local_get(d,h))}$s(o,e.flatten(f,h))}for(let s=Map_keys(this.tempMaps),l=0,a=s.length;l<a;++l)this.updateFunction(s[l]);let i=this.exportMap;for(let s=Map_keys(i),l=0,a=s.length;l<a;++l){let o=s[l],u=el(e.ref,e.allocStringCached(o)),c=changetype(i.get(o));this.updateExport(u,c)}}},Yc=class extends Jr{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,i=Er(e),s=new Array;if(i){let l=Xt(i);if(l==P.Unreachable)return;let a=this.parentPass.getSharedTemp(this.currentFunction,l);s.push(t.local_set(a,i,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Xs(e,t.local_get(a,l))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,P.Unreachable))}};var qi=class{constructor(n,e=!1){this.seen=new Map;this.program=n,this.includePrivate=e}walk(){for(let n=Map_values(this.program.filesByName),e=0,t=n.length;e<t;++e){let i=unchecked(n[e]);i.source.sourceKind==1&&this.visitFile(i)}}visitFile(n){let e=n.exports;if(e)for(let i=Map_keys(e),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]),o=assert(e.get(a));this.visitElement(a,o)}let t=n.exportsStar;if(t)for(let i=0,s=t.length;i<s;++i){let l=unchecked(t[i]);this.visitFile(l)}}visitElement(n,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(n,e,assert(t.get(e)));return}switch(t.set(e,n),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(n,e);break}case 2:{e.is(8388608)&&this.visitEnum(n,e);break}case 3:break;case 4:{this.visitFunctionInstances(n,e);break}case 6:{this.visitClassInstances(n,e);break}case 8:{this.visitInterfaceInstances(n,e);break}case 10:{let i=e.instance;if(!i)break;e=i}case 11:{let i=e,s=i.getterInstance;s&&this.visitFunction(n,s);let l=i.setterInstance;l&&this.visitFunction(n,l);break}case 12:{Ug(e)&&this.visitNamespace(n,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(n,e){let t=e.instances;if(t)for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]);a.is(8388608)&&this.visitFunction(n,a)}}visitClassInstances(n,e){let t=e.instances;if(t)for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]);assert(a.kind==7),a.is(8388608)&&this.visitClass(n,a)}}visitInterfaceInstances(n,e){let t=e.instances;if(t)for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=unchecked(i[s]);assert(a.kind==9),a.is(8388608)&&this.visitInterface(n,a)}}};function Ug(r){let n=r.members;if(n)for(let e=Map_values(n),t=0,i=e.length;t<i;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let l=s.instances;if(l){for(let a=Map_values(l),o=0,u=a.length;o<u;++o)if(unchecked(a[o]).is(8388608))return!0}break}case 6:{let l=s.instances;if(l){for(let a=Map_values(l),o=0,u=a.length;o<u;++o)if(unchecked(a[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||Ug(s))return!0;break}}}return!1}function u3(r){return r=="rtrace"?"#rtrace":r}function p3(r){return r!="rtrace"}var Ki=class r extends qi{constructor(e,t,i=!1){super(e,i);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let i=this.sb,s=t.type;this.exports.push(e),ei(s,1)||(Q(i,this.indentLevel),i.push(e),i.push(`: {
18
+ `),Q(i,++this.indentLevel),i.push("// "),i.push(t.internalName),i.push(": "),i.push(s.toString()),i.push(`
19
+ `),Q(i,this.indentLevel),i.push(`valueOf() { return this.value; },
20
+ `),Q(i,this.indentLevel),i.push(`get value() {
21
+ `),Q(i,++this.indentLevel),i.push("return "),this.makeLiftFromValue("exports."+e+".value",s,i),i.push(`;
22
+ `),Q(i,--this.indentLevel),i.push("}"),t.is(8)||(i.push(`,
23
+ `),Q(i,this.indentLevel),i.push(`set value(value) {
24
+ `),Q(i,++this.indentLevel),i.push("exports."),i.push(e),i.push(".value = "),this.makeLowerToValue("value",s,i),i.push(`;
25
+ `),Q(i,--this.indentLevel),i.push("}")),i.push(`
26
+ `),Q(i,--this.indentLevel),i.push(`},
27
+ `)),this.visitNamespace(e,t)}visitEnum(e,t){let i=this.sb;this.exports.push(e),Q(i,this.indentLevel),i.push(e),i.push(`: (values => (
28
+ `),Q(i,++this.indentLevel),i.push("// "),i.push(t.internalName),i.push(`
29
+ `);let s=t.members;if(s)for(let l=Map_values(s),a=0,o=l.length;a<o;++a){let u=l[a];u.kind==3&&(Q(i,this.indentLevel),i.push("values[values."),i.push(u.name),u.is(33554432)?(i.push(" = "),i.push(i64_low(u.constantIntegerValue).toString())):(i.push(' = exports["'),i.push(ve(e+"."+u.name,34)),i.push('"].valueOf()')),i.push('] = "'),i.push(ve(u.name,34)),i.push(`",
30
+ `))}Q(i,this.indentLevel),i.push(`values
31
+ `),Q(i,--this.indentLevel),i.push(`))({}),
32
+ `),this.visitNamespace(e,t)}makeGlobalImport(e,t,i){let s=this.sb,l=i.type;Q(s,this.indentLevel),Oe(t)?s.push(t):(s.push('"'),s.push(ve(t,34)),s.push('": '));let a=this.ensureModuleId(e);ei(l,0)?(s.push(`(
33
+ `),Q(s,this.indentLevel+1),s.push("// "),s.push(i.internalName),s.push(": "),s.push(i.type.toString()),s.push(`
34
+ `),Q(s,this.indentLevel+1),e!="env"&&(s.push("__module"),s.push(a.toString()),s.push(".")),s.push(t),s.push(`
35
+ `),Q(s,this.indentLevel),s.push(")")):(s.push(`{
36
+ `),Q(s,++this.indentLevel),s.push("// "),s.push(i.internalName),s.push(": "),s.push(i.type.toString()),s.push(`
37
+ `),Q(s,this.indentLevel),s.push(`// not supported: cannot lower before instantiate completes
38
+ `),Q(s,--this.indentLevel),s.push("}")),s.push(`,
39
+ `)}makeFunctionImport(e,t,i,s=null){let l=this.sb,a=i.signature;if(Q(l,this.indentLevel),Oe(t)?l.push(t):(l.push('"'),l.push(ve(t,34)),l.push('"')),$c(a,0)&&!s&&Oe(t))l.push(`: (
40
+ `),Q(l,this.indentLevel+1),l.push("// "),l.push(i.internalName),l.push(i.signature.toString()),l.push(`
41
+ `),Q(l,this.indentLevel+1),e!="env"&&(l.push(e),l.push(".")),l.push(t),l.push(`
42
+ `),Q(l,this.indentLevel),l.push(")");else{l.push("(");let o=a.parameterTypes,u=new Array;for(let _=0,h=o.length;_<h;++_)u.push(i.getParameterName(_));l.push(u.join(", ")),l.push(`) {
43
+ `),Q(l,++this.indentLevel),l.push("// "),l.push(i.internalName),l.push(i.signature.toString()),l.push(`
44
+ `);for(let _=0,h=o.length;_<h;++_){let d=o[_];if(!ei(d,1)){let y=i.getParameterName(_);Q(l,this.indentLevel),l.push(y),l.push(" = "),this.makeLiftFromValue(y,d,l),l.push(`;
45
+ `)}}let c=new Array,f=this.ensureModuleId(e);s?(c.push(`(() => {
46
+ `),Q(c,1),c.push(`// @external.js
47
+ `),Vg(s,1,c),c.push(`
48
+ })()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(t),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,Vg(s,this.indentLevel,c,!0),s=c.join(""),Q(l,this.indentLevel),a.returnType!=p.void?(l.push("return "),this.makeLowerToValue(s,a.returnType,l),l.push(`;
49
+ `)):(l.push(s),l.push(`;
50
+ `)),Q(l,--this.indentLevel),l.push("}")}l.push(`,
51
+ `)}visitFunction(e,t){if(t.is(512))return;let i=this.sb,s=t.signature;if(this.exports.push(e),!$c(s,1)){Q(i,this.indentLevel),i.push(e),i.push("(");let l=s.parameterTypes,a=0;for(let c=0,f=l.length;c<f;++c)l[c].isInternalReference&&a++,c>0&&i.push(", "),i.push(t.getParameterName(c));i.push(`) {
52
+ `),Q(i,++this.indentLevel),i.push("// "),i.push(t.internalName),i.push(s.toString()),i.push(`
53
+ `);let o=new Array;for(let c=0,f=l.length;c<f;++c){let _=l[c];if(!ei(_,0)){let h=t.getParameterName(c);Q(i,this.indentLevel),i.push(h),i.push(" = ");let d=_.isInternalReference&&--a>0;d&&(this.needsRetain=!0,this.needsRelease=!0,i.push("__retain("),o.push(h)),this.makeLowerToValue(h,_,i),d&&i.push(")"),i.push(`;
54
+ `)}}o.length&&(Q(i,this.indentLevel++),i.push(`try {
55
+ `)),s.requiredParameters<l.length&&(Q(i,this.indentLevel),i.push(`exports.__setArgumentsLength(arguments.length);
56
+ `));let u=new Array;u.push("exports."),u.push(e),u.push("(");for(let c=0,f=l.length;c<f;++c)c>0&&u.push(", "),u.push(t.getParameterName(c));if(u.push(")"),s.returnType!=p.void?(Q(i,this.indentLevel),i.push("return "),this.makeLiftFromValue(u.join(""),s.returnType,i)):(Q(i,this.indentLevel),i.push(u.join(""))),i.push(`;
57
+ `),o.length){Q(i,this.indentLevel-1),i.push(`} finally {
58
+ `);for(let c=0,f=o.length;c<f;++c)Q(i,this.indentLevel),i.push("__release("),i.push(o[c]),i.push(`);
59
+ `);Q(i,--this.indentLevel),i.push(`}
60
+ `)}Q(i,--this.indentLevel),i.push(`},
61
+ `)}this.visitNamespace(e,t)}visitClass(e,t){}visitInterface(e,t){this.visitClass(e,t)}visitNamespace(e,t){}visitAlias(e,t,i){}getExternalCode(e){let t=Pt(10,e.decoratorNodes);if(t){let i=t.args;if(i&&i.length==1){let s=i[0];if(s.kind==17){let l=s;if(l.literalKind==2)return l.value;if(l.literalKind==3){let a=l.parts;if(a.length==1)return a[0]}}}}return null}build(){let e=this.exports,t=this.program.moduleImports,i=this.program,s=i.options,l=this.sb;l.push(""),Q(l,this.indentLevel++),this.esm||l.push("export "),l.push(`async function instantiate(module, imports = {}) {
62
+ `);let a=l.push("")-1;Q(l,this.indentLevel++),l.push(`const adaptedImports = {
63
+ `);let o=l.length;for(let y=Map_keys(t),m=0,g=y.length;m<g;++m){let x=y[m],v=this.ensureModuleId(x),S=t.get(x);if(Q(l,this.indentLevel),Oe(x)?l.push(x):(l.push('"'),l.push(ve(x,34)),l.push('"')),!p3(x)){l.push(": __module"),l.push(v.toString()),l.push(`,
64
+ `);continue}let w=l.length;l.push(`: Object.setPrototypeOf({
65
+ `),++this.indentLevel;let R=0;for(let C=Map_keys(S),M=0,G=C.length;M<G;++M){let U=C[M],W=assert(S.get(U));if(W.kind==5){let O=W,X=this.getExternalCode(O);(!$c(O.signature,0)||!Oe(U)||X)&&(this.makeFunctionImport(x,U,W,X),++R)}else if(W.kind==0){let O=W;(!ei(O.type,0)||!Oe(U))&&(this.makeGlobalImport(x,U,O),++R)}}--this.indentLevel,R?(Q(l,this.indentLevel),l.push("}, "),x=="env"?l.push("Object.assign(Object.create(globalThis), imports.env || {})"):(l.push("__module"),l.push(v.toString())),l.push(`),
66
+ `)):(l.length=w,x=="env"?l.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(l.push(": __module"),l.push(v.toString())),l.push(`,
67
+ `))}--this.indentLevel;let u=l.length>o;u?(Q(l,this.indentLevel),l.push(`};
68
+ `)):l.length=o-2;let c=this.importMappings,f=new Array;for(let y=Map_keys(c),m=0,g=y.length;m<g;++m){let x=y[m];if(x=="env")f.push(` const env = imports.env;
69
+ `);else{let v=c.get(x);x=="rtrace"&&(f.push(` ((rtrace) => {
70
+ `),f.push(` delete imports.rtrace;
71
+ `),f.push(" new rtrace.Rtrace({ getMemory() { return memory; }, onerror(err) { console.log(`RTRACE: ${err.stack}`); } }).install(imports);\n"),f.push(` })(imports.rtrace);
72
+ `)),f.push(" const __module"),f.push(v.toString()),f.push(" = imports"),Oe(x)?(f.push("."),f.push(x)):(f.push('["'),f.push(ve(x,34)),f.push('"]')),f.push(`;
73
+ `)}}l[a]=f.join(""),Q(l,this.indentLevel),l.push("const { exports } = await WebAssembly.instantiate(module"),u?l.push(`, adaptedImports);
74
+ `):l.push(`, imports);
75
+ `),Q(l,this.indentLevel),l.push(`const memory = exports.memory || imports.env.memory;
76
+ `),Q(l,this.indentLevel++),l.push(`const adaptedExports = Object.setPrototypeOf({
77
+ `),o=l.length,this.walk(),--this.indentLevel;let _=l.length>o;_?(Q(l,this.indentLevel),l.push(`}, exports);
78
+ `)):this.needsLiftBuffer||this.needsLowerBuffer||this.needsLiftString||this.needsLowerString||this.needsLiftArray||this.needsLowerArray||this.needsLiftTypedArray||this.needsLowerTypedArray||this.needsLiftStaticArray?l.length=o-2:l.length=o-4;let h=this.deferredCode;if(h.length)for(let y=0,m=h.length;y<m;++y)l.push(h[y]);if(this.needsLiftBuffer){let y=i.OBJECTInstance,m=y.offsetof("rtSize")-y.nextMemoryOffset;l.push(` function __liftBuffer(pointer) {
79
+ if (!pointer) return null;
80
+ return memory.buffer.slice(pointer, pointer + new Uint32Array(memory.buffer)[pointer - ${-m} >>> 2]);
81
+ }
82
+ `)}if(this.needsLowerBuffer){let y=i.arrayBufferInstance.id;l.push(` function __lowerBuffer(value) {
83
+ if (value == null) return 0;
84
+ const pointer = exports.__new(value.byteLength, ${y}) >>> 0;
85
+ new Uint8Array(memory.buffer).set(new Uint8Array(value), pointer);
86
+ return pointer;
87
+ }
88
+ `)}if(this.needsLiftString){let y=i.OBJECTInstance,m=y.offsetof("rtSize")-y.nextMemoryOffset,g=1024;l.push(` function __liftString(pointer) {
89
+ if (!pointer) return null;
90
+ const
91
+ end = pointer + new Uint32Array(memory.buffer)[pointer - ${-m} >>> 2] >>> 1,
92
+ memoryU16 = new Uint16Array(memory.buffer);
93
+ let
94
+ start = pointer >>> 1,
95
+ string = "";
96
+ while (end - start > ${g}) string += String.fromCharCode(...memoryU16.subarray(start, start += ${g}));
97
+ return string + String.fromCharCode(...memoryU16.subarray(start, end));
98
+ }
99
+ `)}if(this.needsLowerString){let y=i.stringInstance.id;l.push(` function __lowerString(value) {
100
+ if (value == null) return 0;
101
+ const
102
+ length = value.length,
103
+ pointer = exports.__new(length << 1, ${y}) >>> 0,
104
+ memoryU16 = new Uint16Array(memory.buffer);
105
+ for (let i = 0; i < length; ++i) memoryU16[(pointer >>> 1) + i] = value.charCodeAt(i);
106
+ return pointer;
107
+ }
108
+ `)}if(this.needsLiftArray){let y=i.arrayBufferViewInstance.offsetof("dataStart"),m=i.arrayBufferViewInstance.nextMemoryOffset;this.needsGetU32=!0,l.push(` function __liftArray(liftElement, align, pointer) {
109
+ if (!pointer) return null;
110
+ const
111
+ dataStart = __getU32(pointer + ${y}),
112
+ length = __dataview.getUint32(pointer + ${m}, true),
113
+ values = new Array(length);
114
+ for (let i = 0; i < length; ++i) values[i] = liftElement(dataStart + (i << align >>> 0));
115
+ return values;
116
+ }
117
+ `)}if(this.needsLowerArray){let y=i.arrayBufferInstance.id,m=i.arrayBufferViewInstance,g=m.nextMemoryOffset+4,x=m.offsetof("buffer"),v=m.offsetof("dataStart"),S=m.offsetof("byteLength"),w=S+4;this.needsSetU32=!0,l.push(` function __lowerArray(lowerElement, id, align, values) {
118
+ if (values == null) return 0;
119
+ const
120
+ length = values.length,
121
+ buffer = exports.__pin(exports.__new(length << align, ${y})) >>> 0,
122
+ header = exports.__pin(exports.__new(${g}, id)) >>> 0;
123
+ __setU32(header + ${x}, buffer);
124
+ __dataview.setUint32(header + ${v}, buffer, true);
125
+ __dataview.setUint32(header + ${S}, length << align, true);
126
+ __dataview.setUint32(header + ${w}, length, true);
127
+ for (let i = 0; i < length; ++i) lowerElement(buffer + (i << align >>> 0), values[i]);
128
+ exports.__unpin(buffer);
129
+ exports.__unpin(header);
130
+ return header;
131
+ }
132
+ `)}if(this.needsLiftTypedArray){let y=i.arrayBufferViewInstance,m=y.offsetof("dataStart"),g=y.offsetof("byteLength");this.needsGetU32=!0,l.push(` function __liftTypedArray(constructor, pointer) {
133
+ if (!pointer) return null;
134
+ return new constructor(
135
+ memory.buffer,
136
+ __getU32(pointer + ${m}),
137
+ __dataview.getUint32(pointer + ${g}, true) / constructor.BYTES_PER_ELEMENT
138
+ ).slice();
139
+ }
140
+ `)}if(this.needsLowerTypedArray){let y=i.arrayBufferInstance.id,m=i.arrayBufferViewInstance,g=m.nextMemoryOffset,x=m.offsetof("buffer"),v=m.offsetof("dataStart"),S=m.offsetof("byteLength");this.needsSetU32=!0,l.push(` function __lowerTypedArray(constructor, id, align, values) {
141
+ if (values == null) return 0;
142
+ const
143
+ length = values.length,
144
+ buffer = exports.__pin(exports.__new(length << align, ${y})) >>> 0,
145
+ header = exports.__new(${g}, id) >>> 0;
146
+ __setU32(header + ${x}, buffer);
147
+ __dataview.setUint32(header + ${v}, buffer, true);
148
+ __dataview.setUint32(header + ${S}, length << align, true);
149
+ new constructor(memory.buffer, buffer, length).set(values);
150
+ exports.__unpin(buffer);
151
+ return header;
152
+ }
153
+ `)}if(this.needsLiftStaticArray){let y=i.OBJECTInstance,m=y.offsetof("rtSize")-y.nextMemoryOffset;this.needsGetU32=!0,l.push(` function __liftStaticArray(liftElement, align, pointer) {
154
+ if (!pointer) return null;
155
+ const
156
+ length = __getU32(pointer - ${-m}) >>> align,
157
+ values = new Array(length);
158
+ for (let i = 0; i < length; ++i) values[i] = liftElement(pointer + (i << align >>> 0));
159
+ return values;
160
+ }
161
+ `)}this.needsLowerStaticArray&&l.push(` function __lowerStaticArray(lowerElement, id, align, values, typedConstructor) {
162
+ if (values == null) return 0;
163
+ const
164
+ length = values.length,
165
+ buffer = exports.__pin(exports.__new(length << align, id)) >>> 0;
166
+ if (typedConstructor) {
167
+ new typedConstructor(memory.buffer, buffer, length).set(values);
168
+ } else {
169
+ for (let i = 0; i < length; i++) lowerElement(buffer + (i << align >>> 0), values[i]);
170
+ }
171
+ exports.__unpin(buffer);
172
+ return buffer;
173
+ }
174
+ `),(this.needsLiftInternref||this.needsLowerInternref)&&l.push(` class Internref extends Number {}
175
+ `),this.needsLiftInternref&&(this.needsRetain=!0,this.needsRelease=!0,l.push(` const registry = new FinalizationRegistry(__release);
176
+ function __liftInternref(pointer) {
177
+ if (!pointer) return null;
178
+ const sentinel = new Internref(__retain(pointer));
179
+ registry.register(sentinel, pointer);
180
+ return sentinel;
181
+ }
182
+ `)),this.needsLowerInternref&&l.push(` function __lowerInternref(value) {
183
+ if (value == null) return 0;
184
+ if (value instanceof Internref) return value.valueOf();
185
+ throw TypeError("internref expected");
186
+ }
187
+ `),(this.needsRetain||this.needsRelease)&&l.push(` const refcounts = new Map();
188
+ `),this.needsRetain&&l.push(` function __retain(pointer) {
189
+ if (pointer) {
190
+ const refcount = refcounts.get(pointer);
191
+ if (refcount) refcounts.set(pointer, refcount + 1);
192
+ else refcounts.set(exports.__pin(pointer), 1);
193
+ }
194
+ return pointer;
195
+ }
196
+ `),this.needsRelease&&l.push(` function __release(pointer) {
197
+ if (pointer) {
198
+ const refcount = refcounts.get(pointer);
199
+ if (refcount === 1) exports.__unpin(pointer), refcounts.delete(pointer);
200
+ else if (refcount) refcounts.set(pointer, refcount - 1);
201
+ else throw Error(\`invalid refcount '\${refcount}' for reference '\${pointer}'\`);
202
+ }
203
+ }
204
+ `),this.needsNotNull&&l.push(` function __notnull() {
205
+ throw TypeError("value must not be null");
206
+ }
207
+ `),(this.needsSetU8||this.needsSetU16||this.needsSetU32||this.needsSetU64||this.needsSetF32||this.needsSetF64||this.needsGetI8||this.needsGetU8||this.needsGetI16||this.needsGetU16||this.needsGetI32||this.needsGetU32||this.needsGetI64||this.needsGetU64||this.needsGetF32||this.needsGetF64)&&l.push(` let __dataview = new DataView(memory.buffer);
208
+ `),this.needsSetU8&&l.push(Wi("U8","setUint8")),this.needsSetU16&&l.push(Wi("U16","setUint16")),this.needsSetU32&&l.push(Wi("U32","setUint32")),this.needsSetU64&&l.push(Wi("U64","setBigUint64")),this.needsSetF32&&l.push(Wi("F32","setFloat32")),this.needsSetF64&&l.push(Wi("F64","setFloat64")),this.needsGetI8&&l.push(St("I8","getInt8")),this.needsGetU8&&l.push(St("U8","getUint8")),this.needsGetI16&&l.push(St("I16","getInt16")),this.needsGetU16&&l.push(St("U16","getUint16")),this.needsGetI32&&l.push(St("I32","getInt32")),this.needsGetU32&&l.push(St("U32","getUint32")),this.needsGetI64&&l.push(St("I64","getBigInt64")),this.needsGetU64&&l.push(St("U64","getBigUint64")),this.needsGetF32&&l.push(St("F32","getFloat32")),this.needsGetF64&&l.push(St("F64","getFloat64"));let d=s.exportStart;if(d&&l.push(` exports.${d}();
209
+ `),_?l.push(` return adaptedExports;
210
+ }
211
+ `):l.push(` return exports;
212
+ }
213
+ `),--this.indentLevel,assert(this.indentLevel==0),this.esm){if(l.push(`export const {
214
+ `),this.program.options.exportMemory&&l.push(` memory,
215
+ `),this.program.options.exportTable&&l.push(` table,
216
+ `),this.program.options.exportRuntime){for(let g=0,x=ji.length;g<x;++g)l.push(" "),l.push(ji[g]),l.push(`,
217
+ `);for(let g=0,x=Qi.length;g<x;++g)l.push(" "),l.push(Qi[g]),l.push(`,
218
+ `)}for(let g=0,x=e.length;g<x;++g)l.push(" "),l.push(e[g]),l.push(`,
219
+ `);l.push(`} = await (async url => instantiate(
220
+ await (async () => {
221
+ const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
222
+ if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
223
+ else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
224
+ })(), {
225
+ `);let y=!1,m=new Array;for(let g=Map_keys(c),x=0,v=g.length;x<v;++x){let S=g[x];if(S=="env")Q(l,2),l.push(`env: globalThis,
226
+ `);else{let w=this.ensureModuleId(S);Q(l,2),Oe(S)?l.push(S):(l.push('"'),l.push(ve(S,34)),l.push('"')),l.push(": __maybeDefault(__import"),l.push(w.toString()),l.push(`),
227
+ `),m.push("import * as __import"),m.push(w.toString()),m.push(' from "'),m.push(ve(u3(S),34)),m.push(`";
228
+ `),y=!0}}l[0]=m.join(""),l.push(` }
229
+ ))(new URL("${ve(s.basenameHint,34)}.wasm", import.meta.url));
230
+ `),y&&l.push(`function __maybeDefault(module) {
231
+ return typeof module.default === "object" && Object.keys(module).length == 1
232
+ ? module.default
233
+ : module;
234
+ }
235
+ `)}return l.join("")}ensureModuleId(e){if(e=="env")return-1;let t=this.importMappings,i=t.has(e)?i32(t.get(e)):t.size;return t.set(e,i),i}makeLiftFromValue(e,t,i=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))i.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))i.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let l=s.getArrayValueType();i.push("__liftArray("),this.makeLiftFromMemoryFunc(l,i),i.push(", "),i.push(l.alignLog2.toString()),i.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let l=s.getArrayValueType();i.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(l,i),i.push(", "),i.push(l.alignLog2.toString()),i.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))i.push("__liftTypedArray("),s.name=="Uint64Array"?i.push("BigUint64Array"):s.name=="Int64Array"?i.push("BigInt64Array"):i.push(s.name),i.push(", "),this.needsLiftTypedArray=!0;else if(ws(s)){if(i.push("__liftRecord"),i.push(s.id.toString()),i.push("("),!this.deferredLifts.has(s)){this.deferredLifts.add(s);let l=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLiftRecord(s)),this.indentLevel=l}}else i.push("__liftInternref("),this.needsLiftInternref=!0;i.push(e),e.startsWith("__get")||i.push(" >>> 0"),i.push(")")}else t==p.bool?i.push(`${e} != 0`):t.isUnsignedIntegerValue&&t.size>=32?t.size==64?i.push(`BigInt.asUintN(64, ${e})`):i.push(`${e} >>> 0`):i.push(e)}makeLowerToValue(e,t,i=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))i.push("__lowerBuffer("),this.needsLowerBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))i.push("__lowerString("),this.needsLowerString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let l=s.getArrayValueType();i.push("__lowerArray("),this.makeLowerToMemoryFunc(l,i),i.push(", "),i.push(s.id.toString()),i.push(", "),i.push(s.getArrayValueType().alignLog2.toString()),i.push(", "),this.needsLowerArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let l=s.getArrayValueType();i.push("__lowerStaticArray("),this.makeLowerToMemoryFunc(l,i),i.push(", "),i.push(s.id.toString()),i.push(", "),i.push(l.alignLog2.toString()),i.push(", "),this.needsLowerStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let l=s.getArrayValueType();i.push("__lowerTypedArray("),l==p.u64?i.push("BigUint64Array"):l==p.i64?i.push("BigInt64Array"):i.push(s.name),i.push(", "),i.push(s.id.toString()),i.push(", "),i.push(s.getArrayValueType().alignLog2.toString()),i.push(", "),this.needsLowerTypedArray=!0}else if(ws(s)){if(i.push("__lowerRecord"),i.push(s.id.toString()),i.push("("),!this.deferredLowers.has(s)){this.deferredLowers.add(s);let l=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLowerRecord(s)),this.indentLevel=l}}else i.push("__lowerInternref("),this.needsLowerInternref=!0;if(i.push(e),s.extendsPrototype(this.program.staticArrayPrototype)){let l=s.getArrayValueType();l.isNumericValue&&(i.push(", "),l==p.u8||l==p.bool?i.push("Uint8Array"):l==p.i8?i.push("Int8Array"):l==p.u16?i.push("Uint16Array"):l==p.i16?i.push("Int16Array"):l==p.u32||l==p.usize32?i.push("Uint32Array"):l==p.i32||l==p.isize32?i.push("Int32Array"):l==p.u64||l==p.usize64?i.push("BigUint64Array"):l==p.i64||l==p.isize64?i.push("BigInt64Array"):l==p.f32?i.push("Float32Array"):l==p.f64?i.push("Float64Array"):assert(!1))}i.push(")"),t.is(512)||(this.needsNotNull=!0,i.push(" || __notnull()"))}else i.push(e),t.isIntegerValue&&t.size==64?i.push(" || 0n"):t==p.bool&&i.push(" ? 1 : 0")}ensureLiftFromMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsGetU64=!0,"__getU64"):(this.needsGetU32=!0,"__getU32"):e==p.i8?(this.needsGetI8=!0,"__getI8"):e==p.u8||e==p.bool?(this.needsGetU8=!0,"__getU8"):e==p.i16?(this.needsGetI16=!0,"__getI16"):e==p.u16?(this.needsGetU16=!0,"__getU16"):e==p.i32||e==p.isize32?(this.needsGetI32=!0,"__getI32"):e==p.u32||e==p.usize32?(this.needsGetU32=!0,"__getU32"):e==p.i64||e==p.isize64?(this.needsGetI64=!0,"__getI64"):e==p.u64||e==p.usize64?(this.needsGetU64=!0,"__getU64"):e==p.f32?(this.needsGetF32=!0,"__getF32"):e==p.f64?(this.needsGetF64=!0,"__getF64"):'(() => { throw Error("unsupported type"); })'}makeLiftFromMemoryFunc(e,t=this.sb){let i=this.ensureLiftFromMemoryFn(e);e.isInternalReference||e==p.bool||e.isUnsignedIntegerValue&&e.size>=32?(t.push("pointer => "),this.makeLiftFromValue(`${i}(pointer)`,e,t)):t.push(i)}makeLiftFromMemoryCall(e,t=this.sb,i="pointer"){let s=this.ensureLiftFromMemoryFn(e);e.isInternalReference?this.makeLiftFromValue(`${s}(${i})`,e,t):(t.push(s),t.push("("),t.push(i),t.push(")"),e==p.bool&&t.push(" != 0"))}ensureLowerToMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsSetU64=!0,"__setU64"):(this.needsSetU32=!0,"__setU32"):e==p.i8||e==p.u8||e==p.bool?(this.needsSetU8=!0,"__setU8"):e==p.i16||e==p.u16?(this.needsSetU16=!0,"__setU16"):e==p.i32||e==p.u32||e==p.isize32||e==p.usize32?(this.needsSetU32=!0,"__setU32"):e==p.i64||e==p.u64||e==p.isize64||e==p.usize64?(this.needsSetU64=!0,"__setU64"):e==p.f32?(this.needsSetF32=!0,"__setF32"):e==p.f64?(this.needsSetF64=!0,"__setF64"):'(() => { throw Error("unsupported type") })'}makeLowerToMemoryFunc(e,t=this.sb){let i=this.ensureLowerToMemoryFn(e);e.isInternalReference?(t.push("(pointer, value) => { "),t.push(i),t.push("(pointer, "),this.makeLowerToValue("value",e,t),t.push("); }")):t.push(i)}makeLowerToMemoryCall(e,t=this.sb,i="pointer",s="value"){let l=this.ensureLowerToMemoryFn(e);t.push(l),t.push("("),t.push(i),t.push(", "),this.makeLowerToValue(s,e,t),t.push(")")}makeLiftRecord(e){assert(ws(e));let t=new Array;Q(t,this.indentLevel),t.push("function __liftRecord"),t.push(e.id.toString()),t.push(`(pointer) {
236
+ `),Q(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
237
+ `),Q(t,this.indentLevel),t.push(`// Hint: Opt-out from lifting as a record by providing an empty constructor
238
+ `),Q(t,this.indentLevel),t.push(`if (!pointer) return null;
239
+ `),Q(t,this.indentLevel++),t.push(`return {
240
+ `);let i=e.members;if(i)for(let s=Map_keys(i),l=0,a=s.length;l<a;++l){let o=s[l],u=assert(i.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),Q(t,this.indentLevel),t.push(c.name),t.push(": "),this.makeLiftFromMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`),t.push(`,
241
+ `))}return Q(t,--this.indentLevel),t.push(`};
242
+ `),Q(t,--this.indentLevel),t.push(`}
243
+ `),t.join("")}makeLowerRecord(e){assert(ws(e));let t=new Array;Q(t,this.indentLevel),t.push("function __lowerRecord"),t.push(e.id.toString()),t.push(`(value) {
244
+ `),Q(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
245
+ `),Q(t,this.indentLevel),t.push(`// Hint: Opt-out from lowering as a record by providing an empty constructor
246
+ `),Q(t,this.indentLevel),t.push(`if (value == null) return 0;
247
+ `),Q(t,this.indentLevel),t.push("const pointer = exports.__pin(exports.__new("),t.push(e.nextMemoryOffset.toString()),t.push(", "),t.push(e.id.toString()),t.push(`));
248
+ `);let i=e.members;if(i)for(let s=Map_keys(i),l=0,a=s.length;l<a;++l){let o=s[l],u=assert(i.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),Q(t,this.indentLevel),this.makeLowerToMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`,`value.${o}`),t.push(`;
249
+ `))}return Q(t,this.indentLevel),t.push(`exports.__unpin(pointer);
250
+ `),Q(t,this.indentLevel),t.push(`return pointer;
251
+ `),Q(t,--this.indentLevel),t.push(`}
252
+ `),t.join("")}};function ei(r,n){if(n==0){if(r==p.bool||r.isIntegerValue&&r.size==64)return!1}else if(r==p.bool||r.isUnsignedIntegerValue&&r.size>=32)return!1;return!r.isInternalReference}function $c(r,n){let e=r.parameterTypes,t=n==0?1:0;if(!ei(r.returnType,n))return!1;for(let i=0,s=e.length;i<s;++i)if(!ei(e[i],t))return!1;return!0}function ws(r){if(r.base&&!r.prototype.implicitlyExtendsObject)return!1;let n=r.members;if(n)for(let e=Map_values(n),t=0,i=e.length;t<i;++t){let s=e[t];if(s.isAny(1536)||s.is(524288)&&s.declaration.range!=ye.native.range)return!1}return!0}function Vg(r,n,e,t=!1){let i=0,s=r.length,l=0;for(;l<s;)r.charCodeAt(l)==10&&(t?t=!1:Q(e,n),e.push(r.substring(i,i=l+1))),++l;i<s&&(t||Q(e,n),e.push(r.substring(i)))}function Hi(r){if(!r.isInternalReference)return!1;let n=r.classReference;if(!n)return assert(r.signatureReference),!0;let e=n.program;return n.extendsPrototype(e.arrayBufferInstance.prototype)||n.extendsPrototype(e.stringInstance.prototype)||n.extendsPrototype(e.arrayBufferViewInstance.prototype)?!1:n.extendsPrototype(e.arrayPrototype)||n.extendsPrototype(e.staticArrayPrototype)?Hi(n.getArrayValueType()):!0}function Xi(r){if(!r.isInternalReference)return!1;let n=r.classReference;if(!n)return assert(r.signatureReference),!1;let e=n.program;return n.extendsPrototype(e.arrayBufferInstance.prototype)||n.extendsPrototype(e.stringInstance.prototype)||n.extendsPrototype(e.arrayBufferViewInstance.prototype)||n.extendsPrototype(e.arrayPrototype)||n.extendsPrototype(e.staticArrayPrototype)?!0:ws(n)}function Wi(r,n){return` function __set${r}(pointer, value) {
253
+ try {
254
+ __dataview.${n}(pointer, value, true);
255
+ } catch {
256
+ __dataview = new DataView(memory.buffer);
257
+ __dataview.${n}(pointer, value, true);
258
+ }
259
+ }
260
+ `}function St(r,n){return` function __get${r}(pointer) {
261
+ try {
262
+ return __dataview.${n}(pointer, true);
263
+ } catch {
264
+ __dataview = new DataView(memory.buffer);
265
+ return __dataview.${n}(pointer, true);
266
+ }
267
+ }
268
+ `}var ti="",br="",Og=2147287040,qg=0,fo=15,Ns=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=fo;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?P.I64:P.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(n,e=!0){e?(n&32768&&(n|=1056),n&16384&&(n|=1024),n&1024&&(n|=256),n&4096&&(n|=16),this.features|=n):(n&256&&(n|=1024),n&1024&&(n|=16384),n&16&&(n|=4096),n&1056&&(n|=32768),this.features&=~n)}hasFeature(n){return(this.features&n)!=0}},Qa=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(Qa||{}),Hc=(a=>(a[a.None=0]="None",a[a.ConvImplicit=1]="ConvImplicit",a[a.ConvExplicit=2]="ConvExplicit",a[a.MustWrap=4]="MustWrap",a[a.WillDrop=8]="WillDrop",a[a.PreferStatic=16]="PreferStatic",a[a.IsThis=32]="IsThis",a))(Hc||{}),Xc=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(Xc||{}),Yi;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(Yi||={});var Ps;(i=>(i.Memory="memory",i.Table="table",i.argumentsLength="__argumentsLength",i.setArgumentsLength="__setArgumentsLength"))(Ps||={});var ji=["__new","__pin","__unpin","__collect"],Qi=["__rtti_base"],Bs=class r extends Qe{constructor(e){super(e.diagnostics);this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.givenLocals=new Map;this.undefinedLocals=new Set;this.loopLabels=new Map;this.tryStacks=new Map;this.unwindKnown=new Set;this.mayUnwind=new Set;this.unwindTemps=new Set;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.valueArityAdapters=new Map;this.presenceTemp=null;this.recordReads=new Set;this.lenientLocals=new Set;this.recordTemps=null;this.optionalChains=0;this.chainDefault=null;this.chainDefaultTaken=!1;this.program=e;let t=e.module,i=e.options;i.memoryBase?(this.memoryOffset=i64_new(i.memoryBase),t.setLowMemoryUnused(!1)):!i.lowMemoryLimit&&i.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;i.hasFeature(1)&&(s|=32),i.hasFeature(2)&&(s|=2),i.hasFeature(4)&&(s|=4),i.hasFeature(8)&&(s|=16),i.hasFeature(16)&&(s|=8),i.hasFeature(32)&&(s|=1),i.hasFeature(64)&&(s|=64),i.hasFeature(128)&&(s|=128),i.hasFeature(256)&&(s|=256),i.hasFeature(512)&&(s|=512),i.hasFeature(1024)&&(s|=1024),i.hasFeature(2048)&&(s|=2048),i.hasFeature(4096)&&(s|=4096),i.hasFeature(8192)&&(s|=8192),i.hasFeature(16384)&&(s|=16384),i.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let l=e.makeNativeFunction(b.start,ge.create(e,[],p.void));l.internalName=b.start,this.currentFlow=l.flow,this.currentBody=new Array,this.shadowStack=new uo(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new r(e).compile()}compile(){let e=this.options,t=this.module,i=this.program,s=this.resolver,l=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let a=this.currentFlow.targetFunction;assert(a.internalName==b.start);let o=this.currentBody;assert(o.length==0);let u=i.filesByName;for(let g=Map_values(u),x=0,v=g.length;x<v;++x){let S=unchecked(g[x]);S.source.sourceKind==1&&(this.compileFile(S),this.compileModuleExports(S))}if(this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime){for(let g=0,x=ji.length;g<x;++g){let v=ji[g],S=i.requireFunction(v);this.compileFunction(S)&&!t.hasExport(v)&&t.addFunctionExport(S.internalName,v)}for(let g=0,x=Qi.length;g<x;++g){let v=Qi[g],S=i.requireGlobal(v);this.compileGlobal(S)&&!t.hasExport(v)&&t.addGlobalExport(S.internalName,v)}}let c=this.lazyFunctions;do{let g=new Array;for(let x=Set_values(c),v=0,S=x.length;v<S;++v){let w=unchecked(x[v]);g.push(w)}c.clear();for(let x=0,v=g.length;x<v;++x)this.compileFunction(unchecked(g[x]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let g=0,x=f.length;g<x;++g){let v=f[g];v.is(268435456)?(assert(v.is(262144)),f[g]=this.ensureOverrideStub(v)):v.signature.requiredParameters<v.signature.parameterTypes.length&&!v.closureDefaults&&(f[g]=this.ensureVarargsStub(v))}let h=new Set;do{s.discoveredOverride=!1;for(let g=Set_values(_),x=0,v=g.length;x<v;++x){let S=unchecked(g[x]),w=s.resolveOverrides(S);if(w)for(let R=0,C=w.length;R<C;++R)this.compileFunction(w[R]);h.add(S)}}while(_.size>h.size||s.discoveredOverride);h.clear();for(let g=Set_values(_),x=0,v=g.length;x<v;++x)this.finalizeOverrideStub(g[x]);for(let g=Map_keys(this.pendingInstanceOf),x=0,v=g.length;x<v;++x){let S=g[x],w=assert(this.pendingInstanceOf.get(S));switch(S.kind){case 7:case 9:{this.finalizeInstanceOf(S,w);break}case 6:case 8:{this.finalizeAnyInstanceOf(S,w);break}default:assert(!1)}}t.removeGlobal(b.rtti_base),this.runtimeFeatures&8&&zg(this),this.runtimeFeatures&16&&Bg(this),this.runtimeFeatures&32&&Mg(this);let d=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(b.data_end),((this.runtimeFeatures&1)!=0||l)&&(e.isWasm64?t.addGlobal(b.data_end,P.I64,!1,t.i64(i64_low(d),i64_high(d))):t.addGlobal(b.data_end,P.I32,!1,t.i32(i64_low(d)))),t.removeGlobal(b.stack_pointer),((this.runtimeFeatures&2)!=0||l)&&(d=i64_align(i64_add(d,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(b.stack_pointer,P.I64,!0,t.i64(i64_low(d),i64_high(d))):t.addGlobal(b.stack_pointer,P.I32,!0,t.i32(i64_low(d)))),t.removeGlobal(b.heap_base),((this.runtimeFeatures&4)!=0||l)&&(e.isWasm64?t.addGlobal(b.heap_base,P.I64,!1,t.i64(i64_low(d),i64_high(d))):t.addGlobal(b.heap_base,P.I32,!1,t.i32(i64_low(d)))),this.initDefaultMemory(d),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(b.setArgumentsLength,P.I32,P.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,P.I32))),t.addFunctionExport(b.setArgumentsLength,Ps.setArgumentsLength));let y=!o.length,m=e.exportStart;if(!y||m!=null){let g=a.signature;!y&&m!=null&&(t.addGlobal(b.started,P.I32,!0,t.i32(0)),o.unshift(t.global_set(b.started,t.i32(1))),o.unshift(t.if(t.global_get(b.started,P.I32),t.return())));let x=t.addFunction(a.internalName,g.paramRefs,g.resultRefs,xt(a.getNonParameterLocalTypes()),t.flatten(o));a.finalize(t,x),m==null?t.setStart(x):!Oe(m)||t.hasExport(m)?this.error(110,ye.native.range,m):t.addFunctionExport(a.internalName,m)}return l&&this.shadowStack.walkModule(),i.lookup("ASC_RTRACE")!=null&&new oo(this).walkModule(),t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Bt.UNLIMITED_MEMORY,[],e.target,null,z.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,i=this.module,s=this.memorySegments,l=0,a=Bt.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(l=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<l?this.error(105,null,l.toString()):l=t.initialMemory),t.maximumMemory&&(t.maximumMemory<l?this.error(106,null,l.toString()):a=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}i.setMemory(l,a,s,t.target,t.exportMemory?Ps.Memory:null,z.DefaultMemory,o),t.importMemory&&i.addMemoryImport(z.DefaultMemory,Yi.DefaultNamespace,Yi.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(z.DefaultTable,Yi.DefaultNamespace,Yi.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(z.DefaultTable,Ps.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let i=e.tableBase;i||(i=1);let s=this.functionTable,l=new Array(s.length);for(let u=0,c=s.length;u<c;++u)l[u]=s[u].internalName;let a=i+s.length,o=Bt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=a,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(z.DefaultTable,a,o,l,t.i32(i))}compileModuleExports(e){let t=e.exports;if(t)for(let s=Map_keys(t),l=0,a=s.length;l<a;++l){let o=unchecked(s[l]),u=assert(t.get(o));this.compileModuleExport(o,u)}let i=e.exportsStar;if(i)for(let s=0,l=i.length;s<l;++s)this.compileModuleExports(i[s])}compileModuleExport(e,t,i=""){let s=this.module;switch(t.kind){case 4:{let l=t;if(!l.is(65536)){let a=this.resolver.resolveFunction(l,null);a&&this.compileModuleExport(e,a,i);return}break}case 5:{let l=t;if(!l.hasDecorator(512)){let a=l.signature;if(a.requiredParameters<a.parameterTypes.length&&(l=this.ensureVarargsStub(l),this.runtimeFeatures|=64),this.compileFunction(l),l.is(8388608)){let o=i+e;if(!s.hasExport(o)){if(s.addFunctionExport(l.internalName,o),this.hasCustomFunctionExports=!0,a.hasManagedOperands&&this.shadowStack.noteExport(o,a.getManagedOperandIndices()),!this.desiresExportRuntime){let c=a.thisType;if(c&&Xi(c)||Hi(a.returnType))this.desiresExportRuntime=!0;else{let f=a.parameterTypes;for(let _=0,h=f.length;_<h;++_)if(Xi(f[_])){this.desiresExportRuntime=!0;break}}}l.signature.returnType.kind==15&&this.module.setClosedWorld(!1)}return}}break}case 0:{let l=t;if(!(l.is(8)||l.is(96))&&!this.options.hasFeature(2)){this.warning(103,l.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(l),l.is(8388608)){let o=i+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=l.type;(Hi(u)||!l.is(8)&&Xi(u))&&(this.desiresExportRuntime=!0)}l.type.kind==15&&this.module.setClosedWorld(!1)}l.type==p.v128&&this.warning(112,l.typeNode?assert(l.typeNode).range:l.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let l=t.members;if(l){let a=i+e+Sn;for(let o=Map_keys(l),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(l.get(f));_.is(512)||this.compileModuleExport(f,_,a)}}return}case 3:{let l=t;if(!l.isImmutable&&!this.options.hasFeature(2)){this.error(103,l.identifierNode.range,"mutable-globals");return}if(l.is(8388608)){let a=i+e;s.hasExport(a)||s.addGlobalExport(t.internalName,a);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let i,s=this.program.filesByName,l;if(s.has(e))i=assert(s.get(e));else if(s.has(l=e+Ve))i=assert(s.get(l));else{this.error(6054,t.range,e);return}this.compileFile(i)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,i=t.signature,s=this.currentBody,l=new Array;this.currentBody=l;let a=this.currentFlow,o=t.flow;this.currentFlow=o,t.closureScan=Hg(e.source.statements);for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],l);if(this.currentFlow=a,this.currentBody=s,l.length){let u=this.module,c=t.localsByIndex,f=c.length,_=new Array(f);for(let d=0;d<f;++d)_[d]=c[d].type.toRef();let h=u.addFunction(t.internalName,i.paramRefs,i.resultRefs,_,u.flatten(l));t.finalize(u,h),s.push(u.call(t.internalName,null,P.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)?this.compileGlobal(e):this.globalMayBeUninitialized(e)?!0:(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let i=this.module,s=0,l=e.typeNode,a=e.initializerNode;if(!e.is(4194304))if(l){let y=this.resolver.resolveType(l,null,e.parent);if(!y)return e.set(16777216),t.delete(e),!1;if(y==p.void)return this.error(1110,l.range),e.set(16777216),t.delete(e),!1;e.setType(y),this.program.checkTypeSupported(y,l)}else if(a){let y=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(a,p.auto,20),this.currentFlow=y,this.currentType==p.void)return this.error(2322,a.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.is(4194304)?s=this.convertExpression(s,this.currentType,e.type,!1,a):e.setType(this.currentType)}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let y=e.internalName;return Vt.has(y)&&assert(Vt.get(y))(new cs(this,e)),t.delete(e),!0}let o=e.type;!a&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(Wg(e,e.declaration),this.program.markModuleImport(ti,br,e),i.addGlobalImport(e.internalName,ti,br,u,!c),t.delete(e),!this.desiresExportRuntime&&Xi(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let _=!1;if(a){if(!s){let y=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(a,o,21),this.currentFlow=y}if(!i.isConstExpression(s))if(c){let y=i.runExpression(s,1);y?s=y:_=!0}else _=!0;if(_&&ee(s)==10){let y=assert(Ci(s));if(!Jp(i.getGlobal(y))){let m=this.program.elementsByName;m.has(y)&&assert(m.get(y)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,a.range);else{switch(assert(ee(s)==14),ae(s)){case P.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ie(s),0);break}case P.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(ke(s),Ne(s));break}case P.F32:{e.constantValueKind=2,e.constantFloatValue=Se(s);break}case P.F64:{e.constantValueKind=2,e.constantFloatValue=Ie(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let h=e.internalName;if(_){f&&this.error(212,Pt(8,e.decoratorNodes).range,"inline");let y=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),y=o.asNullable()),i.addGlobal(h,y.toRef(),!0,this.makeZero(y)),this.currentBody.push(i.global_set(h,s))}else f||i.addGlobal(h,u,!c,s);let d=e.tdzFlag;return d&&this.currentBody.push(i.global_set(d,i.i32(1))),t.delete(e),!0}globalMayBeUninitialized(e){if(e.is(8388608)&&!this.pendingElements.has(e)||e.hasAnyDecorator(1536)||e.is(32768))return!1;let t=e.parent;if(t.kind!=13||!_e(e.declaration.range.source))return!1;if(!e.is(4194304)){let i=e.typeNode,s=e.initializerNode,l=null;if(i?l=this.resolver.resolveType(i,null,t,null,1):s&&(l=this.resolver.resolveExpression(s,t.startFunction.flow,p.auto,1)),!l||l==p.void)return!1;e.setType(l)}return!0}makeGlobalTdzCheck(e,t,i,s){let l=this.module,a=e.tdzFlag;return a||(e.tdzFlag=a=e.internalName+"~initialized",l.addGlobal(a,P.I32,!0,l.i32(0))),l.block(null,[l.if(l.unary(20,l.global_get(a,P.I32)),this.makeRuntimeError("ReferenceError",`${e.name} is not initialized`,s)),t],i.toRef())}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let i=this.module,s=this.currentParent;this.currentParent=e;let l=null,a=!1,o=e.is(8)||e.hasDecorator(64),u=e.members;if(u)for(let c=Map_values(u),f=0,_=c.length;f<_;++f){let h=unchecked(c[f]);if(h.kind!=3)continue;let d=!1,y=h,m=y.valueNode;y.set(8388608);let g=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let x;if(m){if(x=this.compileExpression(m,p.i32,1),ee(x)!=14){let v=i.runExpression(x,1);v?x=v:(e.is(8)&&this.error(2474,m.range),d=!0)}}else if(l==null)x=i.i32(0);else if(a&&this.error(1061,y.identifierNode.range.atEnd),o){let v=i64_add(l.constantIntegerValue,i64_new(1));assert(!i64_high(v)),x=i.i32(i64_low(v))}else{x=i.binary(0,i.global_get(l.internalName,P.I32),i.i32(1));let v=i.runExpression(x,1);v?x=v:(e.is(8)&&this.error(2474,h.declaration.range),d=!0)}this.currentFlow=g,d?(i.addGlobal(y.internalName,P.I32,!0,i.i32(0)),this.currentBody.push(this.makeGlobalAssignment(y,x,p.i32,!1)),a=!0):(o?(y.setConstantIntegerValue(i64_new(ie(x)),p.i32),y.is(1048576)&&i.addGlobal(y.internalName,P.I32,!1,x)):i.addGlobal(y.internalName,P.I32,!1,x),y.isImmutable=!0,a=!1),l=y}return this.currentParent=s,t.delete(e),!0}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let i=e.members;if(!i)return null;let s=this.module,l=e.hasDecorator(64),a=`${e.internalName}#${z.EnumToString}`;e.toStringFunctionName=a;let o=new Array;for(let u=Map_keys(i),c=Map_values(i),f=1,_=u.length;f<=_;++f){let h=unchecked(u[_-f]),d=unchecked(c[_-f]);if(d.kind!=3)continue;let y=d,m=l?s.i32(i64_low(y.constantIntegerValue)):s.global_get(y.internalName,P.I32),g=s.if(s.binary(15,m,s.local_get(0,P.I32)),s.return(this.ensureStaticString(h)));o.push(g)}return o.push(s.unreachable()),s.addFunction(a,P.I32,P.I32,null,s.block(null,o,P.I32)),a}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let i=e.prototype.functionTypeNode.parameters,s=i.length;if(s>=2){let h=new Set;h.add(i[0].name.text);for(let d=1;d<s;d++){let y=i[d].name,m=y.text;h.has(m)?this.error(2300,y.range,m):h.add(m)}}e.set(8388608);let l=this.pendingElements;l.add(e);let a=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;assert(f.kind==56||f.kind==59),this.checkSignatureSupported(e.signature,f.signature);let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let m=e.decoratorNodes,g;(g=Pt(9,m))&&this.error(212,g.range,"external"),(g=Pt(10,m))&&this.error(212,g.range,"external.js")}let h=this.currentFlow,d=e.flow;this.currentFlow=d;let y=new Array;this.compileFunctionBody(e,y)||y.push(o.unreachable()),this.currentFlow=h,this.unwindKnown.add(e),_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,xt(e.getNonParameterLocalTypes()),o.flatten(y,e.signature.returnType.toRef()))}else if(e.is(32768)){if(Wg(e,f),this.program.markModuleImport(ti,br,e),o.addFunctionImport(e.internalName,ti,br,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let h=u.thisType;if(h&&Hi(h)||Xi(u.returnType))this.desiresExportRuntime=!0;else{let d=u.parameterTypes;for(let y=0,m=d.length;y<m;++y)if(Hi(d[y])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let h=e.declaration.name.text,d=assert(e.parent.getMember(h));assert(d.kind==10);let y=d.instance;y&&y.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(y):this.makeBuiltinFieldSetter(y),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let d,y=e.prototype.functionTypeNode;if(u.returnType==p.v128)d=y.returnType.range;else{let m=u.getVectorValueOperandIndices()[0];d=y.parameters[m].range}this.warning(112,d,"v128")}return e.finalize(o,_),this.currentType=a,l.delete(e),!0}compileFunctionBody(e,t){let i=this.module,s=assert(e.prototype.bodyNode),l=e.signature.returnType,a=this.currentFlow,o=e.signature.thisType?assert(a.lookupLocal(z.this_)):null,u=t.length;e.closureScan=Zi(s);let c=this.isAsyncFunction(e);if(e.flow.outer!=null&&!a.isInline&&c&&!e.closureEnv&&(e.closureEnv=e.addLocal(this.options.usizeType)),e.closureDefaults&&!a.isInline&&!this.compileClosureDefaults(e,t)||c&&!this.compileAsyncPrologue(e,t))return!1;let _=e.prototype.functionTypeNode.parameters;for(let d=0,y=_.length;d<y;++d){let m=_[d].initializer;if(!m||m.kind!=7||!m.undefinedBoolean)continue;let g=a.lookupLocal(_[d].name.text);if(!g)continue;let x=a.targetFunction.addLocal(p.bool);this.givenLocals.set(g,x),t.push(i.local_set(x.index,i.binary(16,i.local_get(g.index,P.I32),i.i32(2)),!1)),t.push(i.local_set(g.index,i.binary(15,i.local_get(g.index,P.I32),i.i32(1)),!1))}for(let d=0,y=_.length;d<y;++d){let m=_[d].name.text,g=a.lookupLocal(m);!g||g.closureBox>=0||this.noteDeclared(g,m)&&t.push(this.makeBoxedDeclaration(g,i.local_get(g.index,g.type.toRef()),_[d]))}if(s.kind==31)t=this.compileStatements(s.statements,t),c&&!a.is(256)&&t.push(this.compileAsyncReturn(null,e.identifierNode));else{assert(s.kind==39),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let d=this.compileExpression(s.expression,l,1);a.canOverflow(d,l)||a.set(2),a.isNonnull(d,l)&&a.set(4),t?t.push(d):t=[d],a.is(256)||(a.canOverflow(d,l)||a.set(2),a.isNonnull(d,l)&&a.set(4),a.set(257))}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let d=assert(e.parent);assert(d.kind==7);let y=d;if(a.isAny(8256)||!a.is(256)){let m=new Array;m.push(this.makeConditionalAllocation(y,o.index));let g=jg(y);g&&this.makeFieldInitializationInConstructor(g,m),this.makeFieldInitializationInConstructor(y,m);for(let x=t.length-1;x>=u;--x)t[x+1]=t[x];t[u]=i.flatten(m,P.None),a.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}a.is(16384)&&!y.hasDecorator(32)&&this.error(231,y.identifierNode.range),a.is(256)||(t.push(i.local_get(o.index,o.type.toRef())),a.set(261)),y.base&&!jg(y)&&!y.prototype.implicitlyExtendsObject&&!a.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(l!=p.void&&!a.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;let h=e.closureEnv;if(h){let d=this.closureEnvGlobal(e.identifierNode);if(!d)return!1;let y=this.options.usizeType.toRef();t.splice(u,0,i.local_set(h.index,i.global_get(d.internalName,y),!0))}return!0}compileClosureDefaults(e,t){let i=this.module,s=this.currentFlow,l=e.signature,a=l.parameterTypes,o=e.prototype.functionTypeNode.parameters,u=l.requiredParameters,c=this.ensureArgumentsLength(),f=s.getTempLocal(p.i32);t.push(i.local_set(f.index,i.global_get(c,P.I32),!1));let _=l.thisType?1:0;for(let h=u,d=a.length;h<d;++h){let y=o[h].initializer;if(!y)return this.error(215,o[h].range),!1;let m=a[h],g=this.compileExpression(y,m,1);t.push(i.if(i.binary(19,i.local_get(f.index,P.I32),i.i32(h)),i.local_set(h+_,g,m.isManaged)))}return!0}closureEnvGlobal(e){let t=this.program.lookup("__env");return!t||t.kind!=0||!this.compileGlobalLazy(t,e)?(this.error(2304,e.range,"__env"),null):t}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),i=this.module,s=e.type,l=s.toRef(),a=this.options.sizeTypeRef;t.set(8388608);let o=i.load(s.byteSize,s.isSignedIntegerValue,i.local_get(0,a),l,e.memoryOffset),u=this.currentFlow,c=t.flow;return this.currentFlow=c,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,i.addFunction(t.internalName,a,l,xt(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),i=this.module,s=e.type,l=this.options.sizeTypeRef,a=s.toRef(),o=i.store(s.byteSize,i.local_get(0,l),i.local_get(1,a),a,e.memoryOffset);if(s.isManaged){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=i.block(null,[o,i.call(c.internalName,[i.local_get(0,l),i.local_get(1,a),i.i32(0)],P.None)],P.None)}}return t.set(8388608),i.addFunction(t.internalName,Ze([l,a]),P.None,null,o)}addAlignedMemorySegment(e,t=16){assert(kt(t));let i=i64_align(this.memoryOffset,t),s=new Ri(e,i);return this.memorySegments.push(s),this.memoryOffset=i64_add(i,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),i=new Ri(e,t);return this.memorySegments.push(i),this.memoryOffset=i64_add(t,i64_new(e.length)),i}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,i=t.totalOverhead,s=assert(t.stringInstance),l,a=this.stringSegments;if(a.has(e))l=assert(a.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)rr(e.charCodeAt(_),f,i+(_<<1));l=this.addRuntimeMemorySegment(f),a.set(e,l)}let o=i64_add(l.offset,i64_new(i)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,t,i,s){let l=s.length,a=i.byteSize,o=i.toRef();switch(o){case P.I32:{switch(a){case 1:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),he(ie(c),e,t),t+=1}break}case 2:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),rr(ie(c),e,t),t+=2}break}case 4:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),be(ie(c),e,t),t+=4}break}default:assert(!1)}break}case P.I64:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),yi(i64_new(ke(c),Ne(c)),e,t),t+=8}break}case P.F32:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),vr(Se(c),e,t),t+=4}break}case P.F64:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),Sr(Ie(c),e,t),t+=8}break}case P.V128:{for(let u=0;u<l;++u){let c=s[u];assert(ae(c)==o),assert(ee(c)==14),yp(Kp(c),e,t),t+=16}break}case P.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,i=this.program.arrayBufferInstance.id){let s=this.program,a=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",i,a,0),this.writeStaticBuffer(a,s.totalOverhead,e,t),this.addRuntimeMemorySegment(a)}addStaticArrayHeader(e,t,i=null){let s=this.program;i||(i=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let l=mi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),a=i32(l/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=i.createBuffer();return assert(i.writeField("buffer",o,u)),assert(i.writeField("dataStart",o,u)),assert(i.writeField("byteLength",l,u)),assert(i.writeField("length_",a,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,i=e.memorySegment;if(!i){this.options.importTable||this.module.ensureFunctionTable(z.DefaultTable);let s=this.functionTable,l=this.options.tableBase;l||(l=1);let a=l+s.length;s.push(e);let o=assert(this.resolver.resolveClass(t.functionPrototype,[e.type])),u=o.createBuffer();assert(o.writeField("_index",a,u)),assert(o.writeField("_env",0,u)),e.memorySegment=i=this.addRuntimeMemorySegment(u)}return i64_add(i.offset,i64_new(t.totalOverhead))}compileTopLevelStatement(e,t){switch(e.kind){case 52:{let i=e.members;for(let s=0,l=i.length;s<l;++s)this.compileTopLevelStatement(i[s],t);break}case 53:{let i=this.program.getElementByDeclaration(e);i&&(assert(i.kind==2),i.hasDecorator(1024)||this.compileEnum(i));break}case 60:{let i=e,s=this.program.getElementByDeclaration(i);if(s){let l=this.currentParent;this.currentParent=s;let a=i.members;for(let o=0,u=a.length;o<u;++o)this.compileTopLevelStatement(a[o],t);this.currentParent=l}break}case 48:{let i=e.declarations;for(let s=0,l=i.length;s<l;++s){let a=this.program.getElementByDeclaration(i[s]);a&&(assert(a.kind==0),!a.is(32768)&&!a.hasDecorator(1024)&&this.compileGlobal(a))}break}case 55:{let i=this.program.getElementByDeclaration(e);i&&i.kind==0&&(i.hasDecorator(1024)||this.compileGlobal(i));break}case 36:{let i=e,s=i.internalPath;s!=null&&this.compileFileByPath(s,assert(i.path));break}case 37:{this.compileTopLevelStatement(e.declaration,t);break}case 43:{let i=e;this.compileFileByPath(i.internalPath,i.path);break}case 56:case 59:case 58:case 66:case 61:break;default:{let i=this.compileStatement(e);ee(i)!=22&&t.push(i);break}}}compileStatement(e){let t=this.module,i;switch(e.kind){case 31:{i=this.compileBlockStatement(e);break}case 32:{i=this.compileBreakStatement(e);break}case 33:{i=this.compileContinueStatement(e);break}case 34:{i=this.compileDoStatement(e);break}case 35:{i=this.compileEmptyStatement(e);break}case 39:{i=this.compileExpressionStatement(e);break}case 40:{i=this.compileForStatement(e);break}case 41:{i=this.compileForOfStatement(e);break}case 42:{i=this.compileIfStatement(e);break}case 44:{i=this.compileReturnStatement(e);break}case 45:{i=this.compileSwitchStatement(e);break}case 46:{i=this.compileThrowStatement(e);break}case 47:{i=this.compileTryStatement(e);break}case 48:{i=this.compileVariableStatement(e),i||(i=t.nop());break}case 49:{i=this.compileVoidStatement(e);break}case 50:{i=this.compileWhileStatement(e);break}case 61:{i=this.compileTypeDeclaration(e);break}case 51:{i=t.nop();break}default:assert(!1),i=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(i,e.range),i}compileStatements(e,t=null){let i=e.length;t||(t=new Array(i),t.length=0);let s=this.currentFlow,l=this.hoistFunctions(e,t);for(let a=0;a<i;++a){if(l&&l.has(e[a]))continue;let o=this.compileStatement(e[a]);switch(ee(o)){case 1:if(!Wn(o)){for(let u=0,c=Kn(o);u<c;++u)t.push(jn(o,u));break}default:t.push(o);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,i=this.currentFlow,s=i.fork();this.currentFlow=s;let l=this.compileStatements(t);return i.inherit(s),this.currentFlow=i,this.module.flatten(l)}compileTypeDeclaration(e){let t=this.currentFlow,i=e.name.text,s=t.lookupScopedTypeAlias(i);if(s)return this.errorRelated(2300,e.range,s.declaration.range,i),this.module.unreachable();let l=new rt(i,t.sourceFunction,e,0);return t.addScopedTypeAlias(i,l),this.module.nop()}compileBreakStatement(e){let t=this.module,i=e.label,s=this.currentFlow,l=s.breakLabel,a=-1;if(i){let u=this.loopLabelOf(i);if(!u)return t.unreachable();u.broken=!0,l=u.breakLabel,a=u.tryDepth}if(l==null)return this.error(1105,e.range),t.unreachable();s.set(16);let o=this.compileTryExits(1,l,a);return o?(o.push(t.br(l)),t.block(null,o)):t.br(l)}compileContinueStatement(e){let t=this.module,i=e.label,s=this.currentFlow,l=s.continueLabel,a=-1;if(i){let u=this.loopLabelOf(i);if(!u)return t.unreachable();u.continued=!0,l=u.continueLabel,a=u.tryDepth}if(l==null)return this.error(1104,e.range),t.unreachable();s.set(288);let o=this.compileTryExits(2,l,a);return o?(o.push(t.br(l)),t.block(null,o)):t.br(l)}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,i=this.currentFlow,s=i.targetFunction.localsByIndex.length,l=i.fork(!0),a=l.pushControlFlowLabel(),o=`do-break|${a}`;l.breakLabel=o;let u=`do-continue|${a}`;l.continueLabel=u;let c=`do-loop|${a}`;this.currentFlow=l;let f=this.enterLoopLabel(e.label,o,u),_=new Array,h=e.body;h.kind==31?this.compileStatements(h.statements,_):_.push(this.compileStatement(h)),this.leaveLoopLabel(f,l),l.popControlFlowLabel(a);let d=l.isAny(4128),y=l.isAny(2064),m=!l.isAny(272);if(!m&&!d)_.push(t.unreachable()),i.inherit(l),y||i.set(256);else{let x=this.compileExpression(e.condition,p.bool),v=this.makeIsTrueish(x,this.currentType,e.condition),S=this.evaluateCondition(v);if(S!=2&&(d||m)&&i.resetIfNeedsRecompile(l.forkThen(x),s))return this.currentFlow=i,this.doCompileDoStatement(e);d&&(_[0]=t.block(u,_),_.length=1,l.unset(256)),_.push(t.br(c,v)),i.inherit(l),S==1&&!y&&i.set(256)}this.currentFlow=i;let g=t.loop(c,t.flatten(_));return y&&(g=t.block(o,[g])),i.is(256)&&(g=t.block(null,[g,t.unreachable()])),g}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,i=this.currentFlow,s=i.targetFunction.localsByIndex.length,l=i.fork();this.currentFlow=l;let a=new Array,o=e.initializer;o&&(assert(o.kind==39||o.kind==48),a.push(this.compileStatement(o)));let u=null;if(o&&o.kind==48){let W=o.declarations;for(let O=0,X=W.length;O<X;++O){let $=l.lookupLocal(W[O].name.text);$&&$.closureBox>=0&&(u||(u=new Array),u.push($))}}let c,f,_,h=e.condition;if(h){if(c=this.compileExpression(h,p.bool),f=this.makeIsTrueish(c,this.currentType,h),_=this.evaluateCondition(f),_==2)return a.push(t.drop(f)),i.inherit(l),this.currentFlow=i,t.flatten(a)}else c=t.i32(1),f=c,_=1;let d=l.forkThen(c,!0),y=d.pushControlFlowLabel(),m=`for-break${y}`;d.breakLabel=m;let g=`for-continue|${y}`;d.continueLabel=g;let x=`for-loop|${y}`;this.currentFlow=d;let v=this.enterLoopLabel(e.label,m,g),S=new Array,w=e.body;w.kind==31?this.compileStatements(w.statements,S):S.push(this.compileStatement(w)),this.leaveLoopLabel(v,d),d.popControlFlowLabel(y),d.breakLabel=null,d.continueLabel=null;let R=!d.isAny(272),C=d.isAny(4128),M=d.isAny(2064);C&&(S[0]=t.block(g,S),S.length=1),_==1?l.inherit(d):l.mergeBranch(d);let G=C||R;if(G){if(u){this.currentFlow=l;let O=this.options.usizeType.toRef();for(let X=0,$=u.length;X<$;++X){let V=u[X],re=this.asyncHood("__box_get",e,[V.type]),j=this.asyncHood("__box",e,[V.type]);if(!re||!j)return t.unreachable();S.push(t.local_set(V.closureBox,this.makeCallDirect(j,[this.makeCallDirect(re,[t.local_get(V.closureBox,O)],e)],e),!0))}}let W=e.incrementor;if(W&&(this.currentFlow=l,S.push(this.compileExpression(W,p.void,9))),S.push(t.br(x)),i.resetIfNeedsRecompile(d.forkThen(c),s))return this.currentFlow=i,this.doCompileForStatement(e)}i.inherit(l),this.currentFlow=i;let U=t.if(f,t.flatten(S));return G&&(U=t.loop(x,U)),M&&(U=t.block(m,[U])),a.push(U),i.is(256)&&a.push(t.unreachable()),t.flatten(a)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,i=e.ifTrue,s=e.ifFalse,l=this.compileExpression(e.condition,p.bool),a=this.makeIsTrueish(l,this.currentType,e.condition);switch(this.evaluateCondition(a)){case 1:return t.block(null,[t.drop(a),this.compileStatement(i)]);case 2:return s?t.block(null,[t.drop(a),this.compileStatement(s)]):t.drop(a)}let u=this.currentFlow,c=new Array,f=u.forkThen(l);this.narrowInstanceOf(e.condition,f,!0),this.currentFlow=f,i.kind==31?this.compileStatements(i.statements,c):c.push(this.compileStatement(i)),this.currentFlow=u;let _=u.forkElse(l);if(this.narrowInstanceOf(e.condition,_,!1),s){this.currentFlow=_;let h=new Array;return s.kind==31?this.compileStatements(s.statements,h):h.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,t.if(a,t.flatten(c),t.flatten(h))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,t.if(a,t.flatten(c))}compileReturnStatement(e){let t=this.module,i=0,s=this.currentFlow,l=s.returnType;if(!s.isInline&&this.isAsyncFunction(s.targetFunction))return this.compileAsyncReturn(e.value,e);let a=null,o=e.value;if(o){let c=1;s.sourceFunction.is(1048576)&&(c|=4),i=this.compileExpression(o,l,c),s.canOverflow(i,l)||s.set(2),s.isNonnull(i,l)&&s.set(4),s.sourceFunction.is(524288)&&o.kind!=25&&s.set(16384);let f=this.currentType;if(a=this.compileTryExits(0,null),a)if(f==p.void)a.unshift(i),i=0;else{let _=s.getTempLocal(f);a.unshift(t.local_set(_.index,i,f.isManaged)),i=t.local_get(_.index,f.toRef())}this.currentType=f}else{if(l!=p.void)return this.error(2322,e.range,"void",l.toString()),this.currentType=l,t.unreachable();a=this.compileTryExits(0,null)}s.set(257);let u;if(s.isInline){let c=assert(s.inlineReturnLabel);u=i?this.currentType==p.void?t.block(null,[i,t.br(c)]):t.br(c,0,i):t.br(c)}else u=i?this.currentType==p.void?t.block(null,[i,t.return()]):t.return(i):t.return();return a?(a.push(u),t.block(null,a)):u}compileSwitchStatement(e){let t=this.module,i=e.cases,s=i.length,l=this.compileExpression(e.condition,p.auto),a=this.currentType;if(!s)return t.drop(l);let o=this.currentFlow,c=o.getTempLocal(a).index,f=new Array(1+s);f[0]=t.local_set(c,l,a.isManaged);let _=1,h=-1,d=o.pushControlFlowLabel();for(let x=0;x<s;++x){let v=i[x];if(v.isDefault){h=x;continue}let S=e.condition,w=t.local_get(c,a.toRef()),R=a,C=v.label,M=this.compileExpression(assert(v.label),a,1),G=this.currentType,U=this.compileCommutativeCompareBinaryExpressionFromParts(76,S,w,R,C,M,G,a,e);f[_++]=t.br(`case${x}|${d}`,U)}f[_]=t.br(h>=0?`case${h}|${d}`:`break|${d}`);let y=t.block(`case0|${d}`,f,P.None),m=null,g=null;for(let x=0;x<s;++x){let S=i[x].statements,w=S.length,R=o.fork(!0,!1);m&&R.mergeBranch(m),this.currentFlow=R;let C=`break|${d}`;R.breakLabel=C;let M=x==s-1,G=M?C:`case${x+1}|${d}`,U=new Array(1+w);U[0]=y;let W=1,O=!0;for(let $=0;$<w;++$){let V=this.compileStatement(S[$]);if(ee(V)!=22&&(U[W++]=V),R.isAny(272)){O=!1;break}}U.length=W,m=O?R:null;let X=R.isAny(2064);R.unset(2064),X||M&&O?g?g.inheritAlternatives(g,R):g=R:O||o.mergeSideEffects(R),this.currentFlow=o,y=t.block(G,U,P.None)}return o.popControlFlowLabel(d),h>=0?g?o.inherit(g):o.set(256):g&&o.mergeBranch(g),this.currentFlow=o,y}compileThrowStatement(e){let t=this.currentFlow,i=t.targetFunction,s=this.tryStacks.get(i),l=s!=null&&s.length>0;if(!t.isInline&&this.isAsyncFunction(i)&&!l)return this.compileAsyncThrow(e.value,e);if(t.set(264),!tf(i.internalName)){let c=this.module,f=this.exceptionFunction("__throw",e);if(!f)return c.unreachable();let _=f.signature.parameterTypes[0],h=e.value,d=this.resolver.resolveExpression(h,t,p.auto,1);d&&d.classReference==this.program.stringInstance&&(h=A.createNewExpression(A.createSimpleTypeName("Error",h.range),null,[h],h.range));let y=this.compileExpression(h,_,1);this.mayUnwind.add(i);let m=e.range.source,g=c.call(f.internalName,[y,this.ensureStaticString(m.normalizedPath),c.i32(m.lineAt(e.range.start)),c.i32(m.columnAt())],P.I32);return this.currentType=p.void,this.unwindsIn(i)?c.block(null,[c.if(g,this.makeUnwind()),c.unreachable()]):c.block(null,[c.drop(g),c.unreachable()])}let a=new Array,o=e.value,u=null;if(o.kind==18){let c=o.args;c.length&&(u=c[0])}return a.push(this.makeAbort(u,e)),this.module.flatten(a)}compileTryStatement(e){let t=this.module,i=this.currentFlow,s=i.targetFunction,l=this.exceptionGlobal("__tryDepth",e),a=this.exceptionGlobal("__thrown",e),o=this.exceptionFunction("__catch",e);if(!l||!a||!o)return t.unreachable();let u=this.options.sizeTypeRef,c=a.internalName,f=s.nextBreakId++,_=i.getTempLocal(p.i32),h=new rf(e,_,`try|${f}`,`catch|${f}`,i.breakLabel,i.continueLabel,i.inlineReturnLabel),d=this.tryStackOf(s);d.push(h);let y=new Array;y.push(t.local_set(_.index,t.global_get(l.internalName,P.I32),!1)),y.push(t.global_set(l.internalName,t.binary(0,t.local_get(_.index,P.I32),t.i32(1))));let m=i.fork();this.currentFlow=m;let g=new Array;g.push(this.compileStatement(A.createBlockStatement(e.bodyStatements,e.range))),g.push(this.makeTryDepthRestore(h)),y.push(t.block(h.bodyLabel,g));let x=e.catchStatements,v=e.finallyStatements,S=null;if(x){h.part=1,S=i.fork(),S.mergeBranch(m),this.currentFlow=S;let w=new Array,R=t.call(o.internalName,null,u),C=e.catchVariable;if(C){let G=S.addScopedLocal(C.text,o.signature.returnType);S.setLocalFlag(G.index,12),w.push(t.local_set(G.index,R,!0))}else w.push(t.drop(R));w.push(this.compileStatement(A.createBlockStatement(x,e.range)));let M=t.flatten(w,P.None);v&&(M=t.block(h.catchLabel,[M])),y.push(t.if(t.global_get(c,u),M))}if(this.currentFlow=i,S?i.inheritAlternatives(m,S):i.inherit(m),v){h.part=2;let w=a.type,R=i.getTempLocal(w);y.push(t.local_set(R.index,t.global_get(c,u),!0)),y.push(t.global_set(c,this.makeZero(w)));let C=i.fork();this.currentFlow=C,y.push(this.compileStatement(A.createBlockStatement(v,e.range))),this.currentFlow=i,i.inherit(C),y.push(t.global_set(c,t.local_get(R.index,w.toRef()))),d.pop(),y.push(t.if(t.global_get(c,u),this.makeUnwind()))}else d.pop();return i.is(256)&&y.push(t.unreachable()),t.flatten(y,P.None)}narrowInstanceOf(e,t,i){for(;e.kind==21;)e=e.expression;if(e.kind==29&&e.operator==95){this.narrowInstanceOf(e.operand,t,!i);return}if(e.kind==9&&e.operator==97&&i){this.narrowInstanceOf(e.left,t,!0),this.narrowInstanceOf(e.right,t,!0);return}if(!i)return;let s,l;if(e.kind==16){let c=e;s=c.expression,l=this.resolver.resolveType(c.isType,t,t.sourceFunction,se(t.contextualTypeArguments),1)}else if(e.kind==10){let c=e,f=this.resolver.lookupExpression(c.expression,t,p.auto,1);if(!f||f.kind!=4)return;let _=f,h=_.functionTypeNode,d=h.returnType;if(d.kind!=1)return;let y=d.predicateParameter,m=d.predicateType;if(!y||!m)return;let g=-1;for(let x=0,v=h.parameters.length;x<v;++x)h.parameters[x].name.text==y&&(g=x);if(g<0||g>=c.args.length)return;s=c.args[g],l=this.resolver.resolveType(m,null,_.parent,null,1)}else return;if(s.kind!=7)return;let a=s.text,o=t.lookupLocal(a);if(!o||o.index<0||!o.declaredByFlow(t)||o.closureBox>=0||!l||!l.isReference)return;l=l.nonNullableType;let u=o.type.nonNullableType;l==u||!l.isAssignableTo(u)||(t.addScopedAlias(a,l,o.index),t.setLocalFlag(o.index,4))}joinedText(e,t,i,s){if(!_e(s.range.source))return null;let l=this.currentFlow,a=this.resolver,o=this.program.stringInstance,u=a.resolveExpression(e,l,p.auto,1),c=a.resolveExpression(t,l,p.auto,1);if(!u||!c)return null;let f=u.classReference==o,_=c.classReference==o;if(!(f&&_&&(this.readsUndefined(e)||this.readsUndefined(t)))&&f==_||c==p.void||u==p.void)return null;let d=s.range;return i?f?A.createTemplateLiteralExpression(null,["",""],["",""],[t],t.range):null:A.createTemplateLiteralExpression(null,["","",""],["","",""],[e,t],d)}compileJsonReadFields(e){let t=this.module,i=e.reportNode,s=e.typeArguments,l=s&&s.length==1?s[0]:null,a=l?l.getClass():null;if(!l||!a||e.operands.length!=2)return this.error(100,i.range,"JSON.parse into this type - it makes text, numbers, booleans, arrays, Records and objects of fields"),t.unreachable();l=l.nonNullableType;let o=this.currentFlow,u=this.compileExpression(e.operands[0],p.auto),c=this.currentType,f=this.compileExpression(e.operands[1],this.program.stringInstance.type),_=this.currentType,h=assert(c.getClass()),d=assert(this.methodOf(h,"get")),y=this.program.lookup("__jsonRead"),m=this.program.lookup("__jsonPath"),g=this.program.lookup("__jsonMismatch");if(!y||y.kind!=4||!m||m.kind!=4||!g||g.kind!=4)return t.unreachable();let x=assert(this.resolver.resolveFunction(m,null)),v=assert(this.resolver.resolveFunction(g,null)),S=l.toRef(),w=c.toRef(),R=_.toRef(),C=o.getTempLocal(c),M=o.getTempLocal(_),G=o.getTempLocal(l),U=o.getTempLocal(d.signature.returnType),W=d.signature.returnType.toRef(),O=new Array;O.push(t.local_set(C.index,u,c.isManaged)),O.push(t.local_set(M.index,f,_.isManaged));let X=this.ensureConstructor(a,i),$=X.signature.requiredParameters==0?this.compileInstantiate(X,[],0,i):this.makeAllocation(a);O.push(t.local_set(G.index,$,l.isManaged));let V=a.members;if(V)for(let re=Map_values(V),j=0,ne=re.length;j<ne;++j){let ce=unchecked(re[j]);if(ce.kind!=10||ce.is(32))continue;let le=this.resolver.resolveProperty(ce,1);if(!le||!le.isField||le.type.signatureReference)continue;let Te=le.setterInstance;if(!Te)continue;let nt=ce.name,Re=le.type,ri=this.resolver.resolveFunction(y,[Re]);if(!ri)return t.unreachable();let jt=this.ensureStaticString(nt),ii=()=>this.makeCallDirect(x,[t.local_get(M.index,R),this.ensureStaticString(nt)],i),st=t.local_tee(U.index,this.makeCallDirect(d,[t.local_get(C.index,w),jt],i),!1),Qt=le.isOptional,Ms=Qt?t.if(st,t.binary(16,t.load(4,!1,t.local_get(U.index,W),P.I32,0),t.i32(0)),t.i32(0)):st,ni=new Array;ni.push(this.makeCallDirect(Te,[t.local_get(G.index,S),this.makeCallDirect(ri,[t.local_get(U.index,W),ii()],i)],i,!0)),le.presenceOffset>=0&&ni.push(t.store(1,t.local_get(G.index,S),t.i32(1),P.I32,le.presenceOffset));let Ji=0;!Qt&&!le.initializerNode&&!Re.isNullableReference&&(Ji=this.makeCallDirect(v,[t.local_get(U.index,W),ii(),this.ensureStaticString(_3(Re,this.program))],i,!0)),O.push(Ji?t.if(Ms,t.flatten(ni,P.None),Ji):t.if(Ms,t.flatten(ni,P.None)))}return O.push(t.local_get(G.index,S)),this.currentType=l,t.flatten(O,S)}compileJsonWriteFields(e){let t=this.module,i=e.reportNode,s=e.typeArguments,l=s&&s.length==1?s[0]:null,a=l?l.getClass():null;if(!l||!a||e.operands.length!=2)return this.error(100,i.range,"JSON.stringify of this type"),t.unreachable();l=l.nonNullableType;let o=this.currentFlow,u=this.compileExpression(e.operands[0],l,1),c=this.compileExpression(e.operands[1],p.auto),f=this.currentType,_=assert(f.getClass()),h=assert(this.methodOf(_,"open")),d=assert(this.methodOf(_,"close")),y=assert(this.methodOf(_,"key")),m=this.program.lookup("__jsonWrite"),g=this.program.lookup("__jsonSkips");if(!m||m.kind!=4||!g||g.kind!=4)return t.unreachable();let x=l.toRef(),v=f.toRef(),S=o.getTempLocal(l),w=o.getTempLocal(f),R=new Array;R.push(t.local_set(S.index,u,l.isManaged)),R.push(t.local_set(w.index,c,f.isManaged));let C=()=>t.local_get(w.index,v);R.push(this.makeCallDirect(h,[C(),this.ensureStaticString("{")],i,!0));let M=a.members;if(M)for(let G=Map_values(M),U=0,W=G.length;U<W;++U){let O=unchecked(G[U]);if(O.kind!=10||O.is(32))continue;let X=this.resolver.resolveProperty(O,1);if(!X||!X.isField||X.type.signatureReference||O.name.startsWith(Pa))continue;let $=X.type,V=this.resolver.resolveFunction(m,[$]),re=this.resolver.resolveFunction(g,[$]);if(!V||!re)return t.unreachable();let j=o.getTempLocal($),ne=$.toRef(),ce=()=>t.local_get(j.index,ne),le=t.flatten([this.makeCallDirect(y,[C(),this.ensureStaticString(O.name)],i,!0),this.makeCallDirect(V,[ce(),C()],i,!0)],P.None),Te=this.makeCallDirect(re,[ce()],i);X.isOptional&&$.isReference&&(Te=t.binary(8,Te,t.unary(20,ce()))),X.presenceOffset>=0&&(Te=t.binary(8,Te,t.unary(20,t.load(1,!1,t.local_get(S.index,x),P.I32,X.presenceOffset)))),R.push(t.local_set(j.index,this.makeFieldLoad(t.local_get(S.index,x),X),$.isManaged)),R.push(t.if(t.unary(20,Te),le))}return R.push(this.makeCallDirect(d,[C(),this.ensureStaticString("}")],i,!0)),this.currentType=p.void,t.flatten(R,P.None)}isSameShape(e,t){if(e.isNullableReference&&!t.isNullableReference)return!1;let i=e.classReference,s=t.classReference;if(!i||!s||i==s||i.base!=s.base)return!1;let l=i.prototype.declaration,a=s.prototype.declaration;if(l.kind!=52||!l.isShape||a.kind!=52||!a.isShape||i.nextMemoryOffset!=s.nextMemoryOffset)return!1;let o=Kg(i),u=Kg(s);if(o.length!=u.length)return!1;for(let c=0,f=u.length;c<f;++c){let _=o[c],h=u[c],d=_.type==h.type||h.type.isNullableReference&&_.type==h.type.nonNullableType;if(_.name!=h.name||!d||_.memoryOffset!=h.memoryOffset||_.presenceOffset!=h.presenceOffset)return!1}return!0}givenLocalOf(e){if(e.kind!=7)return null;let t=this.currentFlow.lookupLocal(e.text);return t&&this.givenLocals.has(t)?assert(this.givenLocals.get(t)):null}compileGiven(e){let t=this.givenLocalOf(e);if(t)return this.module.local_get(t.index,P.I32);let i=this.optionalFieldOf(e);if(!i||i.presenceOffset<0)return 0;let s=e.expression;return s.kind!=7&&s.kind!=25?0:this.makePresenceLoad(this.compilePresenceObject(e,i),i)}enterLoopLabel(e,t,i){if(e==null)return null;let s=this.currentFlow.targetFunction,l=this.tryStacks.get(s),a=this.loopLabels.has(e)?assert(this.loopLabels.get(e)):null,o=new nf(e,s,t,i,l?l.length:0,a);return this.loopLabels.set(e,o),o}leaveLoopLabel(e,t){if(!e)return;let i=e.outer;i?this.loopLabels.set(e.name,i):this.loopLabels.delete(e.name),e.broken&&t.set(2048),e.continued&&t.set(4096)}loopLabelOf(e){let t=e.text,i=this.loopLabels.has(t)?assert(this.loopLabels.get(t)):null;return i&&i.fn==this.currentFlow.targetFunction?i:(this.error(2304,e.range,t),null)}tryStackOf(e){let t=this.tryStacks.get(e);return t||this.tryStacks.set(e,t=[]),t}unwindsIn(e){return this.program.parser.usesExceptions&&!tf(e.internalName)}exceptionGlobal(e,t){let i=this.program.lookup(e);return!i||i.kind!=0||!this.compileGlobalLazy(i,t)?(this.error(2304,t.range,e),null):i}exceptionFunction(e,t){let i=this.program.lookup(e),s=i&&i.kind==4?this.resolver.resolveFunction(i,null):null;return!s||!this.compileFunction(s)?(this.error(2304,t.range,e),null):s}makeTryDepthRestore(e){let t=this.module,i=assert(this.exceptionGlobal("__tryDepth",e.statement));return t.global_set(i.internalName,t.local_get(e.depthLocal.index,P.I32))}makeUnwind(){let e=this.module,i=this.currentFlow.targetFunction,s=this.tryStacks.get(i);if(s)for(let a=s.length-1;a>=0;--a){let o=s[a];if(o.part==0)return e.block(null,[this.makeTryDepthRestore(o),e.br(o.bodyLabel)]);if(o.part==1&&o.statement.finallyStatements)return e.br(o.catchLabel)}let l=i.signature.returnType;if(this.isAsyncFunction(i)){let a=this.asyncHood("__co_throwPending",i.identifierNode);if(a&&this.compileFunction(a)){let o=e.call(a.internalName,null,a.signature.returnType.toRef());return l==p.void?e.block(null,[e.drop(o),e.return()]):e.return(o)}}return l==p.void?e.return():e.return(this.makeZero(l))}makeUnwindCheck(e,t,i){let s=this.currentFlow,l=s.targetFunction;if(!this.unwindsIn(l))return e;if(t){let h=t.internalName,d=h.includes("__co_wait");if(tf(h)||t==this.program.abortInstance||t.is(32768)||h=="~lib/error/__throw"||h=="~lib/error/__catch"||h.includes("/__co_")&&!d||!d&&this.unwindKnown.has(t)&&!this.mayUnwind.has(t))return e}this.mayUnwind.add(l);let a=this.module,o=this.exceptionGlobal("__thrown",s.targetFunction.identifierNode);if(!o)return e;let u=a.if(a.global_get(o.internalName,this.options.sizeTypeRef),this.makeUnwind());if(i==p.void)return a.block(null,[e,u],P.None);let c=i.toRef(),f=l.internalName;if(f.startsWith("start:")||f==b.start){let h=this.unwindTemp(c);return a.block(null,[a.global_set(h,e),u,a.global_get(h,c)],c)}let _=s.getTempLocal(i);return a.block(null,[a.local_set(_.index,e,i.isManaged),u,a.local_get(_.index,c)],c)}unwindTemp(e){let t=`~unwind|${e}`,i=this.module;if(!this.unwindTemps.has(t)){this.unwindTemps.add(t);let s=e==P.I64?i.i64(0):e==P.F32?i.f32(0):e==P.F64?i.f64(0):e==P.V128?i.v128(new Uint8Array(16)):i.i32(0);i.addGlobal(t,e,!0,s)}return t}compileTryExits(e,t,i=-1){let s=this.currentFlow,l=this.tryStacks.get(s.targetFunction);if(!l||!l.length)return null;let a=new Array;for(let o=l.length-1;o>=0;--o){let u=l[o];if(!(i>=0?o>=i:e==0?u.returnLabel==s.inlineReturnLabel:e==1?u.breakLabel==t:u.continueLabel==t))break;u.part==0&&a.push(this.makeTryDepthRestore(u));let f=u.statement.finallyStatements;if(f&&u.part!=2){let _=l.splice(o+1,l.length-o-1),h=u.part;u.part=2,a.push(this.compileStatement(A.createBlockStatement(f,u.statement.range))),u.part=h;for(let d=0,y=_.length;d<y;++d)l.push(_[d])}}return a.length?a:null}compileVariableStatement(e){let t=this.module,i=e.declarations,s=i.length,l=this.currentFlow,a=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=i[u],f=c.name.text,_=null,h=0,d=null;c.is(16384)&&this.warning(239,c.name.range);let y=c.type,m=c.initializer,g=l.getScopedLocal(f);if(g&&g.closurePredeclared){if(g.closurePredeclared=!1,m){let S=this.compileExpression(m,g.type,1);this.noteLocalAssigned(g,S,this.currentType),g.closureTdz=!1,a.push(this.makeCapturedAssignment(g,S,!1))}g.closureTdz=!1,a.push(this.makeTdzReady(g)),c.is(8)&&l.setLocalFlag(g.index,1);continue}if(m){let S=this.currentClosureScan();if(S&&S.early.has(f)){let w=this.compileEarlyBoxedDeclaration(c);w&&a.push(w);continue}}if(y){if(_=o.resolveType(y,l,l.sourceFunction,se(l.contextualTypeArguments)),!_)continue;if(this.program.checkTypeSupported(_,y),m){let S=this.pendingElements,w=l.addScopedDummyLocal(f,_,e);S.add(w),h=this.compileExpression(m,_,1),d=this.currentType,S.delete(w),l.freeScopedDummyLocal(f)}}else if(m){let S=this.pendingElements,w=l.addScopedDummyLocal(f,p.auto,e);if(S.add(w),h=this.compileExpression(m,p.auto),d=this.currentType,S.delete(w),l.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=d}else{this.error(1110,c.name.range.atEnd);continue}let x=c.is(8),v=!1;if(x)if(h){let S=t.runExpression(h,1);if(S){h=S;let w=null;switch(ae(h)){case P.I32:{w=new Ke(f,-1,_,l.targetFunction),w.setConstantIntegerValue(i64_new(ie(h),0),_);break}case P.I64:{w=new Ke(f,-1,_,l.targetFunction),w.setConstantIntegerValue(i64_new(ke(h),Ne(h)),_);break}case P.F32:{w=new Ke(f,-1,_,l.targetFunction),w.setConstantFloatValue(Se(h),_);break}case P.F64:{w=new Ke(f,-1,_,l.targetFunction),w.setConstantFloatValue(Ie(h),_);break}}if(w){let R=l.scopedLocals;if(!R)l.scopedLocals=R=new Map;else if(R.has(f)){let C=assert(R.get(f));return this.errorRelated(2300,c.name.range,C.declaration.name.range,f),this.module.unreachable()}R.set(f,w),v=!0}}}else this.error(1155,c.range);if(!v){let S;if(c.isAny(24)||l.isInline){let C=l.getScopedLocal(f);C?(C.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,C.declaration.name.range,f),S=C):S=l.addScopedLocal(f,_),x&&l.setLocalFlag(S.index,1)}else{let C=l.lookupLocal(f);if(C){this.errorRelated(2300,c.name.range,C.declaration.name.range,f);continue}S=l.targetFunction.addLocal(_,f,c),l.unsetLocalFlag(S.index,-1),x&&l.setLocalFlag(S.index,1)}h&&this.recordReads.has(h)&&this.lenientLocals.add(S);let w=c.type,R=c.initializer;if((w?w.kind==1&&w.orUndefined:R!=null&&this.readsUndefined(R))&&this.undefinedLocals.add(S),S.type==p.bool&&R){let C=this.compileGiven(R);if(C){let M=l.targetFunction.addLocal(p.bool);this.givenLocals.set(S,M),a.push(t.local_set(M.index,C,!1))}}if(this.noteDeclared(S,f)&&S.closureBox<0){let C=h||this.makeZero(_);this.noteLocalAssigned(S,C,d||_),a.push(this.makeBoxedDeclaration(S,C,c))}else h?a.push(this.makeLocalAssignment(S,h,d||_,!1)):S.type.isShortIntegerValue&&l.setLocalFlag(S.index,2)}}return this.currentType=p.void,a.length==0?0:t.flatten(a)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,i=this.currentFlow,s=i.targetFunction.localsByIndex.length,l=this.compileExpression(e.condition,p.bool),a=this.makeIsTrueish(l,this.currentType,e.condition),o=this.evaluateCondition(a);if(o==2)return t.drop(a);let u=i.forkThen(l,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let h=this.enterLoopLabel(e.label,f,_),d=new Array,y=e.body;y.kind==31?this.compileStatements(y.statements,d):d.push(this.compileStatement(y)),this.leaveLoopLabel(h,u),d.push(t.br(_)),u.popControlFlowLabel(c);let m=u.isAny(4128),g=u.isAny(2064),x=!u.isAny(272);if((m||x)&&i.resetIfNeedsRecompile(u,s))return this.currentFlow=i,this.doCompileWhileStatement(e);let S=!1;if(o==1)i.inherit(u),g||(S=!0,i.set(256));else{let R=i.forkElse(l);!x&&!g?(i.inherit(R),i.mergeSideEffects(u)):i.inheritAlternatives(u,R)}this.currentFlow=i;let w=[t.loop(_,t.if(a,t.flatten(d)))];return S&&w.push(t.unreachable()),t.block(f,w)}compileInlineConstant(e,t,i){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let l=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<l>>l:0)}case 6:case 7:{let l=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&l:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,i=0){for(;e.kind==21;)e=e.expression;this.currentType=t,t==p.void&&(i|=8);let s;switch(e.kind){case 8:{s=this.compileAssertionExpression(e,t,i);break}case 9:{s=this.compileBinaryExpression(e,t,i);break}case 10:{if(ot(e)){s=this.compileOptionalChain(e,t,i);break}s=this.compileCallExpression(e,t,i);break}case 12:{s=this.compileCommaExpression(e,t,i);break}case 13:{if(ot(e)){s=this.compileOptionalChain(e,t,i);break}s=this.compileElementAccessExpression(e,t,i);break}case 15:{s=this.compileFunctionExpression(e,t,i);break}case 7:case 14:case 19:case 25:case 24:case 26:{s=this.compileIdentifierExpression(e,t,i);break}case 16:{s=this.compileInstanceOfExpression(e,t,i);break}case 17:{s=this.compileLiteralExpression(e,t,i);break}case 18:{s=this.compileNewExpression(e,t,i);break}case 22:{if(ot(e)){s=this.compileOptionalChain(e,t,i);break}s=this.compilePropertyAccessExpression(e,t,i);break}case 23:{s=this.compileTernaryExpression(e,t,i);break}case 28:{s=this.compileUnaryPostfixExpression(e,t,i);break}case 29:{s=this.compileUnaryPrefixExpression(e,t,i);break}case 30:{let o=e;s=o.expr,this.currentType=o.type;break}case 11:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let l=this.currentType,a=(i&4)!=0;return l!=t.nonNullableType&&(i&2?(s=this.convertExpression(s,l,t,!0,e),this.currentType=l=t):i&1&&(s=this.convertExpression(s,l,t,!1,e),this.currentType=l=t)),a&&(s=this.ensureSmallIntegerWrap(s,l)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}toInt32Js(e,t){let i=this.module;return t.kind==11&&(e=i.unary(43,e)),i.unary(24,i.unary(58,e))}convertExpression(e,t,i,s,l){let a=this.module;if(t.kind==25)return i.kind==25?e:(this.error(2322,l.range,t.toString(),i.toString()),a.unreachable());if(i.kind==25)return a.drop(e);let o=t.signatureReference,u=i.signatureReference;if(o&&u&&o!=u&&!t.isAssignableTo(i)&&this.takesLeadingParameters(o,u))return this.makeValueArityAdapter(e,o,u,l);if(t==p.bool&&i.isReference&&i.classReference==this.program.stringInstance&&_e(l.range.source))return this.currentType=i,a.if(e,this.ensureStaticString("true"),this.ensureStaticString("false"));if(t.isReference||i.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:t.isNullableReference&&!i.isNullableReference&&this.isLenientRead(e)?(e=this.makeRuntimeNonNullCheck(e,t,l,"the key is not there - read it with ?? or check it first"),t=t.nonNullableType):s&&t.isNullableReference&&!i.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,l)),t=t.nonNullableType),t.isAssignableTo(i)||this.isSameShape(t,i)?(assert(i.isExternalReference||t.kind==i.kind),this.currentType=i,e):s&&i.nonNullableType.isAssignableTo(t)?i.isExternalReference?(this.error(100,l.range,"ref.cast"),this.currentType=i,a.unreachable()):(assert(t.kind==i.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,i,l)),this.currentType=i,e):(this.error(2322,l.range,t.toString(),i.toString()),this.currentType=i,a.unreachable());if(assert(!t.isReference&&!i.isReference),i.kind==t.kind)return this.currentType=i,e;if(!i.isBooleanValue&&(i.isVectorValue||t.isVectorValue))return this.error(2322,l.range,t.toString(),i.toString()),a.unreachable();let c=t.isFloatValue&&i.isIntegerValue&&!i.isBooleanValue||t.isLongIntegerValue&&i.isFloatValue;if(c&&!s&&t.isFloatValue&&(i.kind==3||i.kind==8))return this.toInt32Js(e,t);if(!t.isAssignableTo(i)&&!c&&(s||this.error(200,l.range,t.toString(),i.toString())),t.isFloatValue)if(i.isFloatValue)t.kind==11?i.kind==12&&(e=a.unary(43,e)):i.kind==11&&(e=a.unary(44,e));else if(i.isIntegerValue)if(t.kind==11)if(i.isBooleanValue)e=this.makeIsTrueish(e,p.f32,l);else if(i.isSignedIntegerValue){let f=this.options.hasFeature(4);i.isLongIntegerValue?e=a.unary(f?56:26,e):e=a.unary(f?52:25,e)}else{let f=this.options.hasFeature(4);i.isLongIntegerValue?e=a.unary(f?57:28,e):e=a.unary(f?53:27,e)}else if(i.isBooleanValue)e=this.makeIsTrueish(e,p.f64,l);else if(i.isSignedIntegerValue){let f=this.options.hasFeature(4);i.isLongIntegerValue?e=a.unary(f?58:30,e):e=a.unary(f?54:29,e)}else{let f=this.options.hasFeature(4);i.isLongIntegerValue?e=a.unary(f?59:32,e):e=a.unary(f?55:31,e)}else assert(i.flags==0,"void type expected"),e=a.drop(e);else if(t.isIntegerValue&&i.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let f;i.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?f=39:f=41:t.isSignedIntegerValue?f=35:f=37:t.isLongIntegerValue?t.isSignedIntegerValue?f=40:f=42:t.isSignedIntegerValue?f=36:f=38,e=a.unary(f,e)}else t==p.v128&&i.isBooleanValue?e=this.makeIsTrueish(e,p.v128,l):t.isLongIntegerValue?i.isBooleanValue?e=a.binary(41,e,a.i64(0)):i.isLongIntegerValue||(e=a.unary(24,e)):i.isLongIntegerValue?e=a.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<i.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!i.isVaryingIntegerValue&&this.warning(201,l.range,t.toString(),i.toString());return this.currentType=i,e}compileAssertionExpression(e,t,i){let s=i&-4;switch(e.assertionKind){case 0:case 1:{let l=this.currentFlow,a=this.resolver.resolveType(assert(e.toType),l,l.sourceFunction,se(l.contextualTypeArguments));return a?this.compileExpression(e.expression,a,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let l=this.compileExpression(e.expression,t.exceptVoid,s),a=this.currentType;return this.currentFlow.isNonnull(l,a)?a.isValue&&_e(e.range.source)||this.info(210,e.expression.range):this.options.noAssert||(l=this.makeRuntimeNonNullCheck(l,a,e)),this.currentType=a.nonNullableType,l}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let i=this.compileOptionalCompare(e);if(i)return i;let s=e.left,l=this.compileExpression(s,t),a=this.currentType,o=e.right,u=this.compileExpression(o,a),c=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,s,l,a,o,u,c,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,i,s,l,a,o,u,c){let f=this.module,_=we(e),h=Ce.fromBinaryToken(e),d=s.lookupOverload(h,this.program),y=o.lookupOverload(h,this.program);if(d&&y&&d!=y)return this.error(240,c.range,_,d.internalName,y.internalName),this.currentType=u,f.unreachable();if(d)return this.compileCommutativeBinaryOverload(d,t,i,s,l,a,o,c);if(y)return this.compileCommutativeBinaryOverload(y,l,a,o,t,i,s,c);let g=p.commonType(s,o,u,!1);if(!g)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(g.isFloatValue&&((Ga(f,a)||Ga(f,i))&&this.warning(907,c.range),(za(a)||za(i))&&this.warning(908,c.range)),i=this.convertExpression(i,s,g,!1,t),s=g,a=this.convertExpression(a,o,g,!1,l),o=g,this.currentType=p.bool,e){case 78:case 76:return this.makeEq(i,a,g,c);case 79:case 77:return this.makeNe(i,a,g,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let i=this.module,s=e.left,l=e.right,a,o,u,c,f,_=e.operator,h=we(_);a=this.compileExpression(s,t),o=this.currentType;let d=Ce.fromBinaryToken(_),y=o.lookupOverload(d,this.program);if(y)return this.compileBinaryOverload(y,s,a,o,l,e);if(u=this.compileExpression(l,o),c=this.currentType,f=p.commonType(o,c,t,!0),!f||!f.isNumericValue)return this.error(2365,e.range,h,o.toString(),c.toString()),this.currentType=t,i.unreachable();switch(a=this.convertExpression(a,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,l),c=f,this.currentType=p.bool,_){case 72:return this.makeLt(a,u,f);case 73:return this.makeGt(a,u,f);case 74:return this.makeLe(a,u,f);case 75:return this.makeGe(a,u,f);default:return assert(!1),i.unreachable()}}compileBinaryExpression(e,t,i){let s=this.module,l=e.left,a=e.right,o,u,c,f,_,h,d=!1,y=e.operator;switch(y){case 72:case 73:case 74:case 75:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 78:case 76:case 79:case 77:return this.compileCommutativeCompareBinaryExpression(e,t);case 103:return this.compileAssignment(l,a,t);case 104:d=!0;case 81:{let v=this.joinedText(l,a,d,e);if(v){if(!d)return this.compileExpression(v,t,i);a=v}o=this.compileExpression(l,t),u=this.currentType;let S=u.getClassOrWrapper(this.program);if(S){let w=S.lookupOverload(5);if(w){h=this.compileBinaryOverload(w,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeAdd(o,c,_);break}case 105:d=!0;case 82:{o=this.compileExpression(l,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(6);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeSub(o,c,_);break}case 106:d=!0;case 84:{o=this.compileExpression(l,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(7);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeMul(o,c,_);break}case 107:d=!0;case 83:{o=this.compileExpression(l,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(10);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makePow(o,c,_,e);break}case 108:d=!0;case 85:{o=this.compileExpression(l,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(8);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),_&&_.isIntegerValue&&_e(e.range.source)&&(_=p.f64),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeDiv(o,c,_);break}case 109:d=!0;case 86:{o=this.compileExpression(l,t),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(9);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(d){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeRem(o,c,_,e);break}case 110:d=!0;case 89:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(14);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.i32),!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=this.currentType,h=this.makeShl(o,c,f);break}case 111:d=!0;case 90:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(15);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.i32),!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(a,u,1),f=this.currentType,h=this.makeShr(o,c,f);break}case 112:d=!0;case 91:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(16);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.u32),!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=this.currentType,h=this.makeShru(o,c,f);break}case 113:d=!0;case 92:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(11);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.i32),d){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,f.isFloatValue&&(c=this.toInt32Js(c,f),f=p.i32),_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeAnd(o,c,_);break}case 114:d=!0;case 93:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(12);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.i32),d){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,f.isFloatValue&&(c=this.toInt32Js(c,f),f=p.i32),_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeOr(o,c,_);break}case 115:d=!0;case 94:{o=this.compileExpression(l,t.intType),u=this.currentType;let v=u.getClassOrWrapper(this.program);if(v){let S=v.lookupOverload(13);if(S){h=this.compileBinaryOverload(S,l,o,u,a,e);break}}if(u.isFloatValue&&(o=this.toInt32Js(o,u),u=p.i32),d){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(a,u,1),f=_=this.currentType}else{if(c=this.compileExpression(a,u),f=this.currentType,f.isFloatValue&&(c=this.toInt32Js(c,f),f=p.i32),_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_,c=this.convertExpression(c,f,_,!1,a),f=_}h=this.makeXor(o,c,_);break}case 97:{let v=this.currentFlow,S=i&4;o=this.compileExpression(l,t.exceptVoid,S),u=this.currentType;let w=v.forkThen(o);if(this.narrowInstanceOf(l,w,!0),this.currentFlow=w,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,l);let R=this.evaluateCondition(o);R==2?h=o:(c=this.compileExpression(a,u,S),f=this.currentType,c=this.makeIsTrueish(c,f,a),R==1?(h=c,v.inherit(w)):(h=s.if(o,c,s.i32(0)),v.mergeBranch(w),v.noteThen(h,w))),this.currentFlow=v,this.currentType=p.bool}else{if(c=this.compileExpression(a,u,S),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,l),u=_;let R=s.runExpression(o,1);R&&(o=R),c=this.convertExpression(c,f,_,!1,a),f=_;let C=this.makeIsTrueish(o,this.currentType,l),M=this.evaluateCondition(C);if(M!=0)h=M==1?c:o;else if(h=s.tryCopyTrivialExpression(o))h=s.if(C,c,h);else{let G=v.getTempLocal(u);v.canOverflow(o,u)||v.setLocalFlag(G.index,2),v.isNonnull(o,u)&&v.setLocalFlag(G.index,4),h=s.if(this.makeIsTrueish(s.local_tee(G.index,o,u.isManaged),u,l),c,s.local_get(G.index,u.toRef()))}v.mergeBranch(w),v.noteThen(h,w),this.currentFlow=v,this.currentType=_}break}case 98:{let v=this.currentFlow,S=i&4;o=this.compileExpression(l,t.exceptVoid,S),u=this.currentType;let w=v.forkElse(o);if(this.currentFlow=w,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,l);let R=this.evaluateCondition(o);R==1?h=o:(c=this.compileExpression(a,u,S),f=this.currentType,c=this.makeIsTrueish(c,f,a),R==2?(h=c,v.inherit(w)):(h=s.if(o,s.i32(1),c),v.mergeBranch(w),v.noteElse(h,w))),this.currentFlow=v,this.currentType=p.bool}else{if(c=this.compileExpression(a,u,S),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=t,s.unreachable();let R=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,l),u=_;let C=s.runExpression(o,1);C&&(o=C),c=this.convertExpression(c,f,_,!1,a),f=_;let M=this.makeIsTrueish(o,this.currentType,l),G=this.evaluateCondition(M);if(G!=0)h=G==1?o:c;else if(h=s.tryCopyTrivialExpression(o))h=s.if(M,h,c);else{let W=v.getTempLocal(u).index;v.canOverflow(o,u)||v.setLocalFlag(W,2),v.isNonnull(o,u)&&v.setLocalFlag(W,4),h=s.if(this.makeIsTrueish(s.local_tee(W,o,u.isManaged),u,l),s.local_get(W,u.toRef()),c)}v.mergeBranch(w),v.noteElse(h,w),this.currentFlow=v,this.currentType=R?_:_.nonNullableType}break}case 116:d=!0;case 99:{let v=this.currentFlow,S=i&4,w=this.recordPresenceOf(l);if(w){let X=this.compileRecordHas(w),$=assert(this.recordTemps),V=$[0],re=$[1],j=assert(assert(V.type.getClass()).lookupOverload(1));u=j.signature.returnType;let ne=v.fork();this.currentFlow=ne,c=this.compileExpression(a,u,S|1),this.currentFlow=v,v.mergeBranch(ne),h=s.if(X,this.makeCallDirect(j,[s.local_get(V.index,V.type.toRef()),s.local_get(re.index,re.type.toRef())],l),c),this.currentType=u;break}let R=this.optionalFieldOf(l);if(R&&R.presenceOffset>=0){let X=this.compilePresenceObject(l,R),$=assert(this.presenceTemp);u=R.type;let V=v.fork();this.currentFlow=V,c=this.compileExpression(a,u,S|1),this.currentFlow=v,v.mergeBranch(V),h=s.if(this.makePresenceLoad(X,R),this.makeFieldLoad(s.local_get($.index,$.type.toRef()),R),c),this.currentType=u;break}let C=this.givenLocalOf(l);if(C){o=this.compileExpression(l,p.bool),u=this.currentType;let X=v.fork();this.currentFlow=X,c=this.compileExpression(a,u,S|1),this.currentFlow=v,v.mergeBranch(X),h=s.if(s.local_get(C.index,P.I32),o,c),this.currentType=u;break}let M=ot(l)?a:null;if(this.chainDefault=M,this.chainDefaultTaken=!1,o=this.compileExpression(l,t.exceptVoid,S),u=this.currentType,this.chainDefault=null,M&&this.chainDefaultTaken){this.chainDefaultTaken=!1,h=o;break}if(u.kind==12){let X=v.fork();this.currentFlow=X,c=this.compileExpression(a,p.f64,S|1),this.currentFlow=v,v.mergeBranch(X);let $=v.getTempLocal(p.f64);h=s.if(this.makeIsUndefinedNumber(s.local_tee($.index,o,!1)),c,s.local_get($.index,P.F64)),this.currentType=p.f64;break}if(e.undefinedOnly&&u.isNullableReference&&!this.optionalFieldOf(l)){h=o,this.currentType=u;break}if(!u.isNullableReference){h=o,this.currentType=u;break}let G=v.forkElse(o);if(this.currentFlow=G,c=this.compileExpression(a,u.nonNullableType,S),f=this.currentType,this.currentFlow=v,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"??",u.toString(),f.toString()),this.currentType=t,s.unreachable();c=this.convertExpression(c,f,_,!1,a);let U=v.getTempLocal(u),W=s.local_tee(U.index,o,u.isManaged),O=u.isExternalReference?s.unary(20,s.ref_is_null(W)):u.size==64?s.binary(41,W,s.i64(0)):W;h=s.if(O,s.local_get(U.index,u.toRef()),c),v.mergeBranch(G),this.currentType=f.is(512)?_:_.nonNullableType;break}case 29:return this.compileIn(e);default:{assert(!1),h=this.module.unreachable();break}}if(this.currentType==p.f64&&h3(y)&&(this.readsUndefined(l)||this.readsUndefined(a))){let v=this.currentFlow.getTempLocal(p.f64);h=s.select(s.f64(NaN),s.local_tee(v.index,h,!1),this.makeIsUndefinedNumber(s.local_get(v.index,P.F64)))}if(!d)return h;let m=this.resolver,g=m.lookupExpression(l,this.currentFlow);if(!g)return s.unreachable();let x=m.getTypeOfElement(g);return x||(x=p.void),this.currentType.isIntegerValue&&x.isFloatValue&&(h=this.convertExpression(h,this.currentType,x,!1,e),this.currentType=x),this.currentType.isStrictlyAssignableTo(x)?this.makeAssignment(g,h,this.currentType,a,m.currentThisExpression,m.currentElementExpression,t!=p.void):(this.error(2322,e.range,this.currentType.toString(),x.toString()),s.unreachable())}makeLt(e,t,i){let s=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,i){let s=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,i){let s=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,i){let s=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,i,s){let l=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:case 8:return l.binary(15,e,t);case 4:case 9:return l.binary(40,e,t);case 5:case 10:return l.binary(232,e,t);case 11:return l.binary(57,e,t);case 12:return l.binary(70,e,t);case 13:return l.unary(70,l.binary(76,e,t));case 17:case 18:case 19:case 20:return l.ref_eq(e,t);case 21:return l.string_eq(e,t);case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",i.toString()),l.unreachable()}return assert(!1),l.unreachable()}makeNe(e,t,i,s){let l=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:case 8:return l.binary(16,e,t);case 4:case 9:return l.binary(41,e,t);case 5:case 10:return l.binary(233,e,t);case 11:return l.binary(58,e,t);case 12:return l.binary(71,e,t);case 13:return l.unary(67,l.binary(77,e,t));case 17:case 18:case 19:case 20:return l.unary(20,l.ref_eq(e,t));case 21:return l.unary(20,l.string_eq(e,t));case 22:case 23:case 24:case 15:case 14:case 16:return this.error(203,s.range,"ref.eq",i.toString()),l.unreachable()}return assert(!1),l.unreachable()}makeAdd(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,i,s){let l=this.module;switch(i.kind){case 0:return l.select(l.i32(1),l.binary(15,t,l.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:case 8:{if(this.options.willOptimize&&ee(e)==14&&ee(t)==14){let u=ie(e),c=ie(t);return this.currentType=i,l.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let a=this.i32PowInstance;if(!a){let u=this.program.lookup(z.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),l.unreachable();assert(u.kind==4),this.i32PowInstance=a=this.resolver.resolveFunction(u,null)}if(!a||!this.compileFunction(a))return l.unreachable();let o=this.makeCallDirect(a,[e,t],s);return i.size<32&&(o=this.ensureSmallIntegerWrap(o,i)),o}case 4:case 9:{if(this.options.willOptimize&&ee(e)==14&&ee(t)==14){let o=i64_new(ke(e),Ne(e)),u=i64_new(ke(t),Ne(t)),c=i64_pow(o,u);return this.currentType=i,l.i64(i64_low(c),i64_high(c))}let a=this.i64PowInstance;if(!a){let o=this.program.lookup(z.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),l.unreachable();assert(o.kind==4),this.i64PowInstance=a=this.resolver.resolveFunction(o,null)}return!a||!this.compileFunction(a)?l.unreachable():this.makeCallDirect(a,[e,t],s)}case 5:case 10:{let a=this.options.isWasm64;if(this.options.willOptimize&&ee(e)==14&&ee(t)==14)if(a){let u=i64_new(ke(e),Ne(e)),c=i64_new(ke(t),Ne(t)),f=i64_pow(u,c);return this.currentType=i,l.i64(i64_low(f),i64_high(f))}else{let u=ie(e),c=ie(t);return this.currentType=i,l.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=a?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(a?z.ipow64:z.ipow32);if(!u)return this.error(2304,s.range,a?"ipow64":"ipow32"),l.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),a?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?l.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&ee(e)==14&&ee(t)==14){let o=Se(e),u=Se(t);return this.currentType=i,l.f32(f32(fl(o,u)))}let a=this.f32PowInstance;if(!a){let o=this.program.lookup(z.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),l.unreachable();let u=o.getMember(z.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),l.unreachable();assert(u.kind==4),this.f32PowInstance=a=this.resolver.resolveFunction(u,null)}return!a||!this.compileFunction(a)?l.unreachable():this.makeCallDirect(a,[e,t],s)}case 12:{if(this.options.willOptimize&&ee(e)==14&&ee(t)==14){let o=Ie(e),u=Ie(t);return this.currentType=i,l.f64(fl(o,u))}let a=this.f64PowInstance;if(!a){let o=this.program.lookup(z.Math);if(!o)return this.error(2304,s.range,"Math"),l.unreachable();let u=o.getMember(z.pow);if(!u)return this.error(2304,s.range,"Math.pow"),l.unreachable();assert(u.kind==4),this.f64PowInstance=a=this.resolver.resolveFunction(u,null)}return!a||!this.compileFunction(a)?l.unreachable():this.makeCallDirect(a,[e,t],s)}}return assert(!1),l.unreachable()}makeDiv(e,t,i){let s=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,i,s){let l=this.module;switch(i.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 3:return l.binary(5,e,t);case 4:return l.binary(30,e,t);case 5:return l.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,i),t=this.ensureSmallIntegerWrap(t,i);case 8:return l.binary(6,e,t);case 9:return l.binary(31,e,t);case 10:return l.binary(223,e,t);case 11:{let a=this.f32ModInstance;if(!a){let o=this.program.lookup(z.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),l.unreachable();let u=o.getMember(z.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),l.unreachable();assert(u.kind==4),this.f32ModInstance=a=this.resolver.resolveFunction(u,null)}return!a||!this.compileFunction(a)?l.unreachable():this.makeCallDirect(a,[e,t],s)}case 12:{let a=this.f64ModInstance;if(!a){let o=this.program.lookup(z.Math);if(!o)return this.error(2304,s.range,"Math"),l.unreachable();let u=o.getMember(z.mod);if(!u)return this.error(2304,s.range,"Math.mod"),l.unreachable();assert(u.kind==4),this.f64ModInstance=a=this.resolver.resolveFunction(u,null)}return!a||!this.compileFunction(a)?l.unreachable():this.makeCallDirect(a,[e,t],s)}}return assert(!1),l.unreachable()}makeShl(e,t,i){let s=this.module;switch(i.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(i.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,i){let s=this.module;switch(i.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,i),s.binary(7,t,s.i32(i.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,i),s.binary(7,t,s.i32(i.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,i){let s=this.module;switch(i.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,i),s.binary(7,t,s.i32(i.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,i){let s=this.module;switch(i.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,i,s){return this.makeCallDirect(e,[i],s,!1)}compileBinaryOverload(e,t,i,s,l,a){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(i=this.convertExpression(i,s,assert(u.thisType),!1,t),o=c[0]):(i=this.convertExpression(i,s,c[0],!1,t),o=c[1]);let f=this.compileExpression(l,o,1);return this.makeCallDirect(e,[i,f],a)}compileCommutativeBinaryOverload(e,t,i,s,l,a,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(i=this.convertExpression(i,s,assert(c.thisType),!1,t),a=this.convertExpression(a,o,f[0],!1,l)):(i=this.convertExpression(i,s,f[0],!1,t),a=this.convertExpression(a,o,f[1],!1,l)),this.makeCallDirect(e,[i,a],u)}acceptsText(e,t){let i=e;for(let s=0;i&&s<8;++s){if(i.kind==2)return i.acceptsText;if(i.kind!=1)return!1;let l=i;if(l.name.next||l.typeArguments&&l.typeArguments.length)return!1;let a=t.lookup(l.name.identifier.text,!0);if(!a||a.kind!=14)return!1;let o=a;i=o.typeNode,t=o.parent}return!1}compileText(e,t,i,s,l=0){if(t&&s.classReference){let a=this.functionAsList(e,t,i,s);if(a)return this.compileExpression(a,s,l);let o=this.booleanAsOptions(e,t,s);if(o)return this.compileExpression(o,s,l)}if(t&&s.signatureReference&&this.acceptsText(t,i)){let a=e;for(;a.kind==21;)a=a.expression;if(a.kind!=15&&a.kind!=19){let o=this.program.stringInstance,u=this.resolver.resolveExpression(a,this.currentFlow,p.auto,1);if(u&&u.classReference==o){let c=o.type,f=this.compileExpression(a,c.asNullable(),1);if(this.currentType.isNullableReference&&!this.currentFlow.isNonnull(f,this.currentType))return this.convertExpression(f,this.currentType,s,!1,e);let _=this.asyncHood("__textFunction",e,[s.nonNullableType]);if(!_)return this.module.unreachable();let h=this.makeCallDirect(_,[f],e);return this.currentType=_.signature.returnType,h}}}return this.compileExpression(e,s,l)}booleanAsOptions(e,t,i){if(t.kind!=1||!t.acceptsBoolean)return null;let s=this.resolver.resolveExpression(e,this.currentFlow,p.auto,1);if(!s||s!=p.bool)return null;let l=i.nonNullableType.classReference,a=l?l.members:null;if(!a)return null;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=assert(a.get(o[u]));if(f.kind!=10)continue;let _=this.resolver.resolveProperty(f,1);if(!_||!_.isField||_.type!=p.bool)continue;let h=A.createIdentifierExpression(o[u],e.range);return A.createObjectLiteralExpression([h],[e],e.range)}return null}functionAsList(e,t,i,s){let l=t,a=null;for(let y=0;y<8;++y){if(l.kind!=1)return null;let m=l;if(m.acceptsFunction){a=m.acceptsFunction;break}if(m.name.next||m.typeArguments&&m.typeArguments.length)return null;let g=i.lookup(m.name.identifier.text,!0);if(!g||g.kind!=14)return null;let x=g;l=x.typeNode,i=x.parent}if(!a)return null;let o=e;for(;o.kind==21;)o=o.expression;if(o.kind!=15){if(o.kind==19||o.kind==17)return null;let y=this.resolver.resolveExpression(o,this.currentFlow,p.auto,1);if(!y||!y.signatureReference)return null}let u=this.resolver.resolveType(a,null,i,null,1),c=s.nonNullableType.classReference;if(!u||!u.signatureReference||!c||c.prototype!=this.program.arrayPrototype)return null;let f=c.typeArguments,_=f&&f.length==1?f[0].classReference:null,h=_?_.members:null;if(!h)return null;let d=u.signatureReference;for(let y=Map_keys(h),m=0,g=y.length;m<g;++m){let x=assert(h.get(y[m]));if(x.kind!=10)continue;let v=this.resolver.resolveProperty(x,1);if(!v||!v.isField)continue;let S=v.type.signatureReference;if(!S||!S.equals(d))continue;let w=A.createIdentifierExpression(y[m],e.range),R=A.createObjectLiteralExpression([w],[e],e.range);return A.createArrayLiteralExpression([R],e.range)}return null}parameterTypeNode(e,t){let i=e.prototype.functionTypeNode.parameters;return t>=i.length||i[t].parameterKind==2?null:i[t].type}compileAssignment(e,t,i){let l=this.program.resolver,a=this.currentFlow;if(e.kind==13){let m=l.resolveExpression(e.expression,a,p.auto,1),g=m?m.getClass():null,x=g?l.shapeFieldOf(e,g,a,t):null;if(x)return this.compileExpression(x,i)}let o=l.lookupExpression(e,a);if(!o)return this.module.unreachable();let u=l.currentThisExpression,c=l.currentElementExpression,f,_=null,h=o;switch(o.kind){case 0:case 1:{if(o.kind==0&&!this.compileGlobalLazy(o,e))return this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(2048)&&this.checkUnsafe(e);break}case 10:{let m=o,g=l.resolveProperty(m);if(!g)return this.module.unreachable();o=g}case 11:{let m=o;if(m.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let g=m.setterInstance;if(!g)return this.error(2540,e.range,m.internalName),this.module.unreachable();assert(g.signature.parameterTypes.length==1),f=g.signature.parameterTypes[0],g.hasDecorator(2048)&&this.checkUnsafe(e),_=this.parameterTypeNode(g,0),h=g.prototype;break}case 15:{let m=o.parent;assert(m.kind==7);let g=m,x=a.is(32768),v=g.lookupOverload(2,x);if(!v)return g.lookupOverload(1,x)?this.error(2542,e.range,g.internalName):this.error(2329,e.range,g.internalName),this.module.unreachable();let S=v.signature.parameterTypes;assert(S.length==2),f=S[1],v.hasDecorator(2048)&&this.checkUnsafe(e),!x&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let d=this.compileText(t,_,h,f),y=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(d,y)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(d,y,f,!1,t),f,t,u,c,i!=p.void)}makeAssignment(e,t,i,s,l,a,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e,_=f.declaredByFlow(c)?c:this.ownerFlowOf(f);if(_&&_.isLocalFlag(f.index,1,!0))return this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable();let h=this.givenLocals.has(f)?assert(this.givenLocals.get(f)):null;if(h){let d=this.compileGiven(s);d||(d=u.i32(this.isUndefinedIdentifier(s)?0:1));let y=this.makeLocalAssignment(f,t,i,o),m=u.local_set(h.index,d,!1);return o?u.block(null,[m,y],f.type.toRef()):u.block(null,[m,y])}return this.makeLocalAssignment(f,t,i,o)}case 0:{let f=e;if(!this.compileGlobalLazy(f,s))return u.unreachable();if(c.forgetGlobalPaths(f.internalName),e.isAny(72))return this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable();let _=this.makeGlobalAssignment(f,t,i,o);if(this.globalMayBeUninitialized(f)){let h=this.currentType;_=this.makeGlobalTdzCheck(f,_,h,s),this.currentType=h}return _}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(f.isField){let h=c.sourceFunction.is(524288);if(f.is(64)){let y=f.initializerNode;if(!h||y)return this.error(2540,s.range,f.internalName),u.unreachable()}l=assert(l),h&&l.kind==25&&c.setThisFieldFlag(f,1);let d=f.getterInstance;d&&c.forgetPaths(-1,d.internalName)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.presenceOffset>=0&&f.is(262144)){let h=assert(_.signature.thisType),d=this.compileExpression(assert(l),h,33),y=c.getTempLocal(h),m=c.getTempLocal(i),g=i.toRef(),x=[this.makeCallDirect(_,[u.local_tee(y.index,d,h.isManaged),o?u.local_tee(m.index,t,i.isManaged,g):t],s),u.store(1,u.local_get(y.index,h.toRef()),this.givenLocalOf(s)?u.local_get(assert(this.givenLocalOf(s)).index,P.I32):u.i32(this.isUndefinedIdentifier(s)?0:1),P.I32,f.presenceOffset)];return o?(x.push(u.local_get(m.index,g)),this.currentType=i,u.block(null,x,g)):(this.currentType=p.void,u.block(null,x,P.None))}if(f.is(262144)){let h=assert(_.signature.thisType),d=this.compileExpression(assert(l),h,33);if(!o)return this.makeCallDirect(_,[d,t],s);let y=c.getTempLocal(i),m=i.toRef(),g=u.block(null,[this.makeCallDirect(_,[d,u.local_tee(y.index,t,i.isManaged,m)],s),u.local_get(y.index,m)],m);return this.currentType=i,g}else{if(!o)return this.makeCallDirect(_,[t],s);let h=c.getTempLocal(i),d=i.toRef(),y=u.block(null,[this.makeCallDirect(_,[u.local_tee(h.index,t,i.isManaged,d)],s),u.local_get(h.index,d)],d);return this.currentType=i,y}}case 15:{let _=e.parent;assert(_.kind==7);let h=_;assert(h.kind==7);let d=c.is(32768),y=h.lookupOverload(1,d);if(!y)return this.error(2329,s.range,h.internalName),u.unreachable();let m=h.lookupOverload(2,d);if(!m)return this.error(2542,s.range,h.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();assert(m.signature.parameterTypes.length==2);let g=h.type,x=this.compileExpression(assert(l),g,33),v=m.signature.parameterTypes[0],S=y.signature.parameterTypes[0];if(!v.equals(S))return this.errorRelated(237,y.identifierAndSignatureRange,m.identifierAndSignatureRange,h.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();let w=this.compileExpression(assert(a),v,1),R=this.currentType;if(o){let C=c.getTempLocal(g),M=c.getTempLocal(R),G=y.signature.returnType;return u.block(null,[this.makeCallDirect(m,[u.local_tee(C.index,x,g.isManaged),u.local_tee(M.index,w,R.isManaged),t],s),this.makeCallDirect(y,[u.local_get(C.index,C.type.toRef()),u.local_get(M.index,M.type.toRef())],s)],G.toRef())}else return this.makeCallDirect(m,[x,w,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,i,s){let l=this.module,a=e.type;assert(a!=p.void);let o=e.index;return e.parent!=this.currentFlow.targetFunction?this.makeCapturedAssignment(e,t,s):(this.noteLocalAssigned(e,t,i),e.closureBox>=0?this.makeCapturedAssignment(e,t,s):s?(this.currentType=a,l.local_tee(o,t,a.isManaged)):(this.currentType=p.void,l.local_set(o,t,a.isManaged)))}noteLocalAssigned(e,t,i){let s=this.currentFlow,l=e.type,a=e.index;s.forgetPaths(a),l.isNullableReference&&(!i.isNullableReference||s.isNonnull(t,l)?s.setLocalFlag(a,4):s.unsetLocalFlag(a,4)),s.setLocalFlag(a,8),l.isShortIntegerValue&&(s.canOverflow(t,l)?s.unsetLocalFlag(a,2):s.setLocalFlag(a,2))}makeGlobalAssignment(e,t,i,s){let l=this.module,a=e.type;assert(a!=p.void);let o=a.toRef();return t=this.ensureSmallIntegerWrap(t,a),s?(this.currentType=a,l.block(null,[l.global_set(e.internalName,t),l.global_get(e.internalName,o)],o)):(this.currentType=p.void,l.global_set(e.internalName,t))}compileCallExpression(e,t,i){let s=this.module,l=this.currentFlow;if(e.expression.kind==24){let d=this.currentFlow,y=d.sourceFunction;if(!y.is(524288))return this.error(2337,e.range),s.unreachable();let m=assert(y.parent);assert(m.kind==7);let g=m,x=g.base;if(!x||g.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let v=assert(d.lookupLocal(z.this_)),S=this.options.sizeTypeRef,w=this.ensureConstructor(x,e);this.checkFieldInitialization(x,e);let R=this.compileCallDirect(w,e.args,e,s.local_get(v.index,S));return d.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(d.set(192),this.currentType=p.void,s.local_set(v.index,R,g.type.isManaged))}let a=this.resolver.jsonParseOf(e,l,t);if(a)return a==this.resolver.jsonParseUntyped?(this.error(100,e.range,"JSON.parse without the type of what it reads - write JSON.parse<Settings>(text), or JSON.parse(text) as Settings"),s.unreachable()):this.compileCallDirect(a,e.args,e,0,i);let o=this.resolver.objectCallOf(e,l);if(o==e)return this.error(100,e.range,"Object.keys, values and entries of this - they take a Record, and an object of fields for keys, or values in a variable; walk an array or a Map with for...of"),s.unreachable();if(o){let d=this.compileExpression(o,t,i&-4);return this.resolver.mapGets.has(o)&&this.currentType.isNullableReference&&this.recordReads.add(d),d}let u=this.resolver.lowerPromiseCall(e,l);if(u){let d=u.instance;return d?this.compileCallDirect(d,u.args,e,0,i):s.unreachable()}let c=this.resolver.lookupExpression(e.expression,l);if(!c)return s.unreachable();let f=this.resolver.currentThisExpression;switch(c.kind){case 4:{let d=c;if(d.hasDecorator(512))return this.compileCallExpressionBuiltin(d,e,t);let y=this.resolver.maybeInferCall(e,d,l);if(!y)return this.module.unreachable();c=y}case 5:{let d=c,y=0;return d.is(262144)&&(y=this.compileExpression(assert(f),assert(d.signature.thisType),33)),this.compileCallDirect(d,e.args,e,y,i)}}let _=this.compileExpression(e.expression,p.auto),h=this.currentType.getSignature();if(h)return this.compileCallIndirect(h,_,e.args,e,0,t==p.void);if(this.error(2349,e.range,this.currentType.toString()),c.kind==10){let d=c.getterPrototype;d&&this.infoRelated(6234,e.range,d.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,i,s,l,a=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=i,o.range=s):this._reusableCallExpression=o=A.createCallExpression(e,t,i,s),this.compileCallExpression(o,l,a)}compileCallExpressionBuiltin(e,t,i){e.hasDecorator(2048)&&this.checkUnsafe(t);let s=null,l=e.typeParameterNodes,a=t.typeArguments;t.typeArguments&&(e.is(65536)||this.error(2315,t.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(l),a,this.currentFlow,this.currentFlow.sourceFunction.parent,se(this.currentFlow.contextualTypeArguments),t));let o=t.expression,u=new so(this,e,s,t.args,o.kind==22?o.expression:null,i,t,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(E.has(c)),assert(E.get(c))(u)}checkCallSignature(e,t,i,s){let l=e.thisType;if(i!=(l!=null))return this.error(2685,s.range),!1;let a=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!a?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,i){if(!t.hasRest)return e;let s=e.length,l=t.parameterTypes.length;if(s<l)return e;let a=e.slice(l-1),o=new ue(a[0].range.start,a[a.length-1].range.end);o.source=i.range.source;let u=new Pr(a,o),c=e.slice(0,l-1);return c.push(u),c}compileCallDirect(e,t,i,s=0,l=0){let a=t.length,o=e.signature;if(!this.checkCallSignature(o,a,s!=0,i))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(2048)&&this.checkUnsafe(i),t=this.adjustArgumentsForRestParams(t,o,i),a=t.length;let u=this.currentFlow.sourceFunction;if(u.is(524288)&&i.isAccessOnThis){let y=u.parent;assert(y.kind==7),this.checkFieldInitialization(y,i)}if((e.hasDecorator(64)||this.currentFlow.is(131072))&&(!e.is(268435456)||i.isAccessOnSuper)){assert(!e.is(134217728));let y=this.inlineStack;if(y.includes(e))this.warning(217,i.range,e.internalName);else{let m=o.parameterTypes;assert(a<=m.length);let g=new Array(a);for(let v=0;v<a;++v)g[v]=this.compileText(t[v],this.parameterTypeNode(e,v),e.prototype,m[v],1);y.push(e);let x=this.makeCallInline(e,g,s,(l&8)!=0);return y.pop(),x}}let f=s?a+1:a,_=new Array(f),h=0;s&&(_[0]=s,h=1);let d=o.parameterTypes;for(let y=0;y<a;++y,++h){let m=d[y],g=this.compileText(t[y],this.parameterTypeNode(e,y),e.prototype,m,1);_[h]=g}return assert(h==f),this.makeCallDirect(e,_,i,(l&8)!=0)}makeCallInline(e,t,i=0,s=!1){let l=this.module,a=t?t.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=Lt.createInline(f.targetFunction,e),h=[];if(i){let m=assert(e.parent);assert(m.kind==7);let g=m,x=assert(e.signature.thisType),v=_.addScopedLocal(z.this_,x);h.push(l.local_set(v.index,i,x.isManaged)),_.setLocalFlag(v.index,8);let S=g.base;S&&_.addScopedAlias(z.super_,S.type,v.index)}else assert(!e.signature.thisType);for(let m=0;m<a;++m){let g=t[m],x=u[m],v=_.addScopedLocal(e.getParameterName(m),x);f.canOverflow(g,x)||_.setLocalFlag(v.index,2),_.isNonnull(g,x)&&_.setLocalFlag(v.index,4),h.push(l.local_set(v.index,g,x.isManaged)),_.setLocalFlag(v.index,8)}this.currentFlow=_;let d=e.is(524288);d&&_.set(65536);for(let m=a;m<c;++m){let g=u[m],x=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[m].initializer),g,1),v=_.addScopedLocal(e.getParameterName(m),g);h.push(this.makeLocalAssignment(v,x,g,!1))}if(_.unset(65536),this.compileFunctionBody(e,h),d){let m=e.parent;assert(m.kind==7),this.checkFieldInitializationInFlow(m,_)}let y=_.returnType;return this.currentFlow=f,this.currentType=y,l.block(_.inlineReturnLabel,h,y.toRef())}ensureArgumentsLength(){let e=b.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,P.I32,!0,t.i32(0))}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let i=e.signature,s=i.parameterTypes,l=e.prototype.functionTypeNode.parameters,a=i.returnType,o=e.is(262144),u=i.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let h=assert(_-c),d=new Array(c),y=0,m=new Array,g=this.module,x=i.thisType;x&&(d[0]=g.local_get(0,x.toRef()),y=1);for(let W=0;W<u;++W,++y){let O=s[W];d[y]=g.local_get(y,O.toRef())}assert(y==c),t=e.newStub("varargs",f),e.varargsStub=t;let v=this.currentFlow,S=t.flow;e.is(524288)&&S.set(65536),this.currentFlow=S;let w=h+1,R=new Array(w),C=`of${h}`;for(let W=0;W<w;++W)R[W]=`${W}${C}`;let M=this.ensureArgumentsLength(),G=g.block(R[0],[g.block("outOfRange",[g.switch(R,"outOfRange",u?g.binary(1,g.global_get(M,P.I32),g.i32(u)):g.global_get(M,P.I32))]),g.unreachable()]);for(let W=0;W<h;++W,++y){let O=s[u+W],X=l[u+W],$=X.initializer,V;if(X.parameterKind===2){let re=new Pr([],X.range.atEnd);V=this.compileArrayLiteral(re,O,2),V=g.local_set(y,V,O.isManaged)}else $?(V=this.compileExpression($,O,1),V=g.local_set(y,V,O.isManaged)):(this.error(215,X.range),V=g.unreachable());G=g.block(R[W+1],[G,V]),d[y]=g.local_get(y,O.toRef())}assert(y==_),m.push(G),m.push(this.makeCallDirect(e,d,e.declaration.name)),this.currentFlow=v;let U=g.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,xt(t.getNonParameterLocalTypes()),g.flatten(m,a.toRef()));return t.set(8388608),t.finalize(g,U),t}takesLeadingParameters(e,t){if(e.thisType||t.thisType)return!1;let i=e.parameterTypes,s=t.parameterTypes;if(i.length>s.length)return!1;for(let o=0,u=i.length;o<u;++o)if(!i[o].equals(s[o]))return!1;let l=t.returnType;if(i.length==s.length)return l==p.void&&e.returnType!=p.void;let a=e.returnType;return l==p.void||a.equals(l)||a.isReference&&l.isReference&&a.isAssignableTo(l)}ensureArityAdapter(e,t){let i=e.name+tr+"arity"+t.id.toString(),s=this.program.instancesByName.get(e.internalName+tr+"arity"+t.id.toString());if(s)return s;let l=new Je(i,e.prototype,e.typeArguments,t.clone(),e.contextualTypeArguments);l.original=e;let a=this.module,o=new Array(e.signature.parameterTypes.length);for(let h=0,d=o.length;h<d;++h)o[h]=a.local_get(h,t.parameterTypes[h].toRef());let u=this.currentFlow;this.currentFlow=l.flow;let c=this.makeCallDirect(e,o,e.declaration.name);this.currentFlow=u;let f=t.returnType==p.void&&e.signature.returnType!=p.void?a.drop(c):c,_=a.addFunction(l.internalName,l.signature.paramRefs,l.signature.resultRefs,xt(l.getNonParameterLocalTypes()),f);return l.set(8388608),l.finalize(a,_),l}makeValueArityAdapter(e,t,i,s){let l=this.module,a=`${t.id}|${i.id}`,o=this.valueArityAdapters.get(a);if(!o){let _=this.closureEnvGlobal(s);if(!_)return l.unreachable();o=this.program.makeNativeFunction("~arity|"+a,i.clone());let h=this.options.usizeType.toRef(),d=new Array(t.parameterTypes.length);for(let v=0,S=d.length;v<S;++v)d[v]=l.local_get(v,i.parameterTypes[v].toRef());let y=this.currentFlow;this.currentFlow=o.flow;let m=this.makeCallIndirect(t,l.global_get(_.internalName,h),s,d);this.currentFlow=y;let g=i.returnType==p.void&&t.returnType!=p.void?l.drop(m):m,x=l.addFunction(o.internalName,o.signature.paramRefs,o.signature.resultRefs,xt(o.getNonParameterLocalTypes()),g);o.set(8388608),o.finalize(l,x),this.valueArityAdapters.set(a,o)}let u=this.asyncHood("__arity",s);if(!u)return l.unreachable();let c=this.ensureRuntimeFunction(o),f=this.options.isWasm64?l.i64(i64_low(c),i64_high(c)):l.i32(i64_low(c));return this.makeCallDirect(u,[e,f],s)}currentClosureScan(){let e=this.currentFlow,t=e.inlineFunction;if(!t)return e.targetFunction.closureScan;let i=t.closureScan,s=t.prototype.bodyNode;return!i&&s&&(t.closureScan=i=Zi(s)),i}noteDeclared(e,t){let i=this.currentClosureScan();return i?(e.closureAssigned=i.assigned.has(t),e.closureAssigned&&i.captured.has(t)):!1}makeBoxedDeclaration(e,t,i,s=!1){let l=this.module,a=this.currentFlow,o=this.options.usizeType;s&&(e.closureTdz=!0);let u=this.asyncHood(s?"__tdz_box":"__box",i,[e.type]);if(!u)return l.unreachable();let c=a.targetFunction.addLocal(o);e.closureBox=c.index;let f=l.local_set(c.index,this.makeCallDirect(u,[t],i),!0);return this.currentType=p.void,f}compileEarlyBoxedDeclaration(e){let t=this.module,i=this.currentFlow,s=this.resolver,l=e.name.text,a=assert(e.initializer),o=e.type,u=o?s.resolveType(o,i,i.sourceFunction,se(i.contextualTypeArguments)):s.resolveExpression(a,i,p.auto);if(!u)return 0;if(u==p.void)return this.error(2322,e.range,u.toString(),"<auto>"),0;let c;if(e.isAny(24)){let y=i.getScopedLocal(l);if(y)return this.errorRelated(2300,e.name.range,y.declaration.name.range,l),0;c=i.addScopedLocal(l,u)}else{if(i.lookupLocal(l))return this.error(2300,e.name.range,l),0;c=i.targetFunction.addLocal(u,l,e),i.unsetLocalFlag(c.index,-1)}let f=this.makeZero(u);this.noteLocalAssigned(c,f,u);let _=new Array;_.push(this.makeBoxedDeclaration(c,f,e,!0));let h=this.compileExpression(a,u,1),d=this.currentType;return this.noteLocalAssigned(c,h,d),c.closureTdz=!1,_.push(this.makeCapturedAssignment(c,h,!1)),_.push(this.makeTdzReady(c)),e.is(8)&&i.setLocalFlag(c.index,1),this.currentType=p.void,t.flatten(_)}prepareFunctionExpression(e,t,i){let s=e.signature;if(s.requiredParameters<s.parameterTypes.length&&(e.closureDefaults=!0),e.flow.outer=i,!Xg(t))return 0;let l=i.fork(),a=l.addScopedLocal(t.name.text,e.type);a.closureAssigned=!0,e.flow.outer=l,e.closureSelf=a;let o=this.currentFlow;this.currentFlow=i;let u=this.makeBoxedDeclaration(a,this.makeZero(e.type),t);return this.currentFlow=o,u}hoistFunctions(e,t){let i=this.currentFlow,s=null,l=null,a=null,o=null;for(let m=0,g=e.length;m<g;++m){let x=e[m];if(x.kind==48&&o){let w=x.declarations;for(let R=0,C=w.length;R<C;++R){let M=w[R].name.text;o.has(M)&&(a||(a=new Set),a.add(M))}}if(x.kind!=39||x.expression.kind!=15){if(f3(x)){let w=Zi(x).captured;if(w.size){o||(o=new Set);for(let R=Set_values(w),C=0,M=R.length;C<M;++C)o.add(R[C])}}continue}let v=x.expression,S=v.declaration;if(!S.name.text.length||S.arrowKind!=0){let w=Zi(x).captured;if(w.size){o||(o=new Set);for(let R=Set_values(w),C=0,M=R.length;C<M;++C)o.add(R[C])}continue}s||(s=new Array,l=new Set),s.push(v),assert(l).add(x)}if(!s&&!a)return null;let u=this.module,c=this.resolver,f=new Set;if(a)for(let m=Set_values(a),g=0,x=m.length;g<x;++g)f.add(m[g]);s||(s=new Array);for(let m=0,g=s.length;m<g;++m){let x=Zi(s[m]).captured;for(let v=Set_values(x),S=0,w=v.length;S<w;++S)f.add(v[S])}let _=new Array(s.length),h=new Array;for(let m=0,g=e.length;m<g;++m){let x=e[m];if(x.kind!=48)continue;let v=x.declarations;for(let S=0,w=v.length;S<w;++S){let R=v[S];f.has(R.name.text)&&R.isAny(24)&&h.push(R)}}let d=new Set;for(let m=0;;++m){let g=m>s.length+h.length,x=g?0:1,v=!1;for(let S=0,w=s.length;S<w;++S){if(_[S])continue;let R=s[S],C=c.resolveExpression(R,i,p.auto,x);if(!C)continue;let M=i.addScopedLocal(R.declaration.name.text,C);M.closureAssigned=!0,i.setLocalFlag(M.index,8),t.push(this.makeBoxedDeclaration(M,this.makeZero(C),R)),_[S]=M,v=!0}for(let S=0,w=h.length;S<w;++S){let R=h[S],C=R.name.text;if(d.has(R)||i.getScopedLocal(C))continue;let M=R.type,G=R.initializer,U=M?c.resolveType(M,i,i.sourceFunction,se(i.contextualTypeArguments),1):G?c.resolveExpression(G,i,p.auto,1):null;if(!U||U==p.void)continue;let W=i.addScopedLocal(C,U);W.closureAssigned=!0,W.closurePredeclared=!0,i.setLocalFlag(W.index,8),t.push(this.makeBoxedDeclaration(W,this.makeZero(U),R,!0)),d.add(R),v=!0}if(g)break;v||(m=s.length+h.length)}let y=this.options.usizeType.toRef();for(let m=0,g=s.length;m<g;++m){let x=_[m];if(!x)continue;let v=x.type,S=this.compileExpression(s[m],v,1),w=this.asyncHood("__box_set",s[m],[v]);w&&t.push(u.drop(this.makeCallDirect(w,[u.local_get(x.closureBox,y),S],s[m])))}return l}ownerFlowOf(e){let t=this.currentFlow.outer;for(;t&&t.targetFunction!=e.parent;)t=t.outer;return t}checkCopyable(e,t){return e.closureAssigned?(this.error(100,t.range,`Closures: '${e.name}' is assigned but has no box - a compiler error, please report it`),!1):!0}makeClosureSlot(e,t){let i=this.module,l=this.currentFlow.targetFunction,a=this.options.usizeType;if(!l.flow.outer)return this.error(100,t.range,`Closures: '${e.name}' belongs to another function, and this one is not a function expression written inside it`),i.unreachable();let o=l.closureSlots;o||(l.closureSlots=o=new Array);let u=o.indexOf(e);u<0&&(u=o.length,o.push(e));let c=l.closureEnv;c||(l.closureEnv=c=l.addLocal(a));let f=a.toRef();return i.load(a.byteSize,!1,i.local_get(c.index,f),f,u*a.byteSize)}makeTdzCheck(e,t,i){if(!e.closureTdz)return t;let s=this.module,l=this.options.usizeType,a=this.currentFlow.getTempLocal(l);return s.block(null,[s.if(s.unary(20,s.load(1,!1,s.local_tee(a.index,t,!1),P.I32,e.type.byteSize)),this.makeRuntimeError("ReferenceError",`${e.name} is not initialized`,i)),s.local_get(a.index,l.toRef())],l.toRef())}makeTdzReady(e){let t=this.module,i=this.options.usizeType;return e.closureBox<0?t.nop():t.store(1,t.local_get(e.closureBox,i.toRef()),t.i32(1),P.I32,e.type.byteSize)}compileCapturedGet(e,t){let i=this.module,s=this.currentFlow,l=e.type,a;if(e.parent==s.targetFunction)a=i.local_get(e.closureBox,this.options.usizeType.toRef());else{if(e.closureBox<0&&!this.checkCopyable(e,t))return this.currentType=l,i.unreachable();if(a=this.makeClosureSlot(e,t),e.closureBox<0&&l.isReference)return this.currentType=l,a}a=this.makeTdzCheck(e,a,t);let o=this.asyncHood("__box_get",t,[l]);if(!o)return i.unreachable();let u=this.makeCallDirect(o,[a],t);return this.currentType=l,u}makeCapturedAssignment(e,t,i){let s=this.module,l=this.currentFlow,a=e.type,o=e.declaration,u;if(e.parent==l.targetFunction)u=s.local_get(e.closureBox,this.options.usizeType.toRef());else if(e.closureBox>=0)u=this.makeClosureSlot(e,o);else return this.error(100,o.range,`Closures: '${e.name}' is assigned inside a closure that has a copy of it - rename the closure's own variable of that name`),this.currentType=i?a:p.void,s.unreachable();u=this.makeTdzCheck(e,u,o);let c=this.asyncHood("__box_set",o,[a]);if(!c)return s.unreachable();let f=this.makeCallDirect(c,[u,this.ensureSmallIntegerWrap(t,a)],o);return i?(this.currentType=a,f):(this.currentType=p.void,s.drop(f))}makeClosureSlotContent(e,t){let i=this.module,s=this.currentFlow;if(e.parent!=s.targetFunction)return this.makeClosureSlot(e,t);if(e.closureBox>=0)return i.local_get(e.closureBox,this.options.usizeType.toRef());let l=e.type;e.name==z.this_&&s.set(64);let a=i.local_get(e.index,l.toRef());if(l.isReference)return a;let o=this.asyncHood("__box",t,[l]);return o?this.makeCallDirect(o,[a],t):i.unreachable()}makeClosure(e,t,i){let s=this.module,l=this.currentFlow,a=this.options.usizeType,o=a.toRef(),u=this.asyncHood("__closure_env",i),c=this.asyncHood("__closure_set",i),f=this.asyncHood("__closure",i);if(!u||!c||!f)return s.unreachable();let _=l.getTempLocal(a),h=new Array;h.push(s.local_set(_.index,this.makeCallDirect(u,[s.i32(t.length)],i),!0));for(let d=0,y=t.length;d<y;++d)h.push(this.makeCallDirect(c,[s.local_get(_.index,o),s.i32(d),this.makeClosureSlotContent(t[d],i)],i,!0));return h.push(this.makeCallDirect(f,[e,s.local_get(_.index,o)],i)),s.flatten(h,o)}isAsyncFunction(e){return e.prototype.functionTypeNode.isAsync&&!e.is(134217728)}asyncHood(e,t,i=null){let s=this.program.lookup(e);return!s||s.kind!=4?(this.error(2304,t.range,e),null):this.resolver.resolveFunction(s,i)}asyncPromiseClass(e,t){let i=e.signature.returnType;if(i==p.void){let l=this.resolver.promiseTypeOf(p.void,t);return l?l.classReference:null}let s=i.classReference;return!s||!this.resolver.isPromisePrototype(s.prototype)?(this.error(1064,t.range),null):s}ensureCoroutineEntry(e){let t=e.internalName+tr+"coroutine",i=this.program.instancesByName.get(t);if(i)return i;let s=e.signature,l=new Je(e.name+tr+"coroutine",e.prototype,e.typeArguments,s.clone(s.parameterTypes.length),e.contextualTypeArguments);l.original=e;let a=this.module,o=new Array,u=s.thisType;u&&o.push(a.local_get(0,u.toRef()));let c=s.parameterTypes;for(let d=0,y=c.length;d<y;++d)o.push(a.local_get(o.length,c[d].toRef()));let f=this.currentFlow;this.currentFlow=l.flow;let _=this.makeCallDirect(e,o,e.declaration.name);this.currentFlow=f;let h=a.addFunction(l.internalName,l.signature.paramRefs,l.signature.resultRefs,xt(l.getNonParameterLocalTypes()),_);return l.set(8388608),l.finalize(a,h),l}compileAsyncPrologue(e,t){let i=this.module,s=e.identifierNode,l=e.signature,a=this.asyncPromiseClass(e,s);if(!a)return!1;let o=a.typeArguments;if(!o||o.length!=1)return!1;let u=this.asyncHood("__co_entered",s),c=this.asyncHood("__co_args",s),f=this.asyncHood("__co_keep",s),_=this.asyncHood("__co_spawn",s),h=this.asyncHood("__co_promise",s,[o[0]]);if(!u||!c||!f||!_||!h)return!1;let d=this.currentFlow,y=this.options.usizeType,m=d.getTempLocal(y),g=d.getTempLocal(a.type),x=new Array;x.push(i.local_set(m.index,this.makeCallDirect(c,null,s),!1));let v=new Array,S=l.thisType;S&&v.push(S);let w=l.parameterTypes;for(let W=0,O=w.length;W<O;++W)v.push(w[W]);let R=0;for(let W=0,O=v.length;W<O;++W){let X=v[W],$=X.toRef(),V=i.local_get(W,$),re=4;if($==P.I64||$==P.F64)re=8;else if($!=P.I32&&$!=P.F32)return this.error(100,s.range,"an async function taking "+X.toString()),!1;x.push(i.store(re,i.local_get(m.index,y.toRef()),V,$,R)),R+=re,X.isManaged&&x.push(this.makeCallDirect(f,[i.local_get(W,$)],s,!0))}if(R>256)return this.error(100,s.range,"an async function with this many parameters"),!1;let C=this.ensureCoroutineEntry(e);this.ensureRuntimeFunction(C);let M=this.options.tableBase;M||(M=1);let G=M+this.functionTable.indexOf(C);x.push(i.local_set(g.index,this.makeCallDirect(h,null,s),!0));let U=e.closureEnv;if(U){let W=this.closureEnvGlobal(s);if(!W)return!1;let O=y.toRef();x.push(this.makeCallDirect(f,[i.local_get(U.index,O)],s,!0)),x.push(i.global_set(W.internalName,i.local_get(U.index,O)))}if(x.push(this.makeCallDirect(_,[i.i32(G),i.i32(R>>2),i.local_get(g.index,a.type.toRef())],s,!0)),x.push(l.returnType==p.void?i.return():i.return(i.local_get(g.index,a.type.toRef()))),t.push(i.if(i.unary(20,this.makeCallDirect(u,null,s)),i.flatten(x,P.None))),this.unwindsIn(e)){let W=this.exceptionGlobal("__tryDepth",s);if(!W)return!1;t.push(i.global_set(W.internalName,i.i32(1)))}return!0}compileAsyncReturn(e,t){let i=this.module,s=this.currentFlow,l=s.targetFunction,a=l.signature.returnType,o=0,u="__co_return_void",c=null;if(e){let y=this.asyncPromiseClass(l,t);if(!y)return i.unreachable();let m=a==p.void?p.auto:assert(y.typeArguments)[0],g=this.compileExpression(e,m),x=this.currentType,v=x.classReference;!(v!=null&&this.resolver.isPromisePrototype(v.prototype))&&m!=p.auto&&x!=m&&(g=this.convertExpression(g,x,m,!1,e),x=m);let w=x.toRef();if(x==p.void)c=null,o=g;else if(x.isReference)u="__co_return_ref",c=[g];else if(w==P.F32)u="__co_return_f64",c=[i.unary(43,g)];else if(w==P.F64)u="__co_return_f64",c=[g];else if(w==P.I64)u="__co_return_i64",c=[g];else if(w==P.I32)u="__co_return_i32",c=[this.ensureSmallIntegerWrap(g,x)];else return this.error(100,e.range,"an async function returning "+x.toString()),i.unreachable()}let f=this.compileTryExits(0,null);if(f&&(o&&(f.unshift(o),o=0),c)){let y=c[0],m=u=="__co_return_ref"?this.options.usizeType:u=="__co_return_f64"?p.f64:u=="__co_return_i64"?p.i64:p.i32,g=s.getTempLocal(m);f.unshift(i.local_set(g.index,y,!1)),c[0]=i.local_get(g.index,m.toRef())}let _=this.asyncHood(u,t);if(!_)return i.unreachable();let h=this.makeCallDirect(_,c,t);o&&(h=i.block(null,[o,h],P.I32));let d=this.makeAsyncExit(h);return f?(f.push(d),i.block(null,f)):d}compileAsyncThrow(e,t){let i=this.asyncHood("__co_throw",t);if(!i)return this.module.unreachable();let s=this.compileExpression(e,i.signature.parameterTypes[0],1);return this.makeAsyncExit(this.makeCallDirect(i,[s],t))}makeAsyncExit(e){let t=this.module,i=this.currentFlow,s=i.targetFunction.signature.returnType;return i.set(257),this.currentType=s,s==p.void?t.block(null,[t.drop(e),t.return()]):t.return(e)}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let i=this.module;return t.ref=i.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,i.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let i=this.module,l=this.options.usizeType.toRef(),a=e.signature.parameterTypes,o=e.signature.returnType,u=a.length,c=1+a.length,f=new Un(this.module,i.load(4,!1,i.binary(l==P.I64?26:1,i.local_get(0,l),l==P.I64?i.i64(8):i.i32(8)),P.I32)),_=this.resolver.resolveOverrides(e);if(_){let m=new Map;for(let g=0,x=_.length;g<x;++g){let v=_[g];if(!v.is(8388608))continue;let S=v.signature,w=e.signature;if(!S.isAssignableTo(w,!0)){this.error(2322,v.identifierNode.range,S.toString(),w.toString());continue}let R=S.parameterTypes,C=R.length,M=new Array(1+C);M[0]=i.local_get(0,l);for(let V=1;V<=u;++V)M[V]=i.local_get(V,a[V-1].toRef());let G=!1;for(let V=u;V<C;++V)M[1+V]=this.makeZero(R[V]),G=!0;let U=G?this.ensureVarargsStub(v).internalName:v.internalName,W=S.returnType.toRef(),O=new Array;G&&O.push(i.global_set(this.ensureArgumentsLength(),i.i32(u))),o==p.void?(O.push(i.call(U,M,W)),O.push(i.return())):O.push(i.return(i.call(U,M,W)));let X=assert(v.getBoundClassOrInterface());f.addCase(X.id,O);let $=X.extenders;if($)for(let V=Set_values($),re=0,j=V.length;re<j;++re){let ne=V[re],ce=ne.prototype.instanceMembers;ce&&ce.has(e.declaration.name.text)||(!m.has(ne)||!assert(m.get(ne)).extends(X))&&(m.set(ne,X),f.addOrReplaceCase(ne.id,O))}}}let h,d=e.getBoundClassOrInterface();if(!e.is(128)&&!(d&&d.kind==9)){let m=new Array(u);m[0]=i.local_get(0,l);for(let g=0,x=a.length;g<x;++g)m[1+g]=i.local_get(1+g,a[g].toRef());h=i.call(e.internalName,m,o.toRef())}else h=i.unreachable();t.ref&&i.removeFunction(t.internalName),t.ref=i.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[P.I32],i.block(null,[f.render(c),h],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let i=Wp(t,this.options.isWasm64);if(i64_eq(i,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(i))&&assert(s.get(i64_high(i))).has(i64_low(i)))}operandsTostack(e,t){if(!this.options.stackSize)return;let i=this.module,s=0,l=e.thisType;if(l){if(l.isManaged){let u=t[0];this.needToStack(u)&&(t[s]=i.tostack(u))}++s}let a=0,o=e.parameterTypes;for(assert(o.length>=t.length-s);s<t.length;){if(o[a].isManaged){let c=t[s];this.needToStack(c)&&(t[s]=i.tostack(c))}++s,++a}}makeCallDirect(e,t,i,s=!1){if(e.hasDecorator(64))if(e.is(268435456))this.warning(228,i.range,e.internalName);else{assert(!e.is(134217728));let m=this.inlineStack;if(m.includes(e))this.warning(217,i.range,e.internalName);else{m.push(e);let g;if(e.is(262144)){let x=assert(t);assert(x.length),g=this.makeCallInline(e,x.slice(1),x[0],s)}else g=this.makeCallInline(e,t,0,s);return m.pop(),g}}let l=this.module,a=t?t.length:0,o=a,c=e.signature.requiredParameters,f=e.signature.parameterTypes,_=f.length,h=_;if(e.is(262144)&&(++c,++h,--o),assert(a>=c),!this.compileFunction(e))return l.unreachable();let d=e.signature.returnType;if(a<h){t||(t=new Array(h),t.length=0);let m=e.prototype.functionTypeNode.parameters;assert(m.length==f.length);let g=!0;for(let x=o;x<_;++x){let v=m[x].initializer;if(v){if(v.compilesToConst){t.push(this.compileExpression(v,f[x],1));continue}let S=this.resolver.lookupExpression(v,e.flow,f[x],1);if(S&&S.kind==0){let w=S;if(this.compileGlobalLazy(w,v)&&w.is(33554432)){t.push(this.compileInlineConstant(w,f[x],1));continue}}}t.push(this.makeZero(f[x])),g=!1}if(!g&&!e.is(2097152)){let x=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return l.unreachable();e.flow.flags=x.flow.flags;let v=d.toRef(),S=t[h-1];assert(!(Li(S,l.ref)&32));let w=f[_-1];t[h-1]=l.block(null,[l.global_set(this.ensureArgumentsLength(),l.i32(o)),S],w.toRef()),this.operandsTostack(e.signature,t);let R=this.makeUnwindCheck(l.call(e.internalName,t,v),e,d);return d!=p.void&&s?(R=l.drop(R),this.currentType=p.void):this.currentType=d,R}}e.is(268435456)&&!i.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),t&&this.operandsTostack(e.signature,t);let y=l.call(e.internalName,t,d.toRef());return e==this.program.abortInstance&&(y=this.makeAbortReset(y)),y=this.makeUnwindCheck(y,e,d),this.currentType=d,y}compileCallIndirect(e,t,i,s,l=0,a=!1){let o=i.length;if(!this.checkCallSignature(e,o,l!=0,s))return this.module.unreachable();i=this.adjustArgumentsForRestParams(i,e,s),o=i.length;let u=l?o+1:o,c=new Array(u),f=0;l&&(c[0]=l,f=1);let _=e.parameterTypes;for(let h=0;h<o;++h,++f)c[f]=this.compileExpression(i[h],_[h],1);return assert(f==u),this.makeCallIndirect(e,t,s,c,a)}makeCallIndirect(e,t,i,s=null,l=!1){let a=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,h=e.returnType,d=_.length,y=d;if(e.thisType&&(++f,++y,--u),assert(o>=f),o<y){s||(s=new Array(y),s.length=0);let M=e.parameterTypes;for(let G=u;G<d;++G)s.push(this.makeZero(M[G]))}let m=(Li(t,a.ref)&32)==0;if(s&&m){for(let M=0;M<o;++M)if(!a.isTrivialExpression(s[M])){m=!1;break}}let g=new Array,x=this.options.sizeTypeRef,v=this.program.parser.needsCallEnv?this.closureEnvGlobal(i):null;v&&(m=!1);let S=-1;if(!m){let M=this.currentFlow.getTempLocal(this.options.usizeType),G=a.local_set(M.index,t,!0);g.push(G),S=M.index,t=a.local_get(M.index,x)}let w=this.ensureArgumentsLength(),R=a.block(null,v?[a.global_set(w,a.i32(u)),a.global_set(v.internalName,a.load(this.options.usizeType.byteSize,!1,a.local_get(S,x),x,4)),t]:[a.global_set(w,a.i32(u)),t],x);s&&this.operandsTostack(e,s);let C=a.call_indirect(null,a.load(4,!1,R,P.I32),s,e.paramRefs,e.resultRefs);return C=this.makeUnwindCheck(C,null,h),this.currentType=h,g.push(C),a.flatten(g,h.toRef())}compileCommaExpression(e,t,i){let s=e.expressions,l=s.length,a=new Array(l--);for(let o=0;o<l;++o)a[o]=this.compileExpression(s[o],p.void,9);return a[l]=this.compileExpression(s[l],t,i),this.module.flatten(a,this.currentType.toRef())}compileElementAccessExpression(e,t,i){let s=this.module,l=e.expression,a=this.resolver,o=a.tupleFieldOf(e,this.currentFlow);if(o)return o==e?s.unreachable():this.compileExpression(o,t,i);let u=a.lookupExpression(l,this.currentFlow,p.auto,1);if(u&&u.kind==2){let f=this.compileExpression(e.elementExpression,p.i32,1),_=this.ensureEnumToString(u,e);return this.currentType=this.program.stringInstance.type,_==null?s.unreachable():s.call(_,[f],P.I32)}let c=a.resolveExpression(l,this.currentFlow);if(c){let f=c.getClassOrWrapper(this.program);if(f){let _=this.currentFlow.is(32768),h=f.lookupOverload(1,_);if(h){let d=assert(h.signature.thisType),y=this.compileExpression(l,d,1);!_&&this.options.pedantic&&this.pedantic(904,e.range);let m=this.compileCallDirect(h,[e.elementExpression],e,y,i);return this.currentType.isNullableReference&&this.resolver.isRecordClass(f)&&this.recordReads.add(m),m}}this.error(2329,e.expression.range,c.toString())}return s.unreachable()}compileFunctionExpression(e,t,i){let s=e.declaration.clone();assert(!s.typeParameters);let l=this.currentFlow,a=l.sourceFunction;if(t==p.auto&&pe(s.signature.returnType)){let S=this.resolver.resolveExpression(e,l,p.auto,1);S&&S.signatureReference&&(t=S)}let o=s.name.text.length>0,u=!o||t!=p.void,c=new Le(u?`${o?s.name.text:"anonymous"}|${a.nextAnonymousId++}`:s.name.text,a,s,0),f,_=se(l.contextualTypeArguments),h=this.module,d=0,y=t.signatureReference;if(y){let S=c.functionTypeNode,w=S.parameters,R=w.length,C=y.parameterTypes,M=C.length;if(R>M)return this.error(2554,e.range,M.toString(),R.toString()),h.unreachable();for(let V=0;V<R;++V){let re=w[V];if(!pe(re.type)){let j=this.resolver.resolveType(re.type,l,a.parent,_);if(!j)return h.unreachable();if(!C[V].isStrictlyAssignableTo(j))return this.error(2322,re.range,C[V].toString(),j.toString()),h.unreachable()}}let G=y.returnType,U=G.classReference;if(S.isAsync&&G!=p.void&&!(U&&this.resolver.isPromisePrototype(U.prototype)))return this.error(2322,e.range,"Promise",G.toString()),h.unreachable();if(!pe(S.returnType)&&!(S.isAsync&&G==p.void)){let V=this.resolver.resolveType(S.returnType,l,a.parent,_);if(!V)return h.unreachable();if(G==p.void?V!=p.void:!V.isStrictlyAssignableTo(G))return this.error(2322,S.returnType.range,V.toString(),G.toString()),h.unreachable()}let W=y.thisType,O=S.explicitThisType;if(O){if(!W)return this.error(2332,O.range),h.unreachable();let V=this.resolver.resolveType(O,l,a.parent,_);if(!V)return h.unreachable();if(!W.isStrictlyAssignableTo(V))return this.error(2322,O.range,W.toString(),V.toString()),h.unreachable()}let X=ge.create(this.program,C,G,W,M);f=new Je(c.name,c,null,X,_),d=this.prepareFunctionExpression(f,s,l);let $=this.compileFunction(f);if(this.currentType=y.type,!$)return h.unreachable()}else{if(f=this.resolver.resolveFunction(c,null,_),!f)return this.module.unreachable();d=this.prepareFunctionExpression(f,s,l);let S=this.compileFunction(f);if(this.currentType=f.signature.type,!S)return h.unreachable()}let m=this.ensureRuntimeFunction(f),g=this.options.isWasm64?h.i64(i64_low(m),i64_high(m)):h.i32(i64_low(m)),x=f.closureSlots;if(x&&x.length){let S=this.currentType;g=this.makeClosure(g,x,e),this.currentType=S}let v=f.closureSelf;if(v){let S=this.currentType,w=this.options.usizeType.toRef(),R=this.asyncHood("__box_set",e,[S]);if(!R)return h.unreachable();g=h.block(null,[d,this.makeCallDirect(R,[h.local_get(v.closureBox,w),g],e)],S.toRef()),this.currentType=S}if(!u){let S=f.name,w=l.getScopedLocal(S);if(w)w.declaration.range.source.isNative?this.error(2300,s.name.range,S):this.errorRelated(2300,s.name.range,w.declaration.name.range,S);else{let R=f.type,C=l.addScopedLocal(f.name,R);l.setLocalFlag(C.index,9),g=h.local_tee(C.index,g,R.isManaged)}}return g}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,i=this.program.filesByName;assert(i.has(t)),assert(i.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,i){let s=this.module,l=this.currentFlow,a=l.sourceFunction;if(this.isUndefinedIdentifier(e))return this.compileUndefined(e,t);switch(e.kind){case 19:{let c=this.options;if(t.isReference){let f=t.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=t.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 26:return this.currentType=p.bool,s.i32(1);case 14:return this.currentType=p.bool,s.i32(0);case 25:{let c=a.signature.thisType;if(!c&&a.prototype.arrowKind!=0){let _=l.lookupOuterThis();if(_){let h=this.compileCapturedGet(_,e);return this.currentType=_.type.nonNullableType,h}}if(!c)return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable();if(a.is(524288)&&(l.is(65536)&&this.error(2333,e.range),!(i&32))){let _=a.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(l.lookupLocal(z.this_));return l.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 24:{if(!a.signature.thisType&&a.prototype.arrowKind!=0){let c=l.lookupOuterThis(),f=c?c.type.getClass():null;if(c&&f&&f.base){let _=this.compileCapturedGet(c,e);return this.currentType=f.base.type,_}}if(a.is(524288)&&(l.is(65536)?this.error(2336,e.range):l.is(128)||this.error(17011,e.range)),l.isInline){let c=l.lookupLocal(z.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(a.is(262144)){let c=assert(a.parent);assert(c.kind==7);let _=c.base;if(_){let h=_.type;return this.currentType=h,s.local_get(0,h.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=a);let u=this.resolver.lookupIdentifierExpression(e,l,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,i);let _=c.index;if(!c.declaredByFlow(l)){let y=this.compileCapturedGet(c,e),m=this.ownerFlowOf(c);return c.closureBox<0&&f.isNullableReference&&(m&&m.isLocalFlag(_,4,!1)||l.isPathNonNull(y))?this.currentType=f.nonNullableType:this.currentType=f,y}l.isLocalFlag(_,8)||this.error(2454,e.range,c.name),assert(_>=0);let h=l.isLocalFlag(_,4,!1);if(f.isNullableReference&&h&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,c.closureBox>=0){let y=this.currentType,m=this.compileCapturedGet(c,e);return this.currentType=y,m}let d=s.local_get(_,f.toRef());return h&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(d=s.ref_as_nonnull(d)),d}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=this.globalMayBeUninitialized(c),_=c.type;if(this.pendingElements.has(c)&&!f)return this.error(2448,e.range,c.internalName),this.currentType=_,s.unreachable();if(assert(_!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,t);if(c.is(33554432))return this.compileInlineConstant(c,t,i);let h=s.global_get(c.internalName,_.toRef());return c.is(16384)&&_.isReference&&!_.isNullableReference&&(h=this.makeRuntimeNonNullCheck(h,_,e)),f&&(h=this.makeGlobalTdzCheck(c,h,_,e)),this.currentType=_,h}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,P.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,se(l.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(t.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Hn(_.type));let h=t.signatureReference;if(h&&this.takesLeadingParameters(_.signature,h)){let y=this.ensureArityAdapter(_,h),m=this.ensureRuntimeFunction(y);return this.currentType=y.signature.type,this.options.isWasm64?s.i64(i64_low(m),i64_high(m)):s.i32(i64_low(m))}let d=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileIdentifierExpressionBuiltin(e,t,i){e.hasDecorator(2048)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(ct.has(s)),assert(ct.get(s))(new cs(this,e,i,t))}compileInstanceOfExpression(e,t,i){let s=this.currentFlow,l=e.isType;if(l.kind==1){let o=l;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let a=this.resolver.resolveType(e.isType,s,s.sourceFunction,se(s.contextualTypeArguments));return a?this.makeInstanceofType(e,a):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,t){let i=this.module,s=this.currentFlow,l=this.compileExpression(e.expression,t),a=this.currentType;if(this.currentType=p.bool,t.isValue)return i.maybeDropCondition(l,i.i32(a==t?1:0));if(a.isValue)return i.maybeDropCondition(l,i.i32(0));let o=a.toRef();if(a.isNullableReference&&!t.isNullableReference){if(a.nonNullableType.isAssignableTo(t))return i.binary(o==P.I64?41:16,l,this.makeZero(a));if(a.nonNullableType.hasSubtypeAssignableTo(t))if(a.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",a.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(a).index;return i.if(i.unary(o==P.I64?21:20,i.local_tee(c,l,a.isManaged)),i.i32(0),i.call(this.prepareInstanceOf(t.classReference),[i.local_get(c,o)],P.I32))}}else{if(a.isAssignableTo(t))return i.maybeDropCondition(l,i.i32(1));if(a.hasSubtypeAssignableTo(t))if(a.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",a.toString(),t.toString());else{let c=s.getTempLocal(a).index;return i.if(i.unary(o==P.I64?21:20,i.local_tee(c,l,a.isManaged)),i.i32(0),i.call(this.prepareInstanceOf(t.classReference),[i.local_get(c,o)],P.I32))}}return i.maybeDropCondition(l,i.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,i=this.pendingInstanceOf;if(i.has(e))return assert(i.get(e));i.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,P.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let i=this.program,s=this.module,l=this.options.sizeTypeRef,a=new Array;a.push(s.local_set(1,s.load(4,!1,s.binary(l==P.I64?26:1,s.local_get(0,l),s.i32(i.totalOverhead-i.OBJECTInstance.offsetof("rtId"))),P.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];o.add(h)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];a.push(s.br("is_instance",s.binary(15,s.local_get(1,P.I32),s.i32(_.id))))}a.push(s.return(s.i32(0))),a[0]=s.block("is_instance",a,P.None),a.length=1,a.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,l,P.I32,[P.I32],s.block(null,a,P.I32))}makeInstanceofClass(e,t){let i=this.module,s=this.compileExpression(e.expression,p.auto),l=this.currentType,a=l.toRef();this.currentType=p.bool;let o=l.getClass();if(o){if(o.extendsPrototype(t))return l.isNullableReference?i.binary(a==P.I64?41:16,s,this.makeZero(l)):i.maybeDropCondition(s,i.i32(1));if(t.extends(o.prototype)){let f=this.currentFlow.getTempLocal(l).index;return i.if(i.unary(a==P.I64?21:20,i.local_tee(f,s,l.isManaged)),i.i32(0),i.call(this.prepareAnyInstanceOf(t),[i.local_get(f,a)],P.I32))}}return i.maybeDropCondition(s,i.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,i=this.pendingInstanceOf;if(i.has(e))return assert(i.get(e));i.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,P.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let i=this.module,s=this.options.sizeTypeRef,l=new Array,a=e.instances;if(a){let o=this.program;l.push(i.local_set(1,i.load(4,!1,i.binary(s==P.I64?26:1,i.local_get(0,s),i.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),P.I32),!1));let u=new Set;for(let c=Map_values(a),f=0,_=c.length;f<_;++f){let h=c[f];if(h.isInterface){let d=h.implementers;if(d)for(let y=Set_values(d),m=0,g=y.length;m<g;++m){let x=y[m];u.add(x)}}else{u.add(h);let d=h.extenders;if(d)for(let y=Set_values(d),m=0,g=y.length;m<g;++m){let x=y[m];u.add(x)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let h=c[f];l.push(i.br("is_instance",i.binary(15,i.local_get(1,P.I32),i.i32(h.id))))}}l.push(i.return(i.i32(0))),l[0]=i.block("is_instance",l,P.None),l.length=1,l.push(i.i32(1)),i.removeFunction(t),i.addFunction(t,s,P.I32,[P.I32],i.block(null,l,P.I32))}compileLiteralExpression(e,t,i,s=!1){let l=this.module;switch(e.literalKind){case 5:{assert(!s);let a=this.resolver.spreadArrayOf(e);return a?this.compileExpression(a,t,i):this.compileArrayLiteral(e,t,i)}case 0:{let a=e.value;return s&&(a=-a),t==p.f32?l.f32(a):(this.currentType=p.f64,l.f64(a))}case 1:{let a=e,o=this.resolver.determineIntegerLiteralType(a,s,t);this.currentType=o;let u=a.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return l.i32(i64_low(u));case 4:return l.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return l.i32(i64_low(u));case 9:return l.i64(i64_low(u),i64_high(u));case 11:return l.f32(c*i64_to_f32(u));case 12:return l.f64(c*i64_to_f64(u));default:return l.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,i);case 3:return assert(!s),this.compileTemplateLiteral(e,i);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:{let a=e,o=a.range;return this.compileExpression(A.createNewExpression(A.createSimpleTypeName("RegExp",o),null,[A.createStringLiteralExpression(a.pattern,o),A.createStringLiteralExpression(a.patternFlags,o)],o),t)}}return assert(!1),l.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let i=e.tag,s=e.parts,l=s.length,a=e.expressions,o=a.length;assert(o==l-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!i){if(l==1)return this.ensureStaticString(s[0]);if(l==2){let X=a[0],$=s[0].length,V=s[1].length;if(!$&&!V)return this.makeToString(this.compileExpression(X,f),this.currentType,X);let re=$!=0;if(re^V!=0){let j,ne,ce=this.makeToString(this.compileExpression(X,f),this.currentType,X);re?(j=this.ensureStaticString(s[0]),ne=ce):(j=ce,ne=this.ensureStaticString(s[1]));let le=assert(c.getMethod("concat"));return this.makeCallDirect(le,[j,ne],X)}}if(l==3&&!s[0].length&&!s[1].length&&!s[2].length){let X=a[0],$=a[1],V=this.makeToString(this.compileExpression(X,f),this.currentType,X),re=this.makeToString(this.compileExpression($,f),this.currentType,$),j=assert(c.getMethod("concat"));return this.makeCallDirect(j,[V,re],e)}let v=new Array(o),S=new Array;s[0].length>0&&S.push(this.ensureStaticString(s[0]));for(let X=1;X<l;++X)v[X-1]=S.length,S.push(u.usize(0)),s[X].length>0&&S.push(this.ensureStaticString(s[X]));let w=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),R=this.addStaticBuffer(f,S,w.id);this.program.OBJECTInstance.writeField("gcInfo",3,R.buffer,0);let C=i64_add(R.offset,i64_new(this.program.totalOverhead)),M=assert(w.getMethod("join")),G=assert(w.lookupOverload(2,!0)),U=new Array(2*o+1),W=new Array(o),O=this.currentFlow;for(let X=0;X<o;++X){let $=a[X],V=O.getTempLocal(f);W[X]=V,U[X]=u.local_set(V.index,this.makeToString(this.compileExpression($,f),this.currentType,$),!0)}for(let X=0;X<o;++X)U[o+X]=this.makeCallDirect(G,[u.usize(C),u.i32(v[X]),u.local_get(W[X].index,f.toRef())],e);return U[2*o]=this.makeCallDirect(M,[u.usize(C),this.ensureStaticString("")],e),u.flatten(U,f.toRef())}let _=this.program.templateStringsArrayInstance,h=_,d=this.resolver.lookupExpression(i,this.currentFlow,p.auto,1);if(d)switch(d.kind){case 4:{let v=this.resolver.resolveFunction(d,null,new Map,1);if(!v)break;d=v}case 5:{let S=d.signature.parameterTypes;if(S.length){let w=S[0].getClass();w&&!w.extendsPrototype(_.prototype)&&(h=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let y=e.rawParts;assert(y.length==l);let m=new Array(l);for(let v=0;v<l;++v)m[v]=this.ensureStaticString(s[v]);let g;if(h==_){let v=new Array(l);for(let w=0;w<l;++w)v[w]=this.ensureStaticString(y[w]);g=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,m),h);let S=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,v));h.writeField("raw",i64_add(S.offset,i64_new(this.program.totalOverhead)),g.buffer)}else g=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,m),h);let x=a.slice();return x.unshift(A.createCompiledExpression(u.usize(i64_add(g.offset,i64_new(this.program.totalOverhead))),h.type,ye.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(i,null,x,e.range,f)}compileArrayLiteral(e,t,i){let s=this.module,l=this.currentFlow,a=this.program,o=t.getClass();if(o&&o.extendsPrototype(a.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,i);if(o&&Ya(o)){let C=assert(o.typeArguments);if(e.elementExpressions.length!=C.length)return this.error(2322,e.range,"<array>",t.toString()),s.unreachable();let M=this.ensureConstructor(o,e),G=this.compileInstantiate(M,e.elementExpressions,i,e);return this.currentType=o.type,G}let u=this.resolver.lookupExpression(e,l,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(a.arrayPrototype)[0],h=l.getTempLocal(this.options.usizeType),d=e.elementExpressions,y=d.length,m=new Array(y),g=!_.isExternalReference;for(let C=0;C<y;++C){let M=d[C];if(M.kind!=20){let G=this.compileExpression(M,_,1);if(ae(G)!=_.toRef())g=!1;else{let U=s.runExpression(G,1);U?G=U:g=!1}m[C]=G}else m[C]=this.makeZero(_)}if(g){let C=a.totalOverhead,M=this.addStaticBuffer(_,m),G=i64_add(M.offset,i64_new(C));if(i&16){let U=this.addStaticArrayHeader(_,M),W=i64_add(U.offset,i64_new(C));return this.currentType=f,a.options.isWasm64?this.module.i64(i64_low(W),i64_high(W)):this.module.i32(i64_low(W))}else return this.makeNewArray(c,y,G,e)}let x=c.lookupOverload(2,!0);if(!x)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let v=f.toRef(),S=new Array;S.push(s.local_set(h.index,this.makeNewArray(c,y,i64_new(0),e),f.isManaged));let w=assert(c.getMember("dataStart"));assert(w.kind==10);let R=w.instance;if(!R)return s.unreachable();assert(R.isField&&R.memoryOffset>=0);for(let C=0;C<y;++C)S.push(s.call(x.internalName,[s.local_get(h.index,v),s.i32(C),m[C]],P.None));return S.push(s.local_get(h.index,v)),y&&this.compileFunction(x),this.currentType=f,s.flatten(S,v)}makeNewArray(e,t,i,s){let l=this.program,a=this.module;assert(!e.extendsPrototype(l.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(l.newArrayInstance,[a.i32(t),l.options.isWasm64?a.i64(o.alignLog2):a.i32(o.alignLog2),a.i32(e.id),l.options.isWasm64?a.i64(i64_low(i),i64_high(i)):a.i32(i64_low(i))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,i){let s=this.module,l=this.currentFlow,a=this.program,o=assert(t.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(a.staticArrayPrototype))[0],_=l.getTempLocal(this.options.usizeType),h=e.elementExpressions,d=h.length,y=new Array(d),m=!f.isExternalReference;for(let R=0;R<d;++R){let C=h[R];if(C.kind!=20){let M=this.compileExpression(C,f,1),G=s.runExpression(M,1);G?M=G:m=!1,y[R]=M}else y[R]=this.makeZero(f)}let g=this.options.isWasm64,x=y.length<<f.alignLog2;if(m){let R=this.addStaticBuffer(f,y,o.id),C=i64_add(R.offset,i64_new(a.totalOverhead));if(i&16){let M=this.options.isWasm64?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C));return this.currentType=u,M}else{let M=this.makeCallDirect(a.newBufferInstance,[g?s.i64(x):s.i32(x),s.i32(o.id),g?s.i64(i64_low(C),i64_high(C)):s.i32(i64_low(C))],e);return this.currentType=u,M}}let v=o.lookupOverload(2,!0);if(!v)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let S=u.toRef(),w=new Array;w.push(s.local_set(_.index,this.makeCallDirect(a.newBufferInstance,[g?s.i64(x):s.i32(x),s.i32(o.id)],e),u.isManaged));for(let R=0;R<d;++R)w.push(s.call(v.internalName,[s.local_get(_.index,S),s.i32(R),y[R]],P.None));return w.push(s.local_get(_.index,S)),d&&this.compileFunction(v),this.currentType=u,s.flatten(w,S)}compileObjectLiteral(e,t){let i=this.module,s=t.getClass();if(!s&&e.names.length&&e.names[0].text=="..."){let R=this.resolver.resolveExpression(e.values[0],this.currentFlow,p.auto,1);R&&R.getClass()&&(t=R.nonNullableType,s=t.getClass())}let l=e.inferredType;if(!s&&!l&&(l=this.resolver.lateShapeOf(e,this.currentFlow)),!s&&l){let R=this.currentFlow,C=this.resolver.resolveType(l,R,R.sourceFunction,se(R.contextualTypeArguments));C&&(t=C,s=C.getClass())}if(!s)return this.error(2322,e.range,"<object>",t.toString()),i.unreachable();if(this.resolver.isRecordClass(s))return this.compileRecordLiteral(e,s);let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9){let R=this.resolver.hiddenClassOf(e,s);if(R){let C=this.currentFlow,M=this.resolver.resolveType(assert(R.inferredType),C,C.sourceFunction,se(C.contextualTypeArguments));if(M)return this.compileObjectLiteral(R,M)}return this.error(100,e.range,"Interface hidden classes"),i.unreachable()}if(s.is(128))return this.error(2511,e.range),i.unreachable();let o=s.prototype.constructorPrototype;if(o)return this.errorRelated(216,e.range,o.identifierNode.range,a.toString()),i.unreachable();a.isManaged||this.checkUnsafe(e,Pt(6,s.decoratorNodes));let c=e.names,f=c.length,_=e.values,h=s.members,d=!1,y=new Array,m=this.currentFlow,g=m.getTempLocal(a),x=a.toRef();assert(f==_.length);let v=new Set;if(h)for(let R=Map_keys(h),C=0,M=R.length;C<M;++C){let G=R[C],U=assert(h.get(G));if(U&&U.kind==10){let W=U.instance;W&&W.isField&&v.add(W)}}let S=new Array;for(let R=0;R<f;++R){let C=c[R].text;if(C=="..."){this.compileObjectSpread(_[R],s,g,y,v)||(d=!0);continue}let M=s.getMember(C);if(!M||M.kind!=10){this.error(2339,c[R].range,C,a.toString()),d=!0;continue}if(M.is(512)){this.error(2341,c[R].range,C,a.toString()),d=!0;continue}if(M.is(1024)){this.error(2445,c[R].range,C,a.toString()),d=!0;continue}let G=this.resolver.resolveProperty(M);if(!G)continue;let U=G.setterInstance;if(!U){this.error(2540,c[R].range,C,a.toString()),d=!0;continue}if(v.delete(G),!G.isField){S.push(G);continue}let W=G.type,O=_[R],X=G.prototype.fieldDeclaration,$=X?X.type:null;if(G.presenceOffset>=0){if(this.isUndefinedIdentifier(O))continue;let j=this.optionalFieldOf(O);if(j&&j.presenceOffset>=0&&j.type==W){let le=this.compilePresenceObject(O,j),Te=assert(this.presenceTemp);y.push(i.store(W.byteSize,i.local_get(g.index,x),this.makeFieldLoad(le,j),W.toRef(),G.memoryOffset)),y.push(i.store(1,i.local_get(g.index,x),this.makePresenceLoad(i.local_get(Te.index,Te.type.toRef()),j),P.I32,G.presenceOffset));continue}let ne=this.givenLocalOf(O),ce=ne?i.local_get(ne.index,P.I32):i.i32(1);y.push(i.store(1,i.local_get(g.index,x),ce,P.I32,G.presenceOffset))}let V=G.initializerNode;if(V&&W.isReference&&!W.isNullableReference&&_e(O.range.source)&&Qg(V)){let j=this.resolver.resolveExpression(O,m,W,1);j&&j.isNullableReference&&j.nonNullableType==W&&(O=A.createBinaryExpression(99,O,V,O.range))}let re=this.makeCallDirect(U,[i.local_get(g.index,x),this.compileText(O,$,G.prototype.parent,W,1)],U.identifierNode,!0);this.currentType!=p.void&&(re=i.drop(re)),y.push(re)}for(let R=0,C=S.length;R<C;++R){let M=S[R],G=assert(M.setterInstance);y.push(this.makeCallDirect(G,[i.local_get(g.index,x),this.compileExpression(_[R],M.type,1)],G.identifierNode))}if(this.currentType=a.nonNullableType,d)return i.unreachable();for(let R=Set_values(v),C=0,M=R.length;C<M;++C){let G=R[C];assert(G.isField);let U=G.type;if(!G.initializerNode){if(U.isReference&&!U.isNullableReference){this.error(2741,e.range,G.name,"<object>",a.toString()),d=!0;continue}switch(U.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{y.push(i.store(U.byteSize,i.local_get(g.index,x),this.makeZero(U),U.toRef(),G.memoryOffset));continue}}this.error(2741,e.range,G.name,"<object>",a.toString()),d=!0}}if(d)return i.unreachable();let w=this.ensureConstructor(s,e);return y.unshift(i.local_set(g.index,this.compileInstantiate(w,[],0,e),a.isManaged)),y.push(i.local_get(g.index,x)),this.currentType=a.nonNullableType,i.flatten(y,x)}compileNewExpression(e,t,i){let s=this.module,l=this.currentFlow,a=this.resolver.resolveTypeName(e.typeName,l,l.sourceFunction);if(!a)return s.unreachable();if(a.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(a.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=a,u=null,c=e.typeArguments,f;if(!c&&(f=t.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,se(l.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,l,l.sourceFunction.parent,se(l.contextualTypeArguments),e),!u)return s.unreachable();t==p.void&&(i|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,i,e)}ensureConstructor(e,t){let i=e.constructorInstance;if(i){if(i.is(8388608))return i;i.hasDecorator(64)||this.compileFunction(i)}else{let s=e.base,l=se(e.contextualTypeArguments);if(s){let v=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),i=new Je(z.constructor,new Le(z.constructor,e,v.declaration.clone()),null,ge.create(this.program,v.signature.parameterTypes,e.type,e.type,v.signature.requiredParameters,v.signature.hasRest),l)}else i=new Je(z.constructor,new Le(z.constructor,e,this.program.makeNativeFunctionDeclaration(z.constructor,786432)),null,ge.create(this.program,[],e.type,e.type),l);i.set(8388608),i.prototype.setResolvedInstance("",i),e.is(1048576)&&i.set(1048576),e.constructorInstance=i;let a=e.members;a||(e.members=a=new Map),a.set(z.constructor,i.prototype);let o=this.currentFlow,u=i.flow;this.currentFlow=u;let c=i.signature,f=this.module,_=this.options.sizeTypeRef,h=new Array;if(h.push(this.makeConditionalAllocation(e,0)),s){let v=c.parameterTypes,S=v.length,w=new Array(1+S);w[0]=f.local_get(0,_);for(let R=1;R<=S;++R)w[R]=f.local_get(R,v[R-1].toRef());h.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),w,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,h),h.push(f.local_get(0,_)),this.currentFlow=o;let d=i.localsByIndex,y=new Array,m=1+c.parameterTypes.length,g=d.length;if(g>m)for(let v=m;v<g;++v)y.push(d[v].type.toRef());let x=f.addFunction(i.internalName,c.paramRefs,c.resultRefs,y,f.flatten(h,_));i.finalize(f,x)}return i}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let i=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,i.flow,t)}checkFieldInitializationInFlow(e,t,i=null){let s=e.members;if(s)for(let l=Map_values(s),a=0,o=l.length;a<o;++a){let u=l[a];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!t.isThisFieldFlag(c,1)?c.is(16384)||(i?this.errorRelated(2564,c.declaration.name.range,i.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,t,i,s){assert(e.is(524288));let l=e.parent;assert(l.kind==7);let a=l;(a.type.isUnmanaged||e.hasDecorator(2048))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),i);return ae(o)!=P.None&&(this.currentType=a.type),o}compilePropertyAccessExpression(e,t,i){let s=this.module,l=this.currentFlow;this.maybeCompileEnclosingSource(e);let a=this.resolver,o=a.lookupExpression(e,l,t);if(!o)return s.unreachable();let u=a.recordKeys.get(e);if(u)return this.compileElementAccessExpression(u,t,i);let c=a.currentThisExpression;switch(o.hasDecorator(2048)&&this.checkUnsafe(e),o.kind){case 0:{let f=o;if(!this.compileGlobalLazy(f,e))return s.unreachable();let _=f.type;if(assert(_!=p.void),this.pendingElements.has(f))return this.error(2448,e.range,f.internalName),this.currentType=_,s.unreachable();if(f.is(33554432))return this.compileInlineConstant(f,t,i);let h=s.global_get(f.internalName,_.toRef());return f.is(16384)&&_.isReference&&!_.isNullableReference&&(h=this.makeRuntimeNonNullCheck(h,_,e)),this.currentType=_,h}case 3:{let f=o,_=assert(f.parent);assert(_.kind==2);let h=_;return this.compileEnum(h)?(this.currentType=p.i32,f.is(33554432)?(assert(f.constantValueKind==1),this.compileInlineConstant(f,t,i)):(assert(f.type==p.i32),s.global_get(f.internalName,P.I32))):(this.currentType=p.i32,this.module.unreachable())}case 10:{let f=o,_=this.resolver.resolveProperty(f);if(!_)return s.unreachable();o=_}case 11:{let f=o;f.isField&&l.sourceFunction.is(524288)&&assert(c).kind==25&&!l.isThisFieldFlag(f,1)&&!f.is(16384)&&this.errorRelated(2565,e.range,f.identifierNode.range,f.internalName);let _=f.getterInstance;if(!_)return s.unreachable();let h=0;_.is(262144)&&(h=this.compileExpression(assert(c),assert(_.signature.thisType),33));let d=this.compileCallDirect(_,[],e,h);return this.currentType.isNullableReference&&l.isPathNonNull(d)&&(this.currentType=this.currentType.nonNullableType),d}case 4:{let f=o,_=f.typeParameterNodes;if(_&&_.length!=0){this.error(1140,e.range);break}let h=this.resolver.resolveFunction(f,null);if(!h||!this.compileFunction(h))return s.unreachable();if(this.currentType=h.type,h.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=t.signatureReference;if(d&&this.takesLeadingParameters(h.signature,d)){let m=this.ensureArityAdapter(h,d),g=this.ensureRuntimeFunction(m);return this.currentType=m.signature.type,this.options.isWasm64?s.i64(i64_low(g),i64_high(g)):s.i32(i64_low(g))}let y=this.ensureRuntimeFunction(h);return this.options.isWasm64?s.i64(i64_low(y),i64_high(y)):s.i32(i64_low(y))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,i){let s=this.module,l=e.ifThen,a=e.ifElse;if(t==p.auto&&l.kind==19){let x=this.resolver.resolveExpression(a,this.currentFlow,p.auto,1);x&&x.isReference&&(t=x.asNullable())}let o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(l,t));if(c==2)return s.maybeDropCondition(u,this.compileExpression(a,t));let f=this.currentFlow,_=f.forkThen(o);this.narrowInstanceOf(e.condition,_,!0),this.currentFlow=_;let h=this.compileExpression(l,t),d=this.currentType,y=f.forkElse(o);this.narrowInstanceOf(e.condition,y,!1),this.currentFlow=y;let m=this.compileExpression(a,t==p.auto?d:t),g=this.currentType;if(t==p.void)d!=p.void&&(h=s.drop(h),d=p.void),g!=p.void&&(m=s.drop(m),g=p.void),this.currentType=p.void;else{let x=p.commonType(d,g,t);if(!x)return this.error(2322,a.range,g.toString(),d.toString()),this.currentType=t,s.unreachable();h=this.convertExpression(h,d,x,!1,l),d=x,m=this.convertExpression(m,g,x,!1,a),g=x,this.currentType=x}return f.inheritAlternatives(_,y),this.currentFlow=f,s.if(u,h,m)}compileUnaryPostfixExpression(e,t,i){let s=this.module,l=this.currentFlow,a=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=p.void?(u=l.getTempLocal(this.currentType),o=s.local_tee(u.index,a,this.currentType.isManaged)):o=a;let c;switch(e.operator){case 87:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let m=y.lookupOverload(29);if(m){let g=m.is(262144);if(u&&!g&&(o=a,u=null),c=this.compileUnaryOverload(m,e.operand,o,e),g)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 88:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let m=y.lookupOverload(30);if(m){let g=m.is(262144);if(u&&!g&&(o=a,u=null),c=this.compileUnaryOverload(m,e.operand,o,e),g)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver,_=f.lookupExpression(e.operand,l);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let h=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let d=u.type.toRef();return s.block(null,[h,s.local_get(u.index,d)],d)}compileUnaryPrefixExpression(e,t,i){let s=this.module,l=!1,a;switch(e.operator){case 81:{a=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,a,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 82:{let c=e.operand;if(c.isNumericLiteral){a=this.compileLiteralExpression(c,t,0,!0),this.options.sourceMap&&this.addDebugLocation(a,e.range);break}a=this.compileExpression(e.operand,t.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,a,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{a=s.binary(1,s.i32(0),a);break}case 4:case 9:{a=s.binary(26,s.i64(0),a);break}case 5:case 10:{a=s.binary(218,this.makeZero(this.currentType),a);break}case 11:{a=s.unary(6,a);break}case 12:{a=s.unary(7,a);break}default:this.error(2469,e.range,"-",this.currentType.toString()),a=s.unreachable()}break}case 87:{l=!0,a=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(a=this.compileUnaryOverload(f,e.operand,a,e),f.is(262144))break;return a}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{a=s.binary(0,a,this.module.i32(1));break}case 4:case 9:{a=s.binary(25,a,s.i64(1));break}case 5:case 10:{a=s.binary(217,a,this.makeOne(this.currentType));break}case 11:{a=s.binary(50,a,s.f32(1));break}case 12:{a=s.binary(63,a,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),a=s.unreachable()}break}case 88:{l=!0,a=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(a=this.compileUnaryOverload(f,e.operand,a,e),f.is(262144))break;return a}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{a=s.binary(1,a,s.i32(1));break}case 4:case 9:{a=s.binary(26,a,s.i64(1));break}case 5:case 10:{a=s.binary(218,a,this.makeOne(this.currentType));break}case 11:{a=s.binary(51,a,s.f32(1));break}case 12:{a=s.binary(64,a,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),a=s.unreachable()}break}case 95:{a=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,a,e)}a=s.unary(20,this.makeIsTrueish(a,this.currentType,e.operand)),this.currentType=p.bool;break}case 96:{a=this.compileExpression(e.operand,t==p.void?p.i32:t.isFloatValue?p.i32:t,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(26);if(_)return this.compileUnaryOverload(_,e.operand,a,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();let f=this.currentType.isFloatValue?p.i32:this.currentType.intType;switch(a=this.currentType.isFloatValue?this.toInt32Js(a,this.currentType):this.convertExpression(a,this.currentType,f,!0,e.operand),this.currentType=f,this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{a=s.binary(9,a,s.i32(-1));break}case 4:case 9:{a=s.binary(34,a,s.i64(-1,-1));break}case 5:case 10:{a=s.binary(226,a,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),a=s.unreachable()}break}case 56:return this.compileTypeof(e,t,i);case 14:return this.compileDelete(e);case 69:return this.error(100,e.range,"a spread here - it goes into an array, an object, a rest parameter or Math.max and min"),s.unreachable();default:return assert(!1),s.unreachable()}if(!l)return a;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,a,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=p.void):s.unreachable()}compileTypeof(e,t,i){let s=e.operand,l=0,a=this.program.stringInstance,o;if(s.kind==19)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{l=this.compileExpression(s,p.auto);let c=this.currentType;if(l=this.convertExpression(l,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==a.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 7:break;case 22:case 13:if(s=(s.kind==22,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=a.type,this.module.unreachable();default:l=this.compileExpression(s,p.auto),l=this.convertExpression(l,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=a.type,l?this.module.block(null,[l,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let i=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=i.binary(16,e,i.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?i.unary(47,e):i.binary(11,i.binary(10,e,i.i32(24)),i.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?i.unary(48,e):i.binary(11,i.binary(10,e,i.i32(16)),i.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=i.binary(7,e,i.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=i.binary(7,e,i.i32(65535)));break}}return e}addDebugLocation(e,t){let i=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),i.debugLocations.set(e,t)}checkSignatureSupported(e,t){let i=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(i=!1));let l=e.parameterTypes,a=t.parameters;for(let o=0,u=l.length;o<u;++o){let c;a.length>o?c=a[o]:c=t,this.program.checkTypeSupported(l[o],c)||(i=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(i=!1),i}evaluateCondition(e){let t=ae(e);if(t==P.Unreachable)return 0;assert(t==P.I32);let s=this.module.runExpression(e,0);return s?ie(s)?1:2:0}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(vp);case 15:case 14:case 16:case 17:case 18:case 19:case 21:case 22:case 23:case 24:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 20:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 20:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Sp);case 20:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,i){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:{if(t.isReference&&t.classReference==this.program.stringInstance&&_e(i.range.source)){let l=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(l.index,e,!1),s.if(s.binary(16,s.local_get(l.index,P.I32),this.ensureStaticString("false")),s.binary(16,s.load(4,!1,s.binary(1,s.local_get(l.index,P.I32),s.i32(4)),P.I32),s.i32(0)),s.i32(0)),s.i32(0))}return t.size==64?s.binary(41,e,s.i64(0)):e}case 11:{let l=this.options;return l.shrinkLevelHint>1&&l.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let l=this.options;return l.shrinkLevelHint>1&&l.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return s.unary(20,s.ref_is_null(e));case 25:default:return this.error(1345,i.range,t.toString()),s.i32(0)}}readsUndefined(e){let t=this.currentFlow;if(e.kind==7){let i=t.lookupLocal(e.text);if(!i)return!1;if(this.undefinedLocals.has(i))return!0;let s=t.sourceFunction;if(s!=t.targetFunction||s.localsByIndex[i.index]!=i)return!1;let l=s.prototype.functionTypeNode.parameters,a=i.index-(s.signature.thisType?1:0);return a>=0&&a<l.length&&l[a].parameterKind==1}if(e.kind==22){let i=this.resolver.lookupExpression(e,t,p.auto,1);if(!i||i.kind!=11)return!1;let s=i.prototype.fieldDeclaration;if(!s)return!1;let l=s.type;return s.isOptional||l!=null&&l.kind==1&&l.orUndefined}if(e.kind==10){let i=this.resolver.lookupExpression(e.expression,t,p.auto,1);if(!i||i.kind!=4)return!1;if(i.name=="get"&&i.declaration.range.source.internalPath=="~lib/map")return!0;let s=i.functionTypeNode.returnType;return s.kind==1&&s.orUndefined}return e.kind==21?this.readsUndefined(e.expression):e.kind==8?this.readsUndefined(e.expression):!1}makeToString(e,t,i){let s=this.module,l=this.program.stringInstance.type;if(t==p.bool&&(i.kind==7||i.kind==22)){let o=this.compileGiven(i);if(o)return this.currentType=l,s.if(o,s.if(e,this.ensureStaticString("true"),this.ensureStaticString("false")),this.ensureStaticString("undefined"))}if(t==l)return e;let a=t.getClassOrWrapper(this.program);if(a){let o=a.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,i))return this.currentType=l,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,i.range,o.identifierAndSignatureRange),this.currentType=l,s.unreachable();let f=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(f.index,e,t.isManaged),this.makeToString(s.local_get(f.index,t.toRef()),t.nonNullableType,i),this.ensureStaticString(this.readsUndefined(i)?"undefined":"null"))}let c=u.returnType;return c.isStrictlyAssignableTo(l)?this.makeCallDirect(o,[e],i):(this.errorRelated(2322,i.range,o.identifierAndSignatureRange,c.toString(),l.toString()),this.currentType=l,s.unreachable())}}return this.error(2322,i.range,t.toString(),l.toString()),this.currentType=l,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let i=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let l=t.allocInstance;return this.compileFunction(l),i.call(l.internalName,[s.isWasm64?i.i64(e.nextMemoryOffset):i.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let l=t.newInstance;return this.compileFunction(l),i.call(l.internalName,[s.isWasm64?i.i64(e.nextMemoryOffset):i.i32(e.nextMemoryOffset),i.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let i=this.module,l=e.type.toRef();return assert(l==this.options.sizeTypeRef),i.if(i.unary(l==P.I64?21:20,i.local_get(t,l)),i.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let i=e.members;if(!i)return t;let s=this.module,l=this.currentFlow,a=l.isInline,o=a?l.lookupLocal(z.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(i),_=0,h=f.length;_<h;++_){let d=unchecked(f[_]);if(d.kind!=10)continue;let y=d.instance;if(!y||!y.isField||y.getBoundClassOrInterface()!=e)continue;assert(!y.isAny(8));let m=y.prototype,g=m.parameterIndex;if(g<0){c||(c=new Array),c.push(y);continue}let v=y.type.toRef();assert(!m.initializerNode);let S=assert(y.setterInstance),w=this.makeCallDirect(S,[s.local_get(o,u),s.local_get(a?l.lookupLocal(y.name).index:1+g,v)],S.identifierNode,!0);this.currentType!=p.void&&(w=s.drop(w)),t.push(w)}if(c)for(let f=0,_=c.length;f<_;++f){let h=unchecked(c[f]),d=h.type,y=h.prototype,m=y.initializerNode;assert(y.parameterIndex<0);let g=assert(h.setterInstance),x=y.fieldDeclaration,v=this.makeCallDirect(g,[s.local_get(o,u),m?this.compileText(m,x?x.type:null,y.parent,d,1):this.makeZero(d)],h.identifierNode,!0);this.currentType!=p.void&&(v=s.drop(v)),t.push(v)}return this.currentType=p.void,t}makeUndefinedNumber(){let e=this.module;return e.unary(46,e.i64(qg,Og))}makeIsUndefinedNumber(e){let t=this.module;return t.binary(40,t.unary(34,e),t.i64(qg,Og))}isUndefinedIdentifier(e){return e.kind==7&&e.text=="undefined"&&!this.currentFlow.lookup("undefined")}compileUndefined(e,t){return e.undefinedBoolean&&t==p.bool?(this.currentType=p.bool,this.module.i32(2)):t.kind==12||t==p.auto?(this.currentType=p.f64,this.makeUndefinedNumber()):t.isReference?this.compileIdentifierExpression(A.createNullExpression(e.range),t,0):t==p.void?(this.currentType=p.void,this.module.nop()):(this.currentType=t,this.makeZero(t))}optionalFieldOf(e){if(e.kind!=22||ot(e))return null;let t=this.resolver.lookupExpression(e,this.currentFlow,p.auto,1);if(!t||t.kind==10&&(t=this.resolver.resolveProperty(t,1),!t)||t.kind!=11)return null;let i=t;return i.isField&&i.isOptional?i:null}compilePresenceObject(e,t){let i=t.parent;assert(i.kind==7);let s=i.type,l=this.compileExpression(e.expression,s,33),a=this.currentFlow.getTempLocal(s);return this.presenceTemp=a,this.module.local_tee(a.index,l,s.isManaged)}makePresenceLoad(e,t){return this.module.load(1,!1,e,P.I32,t.presenceOffset)}makeFieldLoad(e,t){let i=t.type;return this.module.load(i.byteSize,i.isSignedIntegerValue,e,i.toRef(),t.memoryOffset)}compileOptionalCompare(e){let t=this.module,i=e.left,s=e.right,l=e.operator,a=l==78||l==76,o=this.isUndefinedIdentifier(i),u=this.isUndefinedIdentifier(s),c=o||i.kind==19,f=u||s.kind==19;if(c==f){if(c)return 0;let x=this.givenLocalOf(i);if(x||(x=this.givenLocalOf(s)),x){let W=this.compileExpression(i,p.bool),O=this.compileExpression(s,p.bool,1),X=a?this.makeEq(W,O,p.bool,e):this.makeNe(W,O,p.bool,e);return this.currentType=p.bool,t.if(t.local_get(x.index,P.I32),X,t.i32(a?0:1))}let v=this.optionalFieldOf(i),S=s;if((!v||v.presenceOffset<0)&&(v=this.optionalFieldOf(s),S=i),!v||v.presenceOffset<0)return 0;let w=this.compilePresenceObject(S==s?i:s,v),R=assert(this.presenceTemp),C=v.type,M=this.compileExpression(S,C,1),G=this.makeFieldLoad(t.local_get(R.index,R.type.toRef()),v),U=a?this.makeEq(G,M,C,e):this.makeNe(G,M,C,e);return this.currentType=p.bool,t.if(this.makePresenceLoad(w,v),U,t.i32(a?0:1))}if(!(o||u)&&!_e(e.range.source))return 0;let _=c?s:i,h=this.recordPresenceOf(_);if(h){let x=this.compileRecordHas(h);return this.currentType=p.bool,a?t.unary(20,x):x}let d=this.optionalFieldOf(_);if(d&&d.presenceOffset>=0){let x=this.makePresenceLoad(this.compilePresenceObject(_,d),d);return this.currentType=p.bool,a?t.unary(20,x):x}let y=this.givenLocalOf(_);if(y){let x=t.local_get(y.index,P.I32);return this.currentType=p.bool,a?t.unary(20,x):x}let m=this.compileExpression(_,p.auto),g=this.currentType;if(this.currentType=p.bool,g.kind==12){let x=this.makeIsUndefinedNumber(m);return a?x:t.unary(20,x)}if(g.isExternalReference){let x=t.ref_is_null(m);return a?x:t.unary(20,x)}return g.isReference?g.size==64?a?t.unary(21,m):t.binary(41,m,t.i64(0)):a?t.unary(20,m):t.binary(16,m,t.i32(0)):t.block(null,[t.drop(m),t.i32(a?0:1)],P.I32)}compileRecordLiteral(e,t){let i=this.module,s=this.currentFlow,l=t.type,a=l.toRef(),o=assert(t.lookupOverload(2)),u=o.signature.parameterTypes[0],c=o.signature.parameterTypes[1],f=s.getTempLocal(l),_=new Array;_.push(i.local_set(f.index,this.compileInstantiate(this.ensureConstructor(t,e),[],0,e),l.isManaged));let h=e.names,d=e.values;for(let y=0,m=h.length;y<m;++y){let g=h[y];if(g.text=="..."){let S=assert(this.methodOf(t,"__recordAssign"));_.push(this.makeCallDirect(S,[i.local_get(f.index,a),this.compileExpression(d[y],t.type,1)],g,!0));continue}let x=this.compileExpression(A.createStringLiteralExpression(g.text,g.range),u,1),v=this.compileExpression(d[y],c,1);_.push(this.makeCallDirect(o,[i.local_get(f.index,a),x,v],g,!0))}return _.push(i.local_get(f.index,a)),this.currentType=l.nonNullableType,i.flatten(_,a)}compileObjectSpread(e,t,i,s,l){let a=this.module,o=this.currentFlow,u=this.compileExpression(e,p.auto),c=this.currentType,f=c.getClass();if(!f)return this.error(2322,e.range,c.toString(),t.type.toString()),!1;let _=o.getTempLocal(c),h=c.toRef(),d=t.type.toRef();s.push(a.local_set(_.index,u,c.isManaged));let y=new Array,m=t.members;if(m)for(let x=Map_values(m),v=0,S=x.length;v<S;++v){let w=unchecked(x[v]);if(w.kind!=10||w.is(32))continue;let R=w.instance;if(!R||!R.isField)continue;let C=f.getMember(w.name);if(!C||C.kind!=10)continue;let M=this.resolver.resolveProperty(C,1);if(!M||!M.isField||!M.type.isAssignableTo(R.type))continue;let G=R.setterInstance;if(!G)continue;l.delete(R);let U=this.makeFieldLoad(a.local_get(_.index,h),M);if(y.push(this.makeCallDirect(G,[a.local_get(i.index,d),U],e,!0)),R.presenceOffset>=0){let W=M.presenceOffset>=0?this.makePresenceLoad(a.local_get(_.index,h),M):a.i32(1);y.push(a.store(1,a.local_get(i.index,d),W,P.I32,R.presenceOffset))}}if(!y.length)return!0;let g=a.flatten(y,P.None);return s.push(c.isNullableReference?a.if(a.local_get(_.index,h),g):g),!0}methodOf(e,t){let i=e.getMember(t);return!i||i.kind!=4?null:this.resolver.resolveFunction(i,null)}recordReadOf(e){for(;e.kind==21;)e=e.expression;let t=this.resolver,i=this.currentFlow;if(e.kind==10){let o=t.objectCallOf(e,i),u=o?t.mapGets.get(o):null;return u||null}if(e.kind==22){if(ot(e))return null;t.lookupExpression(e,i,p.auto,1);let o=t.recordKeys.get(e);return o||null}if(e.kind!=13)return null;let s=e,l=t.resolveExpression(s.expression,i,p.auto,1),a=l?l.getClass():null;return a&&t.isRecordClass(a)?s:null}recordPresenceOf(e){let t=this.recordReadOf(e);if(!t)return null;let i=assert(this.resolver.resolveExpression(t.expression,this.currentFlow,p.auto,1)),l=assert(assert(i.nonNullableType.getClass()).lookupOverload(1)).signature.returnType;return l.isReference||l.kind==12?null:t}compileRecordHas(e){let t=this.module,i=this.currentFlow,s=this.compileExpression(e.expression,p.auto),l=this.currentType,a=assert(l.getClass());s=this.convertExpression(s,l,a.type,!1,e.expression);let o=assert(this.methodOf(a,"has")),u=o.signature.parameterTypes[0],c=this.compileExpression(e.elementExpression,u,1),f=i.getTempLocal(a.type),_=i.getTempLocal(u);return this.recordTemps=[f,_],this.makeCallDirect(o,[t.local_tee(f.index,s,a.type.isManaged),t.local_tee(_.index,c,u.isManaged)],e)}isLenientRead(e){if(this.recordReads.has(e))return!0;if(ee(e)!=8)return!1;let t=this.currentFlow.targetFunction.localsByIndex,i=We(e);return i<t.length&&this.lenientLocals.has(t[i])}compileIn(e){let t=this.module,i=this.currentFlow,s=e.left,l=e.right;this.currentType=p.bool;let a=this.resolver.resolveExpression(l,i);if(!a)return t.unreachable();let o=a.getClass();if(o&&this.resolver.isRecordClass(o)){let c=assert(this.methodOf(o,"has")),f=this.compileExpression(l,o.type,1),_=this.compileExpression(s,c.signature.parameterTypes[0],1);return this.currentType=p.bool,this.makeCallDirect(c,[f,_],e)}let u=s;for(;u.kind==21;)u=u.expression;if(o&&u.isLiteralKind(2)){let c=u.value,f=o.getMember(c);if(f&&f.kind==10){let d=this.resolver.resolveProperty(f,1);if(d&&d.isField&&d.isOptional)return this.compileExpression(A.createBinaryExpression(79,A.createPropertyAccessExpression(l,A.createIdentifierExpression(c,u.range),e.range),A.createIdentifierExpression("undefined",u.range),e.range),p.bool)}let _=f!=null&&(f.kind==10||f.kind==4),h=this.compileExpression(l,a);return this.currentType=p.bool,t.block(null,[t.drop(h),t.i32(_?1:0)],P.I32)}if(o&&o.getMember("__recordKeys")){let c=A.createCallExpression(this.hoodMember(l,"__recordKeys"),null,[],e.range);return this.compileExpression(A.createCallExpression(this.hoodMember(c,"includes"),null,[s],e.range),p.bool)}return this.error(100,e.range,"`in` with a key in a variable - on an object of fields, write the key out"),t.unreachable()}hoodMember(e,t){let i=A.createPropertyAccessExpression(e,A.createIdentifierExpression(t,e.range),e.range);return i.isHood=!0,i}compileDelete(e){let t=this.module,i=e.operand;for(;i.kind==21;)i=i.expression;let s=this.recordReadOf(i);if(s){let l=this.compileExpression(s.expression,p.auto),a=this.currentType,o=assert(a.getClass()),u=assert(this.methodOf(o,"delete"));l=this.convertExpression(l,a,o.type,!1,s.expression);let c=this.compileExpression(s.elementExpression,u.signature.parameterTypes[0],1);return this.currentType=p.bool,t.block(null,[t.drop(this.makeCallDirect(u,[l,c],e)),t.i32(1)],P.I32)}if(i.kind==22&&this.optionalFieldOf(i)){let l=this.compileAssignment(i,A.createIdentifierExpression("undefined",i.range),p.void);return this.currentType=p.bool,t.block(null,[l,t.i32(1)],P.I32)}return this.error(100,e.range,"`delete` of this - it takes a Record's key or an optional field"),this.currentType=p.bool,t.unreachable()}compileOptionalChain(e,t,i){let s=this.module,l=this.currentFlow,a=assert(ot(e)),o=c3(a),u=this.compileExpression(o,p.auto),c=this.currentType,f=c.toRef(),_="~chain"+(this.optionalChains++).toString(),h=l.addScopedLocal(_,c);l.setLocalFlag(h.index,8);let d=s.local_tee(h.index,u,c.isManaged,f),y=0;c.kind==12?y=s.unary(20,this.makeIsUndefinedNumber(d)):c.isExternalReference?y=s.unary(20,s.ref_is_null(d)):c.isNullableReference&&(y=c.size==64?s.binary(41,d,s.i64(0)):d),Jc(a,A.createIdentifierExpression(_,o.range)),ef(a,!1);let m=i&-8;if(!y){let C=this.compileExpression(e,t,m);Jc(a,o),ef(a,!0);let G=this.currentType.toRef();return s.block(null,[s.local_set(h.index,u,c.isManaged),C],G)}let g=this.chainDefault;this.chainDefault=null;let x=l.forkThen(y);this.currentFlow=x;let v=this.compileExpression(e,t,m),S=this.currentType;if(this.currentFlow=l,l.mergeBranch(x),Jc(a,o),ef(a,!0),g&&S.isValue&&S.kind!=12&&S!=p.void){let C=l.forkElse(y);this.currentFlow=C;let M=this.compileExpression(g,S,1);return this.currentFlow=l,l.mergeBranch(C),this.chainDefaultTaken=!0,this.currentType=S,s.if(y,v,M)}if(S==p.void)return this.currentType=p.void,s.if(y,v);let w=S,R;return S.kind==12?R=this.makeUndefinedNumber():S.isReference?(w=S.asNullable(),R=this.makeZero(w)):R=this.makeZero(S),this.currentType=w,s.if(y,v,R)}makeAbort(e,t){let i=this.program,s=i.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let l=i.stringInstance,a;return e?a=this.compileExpression(e,l.type,1):a=this.makeZero(l.type),this.makeStaticAbort(a,t)}makeStaticAbort(e,t){let i=this.program,s=this.module,l=i.abortInstance;if(!l||!this.compileFunction(l))return s.unreachable();let a=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[this.makeAbortReset(s.call(l.internalName,[e,a,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],P.None)),s.unreachable()])}makeRuntimeError(e,t,i){let s=this.module,l=this.currentFlow.targetFunction,a=this.unwindsIn(l)?this.exceptionFunction("__throw",i):null;if(!a)return this.makeStaticAbort(this.ensureStaticString(t),i);let o=i.range,u=o.source,c=this.currentType,f=this.compileExpression(A.createNewExpression(A.createSimpleTypeName(e,o),null,[A.createStringLiteralExpression(t,o)],o),a.signature.parameterTypes[0],1);this.currentType=c,this.mayUnwind.add(l);let _=s.call(a.internalName,[f,this.ensureStaticString(u.normalizedPath),s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],P.I32);return s.block(null,[s.if(_,this.makeUnwind()),s.unreachable()])}makeAbortReset(e){if(!this.program.parser.usesExceptions)return e;let t=this.module,i=this.program.lookup("__tryDepth"),s=this.program.lookup("__thrown");if(!i||i.kind!=0||!s||s.kind!=0)return e;let l=this.currentFlow.targetFunction.identifierNode;return!this.compileGlobalLazy(i,l)||!this.compileGlobalLazy(s,l)?e:t.block(null,[t.global_set(i.internalName,t.i32(0)),t.global_set(s.internalName,this.makeZero(s.type)),e])}makeRuntimeNonNullCheck(e,t,i,s="Unexpected 'null' (not assigned or failed cast)"){let l=this.module,a=this.currentFlow,u=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(u,2),a.setLocalFlag(u,4);let c=this.makeRuntimeError("TypeError",s,i);if(t.isExternalReference){let f=l.local_get(u,t.toRef());this.options.hasFeature(1024)&&(f=l.ref_as_nonnull(f)),e=l.if(l.ref_is_null(l.local_tee(u,e,!1)),c,f)}else e=l.if(l.local_tee(u,e,t.isManaged),l.local_get(u,t.toRef()),c);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,i,s){assert(i.isReference&&i.nonNullableType.isAssignableTo(t));let l=this.module,a=this.currentFlow,u=a.getTempLocal(t).index,c=this.makeRuntimeError("TypeError","invalid downcast",s);return!i.isNullableReference||a.isNonnull(e,t)?e=l.if(l.call(this.prepareInstanceOf(i.classReference),[l.local_tee(u,e,t.isManaged)],P.I32),l.local_get(u,t.toRef()),c):e=l.if(l.unary(20,l.local_tee(u,e,t.isManaged)),l.usize(0),l.if(l.call(this.prepareInstanceOf(i.classReference),[l.local_get(u,t.toRef())],P.I32),l.local_get(u,t.toRef()),c)),this.currentType=i,e}};function Wg(r,n){ti=n.range.source.simplePath,br=Ue(r.name,r.parent,r.is(262144),!0);let e=n.overriddenModuleName;if(e&&(ti=e),!r.hasDecorator(128))return;let t=r.program,i=assert(Pt(9,n.decorators)),s=i.args;if(s&&s.length>0){let l=s[0];l.isLiteralKind(2)?(br=l.value,s.length>=2&&(l=s[1],l.isLiteralKind(2)?(ti=br,br=l.value,s.length>2&&t.error(2554,i.range,"2",s.length.toString())):t.error(1141,l.range))):t.error(1141,l.range)}else t.error(2555,i.range,"1","0")}function Qg(r){switch(r.kind){case 26:case 14:return!0;case 29:return Qg(r.operand);case 17:{let n=r.literalKind;return n==3?r.expressions.length==0:n==2||n==1||n==0}}return!1}function Zi(r){let n=new Ls;return n.visit(r),n.scan}function Hg(r){let n=new Ls;for(let e=0,t=r.length;e<t;++e){let i=r[e];switch(i.kind){case 56:case 52:case 58:case 60:case 53:case 61:case 43:case 36:case 37:case 38:continue}n.visit(i)}return n.scan}var co=class{constructor(n,e){this.names=n;this.depth=e}},Ls=class{constructor(){this.scan=new us;this.scopes=[];this.depth=0;this.initializing=[]}isInner(n){let e=this.scopes;for(let t=e.length-1;t>=0;--t){let i=e[t];if(i.names.has(n))return i.depth>0}return!1}enter(n){this.scopes.push(new co(n,this.depth))}leave(){this.scopes.pop()}visitAll(n){if(n)for(let e=0,t=n.length;e<t;++e)this.visit(n[e])}visitBlock(n){if(!n)return;let e=new Set;for(let t=0,i=n.length;t<i;++t)po(n[t],e);this.enter(e),this.visitAll(n),this.leave()}visit(n){if(n)switch(n.kind){case 7:{let e=n.text;if(this.depth>0&&!this.isInner(e)){let t=this.scan;t.captured.add(e),this.initializing.includes(e)&&(t.early.add(e),t.assigned.add(e))}break}case 25:case 24:{this.depth>0&&this.scan.captured.add(z.this_);break}case 17:{switch(n.literalKind){case 5:this.visitAll(n.elementExpressions);break;case 6:this.visitAll(n.values);break;case 3:{this.visit(n.tag),this.visitAll(n.expressions);break}}break}case 8:this.visit(n.expression);break;case 9:{let e=n,t=e.operator;t>=103&&t<=116&&e.left.kind==7&&this.scan.assigned.add(e.left.text),this.visit(e.left),this.visit(e.right);break}case 10:{this.visit(n.expression),this.visitAll(n.args);break}case 12:this.visitAll(n.expressions);break;case 13:{this.visit(n.expression),this.visit(n.elementExpression);break}case 15:this.visitFunction(n.declaration);break;case 16:this.visit(n.expression);break;case 18:this.visitAll(n.args);break;case 21:this.visit(n.expression);break;case 22:this.visit(n.expression);break;case 23:{this.visit(n.condition),this.visit(n.ifThen),this.visit(n.ifElse);break}case 28:case 29:{let e=n;(e.operator==87||e.operator==88)&&e.operand.kind==7&&this.scan.assigned.add(e.operand.text),this.visit(e.operand);break}case 31:this.visitBlock(n.statements);break;case 34:{this.visit(n.body),this.visit(n.condition);break}case 39:this.visit(n.expression);break;case 40:{let e=n,t=new Set,i=e.initializer;i&&po(i,t),this.enter(t),this.visit(i),this.visit(e.condition),this.visit(e.incrementor),this.visit(e.body),this.leave();break}case 41:{let e=n;this.visit(e.iterable);let t=new Set;po(e.variable,t),this.enter(t),this.visit(e.variable),this.visit(e.body),this.leave();break}case 42:{this.visit(n.condition),this.visit(n.ifTrue),this.visit(n.ifFalse);break}case 44:this.visit(n.value);break;case 45:{let e=n;this.visit(e.condition);let t=e.cases,i=new Set;for(let s=0,l=t.length;s<l;++s){let a=t[s].statements;for(let o=0,u=a.length;o<u;++o)po(a[o],i)}this.enter(i);for(let s=0,l=t.length;s<l;++s)this.visit(t[s].label),this.visitAll(t[s].statements);this.leave();break}case 46:this.visit(n.value);break;case 47:{let e=n;this.visitBlock(e.bodyStatements);let t=new Set,i=e.catchVariable;i&&t.add(i.text),this.enter(t),this.visitBlock(e.catchStatements),this.leave(),this.visitBlock(e.finallyStatements);break}case 48:{let e=n.declarations;for(let t=0,i=e.length;t<i;++t){let s=e[t];this.initializing.push(s.name.text),this.visit(s.initializer),this.initializing.pop()}break}case 49:this.visit(n.expression);break;case 50:{this.visit(n.condition),this.visit(n.body);break}case 56:this.visitFunction(n);break}}visitFunction(n){this.depth++;let e=new Set,t=n.signature.parameters;for(let i=0,s=t.length;i<s;++i)e.add(t[i].name.text);n.name.text.length&&e.add(n.name.text),_t(n.body,e),this.enter(e);for(let i=0,s=t.length;i<s;++i)this.visit(t[i].initializer);this.visit(n.body),this.leave(),this.depth--}};function po(r,n){if(r.kind==48){let e=r.declarations;for(let t=0,i=e.length;t<i;++t){let s=e[t];s.isAny(24)&&n.add(s.name.text)}}else r.kind==56&&n.add(r.name.text)}function _t(r,n){if(r)switch(r.kind){case 31:Cs(r.statements,n);break;case 48:{let e=r.declarations;for(let t=0,i=e.length;t<i;++t){let s=e[t];s.isAny(24)||n.add(s.name.text)}break}case 42:{_t(r.ifTrue,n),_t(r.ifFalse,n);break}case 40:{_t(r.initializer,n),_t(r.body,n);break}case 41:{_t(r.variable,n),_t(r.body,n);break}case 50:_t(r.body,n);break;case 34:_t(r.body,n);break;case 45:{let e=r.cases;for(let t=0,i=e.length;t<i;++t)Cs(e[t].statements,n);break}case 47:{let e=r;Cs(e.bodyStatements,n),Cs(e.catchStatements,n),Cs(e.finallyStatements,n);break}}}function Cs(r,n){if(r)for(let e=0,t=r.length;e<t;++e)_t(r[e],n)}function Xg(r){let n=r.name.text;if(!n.length)return!1;let e=new Ls;e.depth=1;let t=new Set,i=r.signature.parameters;for(let s=0,l=i.length;s<l;++s)t.add(i[s].name.text);_t(r.body,t),e.scopes.push(new co(t,1));for(let s=0,l=i.length;s<l;++s)e.visit(i[s].initializer);return e.visit(r.body),e.scan.captured.has(n)}function c3(r){switch(r.kind){case 22:return r.expression;case 13:return r.expression;case 10:return r.expression}return assert(!1),r}function Jc(r,n){switch(r.kind){case 22:{r.expression=n;break}case 13:{r.expression=n;break}case 10:{r.expression=n;break}}}function ef(r,n){switch(r.kind){case 22:{r.isOptionalChain=n;break}case 13:{r.isOptionalChain=n;break}case 10:{r.isOptionalChain=n;break}}}function f3(r){let n=r.range,e=n.source.text.substring(n.start,n.end);return e.includes("=>")||e.includes("function")}var rf=class{constructor(n,e,t,i,s,l,a){this.statement=n;this.depthLocal=e;this.bodyLabel=t;this.catchLabel=i;this.breakLabel=s;this.continueLabel=l;this.returnLabel=a;this.part=0}};function tf(r){return r.startsWith("~lib/rt/")||r.startsWith("~lib/shared/")}function _3(r,n){let e=r.getClass();return e==n.stringInstance?"text":r==p.bool?"a boolean":r.isNumericValue?"a number":e&&e.extendsPrototype(n.arrayPrototype)?"an array":"an object"}function Kg(r){let n=new Array,e=r.members;if(e)for(let t=Map_values(e),i=0,s=t.length;i<s;++i){let l=unchecked(t[i]);if(l.kind!=10||l.is(32))continue;let a=l.instance;a&&a.isField&&n.push(a)}return n.sort((t,i)=>t.memoryOffset-i.memoryOffset),n}var nf=class{constructor(n,e,t,i,s,l){this.name=n;this.fn=e;this.breakLabel=t;this.continueLabel=i;this.tryDepth=s;this.outer=l;this.broken=!1;this.continued=!1}};function h3(r){switch(r){case 81:case 104:case 82:case 105:case 84:case 106:case 85:case 108:case 86:case 109:case 83:case 107:return!0}return!1}function jg(r){let n=r.base;if(!n)return null;let e=n.prototype.declaration;return e.kind==52&&e.isShape?n:null}var $i=class r extends qi{constructor(e,t,i=!1){super(e,i);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new r(e,t).build()}visitGlobal(e,t){let i=this.sb,s=t.type,l=this.toTypeScriptType(s,1);Q(i,this.indentLevel),i.push("/** "),i.push(t.internalName),i.push(` */
269
+ `),Q(i,this.indentLevel),i.push("export "),this.esm&&i.push("declare "),i.push("const "),i.push(e),i.push(`: {
270
+ `),Q(i,++this.indentLevel),i.push("/** @type `"),i.push(s.toString()),i.push("` */\n"),Q(i,this.indentLevel),i.push("get value(): "),i.push(l),t.is(8)?i.push(`
271
+ `):(i.push(`;
272
+ `),Q(i,this.indentLevel),i.push("set value(value: "),i.push(l),i.push(`);
273
+ `)),Q(i,--this.indentLevel),i.push(`};
274
+ `)}visitEnum(e,t){let i=this.sb;Q(i,this.indentLevel),i.push("/** "),i.push(t.internalName),i.push(` */
275
+ `),Q(i,this.indentLevel++),i.push("export "),this.esm&&i.push("declare "),i.push("enum "),i.push(e),i.push(` {
276
+ `);let s=t.members;if(s)for(let l=Map_keys(s),a=0,o=l.length;a<o;++a){let u=unchecked(l[a]);assert(s.get(u)).kind==3&&(Q(i,this.indentLevel),i.push("/** @type `i32` */\n"),Q(i,this.indentLevel),i.push(u),i.push(`,
277
+ `))}Q(i,--this.indentLevel),i.push(`}
278
+ `)}visitFunction(e,t){let i=this.sb,s=t.signature;Q(i,this.indentLevel),i.push(`/**
279
+ `),Q(i,this.indentLevel),i.push(" * "),i.push(t.internalName),i.push(`
280
+ `);let l=s.parameterTypes,a=l.length;for(let c=0;c<a;++c)Q(i,this.indentLevel),i.push(" * @param "),i.push(t.getParameterName(c)),i.push(" `"),i.push(l[c].toString()),i.push("`\n");let o=s.returnType;o!=p.void&&(Q(i,this.indentLevel),i.push(" * @returns `"),i.push(o.toString()),i.push("`\n")),Q(i,this.indentLevel),i.push(` */
281
+ `),Q(i,this.indentLevel),i.push("export "),this.esm&&i.push("declare "),i.push("function "),i.push(e),i.push("(");let u=s.requiredParameters;for(let c=0;c<a;++c)c&&i.push(", "),i.push(t.getParameterName(c)),c>=u&&i.push("?"),i.push(": "),i.push(this.toTypeScriptType(l[c],0));i.push("): "),i.push(this.toTypeScriptType(o,1)),i.push(`;
282
+ `)}visitClass(e,t){}visitInterface(e,t){}visitNamespace(e,t){}visitAlias(e,t,i){}build(){let e=this.sb;this.esm||(e.push(`declare namespace __AdaptedExports {
283
+ `),++this.indentLevel),this.program.options.exportMemory&&(Q(e,this.indentLevel),e.push(`/** Exported memory */
284
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const memory: WebAssembly.Memory;
285
+ `)),this.program.options.exportTable&&(Q(e,this.indentLevel),e.push(`/** Exported table */
286
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const table: WebAssembly.Table;
287
+ `)),this.program.options.exportRuntime&&(Q(e,this.indentLevel),e.push(`// Exported runtime interface
288
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __new(size: number, id: number): number;
289
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __pin(ptr: number): number;
290
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __unpin(ptr: number): void;
291
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __collect(): void;
292
+ `),Q(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const __rtti_base: number;
293
+ `)),this.walk(),this.esm||(--this.indentLevel,e.push(`}
294
+ `));let t=this.deferredTypings;for(let i=0,s=t.length;i<s;++i)e.push(t[i]);if(!this.esm){e.push(`/** Instantiates the compiled WebAssembly module with the given imports. */
295
+ `),e.push(`export declare function instantiate(module: WebAssembly.Module, imports: {
296
+ `);let i=this.program.moduleImports;for(let s=Map_keys(i),l=0,a=s.length;l<a;++l){let o=s[l];e.push(" "),Oe(o)?e.push(o):(e.push('"'),e.push(ve(o,34)),e.push('"')),e.push(`: unknown,
297
+ `)}e.push(`}): Promise<typeof __AdaptedExports>;
298
+ `)}return e.join("")}isPlainObject(e){if(e.base&&!e.prototype.implicitlyExtendsObject)return!1;let t=e.members;if(t)for(let i=Map_values(t),s=0,l=i.length;s<l;++s){let a=i[s];if(a.isAny(1536)||a.is(524288)&&a.declaration.range!=ye.native.range)return!1}return!0}toTypeScriptType(e,t){if(e.isInternalReference){let i=new Array,s=assert(e.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))i.push("ArrayBuffer");else if(s.extendsPrototype(this.program.stringInstance.prototype))i.push("string");else if(s.extendsPrototype(this.program.arrayPrototype)){let l=s.getArrayValueType();i.push("Array<"),i.push(this.toTypeScriptType(l,t)),i.push(">")}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let l=s.getArrayValueType();i.push("ArrayLike<"),i.push(this.toTypeScriptType(l,t)),i.push(">")}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let l=s.getArrayValueType();l==p.i8?i.push("Int8Array"):l==p.u8?s.extendsPrototype(this.program.uint8ClampedArrayPrototype)?i.push("Uint8ClampedArray"):i.push("Uint8Array"):l==p.i16?i.push("Int16Array"):l==p.u16?i.push("Uint16Array"):l==p.i32?i.push("Int32Array"):l==p.u32?i.push("Uint32Array"):l==p.i64?i.push("BigInt64Array"):l==p.u64?i.push("BigUint64Array"):l==p.f32?i.push("Float32Array"):l==p.f64?i.push("Float64Array"):i.push("unknown")}else{let l=this.seenObjectTypes,a;if(l.has(s))a=assert(l.get(s)),i.push(a),this.isPlainObject(s)&&i.push(t==1?"<never>":"<undefined>");else{let o=this.isPlainObject(s);a=`${o?"__Record":"__Internref"}${s.id}`,i.push(a),l.set(s,a),o?(i.push(t==1?"<never>":"<undefined>"),this.deferredTypings.push(this.makeRecordType(s,t))):this.deferredTypings.push(this.makeInternrefType(s))}}return e.is(512)&&i.push(" | null"),i.join("")}else{if(e==p.bool)return"boolean";if(e==p.void)return"void";if(e.isNumericValue)return e.isLongIntegerValue?"bigint":"number"}return"unknown"}makeRecordType(e,t){let i=new Array,s=e.members;if(i.push("/** "),i.push(e.internalName),i.push(` */
299
+ declare interface __Record`),i.push(e.id.toString()),i.push(`<TOmittable> {
300
+ `),s)for(let l=Map_keys(s),a=0,o=l.length;a<o;++a){let u=l[a],c=assert(s.get(u));if(c.kind!=10)continue;let f=c.instance;!f||!f.isField||(i.push(" /** @type `"),i.push(f.type.toString()),i.push("` */\n "),i.push(f.name),i.push(": "),i.push(this.toTypeScriptType(f.type,t)),this.fieldAcceptsUndefined(f.type)&&i.push(" | TOmittable"),i.push(`;
301
+ `))}return i.push(`}
302
+ `),i.join("")}fieldAcceptsUndefined(e){return e.isInternalReference?e.is(512):!0}makeInternrefType(e){let t=new Array;t.push("/** "),t.push(e.internalName),t.push(` */
303
+ `),t.push("declare class __Internref"),t.push(e.id.toString()),t.push(` extends Number {
304
+ `);let i=e;do t.push(" private __nominal"),t.push(i.id.toString()),t.push(`: symbol;
305
+ `),i=i.base;while(i);return t.push(`}
306
+ `),t.join("")}};function d3(){return new Ns}function m3(r,n){r.target=n}function y3(r,n){r.runtime=n}function g3(r,n){r.noAssert=n}function b3(r,n){r.exportMemory=n}function x3(r,n){r.importMemory=n}function T3(r,n){r.initialMemory=n}function E3(r,n){r.maximumMemory=n}function A3(r,n){r.sharedMemory=n}function v3(r,n){r.importTable=n}function S3(r,n){r.exportTable=n}function I3(r,n){r.sourceMap=n}function k3(r,n){r.uncheckedBehavior=n}function F3(r,n){r.memoryBase=n}function R3(r,n){r.tableBase=n}function w3(r,n,e){let t=r.globalAliases;t||(r.globalAliases=t=new Map),t.set(n,e)}function C3(r,n){let e=r.globalAliases;e&&e.delete(n)}function P3(r,n){r.exportStart=n}function N3(r,n){r.noUnsafe=n}function B3(r,n){r.lowMemoryLimit=n}function L3(r,n){r.exportRuntime=n}var M3=32768;function z3(r,n){r.stackSize=n}function G3(r,n,e,t){r.bundleMajorVersion=n,r.bundleMinorVersion=e,r.bundlePatchVersion=t}var D3=1,U3=2,V3=4,O3=8,q3=16,W3=32,K3=64,j3=128,Q3=256,H3=512,X3=1024,Z3=2048,Y3=4096,$3=8192,J3=16384,e0=32768,t0=65535,r0=fo;function i0(r,n,e){r.setFeature(n,e)}function n0(r,n,e){r.optimizeLevelHint=n,r.shrinkLevelHint=e}function s0(r,n){r.basenameHint=n}function l0(r,n){r.bindingsHint=n}function a0(r,n){r.pedantic=n}function o0(r,n){r.debugInfo=n}function u0(r){return new ns(r)}function p0(r){return r.diagnosticsOffset<r.diagnostics.length?r.diagnostics[r.diagnosticsOffset++]:null}function c0(r,n){return r.getSource(n)}function f0(r){return r.code}function _0(r){return r.category}function h0(r){return r.message}function d0(r){return r.range}function m0(r){return r.relatedRange}function y0(r){return r.start}function g0(r){return r.end}function b0(r){return r.source}function x0(r){return r.normalizedPath}function T0(r){return r.category==1}function E0(r){return r.category==2}function A0(r){return r.category==3}function v0(r,n,e,t=!1){r.parser.parseFile(n,e,t)}function S0(r){return r.parser.nextFile()}function I0(r,n){return r.parser.getDependee(n)}function k0(r){r.initialize()}function F0(r){return r.parser.finish(),new Bs(r).compile()}function R0(r,n){return $i.build(r,n)}function w0(r,n){return Ki.build(r,n)}function C0(r){return r.ref}function P0(r){return r.validate()}function N0(r,n,e,t=!1,i=!1){r.optimize(n,e,t,i)}var sf=class r{constructor(){this.sb=[];this.indentLevel=0}static build(n){let e=new r;return e.visitNode(n),e.finish()}visitNode(n){switch(n.kind){case 0:{this.visitSource(n);break}case 1:{this.visitNamedTypeNode(n);break}case 2:{this.visitFunctionTypeNode(n);break}case 3:{this.visitTupleTypeNode(n);break}case 5:{this.visitTypeParameter(n);break}case 14:case 19:case 24:case 25:case 26:case 27:case 7:{this.visitIdentifierExpression(n);break}case 8:{this.visitAssertionExpression(n);break}case 9:{this.visitBinaryExpression(n);break}case 10:{this.visitCallExpression(n);break}case 11:{this.visitClassExpression(n);break}case 12:{this.visitCommaExpression(n);break}case 13:{this.visitElementAccessExpression(n);break}case 15:{this.visitFunctionExpression(n);break}case 16:{this.visitInstanceOfExpression(n);break}case 17:{this.visitLiteralExpression(n);break}case 18:{this.visitNewExpression(n);break}case 21:{this.visitParenthesizedExpression(n);break}case 22:{this.visitPropertyAccessExpression(n);break}case 23:{this.visitTernaryExpression(n);break}case 28:{this.visitUnaryPostfixExpression(n);break}case 29:{this.visitUnaryPrefixExpression(n);break}case 31:{this.visitBlockStatement(n);break}case 32:{this.visitBreakStatement(n);break}case 33:{this.visitContinueStatement(n);break}case 34:{this.visitDoStatement(n);break}case 35:{this.visitEmptyStatement(n);break}case 36:{this.visitExportStatement(n);break}case 37:{this.visitExportDefaultStatement(n);break}case 38:{this.visitExportImportStatement(n);break}case 39:{this.visitExpressionStatement(n);break}case 40:{this.visitForStatement(n);break}case 41:{this.visitForOfStatement(n);break}case 42:{this.visitIfStatement(n);break}case 43:{this.visitImportStatement(n);break}case 44:{this.visitReturnStatement(n);break}case 45:{this.visitSwitchStatement(n);break}case 46:{this.visitThrowStatement(n);break}case 47:{this.visitTryStatement(n);break}case 48:{this.visitVariableStatement(n);break}case 50:{this.visitWhileStatement(n);break}case 51:{this.visitModuleDeclaration(n);break}case 52:{this.visitClassDeclaration(n);break}case 53:{this.visitEnumDeclaration(n);break}case 54:{this.visitEnumValueDeclaration(n);break}case 55:{this.visitFieldDeclaration(n);break}case 56:{this.visitFunctionDeclaration(n);break}case 57:{this.visitImportDeclaration(n);break}case 58:{this.visitInterfaceDeclaration(n);break}case 59:{this.visitMethodDeclaration(n);break}case 60:{this.visitNamespaceDeclaration(n);break}case 61:{this.visitTypeDeclaration(n);break}case 62:{this.visitVariableDeclaration(n);break}case 63:{this.serializeDecorator(n);break}case 64:{this.visitExportMember(n);break}case 6:{this.serializeParameter(n);break}case 65:{this.visitSwitchCase(n);break}case 66:{this.visitIndexSignature(n);break}default:assert(!1)}}visitSource(n){let e=n.statements;for(let t=0,i=e.length;t<i;++t)this.visitNodeAndTerminate(e[t])}visitTypeNode(n){switch(n.kind){case 1:{this.visitNamedTypeNode(n);break}case 2:{this.visitFunctionTypeNode(n);break}case 3:{this.visitTupleTypeNode(n);break}default:assert(!1)}}visitTypeName(n){this.visitIdentifierExpression(n.identifier);let e=this.sb,t=n.next;for(;t;)e.push("."),this.visitIdentifierExpression(t.identifier),t=t.next}visitNamedTypeNode(n){this.visitTypeName(n.name);let e=n.typeArguments;if(e){let t=e.length,i=this.sb;if(t){i.push("<"),this.visitTypeNode(e[0]);for(let s=1;s<t;++s)i.push(", "),this.visitTypeNode(e[s]);i.push(">")}n.isNullable&&i.push(" | null")}}visitFunctionTypeNode(n){let e=n.isNullable,t=this.sb;t.push(e?"((":"(");let i=n.explicitThisType;i&&(t.push("this: "),this.visitTypeNode(i));let s=n.parameters,l=s.length;if(l){i&&t.push(", "),this.serializeParameter(s[0]);for(let o=1;o<l;++o)t.push(", "),this.serializeParameter(s[o])}let a=n.returnType;a?(t.push(") => "),this.visitTypeNode(a)):t.push(") => void"),e&&t.push(") | null")}visitTupleTypeNode(n){let e=this.sb;e.push("[");let t=n.elements,i=n.elementNames,s=t.length;if(s){let l=i?i[0]:null;l&&(this.visitIdentifierExpression(l),e.push(": ")),this.visitTypeNode(t[0]);for(let a=1;a<s;++a)e.push(", "),l=i?i[a]:null,l&&(this.visitIdentifierExpression(l),e.push(": ")),this.visitTypeNode(t[a])}e.push("]"),n.isNullable&&e.push(" | null")}visitTypeParameter(n){this.visitIdentifierExpression(n.name);let e=n.extendsType;e&&(this.sb.push(" extends "),this.visitTypeNode(e));let t=n.defaultType;t&&(this.sb.push("="),this.visitTypeNode(t))}visitIdentifierExpression(n){n.isQuoted?this.visitStringLiteral(n.text):this.sb.push(n.text)}visitArrayLiteralExpression(n){let e=this.sb;e.push("[");let t=n.elementExpressions,i=t.length;if(i){let s=t[0];s&&this.visitNode(s);for(let l=1;l<i;++l)s=t[l],e.push(", "),s&&this.visitNode(s)}e.push("]")}visitObjectLiteralExpression(n){let e=this.sb,t=n.names,i=n.values,s=t.length;if(assert(s==i.length),s){e.push(`{
307
+ `),Q(e,++this.indentLevel),this.visitNode(t[0]),e.push(": "),this.visitNode(i[0]);for(let l=1;l<s;++l){e.push(`,
308
+ `),Q(e,this.indentLevel);let a=t[l],o=i[l];a==o?this.visitNode(a):(this.visitNode(a),e.push(": "),this.visitNode(o))}e.push(`
309
+ `),Q(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitAssertionExpression(n){let e=this.sb;switch(n.assertionKind){case 0:{e.push("<"),this.visitTypeNode(assert(n.toType)),e.push(">"),this.visitNode(n.expression);break}case 1:{this.visitNode(n.expression),e.push(" as "),this.visitTypeNode(assert(n.toType));break}case 2:{this.visitNode(n.expression),e.push("!");break}case 3:{this.visitNode(n.expression),e.push(" as const");break}default:assert(!1)}}visitBinaryExpression(n){let e=this.sb;this.visitNode(n.left),e.push(" "),e.push(we(n.operator)),e.push(" "),this.visitNode(n.right)}visitCallExpression(n){this.visitNode(n.expression),this.visitArguments(n.typeArguments,n.args)}visitArguments(n,e){let t=this.sb;if(n){let s=n.length;if(s){t.push("<"),this.visitTypeNode(n[0]);for(let l=1;l<s;++l)t.push(", "),this.visitTypeNode(n[l]);t.push(">(")}}else t.push("(");let i=e.length;if(i){this.visitNode(e[0]);for(let s=1;s<i;++s)t.push(", "),this.visitNode(e[s])}t.push(")")}visitClassExpression(n){let e=n.declaration;this.visitClassDeclaration(e)}visitCommaExpression(n){let e=n.expressions,t=assert(e.length);this.visitNode(e[0]);let i=this.sb;for(let s=1;s<t;++s)i.push(","),this.visitNode(e[s])}visitElementAccessExpression(n){let e=this.sb;this.visitNode(n.expression),e.push("["),this.visitNode(n.elementExpression),e.push("]")}visitFunctionExpression(n){let e=n.declaration;e.arrowKind?assert(e.name.text.length==0):e.name.text.length?this.sb.push("function "):this.sb.push("function"),this.visitFunctionCommon(e)}visitLiteralExpression(n){switch(n.literalKind){case 0:{this.visitFloatLiteralExpression(n);break}case 1:{this.visitIntegerLiteralExpression(n);break}case 2:{this.visitStringLiteralExpression(n);break}case 3:{this.visitTemplateLiteralExpression(n);break}case 4:{this.visitRegexpLiteralExpression(n);break}case 5:{this.visitArrayLiteralExpression(n);break}case 6:{this.visitObjectLiteralExpression(n);break}default:{assert(!1);break}}}visitFloatLiteralExpression(n){this.sb.push(n.value.toString())}visitInstanceOfExpression(n){this.visitNode(n.expression),this.sb.push(" instanceof "),this.visitTypeNode(n.isType)}visitIntegerLiteralExpression(n){let e=n.range,t=e.source.text.startsWith("-",e.start);this.sb.push(i64_to_string(n.value,!t))}visitStringLiteral(n){let e=this.sb;e.push('"'),e.push(ve(n,34)),e.push('"')}visitStringLiteralExpression(n){this.visitStringLiteral(n.value)}visitTemplateLiteralExpression(n){let e=this.sb,t=n.tag,i=n.parts,s=n.expressions;t&&this.visitNode(t),e.push("`"),e.push(ve(i[0],96)),assert(i.length==s.length+1);for(let l=0,a=s.length;l<a;++l)e.push("${"),this.visitNode(s[l]),e.push("}"),e.push(ve(i[l+1],96));e.push("`")}visitRegexpLiteralExpression(n){let e=this.sb;e.push("/"),e.push(n.pattern),e.push("/"),e.push(n.patternFlags)}visitNewExpression(n){this.sb.push("new "),this.visitTypeName(n.typeName),this.visitArguments(n.typeArguments,n.args)}visitParenthesizedExpression(n){let e=this.sb;e.push("("),this.visitNode(n.expression),e.push(")")}visitPropertyAccessExpression(n){this.visitNode(n.expression),this.sb.push("."),this.visitIdentifierExpression(n.property)}visitTernaryExpression(n){let e=this.sb;this.visitNode(n.condition),e.push(" ? "),this.visitNode(n.ifThen),e.push(" : "),this.visitNode(n.ifElse)}visitUnaryExpression(n){switch(n.kind){case 28:{this.visitUnaryPostfixExpression(n);break}case 29:{this.visitUnaryPrefixExpression(n);break}default:assert(!1)}}visitUnaryPostfixExpression(n){this.visitNode(n.operand),this.sb.push(we(n.operator))}visitUnaryPrefixExpression(n){this.sb.push(we(n.operator)),this.visitNode(n.operand)}visitNodeAndTerminate(n){this.visitNode(n);let e=this.sb;if(!e.length||n.kind==48||n.kind==39)e.push(`;
310
+ `);else{let t=e[e.length-1],i=t.length-1;i>=0&&(t.charCodeAt(i)==125||t.charCodeAt(i)==59)?e.push(`
311
+ `):e.push(`;
312
+ `)}}visitBlockStatement(n){let e=this.sb,t=n.statements,i=t.length;if(i){e.push(`{
313
+ `);let s=++this.indentLevel;for(let l=0;l<i;++l)Q(e,s),this.visitNodeAndTerminate(t[l]);Q(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitBreakStatement(n){let e=n.label;e?(this.sb.push("break "),this.visitIdentifierExpression(e)):this.sb.push("break")}visitContinueStatement(n){let e=n.label;e?(this.sb.push("continue "),this.visitIdentifierExpression(e)):this.sb.push("continue")}visitClassDeclaration(n,e=!1){let t=n.decorators;if(t)for(let f=0,_=t.length;f<_;++f)this.serializeDecorator(t[f]);let i=this.sb;e?i.push("export default "):this.serializeExternalModifiers(n),n.is(128)&&i.push("abstract "),n.name.text.length?(i.push("class "),this.visitIdentifierExpression(n.name)):i.push("class");let s=n.typeParameters;if(s!=null&&s.length>0){i.push("<"),this.visitTypeParameter(s[0]);for(let f=1,_=s.length;f<_;++f)i.push(", "),this.visitTypeParameter(s[f]);i.push(">")}let l=n.extendsType;l&&(i.push(" extends "),this.visitTypeNode(l));let a=n.implementsTypes;if(a){let f=a.length;if(f){i.push(" implements "),this.visitTypeNode(a[0]);for(let _=1;_<f;++_)i.push(", "),this.visitTypeNode(a[_])}}let o=n.indexSignature,u=n.members,c=u.length;if(o||c){i.push(` {
314
+ `);let f=++this.indentLevel;o&&(Q(i,f),this.visitNodeAndTerminate(o));for(let _=0,h=u.length;_<h;++_){let d=u[_];(d.kind!=55||d.parameterIndex<0)&&(Q(i,f),this.visitNodeAndTerminate(d))}Q(i,--this.indentLevel),i.push("}")}else i.push(" {}")}visitDoStatement(n){let e=this.sb;e.push("do "),this.visitNode(n.body),n.body.kind==31?e.push(" while ("):(e.push(`;
315
+ `),Q(e,this.indentLevel),e.push("while (")),this.visitNode(n.condition),e.push(")")}visitEmptyStatement(n){}visitEnumDeclaration(n,e=!1){let t=this.sb;e?t.push("export default "):this.serializeExternalModifiers(n),n.is(8)&&t.push("const "),t.push("enum "),this.visitIdentifierExpression(n.name);let s=n.values.length;if(s){t.push(` {
316
+ `);let l=++this.indentLevel;Q(t,l),this.visitEnumValueDeclaration(n.values[0]);for(let a=1;a<s;++a)t.push(`,
317
+ `),Q(t,l),this.visitEnumValueDeclaration(n.values[a]);t.push(`
318
+ `),Q(t,--this.indentLevel),t.push("}")}else t.push(" {}")}visitEnumValueDeclaration(n){this.visitIdentifierExpression(n.name);let e=n.initializer;e&&(this.sb.push(" = "),this.visitNode(e))}visitExportImportStatement(n){let e=this.sb;e.push("export import "),this.visitIdentifierExpression(n.externalName),e.push(" = "),this.visitIdentifierExpression(n.name)}visitExportMember(n){this.visitIdentifierExpression(n.localName),n.exportedName.text!=n.localName.text&&(this.sb.push(" as "),this.visitIdentifierExpression(n.exportedName))}visitExportStatement(n){let e=this.sb;n.isDeclare&&e.push("declare ");let t=n.members;if(t==null)e.push("export *");else if(t.length>0){let s=t.length;e.push(`export {
319
+ `);let l=++this.indentLevel;Q(e,l),this.visitExportMember(t[0]);for(let a=1;a<s;++a)e.push(`,
320
+ `),Q(e,l),this.visitExportMember(t[a]);--this.indentLevel,e.push(`
321
+ }`)}else e.push("export {}");let i=n.path;i&&(e.push(" from "),this.visitStringLiteralExpression(i)),e.push(";")}visitExportDefaultStatement(n){let e=n.declaration;switch(e.kind){case 53:{this.visitEnumDeclaration(e,!0);break}case 56:{this.visitFunctionDeclaration(e,!0);break}case 52:{this.visitClassDeclaration(e,!0);break}case 58:{this.visitInterfaceDeclaration(e,!0);break}case 60:{this.visitNamespaceDeclaration(e,!0);break}default:assert(!1)}}visitExpressionStatement(n){this.visitNode(n.expression)}visitFieldDeclaration(n){let e=n.decorators;if(e)for(let l=0,a=e.length;l<a;++l)this.serializeDecorator(e[l]);this.serializeAccessModifiers(n),this.visitIdentifierExpression(n.name);let t=this.sb;n.flags&16384&&t.push("!");let i=n.type;i&&(t.push(": "),this.visitTypeNode(i));let s=n.initializer;s&&(t.push(" = "),this.visitNode(s))}visitForStatement(n){let e=this.sb;e.push("for (");let t=n.initializer;t&&this.visitNode(t);let i=n.condition;i?(e.push("; "),this.visitNode(i)):e.push(";");let s=n.incrementor;s?(e.push("; "),this.visitNode(s)):e.push(";"),e.push(") "),this.visitNode(n.body)}visitForOfStatement(n){let e=this.sb;e.push("for ("),this.visitNode(n.variable),e.push(" of "),this.visitNode(n.iterable),e.push(") "),this.visitNode(n.body)}visitFunctionDeclaration(n,e=!1){let t=this.sb,i=n.decorators;if(i)for(let s=0,l=i.length;s<l;++s)this.serializeDecorator(i[s]);e?t.push("export default "):(this.serializeExternalModifiers(n),this.serializeAccessModifiers(n)),n.name.text.length?t.push("function "):t.push("function"),this.visitFunctionCommon(n)}visitFunctionCommon(n){let e=this.sb;this.visitIdentifierExpression(n.name);let t=n.signature,i=n.typeParameters;if(i){let a=i.length;if(a){e.push("<"),this.visitTypeParameter(i[0]);for(let o=1;o<a;++o)e.push(", "),this.visitTypeParameter(i[o]);e.push(">")}}if(n.arrowKind==2){let a=t.parameters;assert(a.length==1),assert(!t.explicitThisType),this.serializeParameter(a[0])}else{e.push("(");let a=t.parameters,o=a.length,u=t.explicitThisType;if(u&&(e.push("this: "),this.visitTypeNode(u)),o){u&&e.push(", "),this.serializeParameter(a[0]);for(let c=1;c<o;++c)e.push(", "),this.serializeParameter(a[c])}}let s=n.body,l=t.returnType;n.arrowKind?s?(n.arrowKind==2?assert(pe(l)):pe(l)?e.push(")"):(e.push("): "),this.visitTypeNode(l)),e.push(" => "),this.visitNode(s)):(assert(!pe(l)),e.push(" => "),this.visitTypeNode(l)):(!pe(l)&&!n.isAny(528384)?(e.push("): "),this.visitTypeNode(l)):e.push(")"),s&&(e.push(" "),this.visitNode(s)))}visitIfStatement(n){let e=this.sb;e.push("if ("),this.visitNode(n.condition),e.push(") ");let t=n.ifTrue;this.visitNode(t),t.kind!=31&&e.push(`;
322
+ `);let i=n.ifFalse;i&&(t.kind==31?e.push(" else "):e.push("else "),this.visitNode(i))}visitImportDeclaration(n){let e=n.foreignName,t=n.name;this.visitIdentifierExpression(e),e.text!=t.text&&(this.sb.push(" as "),this.visitIdentifierExpression(t))}visitImportStatement(n){let e=this.sb;e.push("import ");let t=n.declarations,i=n.namespaceName;if(t){let s=t.length;if(s){e.push(`{
323
+ `);let l=++this.indentLevel;Q(e,l),this.visitImportDeclaration(t[0]);for(let a=1;a<s;++a)e.push(`,
324
+ `),Q(e,l),this.visitImportDeclaration(t[a]);--this.indentLevel,e.push(`
325
+ } from `)}else e.push("{} from ")}else i&&(e.push("* as "),this.visitIdentifierExpression(i),e.push(" from "));this.visitStringLiteralExpression(n.path)}visitIndexSignature(n){let e=this.sb;e.push("[key: "),this.visitTypeNode(n.keyType),e.push("]: "),this.visitTypeNode(n.valueType)}visitInterfaceDeclaration(n,e=!1){let t=n.decorators;if(t)for(let u=0,c=t.length;u<c;++u)this.serializeDecorator(t[u]);let i=this.sb;e?i.push("export default "):this.serializeExternalModifiers(n),i.push("interface "),this.visitIdentifierExpression(n.name);let s=n.typeParameters;if(s!=null&&s.length>0){i.push("<"),this.visitTypeParameter(s[0]);for(let u=1,c=s.length;u<c;++u)i.push(", "),this.visitTypeParameter(s[u]);i.push(">")}let l=n.extendsType;l&&(i.push(" extends "),this.visitTypeNode(l)),i.push(` {
326
+ `);let a=++this.indentLevel,o=n.members;for(let u=0,c=o.length;u<c;++u)Q(i,a),this.visitNodeAndTerminate(o[u]);--this.indentLevel,i.push("}")}visitMethodDeclaration(n){let e=n.decorators;if(e)for(let t=0,i=e.length;t<i;++t)this.serializeDecorator(e[t]);this.serializeAccessModifiers(n),n.is(2048)?this.sb.push("get "):n.is(4096)&&this.sb.push("set "),this.visitFunctionCommon(n)}visitNamespaceDeclaration(n,e=!1){let t=n.decorators;if(t)for(let a=0,o=t.length;a<o;++a)this.serializeDecorator(t[a]);let i=this.sb;e?i.push("export default "):this.serializeExternalModifiers(n),i.push("namespace "),this.visitIdentifierExpression(n.name);let s=n.members;if(s.length){i.push(` {
327
+ `);let a=++this.indentLevel;for(let o=0,u=s.length;o<u;++o)Q(i,a),this.visitNodeAndTerminate(s[o]);Q(i,--this.indentLevel),i.push("}")}else i.push(" {}")}visitReturnStatement(n){let e=n.value;e?(this.sb.push("return "),this.visitNode(e)):this.sb.push("return")}visitSwitchCase(n){let e=this.sb,t=n.label;t?(e.push("case "),this.visitNode(t),e.push(`:
328
+ `)):e.push(`default:
329
+ `);let i=n.statements,s=i.length;if(s){let l=++this.indentLevel;Q(e,l),this.visitNodeAndTerminate(i[0]);for(let a=1;a<s;++a)Q(e,l),this.visitNodeAndTerminate(i[a]);--this.indentLevel}}visitSwitchStatement(n){let e=this.sb;e.push("switch ("),this.visitNode(n.condition),e.push(`) {
330
+ `);let t=++this.indentLevel,i=n.cases;for(let s=0,l=i.length;s<l;++s)Q(e,t),this.visitSwitchCase(i[s]),e.push(`
331
+ `);--this.indentLevel,e.push("}")}visitThrowStatement(n){this.sb.push("throw "),this.visitNode(n.value)}visitTryStatement(n){let e=this.sb;e.push(`try {
332
+ `);let t=++this.indentLevel,i=n.bodyStatements;for(let a=0,o=i.length;a<o;++a)Q(e,t),this.visitNodeAndTerminate(i[a]);let s=n.catchVariable;if(s){Q(e,t-1),e.push("} catch ("),this.visitIdentifierExpression(s),e.push(`) {
333
+ `);let a=n.catchStatements;if(a)for(let o=0,u=a.length;o<u;++o)Q(e,t),this.visitNodeAndTerminate(a[o])}let l=n.finallyStatements;if(l){Q(e,t-1),e.push(`} finally {
334
+ `);for(let a=0,o=l.length;a<o;++a)Q(e,t),this.visitNodeAndTerminate(l[a])}Q(e,t-1),e.push("}")}visitTypeDeclaration(n){let e=n.decorators;if(e)for(let s=0,l=e.length;s<l;++s)this.serializeDecorator(e[s]);let t=this.sb;this.serializeExternalModifiers(n),t.push("type "),this.visitIdentifierExpression(n.name);let i=n.typeParameters;if(i){let s=i.length;if(s){t.push("<");for(let l=0;l<s;++l)this.visitTypeParameter(i[l]);t.push(">")}}t.push(" = "),this.visitTypeNode(n.type)}visitModuleDeclaration(n){let e=this.sb;n.flags&4&&e.push("declare "),e.push('module "'),e.push(ve(n.moduleName,34)),e.push('"')}visitVariableDeclaration(n){this.visitIdentifierExpression(n.name);let e=n.type,t=this.sb;n.flags&16384&&t.push("!"),e&&(t.push(": "),this.visitTypeNode(e));let i=n.initializer;i&&(t.push(" = "),this.visitNode(i))}visitVariableStatement(n){let e=n.decorators;if(e)for(let a=0,o=e.length;a<o;++a)this.serializeDecorator(e[a]);let t=this.sb,i=n.declarations,s=assert(i.length),l=i[0];this.serializeExternalModifiers(l),t.push(l.is(8)?"const ":l.is(16)?"let ":"var "),this.visitVariableDeclaration(n.declarations[0]);for(let a=1;a<s;++a)t.push(", "),this.visitVariableDeclaration(n.declarations[a])}visitWhileStatement(n){let e=this.sb;e.push("while ("),this.visitNode(n.condition);let t=n.body;t.isEmpty?e.push(")"):(e.push(") "),this.visitNode(t))}serializeDecorator(n){let e=this.sb;e.push("@"),this.visitNode(n.name);let t=n.args;if(t){e.push("(");let i=t.length;if(i){this.visitNode(t[0]);for(let s=1;s<i;++s)e.push(", "),this.visitNode(t[s])}e.push(`)
335
+ `)}else e.push(`
336
+ `);Q(e,this.indentLevel)}serializeParameter(n){let e=this.sb,t=n.parameterKind,i=n.implicitFieldDeclaration;i&&this.serializeAccessModifiers(i),t==2&&e.push("..."),this.visitIdentifierExpression(n.name);let s=n.type,l=n.initializer;s&&(t==1&&!l&&e.push("?"),pe(s)||(e.push(": "),this.visitTypeNode(s))),l&&(e.push(" = "),this.visitNode(l))}serializeExternalModifiers(n){let e=this.sb;n.is(2)?e.push("export "):n.is(1)?e.push("import "):n.is(4)&&e.push("declare ")}serializeAccessModifiers(n){let e=this.sb;n.is(4)&&e.push("declare "),n.is(256)?e.push("public "):n.is(512)?e.push("private "):n.is(1024)&&e.push("protected "),n.is(32)?e.push("static "):n.is(128)&&e.push("abstract "),n.is(64)&&e.push("readonly ")}finish(){let n=this.sb.join("");return this.sb=[],n}};var _Q=lf;export{sf as ASTBuilder,Pr as ArrayLiteralExpression,nr as ArrowKind,Il as AssertionExpression,Ii as AssertionKind,Mp as AtomicRMWOp,kl as BinaryExpression,La as BinaryModule,wi as BinaryOp,ta as BlockStatement,ag as BrOnOp,ra as BreakStatement,Fl as CallExpression,or as Class,Pn as ClassDeclaration,Rl as ClassExpression,ps as ClassPrototype,us as ClosureScan,wl as CommaExpression,Fp as CommentKind,Sl as CommentNode,je as CommonFlags,z as CommonNames,Jl as CompiledExpression,Bs as Compiler,rc as ConditionKind,uc as ConstantValueKind,Hc as Constraints,Cl as ConstructorExpression,ia as ContinueStatement,M3 as DEFAULT_STACK_SIZE,Xe as DeclarationStatement,ur as DeclaredElement,zt as DecoratorFlags,wt as DecoratorKind,vl as DecoratorNode,Tl as DiagnosticCategory,mt as DiagnosticCode,Qe as DiagnosticEmitter,xl as DiagnosticMessage,na as DoStatement,ss as Element,Pl as ElementAccessExpression,gt as ElementKind,sa as EmptyStatement,ro as Enum,la as EnumDeclaration,io as EnumValue,aa as EnumValueDeclaration,ca as ExportDefaultStatement,oa as ExportImportStatement,ua as ExportMember,Ps as ExportNames,pa as ExportStatement,xe as Expression,Lr as ExpressionId,Ma as ExpressionRunnerFlags,fa as ExpressionStatement,Lp as ExternalKind,t0 as FEATURES_ALL,r0 as FEATURES_DEFAULT,O3 as FEATURE_BULK_MEMORY,K3 as FEATURE_EXCEPTION_HANDLING,$3 as FEATURE_EXTENDED_CONST,X3 as FEATURE_GC,Z3 as FEATURE_MEMORY64,H3 as FEATURE_MULTI_VALUE,U3 as FEATURE_MUTABLE_GLOBALS,V3 as FEATURE_NONTRAPPING_F2I,Q3 as FEATURE_REFERENCE_TYPES,Y3 as FEATURE_RELAXED_SIMD,e0 as FEATURE_SHARED_EVERYTHING,D3 as FEATURE_SIGN_EXTENSION,q3 as FEATURE_SIMD,J3 as FEATURE_STRINGREF,j3 as FEATURE_TAIL_CALLS,W3 as FEATURE_THREADS,Zl as FalseExpression,er as Feature,Bp as FeatureFlags,_a as FieldDeclaration,tc as FieldFlags,as as File,Nl as FloatLiteralExpression,Lt as Flow,ja as FlowFlags,da as ForOfStatement,ha as ForStatement,Je as Function,Bn as FunctionDeclaration,Bl as FunctionExpression,Le as FunctionPrototype,Cr as FunctionTypeNode,ol as GETTER_PREFIX,Mr as Global,Ee as HeapTypeRef,Ve as INDEX_SUFFIX,dp as INNER_DELIMITER,hp as INSTANCE_DELIMITER,He as IdentifierExpression,wp as IdentifierHandling,ma as IfStatement,ya as ImportDeclaration,Yi as ImportNames,Ln as ImportStatement,Jn as IndexSignature,ea as IndexSignatureNode,Ll as InstanceOfExpression,Ml as IntegerLiteralExpression,es as Interface,ga as InterfaceDeclaration,no as InterfacePrototype,Ki as JSBuilder,dt as LIBRARY_PREFIX,Qy as LIBRARY_SUBST,yt as LiteralExpression,Ct as LiteralKind,Ke as Local,Xn as LocalFlags,Mt as LoweredCall,ig as MemoryOrder,Ri as MemorySegment,Nr as MethodDeclaration,Bt as Module,Sa as ModuleDeclaration,wr as NamedTypeNode,os as Namespace,ba as NamespaceDeclaration,zl as NewExpression,A as Node,Rt as NodeKind,Gl as NullExpression,Dl as ObjectLiteralExpression,Ul as OmittedExpression,Ce as OperatorKind,Ns as Options,Yx as PARENT_SUBST,lt as PATH_DELIMITER,Pa as PRIVATE_NAME_PREFIX,Dn as PackedType,oc as Parameter,Br as ParameterKind,Ai as ParameterNode,Vl as ParenthesizedExpression,is as Parser,Nn as Pattern,Si as PatternElement,yg as Precedence,ns as Program,$n as Property,Ol as PropertyAccessExpression,Gi as PropertyPrototype,ue as Range,ng as RefAsOp,ql as RegexpLiteralExpression,Ba as Relooper,Za as ReportMode,Yn as Resolver,xa as ReturnStatement,ll as Runtime,Xc as RuntimeFeatures,ul as SETTER_PREFIX,zp as SIMDExtractOp,Up as SIMDLoadOp,Vp as SIMDLoadStoreLaneOp,Gp as SIMDReplaceOp,Dp as SIMDShiftOp,Op as SIMDTernaryOp,Sn as STATIC_DELIMITER,tr as STUB_DELIMITER,ec as SideEffects,ge as Signature,ye as Source,ki as SourceKind,Ca as State,fe as Statement,pg as StringEncodeOp,cg as StringEqOp,Kl as StringLiteralExpression,ug as StringMeasureOp,og as StringNewOp,jl as SuperExpression,Un as SwitchBuilder,Ta as SwitchCase,Ea as SwitchStatement,$i as TSDBuilder,hi as Target,Ql as TemplateLiteralExpression,Wl as TernaryExpression,Hl as ThisExpression,Aa as ThrowStatement,Fi as Token,zn as Tokenizer,Xl as TrueExpression,va as TryStatement,El as TupleTypeNode,p as Type,Np as TypeBuilderErrorReason,Ia as TypeDeclaration,rt as TypeDefinition,bt as TypeFlags,lr as TypeKind,Ei as TypeName,Ti as TypeNode,Al as TypeParameterNode,P as TypeRef,Dt as TypedElement,di as Typeinfo,al as TypeinfoFlags,Cn as UnaryExpression,Vn as UnaryOp,Yl as UnaryPostfixExpression,$l as UnaryPrefixExpression,Qa as UncheckedBehavior,ka as VariableDeclaration,vi as VariableLikeDeclarationStatement,zr as VariableLikeElement,Fa as VariableStatement,Ra as VoidStatement,wa as WhileStatement,sg as WideIntAddSubOp,lg as WideIntMulOp,w3 as addGlobalAlias,de as allocPtrArray,w0 as buildJS,R0 as buildTSD,F0 as compile,Ze as createType,_Q as default,fo as defaultFeatures,Jy as diagnosticCategoryToColor,kp as diagnosticCategoryToString,pl as diagnosticCodeToString,Hn as ensureType,qp as expandType,_i as featureToString,Ka as fieldPathKey,Pt as findDecorator,eg as formatDiagnostic,eg as formatDiagnosticMessage,Xg as functionUsesItsName,$e as getBinaryLeft,Pi as getBinaryOp,De as getBinaryRight,C0 as getBinaryenModuleRef,jn as getBlockChildAt,Kn as getBlockChildCount,Wn as getBlockName,w2 as getBreakCondition,R2 as getBreakName,Be as getCallOperandAt,pt as getCallOperandCount,Bi as getCallTarget,Se as getConstValueF32,Ie as getConstValueF64,ie as getConstValueI32,Ne as getConstValueI64High,ke as getConstValueI64Low,Wp as getConstValueInteger,Kp as getConstValueV128,Eg as getDefaultParameterName,I0 as getDependee,_0 as getDiagnosticCategory,f0 as getDiagnosticCode,h0 as getDiagnosticMessage,d0 as getDiagnosticRange,m0 as getDiagnosticRelatedRange,P2 as getDropValue,ee as getExpressionId,ae as getExpressionType,L2 as getFunctionBody,$p as getFunctionName,M2 as getFunctionParams,z2 as getFunctionResults,G2 as getFunctionVars,Ci as getGlobalGetName,V2 as getGlobalInit,D2 as getGlobalName,U2 as getGlobalType,Oa as getIfCondition,Ni as getIfFalse,Qn as getIfTrue,jp as getLoadBytes,Qp as getLoadOffset,Hp as getLoadPtr,We as getLocalGetIndex,Da as getLocalSetIndex,Ua as getLocalSetValue,F2 as getLoopBody,k2 as getLoopName,B2 as getMemoryGrowDelta,g0 as getRangeEnd,b0 as getRangeSource,y0 as getRangeStart,N2 as getReturnValue,C2 as getSelectCondition,Yp as getSelectElse,Zp as getSelectThen,Li as getSideEffects,c0 as getSource,x0 as getSourceNormalizedPath,A2 as getStoreBytes,v2 as getStoreOffset,S2 as getStorePtr,I2 as getStoreValue,O2 as getTagName,q2 as getTagParams,W2 as getTagResults,qn as getUnaryOp,Va as getUnaryValue,k0 as initializeProgram,Ga as isConstExpressionNaN,E2 as isConstNaN,za as isConstNegZero,ut as isConstNonZero,Ye as isConstZero,ls as isDeclaredElement,A0 as isError,Jp as isGlobalMutable,Cp as isIllegalVariableIdentifier,T0 as isInfo,Xp as isLoadSigned,On as isLocalTee,fg as isNullableType,_e as isPluginSource,Ya as isTupleClass,pe as isTypeOmitted,Ha as isTypedElement,E0 as isWarning,Ue as mangleInternalName,Mn as mangleInternalPath,qa as mustPreserveSideEffects,d3 as newOptions,u0 as newProgram,p0 as nextDiagnostic,S0 as nextFile,we as operatorTokenToString,N0 as optimize,ot as optionalChainLink,v0 as parse,qe as readString,C3 as removeGlobalAlias,ji as runtimeFunctions,Qi as runtimeGlobals,Zi as scanClosures,Hg as scanTopLevelClosures,s0 as setBasenameHint,l0 as setBindingsHint,G3 as setBundleVersion,o0 as setDebugInfo,b3 as setExportMemory,L3 as setExportRuntime,P3 as setExportStart,S3 as setExportTable,i0 as setFeature,x3 as setImportMemory,v3 as setImportTable,T3 as setInitialMemory,B3 as setLowMemoryLimit,E3 as setMaximumMemory,F3 as setMemoryBase,g3 as setNoAssert,N3 as setNoUnsafe,n0 as setOptimizeLevelHints,a0 as setPedantic,y3 as setRuntime,A3 as setSharedMemory,I3 as setSourceMap,z3 as setStackSize,R3 as setTableBase,m3 as setTarget,k3 as setUncheckedBehavior,tg as tokenFromKeyword,rg as tokenIsAlsoIdentifier,xt as typesToRefs,Xa as typesToString,Ip as util,P0 as validate};
337
+ //# sourceMappingURL=assemblyscript.js.map