@carbonenginejs/runtime-resource 0.10.0 → 0.11.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 (254) hide show
  1. package/dist/format/effect/effectPermutationGraph.js +257 -0
  2. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  3. package/dist/format/effect/effectReflectionPackage.js +636 -0
  4. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  5. package/dist/format/effect/sha256.js +114 -0
  6. package/dist/format/effect/sha256.js.map +1 -0
  7. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  8. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  9. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  10. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  11. package/dist/formats/dxbc/core/container.js +169 -0
  12. package/dist/formats/dxbc/core/container.js.map +1 -0
  13. package/dist/formats/dxbc/core/decoder.js +789 -0
  14. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  15. package/dist/formats/dxbc/core/errors.js +19 -0
  16. package/dist/formats/dxbc/core/errors.js.map +1 -0
  17. package/dist/formats/dxbc/core/helpers.js +220 -0
  18. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  19. package/dist/formats/dxbc/core/opcodes.js +45 -0
  20. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  21. package/dist/formats/dxbc/core/program.js +91 -0
  22. package/dist/formats/dxbc/core/program.js.map +1 -0
  23. package/dist/formats/dxbc/core/signature.js +172 -0
  24. package/dist/formats/dxbc/core/signature.js.map +1 -0
  25. package/dist/formats/dxbc/index.js +2 -0
  26. package/dist/formats/dxbc/index.js.map +1 -0
  27. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  28. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  29. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  30. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  31. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  32. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  33. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  34. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  35. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  36. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  37. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  38. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  39. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  40. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  41. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  42. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  43. package/dist/formats/hlsl/core/analysis.js +51 -0
  44. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  45. package/dist/formats/hlsl/core/helpers.js +270 -0
  46. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  47. package/dist/formats/hlsl/core/json.js +284 -0
  48. package/dist/formats/hlsl/core/json.js.map +1 -0
  49. package/dist/formats/hlsl/core/metadata.js +327 -0
  50. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  51. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  52. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  53. package/dist/formats/hlsl/core/render-states.js +280 -0
  54. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  55. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  56. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  57. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  58. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  59. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  60. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  61. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  62. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  63. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  64. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  65. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  66. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  67. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  68. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  69. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  70. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  71. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  72. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  73. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  74. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  75. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  76. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  77. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  78. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  79. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  80. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  81. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  82. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  83. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  84. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  85. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  86. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  87. package/dist/formats/hlsl/index.js +2 -0
  88. package/dist/formats/hlsl/index.js.map +1 -0
  89. package/dist/formats/hlsl/portable.js +2 -0
  90. package/dist/formats/hlsl/portable.js.map +1 -0
  91. package/dist/formats/index.js +4 -0
  92. package/dist/formats/index.js.map +1 -1
  93. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  94. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  95. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  96. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  97. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  98. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  99. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  100. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  101. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  102. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  103. package/dist/formats/webgl/core/effectPackage.js +789 -0
  104. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  105. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  106. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  107. package/dist/formats/webgl/core/errors.js +27 -0
  108. package/dist/formats/webgl/core/errors.js.map +1 -0
  109. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  110. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  111. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  112. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  113. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  114. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  115. package/dist/formats/webgl/core/helpers.js +306 -0
  116. package/dist/formats/webgl/core/helpers.js.map +1 -0
  117. package/dist/formats/webgl/index.js +2 -0
  118. package/dist/formats/webgl/index.js.map +1 -0
  119. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  120. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  121. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  122. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  123. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  124. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  125. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  126. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  127. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  128. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  129. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  130. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  131. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  132. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  133. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  134. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  135. package/dist/formats/webgpu/core/errors.js +20 -0
  136. package/dist/formats/webgpu/core/errors.js.map +1 -0
  137. package/dist/formats/webgpu/core/helpers.js +448 -0
  138. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  139. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  140. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  141. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  142. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  143. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  144. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  145. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  146. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  147. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  148. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  149. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  150. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  151. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  152. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  153. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  154. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  155. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  156. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  157. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  158. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  159. package/dist/formats/webgpu/core/schema.js +4 -0
  160. package/dist/formats/webgpu/core/schema.js.map +1 -0
  161. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  162. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  163. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  164. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  165. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  166. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  167. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  168. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  169. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  170. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  171. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  172. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  173. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  174. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  175. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  176. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  177. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  178. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  179. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  180. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  181. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  182. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  183. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  184. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  185. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  186. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  187. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  188. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  189. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  190. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  191. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  192. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  193. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  194. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  195. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  196. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  197. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  198. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  199. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  200. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  201. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  202. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  203. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  204. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  205. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  206. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  207. package/dist/formats/webgpu/index.js +2 -0
  208. package/dist/formats/webgpu/index.js.map +1 -0
  209. package/dist/resource/shader/Tr2EffectRes.js +159 -150
  210. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  211. package/dist/resource/shader/Tr2MaterialArea.js +23 -28
  212. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  213. package/dist/resource/shader/Tr2MaterialMesh.js +21 -27
  214. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  215. package/dist/resource/shader/Tr2MaterialRes.js +24 -29
  216. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  217. package/dist/resource/shader/Tr2Shader.js +45 -39
  218. package/dist/resource/shader/Tr2Shader.js.map +1 -1
  219. package/dist/resource/shader/Tr2ShaderPermutation.js +30 -32
  220. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
  221. package/dist/resource/shader/reflection/Tr2EffectConstant.js +113 -78
  222. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  223. package/dist/resource/shader/reflection/Tr2EffectDefine.js +17 -23
  224. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
  225. package/dist/resource/shader/reflection/Tr2EffectDescription.js +23 -29
  226. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  227. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +44 -40
  228. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  229. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +82 -86
  230. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  231. package/dist/resource/shader/reflection/Tr2EffectResource.js +55 -61
  232. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  233. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +49 -45
  234. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  235. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +25 -30
  236. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  237. package/dist/resource/shader/reflection/Tr2Pass.js +30 -32
  238. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  239. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +21 -26
  240. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  241. package/docs/formats/README.md +4 -0
  242. package/docs/formats/provenance.md +11 -3
  243. package/docs/reference/classes/formats.md +440 -0
  244. package/format-notices/dxbc/LICENSE +21 -0
  245. package/format-notices/dxbc/NOTICE +20 -0
  246. package/format-notices/hlsl/LICENSE +21 -0
  247. package/format-notices/hlsl/NOTICE +25 -0
  248. package/format-notices/webgl/LICENSE +21 -0
  249. package/format-notices/webgl/NOTICE +35 -0
  250. package/format-notices/webgpu/LICENSE +21 -0
  251. package/format-notices/webgpu/NOTICE +31 -0
  252. package/package.json +6 -1
  253. package/dist/resource/shader/portableValidation.js +0 -461
  254. package/dist/resource/shader/portableValidation.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lowerComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerComputeProgram.js"],"sourcesContent":["import { requireRefactoringAllowed } from \"./precisionControls.js\";\nimport {\n validateExactComputeEnvelope,\n validateReturnTypeMirror,\n validateSm50ResourceExtensions\n} from \"./validateExactComputeIr.js\";\nimport { validateFixedHandleBinding, validateFixedHandleOperand } from \"./validateHandleOperand.js\";\nimport {\n isSkinVerticesComputeProfile,\n lowerSkinVerticesComputeProgram\n} from \"./lowerSkinVerticesComputeProgram.js\";\nimport {\n isCreateHistogramsComputeProfile,\n lowerCreateHistogramsComputeProgram\n} from \"./lowerCreateHistogramsComputeProgram.js\";\nimport {\n isMergeHistogramsComputeProfile,\n lowerMergeHistogramsComputeProgram\n} from \"./lowerMergeHistogramsComputeProgram.js\";\nimport {\n isParticleClearInitializeCandidate,\n isParticleClearResetCandidate,\n lowerParticleClearInitializeComputeProgram,\n lowerParticleClearResetComputeProgram\n} from \"./lowerParticleClearComputePrograms.js\";\nimport {\n isParticleEmitComputeCandidate,\n lowerParticleEmitComputeProgram\n} from \"./lowerParticleEmitComputeProgram.js\";\nimport {\n isSortStepComputeProfile,\n lowerSortStepComputeProgram\n} from \"./lowerSortStepComputeProgram.js\";\nimport {\n isSortComputeProfile,\n lowerSortComputeProgram\n} from \"./lowerSortComputeProgram.js\";\nimport {\n isSortInnerComputeProfile,\n lowerSortInnerComputeProgram\n} from \"./lowerSortInnerComputeProgram.js\";\n\nconst COMPONENTS = Object.freeze([ \"x\", \"y\", \"z\", \"w\" ]);\nconst DECLARATION_OPCODES = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_resource\",\n \"dcl_unordered_access_view_typed\",\n \"dcl_temps\",\n \"dcl_thread_group\"\n]);\nconst ARITHMETIC_RULES = Object.freeze({\n imul: Object.freeze({\n rule: \"signed-integer\",\n resultType: \"int32\",\n destinationOperand: 1,\n sourceOperands: Object.freeze([ 2, 3 ]),\n sourceType: \"int32\",\n operator: \"*\"\n }),\n umax: Object.freeze({\n rule: \"unsigned-integer\",\n resultType: \"uint32\",\n destinationOperand: 0,\n sourceOperands: Object.freeze([ 1, 2 ]),\n sourceType: \"uint32\",\n functionName: \"max\"\n }),\n iadd: Object.freeze({\n rule: \"signed-integer\",\n resultType: \"int32\",\n destinationOperand: 0,\n sourceOperands: Object.freeze([ 1, 2 ]),\n sourceType: \"int32\",\n operator: \"+\"\n }),\n ushr: Object.freeze({\n rule: \"unsigned-integer\",\n resultType: \"uint32\",\n destinationOperand: 0,\n sourceOperands: Object.freeze([ 1, 2 ]),\n sourceType: \"uint32\",\n operator: \">>\"\n })\n});\nconst SUPPORTED_OPCODES = new Set([\n \"ld\", ...Object.keys(ARITHMETIC_RULES), \"store_uav_typed\", \"ret\"\n]);\nconst KIND_ORDER = Object.freeze({ \"sampled-resource\": 0, \"storage-resource\": 1 });\nconst KIND_PREFIX = Object.freeze({ \"sampled-resource\": \"t\", \"storage-resource\": \"u\" });\n\nfunction deepFreeze(value)\n{\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n for (const entry of Object.values(value)) deepFreeze(entry);\n return Object.freeze(value);\n}\n\nfunction scalarTypeName(type)\n{\n return ({ int32: \"i32\", uint32: \"u32\", bitpattern32: \"u32\" })[type] || null;\n}\n\nfunction canonicalRef(ref)\n{\n return `${ref?.valueId || \"\"}.${ref?.component || \"\"}`;\n}\n\nfunction sameRef(left, right)\n{\n return canonicalRef(left) === canonicalRef(right);\n}\n\nfunction registerKey(operand)\n{\n return `${operand.typeName}[${operand.registerIndex}]`;\n}\n\nfunction validateCommonOperand(operand, instruction, operandIndex)\n{\n if (!operand\n || (operand.modifierName ?? \"none\") !== \"none\"\n || (operand.minPrecisionName ?? \"default\") !== \"default\"\n || operand.nonUniform === true)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} requires an unmodified, uniform, default-precision operand ${operandIndex}`);\n }\n}\n\nfunction validateFixedRegisterOperand(operand, instruction, operandIndex, typeName)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n const index = operand.indices?.[0];\n if (operand.typeName !== typeName\n || !Number.isInteger(operand.registerIndex) || operand.registerIndex < 0\n || operand.indices?.length !== 1\n || index?.relative\n || index?.values?.length !== 1\n || index.values[0] !== operand.registerIndex)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} has an invalid fixed ${typeName} identity`);\n }\n return operand;\n}\n\nfunction validateDestinationOperand(operand, instruction, operandIndex)\n{\n validateFixedRegisterOperand(operand, instruction, operandIndex, \"temp\");\n if (operand.registerIndex !== 0\n || operand.componentCount !== 4\n || !COMPONENTS.includes(operand.mask)\n || operand.swizzle || operand.selected)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} requires one canonical temp[0] destination lane`);\n }\n return operand.mask;\n}\n\nfunction validateScalarTempSource(operand, instruction, operandIndex)\n{\n validateFixedRegisterOperand(operand, instruction, operandIndex, \"temp\");\n if (operand.registerIndex !== 0\n || operand.componentCount !== 4\n || !COMPONENTS.includes(operand.selected)\n || operand.mask || operand.swizzle)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} requires one selected temp[0] source lane`);\n }\n return operand.selected;\n}\n\nfunction immediateBits(operand, instruction, operandIndex, replicated)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n const values = operand.immediateValues || [];\n if (operand.typeName !== \"immediate32\"\n || operand.registerIndex !== null\n || operand.indices?.length\n || operand.mask || operand.swizzle || operand.selected\n || ![ 1, 4 ].includes(operand.componentCount)\n || values.length !== operand.componentCount\n || values.some((value) => !Number.isInteger(value?.uint32)))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} requires canonical immediate32 data`);\n }\n const bits = values.map((value) => value.uint32 >>> 0);\n if (replicated && (bits.length !== 4 || bits.some((value) => value !== bits[0])))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} requires four replicated immediate lanes`);\n }\n if (!replicated && bits.length !== 1)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} operand ${operandIndex} requires one immediate lane`);\n }\n return bits[0];\n}\n\nfunction immediateCode(bits, type)\n{\n const literal = `0x${(bits >>> 0).toString(16).padStart(8, \"0\")}u`;\n return type === \"int32\" ? `bitcast<i32>(${literal})` : literal;\n}\n\nfunction validateValueRef(program, ref, expectedRegister, expectedComponent)\n{\n const value = program.values.find((entry) => entry.id === ref?.valueId);\n if (!value\n || value.register !== expectedRegister\n || ref.component !== expectedComponent\n || !value.writeMask.includes(expectedComponent))\n {\n throw new Error(`WGSL compute register dataflow references an incompatible ${expectedRegister}.${expectedComponent} value`);\n }\n if (value.origin === \"undefined-register\")\n {\n throw new Error(`WGSL compute reads undefined ${expectedRegister}.${expectedComponent}`);\n }\n return value;\n}\n\nfunction validateRead(program, instruction, operandIndex, operand, components, state, expectedReads)\n{\n const register = registerKey(operand);\n const matches = instruction.dataflow.reads.filter((entry) =>\n entry.kind === \"register-read\" && entry.operandIndex === operandIndex);\n if (matches.length !== 1)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has inconsistent read metadata for operand ${operandIndex}`);\n }\n const read = matches[0];\n if (read.register !== register\n || read.components?.length !== components.length\n || read.refs?.length !== components.length\n || components.some((component, index) =>\n read.components[index] !== component\n || !sameRef(read.refs[index], state.get(`${register}.${component}`))))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has stale or mismatched SSA reads for operand ${operandIndex}`);\n }\n components.forEach((component, index) =>\n validateValueRef(program, read.refs[index], register, component));\n expectedReads.add(read);\n return read;\n}\n\nfunction validateNoUnexpectedReads(instruction, expectedReads)\n{\n if (instruction.dataflow.reads.length !== expectedReads.size\n || instruction.dataflow.reads.some((read) => !expectedReads.has(read)))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has unexpected register or index reads`);\n }\n}\n\nfunction validateWrite(program, instruction, operandIndex, operand, state, writtenValueIds)\n{\n const writes = instruction.dataflow.writes;\n if (writes.length !== 1 || writes[0].operandIndex !== operandIndex)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} requires one destination write at operand ${operandIndex}`);\n }\n const write = writes[0];\n const register = registerKey(operand);\n const component = operand.mask;\n const value = program.values.find((entry) => entry.id === write.valueId);\n if (write.register !== register || write.mask !== component\n || !value || value.origin !== \"instruction-write\"\n || value.instructionIndex !== instruction.index\n || value.register !== register || value.writeMask !== component\n || writtenValueIds.has(value.id))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has inconsistent destination SSA metadata`);\n }\n const previousComponents = COMPONENTS.filter((entry) => entry !== component);\n if (!write.previous\n || Object.keys(write.previous).sort().join(\"\") !== previousComponents.slice().sort().join(\"\")\n || previousComponents.some((entry) =>\n !sameRef(write.previous[entry], state.get(`${register}.${entry}`)))\n || Object.keys(write.result || {}).sort().join(\"\") !== COMPONENTS.slice().sort().join(\"\")\n || !sameRef(write.result[component], { valueId: value.id, component })\n || previousComponents.some((entry) =>\n !sameRef(write.result[entry], state.get(`${register}.${entry}`))))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has inconsistent previous/result SSA lanes`);\n }\n writtenValueIds.add(value.id);\n state.set(`${register}.${component}`, { valueId: value.id, component });\n return { write, value };\n}\n\nfunction valueStorageType(value, component)\n{\n const type = value?.componentTypes?.[component];\n if (!scalarTypeName(type))\n {\n throw new Error(`WGSL compute value ${value?.id || \"<missing>\"}.${component} has an unresolved type`);\n }\n return type;\n}\n\nfunction reinterpretCode(code, fromType, toType)\n{\n const from = scalarTypeName(fromType);\n const to = scalarTypeName(toType);\n if (!from || !to)\n {\n throw new Error(`WGSL compute cannot reinterpret ${fromType} to ${toType}`);\n }\n return from === to ? code : `bitcast<${to}>(${code})`;\n}\n\nfunction readCode(program, instruction, operandIndex, expectedType, state, expectedReads)\n{\n const operand = instruction.operands[operandIndex];\n if (operand?.typeName === \"immediate32\")\n {\n return immediateCode(immediateBits(operand, instruction, operandIndex, false), expectedType);\n }\n const component = validateScalarTempSource(operand, instruction, operandIndex);\n const read = validateRead(program, instruction, operandIndex, operand, [ component ], state, expectedReads);\n const value = validateValueRef(program, read.refs[0], read.register, component);\n return reinterpretCode(value.id, valueStorageType(value, component), expectedType);\n}\n\nfunction replicatedStoreCode(program, instruction, operandIndex, state, expectedReads)\n{\n const operand = instruction.operands[operandIndex];\n if (operand?.typeName === \"immediate32\")\n {\n return immediateCode(immediateBits(operand, instruction, operandIndex, true), \"uint32\");\n }\n validateFixedRegisterOperand(operand, instruction, operandIndex, \"temp\");\n if (operand.registerIndex !== 0\n || operand.componentCount !== 4 || operand.mask || operand.selected\n || operand.swizzle?.length !== 4\n || Array.from(operand.swizzle).some((component) => component !== operand.swizzle[0]))\n {\n throw new Error(`WGSL compute store instruction ${instruction.index} requires four replicated source lanes from temp[0]`);\n }\n const component = operand.swizzle[0];\n if (!COMPONENTS.includes(component))\n {\n throw new Error(`WGSL compute store instruction ${instruction.index} selects an invalid source lane`);\n }\n const components = Array(4).fill(component);\n const read = validateRead(program, instruction, operandIndex, operand, components, state, expectedReads);\n const value = validateValueRef(program, read.refs[0], read.register, component);\n return reinterpretCode(value.id, valueStorageType(value, component), \"uint32\");\n}\n\nfunction expectedOperandTypes(instruction)\n{\n if (instruction.opcodeName === \"ld\")\n {\n return [\n [ \"destination\", \"int32\" ],\n [ \"source\", \"uint32\" ],\n [ \"source\", \"unknown\" ]\n ];\n }\n const arithmetic = ARITHMETIC_RULES[instruction.opcodeName];\n if (arithmetic)\n {\n return instruction.operands.map((_, operandIndex) => [\n operandIndex === arithmetic.destinationOperand ? \"destination\" : \"source\",\n operandIndex === arithmetic.destinationOperand || arithmetic.sourceOperands.includes(operandIndex)\n ? arithmetic.resultType\n : \"unknown\"\n ]);\n }\n if (instruction.opcodeName === \"store_uav_typed\")\n {\n return [\n [ \"source\", \"unknown\" ],\n [ \"source\", \"uint32\" ],\n [ \"source\", \"uint32\" ]\n ];\n }\n return [];\n}\n\nfunction expectedRule(instruction)\n{\n if (instruction.opcodeName === \"ld\") return [ \"texture-load\", \"int32\" ];\n const arithmetic = ARITHMETIC_RULES[instruction.opcodeName];\n if (arithmetic) return [ arithmetic.rule, arithmetic.resultType ];\n if (instruction.opcodeName === \"store_uav_typed\") return [ \"typed-uav-store\", \"unknown\" ];\n return [ \"untyped\", \"unknown\" ];\n}\n\nfunction bitcastKey(entry)\n{\n if (entry.kind === \"read-bitcast\")\n {\n return [\n entry.kind, entry.operandIndex, entry.componentIndex, entry.valueId,\n entry.component, entry.from, entry.to\n ].join(\":\");\n }\n if (entry.kind === \"result-bitcast\")\n {\n return [\n entry.kind, entry.operandIndex, entry.valueId, entry.component,\n entry.from, entry.to\n ].join(\":\");\n }\n return [\n entry.kind, entry.operandIndex, entry.component, entry.from, entry.to,\n entry.uint32 >>> 0\n ].join(\":\");\n}\n\nfunction validateTypeInfo(program, instruction)\n{\n const [ rule, resultType ] = expectedRule(instruction);\n const operandTypes = expectedOperandTypes(instruction);\n const typeInfo = instruction.typeInfo;\n if (typeInfo?.kind !== \"instruction-types\"\n || typeInfo.rule !== rule\n || typeInfo.resultType !== resultType\n || typeInfo.conversion !== null\n || typeInfo.conditionProjection !== null\n || typeInfo.operandTypes?.length !== operandTypes.length\n || operandTypes.some(([ role, expectedType ], operandIndex) =>\n {\n const actual = typeInfo.operandTypes[operandIndex];\n return actual?.operandIndex !== operandIndex\n || actual.role !== role\n || actual.expectedType !== expectedType\n || actual.modifier !== \"none\"\n || actual.minPrecision !== \"default\";\n }))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has inconsistent type metadata`);\n }\n\n const required = [];\n for (const read of instruction.dataflow.reads)\n {\n if (read.kind !== \"register-read\")\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has unsupported index-read type metadata`);\n }\n const expected = operandTypes[read.operandIndex]?.[1];\n if (!expected || expected === \"unknown\") continue;\n read.refs.forEach((ref, componentIndex) =>\n {\n const value = program.values.find((entry) => entry.id === ref.valueId);\n const storage = valueStorageType(value, ref.component);\n if (storage !== expected)\n {\n required.push({\n kind: \"read-bitcast\",\n operandIndex: read.operandIndex,\n componentIndex,\n valueId: ref.valueId,\n component: ref.component,\n from: storage,\n to: expected\n });\n }\n });\n }\n if (resultType !== \"unknown\")\n {\n for (const write of instruction.dataflow.writes)\n {\n for (const component of write.mask)\n {\n const value = program.values.find((entry) => entry.id === write.valueId);\n const storage = valueStorageType(value, component);\n if (storage !== resultType)\n {\n required.push({\n kind: \"result-bitcast\",\n operandIndex: write.operandIndex,\n valueId: write.valueId,\n component,\n from: resultType,\n to: storage\n });\n }\n }\n }\n }\n operandTypes.forEach(([, expectedType ], operandIndex) =>\n {\n const operand = instruction.operands[operandIndex];\n if (operand?.typeName !== \"immediate32\" || expectedType !== \"int32\") return;\n operand.immediateValues.forEach((value, componentIndex) =>\n {\n required.push({\n kind: \"immediate-bitcast\",\n operandIndex,\n component: COMPONENTS[componentIndex],\n from: \"uint32\",\n to: \"int32\",\n uint32: value.uint32 >>> 0\n });\n });\n });\n const requiredKeys = required.map(bitcastKey).sort();\n const actualKeys = (typeInfo.bitcasts || []).map(bitcastKey).sort();\n if (new Set(actualKeys).size !== actualKeys.length\n || requiredKeys.length !== actualKeys.length\n || requiredKeys.some((entry, index) => entry !== actualKeys[index]))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has inconsistent bitcast metadata`);\n }\n}\n\nfunction bindingRegister(binding)\n{\n return binding.range?.lowerBound ?? binding.registerIndex;\n}\n\nfunction bindingSpace(binding)\n{\n return binding.range?.registerSpace ?? 0;\n}\n\nfunction bindingIdentity(binding)\n{\n return `${binding.resourceKind}:${bindingSpace(binding)}:${bindingRegister(binding)}`;\n}\n\nfunction validateBindingRange(binding)\n{\n const registerIndex = binding.registerIndex;\n const range = binding.range;\n if (!Number.isInteger(registerIndex) || registerIndex < 0\n || range?.bindingModel !== \"sm5.0-register\"\n || range.rangeId !== null\n || range.lowerBound !== registerIndex\n || range.upperBound !== registerIndex\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0)\n {\n throw new Error(`WGSL compute binding ${binding.id || \"<unknown>\"} requires one fixed SM5.0 register`);\n }\n}\n\nfunction validateBindingDeclaration(program, binding, opcodeName, operandType, returnType)\n{\n const declarations = program.declarations.filter((entry) =>\n entry.dxbcOffset === binding.declarationOffset);\n if (declarations.length !== 1 || declarations[0].opcodeName !== opcodeName)\n {\n throw new Error(`WGSL compute binding ${binding.id} has inconsistent declaration identity`);\n }\n const declaration = declarations[0];\n const data = declaration.data;\n const operand = declaration.operands?.[0];\n validateReturnTypeMirror(\n binding.returnType,\n `WGSL compute binding ${binding.id}`);\n validateReturnTypeMirror(\n data?.returnType,\n `WGSL compute declaration at DXBC offset ${declaration.dxbcOffset}`);\n validateBindingRange(binding);\n if (binding.operandType !== operandType\n || binding.resourceDimension !== \"buffer\"\n || binding.structureStride !== null\n || binding.accessPattern !== null\n || binding.returnType?.returnTypeNames?.length !== 4\n || binding.returnType.returnTypeNames.some((entry) => entry !== returnType)\n || data?.registerIndex !== binding.registerIndex\n || data.resourceDimensionName !== \"buffer\"\n || (opcodeName === \"dcl_resource\" && data.sampleCount !== 0)\n || (opcodeName === \"dcl_unordered_access_view_typed\"\n && data.globallyCoherent !== false)\n || data.returnType?.returnTypeNames?.length !== 4\n || data.returnType.returnTypeNames.some((entry) => entry !== returnType)\n || declaration.operands?.length !== 1)\n {\n throw new Error(`WGSL compute binding ${binding.id} has an unsupported typed-buffer declaration`);\n }\n validateFixedRegisterOperand(\n operand,\n { index: `declaration@${declaration.dxbcOffset}` },\n 0,\n operandType);\n if (operand.componentCount !== 0 || operand.mask || operand.swizzle || operand.selected)\n {\n throw new Error(`WGSL compute binding ${binding.id} declaration has a malformed handle operand`);\n }\n}\n\nfunction portableBinding(binding)\n{\n return {\n identity: binding.identity,\n resourceKind: binding.resourceKind,\n generatedSymbol: binding.generatedSymbol,\n registerSpace: binding.registerSpace,\n registerIndex: binding.registerIndex,\n type: binding.type,\n buffer: binding.buffer\n };\n}\n\nfunction applyBindingPlan(bindings, bindingPlan)\n{\n if (bindingPlan === null || bindingPlan === undefined) return bindings;\n if (bindingPlan?.format !== \"CJS_WGSL_BINDING_PLAN\"\n || bindingPlan.formatVersion !== 2\n || !Array.isArray(bindingPlan.bindings)\n || bindingPlan.bindings.length !== bindings.length)\n {\n throw new TypeError(\"WGSL compute binding plan must provide exact version 2 compute coverage\");\n }\n const planned = new Map();\n const slots = new Set();\n for (const entry of bindingPlan.bindings)\n {\n const identity = `${entry.resourceKind}:${entry.registerSpace}:${entry.registerIndex}`;\n const slot = `${entry.group}:${entry.binding}`;\n if (entry.identity !== identity\n || entry.scopeIdentity !== `${identity}@compute`\n || entry.stages?.length !== 1 || entry.stages[0] !== \"compute\"\n || !Number.isInteger(entry.group) || entry.group < 0\n || !Number.isInteger(entry.binding) || entry.binding < 0\n || planned.has(identity) || slots.has(slot))\n {\n throw new Error(`WGSL compute binding plan contains an invalid entry ${entry.identity || identity}`);\n }\n planned.set(identity, entry);\n slots.add(slot);\n }\n return bindings.map((binding) =>\n {\n const entry = planned.get(binding.identity);\n if (!entry\n || JSON.stringify(portableBinding(binding)) !== JSON.stringify({\n identity: entry.identity,\n resourceKind: entry.resourceKind,\n generatedSymbol: entry.generatedSymbol,\n registerSpace: entry.registerSpace,\n registerIndex: entry.registerIndex,\n type: entry.type,\n buffer: entry.buffer\n }))\n {\n throw new Error(`WGSL compute binding plan layout for ${binding.identity} does not match the shader declaration`);\n }\n return { ...binding, scopeIdentity: entry.scopeIdentity, group: entry.group, binding: entry.binding };\n });\n}\n\n/**\n * Lowers the two scalar typed-buffer bindings used by the first compute slice.\n *\n * @param {object} program Frozen CJS shader IR.\n * @param {object|null} [bindingPlan] Optional exact compute-only binding plan.\n * @returns {object[]} Frozen WebGPU binding records.\n */\nexport function lowerComputeBindingLayout(program, bindingPlan = null)\n{\n if (program?.format !== \"CJS_SHADER_IR\" || program.formatVersion !== 1)\n {\n throw new TypeError(\"WGSL compute binding lowering expects CJS_SHADER_IR version 1 input\");\n }\n const bindings = Array.from(program.bindings || []).sort((left, right) =>\n bindingSpace(left) - bindingSpace(right)\n || (KIND_ORDER[left.resourceKind] ?? 99) - (KIND_ORDER[right.resourceKind] ?? 99)\n || bindingRegister(left) - bindingRegister(right)\n || left.declarationOffset - right.declarationOffset);\n if (bindings.length !== 2\n || bindings.filter((entry) => entry.resourceKind === \"sampled-resource\").length !== 1\n || bindings.filter((entry) => entry.resourceKind === \"storage-resource\").length !== 1)\n {\n throw new Error(\"WGSL compute body slice requires exactly one typed SRV and one typed UAV\");\n }\n const identities = new Set();\n const lowered = bindings.map((binding, bindingIndex) =>\n {\n const identity = bindingIdentity(binding);\n if (identities.has(identity))\n {\n throw new Error(`WGSL compute binding layout contains duplicate ${identity}`);\n }\n identities.add(identity);\n const sampled = binding.resourceKind === \"sampled-resource\";\n validateBindingDeclaration(\n program,\n binding,\n sampled ? \"dcl_resource\" : \"dcl_unordered_access_view_typed\",\n sampled ? \"resource\" : \"uav\",\n sampled ? \"sint\" : \"uint\");\n const registerIndex = bindingRegister(binding);\n const registerSpace = bindingSpace(binding);\n return {\n kind: \"wgsl-binding\",\n id: binding.id,\n identity,\n scopeIdentity: `${identity}@compute`,\n resourceKind: binding.resourceKind,\n generatedSymbol: `${KIND_PREFIX[binding.resourceKind]}${registerIndex}`,\n registerSpace,\n registerIndex,\n rangeId: null,\n group: 0,\n binding: bindingIndex,\n visibility: \"compute\",\n declarationOffset: binding.declarationOffset,\n declaration: sampled ? \"var<storage, read>\" : \"var<storage, read_write>\",\n type: sampled ? \"array<i32>\" : \"array<atomic<u32>>\",\n buffer: {\n type: sampled ? \"read-only-storage\" : \"storage\",\n hasDynamicOffset: false,\n minBindingSize: 4\n }\n };\n });\n return deepFreeze(applyBindingPlan(lowered, bindingPlan));\n}\n\nfunction bindingForOperand(bindings, resourceKind, operand, instruction, operandIndex)\n{\n validateFixedHandleOperand(instruction, operandIndex, operand.typeName, \"compute\");\n const matches = bindings.filter((entry) =>\n entry.resourceKind === resourceKind\n && entry.registerIndex === operand.registerIndex\n && entry.registerSpace === 0);\n if (matches.length !== 1)\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has an unresolved ${resourceKind} binding`);\n }\n return validateFixedHandleBinding(operand, matches[0], \"compute\");\n}\n\nfunction validateProgramShape(program)\n{\n if (program?.format !== \"CJS_SHADER_IR\" || program.formatVersion !== 1)\n {\n throw new TypeError(\"WGSL compute lowering expects CJS_SHADER_IR version 1 input\");\n }\n if (program.stage !== \"compute\") throw new Error(`WGSL compute lowering cannot lower ${program.stage}`);\n if (program.shaderModel?.major !== 5 || program.shaderModel.minor !== 0)\n {\n throw new Error(\"WGSL compute body slice currently supports only SM5.0\");\n }\n if ((program.signatures?.input || []).length\n || (program.signatures?.output || []).length\n || (program.signatures?.patch || []).length\n || program.immediateConstantBuffer\n || program.constTables)\n {\n throw new Error(\"WGSL compute body slice does not support signatures or constant tables\");\n }\n if (program.declarations?.length !== DECLARATION_OPCODES.length\n || DECLARATION_OPCODES.some((opcodeName, index) =>\n program.declarations[index]?.opcodeName !== opcodeName))\n {\n throw new Error(\"WGSL compute declaration shape is not supported; the bounded body slice requires canonical global/SRV/UAV/temp/thread-group declarations\");\n }\n const temp = program.declarations[3];\n const group = program.declarations[4];\n if (temp.data?.tempCount !== 1\n || group.data?.threadGroupX !== 1\n || group.data?.threadGroupY !== 1\n || group.data?.threadGroupZ !== 1)\n {\n throw new Error(\"WGSL compute body slice requires one temporary and dcl_thread_group 1,1,1\");\n }\n requireRefactoringAllowed(program, \"compute\");\n if (!Array.isArray(program.instructions) || program.instructions.length < 2\n || program.instructions.at(-1)?.opcodeName !== \"ret\"\n || program.instructions.slice(0, -1).some((instruction) => instruction.opcodeName === \"ret\")\n || program.instructions.some((instruction) => !SUPPORTED_OPCODES.has(instruction.opcodeName))\n || program.instructions.some((instruction, index) =>\n instruction.index !== index\n || (index > 0 && instruction.dxbcOffset <= program.instructions[index - 1].dxbcOffset)))\n {\n throw new Error(\"WGSL compute body slice requires one straight-line supported instruction sequence ending in ret\");\n }\n const block = program.blocks?.[0];\n if (program.blocks?.length !== 1\n || block.id !== \"block0\" || block.index !== 0\n || block.startInstruction !== 0\n || block.endInstruction !== program.instructions.length - 1\n || block.terminator !== \"ret\"\n || block.reachable === false\n || block.successors?.length || block.predecessors?.length\n || block.mergeSite !== null\n || block.inputValueIds?.length\n || block.instructionIndices?.length !== program.instructions.length\n || block.instructionIndices.some((value, index) => value !== index))\n {\n throw new Error(\"WGSL compute body slice requires one canonical reachable return block\");\n }\n}\n\nfunction validateInstructionEnvelope(instruction)\n{\n const isReturn = instruction.opcodeName === \"ret\";\n if (instruction.controlKind !== (isReturn ? \"termination\" : null)\n || instruction.testBoolean !== null\n || instruction.saturate\n || instruction.preciseMask !== \"\"\n || (instruction.opcodeName !== \"ld\" && instruction.extensions?.length))\n {\n throw new Error(`WGSL compute instruction ${instruction.index} has unsupported control, modifier, or extension metadata`);\n }\n for (let operandIndex = 0; operandIndex < instruction.operands.length; operandIndex += 1)\n {\n validateCommonOperand(instruction.operands[operandIndex], instruction, operandIndex);\n }\n}\n\nfunction validateLoadExtensions(instruction)\n{\n const extensions = instruction.extensions || [];\n validateSm50ResourceExtensions(extensions, {\n resourceDimension: 1,\n resourceDimensionName: \"buffer\",\n structureStride: 0,\n resourceReturnTypes: [ 3, 3, 3, 3 ]\n }, `WGSL compute load instruction ${instruction.index}`);\n}\n\nfunction validateNullHighDestination(instruction)\n{\n const operand = instruction.operands[0];\n validateCommonOperand(operand, instruction, 0);\n if (operand.typeName !== \"null\"\n || operand.componentCount !== 0\n || operand.registerIndex !== null\n || operand.indices?.length\n || operand.mask || operand.swizzle || operand.selected\n || operand.immediateValues?.length)\n {\n throw new Error(`WGSL compute imul instruction ${instruction.index} requires a null high destination`);\n }\n}\n\nfunction seedRegisterState(program)\n{\n const state = new Map();\n const valueIds = new Set();\n for (const value of program.values || [])\n {\n if (valueIds.has(value.id))\n {\n throw new Error(`WGSL compute program contains duplicate value ${value.id}`);\n }\n valueIds.add(value.id);\n if (![ \"undefined-register\", \"instruction-write\" ].includes(value.origin)\n || value.register !== \"temp[0]\"\n || value.writeMask.length !== 1\n || !COMPONENTS.includes(value.writeMask)\n || Object.keys(value.componentTypes || {}).length !== 1\n || (value.origin === \"instruction-write\"\n ? !scalarTypeName(value.componentTypes[value.writeMask])\n : value.componentTypes[value.writeMask] !== \"unknown\"))\n {\n throw new Error(`WGSL compute value ${value.id} is outside the bounded temp[0] scalar slice`);\n }\n if (value.origin === \"undefined-register\")\n {\n if (value.instructionIndex !== null || value.blockId !== null || value.previous !== null)\n {\n throw new Error(`WGSL compute undefined value ${value.id} has inconsistent origin metadata`);\n }\n const key = `${value.register}.${value.writeMask}`;\n if (state.has(key))\n {\n throw new Error(`WGSL compute program contains duplicate undefined ${key}`);\n }\n state.set(key, { valueId: value.id, component: value.writeMask });\n }\n else if (value.blockId !== \"block0\")\n {\n throw new Error(`WGSL compute instruction value ${value.id} belongs to an unexpected block`);\n }\n }\n return state;\n}\n\nfunction validateBlockOutput(program, state)\n{\n const outputs = program.blocks[0].outputValues || [];\n const expected = Array.from(state, ([ key, ref ]) =>\n {\n const split = key.lastIndexOf(\".\");\n return { register: key.slice(0, split), component: key.slice(split + 1), ref };\n }).sort((left, right) =>\n left.register.localeCompare(right.register) || left.component.localeCompare(right.component));\n const actual = outputs.slice().sort((left, right) =>\n left.register.localeCompare(right.register) || left.component.localeCompare(right.component));\n if (actual.length !== expected.length\n || expected.some((entry, index) =>\n actual[index]?.register !== entry.register\n || actual[index]?.component !== entry.component\n || !sameRef(actual[index]?.ref, entry.ref)))\n {\n throw new Error(\"WGSL compute block output does not match the final scalar register state\");\n }\n}\n\n/**\n * Lowers the bounded setdrawparameters/setsortargs compute slice into typed SSA.\n *\n * @param {object} program Frozen CJS shader IR.\n * @param {object} [options] Optional exact compute-only binding plan.\n * @returns {object} Frozen typed compute program.\n */\nfunction lowerScalarWordComputeProgram(program, options = {})\n{\n validateProgramShape(program);\n const bindings = lowerComputeBindingLayout(program, options.bindingPlan ?? null);\n const state = seedRegisterState(program);\n const writtenValueIds = new Set();\n const statements = [];\n\n for (const instruction of program.instructions)\n {\n validateInstructionEnvelope(instruction);\n validateTypeInfo(program, instruction);\n const expectedReads = new Set();\n\n if (instruction.opcodeName === \"ret\")\n {\n if (instruction.operands.length || instruction.dataflow.reads.length || instruction.dataflow.writes.length)\n {\n throw new Error(`WGSL compute return instruction ${instruction.index} must be operand-free`);\n }\n statements.push({\n kind: \"return\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset\n });\n continue;\n }\n\n if (instruction.opcodeName === \"ld\")\n {\n if (instruction.operands.length !== 3)\n {\n throw new Error(`WGSL compute load instruction ${instruction.index} requires three operands`);\n }\n validateLoadExtensions(instruction);\n const destination = instruction.operands[0];\n validateDestinationOperand(destination, instruction, 0);\n if (destination.mask !== \"x\")\n {\n throw new Error(`WGSL compute load instruction ${instruction.index} scalar-word profile requires the x destination lane`);\n }\n const address = immediateCode(\n immediateBits(instruction.operands[1], instruction, 1, true),\n \"uint32\");\n const resource = validateFixedRegisterOperand(\n instruction.operands[2], instruction, 2, \"resource\");\n if (resource.componentCount !== 4 || resource.swizzle !== \"xyzw\"\n || resource.mask || resource.selected)\n {\n throw new Error(`WGSL compute load instruction ${instruction.index} requires a canonical xyzw resource selection`);\n }\n const binding = bindingForOperand(\n bindings, \"sampled-resource\", resource, instruction, 2);\n const { write, value } = validateWrite(\n program, instruction, 0, destination, state, writtenValueIds);\n validateNoUnexpectedReads(instruction, expectedReads);\n const length = `arrayLength(&${binding.generatedSymbol})`;\n const intrinsic = `select(0i, ${binding.generatedSymbol}[min(${address}, ${length} - 1u)], ${address} < ${length})`;\n const storage = valueStorageType(value, write.mask);\n statements.push({\n kind: \"let\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: value.id,\n type: scalarTypeName(storage),\n expression: {\n code: reinterpretCode(intrinsic, \"int32\", storage),\n type: scalarTypeName(storage)\n }\n });\n continue;\n }\n\n const arithmetic = ARITHMETIC_RULES[instruction.opcodeName];\n if (arithmetic)\n {\n if (instruction.operands.length !== (instruction.opcodeName === \"imul\" ? 4 : 3))\n {\n throw new Error(`WGSL compute ${instruction.opcodeName} instruction ${instruction.index} has an unsupported operand count`);\n }\n if (instruction.opcodeName === \"imul\") validateNullHighDestination(instruction);\n const destination = instruction.operands[arithmetic.destinationOperand];\n validateDestinationOperand(destination, instruction, arithmetic.destinationOperand);\n const sources = arithmetic.sourceOperands.map((operandIndex) =>\n readCode(program, instruction, operandIndex, arithmetic.sourceType, state, expectedReads));\n validateNoUnexpectedReads(instruction, expectedReads);\n const intrinsic = arithmetic.functionName\n ? `${arithmetic.functionName}(${sources.join(\", \")})`\n : `(${sources[0]} ${arithmetic.operator} ${sources[1]})`;\n const { write, value } = validateWrite(\n program, instruction, arithmetic.destinationOperand,\n destination, state, writtenValueIds);\n const storage = valueStorageType(value, write.mask);\n statements.push({\n kind: \"let\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: value.id,\n type: scalarTypeName(storage),\n expression: {\n code: reinterpretCode(intrinsic, arithmetic.resultType, storage),\n type: scalarTypeName(storage)\n }\n });\n continue;\n }\n\n if (instruction.opcodeName === \"store_uav_typed\")\n {\n if (instruction.operands.length !== 3 || instruction.dataflow.writes.length)\n {\n throw new Error(`WGSL compute store instruction ${instruction.index} requires three source operands`);\n }\n const uav = validateFixedRegisterOperand(\n instruction.operands[0], instruction, 0, \"uav\");\n if (uav.componentCount !== 4 || uav.mask !== \"xyzw\"\n || uav.swizzle || uav.selected)\n {\n throw new Error(`WGSL compute store instruction ${instruction.index} requires a full xyzw UAV mask`);\n }\n const binding = bindingForOperand(\n bindings, \"storage-resource\", uav, instruction, 0);\n const address = immediateCode(\n immediateBits(instruction.operands[1], instruction, 1, true),\n \"uint32\");\n const value = replicatedStoreCode(\n program, instruction, 2, state, expectedReads);\n validateNoUnexpectedReads(instruction, expectedReads);\n statements.push({\n kind: \"if\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n condition: {\n code: `${address} < arrayLength(&${binding.generatedSymbol})`,\n type: \"bool\"\n },\n statements: [ {\n kind: \"call\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n expression: {\n code: `atomicStore(&${binding.generatedSymbol}[${address}], ${value})`,\n type: \"void\"\n }\n } ]\n });\n }\n }\n\n if (writtenValueIds.size !== program.values.filter((value) =>\n value.origin === \"instruction-write\").length)\n {\n throw new Error(\"WGSL compute program contains an unowned instruction-write value\");\n }\n validateBlockOutput(program, state);\n return deepFreeze({\n kind: \"typed-shader-program\",\n format: \"CJS_TYPED_SHADER\",\n formatVersion: 1,\n source: program.source,\n stage: \"compute\",\n entryPoint: \"main\",\n threadGroupSize: [ 1, 1, 1 ],\n bindings,\n statements\n });\n}\n\n/**\n * Routes one compute program to an exact declaration-shaped lowering profile.\n * Once a profile is selected its validation errors are final; malformed input\n * never falls through to a broader profile.\n *\n * @param {object} program Frozen CJS shader IR.\n * @param {object} [options] Optional exact compute-only binding plan.\n * @returns {object} Frozen typed compute program.\n */\nexport function lowerComputeProgram(program, options = {})\n{\n validateExactComputeEnvelope(program, \"WGSL compute\");\n if (isParticleClearResetCandidate(program))\n {\n return lowerParticleClearResetComputeProgram(program, options);\n }\n if (isParticleClearInitializeCandidate(program))\n {\n return lowerParticleClearInitializeComputeProgram(program, options);\n }\n if (isParticleEmitComputeCandidate(program))\n {\n return lowerParticleEmitComputeProgram(program, options);\n }\n if (isCreateHistogramsComputeProfile(program))\n {\n return lowerCreateHistogramsComputeProgram(program, options);\n }\n if (isMergeHistogramsComputeProfile(program))\n {\n return lowerMergeHistogramsComputeProgram(program, options);\n }\n if (isSortComputeProfile(program))\n {\n return lowerSortComputeProgram(program, options);\n }\n if (isSortInnerComputeProfile(program))\n {\n return lowerSortInnerComputeProgram(program, options);\n }\n if (isSortStepComputeProfile(program))\n {\n return lowerSortStepComputeProgram(program, options);\n }\n if (isSkinVerticesComputeProfile(program))\n {\n return lowerSkinVerticesComputeProgram(program, options);\n }\n return lowerScalarWordComputeProgram(program, options);\n}\n"],"names":["COMPONENTS","Object","freeze","DECLARATION_OPCODES","ARITHMETIC_RULES","imul","rule","resultType","destinationOperand","sourceOperands","sourceType","operator","umax","functionName","iadd","ushr","SUPPORTED_OPCODES","Set","keys","KIND_ORDER","KIND_PREFIX","deepFreeze","value","isFrozen","entry","values","scalarTypeName","type","int32","uint32","bitpattern32","canonicalRef","ref","valueId","component","sameRef","left","right","registerKey","operand","typeName","registerIndex","validateCommonOperand","instruction","operandIndex","modifierName","minPrecisionName","nonUniform","Error","index","validateFixedRegisterOperand","indices","Number","isInteger","length","relative","validateDestinationOperand","componentCount","includes","mask","swizzle","selected","validateScalarTempSource","immediateBits","replicated","immediateValues","some","bits","map","immediateCode","literal","toString","padStart","validateValueRef","program","expectedRegister","expectedComponent","find","id","register","writeMask","origin","validateRead","components","state","expectedReads","matches","dataflow","reads","filter","kind","read","refs","get","forEach","add","validateNoUnexpectedReads","size","has","validateWrite","writtenValueIds","writes","write","instructionIndex","previousComponents","previous","sort","join","slice","result","set","valueStorageType","componentTypes","reinterpretCode","code","fromType","toType","from","to","readCode","expectedType","operands","replicatedStoreCode","Array","fill","expectedOperandTypes","opcodeName","arithmetic","_","expectedRule","bitcastKey","componentIndex","validateTypeInfo","operandTypes","typeInfo","conversion","conditionProjection","role","actual","modifier","minPrecision","required","expected","storage","push","requiredKeys","actualKeys","bitcasts","bindingRegister","binding","range","lowerBound","bindingSpace","registerSpace","bindingIdentity","resourceKind","validateBindingRange","bindingModel","rangeId","upperBound","unbounded","registerCount","validateBindingDeclaration","operandType","returnType","declarations","dxbcOffset","declarationOffset","declaration","data","validateReturnTypeMirror","resourceDimension","structureStride","accessPattern","returnTypeNames","resourceDimensionName","sampleCount","globallyCoherent","portableBinding","identity","generatedSymbol","buffer","applyBindingPlan","bindings","bindingPlan","undefined","format","formatVersion","isArray","TypeError","planned","Map","slots","slot","group","scopeIdentity","stages","JSON","stringify","lowerComputeBindingLayout","identities","lowered","bindingIndex","sampled","visibility","hasDynamicOffset","minBindingSize","bindingForOperand","validateFixedHandleOperand","validateFixedHandleBinding","validateProgramShape","stage","shaderModel","major","minor","signatures","input","output","patch","immediateConstantBuffer","constTables","temp","tempCount","threadGroupX","threadGroupY","threadGroupZ","requireRefactoringAllowed","instructions","at","block","blocks","startInstruction","endInstruction","terminator","reachable","successors","predecessors","mergeSite","inputValueIds","instructionIndices","validateInstructionEnvelope","isReturn","controlKind","testBoolean","saturate","preciseMask","extensions","validateLoadExtensions","validateSm50ResourceExtensions","resourceReturnTypes","validateNullHighDestination","seedRegisterState","valueIds","blockId","key","validateBlockOutput","outputs","outputValues","split","lastIndexOf","localeCompare","lowerScalarWordComputeProgram","options","statements","destination","address","resource","intrinsic","name","expression","sources","uav","condition","source","entryPoint","threadGroupSize","lowerComputeProgram","validateExactComputeEnvelope","isParticleClearResetCandidate","lowerParticleClearResetComputeProgram","isParticleClearInitializeCandidate","lowerParticleClearInitializeComputeProgram","isParticleEmitComputeCandidate","lowerParticleEmitComputeProgram","isCreateHistogramsComputeProfile","lowerCreateHistogramsComputeProgram","isMergeHistogramsComputeProfile","lowerMergeHistogramsComputeProgram","isSortComputeProfile","lowerSortComputeProgram","isSortInnerComputeProfile","lowerSortInnerComputeProgram","isSortStepComputeProfile","lowerSortStepComputeProgram","isSkinVerticesComputeProfile","lowerSkinVerticesComputeProgram"],"mappings":";;;;;;;;;;;;AA0CA,MAAMA,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC;AACxD,MAAMC,mBAAmB,GAAGF,MAAM,CAACC,MAAM,CAAC,CACtC,kBAAkB,EAClB,cAAc,EACd,iCAAiC,EACjC,WAAW,EACX,kBAAkB,CACrB,CAAC;AACF,MAAME,gBAAgB,GAAGH,MAAM,CAACC,MAAM,CAAC;AACnCG,EAAAA,IAAI,EAAEJ,MAAM,CAACC,MAAM,CAAC;AAChBI,IAAAA,IAAI,EAAE,gBAAgB;AACtBC,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,kBAAkB,EAAE,CAAC;IACrBC,cAAc,EAAER,MAAM,CAACC,MAAM,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC;AACvCQ,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,QAAQ,EAAE;AACd,GAAC,CAAC;AACFC,EAAAA,IAAI,EAAEX,MAAM,CAACC,MAAM,CAAC;AAChBI,IAAAA,IAAI,EAAE,kBAAkB;AACxBC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,kBAAkB,EAAE,CAAC;IACrBC,cAAc,EAAER,MAAM,CAACC,MAAM,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC;AACvCQ,IAAAA,UAAU,EAAE,QAAQ;AACpBG,IAAAA,YAAY,EAAE;AAClB,GAAC,CAAC;AACFC,EAAAA,IAAI,EAAEb,MAAM,CAACC,MAAM,CAAC;AAChBI,IAAAA,IAAI,EAAE,gBAAgB;AACtBC,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,kBAAkB,EAAE,CAAC;IACrBC,cAAc,EAAER,MAAM,CAACC,MAAM,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC;AACvCQ,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,QAAQ,EAAE;AACd,GAAC,CAAC;AACFI,EAAAA,IAAI,EAAEd,MAAM,CAACC,MAAM,CAAC;AAChBI,IAAAA,IAAI,EAAE,kBAAkB;AACxBC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,kBAAkB,EAAE,CAAC;IACrBC,cAAc,EAAER,MAAM,CAACC,MAAM,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC;AACvCQ,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,QAAQ,EAAE;GACb;AACL,CAAC,CAAC;AACF,MAAMK,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAC9B,IAAI,EAAE,GAAGhB,MAAM,CAACiB,IAAI,CAACd,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,KAAK,CACnE,CAAC;AACF,MAAMe,UAAU,GAAGlB,MAAM,CAACC,MAAM,CAAC;AAAE,EAAA,kBAAkB,EAAE,CAAC;AAAE,EAAA,kBAAkB,EAAE;AAAE,CAAC,CAAC;AAClF,MAAMkB,WAAW,GAAGnB,MAAM,CAACC,MAAM,CAAC;AAAE,EAAA,kBAAkB,EAAE,GAAG;AAAE,EAAA,kBAAkB,EAAE;AAAI,CAAC,CAAC;AAEvF,SAASmB,UAAUA,CAACC,KAAK,EACzB;AACI,EAAA,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIrB,MAAM,CAACsB,QAAQ,CAACD,KAAK,CAAC,EAAE,OAAOA,KAAK;AAC/E,EAAA,KAAK,MAAME,KAAK,IAAIvB,MAAM,CAACwB,MAAM,CAACH,KAAK,CAAC,EAAED,UAAU,CAACG,KAAK,CAAC;AAC3D,EAAA,OAAOvB,MAAM,CAACC,MAAM,CAACoB,KAAK,CAAC;AAC/B;AAEA,SAASI,cAAcA,CAACC,IAAI,EAC5B;EACI,OAAQ;AAAEC,IAAAA,KAAK,EAAE,KAAK;AAAEC,IAAAA,MAAM,EAAE,KAAK;AAAEC,IAAAA,YAAY,EAAE;AAAM,GAAC,CAAEH,IAAI,CAAC,IAAI,IAAI;AAC/E;AAEA,SAASI,YAAYA,CAACC,GAAG,EACzB;AACI,EAAA,OAAO,CAAA,EAAGA,GAAG,EAAEC,OAAO,IAAI,EAAE,CAAA,CAAA,EAAID,GAAG,EAAEE,SAAS,IAAI,EAAE,CAAA,CAAE;AAC1D;AAEA,SAASC,OAAOA,CAACC,IAAI,EAAEC,KAAK,EAC5B;EACI,OAAON,YAAY,CAACK,IAAI,CAAC,KAAKL,YAAY,CAACM,KAAK,CAAC;AACrD;AAEA,SAASC,WAAWA,CAACC,OAAO,EAC5B;EACI,OAAO,CAAA,EAAGA,OAAO,CAACC,QAAQ,IAAID,OAAO,CAACE,aAAa,CAAA,CAAA,CAAG;AAC1D;AAEA,SAASC,qBAAqBA,CAACH,OAAO,EAAEI,WAAW,EAAEC,YAAY,EACjE;EACI,IAAI,CAACL,OAAO,IACL,CAACA,OAAO,CAACM,YAAY,IAAI,MAAM,MAAM,MAAM,IAC3C,CAACN,OAAO,CAACO,gBAAgB,IAAI,SAAS,MAAM,SAAS,IACrDP,OAAO,CAACQ,UAAU,KAAK,IAAI,EAClC;IACI,MAAM,IAAIC,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,4DAAA,EAA+DL,YAAY,CAAA,CAAE,CAAC;AAC/I,EAAA;AACJ;AAEA,SAASM,4BAA4BA,CAACX,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAEJ,QAAQ,EAClF;AACIE,EAAAA,qBAAqB,CAACH,OAAO,EAAEI,WAAW,EAAEC,YAAY,CAAC;AACzD,EAAA,MAAMK,KAAK,GAAGV,OAAO,CAACY,OAAO,GAAG,CAAC,CAAC;EAClC,IAAIZ,OAAO,CAACC,QAAQ,KAAKA,QAAQ,IAC1B,CAACY,MAAM,CAACC,SAAS,CAACd,OAAO,CAACE,aAAa,CAAC,IAAIF,OAAO,CAACE,aAAa,GAAG,CAAC,IACrEF,OAAO,CAACY,OAAO,EAAEG,MAAM,KAAK,CAAC,IAC7BL,KAAK,EAAEM,QAAQ,IACfN,KAAK,EAAExB,MAAM,EAAE6B,MAAM,KAAK,CAAC,IAC3BL,KAAK,CAACxB,MAAM,CAAC,CAAC,CAAC,KAAKc,OAAO,CAACE,aAAa,EAChD;AACI,IAAA,MAAM,IAAIO,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,sBAAA,EAAyBJ,QAAQ,CAAA,SAAA,CAAW,CAAC;AACtI,EAAA;AACA,EAAA,OAAOD,OAAO;AAClB;AAEA,SAASiB,0BAA0BA,CAACjB,OAAO,EAAEI,WAAW,EAAEC,YAAY,EACtE;EACIM,4BAA4B,CAACX,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAE,MAAM,CAAC;AACxE,EAAA,IAAIL,OAAO,CAACE,aAAa,KAAK,CAAC,IACxBF,OAAO,CAACkB,cAAc,KAAK,CAAC,IAC5B,CAACzD,UAAU,CAAC0D,QAAQ,CAACnB,OAAO,CAACoB,IAAI,CAAC,IAClCpB,OAAO,CAACqB,OAAO,IAAIrB,OAAO,CAACsB,QAAQ,EAC1C;IACI,MAAM,IAAIb,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,gDAAA,CAAkD,CAAC;AAC5I,EAAA;EACA,OAAOL,OAAO,CAACoB,IAAI;AACvB;AAEA,SAASG,wBAAwBA,CAACvB,OAAO,EAAEI,WAAW,EAAEC,YAAY,EACpE;EACIM,4BAA4B,CAACX,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAE,MAAM,CAAC;AACxE,EAAA,IAAIL,OAAO,CAACE,aAAa,KAAK,CAAC,IACxBF,OAAO,CAACkB,cAAc,KAAK,CAAC,IAC5B,CAACzD,UAAU,CAAC0D,QAAQ,CAACnB,OAAO,CAACsB,QAAQ,CAAC,IACtCtB,OAAO,CAACoB,IAAI,IAAIpB,OAAO,CAACqB,OAAO,EACtC;IACI,MAAM,IAAIZ,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,0CAAA,CAA4C,CAAC;AACtI,EAAA;EACA,OAAOL,OAAO,CAACsB,QAAQ;AAC3B;AAEA,SAASE,aAAaA,CAACxB,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAEoB,UAAU,EACrE;AACItB,EAAAA,qBAAqB,CAACH,OAAO,EAAEI,WAAW,EAAEC,YAAY,CAAC;AACzD,EAAA,MAAMnB,MAAM,GAAGc,OAAO,CAAC0B,eAAe,IAAI,EAAE;AAC5C,EAAA,IAAI1B,OAAO,CAACC,QAAQ,KAAK,aAAa,IAC/BD,OAAO,CAACE,aAAa,KAAK,IAAI,IAC9BF,OAAO,CAACY,OAAO,EAAEG,MAAM,IACvBf,OAAO,CAACoB,IAAI,IAAIpB,OAAO,CAACqB,OAAO,IAAIrB,OAAO,CAACsB,QAAQ,IACnD,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAACH,QAAQ,CAACnB,OAAO,CAACkB,cAAc,CAAC,IAC1ChC,MAAM,CAAC6B,MAAM,KAAKf,OAAO,CAACkB,cAAc,IACxChC,MAAM,CAACyC,IAAI,CAAE5C,KAAK,IAAK,CAAC8B,MAAM,CAACC,SAAS,CAAC/B,KAAK,EAAEO,MAAM,CAAC,CAAC,EAC/D;IACI,MAAM,IAAImB,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,oCAAA,CAAsC,CAAC;AAChI,EAAA;AACA,EAAA,MAAMuB,IAAI,GAAG1C,MAAM,CAAC2C,GAAG,CAAE9C,KAAK,IAAKA,KAAK,CAACO,MAAM,KAAK,CAAC,CAAC;EACtD,IAAImC,UAAU,KAAKG,IAAI,CAACb,MAAM,KAAK,CAAC,IAAIa,IAAI,CAACD,IAAI,CAAE5C,KAAK,IAAKA,KAAK,KAAK6C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChF;IACI,MAAM,IAAInB,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,yCAAA,CAA2C,CAAC;AACrI,EAAA;EACA,IAAI,CAACoB,UAAU,IAAIG,IAAI,CAACb,MAAM,KAAK,CAAC,EACpC;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,SAAA,EAAYL,YAAY,CAAA,4BAAA,CAA8B,CAAC;AACxH,EAAA;EACA,OAAOuB,IAAI,CAAC,CAAC,CAAC;AAClB;AAEA,SAASE,aAAaA,CAACF,IAAI,EAAExC,IAAI,EACjC;AACI,EAAA,MAAM2C,OAAO,GAAG,CAAA,EAAA,EAAK,CAACH,IAAI,KAAK,CAAC,EAAEI,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG;EAClE,OAAO7C,IAAI,KAAK,OAAO,GAAG,gBAAgB2C,OAAO,CAAA,CAAA,CAAG,GAAGA,OAAO;AAClE;AAEA,SAASG,gBAAgBA,CAACC,OAAO,EAAE1C,GAAG,EAAE2C,gBAAgB,EAAEC,iBAAiB,EAC3E;AACI,EAAA,MAAMtD,KAAK,GAAGoD,OAAO,CAACjD,MAAM,CAACoD,IAAI,CAAErD,KAAK,IAAKA,KAAK,CAACsD,EAAE,KAAK9C,GAAG,EAAEC,OAAO,CAAC;EACvE,IAAI,CAACX,KAAK,IACHA,KAAK,CAACyD,QAAQ,KAAKJ,gBAAgB,IACnC3C,GAAG,CAACE,SAAS,KAAK0C,iBAAiB,IACnC,CAACtD,KAAK,CAAC0D,SAAS,CAACtB,QAAQ,CAACkB,iBAAiB,CAAC,EACnD;IACI,MAAM,IAAI5B,KAAK,CAAC,CAAA,0DAAA,EAA6D2B,gBAAgB,CAAA,CAAA,EAAIC,iBAAiB,QAAQ,CAAC;AAC/H,EAAA;AACA,EAAA,IAAItD,KAAK,CAAC2D,MAAM,KAAK,oBAAoB,EACzC;IACI,MAAM,IAAIjC,KAAK,CAAC,CAAA,6BAAA,EAAgC2B,gBAAgB,CAAA,CAAA,EAAIC,iBAAiB,EAAE,CAAC;AAC5F,EAAA;AACA,EAAA,OAAOtD,KAAK;AAChB;AAEA,SAAS4D,YAAYA,CAACR,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEL,OAAO,EAAE4C,UAAU,EAAEC,KAAK,EAAEC,aAAa,EACnG;AACI,EAAA,MAAMN,QAAQ,GAAGzC,WAAW,CAACC,OAAO,CAAC;EACrC,MAAM+C,OAAO,GAAG3C,WAAW,CAAC4C,QAAQ,CAACC,KAAK,CAACC,MAAM,CAAEjE,KAAK,IACpDA,KAAK,CAACkE,IAAI,KAAK,eAAe,IAAIlE,KAAK,CAACoB,YAAY,KAAKA,YAAY,CAAC;AAC1E,EAAA,IAAI0C,OAAO,CAAChC,MAAM,KAAK,CAAC,EACxB;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,4CAAA,EAA+CL,YAAY,CAAA,CAAE,CAAC;AAC/H,EAAA;AACA,EAAA,MAAM+C,IAAI,GAAGL,OAAO,CAAC,CAAC,CAAC;AACvB,EAAA,IAAIK,IAAI,CAACZ,QAAQ,KAAKA,QAAQ,IACvBY,IAAI,CAACR,UAAU,EAAE7B,MAAM,KAAK6B,UAAU,CAAC7B,MAAM,IAC7CqC,IAAI,CAACC,IAAI,EAAEtC,MAAM,KAAK6B,UAAU,CAAC7B,MAAM,IACvC6B,UAAU,CAACjB,IAAI,CAAC,CAAChC,SAAS,EAAEe,KAAK,KAChC0C,IAAI,CAACR,UAAU,CAAClC,KAAK,CAAC,KAAKf,SAAS,IACjC,CAACC,OAAO,CAACwD,IAAI,CAACC,IAAI,CAAC3C,KAAK,CAAC,EAAEmC,KAAK,CAACS,GAAG,CAAC,CAAA,EAAGd,QAAQ,CAAA,CAAA,EAAI7C,SAAS,CAAA,CAAE,CAAC,CAAC,CAAC,EAC7E;IACI,MAAM,IAAIc,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,+CAAA,EAAkDL,YAAY,CAAA,CAAE,CAAC;AAClI,EAAA;EACAuC,UAAU,CAACW,OAAO,CAAC,CAAC5D,SAAS,EAAEe,KAAK,KAChCwB,gBAAgB,CAACC,OAAO,EAAEiB,IAAI,CAACC,IAAI,CAAC3C,KAAK,CAAC,EAAE8B,QAAQ,EAAE7C,SAAS,CAAC,CAAC;AACrEmD,EAAAA,aAAa,CAACU,GAAG,CAACJ,IAAI,CAAC;AACvB,EAAA,OAAOA,IAAI;AACf;AAEA,SAASK,yBAAyBA,CAACrD,WAAW,EAAE0C,aAAa,EAC7D;AACI,EAAA,IAAI1C,WAAW,CAAC4C,QAAQ,CAACC,KAAK,CAAClC,MAAM,KAAK+B,aAAa,CAACY,IAAI,IACrDtD,WAAW,CAAC4C,QAAQ,CAACC,KAAK,CAACtB,IAAI,CAAEyB,IAAI,IAAK,CAACN,aAAa,CAACa,GAAG,CAACP,IAAI,CAAC,CAAC,EAC1E;IACI,MAAM,IAAI3C,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,yCAAyC,CAAC;AAC3G,EAAA;AACJ;AAEA,SAASkD,aAAaA,CAACzB,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEL,OAAO,EAAE6C,KAAK,EAAEgB,eAAe,EAC1F;AACI,EAAA,MAAMC,MAAM,GAAG1D,WAAW,CAAC4C,QAAQ,CAACc,MAAM;AAC1C,EAAA,IAAIA,MAAM,CAAC/C,MAAM,KAAK,CAAC,IAAI+C,MAAM,CAAC,CAAC,CAAC,CAACzD,YAAY,KAAKA,YAAY,EAClE;IACI,MAAM,IAAII,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,2CAAA,EAA8CL,YAAY,CAAA,CAAE,CAAC;AAC9H,EAAA;AACA,EAAA,MAAM0D,KAAK,GAAGD,MAAM,CAAC,CAAC,CAAC;AACvB,EAAA,MAAMtB,QAAQ,GAAGzC,WAAW,CAACC,OAAO,CAAC;AACrC,EAAA,MAAML,SAAS,GAAGK,OAAO,CAACoB,IAAI;AAC9B,EAAA,MAAMrC,KAAK,GAAGoD,OAAO,CAACjD,MAAM,CAACoD,IAAI,CAAErD,KAAK,IAAKA,KAAK,CAACsD,EAAE,KAAKwB,KAAK,CAACrE,OAAO,CAAC;EACxE,IAAIqE,KAAK,CAACvB,QAAQ,KAAKA,QAAQ,IAAIuB,KAAK,CAAC3C,IAAI,KAAKzB,SAAS,IACpD,CAACZ,KAAK,IAAIA,KAAK,CAAC2D,MAAM,KAAK,mBAAmB,IAC9C3D,KAAK,CAACiF,gBAAgB,KAAK5D,WAAW,CAACM,KAAK,IAC5C3B,KAAK,CAACyD,QAAQ,KAAKA,QAAQ,IAAIzD,KAAK,CAAC0D,SAAS,KAAK9C,SAAS,IAC5DkE,eAAe,CAACF,GAAG,CAAC5E,KAAK,CAACwD,EAAE,CAAC,EACpC;IACI,MAAM,IAAI9B,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,4CAA4C,CAAC;AAC9G,EAAA;EACA,MAAMuD,kBAAkB,GAAGxG,UAAU,CAACyF,MAAM,CAAEjE,KAAK,IAAKA,KAAK,KAAKU,SAAS,CAAC;EAC5E,IAAI,CAACoE,KAAK,CAACG,QAAQ,IACZxG,MAAM,CAACiB,IAAI,CAACoF,KAAK,CAACG,QAAQ,CAAC,CAACC,IAAI,EAAE,CAACC,IAAI,CAAC,EAAE,CAAC,KAAKH,kBAAkB,CAACI,KAAK,EAAE,CAACF,IAAI,EAAE,CAACC,IAAI,CAAC,EAAE,CAAC,IAC1FH,kBAAkB,CAACtC,IAAI,CAAE1C,KAAK,IAC7B,CAACW,OAAO,CAACmE,KAAK,CAACG,QAAQ,CAACjF,KAAK,CAAC,EAAE4D,KAAK,CAACS,GAAG,CAAC,CAAA,EAAGd,QAAQ,CAAA,CAAA,EAAIvD,KAAK,CAAA,CAAE,CAAC,CAAC,CAAC,IACpEvB,MAAM,CAACiB,IAAI,CAACoF,KAAK,CAACO,MAAM,IAAI,EAAE,CAAC,CAACH,IAAI,EAAE,CAACC,IAAI,CAAC,EAAE,CAAC,KAAK3G,UAAU,CAAC4G,KAAK,EAAE,CAACF,IAAI,EAAE,CAACC,IAAI,CAAC,EAAE,CAAC,IACtF,CAACxE,OAAO,CAACmE,KAAK,CAACO,MAAM,CAAC3E,SAAS,CAAC,EAAE;IAAED,OAAO,EAAEX,KAAK,CAACwD,EAAE;AAAE5C,IAAAA;AAAU,GAAC,CAAC,IACnEsE,kBAAkB,CAACtC,IAAI,CAAE1C,KAAK,IAC7B,CAACW,OAAO,CAACmE,KAAK,CAACO,MAAM,CAACrF,KAAK,CAAC,EAAE4D,KAAK,CAACS,GAAG,CAAC,CAAA,EAAGd,QAAQ,CAAA,CAAA,EAAIvD,KAAK,CAAA,CAAE,CAAC,CAAC,CAAC,EACzE;IACI,MAAM,IAAIwB,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,6CAA6C,CAAC;AAC/G,EAAA;AACAmD,EAAAA,eAAe,CAACL,GAAG,CAACzE,KAAK,CAACwD,EAAE,CAAC;EAC7BM,KAAK,CAAC0B,GAAG,CAAC,CAAA,EAAG/B,QAAQ,CAAA,CAAA,EAAI7C,SAAS,EAAE,EAAE;IAAED,OAAO,EAAEX,KAAK,CAACwD,EAAE;AAAE5C,IAAAA;AAAU,GAAC,CAAC;EACvE,OAAO;IAAEoE,KAAK;AAAEhF,IAAAA;GAAO;AAC3B;AAEA,SAASyF,gBAAgBA,CAACzF,KAAK,EAAEY,SAAS,EAC1C;AACI,EAAA,MAAMP,IAAI,GAAGL,KAAK,EAAE0F,cAAc,GAAG9E,SAAS,CAAC;AAC/C,EAAA,IAAI,CAACR,cAAc,CAACC,IAAI,CAAC,EACzB;AACI,IAAA,MAAM,IAAIqB,KAAK,CAAC,CAAA,mBAAA,EAAsB1B,KAAK,EAAEwD,EAAE,IAAI,WAAW,CAAA,CAAA,EAAI5C,SAAS,CAAA,uBAAA,CAAyB,CAAC;AACzG,EAAA;AACA,EAAA,OAAOP,IAAI;AACf;AAEA,SAASsF,eAAeA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAC/C;AACI,EAAA,MAAMC,IAAI,GAAG3F,cAAc,CAACyF,QAAQ,CAAC;AACrC,EAAA,MAAMG,EAAE,GAAG5F,cAAc,CAAC0F,MAAM,CAAC;AACjC,EAAA,IAAI,CAACC,IAAI,IAAI,CAACC,EAAE,EAChB;IACI,MAAM,IAAItE,KAAK,CAAC,CAAA,gCAAA,EAAmCmE,QAAQ,CAAA,IAAA,EAAOC,MAAM,EAAE,CAAC;AAC/E,EAAA;EACA,OAAOC,IAAI,KAAKC,EAAE,GAAGJ,IAAI,GAAG,CAAA,QAAA,EAAWI,EAAE,CAAA,EAAA,EAAKJ,IAAI,CAAA,CAAA,CAAG;AACzD;AAEA,SAASK,QAAQA,CAAC7C,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAE4E,YAAY,EAAEpC,KAAK,EAAEC,aAAa,EACxF;AACI,EAAA,MAAM9C,OAAO,GAAGI,WAAW,CAAC8E,QAAQ,CAAC7E,YAAY,CAAC;AAClD,EAAA,IAAIL,OAAO,EAAEC,QAAQ,KAAK,aAAa,EACvC;AACI,IAAA,OAAO6B,aAAa,CAACN,aAAa,CAACxB,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAE,KAAK,CAAC,EAAE4E,YAAY,CAAC;AAChG,EAAA;EACA,MAAMtF,SAAS,GAAG4B,wBAAwB,CAACvB,OAAO,EAAEI,WAAW,EAAEC,YAAY,CAAC;AAC9E,EAAA,MAAM+C,IAAI,GAAGT,YAAY,CAACR,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEL,OAAO,EAAE,CAAEL,SAAS,CAAE,EAAEkD,KAAK,EAAEC,aAAa,CAAC;AAC3G,EAAA,MAAM/D,KAAK,GAAGmD,gBAAgB,CAACC,OAAO,EAAEiB,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC,EAAED,IAAI,CAACZ,QAAQ,EAAE7C,SAAS,CAAC;AAC/E,EAAA,OAAO+E,eAAe,CAAC3F,KAAK,CAACwD,EAAE,EAAEiC,gBAAgB,CAACzF,KAAK,EAAEY,SAAS,CAAC,EAAEsF,YAAY,CAAC;AACtF;AAEA,SAASE,mBAAmBA,CAAChD,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEwC,KAAK,EAAEC,aAAa,EACrF;AACI,EAAA,MAAM9C,OAAO,GAAGI,WAAW,CAAC8E,QAAQ,CAAC7E,YAAY,CAAC;AAClD,EAAA,IAAIL,OAAO,EAAEC,QAAQ,KAAK,aAAa,EACvC;AACI,IAAA,OAAO6B,aAAa,CAACN,aAAa,CAACxB,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;AAC3F,EAAA;EACAM,4BAA4B,CAACX,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAE,MAAM,CAAC;EACxE,IAAIL,OAAO,CAACE,aAAa,KAAK,CAAC,IACxBF,OAAO,CAACkB,cAAc,KAAK,CAAC,IAAIlB,OAAO,CAACoB,IAAI,IAAIpB,OAAO,CAACsB,QAAQ,IAChEtB,OAAO,CAACqB,OAAO,EAAEN,MAAM,KAAK,CAAC,IAC7BqE,KAAK,CAACN,IAAI,CAAC9E,OAAO,CAACqB,OAAO,CAAC,CAACM,IAAI,CAAEhC,SAAS,IAAKA,SAAS,KAAKK,OAAO,CAACqB,OAAO,CAAC,CAAC,CAAC,CAAC,EACxF;IACI,MAAM,IAAIZ,KAAK,CAAC,CAAA,+BAAA,EAAkCL,WAAW,CAACM,KAAK,qDAAqD,CAAC;AAC7H,EAAA;AACA,EAAA,MAAMf,SAAS,GAAGK,OAAO,CAACqB,OAAO,CAAC,CAAC,CAAC;AACpC,EAAA,IAAI,CAAC5D,UAAU,CAAC0D,QAAQ,CAACxB,SAAS,CAAC,EACnC;IACI,MAAM,IAAIc,KAAK,CAAC,CAAA,+BAAA,EAAkCL,WAAW,CAACM,KAAK,iCAAiC,CAAC;AACzG,EAAA;EACA,MAAMkC,UAAU,GAAGwC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC1F,SAAS,CAAC;AAC3C,EAAA,MAAMyD,IAAI,GAAGT,YAAY,CAACR,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEL,OAAO,EAAE4C,UAAU,EAAEC,KAAK,EAAEC,aAAa,CAAC;AACxG,EAAA,MAAM/D,KAAK,GAAGmD,gBAAgB,CAACC,OAAO,EAAEiB,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC,EAAED,IAAI,CAACZ,QAAQ,EAAE7C,SAAS,CAAC;AAC/E,EAAA,OAAO+E,eAAe,CAAC3F,KAAK,CAACwD,EAAE,EAAEiC,gBAAgB,CAACzF,KAAK,EAAEY,SAAS,CAAC,EAAE,QAAQ,CAAC;AAClF;AAEA,SAAS2F,oBAAoBA,CAAClF,WAAW,EACzC;AACI,EAAA,IAAIA,WAAW,CAACmF,UAAU,KAAK,IAAI,EACnC;AACI,IAAA,OAAO,CACH,CAAE,aAAa,EAAE,OAAO,CAAE,EAC1B,CAAE,QAAQ,EAAE,QAAQ,CAAE,EACtB,CAAE,QAAQ,EAAE,SAAS,CAAE,CAC1B;AACL,EAAA;AACA,EAAA,MAAMC,UAAU,GAAG3H,gBAAgB,CAACuC,WAAW,CAACmF,UAAU,CAAC;AAC3D,EAAA,IAAIC,UAAU,EACd;AACI,IAAA,OAAOpF,WAAW,CAAC8E,QAAQ,CAACrD,GAAG,CAAC,CAAC4D,CAAC,EAAEpF,YAAY,KAAK,CACjDA,YAAY,KAAKmF,UAAU,CAACvH,kBAAkB,GAAG,aAAa,GAAG,QAAQ,EACzEoC,YAAY,KAAKmF,UAAU,CAACvH,kBAAkB,IAAIuH,UAAU,CAACtH,cAAc,CAACiD,QAAQ,CAACd,YAAY,CAAC,GAC5FmF,UAAU,CAACxH,UAAU,GACrB,SAAS,CAClB,CAAC;AACN,EAAA;AACA,EAAA,IAAIoC,WAAW,CAACmF,UAAU,KAAK,iBAAiB,EAChD;AACI,IAAA,OAAO,CACH,CAAE,QAAQ,EAAE,SAAS,CAAE,EACvB,CAAE,QAAQ,EAAE,QAAQ,CAAE,EACtB,CAAE,QAAQ,EAAE,QAAQ,CAAE,CACzB;AACL,EAAA;AACA,EAAA,OAAO,EAAE;AACb;AAEA,SAASG,YAAYA,CAACtF,WAAW,EACjC;EACI,IAAIA,WAAW,CAACmF,UAAU,KAAK,IAAI,EAAE,OAAO,CAAE,cAAc,EAAE,OAAO,CAAE;AACvE,EAAA,MAAMC,UAAU,GAAG3H,gBAAgB,CAACuC,WAAW,CAACmF,UAAU,CAAC;EAC3D,IAAIC,UAAU,EAAE,OAAO,CAAEA,UAAU,CAACzH,IAAI,EAAEyH,UAAU,CAACxH,UAAU,CAAE;EACjE,IAAIoC,WAAW,CAACmF,UAAU,KAAK,iBAAiB,EAAE,OAAO,CAAE,iBAAiB,EAAE,SAAS,CAAE;AACzF,EAAA,OAAO,CAAE,SAAS,EAAE,SAAS,CAAE;AACnC;AAEA,SAASI,UAAUA,CAAC1G,KAAK,EACzB;AACI,EAAA,IAAIA,KAAK,CAACkE,IAAI,KAAK,cAAc,EACjC;AACI,IAAA,OAAO,CACHlE,KAAK,CAACkE,IAAI,EAAElE,KAAK,CAACoB,YAAY,EAAEpB,KAAK,CAAC2G,cAAc,EAAE3G,KAAK,CAACS,OAAO,EACnET,KAAK,CAACU,SAAS,EAAEV,KAAK,CAAC6F,IAAI,EAAE7F,KAAK,CAAC8F,EAAE,CACxC,CAACX,IAAI,CAAC,GAAG,CAAC;AACf,EAAA;AACA,EAAA,IAAInF,KAAK,CAACkE,IAAI,KAAK,gBAAgB,EACnC;AACI,IAAA,OAAO,CACHlE,KAAK,CAACkE,IAAI,EAAElE,KAAK,CAACoB,YAAY,EAAEpB,KAAK,CAACS,OAAO,EAAET,KAAK,CAACU,SAAS,EAC9DV,KAAK,CAAC6F,IAAI,EAAE7F,KAAK,CAAC8F,EAAE,CACvB,CAACX,IAAI,CAAC,GAAG,CAAC;AACf,EAAA;AACA,EAAA,OAAO,CACHnF,KAAK,CAACkE,IAAI,EAAElE,KAAK,CAACoB,YAAY,EAAEpB,KAAK,CAACU,SAAS,EAAEV,KAAK,CAAC6F,IAAI,EAAE7F,KAAK,CAAC8F,EAAE,EACrE9F,KAAK,CAACK,MAAM,KAAK,CAAC,CACrB,CAAC8E,IAAI,CAAC,GAAG,CAAC;AACf;AAEA,SAASyB,gBAAgBA,CAAC1D,OAAO,EAAE/B,WAAW,EAC9C;EACI,MAAM,CAAErC,IAAI,EAAEC,UAAU,CAAE,GAAG0H,YAAY,CAACtF,WAAW,CAAC;AACtD,EAAA,MAAM0F,YAAY,GAAGR,oBAAoB,CAAClF,WAAW,CAAC;AACtD,EAAA,MAAM2F,QAAQ,GAAG3F,WAAW,CAAC2F,QAAQ;EACrC,IAAIA,QAAQ,EAAE5C,IAAI,KAAK,mBAAmB,IACnC4C,QAAQ,CAAChI,IAAI,KAAKA,IAAI,IACtBgI,QAAQ,CAAC/H,UAAU,KAAKA,UAAU,IAClC+H,QAAQ,CAACC,UAAU,KAAK,IAAI,IAC5BD,QAAQ,CAACE,mBAAmB,KAAK,IAAI,IACrCF,QAAQ,CAACD,YAAY,EAAE/E,MAAM,KAAK+E,YAAY,CAAC/E,MAAM,IACrD+E,YAAY,CAACnE,IAAI,CAAC,CAAC,CAAEuE,IAAI,EAAEjB,YAAY,CAAE,EAAE5E,YAAY,KAC1D;AACI,IAAA,MAAM8F,MAAM,GAAGJ,QAAQ,CAACD,YAAY,CAACzF,YAAY,CAAC;AAClD,IAAA,OAAO8F,MAAM,EAAE9F,YAAY,KAAKA,YAAY,IACrC8F,MAAM,CAACD,IAAI,KAAKA,IAAI,IACpBC,MAAM,CAAClB,YAAY,KAAKA,YAAY,IACpCkB,MAAM,CAACC,QAAQ,KAAK,MAAM,IAC1BD,MAAM,CAACE,YAAY,KAAK,SAAS;AAC5C,EAAA,CAAC,CAAC,EACN;IACI,MAAM,IAAI5F,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,iCAAiC,CAAC;AACnG,EAAA;EAEA,MAAM4F,QAAQ,GAAG,EAAE;EACnB,KAAK,MAAMlD,IAAI,IAAIhD,WAAW,CAAC4C,QAAQ,CAACC,KAAK,EAC7C;AACI,IAAA,IAAIG,IAAI,CAACD,IAAI,KAAK,eAAe,EACjC;MACI,MAAM,IAAI1C,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,2CAA2C,CAAC;AAC7G,IAAA;IACA,MAAM6F,QAAQ,GAAGT,YAAY,CAAC1C,IAAI,CAAC/C,YAAY,CAAC,GAAG,CAAC,CAAC;AACrD,IAAA,IAAI,CAACkG,QAAQ,IAAIA,QAAQ,KAAK,SAAS,EAAE;IACzCnD,IAAI,CAACC,IAAI,CAACE,OAAO,CAAC,CAAC9D,GAAG,EAAEmG,cAAc,KACtC;AACI,MAAA,MAAM7G,KAAK,GAAGoD,OAAO,CAACjD,MAAM,CAACoD,IAAI,CAAErD,KAAK,IAAKA,KAAK,CAACsD,EAAE,KAAK9C,GAAG,CAACC,OAAO,CAAC;MACtE,MAAM8G,OAAO,GAAGhC,gBAAgB,CAACzF,KAAK,EAAEU,GAAG,CAACE,SAAS,CAAC;MACtD,IAAI6G,OAAO,KAAKD,QAAQ,EACxB;QACID,QAAQ,CAACG,IAAI,CAAC;AACVtD,UAAAA,IAAI,EAAE,cAAc;UACpB9C,YAAY,EAAE+C,IAAI,CAAC/C,YAAY;UAC/BuF,cAAc;UACdlG,OAAO,EAAED,GAAG,CAACC,OAAO;UACpBC,SAAS,EAAEF,GAAG,CAACE,SAAS;AACxBmF,UAAAA,IAAI,EAAE0B,OAAO;AACbzB,UAAAA,EAAE,EAAEwB;AACR,SAAC,CAAC;AACN,MAAA;AACJ,IAAA,CAAC,CAAC;AACN,EAAA;EACA,IAAIvI,UAAU,KAAK,SAAS,EAC5B;IACI,KAAK,MAAM+F,KAAK,IAAI3D,WAAW,CAAC4C,QAAQ,CAACc,MAAM,EAC/C;AACI,MAAA,KAAK,MAAMnE,SAAS,IAAIoE,KAAK,CAAC3C,IAAI,EAClC;AACI,QAAA,MAAMrC,KAAK,GAAGoD,OAAO,CAACjD,MAAM,CAACoD,IAAI,CAAErD,KAAK,IAAKA,KAAK,CAACsD,EAAE,KAAKwB,KAAK,CAACrE,OAAO,CAAC;AACxE,QAAA,MAAM8G,OAAO,GAAGhC,gBAAgB,CAACzF,KAAK,EAAEY,SAAS,CAAC;QAClD,IAAI6G,OAAO,KAAKxI,UAAU,EAC1B;UACIsI,QAAQ,CAACG,IAAI,CAAC;AACVtD,YAAAA,IAAI,EAAE,gBAAgB;YACtB9C,YAAY,EAAE0D,KAAK,CAAC1D,YAAY;YAChCX,OAAO,EAAEqE,KAAK,CAACrE,OAAO;YACtBC,SAAS;AACTmF,YAAAA,IAAI,EAAE9G,UAAU;AAChB+G,YAAAA,EAAE,EAAEyB;AACR,WAAC,CAAC;AACN,QAAA;AACJ,MAAA;AACJ,IAAA;AACJ,EAAA;EACAV,YAAY,CAACvC,OAAO,CAAC,CAAC,GAAG0B,YAAY,CAAE,EAAE5E,YAAY,KACrD;AACI,IAAA,MAAML,OAAO,GAAGI,WAAW,CAAC8E,QAAQ,CAAC7E,YAAY,CAAC;IAClD,IAAIL,OAAO,EAAEC,QAAQ,KAAK,aAAa,IAAIgF,YAAY,KAAK,OAAO,EAAE;IACrEjF,OAAO,CAAC0B,eAAe,CAAC6B,OAAO,CAAC,CAACxE,KAAK,EAAE6G,cAAc,KACtD;MACIU,QAAQ,CAACG,IAAI,CAAC;AACVtD,QAAAA,IAAI,EAAE,mBAAmB;QACzB9C,YAAY;AACZV,QAAAA,SAAS,EAAElC,UAAU,CAACmI,cAAc,CAAC;AACrCd,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,EAAE,EAAE,OAAO;AACXzF,QAAAA,MAAM,EAAEP,KAAK,CAACO,MAAM,KAAK;AAC7B,OAAC,CAAC;AACN,IAAA,CAAC,CAAC;AACN,EAAA,CAAC,CAAC;EACF,MAAMoH,YAAY,GAAGJ,QAAQ,CAACzE,GAAG,CAAC8D,UAAU,CAAC,CAACxB,IAAI,EAAE;AACpD,EAAA,MAAMwC,UAAU,GAAG,CAACZ,QAAQ,CAACa,QAAQ,IAAI,EAAE,EAAE/E,GAAG,CAAC8D,UAAU,CAAC,CAACxB,IAAI,EAAE;AACnE,EAAA,IAAI,IAAIzF,GAAG,CAACiI,UAAU,CAAC,CAACjD,IAAI,KAAKiD,UAAU,CAAC5F,MAAM,IAC3C2F,YAAY,CAAC3F,MAAM,KAAK4F,UAAU,CAAC5F,MAAM,IACzC2F,YAAY,CAAC/E,IAAI,CAAC,CAAC1C,KAAK,EAAEyB,KAAK,KAAKzB,KAAK,KAAK0H,UAAU,CAACjG,KAAK,CAAC,CAAC,EACvE;IACI,MAAM,IAAID,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,oCAAoC,CAAC;AACtG,EAAA;AACJ;AAEA,SAASmG,eAAeA,CAACC,OAAO,EAChC;EACI,OAAOA,OAAO,CAACC,KAAK,EAAEC,UAAU,IAAIF,OAAO,CAAC5G,aAAa;AAC7D;AAEA,SAAS+G,YAAYA,CAACH,OAAO,EAC7B;AACI,EAAA,OAAOA,OAAO,CAACC,KAAK,EAAEG,aAAa,IAAI,CAAC;AAC5C;AAEA,SAASC,eAAeA,CAACL,OAAO,EAChC;AACI,EAAA,OAAO,CAAA,EAAGA,OAAO,CAACM,YAAY,IAAIH,YAAY,CAACH,OAAO,CAAC,CAAA,CAAA,EAAID,eAAe,CAACC,OAAO,CAAC,CAAA,CAAE;AACzF;AAEA,SAASO,oBAAoBA,CAACP,OAAO,EACrC;AACI,EAAA,MAAM5G,aAAa,GAAG4G,OAAO,CAAC5G,aAAa;AAC3C,EAAA,MAAM6G,KAAK,GAAGD,OAAO,CAACC,KAAK;EAC3B,IAAI,CAAClG,MAAM,CAACC,SAAS,CAACZ,aAAa,CAAC,IAAIA,aAAa,GAAG,CAAC,IAClD6G,KAAK,EAAEO,YAAY,KAAK,gBAAgB,IACxCP,KAAK,CAACQ,OAAO,KAAK,IAAI,IACtBR,KAAK,CAACC,UAAU,KAAK9G,aAAa,IAClC6G,KAAK,CAACS,UAAU,KAAKtH,aAAa,IAClC6G,KAAK,CAACU,SAAS,KAAK,KAAK,IACzBV,KAAK,CAACW,aAAa,KAAK,CAAC,IACzBX,KAAK,CAACG,aAAa,KAAK,CAAC,EAChC;IACI,MAAM,IAAIzG,KAAK,CAAC,CAAA,qBAAA,EAAwBqG,OAAO,CAACvE,EAAE,IAAI,WAAW,CAAA,kCAAA,CAAoC,CAAC;AAC1G,EAAA;AACJ;AAEA,SAASoF,0BAA0BA,CAACxF,OAAO,EAAE2E,OAAO,EAAEvB,UAAU,EAAEqC,WAAW,EAAEC,UAAU,EACzF;AACI,EAAA,MAAMC,YAAY,GAAG3F,OAAO,CAAC2F,YAAY,CAAC5E,MAAM,CAAEjE,KAAK,IACnDA,KAAK,CAAC8I,UAAU,KAAKjB,OAAO,CAACkB,iBAAiB,CAAC;AACnD,EAAA,IAAIF,YAAY,CAAC/G,MAAM,KAAK,CAAC,IAAI+G,YAAY,CAAC,CAAC,CAAC,CAACvC,UAAU,KAAKA,UAAU,EAC1E;IACI,MAAM,IAAI9E,KAAK,CAAC,CAAA,qBAAA,EAAwBqG,OAAO,CAACvE,EAAE,wCAAwC,CAAC;AAC/F,EAAA;AACA,EAAA,MAAM0F,WAAW,GAAGH,YAAY,CAAC,CAAC,CAAC;AACnC,EAAA,MAAMI,IAAI,GAAGD,WAAW,CAACC,IAAI;AAC7B,EAAA,MAAMlI,OAAO,GAAGiI,WAAW,CAAC/C,QAAQ,GAAG,CAAC,CAAC;EACzCiD,wBAAwB,CACpBrB,OAAO,CAACe,UAAU,EAClB,wBAAwBf,OAAO,CAACvE,EAAE,CAAA,CAAE,CAAC;EACzC4F,wBAAwB,CACpBD,IAAI,EAAEL,UAAU,EAChB,2CAA2CI,WAAW,CAACF,UAAU,CAAA,CAAE,CAAC;EACxEV,oBAAoB,CAACP,OAAO,CAAC;EAC7B,IAAIA,OAAO,CAACc,WAAW,KAAKA,WAAW,IAChCd,OAAO,CAACsB,iBAAiB,KAAK,QAAQ,IACtCtB,OAAO,CAACuB,eAAe,KAAK,IAAI,IAChCvB,OAAO,CAACwB,aAAa,KAAK,IAAI,IAC9BxB,OAAO,CAACe,UAAU,EAAEU,eAAe,EAAExH,MAAM,KAAK,CAAC,IACjD+F,OAAO,CAACe,UAAU,CAACU,eAAe,CAAC5G,IAAI,CAAE1C,KAAK,IAAKA,KAAK,KAAK4I,UAAU,CAAC,IACxEK,IAAI,EAAEhI,aAAa,KAAK4G,OAAO,CAAC5G,aAAa,IAC7CgI,IAAI,CAACM,qBAAqB,KAAK,QAAQ,IACtCjD,UAAU,KAAK,cAAc,IAAI2C,IAAI,CAACO,WAAW,KAAK,CAAE,IACxDlD,UAAU,KAAK,iCAAiC,IAC7C2C,IAAI,CAACQ,gBAAgB,KAAK,KAAM,IACpCR,IAAI,CAACL,UAAU,EAAEU,eAAe,EAAExH,MAAM,KAAK,CAAC,IAC9CmH,IAAI,CAACL,UAAU,CAACU,eAAe,CAAC5G,IAAI,CAAE1C,KAAK,IAAKA,KAAK,KAAK4I,UAAU,CAAC,IACrEI,WAAW,CAAC/C,QAAQ,EAAEnE,MAAM,KAAK,CAAC,EACzC;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,qBAAA,EAAwBqG,OAAO,CAACvE,EAAE,8CAA8C,CAAC;AACrG,EAAA;EACA5B,4BAA4B,CACxBX,OAAO,EACP;AAAEU,IAAAA,KAAK,EAAE,CAAA,YAAA,EAAeuH,WAAW,CAACF,UAAU,CAAA;AAAG,GAAC,EAClD,CAAC,EACDH,WAAW,CAAC;AAChB,EAAA,IAAI5H,OAAO,CAACkB,cAAc,KAAK,CAAC,IAAIlB,OAAO,CAACoB,IAAI,IAAIpB,OAAO,CAACqB,OAAO,IAAIrB,OAAO,CAACsB,QAAQ,EACvF;IACI,MAAM,IAAIb,KAAK,CAAC,CAAA,qBAAA,EAAwBqG,OAAO,CAACvE,EAAE,6CAA6C,CAAC;AACpG,EAAA;AACJ;AAEA,SAASoG,eAAeA,CAAC7B,OAAO,EAChC;EACI,OAAO;IACH8B,QAAQ,EAAE9B,OAAO,CAAC8B,QAAQ;IAC1BxB,YAAY,EAAEN,OAAO,CAACM,YAAY;IAClCyB,eAAe,EAAE/B,OAAO,CAAC+B,eAAe;IACxC3B,aAAa,EAAEJ,OAAO,CAACI,aAAa;IACpChH,aAAa,EAAE4G,OAAO,CAAC5G,aAAa;IACpCd,IAAI,EAAE0H,OAAO,CAAC1H,IAAI;IAClB0J,MAAM,EAAEhC,OAAO,CAACgC;GACnB;AACL;AAEA,SAASC,gBAAgBA,CAACC,QAAQ,EAAEC,WAAW,EAC/C;EACI,IAAIA,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAKC,SAAS,EAAE,OAAOF,QAAQ;AACtE,EAAA,IAAIC,WAAW,EAAEE,MAAM,KAAK,uBAAuB,IAC5CF,WAAW,CAACG,aAAa,KAAK,CAAC,IAC/B,CAAChE,KAAK,CAACiE,OAAO,CAACJ,WAAW,CAACD,QAAQ,CAAC,IACpCC,WAAW,CAACD,QAAQ,CAACjI,MAAM,KAAKiI,QAAQ,CAACjI,MAAM,EACtD;AACI,IAAA,MAAM,IAAIuI,SAAS,CAAC,yEAAyE,CAAC;AAClG,EAAA;AACA,EAAA,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAE;AACzB,EAAA,MAAMC,KAAK,GAAG,IAAI/K,GAAG,EAAE;AACvB,EAAA,KAAK,MAAMO,KAAK,IAAIgK,WAAW,CAACD,QAAQ,EACxC;AACI,IAAA,MAAMJ,QAAQ,GAAG,CAAA,EAAG3J,KAAK,CAACmI,YAAY,CAAA,CAAA,EAAInI,KAAK,CAACiI,aAAa,CAAA,CAAA,EAAIjI,KAAK,CAACiB,aAAa,CAAA,CAAE;IACtF,MAAMwJ,IAAI,GAAG,CAAA,EAAGzK,KAAK,CAAC0K,KAAK,CAAA,CAAA,EAAI1K,KAAK,CAAC6H,OAAO,CAAA,CAAE;AAC9C,IAAA,IAAI7H,KAAK,CAAC2J,QAAQ,KAAKA,QAAQ,IACxB3J,KAAK,CAAC2K,aAAa,KAAK,GAAGhB,QAAQ,CAAA,QAAA,CAAU,IAC7C3J,KAAK,CAAC4K,MAAM,EAAE9I,MAAM,KAAK,CAAC,IAAI9B,KAAK,CAAC4K,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAC3D,CAAChJ,MAAM,CAACC,SAAS,CAAC7B,KAAK,CAAC0K,KAAK,CAAC,IAAI1K,KAAK,CAAC0K,KAAK,GAAG,CAAC,IACjD,CAAC9I,MAAM,CAACC,SAAS,CAAC7B,KAAK,CAAC6H,OAAO,CAAC,IAAI7H,KAAK,CAAC6H,OAAO,GAAG,CAAC,IACrDyC,OAAO,CAAC5F,GAAG,CAACiF,QAAQ,CAAC,IAAIa,KAAK,CAAC9F,GAAG,CAAC+F,IAAI,CAAC,EAC/C;MACI,MAAM,IAAIjJ,KAAK,CAAC,CAAA,oDAAA,EAAuDxB,KAAK,CAAC2J,QAAQ,IAAIA,QAAQ,CAAA,CAAE,CAAC;AACxG,IAAA;AACAW,IAAAA,OAAO,CAAChF,GAAG,CAACqE,QAAQ,EAAE3J,KAAK,CAAC;AAC5BwK,IAAAA,KAAK,CAACjG,GAAG,CAACkG,IAAI,CAAC;AACnB,EAAA;AACA,EAAA,OAAOV,QAAQ,CAACnH,GAAG,CAAEiF,OAAO,IAC5B;IACI,MAAM7H,KAAK,GAAGsK,OAAO,CAACjG,GAAG,CAACwD,OAAO,CAAC8B,QAAQ,CAAC;AAC3C,IAAA,IAAI,CAAC3J,KAAK,IACH6K,IAAI,CAACC,SAAS,CAACpB,eAAe,CAAC7B,OAAO,CAAC,CAAC,KAAKgD,IAAI,CAACC,SAAS,CAAC;MAC3DnB,QAAQ,EAAE3J,KAAK,CAAC2J,QAAQ;MACxBxB,YAAY,EAAEnI,KAAK,CAACmI,YAAY;MAChCyB,eAAe,EAAE5J,KAAK,CAAC4J,eAAe;MACtC3B,aAAa,EAAEjI,KAAK,CAACiI,aAAa;MAClChH,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCd,IAAI,EAAEH,KAAK,CAACG,IAAI;MAChB0J,MAAM,EAAE7J,KAAK,CAAC6J;AAClB,KAAC,CAAC,EACN;MACI,MAAM,IAAIrI,KAAK,CAAC,CAAA,qCAAA,EAAwCqG,OAAO,CAAC8B,QAAQ,wCAAwC,CAAC;AACrH,IAAA;IACA,OAAO;AAAE,MAAA,GAAG9B,OAAO;MAAE8C,aAAa,EAAE3K,KAAK,CAAC2K,aAAa;MAAED,KAAK,EAAE1K,KAAK,CAAC0K,KAAK;MAAE7C,OAAO,EAAE7H,KAAK,CAAC6H;KAAS;AACzG,EAAA,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkD,yBAAyBA,CAAC7H,OAAO,EAAE8G,WAAW,GAAG,IAAI,EACrE;EACI,IAAI9G,OAAO,EAAEgH,MAAM,KAAK,eAAe,IAAIhH,OAAO,CAACiH,aAAa,KAAK,CAAC,EACtE;AACI,IAAA,MAAM,IAAIE,SAAS,CAAC,qEAAqE,CAAC;AAC9F,EAAA;AACA,EAAA,MAAMN,QAAQ,GAAG5D,KAAK,CAACN,IAAI,CAAC3C,OAAO,CAAC6G,QAAQ,IAAI,EAAE,CAAC,CAAC7E,IAAI,CAAC,CAACtE,IAAI,EAAEC,KAAK,KACjEmH,YAAY,CAACpH,IAAI,CAAC,GAAGoH,YAAY,CAACnH,KAAK,CAAC,IACrC,CAAClB,UAAU,CAACiB,IAAI,CAACuH,YAAY,CAAC,IAAI,EAAE,KAAKxI,UAAU,CAACkB,KAAK,CAACsH,YAAY,CAAC,IAAI,EAAE,CAAC,IAC9EP,eAAe,CAAChH,IAAI,CAAC,GAAGgH,eAAe,CAAC/G,KAAK,CAAC,IAC9CD,IAAI,CAACmI,iBAAiB,GAAGlI,KAAK,CAACkI,iBAAiB,CAAC;AACxD,EAAA,IAAIgB,QAAQ,CAACjI,MAAM,KAAK,CAAC,IAClBiI,QAAQ,CAAC9F,MAAM,CAAEjE,KAAK,IAAKA,KAAK,CAACmI,YAAY,KAAK,kBAAkB,CAAC,CAACrG,MAAM,KAAK,CAAC,IAClFiI,QAAQ,CAAC9F,MAAM,CAAEjE,KAAK,IAAKA,KAAK,CAACmI,YAAY,KAAK,kBAAkB,CAAC,CAACrG,MAAM,KAAK,CAAC,EACzF;AACI,IAAA,MAAM,IAAIN,KAAK,CAAC,0EAA0E,CAAC;AAC/F,EAAA;AACA,EAAA,MAAMwJ,UAAU,GAAG,IAAIvL,GAAG,EAAE;EAC5B,MAAMwL,OAAO,GAAGlB,QAAQ,CAACnH,GAAG,CAAC,CAACiF,OAAO,EAAEqD,YAAY,KACnD;AACI,IAAA,MAAMvB,QAAQ,GAAGzB,eAAe,CAACL,OAAO,CAAC;AACzC,IAAA,IAAImD,UAAU,CAACtG,GAAG,CAACiF,QAAQ,CAAC,EAC5B;AACI,MAAA,MAAM,IAAInI,KAAK,CAAC,CAAA,+CAAA,EAAkDmI,QAAQ,EAAE,CAAC;AACjF,IAAA;AACAqB,IAAAA,UAAU,CAACzG,GAAG,CAACoF,QAAQ,CAAC;AACxB,IAAA,MAAMwB,OAAO,GAAGtD,OAAO,CAACM,YAAY,KAAK,kBAAkB;IAC3DO,0BAA0B,CACtBxF,OAAO,EACP2E,OAAO,EACPsD,OAAO,GAAG,cAAc,GAAG,iCAAiC,EAC5DA,OAAO,GAAG,UAAU,GAAG,KAAK,EAC5BA,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9B,IAAA,MAAMlK,aAAa,GAAG2G,eAAe,CAACC,OAAO,CAAC;AAC9C,IAAA,MAAMI,aAAa,GAAGD,YAAY,CAACH,OAAO,CAAC;IAC3C,OAAO;AACH3D,MAAAA,IAAI,EAAE,cAAc;MACpBZ,EAAE,EAAEuE,OAAO,CAACvE,EAAE;MACdqG,QAAQ;MACRgB,aAAa,EAAE,CAAA,EAAGhB,QAAQ,CAAA,QAAA,CAAU;MACpCxB,YAAY,EAAEN,OAAO,CAACM,YAAY;MAClCyB,eAAe,EAAE,CAAA,EAAGhK,WAAW,CAACiI,OAAO,CAACM,YAAY,CAAC,CAAA,EAAGlH,aAAa,CAAA,CAAE;MACvEgH,aAAa;MACbhH,aAAa;AACbqH,MAAAA,OAAO,EAAE,IAAI;AACboC,MAAAA,KAAK,EAAE,CAAC;AACR7C,MAAAA,OAAO,EAAEqD,YAAY;AACrBE,MAAAA,UAAU,EAAE,SAAS;MACrBrC,iBAAiB,EAAElB,OAAO,CAACkB,iBAAiB;AAC5CC,MAAAA,WAAW,EAAEmC,OAAO,GAAG,oBAAoB,GAAG,0BAA0B;AACxEhL,MAAAA,IAAI,EAAEgL,OAAO,GAAG,YAAY,GAAG,oBAAoB;AACnDtB,MAAAA,MAAM,EAAE;AACJ1J,QAAAA,IAAI,EAAEgL,OAAO,GAAG,mBAAmB,GAAG,SAAS;AAC/CE,QAAAA,gBAAgB,EAAE,KAAK;AACvBC,QAAAA,cAAc,EAAE;AACpB;KACH;AACL,EAAA,CAAC,CAAC;EACF,OAAOzL,UAAU,CAACiK,gBAAgB,CAACmB,OAAO,EAAEjB,WAAW,CAAC,CAAC;AAC7D;AAEA,SAASuB,iBAAiBA,CAACxB,QAAQ,EAAE5B,YAAY,EAAEpH,OAAO,EAAEI,WAAW,EAAEC,YAAY,EACrF;EACIoK,0BAA0B,CAACrK,WAAW,EAAEC,YAAY,EAAEL,OAAO,CAACC,QAAQ,EAAE,SAAS,CAAC;EAClF,MAAM8C,OAAO,GAAGiG,QAAQ,CAAC9F,MAAM,CAAEjE,KAAK,IAClCA,KAAK,CAACmI,YAAY,KAAKA,YAAY,IAChCnI,KAAK,CAACiB,aAAa,KAAKF,OAAO,CAACE,aAAa,IAC7CjB,KAAK,CAACiI,aAAa,KAAK,CAAC,CAAC;AACjC,EAAA,IAAInE,OAAO,CAAChC,MAAM,KAAK,CAAC,EACxB;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,CAAA,mBAAA,EAAsB0G,YAAY,CAAA,QAAA,CAAU,CAAC;AAC9G,EAAA;EACA,OAAOsD,0BAA0B,CAAC1K,OAAO,EAAE+C,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AACrE;AAEA,SAAS4H,oBAAoBA,CAACxI,OAAO,EACrC;EACI,IAAIA,OAAO,EAAEgH,MAAM,KAAK,eAAe,IAAIhH,OAAO,CAACiH,aAAa,KAAK,CAAC,EACtE;AACI,IAAA,MAAM,IAAIE,SAAS,CAAC,6DAA6D,CAAC;AACtF,EAAA;AACA,EAAA,IAAInH,OAAO,CAACyI,KAAK,KAAK,SAAS,EAAE,MAAM,IAAInK,KAAK,CAAC,CAAA,mCAAA,EAAsC0B,OAAO,CAACyI,KAAK,EAAE,CAAC;AACvG,EAAA,IAAIzI,OAAO,CAAC0I,WAAW,EAAEC,KAAK,KAAK,CAAC,IAAI3I,OAAO,CAAC0I,WAAW,CAACE,KAAK,KAAK,CAAC,EACvE;AACI,IAAA,MAAM,IAAItK,KAAK,CAAC,uDAAuD,CAAC;AAC5E,EAAA;AACA,EAAA,IAAI,CAAC0B,OAAO,CAAC6I,UAAU,EAAEC,KAAK,IAAI,EAAE,EAAElK,MAAM,IACrC,CAACoB,OAAO,CAAC6I,UAAU,EAAEE,MAAM,IAAI,EAAE,EAAEnK,MAAM,IACzC,CAACoB,OAAO,CAAC6I,UAAU,EAAEG,KAAK,IAAI,EAAE,EAAEpK,MAAM,IACxCoB,OAAO,CAACiJ,uBAAuB,IAC/BjJ,OAAO,CAACkJ,WAAW,EAC1B;AACI,IAAA,MAAM,IAAI5K,KAAK,CAAC,wEAAwE,CAAC;AAC7F,EAAA;AACA,EAAA,IAAI0B,OAAO,CAAC2F,YAAY,EAAE/G,MAAM,KAAKnD,mBAAmB,CAACmD,MAAM,IACxDnD,mBAAmB,CAAC+D,IAAI,CAAC,CAAC4D,UAAU,EAAE7E,KAAK,KAC1CyB,OAAO,CAAC2F,YAAY,CAACpH,KAAK,CAAC,EAAE6E,UAAU,KAAKA,UAAU,CAAC,EAC/D;AACI,IAAA,MAAM,IAAI9E,KAAK,CAAC,0IAA0I,CAAC;AAC/J,EAAA;AACA,EAAA,MAAM6K,IAAI,GAAGnJ,OAAO,CAAC2F,YAAY,CAAC,CAAC,CAAC;AACpC,EAAA,MAAM6B,KAAK,GAAGxH,OAAO,CAAC2F,YAAY,CAAC,CAAC,CAAC;AACrC,EAAA,IAAIwD,IAAI,CAACpD,IAAI,EAAEqD,SAAS,KAAK,CAAC,IACvB5B,KAAK,CAACzB,IAAI,EAAEsD,YAAY,KAAK,CAAC,IAC9B7B,KAAK,CAACzB,IAAI,EAAEuD,YAAY,KAAK,CAAC,IAC9B9B,KAAK,CAACzB,IAAI,EAAEwD,YAAY,KAAK,CAAC,EACrC;AACI,IAAA,MAAM,IAAIjL,KAAK,CAAC,2EAA2E,CAAC;AAChG,EAAA;AACAkL,EAAAA,yBAAyB,CAACxJ,OAAO,EAAE,SAAS,CAAC;EAC7C,IAAI,CAACiD,KAAK,CAACiE,OAAO,CAAClH,OAAO,CAACyJ,YAAY,CAAC,IAAIzJ,OAAO,CAACyJ,YAAY,CAAC7K,MAAM,GAAG,CAAC,IACpEoB,OAAO,CAACyJ,YAAY,CAACC,EAAE,CAAC,EAAE,CAAC,EAAEtG,UAAU,KAAK,KAAK,IACjDpD,OAAO,CAACyJ,YAAY,CAACvH,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC1C,IAAI,CAAEvB,WAAW,IAAKA,WAAW,CAACmF,UAAU,KAAK,KAAK,CAAC,IACzFpD,OAAO,CAACyJ,YAAY,CAACjK,IAAI,CAAEvB,WAAW,IAAK,CAAC3B,iBAAiB,CAACkF,GAAG,CAACvD,WAAW,CAACmF,UAAU,CAAC,CAAC,IAC1FpD,OAAO,CAACyJ,YAAY,CAACjK,IAAI,CAAC,CAACvB,WAAW,EAAEM,KAAK,KAC5CN,WAAW,CAACM,KAAK,KAAKA,KAAK,IACvBA,KAAK,GAAG,CAAC,IAAIN,WAAW,CAAC2H,UAAU,IAAI5F,OAAO,CAACyJ,YAAY,CAAClL,KAAK,GAAG,CAAC,CAAC,CAACqH,UAAW,CAAC,EAC/F;AACI,IAAA,MAAM,IAAItH,KAAK,CAAC,iGAAiG,CAAC;AACtH,EAAA;AACA,EAAA,MAAMqL,KAAK,GAAG3J,OAAO,CAAC4J,MAAM,GAAG,CAAC,CAAC;EACjC,IAAI5J,OAAO,CAAC4J,MAAM,EAAEhL,MAAM,KAAK,CAAC,IACzB+K,KAAK,CAACvJ,EAAE,KAAK,QAAQ,IAAIuJ,KAAK,CAACpL,KAAK,KAAK,CAAC,IAC1CoL,KAAK,CAACE,gBAAgB,KAAK,CAAC,IAC5BF,KAAK,CAACG,cAAc,KAAK9J,OAAO,CAACyJ,YAAY,CAAC7K,MAAM,GAAG,CAAC,IACxD+K,KAAK,CAACI,UAAU,KAAK,KAAK,IAC1BJ,KAAK,CAACK,SAAS,KAAK,KAAK,IACzBL,KAAK,CAACM,UAAU,EAAErL,MAAM,IAAI+K,KAAK,CAACO,YAAY,EAAEtL,MAAM,IACtD+K,KAAK,CAACQ,SAAS,KAAK,IAAI,IACxBR,KAAK,CAACS,aAAa,EAAExL,MAAM,IAC3B+K,KAAK,CAACU,kBAAkB,EAAEzL,MAAM,KAAKoB,OAAO,CAACyJ,YAAY,CAAC7K,MAAM,IAChE+K,KAAK,CAACU,kBAAkB,CAAC7K,IAAI,CAAC,CAAC5C,KAAK,EAAE2B,KAAK,KAAK3B,KAAK,KAAK2B,KAAK,CAAC,EACvE;AACI,IAAA,MAAM,IAAID,KAAK,CAAC,uEAAuE,CAAC;AAC5F,EAAA;AACJ;AAEA,SAASgM,2BAA2BA,CAACrM,WAAW,EAChD;AACI,EAAA,MAAMsM,QAAQ,GAAGtM,WAAW,CAACmF,UAAU,KAAK,KAAK;AACjD,EAAA,IAAInF,WAAW,CAACuM,WAAW,MAAMD,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC,IAC1DtM,WAAW,CAACwM,WAAW,KAAK,IAAI,IAChCxM,WAAW,CAACyM,QAAQ,IACpBzM,WAAW,CAAC0M,WAAW,KAAK,EAAE,IAC7B1M,WAAW,CAACmF,UAAU,KAAK,IAAI,IAAInF,WAAW,CAAC2M,UAAU,EAAEhM,MAAO,EAC1E;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,yBAAA,EAA4BL,WAAW,CAACM,KAAK,2DAA2D,CAAC;AAC7H,EAAA;AACA,EAAA,KAAK,IAAIL,YAAY,GAAG,CAAC,EAAEA,YAAY,GAAGD,WAAW,CAAC8E,QAAQ,CAACnE,MAAM,EAAEV,YAAY,IAAI,CAAC,EACxF;IACIF,qBAAqB,CAACC,WAAW,CAAC8E,QAAQ,CAAC7E,YAAY,CAAC,EAAED,WAAW,EAAEC,YAAY,CAAC;AACxF,EAAA;AACJ;AAEA,SAAS2M,sBAAsBA,CAAC5M,WAAW,EAC3C;AACI,EAAA,MAAM2M,UAAU,GAAG3M,WAAW,CAAC2M,UAAU,IAAI,EAAE;EAC/CE,8BAA8B,CAACF,UAAU,EAAE;AACvC3E,IAAAA,iBAAiB,EAAE,CAAC;AACpBI,IAAAA,qBAAqB,EAAE,QAAQ;AAC/BH,IAAAA,eAAe,EAAE,CAAC;IAClB6E,mBAAmB,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrC,GAAC,EAAE,CAAA,8BAAA,EAAiC9M,WAAW,CAACM,KAAK,EAAE,CAAC;AAC5D;AAEA,SAASyM,2BAA2BA,CAAC/M,WAAW,EAChD;AACI,EAAA,MAAMJ,OAAO,GAAGI,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC;AACvC/E,EAAAA,qBAAqB,CAACH,OAAO,EAAEI,WAAW,EAAE,CAAC,CAAC;AAC9C,EAAA,IAAIJ,OAAO,CAACC,QAAQ,KAAK,MAAM,IACxBD,OAAO,CAACkB,cAAc,KAAK,CAAC,IAC5BlB,OAAO,CAACE,aAAa,KAAK,IAAI,IAC9BF,OAAO,CAACY,OAAO,EAAEG,MAAM,IACvBf,OAAO,CAACoB,IAAI,IAAIpB,OAAO,CAACqB,OAAO,IAAIrB,OAAO,CAACsB,QAAQ,IACnDtB,OAAO,CAAC0B,eAAe,EAAEX,MAAM,EACtC;IACI,MAAM,IAAIN,KAAK,CAAC,CAAA,8BAAA,EAAiCL,WAAW,CAACM,KAAK,mCAAmC,CAAC;AAC1G,EAAA;AACJ;AAEA,SAAS0M,iBAAiBA,CAACjL,OAAO,EAClC;AACI,EAAA,MAAMU,KAAK,GAAG,IAAI2G,GAAG,EAAE;AACvB,EAAA,MAAM6D,QAAQ,GAAG,IAAI3O,GAAG,EAAE;EAC1B,KAAK,MAAMK,KAAK,IAAIoD,OAAO,CAACjD,MAAM,IAAI,EAAE,EACxC;IACI,IAAImO,QAAQ,CAAC1J,GAAG,CAAC5E,KAAK,CAACwD,EAAE,CAAC,EAC1B;MACI,MAAM,IAAI9B,KAAK,CAAC,CAAA,8CAAA,EAAiD1B,KAAK,CAACwD,EAAE,EAAE,CAAC;AAChF,IAAA;AACA8K,IAAAA,QAAQ,CAAC7J,GAAG,CAACzE,KAAK,CAACwD,EAAE,CAAC;AACtB,IAAA,IAAI,CAAC,CAAE,oBAAoB,EAAE,mBAAmB,CAAE,CAACpB,QAAQ,CAACpC,KAAK,CAAC2D,MAAM,CAAC,IAClE3D,KAAK,CAACyD,QAAQ,KAAK,SAAS,IAC5BzD,KAAK,CAAC0D,SAAS,CAAC1B,MAAM,KAAK,CAAC,IAC5B,CAACtD,UAAU,CAAC0D,QAAQ,CAACpC,KAAK,CAAC0D,SAAS,CAAC,IACrC/E,MAAM,CAACiB,IAAI,CAACI,KAAK,CAAC0F,cAAc,IAAI,EAAE,CAAC,CAAC1D,MAAM,KAAK,CAAC,KACnDhC,KAAK,CAAC2D,MAAM,KAAK,mBAAmB,GAClC,CAACvD,cAAc,CAACJ,KAAK,CAAC0F,cAAc,CAAC1F,KAAK,CAAC0D,SAAS,CAAC,CAAC,GACtD1D,KAAK,CAAC0F,cAAc,CAAC1F,KAAK,CAAC0D,SAAS,CAAC,KAAK,SAAS,CAAC,EAC9D;MACI,MAAM,IAAIhC,KAAK,CAAC,CAAA,mBAAA,EAAsB1B,KAAK,CAACwD,EAAE,8CAA8C,CAAC;AACjG,IAAA;AACA,IAAA,IAAIxD,KAAK,CAAC2D,MAAM,KAAK,oBAAoB,EACzC;AACI,MAAA,IAAI3D,KAAK,CAACiF,gBAAgB,KAAK,IAAI,IAAIjF,KAAK,CAACuO,OAAO,KAAK,IAAI,IAAIvO,KAAK,CAACmF,QAAQ,KAAK,IAAI,EACxF;QACI,MAAM,IAAIzD,KAAK,CAAC,CAAA,6BAAA,EAAgC1B,KAAK,CAACwD,EAAE,mCAAmC,CAAC;AAChG,MAAA;MACA,MAAMgL,GAAG,GAAG,CAAA,EAAGxO,KAAK,CAACyD,QAAQ,CAAA,CAAA,EAAIzD,KAAK,CAAC0D,SAAS,CAAA,CAAE;AAClD,MAAA,IAAII,KAAK,CAACc,GAAG,CAAC4J,GAAG,CAAC,EAClB;AACI,QAAA,MAAM,IAAI9M,KAAK,CAAC,CAAA,kDAAA,EAAqD8M,GAAG,EAAE,CAAC;AAC/E,MAAA;AACA1K,MAAAA,KAAK,CAAC0B,GAAG,CAACgJ,GAAG,EAAE;QAAE7N,OAAO,EAAEX,KAAK,CAACwD,EAAE;QAAE5C,SAAS,EAAEZ,KAAK,CAAC0D;AAAU,OAAC,CAAC;AACrE,IAAA,CAAC,MACI,IAAI1D,KAAK,CAACuO,OAAO,KAAK,QAAQ,EACnC;MACI,MAAM,IAAI7M,KAAK,CAAC,CAAA,+BAAA,EAAkC1B,KAAK,CAACwD,EAAE,iCAAiC,CAAC;AAChG,IAAA;AACJ,EAAA;AACA,EAAA,OAAOM,KAAK;AAChB;AAEA,SAAS2K,mBAAmBA,CAACrL,OAAO,EAAEU,KAAK,EAC3C;EACI,MAAM4K,OAAO,GAAGtL,OAAO,CAAC4J,MAAM,CAAC,CAAC,CAAC,CAAC2B,YAAY,IAAI,EAAE;AACpD,EAAA,MAAMnH,QAAQ,GAAGnB,KAAK,CAACN,IAAI,CAACjC,KAAK,EAAE,CAAC,CAAE0K,GAAG,EAAE9N,GAAG,CAAE,KAChD;AACI,IAAA,MAAMkO,KAAK,GAAGJ,GAAG,CAACK,WAAW,CAAC,GAAG,CAAC;IAClC,OAAO;MAAEpL,QAAQ,EAAE+K,GAAG,CAAClJ,KAAK,CAAC,CAAC,EAAEsJ,KAAK,CAAC;MAAEhO,SAAS,EAAE4N,GAAG,CAAClJ,KAAK,CAACsJ,KAAK,GAAG,CAAC,CAAC;AAAElO,MAAAA;KAAK;AAClF,EAAA,CAAC,CAAC,CAAC0E,IAAI,CAAC,CAACtE,IAAI,EAAEC,KAAK,KAChBD,IAAI,CAAC2C,QAAQ,CAACqL,aAAa,CAAC/N,KAAK,CAAC0C,QAAQ,CAAC,IAAI3C,IAAI,CAACF,SAAS,CAACkO,aAAa,CAAC/N,KAAK,CAACH,SAAS,CAAC,CAAC;AACjG,EAAA,MAAMwG,MAAM,GAAGsH,OAAO,CAACpJ,KAAK,EAAE,CAACF,IAAI,CAAC,CAACtE,IAAI,EAAEC,KAAK,KAC5CD,IAAI,CAAC2C,QAAQ,CAACqL,aAAa,CAAC/N,KAAK,CAAC0C,QAAQ,CAAC,IAAI3C,IAAI,CAACF,SAAS,CAACkO,aAAa,CAAC/N,KAAK,CAACH,SAAS,CAAC,CAAC;EACjG,IAAIwG,MAAM,CAACpF,MAAM,KAAKwF,QAAQ,CAACxF,MAAM,IAC9BwF,QAAQ,CAAC5E,IAAI,CAAC,CAAC1C,KAAK,EAAEyB,KAAK,KAC1ByF,MAAM,CAACzF,KAAK,CAAC,EAAE8B,QAAQ,KAAKvD,KAAK,CAACuD,QAAQ,IACvC2D,MAAM,CAACzF,KAAK,CAAC,EAAEf,SAAS,KAAKV,KAAK,CAACU,SAAS,IAC5C,CAACC,OAAO,CAACuG,MAAM,CAACzF,KAAK,CAAC,EAAEjB,GAAG,EAAER,KAAK,CAACQ,GAAG,CAAC,CAAC,EACnD;AACI,IAAA,MAAM,IAAIgB,KAAK,CAAC,0EAA0E,CAAC;AAC/F,EAAA;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqN,6BAA6BA,CAAC3L,OAAO,EAAE4L,OAAO,GAAG,EAAE,EAC5D;EACIpD,oBAAoB,CAACxI,OAAO,CAAC;EAC7B,MAAM6G,QAAQ,GAAGgB,yBAAyB,CAAC7H,OAAO,EAAE4L,OAAO,CAAC9E,WAAW,IAAI,IAAI,CAAC;AAChF,EAAA,MAAMpG,KAAK,GAAGuK,iBAAiB,CAACjL,OAAO,CAAC;AACxC,EAAA,MAAM0B,eAAe,GAAG,IAAInF,GAAG,EAAE;EACjC,MAAMsP,UAAU,GAAG,EAAE;AAErB,EAAA,KAAK,MAAM5N,WAAW,IAAI+B,OAAO,CAACyJ,YAAY,EAC9C;IACIa,2BAA2B,CAACrM,WAAW,CAAC;AACxCyF,IAAAA,gBAAgB,CAAC1D,OAAO,EAAE/B,WAAW,CAAC;AACtC,IAAA,MAAM0C,aAAa,GAAG,IAAIpE,GAAG,EAAE;AAE/B,IAAA,IAAI0B,WAAW,CAACmF,UAAU,KAAK,KAAK,EACpC;MACI,IAAInF,WAAW,CAAC8E,QAAQ,CAACnE,MAAM,IAAIX,WAAW,CAAC4C,QAAQ,CAACC,KAAK,CAAClC,MAAM,IAAIX,WAAW,CAAC4C,QAAQ,CAACc,MAAM,CAAC/C,MAAM,EAC1G;QACI,MAAM,IAAIN,KAAK,CAAC,CAAA,gCAAA,EAAmCL,WAAW,CAACM,KAAK,uBAAuB,CAAC;AAChG,MAAA;MACAsN,UAAU,CAACvH,IAAI,CAAC;AACZtD,QAAAA,IAAI,EAAE,QAAQ;QACda,gBAAgB,EAAE5D,WAAW,CAACM,KAAK;QACnCqH,UAAU,EAAE3H,WAAW,CAAC2H;AAC5B,OAAC,CAAC;AACF,MAAA;AACJ,IAAA;AAEA,IAAA,IAAI3H,WAAW,CAACmF,UAAU,KAAK,IAAI,EACnC;AACI,MAAA,IAAInF,WAAW,CAAC8E,QAAQ,CAACnE,MAAM,KAAK,CAAC,EACrC;QACI,MAAM,IAAIN,KAAK,CAAC,CAAA,8BAAA,EAAiCL,WAAW,CAACM,KAAK,0BAA0B,CAAC;AACjG,MAAA;MACAsM,sBAAsB,CAAC5M,WAAW,CAAC;AACnC,MAAA,MAAM6N,WAAW,GAAG7N,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC;AAC3CjE,MAAAA,0BAA0B,CAACgN,WAAW,EAAE7N,WAAW,EAAE,CAAC,CAAC;AACvD,MAAA,IAAI6N,WAAW,CAAC7M,IAAI,KAAK,GAAG,EAC5B;QACI,MAAM,IAAIX,KAAK,CAAC,CAAA,8BAAA,EAAiCL,WAAW,CAACM,KAAK,sDAAsD,CAAC;AAC7H,MAAA;MACA,MAAMwN,OAAO,GAAGpM,aAAa,CACzBN,aAAa,CAACpB,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC,EAAE9E,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,EAC5D,QAAQ,CAAC;AACb,MAAA,MAAM+N,QAAQ,GAAGxN,4BAA4B,CACzCP,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC,EAAE9E,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC;AACxD,MAAA,IAAI+N,QAAQ,CAACjN,cAAc,KAAK,CAAC,IAAIiN,QAAQ,CAAC9M,OAAO,KAAK,MAAM,IACzD8M,QAAQ,CAAC/M,IAAI,IAAI+M,QAAQ,CAAC7M,QAAQ,EACzC;QACI,MAAM,IAAIb,KAAK,CAAC,CAAA,8BAAA,EAAiCL,WAAW,CAACM,KAAK,+CAA+C,CAAC;AACtH,MAAA;AACA,MAAA,MAAMoG,OAAO,GAAG0D,iBAAiB,CAC7BxB,QAAQ,EAAE,kBAAkB,EAAEmF,QAAQ,EAAE/N,WAAW,EAAE,CAAC,CAAC;MAC3D,MAAM;QAAE2D,KAAK;AAAEhF,QAAAA;AAAM,OAAC,GAAG6E,aAAa,CAClCzB,OAAO,EAAE/B,WAAW,EAAE,CAAC,EAAE6N,WAAW,EAAEpL,KAAK,EAAEgB,eAAe,CAAC;AACjEJ,MAAAA,yBAAyB,CAACrD,WAAW,EAAE0C,aAAa,CAAC;AACrD,MAAA,MAAM/B,MAAM,GAAG,CAAA,aAAA,EAAgB+F,OAAO,CAAC+B,eAAe,CAAA,CAAA,CAAG;AACzD,MAAA,MAAMuF,SAAS,GAAG,CAAA,WAAA,EAActH,OAAO,CAAC+B,eAAe,CAAA,KAAA,EAAQqF,OAAO,CAAA,EAAA,EAAKnN,MAAM,CAAA,SAAA,EAAYmN,OAAO,CAAA,GAAA,EAAMnN,MAAM,CAAA,CAAA,CAAG;MACnH,MAAMyF,OAAO,GAAGhC,gBAAgB,CAACzF,KAAK,EAAEgF,KAAK,CAAC3C,IAAI,CAAC;MACnD4M,UAAU,CAACvH,IAAI,CAAC;AACZtD,QAAAA,IAAI,EAAE,KAAK;QACXa,gBAAgB,EAAE5D,WAAW,CAACM,KAAK;QACnCqH,UAAU,EAAE3H,WAAW,CAAC2H,UAAU;QAClCsG,IAAI,EAAEtP,KAAK,CAACwD,EAAE;AACdnD,QAAAA,IAAI,EAAED,cAAc,CAACqH,OAAO,CAAC;AAC7B8H,QAAAA,UAAU,EAAE;UACR3J,IAAI,EAAED,eAAe,CAAC0J,SAAS,EAAE,OAAO,EAAE5H,OAAO,CAAC;UAClDpH,IAAI,EAAED,cAAc,CAACqH,OAAO;AAChC;AACJ,OAAC,CAAC;AACF,MAAA;AACJ,IAAA;AAEA,IAAA,MAAMhB,UAAU,GAAG3H,gBAAgB,CAACuC,WAAW,CAACmF,UAAU,CAAC;AAC3D,IAAA,IAAIC,UAAU,EACd;AACI,MAAA,IAAIpF,WAAW,CAAC8E,QAAQ,CAACnE,MAAM,MAAMX,WAAW,CAACmF,UAAU,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAC/E;AACI,QAAA,MAAM,IAAI9E,KAAK,CAAC,CAAA,aAAA,EAAgBL,WAAW,CAACmF,UAAU,CAAA,aAAA,EAAgBnF,WAAW,CAACM,KAAK,CAAA,iCAAA,CAAmC,CAAC;AAC/H,MAAA;MACA,IAAIN,WAAW,CAACmF,UAAU,KAAK,MAAM,EAAE4H,2BAA2B,CAAC/M,WAAW,CAAC;MAC/E,MAAM6N,WAAW,GAAG7N,WAAW,CAAC8E,QAAQ,CAACM,UAAU,CAACvH,kBAAkB,CAAC;MACvEgD,0BAA0B,CAACgN,WAAW,EAAE7N,WAAW,EAAEoF,UAAU,CAACvH,kBAAkB,CAAC;MACnF,MAAMsQ,OAAO,GAAG/I,UAAU,CAACtH,cAAc,CAAC2D,GAAG,CAAExB,YAAY,IACvD2E,QAAQ,CAAC7C,OAAO,EAAE/B,WAAW,EAAEC,YAAY,EAAEmF,UAAU,CAACrH,UAAU,EAAE0E,KAAK,EAAEC,aAAa,CAAC,CAAC;AAC9FW,MAAAA,yBAAyB,CAACrD,WAAW,EAAE0C,aAAa,CAAC;AACrD,MAAA,MAAMsL,SAAS,GAAG5I,UAAU,CAAClH,YAAY,GACnC,CAAA,EAAGkH,UAAU,CAAClH,YAAY,CAAA,CAAA,EAAIiQ,OAAO,CAACnK,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,GACnD,CAAA,CAAA,EAAImK,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI/I,UAAU,CAACpH,QAAQ,CAAA,CAAA,EAAImQ,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;MAC5D,MAAM;QAAExK,KAAK;AAAEhF,QAAAA;AAAM,OAAC,GAAG6E,aAAa,CAClCzB,OAAO,EAAE/B,WAAW,EAAEoF,UAAU,CAACvH,kBAAkB,EACnDgQ,WAAW,EAAEpL,KAAK,EAAEgB,eAAe,CAAC;MACxC,MAAM2C,OAAO,GAAGhC,gBAAgB,CAACzF,KAAK,EAAEgF,KAAK,CAAC3C,IAAI,CAAC;MACnD4M,UAAU,CAACvH,IAAI,CAAC;AACZtD,QAAAA,IAAI,EAAE,KAAK;QACXa,gBAAgB,EAAE5D,WAAW,CAACM,KAAK;QACnCqH,UAAU,EAAE3H,WAAW,CAAC2H,UAAU;QAClCsG,IAAI,EAAEtP,KAAK,CAACwD,EAAE;AACdnD,QAAAA,IAAI,EAAED,cAAc,CAACqH,OAAO,CAAC;AAC7B8H,QAAAA,UAAU,EAAE;UACR3J,IAAI,EAAED,eAAe,CAAC0J,SAAS,EAAE5I,UAAU,CAACxH,UAAU,EAAEwI,OAAO,CAAC;UAChEpH,IAAI,EAAED,cAAc,CAACqH,OAAO;AAChC;AACJ,OAAC,CAAC;AACF,MAAA;AACJ,IAAA;AAEA,IAAA,IAAIpG,WAAW,CAACmF,UAAU,KAAK,iBAAiB,EAChD;AACI,MAAA,IAAInF,WAAW,CAAC8E,QAAQ,CAACnE,MAAM,KAAK,CAAC,IAAIX,WAAW,CAAC4C,QAAQ,CAACc,MAAM,CAAC/C,MAAM,EAC3E;QACI,MAAM,IAAIN,KAAK,CAAC,CAAA,+BAAA,EAAkCL,WAAW,CAACM,KAAK,iCAAiC,CAAC;AACzG,MAAA;AACA,MAAA,MAAM8N,GAAG,GAAG7N,4BAA4B,CACpCP,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC,EAAE9E,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;AACnD,MAAA,IAAIoO,GAAG,CAACtN,cAAc,KAAK,CAAC,IAAIsN,GAAG,CAACpN,IAAI,KAAK,MAAM,IAC5CoN,GAAG,CAACnN,OAAO,IAAImN,GAAG,CAAClN,QAAQ,EAClC;QACI,MAAM,IAAIb,KAAK,CAAC,CAAA,+BAAA,EAAkCL,WAAW,CAACM,KAAK,gCAAgC,CAAC;AACxG,MAAA;AACA,MAAA,MAAMoG,OAAO,GAAG0D,iBAAiB,CAC7BxB,QAAQ,EAAE,kBAAkB,EAAEwF,GAAG,EAAEpO,WAAW,EAAE,CAAC,CAAC;MACtD,MAAM8N,OAAO,GAAGpM,aAAa,CACzBN,aAAa,CAACpB,WAAW,CAAC8E,QAAQ,CAAC,CAAC,CAAC,EAAE9E,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,EAC5D,QAAQ,CAAC;AACb,MAAA,MAAMrB,KAAK,GAAGoG,mBAAmB,CAC7BhD,OAAO,EAAE/B,WAAW,EAAE,CAAC,EAAEyC,KAAK,EAAEC,aAAa,CAAC;AAClDW,MAAAA,yBAAyB,CAACrD,WAAW,EAAE0C,aAAa,CAAC;MACrDkL,UAAU,CAACvH,IAAI,CAAC;AACZtD,QAAAA,IAAI,EAAE,IAAI;QACVa,gBAAgB,EAAE5D,WAAW,CAACM,KAAK;QACnCqH,UAAU,EAAE3H,WAAW,CAAC2H,UAAU;AAClC0G,QAAAA,SAAS,EAAE;AACP9J,UAAAA,IAAI,EAAE,CAAA,EAAGuJ,OAAO,mBAAmBpH,OAAO,CAAC+B,eAAe,CAAA,CAAA,CAAG;AAC7DzJ,UAAAA,IAAI,EAAE;SACT;AACD4O,QAAAA,UAAU,EAAE,CAAE;AACV7K,UAAAA,IAAI,EAAE,MAAM;UACZa,gBAAgB,EAAE5D,WAAW,CAACM,KAAK;UACnCqH,UAAU,EAAE3H,WAAW,CAAC2H,UAAU;AAClCuG,UAAAA,UAAU,EAAE;YACR3J,IAAI,EAAE,gBAAgBmC,OAAO,CAAC+B,eAAe,CAAA,CAAA,EAAIqF,OAAO,CAAA,GAAA,EAAMnP,KAAK,CAAA,CAAA,CAAG;AACtEK,YAAAA,IAAI,EAAE;AACV;SACH;AACL,OAAC,CAAC;AACN,IAAA;AACJ,EAAA;EAEA,IAAIyE,eAAe,CAACH,IAAI,KAAKvB,OAAO,CAACjD,MAAM,CAACgE,MAAM,CAAEnE,KAAK,IACrDA,KAAK,CAAC2D,MAAM,KAAK,mBAAmB,CAAC,CAAC3B,MAAM,EAChD;AACI,IAAA,MAAM,IAAIN,KAAK,CAAC,kEAAkE,CAAC;AACvF,EAAA;AACA+M,EAAAA,mBAAmB,CAACrL,OAAO,EAAEU,KAAK,CAAC;AACnC,EAAA,OAAO/D,UAAU,CAAC;AACdqE,IAAAA,IAAI,EAAE,sBAAsB;AAC5BgG,IAAAA,MAAM,EAAE,kBAAkB;AAC1BC,IAAAA,aAAa,EAAE,CAAC;IAChBsF,MAAM,EAAEvM,OAAO,CAACuM,MAAM;AACtB9D,IAAAA,KAAK,EAAE,SAAS;AAChB+D,IAAAA,UAAU,EAAE,MAAM;AAClBC,IAAAA,eAAe,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;IAC5B5F,QAAQ;AACRgF,IAAAA;AACJ,GAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASa,mBAAmBA,CAAC1M,OAAO,EAAE4L,OAAO,GAAG,EAAE,EACzD;AACIe,EAAAA,4BAA4B,CAAC3M,OAAO,EAAE,cAAc,CAAC;AACrD,EAAA,IAAI4M,6BAA6B,CAAC5M,OAAO,CAAC,EAC1C;AACI,IAAA,OAAO6M,qCAAqC,CAAC7M,OAAO,EAAE4L,OAAO,CAAC;AAClE,EAAA;AACA,EAAA,IAAIkB,kCAAkC,CAAC9M,OAAO,CAAC,EAC/C;AACI,IAAA,OAAO+M,0CAA0C,CAAC/M,OAAO,EAAE4L,OAAO,CAAC;AACvE,EAAA;AACA,EAAA,IAAIoB,8BAA8B,CAAChN,OAAO,CAAC,EAC3C;AACI,IAAA,OAAOiN,+BAA+B,CAACjN,OAAO,EAAE4L,OAAO,CAAC;AAC5D,EAAA;AACA,EAAA,IAAIsB,gCAAgC,CAAClN,OAAO,CAAC,EAC7C;AACI,IAAA,OAAOmN,mCAAmC,CAACnN,OAAO,EAAE4L,OAAO,CAAC;AAChE,EAAA;AACA,EAAA,IAAIwB,+BAA+B,CAACpN,OAAO,CAAC,EAC5C;AACI,IAAA,OAAOqN,kCAAkC,CAACrN,OAAO,EAAE4L,OAAO,CAAC;AAC/D,EAAA;AACA,EAAA,IAAI0B,oBAAoB,CAACtN,OAAO,CAAC,EACjC;AACI,IAAA,OAAOuN,uBAAuB,CAACvN,OAAO,EAAE4L,OAAO,CAAC;AACpD,EAAA;AACA,EAAA,IAAI4B,yBAAyB,CAACxN,OAAO,CAAC,EACtC;AACI,IAAA,OAAOyN,4BAA4B,CAACzN,OAAO,EAAE4L,OAAO,CAAC;AACzD,EAAA;AACA,EAAA,IAAI8B,wBAAwB,CAAC1N,OAAO,CAAC,EACrC;AACI,IAAA,OAAO2N,2BAA2B,CAAC3N,OAAO,EAAE4L,OAAO,CAAC;AACxD,EAAA;AACA,EAAA,IAAIgC,4BAA4B,CAAC5N,OAAO,CAAC,EACzC;AACI,IAAA,OAAO6N,+BAA+B,CAAC7N,OAAO,EAAE4L,OAAO,CAAC;AAC5D,EAAA;AACA,EAAA,OAAOD,6BAA6B,CAAC3L,OAAO,EAAE4L,OAAO,CAAC;AAC1D;;;;"}