zudoku 0.65.3 → 0.66.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 (256) hide show
  1. package/dist/app/sentry.js +1 -1
  2. package/dist/config/validators/BuildSchema.js +18 -3
  3. package/dist/config/validators/BuildSchema.js.map +1 -1
  4. package/dist/config/validators/validate.d.ts +45 -3
  5. package/dist/config/validators/validate.js +7 -1
  6. package/dist/config/validators/validate.js.map +1 -1
  7. package/dist/flat-config.d.ts +9 -2
  8. package/dist/lib/components/Mermaid.d.ts +7 -0
  9. package/dist/lib/components/Mermaid.js +42 -0
  10. package/dist/lib/components/Mermaid.js.map +1 -0
  11. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  12. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  13. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  14. package/dist/lib/components/Zudoku.js +2 -5
  15. package/dist/lib/components/Zudoku.js.map +1 -1
  16. package/dist/lib/core/RouteGuard.js +1 -1
  17. package/dist/lib/core/RouteGuard.js.map +1 -1
  18. package/dist/lib/core/plugins.d.ts +3 -3
  19. package/dist/lib/oas/parser/index.d.ts +1 -0
  20. package/dist/lib/oas/parser/index.js.map +1 -1
  21. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  22. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  23. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  24. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  25. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  26. package/dist/lib/plugins/openapi/OasProvider.js +22 -13
  27. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  28. package/dist/lib/plugins/openapi/OperationList.js +12 -6
  29. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  30. package/dist/lib/plugins/openapi/OperationListItem.js +2 -2
  31. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  32. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  33. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  34. package/dist/lib/plugins/openapi/index.js +11 -5
  35. package/dist/lib/plugins/openapi/index.js.map +1 -1
  36. package/dist/lib/plugins/openapi/interfaces.d.ts +16 -13
  37. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  38. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  39. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  40. package/dist/lib/plugins/openapi/schema/SchemaView.js +14 -6
  41. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  42. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  43. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  44. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +6 -1
  45. package/dist/lib/plugins/openapi/util/getRoutes.js +29 -2
  46. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  47. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  48. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  49. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  50. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  51. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  52. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  53. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  54. package/dist/lib/shiki.d.ts +1 -1
  55. package/dist/lib/shiki.js +18 -12
  56. package/dist/lib/shiki.js.map +1 -1
  57. package/dist/lib/ui/Button.d.ts +2 -2
  58. package/dist/lib/ui/Button.js +9 -8
  59. package/dist/lib/ui/Button.js.map +1 -1
  60. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  61. package/dist/lib/ui/ButtonGroup.js +28 -0
  62. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  63. package/dist/lib/ui/Command.js +2 -2
  64. package/dist/lib/ui/Command.js.map +1 -1
  65. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  66. package/dist/lib/ui/DropdownMenu.js +47 -32
  67. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  68. package/dist/lib/ui/Kbd.d.ts +3 -0
  69. package/dist/lib/ui/Kbd.js +10 -0
  70. package/dist/lib/ui/Kbd.js.map +1 -0
  71. package/dist/lib/util/MdxComponents.d.ts +1 -0
  72. package/dist/lib/util/MdxComponents.js +2 -0
  73. package/dist/lib/util/MdxComponents.js.map +1 -1
  74. package/dist/lib/util/flattenAllOf.js +27 -4
  75. package/dist/lib/util/flattenAllOf.js.map +1 -1
  76. package/dist/lib/util/flattenAllOf.test.js +67 -12
  77. package/dist/lib/util/flattenAllOf.test.js.map +1 -1
  78. package/dist/vite/api/SchemaManager.d.ts +5 -0
  79. package/dist/vite/api/SchemaManager.js +24 -0
  80. package/dist/vite/api/SchemaManager.js.map +1 -1
  81. package/dist/vite/api/SchemaManager.test.js +67 -0
  82. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  83. package/dist/vite/config.js +8 -2
  84. package/dist/vite/config.js.map +1 -1
  85. package/dist/vite/dev-server.js +25 -0
  86. package/dist/vite/dev-server.js.map +1 -1
  87. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  88. package/dist/vite/pagefind-dev-index.js +68 -0
  89. package/dist/vite/pagefind-dev-index.js.map +1 -0
  90. package/dist/vite/plugin-api.js +41 -3
  91. package/dist/vite/plugin-api.js.map +1 -1
  92. package/dist/vite/prerender/prerender.js +1 -19
  93. package/dist/vite/prerender/prerender.js.map +1 -1
  94. package/dist/vite/prerender/utils.d.ts +2 -0
  95. package/dist/vite/prerender/utils.js +24 -0
  96. package/dist/vite/prerender/utils.js.map +1 -0
  97. package/lib/Button-CynVW1JV.js +53 -0
  98. package/lib/Button-CynVW1JV.js.map +1 -0
  99. package/lib/ClaudeLogo-PxFjou9w.js +69 -0
  100. package/lib/ClaudeLogo-PxFjou9w.js.map +1 -0
  101. package/lib/{Command-CUcrW3qs.js → Command-BpT1iBE6.js} +25 -25
  102. package/lib/Command-BpT1iBE6.js.map +1 -0
  103. package/lib/Drawer-Ci7XwhqT.js.map +1 -1
  104. package/lib/DropdownMenu-C8SX_-S_.js +104 -0
  105. package/lib/DropdownMenu-C8SX_-S_.js.map +1 -0
  106. package/lib/{ErrorAlert-D5LKLFOd.js → ErrorAlert-BqjbNHIn.js} +1017 -1015
  107. package/lib/{ErrorAlert-D5LKLFOd.js.map → ErrorAlert-BqjbNHIn.js.map} +1 -1
  108. package/lib/IndexingDialog-B5zCiUKr.js +100 -0
  109. package/lib/IndexingDialog-B5zCiUKr.js.map +1 -0
  110. package/lib/MdxPage-CVFatbHw.js +210 -0
  111. package/lib/MdxPage-CVFatbHw.js.map +1 -0
  112. package/lib/Mermaid-CIFixY6C.js +102 -0
  113. package/lib/Mermaid-CIFixY6C.js.map +1 -0
  114. package/lib/{OAuthErrorPage-oXnxcJg4.js → OAuthErrorPage-Dup79DJk.js} +7 -7
  115. package/lib/{OAuthErrorPage-oXnxcJg4.js.map → OAuthErrorPage-Dup79DJk.js.map} +1 -1
  116. package/lib/OasProvider-BJeMq29o.js +40 -0
  117. package/lib/OasProvider-BJeMq29o.js.map +1 -0
  118. package/lib/{OperationList-CmMoKpGu.js → OperationList-ff3ZvQsO.js} +1701 -1585
  119. package/lib/OperationList-ff3ZvQsO.js.map +1 -0
  120. package/lib/{RouteGuard-Brz95MSt.js → RouteGuard-BXy13JSz.js} +19 -19
  121. package/lib/{RouteGuard-Brz95MSt.js.map → RouteGuard-BXy13JSz.js.map} +1 -1
  122. package/lib/{RouterError-VGZB_wg4.js → RouterError-CKOZTsDD.js} +3 -3
  123. package/lib/{RouterError-VGZB_wg4.js.map → RouterError-CKOZTsDD.js.map} +1 -1
  124. package/lib/{SchemaList-BykD27ga.js → SchemaList-BSC1KM3v.js} +28 -27
  125. package/lib/SchemaList-BSC1KM3v.js.map +1 -0
  126. package/lib/{SchemaView-Dt6hbCAt.js → SchemaView-CgwJ9gtb.js} +198 -187
  127. package/lib/SchemaView-CgwJ9gtb.js.map +1 -0
  128. package/lib/Select-VmDZ-nKe.js +337 -0
  129. package/lib/Select-VmDZ-nKe.js.map +1 -0
  130. package/lib/{SignUp-D2mmQOkg.js → SignUp-Pm_LGm6T.js} +13 -13
  131. package/lib/{SignUp-D2mmQOkg.js.map → SignUp-Pm_LGm6T.js.map} +1 -1
  132. package/lib/{SyntaxHighlight-C19vH0V_.js → SyntaxHighlight-bkmst3oV.js} +654 -622
  133. package/lib/SyntaxHighlight-bkmst3oV.js.map +1 -0
  134. package/lib/{Toc-CBWfFCVf.js → Toc-TUXNFbKl.js} +2 -2
  135. package/lib/{Toc-CBWfFCVf.js.map → Toc-TUXNFbKl.js.map} +1 -1
  136. package/lib/{ZudokuContext-BUZ5hkWB.js → ZudokuContext-np1wheDl.js} +8 -8
  137. package/lib/{ZudokuContext-BUZ5hkWB.js.map → ZudokuContext-np1wheDl.js.map} +1 -1
  138. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js +9 -0
  139. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +1 -0
  140. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js → chunk-PVWAREVJ-dLIqswPy.js} +5 -5
  141. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js.map → chunk-PVWAREVJ-dLIqswPy.js.map} +1 -1
  142. package/lib/{circular-CNHs4gAz.js → circular-XPj_dwqA.js} +2 -2
  143. package/lib/{circular-CNHs4gAz.js.map → circular-XPj_dwqA.js.map} +1 -1
  144. package/lib/createServer-D01nCTNp.js +16693 -0
  145. package/lib/createServer-D01nCTNp.js.map +1 -0
  146. package/lib/{errors-D7xzOd8X.js → errors-B0hNTPFO.js} +3 -3
  147. package/lib/{errors-D7xzOd8X.js.map → errors-B0hNTPFO.js.map} +1 -1
  148. package/lib/{hook-CMeoxziF.js → hook-CvSwcbk6.js} +3 -3
  149. package/lib/{hook-CMeoxziF.js.map → hook-CvSwcbk6.js.map} +1 -1
  150. package/lib/{index-unv8c40u.js → index-Bjc_QsUR.js} +754 -738
  151. package/lib/{index-unv8c40u.js.map → index-Bjc_QsUR.js.map} +1 -1
  152. package/lib/index-CrcNWbel.js.map +1 -1
  153. package/lib/index-DnMgJWrI.js +133 -0
  154. package/lib/index-DnMgJWrI.js.map +1 -0
  155. package/lib/{index-CF7_erXq.js → index-DscsS121.js} +2 -2
  156. package/lib/{index-CF7_erXq.js.map → index-DscsS121.js.map} +1 -1
  157. package/lib/{index-CPws05Tb.js → index-mfkNWYG-.js} +10 -10
  158. package/lib/{index-CPws05Tb.js.map → index-mfkNWYG-.js.map} +1 -1
  159. package/lib/{index.esm-BnYHxCYC.js → index.esm-DtzT_KoE.js} +20 -20
  160. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-DtzT_KoE.js.map} +1 -1
  161. package/lib/{invariant-Bm-FVUQE.js → invariant-CGOLuIIz.js} +3 -3
  162. package/lib/{invariant-Bm-FVUQE.js.map → invariant-CGOLuIIz.js.map} +1 -1
  163. package/lib/{mutation-BSU0xu4m.js → mutation-BlmnL5qL.js} +2 -2
  164. package/lib/{mutation-BSU0xu4m.js.map → mutation-BlmnL5qL.js.map} +1 -1
  165. package/lib/ui/ActionButton.js +1 -1
  166. package/lib/ui/Button.js +25 -24
  167. package/lib/ui/Button.js.map +1 -1
  168. package/lib/ui/ButtonGroup.js +77 -0
  169. package/lib/ui/ButtonGroup.js.map +1 -0
  170. package/lib/ui/Command.js +3 -3
  171. package/lib/ui/Command.js.map +1 -1
  172. package/lib/ui/DropdownMenu.js +227 -140
  173. package/lib/ui/DropdownMenu.js.map +1 -1
  174. package/lib/ui/Kbd.js +32 -0
  175. package/lib/ui/Kbd.js.map +1 -0
  176. package/lib/ui/SyntaxHighlight.js +3 -3
  177. package/lib/zudoku.__internal.js +8 -8
  178. package/lib/zudoku.auth-auth0.js +1 -1
  179. package/lib/zudoku.auth-azureb2c.js +4 -4
  180. package/lib/zudoku.auth-clerk.js +2 -2
  181. package/lib/zudoku.auth-openid.js +5 -5
  182. package/lib/zudoku.auth-supabase.js +5 -5
  183. package/lib/zudoku.components.js +7 -7
  184. package/lib/zudoku.hooks.js +11 -24
  185. package/lib/zudoku.hooks.js.map +1 -1
  186. package/lib/zudoku.mermaid.js +10 -0
  187. package/lib/zudoku.mermaid.js.map +1 -0
  188. package/lib/zudoku.plugin-api-catalog.js +6 -6
  189. package/lib/zudoku.plugin-api-keys.js +223 -198
  190. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  191. package/lib/zudoku.plugin-custom-pages.js +1 -1
  192. package/lib/zudoku.plugin-markdown.js +1 -1
  193. package/lib/zudoku.plugin-openapi.js +3 -3
  194. package/lib/zudoku.plugin-redirect.js +1 -1
  195. package/lib/zudoku.plugin-search-pagefind.js +184 -226
  196. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  197. package/lib/zudoku.plugins.js.map +1 -1
  198. package/lib/zudoku.router.js +2 -2
  199. package/package.json +29 -21
  200. package/src/app/sentry.ts +1 -1
  201. package/src/lib/components/Mermaid.tsx +68 -0
  202. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  203. package/src/lib/components/Zudoku.tsx +4 -7
  204. package/src/lib/core/RouteGuard.tsx +1 -1
  205. package/src/lib/core/plugins.ts +2 -2
  206. package/src/lib/oas/parser/index.ts +2 -0
  207. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  208. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  209. package/src/lib/plugins/openapi/OasProvider.tsx +30 -17
  210. package/src/lib/plugins/openapi/OperationList.tsx +39 -21
  211. package/src/lib/plugins/openapi/OperationListItem.tsx +5 -5
  212. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  213. package/src/lib/plugins/openapi/index.tsx +16 -7
  214. package/src/lib/plugins/openapi/interfaces.ts +16 -7
  215. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
  216. package/src/lib/plugins/openapi/schema/SchemaView.tsx +36 -27
  217. package/src/lib/plugins/openapi/schema/utils.ts +5 -2
  218. package/src/lib/plugins/openapi/util/getRoutes.tsx +35 -3
  219. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  220. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  221. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  222. package/src/lib/shiki.ts +21 -12
  223. package/src/lib/ui/Button.tsx +10 -10
  224. package/src/lib/ui/ButtonGroup.tsx +82 -0
  225. package/src/lib/ui/Command.tsx +3 -3
  226. package/src/lib/ui/DropdownMenu.tsx +226 -170
  227. package/src/lib/ui/Kbd.tsx +28 -0
  228. package/src/lib/util/MdxComponents.tsx +2 -0
  229. package/src/lib/util/flattenAllOf.test.ts +71 -19
  230. package/src/lib/util/flattenAllOf.ts +29 -8
  231. package/src/shiki/langs/markdown-nix.js +1 -0
  232. package/src/shiki/langs/openscad.js +1 -0
  233. package/dist/vite/create-pagefind-index.d.ts +0 -4
  234. package/dist/vite/create-pagefind-index.js +0 -12
  235. package/dist/vite/create-pagefind-index.js.map +0 -1
  236. package/lib/Button-B3ucvvQw.js +0 -52
  237. package/lib/Button-B3ucvvQw.js.map +0 -1
  238. package/lib/Command-CUcrW3qs.js.map +0 -1
  239. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  240. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  241. package/lib/MdxPage-hOCN-u-L.js +0 -240
  242. package/lib/MdxPage-hOCN-u-L.js.map +0 -1
  243. package/lib/OasProvider-CpniNNrW.js +0 -36
  244. package/lib/OasProvider-CpniNNrW.js.map +0 -1
  245. package/lib/OperationList-CmMoKpGu.js.map +0 -1
  246. package/lib/Pagination-lLSoHnxa.js +0 -37
  247. package/lib/Pagination-lLSoHnxa.js.map +0 -1
  248. package/lib/SchemaList-BykD27ga.js.map +0 -1
  249. package/lib/SchemaView-Dt6hbCAt.js.map +0 -1
  250. package/lib/Select-DFRCS31-.js +0 -399
  251. package/lib/Select-DFRCS31-.js.map +0 -1
  252. package/lib/SyntaxHighlight-C19vH0V_.js.map +0 -1
  253. package/lib/createServer-BmcVQAOQ.js +0 -13018
  254. package/lib/createServer-BmcVQAOQ.js.map +0 -1
  255. package/lib/useExposedProps-U3pmsHaG.js +0 -113
  256. package/lib/useExposedProps-U3pmsHaG.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationList-ff3ZvQsO.js","sources":["../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/ui/ButtonGroup.tsx","../src/lib/plugins/openapi/DownloadSchemaButton.tsx","../src/lib/plugins/openapi/SimpleSelect.tsx","../src/lib/plugins/openapi/Endpoint.tsx","../src/lib/ui/Badge.tsx","../src/lib/ui/Separator.tsx","../src/lib/util/renderIf.ts","../src/lib/ui/NativeSelect.tsx","../src/lib/ui/util.tsx","../src/lib/plugins/openapi/components/ResponseContent.tsx","../src/lib/plugins/openapi/MCPEndpoint.tsx","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/useOnScreen.ts","../src/lib/plugins/openapi/CollapsibleCode.tsx","../src/lib/plugins/openapi/components/NonHighlightedCode.tsx","../src/lib/plugins/openapi/SidecarBox.tsx","../src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx","../src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx","../src/lib/plugins/openapi/SidecarExamples.tsx","../src/lib/plugins/openapi/RequestBodySidecarBox.tsx","../src/lib/plugins/openapi/ResponsesSidecarBox.tsx","../../../node_modules/.pnpm/@zudoku+httpsnippet@10.0.9/node_modules/@zudoku/httpsnippet/dist/chunk-7LT4AZED.js","../../../node_modules/.pnpm/@zudoku+httpsnippet@10.0.9/node_modules/@zudoku/httpsnippet/dist/chunk-UPA5TN5W.js","../../../node_modules/.pnpm/is-regexp@1.0.0/node_modules/is-regexp/index.js","../../../node_modules/.pnpm/is-obj@1.0.1/node_modules/is-obj/index.js","../../../node_modules/.pnpm/get-own-enumerable-property-symbols@3.0.2/node_modules/get-own-enumerable-property-symbols/lib/index.js","../../../node_modules/.pnpm/stringify-object@3.3.0/node_modules/stringify-object/index.js","../../../node_modules/.pnpm/@zudoku+httpsnippet@10.0.9/node_modules/@zudoku/httpsnippet/dist/chunk-UEZF7UNC.js","../../../node_modules/.pnpm/punycode@1.4.1/node_modules/punycode/punycode.js","../../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js","../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js","../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js","../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js","../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js","../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js","../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js","../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js","../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js","../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js","../../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js","../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js","../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","../../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js","../../../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js","../../../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js","../../../node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js","../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/applyBind.js","../../../node_modules/.pnpm/call-bind@1.0.8/node_modules/call-bind/index.js","../../../node_modules/.pnpm/call-bind@1.0.8/node_modules/call-bind/callBound.js","../../../node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/index.js","../../../node_modules/.pnpm/side-channel@1.0.6/node_modules/side-channel/index.js","../../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/formats.js","../../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/utils.js","../../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/stringify.js","../../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/parse.js","../../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/index.js","../../../node_modules/.pnpm/url@0.11.3/node_modules/url/url.js","../../../node_modules/.pnpm/@zudoku+httpsnippet@10.0.9/node_modules/@zudoku/httpsnippet/dist/index.js","../src/lib/plugins/openapi/util/createHttpSnippet.ts","../src/lib/plugins/openapi/util/generateSchemaExample.ts","../src/lib/plugins/openapi/util/methodToColor.ts","../src/lib/plugins/openapi/Sidecar.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/* eslint-disable */\nimport type {\n ResultOf,\n DocumentTypeDecoration,\n} from \"@graphql-typed-document-node/core\";\nimport type { Incremental, TypedDocumentString } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: TypedDocumentString<TQuery, any>,\n fragmentNode: TypedDocumentString<TFrag, any>,\n data:\n | FragmentType<TypedDocumentString<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = queryNode.__meta__?.deferredFields as Record<\n string,\n (keyof TFrag)[]\n >;\n const fragName = fragmentNode.__meta__?.fragmentName as string | undefined;\n\n if (!deferredFields || !fragName) return true;\n\n const fields = deferredFields[fragName] ?? [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../util/cn.js\";\nimport { Separator } from \"./Separator.js\";\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n className={cn(\n \"bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative m-0! self-stretch data-[orientation=vertical]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n};\n","import {\n ChevronDownIcon,\n CopyIcon,\n DownloadIcon,\n ExternalLinkIcon,\n} from \"lucide-react\";\nimport type { MouseEventHandler } from \"react\";\nimport { Button } from \"zudoku/components\";\nimport { ButtonGroup } from \"zudoku/ui/ButtonGroup.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"zudoku/ui/DropdownMenu.js\";\nimport { useCopyToClipboard } from \"../../util/useCopyToClipboard.js\";\nimport { ChatGPTLogo } from \"../markdown/assets/ChatGPTLogo.js\";\nimport { ClaudeLogo } from \"../markdown/assets/ClaudeLogo.js\";\n\nexport const DownloadSchemaButton = ({\n downloadUrl,\n}: {\n downloadUrl: string;\n}) => {\n const [, copyToClipboard] = useCopyToClipboard();\n\n const handleDownload: MouseEventHandler<HTMLAnchorElement> = async (e) => {\n const isExternal = downloadUrl.includes(\"://\");\n\n if (!isExternal) return;\n\n e.preventDefault();\n try {\n const response = await fetch(downloadUrl);\n if (!response.ok)\n throw new Error(`Failed to fetch: ${response.statusText}`);\n\n const blob = await response.blob();\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = downloadUrl.split(\"/\").pop() || \"schema.json\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: Logging error\n console.error(\"Failed to download schema:\", error);\n }\n };\n\n return (\n <ButtonGroup>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"flex items-center gap-1.5\"\n asChild\n >\n <a href={downloadUrl} download onClick={handleDownload}>\n <DownloadIcon size={14} />\n Download schema\n </a>\n </Button>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button size=\"sm\" variant=\"outline\" className=\"px-1.5\">\n <ChevronDownIcon size={14} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem asChild>\n <a href={downloadUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <ExternalLinkIcon size={14} />\n Open in new tab\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={async () => {\n const response = await fetch(downloadUrl);\n const schema = await response.text();\n copyToClipboard(schema);\n }}\n >\n <CopyIcon size={14} />\n Copy to clipboard\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n const prompt = encodeURIComponent(\n `Help me understand this API: ${new URL(downloadUrl, window.location.href).href}`,\n );\n window.open(`https://claude.ai/new?q=${prompt}`, \"_blank\");\n }}\n >\n <ClaudeLogo className=\"size-4\" />\n Use in Claude\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n const prompt = encodeURIComponent(\n `Help me understand this API: ${new URL(downloadUrl, window.location.href).href}`,\n );\n window.open(`https://chatgpt.com/?q=${prompt}`, \"_blank\");\n }}\n >\n <ChatGPTLogo className=\"size-4\" />\n Use in ChatGPT\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </ButtonGroup>\n );\n};\n","import { ChevronsUpDownIcon } from \"lucide-react\";\nimport type { ChangeEventHandler } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SimpleSelect = ({\n value,\n onChange,\n className,\n options,\n showChevrons = true,\n}: {\n value: string;\n onChange: ChangeEventHandler<HTMLSelectElement>;\n className?: string;\n options: {\n value: string;\n label: string;\n }[];\n showChevrons?: boolean;\n}) => (\n <div className=\"grid\">\n <select\n className={cn(\n \"w-full row-start-1 col-start-1 border border-input text-foreground px-2 py-1 pe-6\",\n \"rounded-md appearance-none bg-zinc-50 hover:bg-white dark:bg-zinc-800 hover:dark:bg-zinc-800/75\",\n className,\n )}\n value={value}\n onChange={onChange}\n >\n {options.map((option) => (\n <option value={option.value} key={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n <div\n className={cn(\n !showChevrons && \"hidden\",\n \"row-start-1 col-start-1 self-center justify-self-end relative end-2 pointer-events-none\",\n )}\n >\n <ChevronsUpDownIcon size={14} />\n </div>\n </div>\n);\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\nimport { useState, useTransition } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { useCreateQuery } from \"./client/useCreateQuery.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { SimpleSelect } from \"./SimpleSelect.js\";\nimport { useSelectedServer } from \"./state.js\";\n\nconst ServersQuery = graphql(/* GraphQL */ `\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n`);\n\nconst CopyButton = ({ url }: { url: string }) => {\n const [isCopied, setIsCopied] = useState(false);\n\n return (\n <Button\n onClick={() => {\n void navigator.clipboard.writeText(url).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n });\n }}\n variant=\"ghost\"\n size=\"icon-xs\"\n >\n {isCopied ? (\n <CheckIcon className=\"text-green-600\" size={14} />\n ) : (\n <CopyIcon size={14} strokeWidth={1.3} />\n )}\n </Button>\n );\n};\n\nexport const Endpoint = () => {\n const { input, type } = useOasConfig();\n const query = useCreateQuery(ServersQuery, { input, type });\n const result = useSuspenseQuery(query);\n const [, startTransition] = useTransition();\n const { selectedServer, setSelectedServer } = useSelectedServer(\n result.data.schema.servers,\n );\n\n const { servers } = result.data.schema;\n const firstServer = servers.at(0);\n\n if (!firstServer) return null;\n\n return (\n <div className=\"flex items-center gap-1.5 flex-nowrap\">\n <span className=\"font-medium text-sm\">Endpoint</span>\n {servers.length > 1 ? (\n <SimpleSelect\n className=\"font-mono text-xs border-input bg-transparent dark:bg-input/30 dark:hover:bg-input/50 py-1.5 max-w-[450px] truncate\"\n onChange={(e) =>\n startTransition(() => setSelectedServer(e.target.value))\n }\n value={selectedServer}\n showChevrons={servers.length > 1}\n options={servers.map((server) => ({\n value: server.url,\n label: server.url,\n }))}\n />\n ) : (\n <InlineCode className=\"text-xs px-2 py-1.5\" selectOnClick>\n {firstServer.url}\n </InlineCode>\n )}\n\n <CopyButton url={servers.length > 1 ? selectedServer : firstServer.url} />\n </div>\n );\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n muted: \"bg-muted text-muted-foreground \",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport type * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { ChevronDownIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nfunction NativeSelect({ className, ...props }: React.ComponentProps<\"select\">) {\n return (\n <div\n className=\"group/native-select relative w-fit has-[select:disabled]:opacity-50\"\n data-slot=\"native-select-wrapper\"\n >\n <select\n data-slot=\"native-select\"\n className={cn(\n \"border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n <ChevronDownIcon\n className=\"text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none\"\n aria-hidden=\"true\"\n data-slot=\"native-select-icon\"\n />\n </div>\n );\n}\n\nfunction NativeSelectOption({ ...props }: React.ComponentProps<\"option\">) {\n return <option data-slot=\"native-select-option\" {...props} />;\n}\n\nfunction NativeSelectOptGroup({\n className,\n ...props\n}: React.ComponentProps<\"optgroup\">) {\n return (\n <optgroup\n data-slot=\"native-select-optgroup\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption };\n","import { cn as cnUtil } from \"../util/cn.js\";\n\nexport const cn = cnUtil;\n","import * as Tabs from \"@radix-ui/react-tabs\";\nimport { useState } from \"react\";\nimport { Markdown } from \"zudoku/components\";\nimport { Badge } from \"zudoku/ui/Badge.js\";\nimport { NativeSelect, NativeSelectOption } from \"zudoku/ui/NativeSelect.js\";\nimport { cn } from \"zudoku/ui/util.js\";\nimport type { MediaTypeObject } from \"../graphql/graphql.js\";\nimport { SchemaView } from \"../schema/SchemaView.js\";\n\ntype Response = {\n statusCode: string;\n description?: string | null;\n content?: MediaTypeObject[] | null;\n};\n\nexport const ResponseContent = ({\n responses,\n selectedResponse,\n onSelectResponse,\n}: {\n responses: Response[];\n selectedResponse?: string;\n onSelectResponse?: (value: string) => void;\n}) => {\n const [selectedMediaType, setSelectedMediaType] = useState(\n responses[0]?.content?.[0]?.mediaType ?? \"\",\n );\n const currentResponse =\n responses.find((r) => r.statusCode === selectedResponse) ?? responses[0];\n\n const hideTabs =\n responses.length === 1 && responses.at(0)?.statusCode === \"200\";\n\n const cardHeader = (\n <div className=\"flex flex-col text-muted-foreground\">\n <div\n className={cn(\n \"flex flex-row items-center gap-2 justify-between\",\n !hideTabs && \"px-4 py-1.5 border-b\",\n )}\n >\n {!hideTabs && (\n <Tabs.List className=\"flex flex-row font-medium text-sm gap-4\">\n {responses.map((response) => (\n <Tabs.Trigger\n key={response.statusCode}\n value={response.statusCode}\n className={cn(\n \"py-0.5 h-fit -mx-2 px-2 rounded-md\",\n \"data-[state=active]:dark:ring-1 data-[state=active]:dark:ring-border data-[state=active]:bg-background data-[state=active]:drop-shadow\",\n \"data-[state=active]:font-semibold data-[state=active]:text-foreground\",\n )}\n >\n {response.statusCode}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n )}\n {currentResponse?.content && currentResponse.content.length > 1 && (\n <NativeSelect\n value={selectedMediaType}\n onChange={(e) => setSelectedMediaType(e.target.value)}\n className=\"text-xs h-fit py-1 bg-background\"\n >\n {currentResponse.content.map((c) => (\n <NativeSelectOption key={c.mediaType} value={c.mediaType}>\n {c.mediaType}\n </NativeSelectOption>\n ))}\n </NativeSelect>\n )}\n </div>\n <div className=\"p-2 clear-both\">\n {hideTabs && (\n <Badge variant=\"outline\" className=\"float-start me-2\">\n {currentResponse?.statusCode}\n </Badge>\n )}\n {currentResponse?.description && (\n <Markdown\n className=\"text-sm text-muted-foreground max-w-none\"\n content={currentResponse.description}\n />\n )}\n </div>\n </div>\n );\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Tabs.Root\n value={selectedResponse}\n onValueChange={(value) => {\n onSelectResponse?.(value);\n const newResponse = responses.find((r) => r.statusCode === value);\n setSelectedMediaType(newResponse?.content?.[0]?.mediaType ?? \"\");\n }}\n >\n {responses.map((response) => (\n <Tabs.Content key={response.statusCode} value={response.statusCode}>\n <SchemaView\n schema={\n response.content?.find(\n (content) => content.mediaType === selectedMediaType,\n )?.schema\n }\n cardHeader={cardHeader}\n />\n </Tabs.Content>\n ))}\n </Tabs.Root>\n </div>\n );\n};\n","import { CheckIcon, CopyIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Typography } from \"../../components/Typography.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { Callout } from \"../../ui/Callout.js\";\nimport { Card } from \"../../ui/Card.js\";\nimport { SyntaxHighlight } from \"../../ui/SyntaxHighlight.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const MCPEndpoint = ({\n serverUrl,\n summary,\n data,\n}: {\n serverUrl?: string;\n data?: boolean | Record<string, unknown>;\n summary?: string;\n}) => {\n const [isCopied, setIsCopied] = useState(false);\n const mcpUrl = `${(serverUrl ?? \"\").replace(/\\/+$/, \"\")}/mcp`;\n\n const name =\n typeof data === \"boolean\"\n ? (summary ?? \"mcp-server\")\n : (data?.name ?? summary ?? \"mcp-server\");\n\n const claudeConfig = `{\n \"mcpServers\": {\n \"${name}\": {\n \"command\": \"npx\",\n \"args\": [\n \"mcp-remote\",\n \"${mcpUrl}\"\n ]\n }\n }\n}`;\n\n const cursorConfig = `{\n \"mcpServers\": {\n \"${name}\": {\n \"url\": \"${mcpUrl}\"\n }\n }\n}`;\n\n const chatgptConfig = mcpUrl;\n\n const vscodeConfig = `{\n \"servers\": {\n \"${name}\": {\n \"command\": \"npx\",\n \"args\": [\n \"mcp-remote\",\n \"${mcpUrl}\"\n ]\n }\n }\n}`;\n\n const handleCopy = () => {\n void navigator.clipboard.writeText(mcpUrl).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n });\n };\n\n return (\n <Card className=\"p-6 mb-6 max-w-screen-md\">\n <div className=\"space-y-4\">\n <div>\n <h3 className=\"text-lg font-semibold mb-2\">MCP Endpoint</h3>\n <p className=\"text-sm text-muted-foreground mb-3\">\n Copy the url to connect any{\" \"}\n <a\n href=\"https://modelcontextprotocol.io/\"\n target=\"_blank\"\n rel=\"noopener\"\n className=\"text-primary hover:underline\"\n >\n MCP\n </a>\n -compatible AI tool\n </p>\n\n <div\n className={cn(\n \"relative flex items-center gap-2 p-3 rounded-md border border-primary/50\",\n )}\n >\n <InlineCode className=\"bg-primary/20 px-4 py-2 flex-1 border-none\">\n {mcpUrl}\n </InlineCode>\n <Button\n onClick={handleCopy}\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-8 w-8\"\n >\n {isCopied ? (\n <CheckIcon className=\"h-4 w-4 text-green-600\" />\n ) : (\n <CopyIcon className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-lg font-semibold mb-2\">AI Tool Configuration</h3>\n <p className=\"text-sm text-muted-foreground mb-3\">\n Choose your AI tool and copy the configuration to get started.\n </p>\n\n <hr className=\"my-4\" />\n\n <Tabs defaultValue=\"claude\" className=\"w-full\">\n <TabsList className=\"grid w-full grid-cols-4\">\n <TabsTrigger value=\"claude\">Claude</TabsTrigger>\n <TabsTrigger value=\"chatgpt\">ChatGPT</TabsTrigger>\n <TabsTrigger value=\"cursor\">Cursor</TabsTrigger>\n <TabsTrigger value=\"vscode\">VS Code</TabsTrigger>\n </TabsList>\n\n <Typography className=\"text-sm max-w-full\">\n <TabsContent value=\"claude\" className=\"space-y-3\">\n <ol>\n <li>\n Open Claude Desktop and click <strong>Settings</strong> in\n the lower corner\n </li>\n <li>\n Navigate to <strong>Developer</strong> tab →{\" \"}\n <strong>Edit Config</strong>\n </li>\n <li>\n <span>Add this configuration to </span>\n <InlineCode>claude_desktop_config.json</InlineCode>:\n <SyntaxHighlight\n showLanguageIndicator\n title=\"claude_desktop_config.json\"\n language=\"json\"\n code={claudeConfig}\n className=\"mt-2\"\n />\n </li>\n <li>\n Save the file and restart Claude Desktop. Look for the 🔨\n icon in the bottom-right corner.\n </li>\n </ol>\n <p className=\"text-xs text-muted-foreground mt-2\">\n macOS: ~/Library/Application\n Support/Claude/claude_desktop_config.json\n <br />\n Windows: %APPDATA%\\Claude\\claude_desktop_config.json\n </p>\n <a\n href=\"https://docs.mcp.run/mcp-clients/claude-desktop/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 text-sm text-primary hover:underline\"\n >\n View official docs\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n </TabsContent>\n\n <TabsContent value=\"chatgpt\" className=\"space-y-3\">\n <Callout type=\"note\" title=\"Requirements\">\n ChatGPT Pro, Team, Enterprise, or Edu subscription. Note: MCP\n support is limited to read-only operations through Deep\n Research.\n </Callout>\n <ol>\n <li>\n Go to <strong>Settings</strong> →{\" \"}\n <strong>Connectors</strong> → <strong>Connect</strong>\n </li>\n <li>\n Click <strong>Custom</strong> and add your MCP URL:\n <InlineCode className=\"ml-2\">{chatgptConfig}</InlineCode>\n </li>\n <li>Provide a name and description for your connector</li>\n <li>\n Save and enable the connector. Users must authenticate with\n the connector before first use.\n </li>\n <li>Access through Deep Research in your chat interface</li>\n </ol>\n\n <a\n href=\"https://help.openai.com/en/articles/11487775-connectors-in-chatgpt\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 text-sm text-primary hover:underline\"\n >\n View official docs\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n </TabsContent>\n\n <TabsContent value=\"cursor\" className=\"space-y-3\">\n <ol>\n <li>\n <span>Create or edit: </span>\n <InlineCode>~/.cursor/mcp.json</InlineCode>\n <span> (global) or </span>\n <InlineCode>.cursor/mcp.json</InlineCode>\n <span> (project)</span>\n <SyntaxHighlight\n showLanguageIndicator\n title=\"mcp.json\"\n language=\"json\"\n code={cursorConfig}\n className=\"mt-2\"\n />\n </li>\n <li>Restart Cursor to apply the configuration</li>\n </ol>\n <a\n href=\"https://docs.cursor.com/en/context/mcp\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 text-sm text-primary hover:underline\"\n >\n View official docs\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n </TabsContent>\n\n <TabsContent value=\"vscode\" className=\"space-y-3\">\n <Callout type=\"note\" title=\"Requirements\">\n VS Code with GitHub Copilot extension\n </Callout>\n\n <ol>\n <li>\n <span>Create </span>\n <InlineCode>.vscode/mcp.json</InlineCode>\n <span> in your workspace (or user-level mcp.json):</span>\n <SyntaxHighlight\n showLanguageIndicator\n title=\"mcp.json\"\n language=\"json\"\n code={vscodeConfig}\n className=\"mt-2\"\n />\n </li>\n <li>Restart VS Code to apply the configuration</li>\n <li>\n Use MCP tools in GitHub Copilot Chat by selecting Agent mode\n </li>\n </ol>\n <a\n href=\"https://code.visualstudio.com/docs/copilot/chat/mcp-servers\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 text-sm text-primary hover:underline\"\n >\n View official docs\n <ExternalLinkIcon className=\"h-3 w-3\" />\n </a>\n </TabsContent>\n </Typography>\n </Tabs>\n </div>\n </div>\n </Card>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../oas/graphql/index.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { Item, ItemActions, ItemContent, ItemTitle } from \"../../ui/Item.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport { EnumValues } from \"./components/EnumValues.js\";\nimport type { ParameterItem } from \"./graphql/graphql.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport { ParamInfos } from \"./ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./schema/SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\nimport { isArrayType } from \"./schema/utils.js\";\n\nconst getParameterSchema = (parameter: ParameterItem): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterItem;\n group: ParameterGroup;\n id: string;\n}) => {\n const paramSchema = getParameterSchema(parameter);\n const [isOpen, setIsOpen] = useState(false);\n\n const isCollapsible =\n paramSchema.type === \"object\" ||\n (isArrayType(paramSchema) &&\n \"items\" in paramSchema &&\n paramSchema.items?.type === \"object\");\n\n const shouldRenderDescription = Boolean(\n parameter.description ||\n paramSchema.description ||\n (paramSchema.type === \"array\" && paramSchema.items?.enum) ||\n paramSchema.enum ||\n paramSchema.example !== undefined ||\n paramSchema.default !== undefined,\n );\n\n return (\n <Item>\n <ItemContent className=\"gap-y-2\">\n <div>\n <ItemTitle className=\"inline me-2\">\n {isCollapsible ? (\n <button\n onClick={() => setIsOpen(!isOpen)}\n type=\"button\"\n className=\"hover:underline\"\n >\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n className=\"px-2\"\n slug={`${id}-${parameter.name}`}\n />\n ) : (\n parameter.name\n )}\n </code>\n </button>\n ) : (\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n className=\"px-2\"\n slug={`${id}-${parameter.name}`}\n />\n ) : (\n parameter.name\n )}\n </code>\n )}\n </ItemTitle>\n <ParamInfos\n className=\"inline\"\n schema={paramSchema}\n extraItems={[\n parameter.required && (\n <span className=\"text-primary\">required</span>\n ),\n parameter.style && `style: ${parameter.style}`,\n parameter.explode && `explode: ${parameter.explode}`,\n ]}\n />\n </div>\n {shouldRenderDescription && (\n <div className=\"flex flex-col gap-1.5\">\n {parameter.description && (\n <Markdown content={parameter.description} className=\"prose-sm\" />\n )}\n {paramSchema.description && (\n <Markdown\n content={paramSchema.description}\n className=\"prose-sm\"\n />\n )}\n {paramSchema.type === \"array\" && paramSchema.items?.enum ? (\n <EnumValues values={paramSchema.items.enum} />\n ) : (\n paramSchema.enum && <EnumValues values={paramSchema.enum} />\n )}\n <SchemaExampleAndDefault schema={paramSchema} />\n </div>\n )}\n </ItemContent>\n\n {isCollapsible && (\n <ItemActions className=\"self-start\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"rounded-full\"\n onClick={() => setIsOpen(!isOpen)}\n aria-label=\"Toggle parameter\"\n >\n {isOpen ? <MinusIcon size={16} /> : <PlusIcon size={16} />}\n </Button>\n </ItemActions>\n )}\n\n {isCollapsible && (\n <Collapsible.Root\n defaultOpen={false}\n open={isOpen}\n onOpenChange={setIsOpen}\n className={cn(\"w-full\", !isOpen && \"contents\")}\n >\n <Collapsible.Content asChild>\n <ItemContent>\n <SchemaView\n schema={\n \"items\" in paramSchema ? paramSchema.items : paramSchema\n }\n />\n </ItemContent>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </Item>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { Fragment } from \"react\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Frame, FramePanel } from \"../../ui/Frame.js\";\nimport { ItemGroup, ItemSeparator } from \"../../ui/Item.js\";\nimport type { ParameterItem } from \"./graphql/graphql.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport { ParameterListItem } from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n summary,\n group,\n parameters,\n id,\n}: {\n summary?: string;\n group: ParameterGroup;\n parameters: ParameterItem[];\n id: string;\n}) => {\n const sortedParameters = parameters.sort((a, b) =>\n a.required === b.required ? 0 : a.required ? -1 : 1,\n );\n\n return (\n <>\n <Heading\n level={3}\n id={`${id}/${group}-parameters`}\n className=\"capitalize\"\n >\n {summary && <VisuallyHidden>{summary} &rsaquo; </VisuallyHidden>}\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <Frame>\n <FramePanel className=\"p-0!\">\n <ItemGroup className=\"overflow-clip\">\n {sortedParameters.map((parameter, index) => (\n <Fragment key={`${parameter.name}-${parameter.in}`}>\n {index > 0 && <ItemSeparator />}\n <ParameterListItem\n parameter={parameter}\n id={id}\n group={group}\n />\n </Fragment>\n ))}\n </ItemGroup>\n </FramePanel>\n </Frame>\n </>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nexport const useOnScreen = <E extends Element = HTMLElement>({\n rootMargin = \"0px\",\n threshold,\n root,\n}: {\n rootMargin?: string;\n threshold?: number;\n root?: Element | null;\n} = {}) => {\n const [isVisible, setIsVisible] = useState(false);\n const ref = useRef<E | null>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry) return;\n setIsVisible(entry.isIntersecting);\n },\n { rootMargin, threshold, root },\n );\n\n const currentElement = ref.current;\n\n if (!currentElement) return;\n\n observer.observe(currentElement);\n\n return () => observer.unobserve(currentElement);\n }, [root, rootMargin, threshold]);\n\n return [ref, isVisible] as const;\n};\n","import { FoldVerticalIcon, UnfoldVerticalIcon } from \"lucide-react\";\nimport { type CSSProperties, type ReactNode, useRef, useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { cn } from \"../../util/cn.js\";\nimport useIsomorphicLayoutEffect from \"../../util/useIsomorphicLayoutEffect.js\";\n\nexport const OverflowOverlay = () => (\n <div className=\"absolute inset-0 bg-linear-to-b from-transparent to-zinc-50/60 dark:to-zinc-950/90 z-10 transition-all group-hover:to-transparent\" />\n);\n\nexport const CollapsibleCode = ({\n children,\n maxHeight = 250,\n}: {\n children: ReactNode;\n maxHeight?: number;\n}) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [open, setOpen] = useState(false);\n\n useIsomorphicLayoutEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n setIsOverflowing(el.scrollHeight > maxHeight);\n\n const observer = new ResizeObserver(() => {\n setIsOverflowing(el.scrollHeight > maxHeight);\n });\n observer.observe(el);\n\n return () => observer.disconnect();\n }, [maxHeight]);\n\n return (\n <Collapsible\n className=\"group\"\n open={open}\n onOpenChange={setOpen}\n style={{ \"--max-height\": `${maxHeight}px` } as CSSProperties}\n >\n <CollapsibleContent\n forceMount\n className={cn(\n \"relative overflow-hidden group\",\n !open && isOverflowing && \"max-h-(--max-height)\",\n )}\n >\n {!open && isOverflowing && <OverflowOverlay />}\n <div ref={contentRef}>{children}</div>\n {!open && isOverflowing && (\n <CollapsibleTrigger\n className=\"absolute inset-0 grid place-items-center z-10 cursor-pointer peer\"\n asChild\n >\n <div>\n <Button variant=\"outline\" className=\"hidden group-hover:flex\">\n <UnfoldVerticalIcon size={14} className=\"me-1.5\" />\n Click to expand\n </Button>\n </div>\n </CollapsibleTrigger>\n )}\n </CollapsibleContent>\n {isOverflowing && (\n <div\n className={cn(\n \"flex justify-center w-full py-2 bg-muted/50\",\n !open && \"hidden\",\n )}\n >\n <CollapsibleTrigger asChild>\n <Button variant=\"outline\" size=\"sm\">\n Collapse\n <FoldVerticalIcon size={14} className=\"ms-1.5\" />\n </Button>\n </CollapsibleTrigger>\n </div>\n )}\n </Collapsible>\n );\n};\n","import { cn } from \"../../../util/cn.js\";\nimport { OverflowOverlay } from \"../CollapsibleCode.js\";\n\nexport const NonHighlightedCode = ({\n code,\n className,\n}: {\n code: string;\n className?: string;\n}) => (\n <pre\n className={cn(\n \"relative text-(--shiki-light) dark:text-(--shiki-dark) p-2 text-xs font-mono max-h-[250px] leading-4.5 bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg) overflow-hidden\",\n className,\n )}\n >\n <code>\n {code.split(\"\\n\").length > 13 && <OverflowOverlay />}\n {code}\n </code>\n </pre>\n);\n","import type { PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\ntype BaseComponentProps<T = unknown> = PropsWithChildren<\n T & { className?: string }\n>;\n\nexport const Root = ({ children, className }: BaseComponentProps) => (\n <div\n data-slot=\"sidecar-box-root\"\n className={cn(\n \"relative text-xs flex min-w-0 flex-col rounded-xl border bg-muted/50 bg-clip-padding\",\n \"before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-xl)-1px)] before:shadow-[0_1px_2px_1px_--theme(--color-black/4%)] after:pointer-events-none after:absolute after:-inset-[5px] after:-z-1 after:rounded-[calc(var(--radius-xl)+4px)] after:border after:border-border/50 after:bg-clip-padding **:data-[slot=particle-wrapper]:w-full **:data-[slot=particle-wrapper]:max-w-64 lg:col-span-1 dark:after:bg-background/72\",\n className,\n )}\n >\n {children}\n </div>\n);\n\nexport const Head = ({ children, className }: BaseComponentProps) => (\n <div\n data-slot=\"sidecar-box-head\"\n className={cn(\n \"flex items-center gap-3 rounded-b-xl p-2.5 data-[slot=head]:rounded-b-none\",\n className,\n )}\n >\n {children}\n </div>\n);\n\nexport const Body = ({ children, className }: BaseComponentProps) => (\n <div\n data-slot=\"sidecar-box-body\"\n className={cn(\n \"overflow-auto -m-px flex min-w-0 flex-1 flex-col overflow-x-auto rounded-t-xl border bg-background\",\n \"rounded-b last:rounded-b-xl\",\n \"before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-xl)-1px)] dark:before:shadow-[0_-1px_--theme(--color-white/8%)]\",\n className,\n )}\n >\n {children}\n </div>\n);\n\nexport const Footer = ({ children, className }: BaseComponentProps) => (\n <div\n data-slot=\"sidecar-box-footer\"\n className={cn(\n \"p-2 rounded-b-xl data-[slot=sidecar-box-footer]:rounded-b-none\",\n className,\n )}\n >\n {children}\n </div>\n);\n","import { InfoIcon } from \"lucide-react\";\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"zudoku/ui/Tooltip.js\";\nimport { NonHighlightedCode } from \"./components/NonHighlightedCode.js\";\nimport * as SidecarBox from \"./SidecarBox.js\";\n\nexport const GeneratedExampleSidecarBox = ({\n code,\n isOnScreen,\n shouldLazyHighlight,\n}: {\n code: string;\n isOnScreen: boolean;\n shouldLazyHighlight?: boolean;\n}) => {\n return (\n <SidecarBox.Root>\n <SidecarBox.Head className=\"text-xs flex justify-between items-center\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"font-medium\">Example Request Body</span>\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon size={13} />\n </TooltipTrigger>\n <TooltipContent>\n This example is auto-generated from the schema.\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n </SidecarBox.Head>\n <SidecarBox.Body className=\"p-0\">\n {shouldLazyHighlight && !isOnScreen ? (\n <NonHighlightedCode code={code} />\n ) : (\n <SyntaxHighlight\n embedded\n language=\"json\"\n code={code}\n className=\"[--scrollbar-color:gray] rounded-none text-xs max-h-[200px]\"\n />\n )}\n </SidecarBox.Body>\n </SidecarBox.Root>\n );\n};\n","import type {\n MediaTypeObject,\n OperationsFragmentFragment,\n} from \"./graphql/graphql.js\";\nimport { PlaygroundDialog } from \"./playground/PlaygroundDialog.js\";\n\nexport const PlaygroundDialogWrapper = ({\n server,\n servers,\n operation,\n examples,\n}: {\n server?: string;\n servers?: string[];\n operation: OperationsFragmentFragment;\n examples?: MediaTypeObject[];\n}) => {\n const headers = operation.parameters\n ?.filter((p) => p.in === \"header\")\n .sort((a, b) => (a.required && !b.required ? -1 : 1))\n .map((p) => ({\n name: p.name,\n defaultValue:\n p.schema?.default ?? p.examples?.find((x) => x.value)?.value ?? \"\",\n defaultActive: p.required ?? false,\n isRequired: p.required ?? false,\n enum: p.schema?.type === \"array\" ? p.schema?.items?.enum : p.schema?.enum,\n type: p.schema?.type ?? \"string\",\n }));\n\n const queryParams = operation.parameters\n ?.filter((p) => p.in === \"query\")\n .sort((a, b) => (a.required && !b.required ? -1 : 1))\n .map((p) => ({\n name: p.name,\n defaultActive: p.required ?? false,\n isRequired: p.required ?? false,\n enum: p.schema?.type === \"array\" ? p.schema?.items?.enum : p.schema?.enum,\n type: p.schema?.type ?? \"string\",\n defaultValue: p.schema?.default,\n }));\n\n const pathParams = operation.parameters\n ?.filter((p) => p.in === \"path\")\n .map((p) => ({\n name: p.name,\n defaultValue: p.schema?.default,\n }));\n\n return (\n <PlaygroundDialog\n server={server}\n servers={servers}\n method={operation.method}\n url={operation.path}\n headers={headers}\n queryParams={queryParams}\n pathParams={pathParams}\n examples={examples}\n />\n );\n};\n","import { ExternalLinkIcon } from \"lucide-react\";\nimport { Badge } from \"zudoku/ui/Badge.js\";\nimport { NativeSelect, NativeSelectOption } from \"zudoku/ui/NativeSelect.js\";\nimport { SyntaxHighlight } from \"../../ui/SyntaxHighlight.js\";\nimport { NonHighlightedCode } from \"./components/NonHighlightedCode.js\";\nimport type { MediaTypeObject } from \"./graphql/graphql.js\";\nimport * as SidecarBox from \"./SidecarBox.js\";\n\nconst formatForDisplay = (value: unknown): string | undefined => {\n if (value == null) return;\n if (typeof value === \"string\") return value.trim();\n return JSON.stringify(value, null, 2);\n};\n\nconst getLanguage = (mediaType?: string): string => {\n if (!mediaType) return \"plain\";\n if (mediaType.endsWith(\"+json\")) return \"json\";\n if (mediaType.endsWith(\"+xml\")) return \"xml\";\n if (mediaType.endsWith(\"+yaml\")) return \"yaml\";\n\n const languages: Record<string, string> = {\n \"text/html\": \"html\",\n \"application/x-ndjson\": \"json\",\n \"application/json\": \"json\",\n \"application/xml\": \"xml\",\n \"application/x-yaml\": \"yaml\",\n \"text/csv\": \"csv\",\n \"application/javascript\": \"javascript\",\n \"application/graphql\": \"graphql\",\n };\n return languages[mediaType] ?? \"plain\";\n};\n\nexport type SidecarExamplesProps = {\n content: MediaTypeObject[];\n description?: string;\n selectedContentIndex: number;\n selectedExampleIndex: number;\n onExampleChange?: ({\n contentTypeIndex,\n exampleIndex,\n }: {\n contentTypeIndex: number;\n exampleIndex: number;\n }) => void;\n isOnScreen: boolean;\n shouldLazyHighlight?: boolean;\n};\n\nexport const SidecarExamples = ({\n content,\n description,\n onExampleChange,\n selectedContentIndex,\n selectedExampleIndex,\n isOnScreen,\n shouldLazyHighlight,\n}: SidecarExamplesProps) => {\n // Get example value, with fallback to schema-generated example\n const selectedContent = content[selectedContentIndex];\n const examples = selectedContent?.examples ?? [];\n const selectedExample = examples?.[selectedExampleIndex];\n\n const formattedExample = formatForDisplay(selectedExample?.value);\n const language = getLanguage(selectedContent?.mediaType);\n\n return (\n <>\n <SidecarBox.Body className=\"p-0\">\n {selectedExample?.externalValue ? (\n <div className=\"p-4\">\n <a\n href={selectedExample.externalValue}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-xs text-primary hover:underline\"\n >\n View External Example\n <ExternalLinkIcon className=\"size-3 inline-block ms-1 align-[-0.125em]\" />\n </a>\n </div>\n ) : shouldLazyHighlight && !isOnScreen && formattedExample ? (\n <NonHighlightedCode code={formattedExample} />\n ) : formattedExample ? (\n <SyntaxHighlight\n embedded\n language={language}\n className=\"[--scrollbar-color:gray] rounded-none max-h-[200px] text-xs overflow-auto\"\n code={formattedExample}\n />\n ) : (\n <div className=\"grid place-items-center text-xs text-muted-foreground min-h-18\">\n No example specified for this content type\n </div>\n )}\n {selectedExample?.description && (\n <div className=\"border-t text-xs px-3 py-1.5 text-muted-foreground\">\n {selectedExample.description}\n </div>\n )}\n </SidecarBox.Body>\n <SidecarBox.Footer className=\"text-xs\">\n {description && (\n <div className=\"text-muted-foreground text-xs px-1 py-2\">\n {description}\n </div>\n )}\n {(examples.length !== 0 || content.length !== 0) && (\n <div className=\"flex items-center gap-2 justify-between min-w-0\">\n <div className=\"flex items-center gap-2 flex-wrap\">\n {content.length > 1 ? (\n <NativeSelect\n className=\"text-xs h-fit py-1 truncate bg-background\"\n value={selectedContentIndex.toString()}\n onChange={(e) =>\n onExampleChange?.({\n contentTypeIndex: Number(e.target.value),\n exampleIndex: 0,\n })\n }\n >\n {content.map((c, index) => (\n <NativeSelectOption\n key={c.mediaType}\n value={index.toString()}\n >\n {c.mediaType}\n </NativeSelectOption>\n ))}\n </NativeSelect>\n ) : (\n <Badge\n className=\"text-[11px] font-mono font-normal\"\n variant=\"outline\"\n >\n {content[0]?.mediaType}\n </Badge>\n )}\n </div>\n {examples.length > 1 && (\n <NativeSelect\n className=\"text-xs h-fit py-1 truncate bg-background\"\n value={selectedExampleIndex.toString()}\n onChange={(e) =>\n onExampleChange?.({\n contentTypeIndex: selectedContentIndex,\n exampleIndex: Number(e.target.value),\n })\n }\n >\n {examples.map((example, index) => (\n <NativeSelectOption\n key={\n example.summary ||\n example.name ||\n example.description ||\n `Example ${index + 1}`\n }\n value={index.toString()}\n >\n {example.summary ||\n example.name ||\n example.description ||\n `Example ${index + 1}`}\n </NativeSelectOption>\n ))}\n </NativeSelect>\n )}\n </div>\n )}\n </SidecarBox.Footer>\n </>\n );\n};\n","import { ChevronsDownUpIcon, ChevronsUpDownIcon } from \"lucide-react\";\nimport { Button } from \"zudoku/components\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport type { MediaTypeObject } from \"./graphql/graphql.js\";\nimport * as SidecarBox from \"./SidecarBox.js\";\nimport { SidecarExamples } from \"./SidecarExamples.js\";\n\nexport const RequestBodySidecarBox = ({\n content,\n onExampleChange,\n isOnScreen,\n shouldLazyHighlight,\n selectedContentIndex,\n selectedExampleIndex,\n}: {\n content: MediaTypeObject[];\n onExampleChange?: (selected: {\n contentTypeIndex: number;\n exampleIndex: number;\n }) => void;\n isOnScreen: boolean;\n shouldLazyHighlight?: boolean;\n selectedContentIndex: number;\n selectedExampleIndex: number;\n}) => {\n if (content.length === 0) return null;\n\n return (\n <Collapsible className=\"group/collapsible\" defaultOpen>\n <SidecarBox.Root>\n <SidecarBox.Head className=\"text-xs flex justify-between items-center\">\n <span className=\"flex items-center gap-1 font-medium\">\n <CollapsibleTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"size-fit px-1 py-1 -my-1\"\n aria-label=\"Toggle request body examples\"\n >\n <ChevronsDownUpIcon className=\"size-[1em] group-data-[state=closed]/collapsible:hidden\" />\n <ChevronsUpDownIcon className=\"size-[1em] group-data-[state=open]/collapsible:hidden\" />\n </Button>\n </CollapsibleTrigger>\n Example Request Body\n </span>\n </SidecarBox.Head>\n <CollapsibleContent>\n <SidecarExamples\n selectedContentIndex={selectedContentIndex}\n selectedExampleIndex={selectedExampleIndex}\n content={content}\n onExampleChange={onExampleChange}\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n />\n </CollapsibleContent>\n </SidecarBox.Root>\n </Collapsible>\n );\n};\n","import { ChevronsDownUpIcon, ChevronsUpDownIcon, InfoIcon } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { Button } from \"zudoku/components\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { NativeSelect, NativeSelectOption } from \"zudoku/ui/NativeSelect.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"zudoku/ui/Tooltip.js\";\nimport type { ResponseItem } from \"./graphql/graphql.js\";\nimport * as SidecarBox from \"./SidecarBox.js\";\nimport { SidecarExamples } from \"./SidecarExamples.js\";\n\nexport const ResponsesSidecarBox = ({\n responses,\n selectedResponse,\n isOnScreen,\n shouldLazyHighlight,\n isGenerated,\n}: {\n responses: ResponseItem[];\n selectedResponse?: string;\n isOnScreen: boolean;\n shouldLazyHighlight?: boolean;\n isGenerated?: boolean;\n}) => {\n const [internalSelectedResponse, setInternalSelectedResponse] = useState(\n selectedResponse ?? responses[0]?.statusCode,\n );\n const [selectedContentIndex, setSelectedContentIndex] = useState(0);\n const [selectedExampleIndex, setSelectedExampleIndex] = useState(0);\n\n useEffect(() => {\n if (!selectedResponse) return;\n\n setInternalSelectedResponse(selectedResponse);\n }, [selectedResponse]);\n\n useEffect(() => {\n if (!internalSelectedResponse) return;\n\n setSelectedContentIndex(0);\n setSelectedExampleIndex(0);\n }, [internalSelectedResponse]);\n\n return (\n <Collapsible className=\"group/collapsible\" defaultOpen>\n <SidecarBox.Root>\n <SidecarBox.Head className=\"text-xs flex justify-between items-center\">\n <div className=\"flex items-center gap-1 font-medium shrink-0\">\n <CollapsibleTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"size-fit px-1 py-1 -my-1\"\n aria-label=\"Toggle response examples\"\n >\n <ChevronsDownUpIcon className=\"size-[1em] group-data-[state=closed]/collapsible:hidden\" />\n <ChevronsUpDownIcon className=\"size-[1em] group-data-[state=open]/collapsible:hidden\" />\n </Button>\n </CollapsibleTrigger>\n Example Responses\n {isGenerated && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <InfoIcon size={13} />\n </TooltipTrigger>\n <TooltipContent>\n This example is auto-generated from the schema.\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n <div className=\"group-data-[state=closed]/collapsible:invisible\">\n <NativeSelect\n className=\"text-xs h-fit py-1 -my-1 bg-background\"\n value={internalSelectedResponse}\n onChange={(e) => setInternalSelectedResponse(e.target.value)}\n >\n {responses.map((response) => (\n <NativeSelectOption\n key={response.statusCode}\n value={response.statusCode}\n >\n {response.statusCode}\n </NativeSelectOption>\n ))}\n </NativeSelect>\n </div>\n </SidecarBox.Head>\n <CollapsibleContent>\n <SidecarExamples\n selectedContentIndex={selectedContentIndex}\n selectedExampleIndex={selectedExampleIndex}\n onExampleChange={(selected) => {\n setSelectedContentIndex(selected.contentTypeIndex);\n setSelectedExampleIndex(selected.exampleIndex);\n }}\n content={\n responses.find((r) => r.statusCode === internalSelectedResponse)\n ?.content ?? []\n }\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n />\n </CollapsibleContent>\n </SidecarBox.Root>\n </Collapsible>\n );\n};\n","// src/helpers/reducer.ts\nvar reducer = (accumulator, pair) => {\n const currentValue = accumulator[pair.name];\n if (currentValue === void 0) {\n accumulator[pair.name] = pair.value;\n return accumulator;\n }\n if (Array.isArray(currentValue)) {\n currentValue.push(pair.value);\n return accumulator;\n }\n accumulator[pair.name] = [currentValue, pair.value];\n return accumulator;\n};\n\nexport { reducer };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-7LT4AZED.js.map","// src/helpers/code-builder.ts\nvar DEFAULT_INDENTATION_CHARACTER = \"\";\nvar DEFAULT_LINE_JOIN = \"\\n\";\nvar CodeBuilder = class {\n /**\n * Helper object to format and aggragate lines of code.\n * Lines are aggregated in a `code` array, and need to be joined to obtain a proper code snippet.\n */\n constructor({ indent, join } = {}) {\n this.postProcessors = [];\n this.code = [];\n this.indentationCharacter = DEFAULT_INDENTATION_CHARACTER;\n this.lineJoin = DEFAULT_LINE_JOIN;\n /**\n * Add given indentation level to given line of code\n */\n this.indentLine = (line, indentationLevel = 0) => {\n const indent = this.indentationCharacter.repeat(indentationLevel);\n return `${indent}${line}`;\n };\n /**\n * Add the line at the beginning of the current lines\n */\n this.unshift = (line, indentationLevel) => {\n const newLine = this.indentLine(line, indentationLevel);\n this.code.unshift(newLine);\n };\n /**\n * Add the line at the end of the current lines\n */\n this.push = (line, indentationLevel) => {\n const newLine = this.indentLine(line, indentationLevel);\n this.code.push(newLine);\n };\n /**\n * Add an empty line at the end of current lines\n */\n this.blank = () => {\n this.code.push(\"\");\n };\n /**\n * Concatenate all current lines using the given lineJoin, then apply any replacers that may have been added\n */\n this.join = () => {\n const unreplacedCode = this.code.join(this.lineJoin);\n const replacedOutput = this.postProcessors.reduce((accumulator, replacer) => replacer(accumulator), unreplacedCode);\n return replacedOutput;\n };\n /**\n * Often when writing modules you may wish to add a literal tag or bit of metadata that you wish to transform after other processing as a final step.\n * To do so, you can provide a PostProcessor function and it will be run automatically for you when you call `join()` later on.\n */\n this.addPostProcessor = (postProcessor) => {\n this.postProcessors = [...this.postProcessors, postProcessor];\n };\n this.indentationCharacter = indent || DEFAULT_INDENTATION_CHARACTER;\n this.lineJoin = join ?? DEFAULT_LINE_JOIN;\n }\n};\n\nexport { CodeBuilder };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-UPA5TN5W.js.map","'use strict';\nmodule.exports = function (re) {\n\treturn Object.prototype.toString.call(re) === '[object RegExp]';\n};\n","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (object) => Object\n .getOwnPropertySymbols(object)\n .filter((keySymbol) => Object.prototype.propertyIsEnumerable.call(object, keySymbol));\n//# sourceMappingURL=index.js.map","'use strict';\nconst isRegexp = require('is-regexp');\nconst isObj = require('is-obj');\nconst getOwnEnumPropSymbols = require('get-own-enumerable-property-symbols').default;\n\nmodule.exports = (val, opts, pad) => {\n\tconst seen = [];\n\n\treturn (function stringify(val, opts, pad) {\n\t\topts = opts || {};\n\t\topts.indent = opts.indent || '\\t';\n\t\tpad = pad || '';\n\n\t\tlet tokens;\n\n\t\tif (opts.inlineCharacterLimit === undefined) {\n\t\t\ttokens = {\n\t\t\t\tnewLine: '\\n',\n\t\t\t\tnewLineOrSpace: '\\n',\n\t\t\t\tpad,\n\t\t\t\tindent: pad + opts.indent\n\t\t\t};\n\t\t} else {\n\t\t\ttokens = {\n\t\t\t\tnewLine: '@@__STRINGIFY_OBJECT_NEW_LINE__@@',\n\t\t\t\tnewLineOrSpace: '@@__STRINGIFY_OBJECT_NEW_LINE_OR_SPACE__@@',\n\t\t\t\tpad: '@@__STRINGIFY_OBJECT_PAD__@@',\n\t\t\t\tindent: '@@__STRINGIFY_OBJECT_INDENT__@@'\n\t\t\t};\n\t\t}\n\n\t\tconst expandWhiteSpace = string => {\n\t\t\tif (opts.inlineCharacterLimit === undefined) {\n\t\t\t\treturn string;\n\t\t\t}\n\n\t\t\tconst oneLined = string\n\t\t\t\t.replace(new RegExp(tokens.newLine, 'g'), '')\n\t\t\t\t.replace(new RegExp(tokens.newLineOrSpace, 'g'), ' ')\n\t\t\t\t.replace(new RegExp(tokens.pad + '|' + tokens.indent, 'g'), '');\n\n\t\t\tif (oneLined.length <= opts.inlineCharacterLimit) {\n\t\t\t\treturn oneLined;\n\t\t\t}\n\n\t\t\treturn string\n\t\t\t\t.replace(new RegExp(tokens.newLine + '|' + tokens.newLineOrSpace, 'g'), '\\n')\n\t\t\t\t.replace(new RegExp(tokens.pad, 'g'), pad)\n\t\t\t\t.replace(new RegExp(tokens.indent, 'g'), pad + opts.indent);\n\t\t};\n\n\t\tif (seen.indexOf(val) !== -1) {\n\t\t\treturn '\"[Circular]\"';\n\t\t}\n\n\t\tif (val === null ||\n\t\t\tval === undefined ||\n\t\t\ttypeof val === 'number' ||\n\t\t\ttypeof val === 'boolean' ||\n\t\t\ttypeof val === 'function' ||\n\t\t\ttypeof val === 'symbol' ||\n\t\t\tisRegexp(val)) {\n\t\t\treturn String(val);\n\t\t}\n\n\t\tif (val instanceof Date) {\n\t\t\treturn `new Date('${val.toISOString()}')`;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tif (val.length === 0) {\n\t\t\t\treturn '[]';\n\t\t\t}\n\n\t\t\tseen.push(val);\n\n\t\t\tconst ret = '[' + tokens.newLine + val.map((el, i) => {\n\t\t\t\tconst eol = val.length - 1 === i ? tokens.newLine : ',' + tokens.newLineOrSpace;\n\t\t\t\tlet value = stringify(el, opts, pad + opts.indent);\n\t\t\t\tif (opts.transform) {\n\t\t\t\t\tvalue = opts.transform(val, i, value);\n\t\t\t\t}\n\t\t\t\treturn tokens.indent + value + eol;\n\t\t\t}).join('') + tokens.pad + ']';\n\n\t\t\tseen.pop();\n\n\t\t\treturn expandWhiteSpace(ret);\n\t\t}\n\n\t\tif (isObj(val)) {\n\t\t\tlet objKeys = Object.keys(val).concat(getOwnEnumPropSymbols(val));\n\n\t\t\tif (opts.filter) {\n\t\t\t\tobjKeys = objKeys.filter(el => opts.filter(val, el));\n\t\t\t}\n\n\t\t\tif (objKeys.length === 0) {\n\t\t\t\treturn '{}';\n\t\t\t}\n\n\t\t\tseen.push(val);\n\n\t\t\tconst ret = '{' + tokens.newLine + objKeys.map((el, i) => {\n\t\t\t\tconst eol = objKeys.length - 1 === i ? tokens.newLine : ',' + tokens.newLineOrSpace;\n\t\t\t\tconst isSymbol = typeof el === 'symbol';\n\t\t\t\tconst isClassic = !isSymbol && /^[a-z$_][a-z$_0-9]*$/i.test(el);\n\t\t\t\tconst key = isSymbol || isClassic ? el : stringify(el, opts);\n\t\t\t\tlet value = stringify(val[el], opts, pad + opts.indent);\n\t\t\t\tif (opts.transform) {\n\t\t\t\t\tvalue = opts.transform(val, el, value);\n\t\t\t\t}\n\t\t\t\treturn tokens.indent + String(key) + ': ' + value + eol;\n\t\t\t}).join('') + tokens.pad + '}';\n\n\t\t\tseen.pop();\n\n\t\t\treturn expandWhiteSpace(ret);\n\t\t}\n\n\t\tval = String(val).replace(/[\\r\\n]/g, x => x === '\\n' ? '\\\\n' : '\\\\r');\n\n\t\tif (opts.singleQuotes === false) {\n\t\t\tval = val.replace(/\"/g, '\\\\\"');\n\t\t\treturn `\"${val}\"`;\n\t\t}\n\n\t\tval = val.replace(/\\\\?'/g, '\\\\\\'');\n\t\treturn `'${val}'`;\n\t})(val, opts, pad);\n};\n","import { CodeBuilder } from './chunk-UPA5TN5W.js';\nimport stringifyObject9 from 'stringify-object';\n\n// src/helpers/escape.ts\nfunction escapeString(rawValue, options = {}) {\n const { delimiter = '\"', escapeChar = \"\\\\\", escapeNewlines = true } = options;\n const stringValue = rawValue.toString();\n return [...stringValue].map((c2) => {\n if (c2 === \"\\b\") {\n return `${escapeChar}b`;\n } else if (c2 === \"\t\") {\n return `${escapeChar}t`;\n } else if (c2 === \"\\n\") {\n if (escapeNewlines) {\n return `${escapeChar}n`;\n }\n return c2;\n } else if (c2 === \"\\f\") {\n return `${escapeChar}f`;\n } else if (c2 === \"\\r\") {\n if (escapeNewlines) {\n return `${escapeChar}r`;\n }\n return c2;\n } else if (c2 === escapeChar) {\n return escapeChar + escapeChar;\n } else if (c2 === delimiter) {\n return escapeChar + delimiter;\n } else if (c2 < \" \" || c2 > \"~\") {\n return JSON.stringify(c2).slice(1, -1);\n }\n return c2;\n }).join(\"\");\n}\nvar escapeForSingleQuotes = (value) => escapeString(value, { delimiter: \"'\" });\nvar escapeForDoubleQuotes = (value) => escapeString(value, { delimiter: '\"' });\n\n// src/targets/c/libcurl/client.ts\nvar libcurl = {\n info: {\n key: \"libcurl\",\n title: \"Libcurl\",\n link: \"http://curl.haxx.se/libcurl\",\n description: \"Simple REST and HTTP API Client for C\",\n extname: \".c\"\n },\n convert: ({ method, fullUrl, headersObj, allHeaders, postData }) => {\n const { push, blank, join } = new CodeBuilder();\n push(\"CURL *hnd = curl_easy_init();\");\n blank();\n push(`curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, \"${method.toUpperCase()}\");`);\n push(\"curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);\");\n push(`curl_easy_setopt(hnd, CURLOPT_URL, \"${fullUrl}\");`);\n const headers = Object.keys(headersObj);\n if (headers.length) {\n blank();\n push(\"struct curl_slist *headers = NULL;\");\n headers.forEach((header) => {\n push(`headers = curl_slist_append(headers, \"${header}: ${escapeForDoubleQuotes(headersObj[header])}\");`);\n });\n push(\"curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);\");\n }\n if (allHeaders.cookie) {\n blank();\n push(`curl_easy_setopt(hnd, CURLOPT_COOKIE, \"${allHeaders.cookie}\");`);\n }\n if (postData.text) {\n blank();\n push(`curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, ${JSON.stringify(postData.text)});`);\n }\n blank();\n push(\"CURLcode ret = curl_easy_perform(hnd);\");\n return join();\n }\n};\n\n// src/targets/c/target.ts\nvar c = {\n info: {\n key: \"c\",\n title: \"C\",\n default: \"libcurl\",\n cli: \"c\"\n },\n clientsById: {\n libcurl\n }\n};\n\n// src/helpers/headers.ts\nvar getHeaderName = (headers, name) => Object.keys(headers).find((header) => header.toLowerCase() === name.toLowerCase());\nvar getHeader = (headers, name) => {\n const headerName = getHeaderName(headers, name);\n if (!headerName) {\n return void 0;\n }\n return headers[headerName];\n};\nvar hasHeader = (headers, name) => Boolean(getHeaderName(headers, name));\nvar isMimeTypeJSON = (mimeType) => [\"application/json\", \"application/x-json\", \"text/json\", \"text/x-json\", \"+json\"].some(\n (type) => mimeType.indexOf(type) > -1\n);\n\n// src/targets/clojure/clj_http/client.ts\nvar Keyword = class {\n constructor(name) {\n this.name = \"\";\n this.toString = () => `:${this.name}`;\n this.name = name;\n }\n};\nvar File = class {\n constructor(path) {\n this.path = \"\";\n this.toString = () => `(clojure.java.io/file \"${this.path}\")`;\n this.path = path;\n }\n};\nvar jsType = (input) => {\n if (input === void 0) {\n return null;\n }\n if (input === null) {\n return \"null\";\n }\n return input.constructor.name.toLowerCase();\n};\nvar objEmpty = (input) => {\n if (input === void 0) {\n return true;\n } else if (jsType(input) === \"object\") {\n return Object.keys(input).length === 0;\n }\n return false;\n};\nvar filterEmpty = (input) => {\n Object.keys(input).filter((x) => objEmpty(input[x])).forEach((x) => {\n delete input[x];\n });\n return input;\n};\nvar padBlock = (padSize, input) => {\n const padding = \" \".repeat(padSize);\n return input.replace(/\\n/g, `\n${padding}`);\n};\nvar jsToEdn = (js) => {\n switch (jsType(js)) {\n case \"string\":\n return `\"${js.replace(/\"/g, '\\\\\"')}\"`;\n case \"file\":\n return js.toString();\n case \"keyword\":\n return js.toString();\n case \"null\":\n return \"nil\";\n case \"regexp\":\n return `#\"${js.source}\"`;\n case \"object\": {\n const obj = Object.keys(js).reduce((accumulator, key) => {\n const val = padBlock(key.length + 2, jsToEdn(js[key]));\n return `${accumulator}:${key} ${val}\n `;\n }, \"\").trim();\n return `{${padBlock(1, obj)}}`;\n }\n case \"array\": {\n const arr = js.reduce((accumulator, value) => `${accumulator} ${jsToEdn(value)}`, \"\").trim();\n return `[${padBlock(1, arr)}]`;\n }\n default:\n return js.toString();\n }\n};\nvar clj_http = {\n info: {\n key: \"clj_http\",\n title: \"clj-http\",\n link: \"https://github.com/dakrone/clj-http\",\n description: \"An idiomatic clojure http client wrapping the apache client.\",\n extname: \".clj\"\n },\n convert: ({ queryObj, method, postData, url, allHeaders }, options) => {\n const { push, join } = new CodeBuilder({ indent: options?.indent });\n const methods = [\"get\", \"post\", \"put\", \"delete\", \"patch\", \"head\", \"options\"];\n method = method.toLowerCase();\n if (!methods.includes(method)) {\n push(\"Method not supported\");\n return join();\n }\n const params2 = {\n headers: allHeaders,\n \"query-params\": queryObj\n };\n switch (postData.mimeType) {\n case \"application/json\":\n {\n params2[\"content-type\"] = new Keyword(\"json\");\n params2[\"form-params\"] = postData.jsonObj;\n const header = getHeaderName(params2.headers, \"content-type\");\n if (header) {\n delete params2.headers[header];\n }\n }\n break;\n case \"application/x-www-form-urlencoded\":\n {\n params2[\"form-params\"] = postData.paramsObj;\n const header = getHeaderName(params2.headers, \"content-type\");\n if (header) {\n delete params2.headers[header];\n }\n }\n break;\n case \"text/plain\":\n {\n params2.body = postData.text;\n const header = getHeaderName(params2.headers, \"content-type\");\n if (header) {\n delete params2.headers[header];\n }\n }\n break;\n case \"multipart/form-data\": {\n if (postData.params) {\n params2.multipart = postData.params.map((param) => {\n if (param.fileName && !param.value) {\n return {\n name: param.name,\n content: new File(param.fileName)\n };\n }\n return {\n name: param.name,\n content: param.value\n };\n });\n const header = getHeaderName(params2.headers, \"content-type\");\n if (header) {\n delete params2.headers[header];\n }\n }\n break;\n }\n }\n switch (getHeader(params2.headers, \"accept\")) {\n case \"application/json\":\n {\n params2.accept = new Keyword(\"json\");\n const header = getHeaderName(params2.headers, \"accept\");\n if (header) {\n delete params2.headers[header];\n }\n }\n break;\n }\n push(\"(require '[clj-http.client :as client])\\n\");\n if (objEmpty(filterEmpty(params2))) {\n push(`(client/${method} \"${url}\")`);\n } else {\n const padding = 11 + method.length + url.length;\n const formattedParams = padBlock(padding, jsToEdn(filterEmpty(params2)));\n push(`(client/${method} \"${url}\" ${formattedParams})`);\n }\n return join();\n }\n};\n\n// src/targets/clojure/target.ts\nvar clojure = {\n info: {\n key: \"clojure\",\n title: \"Clojure\",\n default: \"clj_http\"\n },\n clientsById: {\n clj_http\n }\n};\n\n// src/targets/csharp/httpclient/client.ts\nvar getDecompressionMethods = (allHeaders) => {\n let acceptEncodings = getHeader(allHeaders, \"accept-encoding\");\n if (!acceptEncodings) {\n return [];\n }\n const supportedMethods2 = {\n gzip: \"DecompressionMethods.GZip\",\n deflate: \"DecompressionMethods.Deflate\"\n };\n const methods = [];\n if (typeof acceptEncodings === \"string\") {\n acceptEncodings = [acceptEncodings];\n }\n acceptEncodings.forEach((acceptEncoding) => {\n acceptEncoding.split(\",\").forEach((encoding) => {\n const match = /\\s*([^;\\s]+)/.exec(encoding);\n if (match) {\n const method = supportedMethods2[match[1]];\n if (method) {\n methods.push(method);\n }\n }\n });\n });\n return methods;\n};\nvar httpclient = {\n info: {\n key: \"httpclient\",\n title: \"HttpClient\",\n link: \"https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient\",\n description: \".NET Standard HTTP Client\",\n extname: \".cs\"\n },\n convert: ({ allHeaders, postData, method, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { push, join } = new CodeBuilder({ indent: opts.indent });\n push(\"using System.Net.Http.Headers;\");\n let clienthandler = \"\";\n const cookies = Boolean(allHeaders.cookie);\n const decompressionMethods = getDecompressionMethods(allHeaders);\n if (cookies || decompressionMethods.length) {\n clienthandler = \"clientHandler\";\n push(\"var clientHandler = new HttpClientHandler\");\n push(\"{\");\n if (cookies) {\n push(\"UseCookies = false,\", 1);\n }\n if (decompressionMethods.length) {\n push(`AutomaticDecompression = ${decompressionMethods.join(\" | \")},`, 1);\n }\n push(\"};\");\n }\n push(`var client = new HttpClient(${clienthandler});`);\n push(\"var request = new HttpRequestMessage\");\n push(\"{\");\n const methods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\", \"TRACE\"];\n method = method.toUpperCase();\n if (method && methods.includes(method)) {\n method = `HttpMethod.${method[0]}${method.substring(1).toLowerCase()}`;\n } else {\n method = `new HttpMethod(\"${method}\")`;\n }\n push(`Method = ${method},`, 1);\n push(`RequestUri = new Uri(\"${fullUrl}\"),`, 1);\n const headers = Object.keys(allHeaders).filter((header) => {\n switch (header.toLowerCase()) {\n case \"content-type\":\n case \"content-length\":\n case \"accept-encoding\":\n return false;\n default:\n return true;\n }\n });\n if (headers.length) {\n push(\"Headers =\", 1);\n push(\"{\", 1);\n headers.forEach((key) => {\n push(`{ \"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\" },`, 2);\n });\n push(\"},\", 1);\n }\n if (postData.text) {\n const contentType = postData.mimeType;\n switch (contentType) {\n case \"application/x-www-form-urlencoded\":\n push(\"Content = new FormUrlEncodedContent(new Dictionary<string, string>\", 1);\n push(\"{\", 1);\n postData.params?.forEach((param) => {\n push(`{ \"${param.name}\", \"${param.value}\" },`, 2);\n });\n push(\"}),\", 1);\n break;\n case \"multipart/form-data\":\n push(\"Content = new MultipartFormDataContent\", 1);\n push(\"{\", 1);\n postData.params?.forEach((param) => {\n push(`new StringContent(${JSON.stringify(param.value || \"\")})`, 2);\n push(\"{\", 2);\n push(\"Headers =\", 3);\n push(\"{\", 3);\n if (param.contentType) {\n push(`ContentType = new MediaTypeHeaderValue(\"${param.contentType}\"),`, 4);\n }\n push('ContentDisposition = new ContentDispositionHeaderValue(\"form-data\")', 4);\n push(\"{\", 4);\n push(`Name = \"${param.name}\",`, 5);\n if (param.fileName) {\n push(`FileName = \"${param.fileName}\",`, 5);\n }\n push(\"}\", 4);\n push(\"}\", 3);\n push(\"},\", 2);\n });\n push(\"},\", 1);\n break;\n default:\n push(`Content = new StringContent(${JSON.stringify(postData.text || \"\")})`, 1);\n push(\"{\", 1);\n push(\"Headers =\", 2);\n push(\"{\", 2);\n push(`ContentType = new MediaTypeHeaderValue(\"${contentType}\")`, 3);\n push(\"}\", 2);\n push(\"}\", 1);\n break;\n }\n }\n push(\"};\");\n push(\"using (var response = await client.SendAsync(request))\");\n push(\"{\");\n push(\"response.EnsureSuccessStatusCode();\", 1);\n push(\"var body = await response.Content.ReadAsStringAsync();\", 1);\n push(\"Console.WriteLine(body);\", 1);\n push(\"}\");\n return join();\n }\n};\n\n// src/targets/csharp/restsharp/client.ts\nfunction title(s) {\n return s[0].toUpperCase() + s.slice(1).toLowerCase();\n}\nvar restsharp = {\n info: {\n key: \"restsharp\",\n title: \"RestSharp\",\n link: \"http://restsharp.org/\",\n description: \"Simple REST and HTTP API Client for .NET\",\n extname: \".cs\",\n installation: \"dotnet add package RestSharp\"\n },\n convert: ({ method, fullUrl, headersObj, cookies, postData, uriObj }) => {\n const { push, join } = new CodeBuilder();\n const isSupportedMethod = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"].includes(\n method.toUpperCase()\n );\n if (!isSupportedMethod) {\n return \"Method not supported\";\n }\n push(\"using RestSharp;\\n\\n\");\n push(`var options = new RestClientOptions(\"${fullUrl}\");`);\n push(\"var client = new RestClient(options);\");\n push('var request = new RestRequest(\"\");');\n const isMultipart = postData.mimeType && postData.mimeType === \"multipart/form-data\";\n if (isMultipart) {\n push(\"request.AlwaysMultipartFormData = true;\");\n }\n Object.keys(headersObj).forEach((key) => {\n if (postData.mimeType && key.toLowerCase() === \"content-type\" && postData.text) {\n if (isMultipart && postData.boundary) {\n push(`request.FormBoundary = \"${postData.boundary}\";`);\n }\n return;\n }\n push(`request.AddHeader(\"${key}\", \"${escapeForDoubleQuotes(headersObj[key])}\");`);\n });\n cookies.forEach(({ name, value }) => {\n push(`request.AddCookie(\"${name}\", \"${escapeForDoubleQuotes(value)}\", \"${uriObj.pathname}\", \"${uriObj.host}\");`);\n });\n switch (postData.mimeType) {\n case \"multipart/form-data\":\n if (!postData.params) break;\n postData.params.forEach((param) => {\n if (param.fileName) {\n push(`request.AddFile(\"${param.name}\", \"${param.fileName}\");`);\n } else {\n push(`request.AddParameter(\"${param.name}\", \"${param.value}\");`);\n }\n });\n break;\n case \"application/x-www-form-urlencoded\":\n if (!postData.params) break;\n postData.params.forEach((param) => {\n push(`request.AddParameter(\"${param.name}\", \"${param.value}\");`);\n });\n break;\n case \"application/json\": {\n if (!postData.text) break;\n const text = JSON.stringify(postData.text);\n push(`request.AddJsonBody(${text}, false);`);\n break;\n }\n default:\n if (!postData.text) break;\n push(`request.AddStringBody(\"${postData.text}\", \"${postData.mimeType}\");`);\n }\n push(`var response = await client.${title(method)}Async(request);\n`);\n push('Console.WriteLine(\"{0}\", response.Content);\\n');\n return join();\n }\n};\n\n// src/targets/csharp/target.ts\nvar csharp = {\n info: {\n key: \"csharp\",\n title: \"C#\",\n default: \"restsharp\",\n cli: \"dotnet\"\n },\n clientsById: {\n httpclient,\n restsharp\n }\n};\n\n// src/targets/go/native/client.ts\nvar native = {\n info: {\n key: \"native\",\n title: \"NewRequest\",\n link: \"http://golang.org/pkg/net/http/#NewRequest\",\n description: \"Golang HTTP client request\",\n extname: \".go\"\n },\n convert: ({ postData, method, allHeaders, fullUrl }, options = {}) => {\n const { blank, push, join } = new CodeBuilder({ indent: \"\t\" });\n const { showBoilerplate = true, checkErrors = false, printBody = true, timeout = -1 } = options;\n const errorPlaceholder = checkErrors ? \"err\" : \"_\";\n const indent = showBoilerplate ? 1 : 0;\n const errorCheck = () => {\n if (checkErrors) {\n push(\"if err != nil {\", indent);\n push(\"panic(err)\", indent + 1);\n push(\"}\", indent);\n }\n };\n if (showBoilerplate) {\n push(\"package main\");\n blank();\n push(\"import (\");\n push('\"fmt\"', indent);\n if (timeout > 0) {\n push('\"time\"', indent);\n }\n if (postData.text) {\n push('\"strings\"', indent);\n }\n push('\"net/http\"', indent);\n if (printBody) {\n push('\"io\"', indent);\n }\n push(\")\");\n blank();\n push(\"func main() {\");\n blank();\n }\n const hasTimeout = timeout > 0;\n const hasClient = hasTimeout;\n const client = hasClient ? \"client\" : \"http.DefaultClient\";\n if (hasClient) {\n push(\"client := http.Client{\", indent);\n if (hasTimeout) {\n push(`Timeout: time.Duration(${timeout} * time.Second),`, indent + 1);\n }\n push(\"}\", indent);\n blank();\n }\n push(`url := \"${fullUrl}\"`, indent);\n blank();\n if (postData.text) {\n push(`payload := strings.NewReader(${JSON.stringify(postData.text)})`, indent);\n blank();\n push(`req, ${errorPlaceholder} := http.NewRequest(\"${method}\", url, payload)`, indent);\n blank();\n } else {\n push(`req, ${errorPlaceholder} := http.NewRequest(\"${method}\", url, nil)`, indent);\n blank();\n }\n errorCheck();\n if (Object.keys(allHeaders).length) {\n Object.keys(allHeaders).forEach((key) => {\n push(`req.Header.Add(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, indent);\n });\n blank();\n }\n push(`res, ${errorPlaceholder} := ${client}.Do(req)`, indent);\n errorCheck();\n if (printBody) {\n blank();\n push(\"defer res.Body.Close()\", indent);\n push(`body, ${errorPlaceholder} := io.ReadAll(res.Body)`, indent);\n errorCheck();\n }\n blank();\n if (printBody) {\n push(\"fmt.Println(string(body))\", indent);\n }\n if (showBoilerplate) {\n blank();\n push(\"}\");\n }\n return join();\n }\n};\n\n// src/targets/go/target.ts\nvar go = {\n info: {\n key: \"go\",\n title: \"Go\",\n default: \"native\",\n cli: \"go\"\n },\n clientsById: {\n native\n }\n};\n\n// src/targets/http/http1.1/client.ts\nvar CRLF = \"\\r\\n\";\nvar http11 = {\n info: {\n key: \"http1.1\",\n title: \"HTTP/1.1\",\n link: \"https://tools.ietf.org/html/rfc7230\",\n description: \"HTTP/1.1 request string in accordance with RFC 7230\",\n extname: null\n },\n convert: ({ method, fullUrl, uriObj, httpVersion, allHeaders, postData }, options) => {\n const opts = {\n absoluteURI: false,\n autoContentLength: true,\n autoHost: true,\n ...options\n };\n const { blank, push, join } = new CodeBuilder({ indent: \"\", join: CRLF });\n const requestUrl = opts.absoluteURI ? fullUrl : uriObj.path;\n push(`${method} ${requestUrl} ${httpVersion}`);\n const headerKeys = Object.keys(allHeaders);\n headerKeys.forEach((key) => {\n const keyCapitalized = key.toLowerCase().replace(/(^|-)(\\w)/g, (input) => input.toUpperCase());\n push(`${keyCapitalized}: ${allHeaders[key]}`);\n });\n if (opts.autoHost && !headerKeys.includes(\"host\")) {\n push(`Host: ${uriObj.host}`);\n }\n if (opts.autoContentLength && postData.text && !headerKeys.includes(\"content-length\")) {\n const encoder = new TextEncoder();\n const length = encoder.encode(postData.text).length.toString();\n push(`Content-Length: ${length}`);\n }\n blank();\n const headerSection = join();\n const messageBody = postData.text || \"\";\n return `${headerSection}${CRLF}${messageBody}`;\n }\n};\n\n// src/targets/http/target.ts\nvar http = {\n info: {\n key: \"http\",\n title: \"HTTP\",\n default: \"http1.1\"\n },\n clientsById: {\n \"http1.1\": http11\n }\n};\n\n// src/targets/java/asynchttp/client.ts\nvar asynchttp = {\n info: {\n key: \"asynchttp\",\n title: \"AsyncHttp\",\n link: \"https://github.com/AsyncHttpClient/async-http-client\",\n description: \"Asynchronous Http and WebSocket Client library for Java\",\n extname: \".java\"\n },\n convert: ({ method, allHeaders, postData, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { blank, push, join } = new CodeBuilder({ indent: opts.indent });\n push(\"AsyncHttpClient client = new DefaultAsyncHttpClient();\");\n push(`client.prepare(\"${method.toUpperCase()}\", \"${fullUrl}\")`);\n Object.keys(allHeaders).forEach((key) => {\n push(`.setHeader(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, 1);\n });\n if (postData.text) {\n push(`.setBody(${JSON.stringify(postData.text)})`, 1);\n }\n push(\".execute()\", 1);\n push(\".toCompletableFuture()\", 1);\n push(\".thenAccept(System.out::println)\", 1);\n push(\".join();\", 1);\n blank();\n push(\"client.close();\");\n return join();\n }\n};\n\n// src/targets/java/nethttp/client.ts\nvar nethttp = {\n info: {\n key: \"nethttp\",\n title: \"java.net.http\",\n link: \"https://openjdk.java.net/groups/net/httpclient/intro.html\",\n description: \"Java Standardized HTTP Client API\",\n extname: \".java\"\n },\n convert: ({ allHeaders, fullUrl, method, postData }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { push, join } = new CodeBuilder({ indent: opts.indent });\n push(\"HttpRequest request = HttpRequest.newBuilder()\");\n push(`.uri(URI.create(\"${fullUrl}\"))`, 2);\n Object.keys(allHeaders).forEach((key) => {\n push(`.header(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, 2);\n });\n if (postData.text) {\n push(\n `.method(\"${method.toUpperCase()}\", HttpRequest.BodyPublishers.ofString(${JSON.stringify(postData.text)}))`,\n 2\n );\n } else {\n push(`.method(\"${method.toUpperCase()}\", HttpRequest.BodyPublishers.noBody())`, 2);\n }\n push(\".build();\", 2);\n push(\n \"HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());\"\n );\n push(\"System.out.println(response.body());\");\n return join();\n }\n};\n\n// src/targets/java/okhttp/client.ts\nvar okhttp = {\n info: {\n key: \"okhttp\",\n title: \"OkHttp\",\n link: \"http://square.github.io/okhttp/\",\n description: \"An HTTP Request Client Library\",\n extname: \".java\"\n },\n convert: ({ postData, method, fullUrl, allHeaders }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { push, blank, join } = new CodeBuilder({ indent: opts.indent });\n const methods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\"];\n const methodsWithBody = [\"POST\", \"PUT\", \"DELETE\", \"PATCH\"];\n push(\"OkHttpClient client = new OkHttpClient();\");\n blank();\n if (postData.text) {\n if (postData.boundary) {\n push(`MediaType mediaType = MediaType.parse(\"${postData.mimeType}; boundary=${postData.boundary}\");`);\n } else {\n push(`MediaType mediaType = MediaType.parse(\"${postData.mimeType}\");`);\n }\n push(`RequestBody body = RequestBody.create(mediaType, ${JSON.stringify(postData.text)});`);\n }\n push(\"Request request = new Request.Builder()\");\n push(`.url(\"${fullUrl}\")`, 1);\n if (!methods.includes(method.toUpperCase())) {\n if (postData.text) {\n push(`.method(\"${method.toUpperCase()}\", body)`, 1);\n } else {\n push(`.method(\"${method.toUpperCase()}\", null)`, 1);\n }\n } else if (methodsWithBody.includes(method.toUpperCase())) {\n if (postData.text) {\n push(`.${method.toLowerCase()}(body)`, 1);\n } else {\n push(`.${method.toLowerCase()}(null)`, 1);\n }\n } else {\n push(`.${method.toLowerCase()}()`, 1);\n }\n Object.keys(allHeaders).forEach((key) => {\n push(`.addHeader(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, 1);\n });\n push(\".build();\", 1);\n blank();\n push(\"Response response = client.newCall(request).execute();\");\n return join();\n }\n};\n\n// src/targets/java/unirest/client.ts\nvar unirest = {\n info: {\n key: \"unirest\",\n title: \"Unirest\",\n link: \"http://unirest.io/java.html\",\n description: \"Lightweight HTTP Request Client Library\",\n extname: \".java\"\n },\n convert: ({ method, allHeaders, postData, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { join, push } = new CodeBuilder({ indent: opts.indent });\n const methods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"];\n if (!methods.includes(method.toUpperCase())) {\n push(`HttpResponse<String> response = Unirest.customMethod(\"${method.toUpperCase()}\",\"${fullUrl}\")`);\n } else {\n push(`HttpResponse<String> response = Unirest.${method.toLowerCase()}(\"${fullUrl}\")`);\n }\n Object.keys(allHeaders).forEach((key) => {\n push(`.header(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, 1);\n });\n if (postData.text) {\n push(`.body(${JSON.stringify(postData.text)})`, 1);\n }\n push(\".asString();\", 1);\n return join();\n }\n};\n\n// src/targets/java/target.ts\nvar java = {\n info: {\n key: \"java\",\n title: \"Java\",\n default: \"unirest\"\n },\n clientsById: {\n asynchttp,\n nethttp,\n okhttp,\n unirest\n }\n};\nvar axios = {\n info: {\n key: \"axios\",\n title: \"Axios\",\n link: \"https://github.com/axios/axios\",\n description: \"Promise based HTTP client for the browser and node.js\",\n extname: \".js\",\n installation: \"npm install axios --save\"\n },\n convert: ({ allHeaders, method, url, queryObj, postData }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { blank, push, join, addPostProcessor } = new CodeBuilder({ indent: opts.indent });\n push(\"import axios from 'axios';\");\n blank();\n const requestOptions = {\n method,\n url\n };\n if (Object.keys(queryObj).length) {\n requestOptions.params = queryObj;\n }\n if (Object.keys(allHeaders).length) {\n requestOptions.headers = allHeaders;\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.params) {\n push(\"const encodedParams = new URLSearchParams();\");\n postData.params.forEach((param) => {\n push(`encodedParams.set('${param.name}', '${param.value}');`);\n });\n blank();\n requestOptions.data = \"encodedParams,\";\n addPostProcessor((code) => code.replace(/'encodedParams,'/, \"encodedParams,\"));\n }\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n requestOptions.data = postData.jsonObj;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n push(\"const form = new FormData();\");\n postData.params.forEach((param) => {\n push(`form.append('${param.name}', '${param.value || param.fileName || \"\"}');`);\n });\n blank();\n requestOptions.data = \"[form]\";\n break;\n default:\n if (postData.text) {\n requestOptions.data = postData.text;\n }\n }\n const optionString = stringifyObject9(requestOptions, {\n indent: \" \",\n inlineCharacterLimit: 80\n }).replace('\"[form]\"', \"form\");\n push(`const options = ${optionString};`);\n blank();\n push(\"axios\");\n push(\".request(options)\", 1);\n push(\".then(function (response) {\", 1);\n push(\"console.log(response.data);\", 2);\n push(\"})\", 1);\n push(\".catch(function (error) {\", 1);\n push(\"console.error(error);\", 2);\n push(\"});\", 1);\n return join();\n }\n};\nvar fetch = {\n info: {\n key: \"fetch\",\n title: \"fetch\",\n link: \"https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\",\n description: \"Perform asynchronous HTTP requests with the Fetch API\",\n extname: \".js\"\n },\n convert: ({ method, allHeaders, postData, fullUrl }, inputOpts) => {\n const opts = {\n indent: \" \",\n credentials: null,\n ...inputOpts\n };\n const { blank, join, push } = new CodeBuilder({ indent: opts.indent });\n const options = {\n method\n };\n if (Object.keys(allHeaders).length) {\n options.headers = allHeaders;\n }\n if (opts.credentials !== null) {\n options.credentials = opts.credentials;\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n options.body = postData.paramsObj ? postData.paramsObj : postData.text;\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n options.body = postData.jsonObj;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n const contentTypeHeader = getHeaderName(allHeaders, \"content-type\");\n if (contentTypeHeader) {\n delete allHeaders[contentTypeHeader];\n }\n push(\"const form = new FormData();\");\n postData.params.forEach((param) => {\n push(`form.append('${param.name}', '${param.value || param.fileName || \"\"}');`);\n });\n blank();\n break;\n default:\n if (postData.text) {\n options.body = postData.text;\n }\n }\n if (options.headers && !Object.keys(options.headers).length) {\n delete options.headers;\n }\n push(\n `const options = ${stringifyObject9(options, {\n indent: opts.indent,\n inlineCharacterLimit: 80,\n // The Fetch API body only accepts string parameters, but stringified JSON can be difficult\n // to read, so we keep the object as a literal and use this transform function to wrap the\n // literal in a `JSON.stringify` call.\n transform: (object, property, originalResult) => {\n if (property === \"body\") {\n if (postData.mimeType === \"application/x-www-form-urlencoded\") {\n return `new URLSearchParams(${originalResult})`;\n } else if (postData.mimeType === \"application/json\") {\n return `JSON.stringify(${originalResult})`;\n }\n }\n return originalResult;\n }\n })};`\n );\n blank();\n if (postData.params && postData.mimeType === \"multipart/form-data\") {\n push(\"options.body = form;\");\n blank();\n }\n push(`fetch('${fullUrl}', options)`);\n push(\".then(response => response.json())\", 1);\n push(\".then(response => console.log(response))\", 1);\n push(\".catch(err => console.error(err));\", 1);\n return join();\n }\n};\nvar jquery = {\n info: {\n key: \"jquery\",\n title: \"jQuery\",\n link: \"http://api.jquery.com/jquery.ajax/\",\n description: \"Perform an asynchronous HTTP (Ajax) requests with jQuery\",\n extname: \".js\"\n },\n convert: ({ fullUrl, method, allHeaders, postData }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { blank, push, join } = new CodeBuilder({ indent: opts.indent });\n const settings = {\n async: true,\n crossDomain: true,\n url: fullUrl,\n method,\n headers: allHeaders\n };\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n settings.data = postData.paramsObj ? postData.paramsObj : postData.text;\n break;\n case \"application/json\":\n settings.processData = false;\n settings.data = postData.text;\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n push(\"const form = new FormData();\");\n postData.params.forEach((param) => {\n push(`form.append('${param.name}', '${param.value || param.fileName || \"\"}');`);\n });\n settings.processData = false;\n settings.contentType = false;\n settings.mimeType = \"multipart/form-data\";\n settings.data = \"[form]\";\n if (hasHeader(allHeaders, \"content-type\")) {\n if (getHeader(allHeaders, \"content-type\")?.includes(\"boundary\")) {\n const headerName = getHeaderName(allHeaders, \"content-type\");\n if (headerName) {\n delete settings.headers[headerName];\n }\n }\n }\n blank();\n break;\n default:\n if (postData.text) {\n settings.data = postData.text;\n }\n }\n const stringifiedSettings = stringifyObject9(settings, { indent: opts.indent }).replace(\"'[form]'\", \"form\");\n push(`const settings = ${stringifiedSettings};`);\n blank();\n push(\"$.ajax(settings).done(function (response) {\");\n push(\"console.log(response);\", 1);\n push(\"});\");\n return join();\n }\n};\nvar xhr = {\n info: {\n key: \"xhr\",\n title: \"XMLHttpRequest\",\n link: \"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\",\n description: \"W3C Standard API that provides scripted client functionality\",\n extname: \".js\"\n },\n convert: ({ postData, allHeaders, method, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n cors: true,\n ...options\n };\n const { blank, push, join } = new CodeBuilder({ indent: opts.indent });\n switch (postData.mimeType) {\n case \"application/json\":\n push(\n `const data = JSON.stringify(${stringifyObject9(postData.jsonObj, {\n indent: opts.indent\n })});`\n );\n blank();\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n push(\"const data = new FormData();\");\n postData.params.forEach((param) => {\n push(`data.append('${param.name}', '${param.value || param.fileName || \"\"}');`);\n });\n if (hasHeader(allHeaders, \"content-type\")) {\n if (getHeader(allHeaders, \"content-type\")?.includes(\"boundary\")) {\n const headerName = getHeaderName(allHeaders, \"content-type\");\n if (headerName) {\n delete allHeaders[headerName];\n }\n }\n }\n blank();\n break;\n default:\n push(`const data = ${postData.text ? `'${postData.text}'` : \"null\"};`);\n blank();\n }\n push(\"const xhr = new XMLHttpRequest();\");\n if (opts.cors) {\n push(\"xhr.withCredentials = true;\");\n }\n blank();\n push(\"xhr.addEventListener('readystatechange', function () {\");\n push(\"if (this.readyState === this.DONE) {\", 1);\n push(\"console.log(this.responseText);\", 2);\n push(\"}\", 1);\n push(\"});\");\n blank();\n push(`xhr.open('${method}', '${fullUrl}');`);\n Object.keys(allHeaders).forEach((key) => {\n push(`xhr.setRequestHeader('${key}', '${escapeForSingleQuotes(allHeaders[key])}');`);\n });\n blank();\n push(\"xhr.send(data);\");\n return join();\n }\n};\n\n// src/targets/javascript/target.ts\nvar javascript = {\n info: {\n key: \"javascript\",\n title: \"JavaScript\",\n default: \"xhr\"\n },\n clientsById: {\n xhr,\n axios,\n fetch,\n jquery\n }\n};\n\n// src/targets/json/native/client.ts\nvar native2 = {\n info: {\n key: \"native\",\n title: \"Native JSON\",\n link: \"https://www.json.org/json-en.html\",\n description: \"A JSON represetation of any HAR payload.\",\n extname: \".json\"\n },\n convert: ({ postData }, inputOpts) => {\n const opts = {\n indent: \" \",\n ...inputOpts\n };\n let payload = \"\";\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n payload = postData.paramsObj ? postData.paramsObj : postData.text;\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n payload = postData.jsonObj;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n const multipartPayload = {};\n postData.params.forEach((param) => {\n multipartPayload[param.name] = param.value;\n });\n payload = multipartPayload;\n break;\n default:\n if (postData.text) {\n payload = postData.text;\n }\n }\n if (typeof payload === \"undefined\" || payload === \"\") {\n return \"No JSON body\";\n }\n return JSON.stringify(payload, null, opts.indent);\n }\n};\n\n// src/targets/json/target.ts\nvar json = {\n info: {\n key: \"json\",\n title: \"JSON\",\n default: \"native\"\n },\n clientsById: {\n native: native2\n }\n};\n\n// src/targets/kotlin/okhttp/client.ts\nvar okhttp2 = {\n info: {\n key: \"okhttp\",\n title: \"OkHttp\",\n link: \"http://square.github.io/okhttp/\",\n description: \"An HTTP Request Client Library\",\n extname: \".kt\"\n },\n convert: ({ postData, fullUrl, method, allHeaders }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { blank, join, push } = new CodeBuilder({ indent: opts.indent });\n const methods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\"];\n const methodsWithBody = [\"POST\", \"PUT\", \"DELETE\", \"PATCH\"];\n push(\"val client = OkHttpClient()\");\n blank();\n if (postData.text) {\n if (postData.boundary) {\n push(`val mediaType = MediaType.parse(\"${postData.mimeType}; boundary=${postData.boundary}\")`);\n } else {\n push(`val mediaType = MediaType.parse(\"${postData.mimeType}\")`);\n }\n push(`val body = RequestBody.create(mediaType, ${JSON.stringify(postData.text)})`);\n }\n push(\"val request = Request.Builder()\");\n push(`.url(\"${fullUrl}\")`, 1);\n if (!methods.includes(method.toUpperCase())) {\n if (postData.text) {\n push(`.method(\"${method.toUpperCase()}\", body)`, 1);\n } else {\n push(`.method(\"${method.toUpperCase()}\", null)`, 1);\n }\n } else if (methodsWithBody.includes(method.toUpperCase())) {\n if (postData.text) {\n push(`.${method.toLowerCase()}(body)`, 1);\n } else {\n push(`.${method.toLowerCase()}(null)`, 1);\n }\n } else {\n push(`.${method.toLowerCase()}()`, 1);\n }\n Object.keys(allHeaders).forEach((key) => {\n push(`.addHeader(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\")`, 1);\n });\n push(\".build()\", 1);\n blank();\n push(\"val response = client.newCall(request).execute()\");\n return join();\n }\n};\n\n// src/targets/kotlin/target.ts\nvar kotlin = {\n info: {\n key: \"kotlin\",\n title: \"Kotlin\",\n default: \"okhttp\"\n },\n clientsById: {\n okhttp: okhttp2\n }\n};\nvar axios2 = {\n info: {\n key: \"axios\",\n title: \"Axios\",\n link: \"https://github.com/axios/axios\",\n description: \"Promise based HTTP client for the browser and node.js\",\n extname: \".cjs\",\n installation: \"npm install axios --save\"\n },\n convert: ({ method, fullUrl, allHeaders, postData }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const { blank, join, push, addPostProcessor } = new CodeBuilder({ indent: opts.indent });\n push(\"const axios = require('axios');\");\n const reqOpts = {\n method,\n url: fullUrl\n };\n if (Object.keys(allHeaders).length) {\n reqOpts.headers = allHeaders;\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.params) {\n push(\"const { URLSearchParams } = require('url');\");\n blank();\n push(\"const encodedParams = new URLSearchParams();\");\n postData.params.forEach((param) => {\n push(`encodedParams.set('${param.name}', '${param.value}');`);\n });\n blank();\n reqOpts.data = \"encodedParams,\";\n addPostProcessor((code) => code.replace(/'encodedParams,'/, \"encodedParams,\"));\n }\n break;\n case \"application/json\":\n blank();\n if (postData.jsonObj) {\n reqOpts.data = postData.jsonObj;\n }\n break;\n default:\n blank();\n if (postData.text) {\n reqOpts.data = postData.text;\n }\n }\n const stringifiedOptions = stringifyObject9(reqOpts, { indent: \" \", inlineCharacterLimit: 80 });\n push(`const options = ${stringifiedOptions};`);\n blank();\n push(\"axios\");\n push(\".request(options)\", 1);\n push(\".then(function (response) {\", 1);\n push(\"console.log(response.data);\", 2);\n push(\"})\", 1);\n push(\".catch(function (error) {\", 1);\n push(\"console.error(error);\", 2);\n push(\"});\", 1);\n return join();\n }\n};\nvar fetch2 = {\n info: {\n key: \"fetch\",\n title: \"Fetch\",\n link: \"https://github.com/bitinn/node-fetch\",\n description: \"Simplified HTTP node-fetch client\",\n extname: \".cjs\",\n installation: \"npm install node-fetch@2 --save\"\n },\n convert: ({ method, fullUrl, postData, headersObj, cookies }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n let includeFS = false;\n const { blank, push, join, unshift } = new CodeBuilder({ indent: opts.indent });\n push(\"const fetch = require('node-fetch');\");\n const url = fullUrl;\n const reqOpts = {\n method\n };\n if (Object.keys(headersObj).length) {\n reqOpts.headers = headersObj;\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n unshift(\"const { URLSearchParams } = require('url');\");\n push(\"const encodedParams = new URLSearchParams();\");\n blank();\n postData.params?.forEach((param) => {\n push(`encodedParams.set('${param.name}', '${param.value}');`);\n });\n reqOpts.body = \"encodedParams\";\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n reqOpts.body = postData.jsonObj;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n const contentTypeHeader = getHeaderName(headersObj, \"content-type\");\n if (contentTypeHeader) {\n delete headersObj[contentTypeHeader];\n }\n unshift(\"const FormData = require('form-data');\");\n push(\"const formData = new FormData();\");\n blank();\n postData.params.forEach((param) => {\n if (!param.fileName && !param.fileName && !param.contentType) {\n push(`formData.append('${param.name}', '${param.value}');`);\n return;\n }\n if (param.fileName) {\n includeFS = true;\n push(`formData.append('${param.name}', fs.createReadStream('${param.fileName}'));`);\n }\n });\n break;\n default:\n if (postData.text) {\n reqOpts.body = postData.text;\n }\n }\n if (cookies.length) {\n const cookiesString = cookies.map(({ name, value }) => `${encodeURIComponent(name)}=${encodeURIComponent(value)}`).join(\"; \");\n if (reqOpts.headers) {\n reqOpts.headers.cookie = cookiesString;\n } else {\n reqOpts.headers = {};\n reqOpts.headers.cookie = cookiesString;\n }\n }\n blank();\n push(`const url = '${url}';`);\n if (reqOpts.headers && !Object.keys(reqOpts.headers).length) {\n delete reqOpts.headers;\n }\n const stringifiedOptions = stringifyObject9(reqOpts, {\n indent: \" \",\n inlineCharacterLimit: 80,\n // The Fetch API body only accepts string parameters, but stringified JSON can be difficult to\n // read, so we keep the object as a literal and use this transform function to wrap the literal\n // in a `JSON.stringify` call.\n transform: (object, property, originalResult) => {\n if (property === \"body\" && postData.mimeType === \"application/json\") {\n return `JSON.stringify(${originalResult})`;\n }\n return originalResult;\n }\n });\n push(`const options = ${stringifiedOptions};`);\n blank();\n if (includeFS) {\n unshift(\"const fs = require('fs');\");\n }\n if (postData.params && postData.mimeType === \"multipart/form-data\") {\n push(\"options.body = formData;\");\n blank();\n }\n push(\"fetch(url, options)\");\n push(\".then(res => res.json())\", 1);\n push(\".then(json => console.log(json))\", 1);\n push(\".catch(err => console.error('error:' + err));\", 1);\n return join().replace(/'encodedParams'/, \"encodedParams\").replace(/\"fs\\.createReadStream\\(\\\\\"(.+)\\\\\"\\)\"/, 'fs.createReadStream(\"$1\")');\n }\n};\nvar native3 = {\n info: {\n key: \"native\",\n title: \"HTTP\",\n link: \"http://nodejs.org/api/http.html#http_http_request_options_callback\",\n description: \"Node.js native HTTP interface\",\n extname: \".cjs\"\n },\n convert: ({ uriObj, method, allHeaders, postData }, options = {}) => {\n const { indent = \" \" } = options;\n const { blank, join, push, unshift } = new CodeBuilder({ indent });\n const reqOpts = {\n method,\n hostname: uriObj.hostname,\n port: uriObj.port,\n path: uriObj.path,\n headers: allHeaders\n };\n push(`const http = require('${uriObj.protocol?.replace(\":\", \"\")}');`);\n blank();\n push(`const options = ${stringifyObject9(reqOpts, { indent })};`);\n blank();\n push(\"const req = http.request(options, function (res) {\");\n push(\"const chunks = [];\", 1);\n blank();\n push(\"res.on('data', function (chunk) {\", 1);\n push(\"chunks.push(chunk);\", 2);\n push(\"});\", 1);\n blank();\n push(\"res.on('end', function () {\", 1);\n push(\"const body = Buffer.concat(chunks);\", 2);\n push(\"console.log(body.toString());\", 2);\n push(\"});\", 1);\n push(\"});\");\n blank();\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.paramsObj) {\n unshift(\"const qs = require('querystring');\");\n push(\n `req.write(qs.stringify(${stringifyObject9(postData.paramsObj, {\n indent: \" \",\n inlineCharacterLimit: 80\n })}));`\n );\n }\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n push(\n `req.write(JSON.stringify(${stringifyObject9(postData.jsonObj, {\n indent: \" \",\n inlineCharacterLimit: 80\n })}));`\n );\n }\n break;\n default:\n if (postData.text) {\n push(`req.write(${stringifyObject9(postData.text, { indent })});`);\n }\n }\n push(\"req.end();\");\n return join();\n }\n};\nvar request = {\n info: {\n key: \"request\",\n title: \"Request\",\n link: \"https://github.com/request/request\",\n description: \"Simplified HTTP request client\",\n extname: \".cjs\",\n installation: \"npm install request --save\"\n },\n convert: ({ method, url, fullUrl, postData, headersObj, cookies }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n let includeFS = false;\n const { push, blank, join, unshift, addPostProcessor } = new CodeBuilder({ indent: opts.indent });\n push(\"const request = require('request');\");\n blank();\n const reqOpts = {\n method,\n url: fullUrl\n };\n if (Object.keys(headersObj).length) {\n reqOpts.headers = headersObj;\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n reqOpts.form = postData.paramsObj;\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n reqOpts.body = postData.jsonObj;\n reqOpts.json = true;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n reqOpts.formData = {};\n postData.params.forEach((param) => {\n if (!param.fileName && !param.fileName && !param.contentType) {\n reqOpts.formData[param.name] = param.value;\n return;\n }\n let attachment = {};\n if (param.fileName) {\n includeFS = true;\n attachment = {\n value: `fs.createReadStream(${param.fileName})`,\n options: {\n filename: param.fileName,\n contentType: param.contentType ? param.contentType : null\n }\n };\n } else if (param.value) {\n attachment.value = param.value;\n }\n reqOpts.formData[param.name] = attachment;\n });\n addPostProcessor((code) => code.replace(/'fs\\.createReadStream\\((.*)\\)'/, \"fs.createReadStream('$1')\"));\n break;\n default:\n if (postData.text) {\n reqOpts.body = postData.text;\n }\n }\n if (cookies.length) {\n reqOpts.jar = \"JAR\";\n push(\"const jar = request.jar();\");\n cookies.forEach(({ name, value }) => {\n push(`jar.setCookie(request.cookie('${encodeURIComponent(name)}=${encodeURIComponent(value)}'), '${url}');`);\n });\n blank();\n addPostProcessor((code) => code.replace(/'JAR'/, \"jar\"));\n }\n if (includeFS) {\n unshift(\"const fs = require('fs');\");\n }\n push(`const options = ${stringifyObject9(reqOpts, { indent: \" \", inlineCharacterLimit: 80 })};`);\n blank();\n push(\"request(options, function (error, response, body) {\");\n push(\"if (error) throw new Error(error);\", 1);\n blank();\n push(\"console.log(body);\", 1);\n push(\"});\");\n return join();\n }\n};\nvar unirest2 = {\n info: {\n key: \"unirest\",\n title: \"Unirest\",\n link: \"http://unirest.io/nodejs.html\",\n description: \"Lightweight HTTP Request Client Library\",\n extname: \".cjs\"\n },\n convert: ({ method, url, cookies, queryObj, postData, headersObj }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n let includeFS = false;\n const { addPostProcessor, blank, join, push, unshift } = new CodeBuilder({\n indent: opts.indent\n });\n push(\"const unirest = require('unirest');\");\n blank();\n push(`const req = unirest('${method}', '${url}');`);\n blank();\n if (cookies.length) {\n push(\"const CookieJar = unirest.jar();\");\n cookies.forEach((cookie) => {\n push(`CookieJar.add('${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}', '${url}');`);\n });\n push(\"req.jar(CookieJar);\");\n blank();\n }\n if (Object.keys(queryObj).length) {\n push(`req.query(${stringifyObject9(queryObj, { indent: opts.indent })});`);\n blank();\n }\n if (Object.keys(headersObj).length) {\n push(`req.headers(${stringifyObject9(headersObj, { indent: opts.indent })});`);\n blank();\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.paramsObj) {\n push(`req.form(${stringifyObject9(postData.paramsObj, { indent: opts.indent })});`);\n blank();\n }\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n push(\"req.type('json');\");\n push(`req.send(${stringifyObject9(postData.jsonObj, { indent: opts.indent })});`);\n blank();\n }\n break;\n case \"multipart/form-data\": {\n if (!postData.params) {\n break;\n }\n const multipart = [];\n postData.params.forEach((param) => {\n const part = {};\n if (param.fileName && !param.value) {\n includeFS = true;\n part.body = `fs.createReadStream('${param.fileName}')`;\n addPostProcessor((code) => code.replace(/'fs\\.createReadStream\\(\\\\'(.+)\\\\'\\)'/, \"fs.createReadStream('$1')\"));\n } else if (param.value) {\n part.body = param.value;\n }\n if (part.body) {\n if (param.contentType) {\n part[\"content-type\"] = param.contentType;\n }\n multipart.push(part);\n }\n });\n push(`req.multipart(${stringifyObject9(multipart, { indent: opts.indent })});`);\n blank();\n break;\n }\n default:\n if (postData.text) {\n push(`req.send(${stringifyObject9(postData.text, { indent: opts.indent })});`);\n blank();\n }\n }\n if (includeFS) {\n unshift(\"const fs = require('fs');\");\n }\n push(\"req.end(function (res) {\");\n push(\"if (res.error) throw new Error(res.error);\", 1);\n blank();\n push(\"console.log(res.body);\", 1);\n push(\"});\");\n return join();\n }\n};\n\n// src/targets/node/target.ts\nvar node = {\n info: {\n key: \"node\",\n title: \"Node.js\",\n default: \"native\",\n cli: \"node %s\"\n },\n clientsById: {\n native: native3,\n request,\n unirest: unirest2,\n axios: axios2,\n fetch: fetch2\n }\n};\n\n// src/targets/objc/helpers.ts\nvar nsDeclaration = (nsClass, name, parameters, indent) => {\n const opening = `${nsClass} *${name} = `;\n const literal = literalRepresentation(parameters, indent ? opening.length : void 0);\n return `${opening}${literal};`;\n};\nvar literalRepresentation = (value, indentation) => {\n const join = indentation === void 0 ? \", \" : `,\n ${\" \".repeat(indentation)}`;\n switch (Object.prototype.toString.call(value)) {\n case \"[object Number]\":\n return `@${value}`;\n case \"[object Array]\": {\n const valuesRepresentation = value.map((val) => literalRepresentation(val));\n return `@[ ${valuesRepresentation.join(join)} ]`;\n }\n case \"[object Object]\": {\n const keyValuePairs = [];\n Object.keys(value).forEach((key) => {\n keyValuePairs.push(`@\"${key}\": ${literalRepresentation(value[key])}`);\n });\n return `@{ ${keyValuePairs.join(join)} }`;\n }\n case \"[object Boolean]\":\n return value ? \"@YES\" : \"@NO\";\n default:\n if (value === null || value === void 0) {\n return \"\";\n }\n return `@\"${value.toString().replace(/\"/g, '\\\\\"')}\"`;\n }\n};\n\n// src/targets/objc/nsurlsession/client.ts\nvar nsurlsession = {\n info: {\n key: \"nsurlsession\",\n title: \"NSURLSession\",\n link: \"https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSURLSession_class/index.html\",\n description: \"Foundation's NSURLSession request\",\n extname: \".m\"\n },\n convert: ({ allHeaders, postData, method, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n pretty: true,\n timeout: 10,\n ...options\n };\n const { push, join, blank } = new CodeBuilder({ indent: opts.indent });\n const req = {\n hasHeaders: false,\n hasBody: false\n };\n push(\"#import <Foundation/Foundation.h>\");\n if (Object.keys(allHeaders).length) {\n req.hasHeaders = true;\n blank();\n push(nsDeclaration(\"NSDictionary\", \"headers\", allHeaders, opts.pretty));\n }\n if (postData.text || postData.jsonObj || postData.params) {\n req.hasBody = true;\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.params?.length) {\n blank();\n const [head, ...tail] = postData.params;\n push(\n `NSMutableData *postData = [[NSMutableData alloc] initWithData:[@\"${head.name}=${head.value}\" dataUsingEncoding:NSUTF8StringEncoding]];`\n );\n tail.forEach(({ name, value }) => {\n push(`[postData appendData:[@\"&${name}=${value}\" dataUsingEncoding:NSUTF8StringEncoding]];`);\n });\n } else {\n req.hasBody = false;\n }\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n push(nsDeclaration(\"NSDictionary\", \"parameters\", postData.jsonObj, opts.pretty));\n blank();\n push(\"NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];\");\n }\n break;\n case \"multipart/form-data\":\n push(nsDeclaration(\"NSArray\", \"parameters\", postData.params || [], opts.pretty));\n push(`NSString *boundary = @\"${postData.boundary}\";`);\n blank();\n push(\"NSError *error;\");\n push(\"NSMutableString *body = [NSMutableString string];\");\n push(\"for (NSDictionary *param in parameters) {\");\n push('[body appendFormat:@\"--%@\\\\r\\\\n\", boundary];', 1);\n push('if (param[@\"fileName\"]) {', 1);\n push(\n '[body appendFormat:@\"Content-Disposition:form-data; name=\\\\\"%@\\\\\"; filename=\\\\\"%@\\\\\"\\\\r\\\\n\", param[@\"name\"], param[@\"fileName\"]];',\n 2\n );\n push('[body appendFormat:@\"Content-Type: %@\\\\r\\\\n\\\\r\\\\n\", param[@\"contentType\"]];', 2);\n push(\n '[body appendFormat:@\"%@\", [NSString stringWithContentsOfFile:param[@\"fileName\"] encoding:NSUTF8StringEncoding error:&error]];',\n 2\n );\n push(\"if (error) {\", 2);\n push('NSLog(@\"%@\", error);', 3);\n push(\"}\", 2);\n push(\"} else {\", 1);\n push('[body appendFormat:@\"Content-Disposition:form-data; name=\\\\\"%@\\\\\"\\\\r\\\\n\\\\r\\\\n\", param[@\"name\"]];', 2);\n push('[body appendFormat:@\"%@\", param[@\"value\"]];', 2);\n push(\"}\", 1);\n push(\"}\");\n push('[body appendFormat:@\"\\\\r\\\\n--%@--\\\\r\\\\n\", boundary];');\n push(\"NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];\");\n break;\n default:\n blank();\n push(\n `NSData *postData = [[NSData alloc] initWithData:[@\"${postData.text}\" dataUsingEncoding:NSUTF8StringEncoding]];`\n );\n }\n }\n blank();\n push(`NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@\"${fullUrl}\"]`);\n push(\" cachePolicy:NSURLRequestUseProtocolCachePolicy\");\n push(` timeoutInterval:${opts.timeout.toFixed(1)}];`);\n push(`[request setHTTPMethod:@\"${method}\"];`);\n if (req.hasHeaders) {\n push(\"[request setAllHTTPHeaderFields:headers];\");\n }\n if (req.hasBody) {\n push(\"[request setHTTPBody:postData];\");\n }\n blank();\n push(\"NSURLSession *session = [NSURLSession sharedSession];\");\n push(\"NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request\");\n push(\n \" completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {\"\n );\n push(\" if (error) {\", 1);\n push(' NSLog(@\"%@\", error);', 2);\n push(\" } else {\", 1);\n push(\n \" NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;\",\n 2\n );\n push(' NSLog(@\"%@\", httpResponse);', 2);\n push(\" }\", 1);\n push(\" }];\");\n push(\"[dataTask resume];\");\n return join();\n }\n};\n\n// src/targets/objc/target.ts\nvar objc = {\n info: {\n key: \"objc\",\n title: \"Objective-C\",\n default: \"nsurlsession\"\n },\n clientsById: {\n nsurlsession\n }\n};\n\n// src/targets/ocaml/cohttp/client.ts\nvar cohttp = {\n info: {\n key: \"cohttp\",\n title: \"CoHTTP\",\n link: \"https://github.com/mirage/ocaml-cohttp\",\n description: \"Cohttp is a very lightweight HTTP server using Lwt or Async for OCaml\",\n extname: \".ml\",\n installation: \"opam install cohttp-lwt-unix cohttp-async\"\n },\n convert: ({ fullUrl, allHeaders, postData, method }, options) => {\n const opts = {\n indent: \" \",\n ...options\n };\n const methods = [\"get\", \"post\", \"head\", \"delete\", \"patch\", \"put\", \"options\"];\n const { push, blank, join } = new CodeBuilder({ indent: opts.indent });\n push(\"open Cohttp_lwt_unix\");\n push(\"open Cohttp\");\n push(\"open Lwt\");\n blank();\n push(`let uri = Uri.of_string \"${fullUrl}\" in`);\n const headers = Object.keys(allHeaders);\n if (headers.length === 1) {\n push(\n `let headers = Header.add (Header.init ()) \"${headers[0]}\" \"${escapeForDoubleQuotes(\n allHeaders[headers[0]]\n )}\" in`\n );\n } else if (headers.length > 1) {\n push(\"let headers = Header.add_list (Header.init ()) [\");\n headers.forEach((key) => {\n push(`(\"${key}\", \"${escapeForDoubleQuotes(allHeaders[key])}\");`, 1);\n });\n push(\"] in\");\n }\n if (postData.text) {\n push(`let body = Cohttp_lwt_body.of_string ${JSON.stringify(postData.text)} in`);\n }\n blank();\n const h = headers.length ? \"~headers \" : \"\";\n const b = postData.text ? \"~body \" : \"\";\n const m = methods.includes(method.toLowerCase()) ? `\\`${method.toUpperCase()}` : `(Code.method_of_string \"${method}\")`;\n push(`Client.call ${h}${b}${m} uri`);\n push(\">>= fun (res, body_stream) ->\");\n push(\"(* Do stuff with the result *)\", 1);\n return join();\n }\n};\n\n// src/targets/ocaml/target.ts\nvar ocaml = {\n info: {\n key: \"ocaml\",\n title: \"OCaml\",\n default: \"cohttp\"\n },\n clientsById: {\n cohttp\n }\n};\n\n// src/targets/php/helpers.ts\nvar convertType = (obj, indent, lastIndent) => {\n lastIndent = lastIndent || \"\";\n indent = indent || \"\";\n switch (Object.prototype.toString.call(obj)) {\n case \"[object Boolean]\":\n return obj;\n case \"[object Null]\":\n return \"null\";\n case \"[object Undefined]\":\n return \"null\";\n case \"[object String]\":\n return `'${escapeString(obj, { delimiter: \"'\", escapeNewlines: false })}'`;\n case \"[object Number]\":\n return obj.toString();\n case \"[object Array]\": {\n const contents = obj.map((item) => convertType(item, `${indent}${indent}`, indent)).join(`,\n${indent}`);\n return `[\n${indent}${contents}\n${lastIndent}]`;\n }\n case \"[object Object]\": {\n const result = [];\n for (const i in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, i)) {\n result.push(`${convertType(i, indent)} => ${convertType(obj[i], `${indent}${indent}`, indent)}`);\n }\n }\n return `[\n${indent}${result.join(`,\n${indent}`)}\n${lastIndent}]`;\n }\n default:\n return \"null\";\n }\n};\nvar supportedMethods = [\n \"ACL\",\n \"BASELINE_CONTROL\",\n \"CHECKIN\",\n \"CHECKOUT\",\n \"CONNECT\",\n \"COPY\",\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"LABEL\",\n \"LOCK\",\n \"MERGE\",\n \"MKACTIVITY\",\n \"MKCOL\",\n \"MKWORKSPACE\",\n \"MOVE\",\n \"OPTIONS\",\n \"POST\",\n \"PROPFIND\",\n \"PROPPATCH\",\n \"PUT\",\n \"REPORT\",\n \"TRACE\",\n \"UNCHECKOUT\",\n \"UNLOCK\",\n \"UPDATE\",\n \"VERSION_CONTROL\"\n];\n\n// src/targets/php/curl/client.ts\nvar curl = {\n info: {\n key: \"curl\",\n title: \"cURL\",\n link: \"http://php.net/manual/en/book.curl.php\",\n description: \"PHP with ext-curl\",\n extname: \".php\"\n },\n convert: ({ uriObj, postData, fullUrl, method, httpVersion, cookies, headersObj }, options = {}) => {\n const {\n closingTag = false,\n indent = \" \",\n maxRedirects = 10,\n namedErrors = false,\n noTags = false,\n shortTags = false,\n timeout = 30\n } = options;\n const { push, blank, join } = new CodeBuilder({ indent });\n if (!noTags) {\n push(shortTags ? \"<?\" : \"<?php\");\n blank();\n }\n push(\"$curl = curl_init();\");\n blank();\n const curlOptions = [\n {\n escape: true,\n name: \"CURLOPT_PORT\",\n value: uriObj.port\n },\n {\n escape: true,\n name: \"CURLOPT_URL\",\n value: fullUrl\n },\n {\n escape: false,\n name: \"CURLOPT_RETURNTRANSFER\",\n value: \"true\"\n },\n {\n escape: true,\n name: \"CURLOPT_ENCODING\",\n value: \"\"\n },\n {\n escape: false,\n name: \"CURLOPT_MAXREDIRS\",\n value: maxRedirects\n },\n {\n escape: false,\n name: \"CURLOPT_TIMEOUT\",\n value: timeout\n },\n {\n escape: false,\n name: \"CURLOPT_HTTP_VERSION\",\n value: httpVersion === \"HTTP/1.0\" ? \"CURL_HTTP_VERSION_1_0\" : \"CURL_HTTP_VERSION_1_1\"\n },\n {\n escape: true,\n name: \"CURLOPT_CUSTOMREQUEST\",\n value: method\n },\n {\n escape: !postData.jsonObj,\n name: \"CURLOPT_POSTFIELDS\",\n value: postData ? postData.jsonObj ? `json_encode(${convertType(postData.jsonObj, indent.repeat(2), indent)})` : postData.text : void 0\n }\n ];\n push(\"curl_setopt_array($curl, [\");\n const curlopts = new CodeBuilder({ indent, join: `\n${indent}` });\n curlOptions.forEach(({ value, name, escape: escape2 }) => {\n if (value !== null && value !== void 0) {\n curlopts.push(`${name} => ${escape2 ? JSON.stringify(value) : value},`);\n }\n });\n const curlCookies = cookies.map((cookie) => `${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}`);\n if (curlCookies.length) {\n curlopts.push(`CURLOPT_COOKIE => \"${curlCookies.join(\"; \")}\",`);\n }\n const headers = Object.keys(headersObj).sort().map((key) => `\"${key}: ${escapeForDoubleQuotes(headersObj[key])}\"`);\n if (headers.length) {\n curlopts.push(\"CURLOPT_HTTPHEADER => [\");\n curlopts.push(headers.join(`,\n${indent}${indent}`), 1);\n curlopts.push(\"],\");\n }\n push(curlopts.join(), 1);\n push(\"]);\");\n blank();\n push(\"$response = curl_exec($curl);\");\n push(\"$err = curl_error($curl);\");\n blank();\n push(\"curl_close($curl);\");\n blank();\n push(\"if ($err) {\");\n if (namedErrors) {\n push('echo array_flip(get_defined_constants(true)[\"curl\"])[$err];', 1);\n } else {\n push('echo \"cURL Error #:\" . $err;', 1);\n }\n push(\"} else {\");\n push(\"echo $response;\", 1);\n push(\"}\");\n if (!noTags && closingTag) {\n blank();\n push(\"?>\");\n }\n return join();\n }\n};\n\n// src/targets/php/guzzle/client.ts\nvar guzzle = {\n info: {\n key: \"guzzle\",\n title: \"Guzzle\",\n link: \"http://docs.guzzlephp.org/en/stable/\",\n description: \"PHP with Guzzle\",\n extname: \".php\",\n installation: \"composer require guzzlehttp/guzzle\"\n },\n convert: ({ postData, fullUrl, method, cookies, headersObj }, options) => {\n const opts = {\n closingTag: false,\n indent: \" \",\n noTags: false,\n shortTags: false,\n ...options\n };\n const { push, blank, join } = new CodeBuilder({ indent: opts.indent });\n const { code: requestCode, push: requestPush, join: requestJoin } = new CodeBuilder({ indent: opts.indent });\n if (!opts.noTags) {\n push(opts.shortTags ? \"<?\" : \"<?php\");\n }\n push(\"require_once('vendor/autoload.php');\");\n blank();\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n requestPush(`'form_params' => ${convertType(postData.paramsObj, opts.indent + opts.indent, opts.indent)},`, 1);\n break;\n case \"multipart/form-data\": {\n const fields = [];\n if (postData.params) {\n postData.params.forEach((param) => {\n if (param.fileName) {\n const field = {\n name: param.name,\n filename: param.fileName,\n contents: param.value\n };\n if (param.contentType) {\n field.headers = { \"Content-Type\": param.contentType };\n }\n fields.push(field);\n } else if (param.value) {\n fields.push({\n name: param.name,\n contents: param.value\n });\n }\n });\n }\n if (fields.length) {\n requestPush(`'multipart' => ${convertType(fields, opts.indent + opts.indent, opts.indent)}`, 1);\n if (hasHeader(headersObj, \"content-type\")) {\n if (getHeader(headersObj, \"content-type\")?.indexOf(\"boundary\")) {\n const headerName = getHeaderName(headersObj, \"content-type\");\n if (headerName) {\n delete headersObj[headerName];\n }\n }\n }\n }\n break;\n }\n default:\n if (postData.text) {\n requestPush(`'body' => ${convertType(postData.text)},`, 1);\n }\n }\n const headers = Object.keys(headersObj).sort().map(function(key) {\n return `${opts.indent}${opts.indent}'${key}' => '${escapeForSingleQuotes(headersObj[key])}',`;\n });\n const cookieString = cookies.map((cookie) => `${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}`).join(\"; \");\n if (cookieString.length) {\n headers.push(`${opts.indent}${opts.indent}'cookie' => '${escapeForSingleQuotes(cookieString)}',`);\n }\n if (headers.length) {\n requestPush(\"'headers' => [\", 1);\n requestPush(headers.join(\"\\n\"));\n requestPush(\"],\", 1);\n }\n push(\"$client = new \\\\GuzzleHttp\\\\Client();\");\n blank();\n if (requestCode.length) {\n push(`$response = $client->request('${method}', '${fullUrl}', [`);\n push(requestJoin());\n push(\"]);\");\n } else {\n push(`$response = $client->request('${method}', '${fullUrl}');`);\n }\n blank();\n push(\"echo $response->getBody();\");\n if (!opts.noTags && opts.closingTag) {\n blank();\n push(\"?>\");\n }\n return join();\n }\n};\n\n// src/targets/php/http1/client.ts\nvar http1 = {\n info: {\n key: \"http1\",\n title: \"HTTP v1\",\n link: \"http://php.net/manual/en/book.http.php\",\n description: \"PHP with pecl/http v1\",\n extname: \".php\"\n },\n convert: ({ method, url, postData, queryObj, headersObj, cookiesObj }, options = {}) => {\n const { closingTag = false, indent = \" \", noTags = false, shortTags = false } = options;\n const { push, blank, join } = new CodeBuilder({ indent });\n if (!noTags) {\n push(shortTags ? \"<?\" : \"<?php\");\n blank();\n }\n if (!supportedMethods.includes(method.toUpperCase())) {\n push(`HttpRequest::methodRegister('${method}');`);\n }\n push(\"$request = new HttpRequest();\");\n push(`$request->setUrl(${convertType(url)});`);\n if (supportedMethods.includes(method.toUpperCase())) {\n push(`$request->setMethod(HTTP_METH_${method.toUpperCase()});`);\n } else {\n push(`$request->setMethod(HttpRequest::HTTP_METH_${method.toUpperCase()});`);\n }\n blank();\n if (Object.keys(queryObj).length) {\n push(`$request->setQueryData(${convertType(queryObj, indent)});`);\n blank();\n }\n if (Object.keys(headersObj).length) {\n push(`$request->setHeaders(${convertType(headersObj, indent)});`);\n blank();\n }\n if (Object.keys(cookiesObj).length) {\n push(`$request->setCookies(${convertType(cookiesObj, indent)});`);\n blank();\n }\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n push(`$request->setContentType(${convertType(postData.mimeType)});`);\n push(`$request->setPostFields(${convertType(postData.paramsObj, indent)});`);\n blank();\n break;\n case \"application/json\":\n push(`$request->setContentType(${convertType(postData.mimeType)});`);\n push(`$request->setBody(json_encode(${convertType(postData.jsonObj, indent)}));`);\n blank();\n break;\n default:\n if (postData.text) {\n push(`$request->setBody(${convertType(postData.text)});`);\n blank();\n }\n }\n push(\"try {\");\n push(\"$response = $request->send();\", 1);\n blank();\n push(\"echo $response->getBody();\", 1);\n push(\"} catch (HttpException $ex) {\");\n push(\"echo $ex;\", 1);\n push(\"}\");\n if (!noTags && closingTag) {\n blank();\n push(\"?>\");\n }\n return join();\n }\n};\n\n// src/targets/php/http2/client.ts\nvar http2 = {\n info: {\n key: \"http2\",\n title: \"HTTP v2\",\n link: \"http://devel-m6w6.rhcloud.com/mdref/http\",\n description: \"PHP with pecl/http v2\",\n extname: \".php\"\n },\n convert: ({ postData, headersObj, method, queryObj, cookiesObj, url }, options = {}) => {\n const { closingTag = false, indent = \" \", noTags = false, shortTags = false } = options;\n const { push, blank, join } = new CodeBuilder({ indent });\n let hasBody = false;\n if (!noTags) {\n push(shortTags ? \"<?\" : \"<?php\");\n blank();\n }\n push(\"$client = new http\\\\Client;\");\n push(\"$request = new http\\\\Client\\\\Request;\");\n blank();\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n push(\"$body = new http\\\\Message\\\\Body;\");\n push(`$body->append(new http\\\\QueryString(${convertType(postData.paramsObj, indent)}));`);\n blank();\n hasBody = true;\n break;\n case \"multipart/form-data\": {\n if (!postData.params) {\n break;\n }\n const files = [];\n const fields = {};\n postData.params.forEach(({ name, fileName, value, contentType }) => {\n if (fileName) {\n files.push({\n name,\n type: contentType,\n file: fileName,\n data: value\n });\n return;\n }\n if (value) {\n fields[name] = value;\n }\n });\n const field = Object.keys(fields).length ? convertType(fields, indent) : \"null\";\n const formValue = files.length ? convertType(files, indent) : \"null\";\n push(\"$body = new http\\\\Message\\\\Body;\");\n push(`$body->addForm(${field}, ${formValue});`);\n if (hasHeader(headersObj, \"content-type\")) {\n if (getHeader(headersObj, \"content-type\")?.indexOf(\"boundary\")) {\n const headerName = getHeaderName(headersObj, \"content-type\");\n if (headerName) {\n delete headersObj[headerName];\n }\n }\n }\n blank();\n hasBody = true;\n break;\n }\n case \"application/json\":\n push(\"$body = new http\\\\Message\\\\Body;\");\n push(`$body->append(json_encode(${convertType(postData.jsonObj, indent)}));`);\n hasBody = true;\n break;\n default:\n if (postData.text) {\n push(\"$body = new http\\\\Message\\\\Body;\");\n push(`$body->append(${convertType(postData.text)});`);\n blank();\n hasBody = true;\n }\n }\n push(`$request->setRequestUrl(${convertType(url)});`);\n push(`$request->setRequestMethod(${convertType(method)});`);\n if (hasBody) {\n push(\"$request->setBody($body);\");\n blank();\n }\n if (Object.keys(queryObj).length) {\n push(`$request->setQuery(new http\\\\QueryString(${convertType(queryObj, indent)}));`);\n blank();\n }\n if (Object.keys(headersObj).length) {\n push(`$request->setHeaders(${convertType(headersObj, indent)});`);\n blank();\n }\n if (Object.keys(cookiesObj).length) {\n blank();\n push(`$client->setCookies(${convertType(cookiesObj, indent)});`);\n blank();\n }\n push(\"$client->enqueue($request)->send();\");\n push(\"$response = $client->getResponse();\");\n blank();\n push(\"echo $response->getBody();\");\n if (!noTags && closingTag) {\n blank();\n push(\"?>\");\n }\n return join();\n }\n};\n\n// src/targets/php/target.ts\nvar php = {\n info: {\n key: \"php\",\n title: \"PHP\",\n default: \"curl\",\n cli: \"php %s\"\n },\n clientsById: {\n curl,\n guzzle,\n http1,\n http2\n }\n};\n\n// src/targets/powershell/common.ts\nvar generatePowershellConvert = (command) => {\n const convert = ({ method, headersObj, cookies, uriObj, fullUrl, postData, allHeaders }) => {\n const { push, join } = new CodeBuilder();\n const methods = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"];\n if (!methods.includes(method.toUpperCase())) {\n return \"Method not supported\";\n }\n const commandOptions = [];\n const headers = Object.keys(headersObj);\n if (headers.length) {\n push(\"$headers=@{}\");\n headers.forEach((key) => {\n if (key !== \"connection\") {\n push(`$headers.Add(\"${key}\", \"${escapeString(headersObj[key], { escapeChar: \"`\" })}\")`);\n }\n });\n commandOptions.push(\"-Headers $headers\");\n }\n if (cookies.length) {\n push(\"$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession\");\n cookies.forEach((cookie) => {\n push(\"$cookie = New-Object System.Net.Cookie\");\n push(`$cookie.Name = '${cookie.name}'`);\n push(`$cookie.Value = '${cookie.value}'`);\n push(`$cookie.Domain = '${uriObj.host}'`);\n push(\"$session.Cookies.Add($cookie)\");\n });\n commandOptions.push(\"-WebSession $session\");\n }\n if (postData.text) {\n commandOptions.push(\n `-ContentType '${escapeString(getHeader(allHeaders, \"content-type\"), { delimiter: \"'\", escapeChar: \"`\" })}'`\n );\n commandOptions.push(`-Body '${postData.text}'`);\n }\n push(`$response = ${command} -Uri '${fullUrl}' -Method ${method} ${commandOptions.join(\" \")}`.trim());\n return join();\n };\n return convert;\n};\n\n// src/targets/powershell/restmethod/client.ts\nvar restmethod = {\n info: {\n key: \"restmethod\",\n title: \"Invoke-RestMethod\",\n link: \"https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Invoke-RestMethod\",\n description: \"Powershell Invoke-RestMethod client\",\n extname: \".ps1\"\n },\n convert: generatePowershellConvert(\"Invoke-RestMethod\")\n};\n\n// src/targets/powershell/webrequest/client.ts\nvar webrequest = {\n info: {\n key: \"webrequest\",\n title: \"Invoke-WebRequest\",\n link: \"https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest\",\n description: \"Powershell Invoke-WebRequest client\",\n extname: \".ps1\"\n },\n convert: generatePowershellConvert(\"Invoke-WebRequest\")\n};\n\n// src/targets/powershell/target.ts\nvar powershell = {\n info: {\n key: \"powershell\",\n title: \"Powershell\",\n default: \"webrequest\"\n },\n clientsById: {\n webrequest,\n restmethod\n }\n};\n\n// src/targets/python/helpers.ts\nfunction concatValues(concatType, values, pretty, indentation, indentLevel) {\n const currentIndent = indentation.repeat(indentLevel);\n const closingBraceIndent = indentation.repeat(indentLevel - 1);\n const join = pretty ? `,\n${currentIndent}` : \", \";\n const openingBrace = concatType === \"object\" ? \"{\" : \"[\";\n const closingBrace = concatType === \"object\" ? \"}\" : \"]\";\n if (pretty) {\n return `${openingBrace}\n${currentIndent}${values.join(join)}\n${closingBraceIndent}${closingBrace}`;\n }\n if (concatType === \"object\" && values.length > 0) {\n return `${openingBrace} ${values.join(join)} ${closingBrace}`;\n }\n return `${openingBrace}${values.join(join)}${closingBrace}`;\n}\nvar literalRepresentation2 = (value, opts, indentLevel) => {\n indentLevel = indentLevel === void 0 ? 1 : indentLevel + 1;\n switch (Object.prototype.toString.call(value)) {\n case \"[object Number]\":\n return value;\n case \"[object Array]\": {\n let pretty = false;\n const valuesRepresentation = value.map((v) => {\n if (Object.prototype.toString.call(v) === \"[object Object]\") {\n pretty = Object.keys(v).length > 1;\n }\n return literalRepresentation2(v, opts, indentLevel);\n });\n return concatValues(\"array\", valuesRepresentation, pretty, opts.indent, indentLevel);\n }\n case \"[object Object]\": {\n const keyValuePairs = [];\n for (const key in value) {\n keyValuePairs.push(`\"${key}\": ${literalRepresentation2(value[key], opts, indentLevel)}`);\n }\n return concatValues(\"object\", keyValuePairs, opts.pretty && keyValuePairs.length > 1, opts.indent, indentLevel);\n }\n case \"[object Null]\":\n return \"None\";\n case \"[object Boolean]\":\n return value ? \"True\" : \"False\";\n default:\n if (value === null || value === void 0) {\n return \"\";\n }\n return `\"${value.toString().replace(/\"/g, '\\\\\"')}\"`;\n }\n};\n\n// src/targets/python/requests/client.ts\nvar builtInMethods = [\"HEAD\", \"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"];\nvar requests = {\n info: {\n key: \"requests\",\n title: \"Requests\",\n link: \"http://docs.python-requests.org/en/latest/api/#requests.request\",\n description: \"Requests HTTP library\",\n extname: \".py\",\n installation: \"python -m pip install requests\"\n },\n convert: ({ fullUrl, postData, allHeaders, method }, options) => {\n const opts = {\n indent: \" \",\n pretty: true,\n ...options\n };\n const { push, blank, join, addPostProcessor } = new CodeBuilder({ indent: opts.indent });\n push(\"import requests\");\n blank();\n push(`url = \"${fullUrl}\"`);\n blank();\n const headers = allHeaders;\n let payload = {};\n const files = {};\n let hasFiles = false;\n let hasPayload = false;\n let jsonPayload = false;\n switch (postData.mimeType) {\n case \"application/json\":\n if (postData.jsonObj) {\n push(`payload = ${literalRepresentation2(postData.jsonObj, opts)}`);\n jsonPayload = true;\n hasPayload = true;\n }\n break;\n case \"multipart/form-data\":\n if (!postData.params) {\n break;\n }\n payload = {};\n postData.params.forEach((p) => {\n if (p.fileName) {\n if (p.contentType) {\n files[p.name] = `('${p.fileName}', open('${p.fileName}', 'rb'), '${p.contentType}')`;\n } else {\n files[p.name] = `('${p.fileName}', open('${p.fileName}', 'rb'))`;\n }\n hasFiles = true;\n } else {\n payload[p.name] = p.value;\n hasPayload = true;\n }\n });\n if (hasFiles) {\n push(`files = ${literalRepresentation2(files, opts)}`);\n if (hasPayload) {\n push(`payload = ${literalRepresentation2(payload, opts)}`);\n }\n const headerName = getHeaderName(headers, \"content-type\");\n if (headerName) {\n delete headers[headerName];\n }\n } else {\n const nonFilePayload = JSON.stringify(postData.text);\n if (nonFilePayload) {\n push(`payload = ${nonFilePayload}`);\n hasPayload = true;\n }\n }\n addPostProcessor(\n (code) => code.replace(/\"\\('(.+)', open\\('(.+)', 'rb'\\)\\)\"/g, '(\"$1\", open(\"$2\", \"rb\"))').replace(/\"\\('(.+)', open\\('(.+)', 'rb'\\), '(.+)'\\)\"/g, '(\"$1\", open(\"$2\", \"rb\"), \"$3\")')\n );\n break;\n default: {\n if (postData.mimeType === \"application/x-www-form-urlencoded\" && postData.paramsObj) {\n push(`payload = ${literalRepresentation2(postData.paramsObj, opts)}`);\n hasPayload = true;\n break;\n }\n const stringPayload = JSON.stringify(postData.text);\n if (stringPayload) {\n push(`payload = ${stringPayload}`);\n hasPayload = true;\n }\n }\n }\n const headerCount = Object.keys(headers).length;\n if (headerCount === 0 && (hasPayload || hasFiles)) {\n blank();\n } else if (headerCount === 1) {\n Object.keys(headers).forEach((header) => {\n push(`headers = {\"${header}\": \"${escapeForDoubleQuotes(headers[header])}\"}`);\n blank();\n });\n } else if (headerCount > 1) {\n let count = 1;\n push(\"headers = {\");\n Object.keys(headers).forEach((header) => {\n if (count !== headerCount) {\n push(`\"${header}\": \"${escapeForDoubleQuotes(headers[header])}\",`, 1);\n } else {\n push(`\"${header}\": \"${escapeForDoubleQuotes(headers[header])}\"`, 1);\n }\n count += 1;\n });\n push(\"}\");\n blank();\n }\n let request2 = builtInMethods.includes(method) ? `response = requests.${method.toLowerCase()}(url` : `response = requests.request(\"${method}\", url`;\n if (hasPayload) {\n if (jsonPayload) {\n request2 += \", json=payload\";\n } else {\n request2 += \", data=payload\";\n }\n }\n if (hasFiles) {\n request2 += \", files=files\";\n }\n if (headerCount > 0) {\n request2 += \", headers=headers\";\n }\n request2 += \")\";\n push(request2);\n blank();\n push(\"print(response.text)\");\n return join();\n }\n};\n\n// src/targets/python/target.ts\nvar python = {\n info: {\n key: \"python\",\n title: \"Python\",\n default: \"requests\",\n cli: \"python3 %s\"\n },\n clientsById: {\n requests\n }\n};\n\n// src/targets/r/httr/client.ts\nvar httr = {\n info: {\n key: \"httr\",\n title: \"httr\",\n link: \"https://cran.r-project.org/web/packages/httr/vignettes/quickstart.html\",\n description: \"httr: Tools for Working with URLs and HTTP\",\n extname: \".r\"\n },\n convert: ({ url, queryObj, queryString, postData, allHeaders, method }) => {\n const { push, blank, join } = new CodeBuilder();\n push(\"library(httr)\");\n blank();\n push(`url <- \"${url}\"`);\n blank();\n const qs = queryObj;\n delete queryObj.key;\n const queryCount = Object.keys(qs).length;\n if (queryString.length === 1) {\n push(`queryString <- list(${Object.keys(qs)} = \"${Object.values(qs).toString()}\")`);\n blank();\n } else if (queryString.length > 1) {\n push(\"queryString <- list(\");\n Object.keys(qs).forEach((query, i) => {\n if (i !== queryCount - 1) {\n push(` ${query} = \"${qs[query].toString()}\",`);\n } else {\n push(` ${query} = \"${qs[query].toString()}\"`);\n }\n });\n push(\")\");\n blank();\n }\n const payload = JSON.stringify(postData.text);\n if (payload) {\n push(`payload <- ${payload}`);\n blank();\n }\n if (postData.text || postData.jsonObj || postData.params) {\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n push('encode <- \"form\"');\n blank();\n break;\n case \"application/json\":\n push('encode <- \"json\"');\n blank();\n break;\n case \"multipart/form-data\":\n push('encode <- \"multipart\"');\n blank();\n break;\n default:\n push('encode <- \"raw\"');\n blank();\n break;\n }\n }\n const cookieHeader = getHeader(allHeaders, \"cookie\");\n const acceptHeader = getHeader(allHeaders, \"accept\");\n const setCookies = cookieHeader ? `set_cookies(\\`${String(cookieHeader).replace(/;/g, '\", `').replace(/` /g, \"`\").replace(/[=]/g, '` = \"')}\")` : void 0;\n const setAccept = acceptHeader ? `accept(\"${escapeForDoubleQuotes(acceptHeader)}\")` : void 0;\n const setContentType = `content_type(\"${escapeForDoubleQuotes(postData.mimeType)}\")`;\n const otherHeaders = Object.entries(allHeaders).filter(([key]) => ![\"cookie\", \"accept\", \"content-type\"].includes(key.toLowerCase())).map(([key, value]) => `'${key}' = '${escapeForSingleQuotes(value)}'`).join(\", \");\n const setHeaders = otherHeaders ? `add_headers(${otherHeaders})` : void 0;\n let request2 = `response <- VERB(\"${method}\", url`;\n if (payload) {\n request2 += \", body = payload\";\n }\n if (queryString.length) {\n request2 += \", query = queryString\";\n }\n const headerAdditions = [setHeaders, setContentType, setAccept, setCookies].filter((x) => !!x).join(\", \");\n if (headerAdditions) {\n request2 += `, ${headerAdditions}`;\n }\n if (postData.text || postData.jsonObj || postData.params) {\n request2 += \", encode = encode\";\n }\n request2 += \")\";\n push(request2);\n blank();\n push('content(response, \"text\")');\n return join();\n }\n};\n\n// src/targets/r/target.ts\nvar r = {\n info: {\n key: \"r\",\n title: \"R\",\n default: \"httr\"\n },\n clientsById: {\n httr\n }\n};\n\n// src/targets/ruby/native/client.ts\nvar native4 = {\n info: {\n key: \"native\",\n title: \"net::http\",\n link: \"http://ruby-doc.org/stdlib-2.2.1/libdoc/net/http/rdoc/Net/HTTP.html\",\n description: \"Ruby HTTP client\",\n extname: \".rb\"\n },\n convert: ({ uriObj, method: rawMethod, fullUrl, postData, allHeaders }) => {\n const { push, blank, join } = new CodeBuilder();\n push(\"require 'uri'\");\n push(\"require 'net/http'\");\n blank();\n const method = rawMethod.toUpperCase();\n const methods = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"DELETE\",\n \"PATCH\",\n \"PUT\",\n \"OPTIONS\",\n \"COPY\",\n \"LOCK\",\n \"UNLOCK\",\n \"MOVE\",\n \"TRACE\"\n ];\n const capMethod = method.charAt(0) + method.substring(1).toLowerCase();\n if (!methods.includes(method)) {\n push(`class Net::HTTP::${capMethod} < Net::HTTPRequest`);\n push(` METHOD = '${method.toUpperCase()}'`);\n push(` REQUEST_HAS_BODY = '${postData.text ? \"true\" : \"false\"}'`);\n push(\" RESPONSE_HAS_BODY = true\");\n push(\"end\");\n blank();\n }\n push(`url = URI(\"${fullUrl}\")`);\n blank();\n push(\"http = Net::HTTP.new(url.host, url.port)\");\n if (uriObj.protocol === \"https:\") {\n push(\"http.use_ssl = true\");\n }\n blank();\n push(`request = Net::HTTP::${capMethod}.new(url)`);\n const headers = Object.keys(allHeaders);\n if (headers.length) {\n headers.forEach((key) => {\n push(`request[\"${key}\"] = '${escapeForSingleQuotes(allHeaders[key])}'`);\n });\n }\n if (postData.text) {\n push(`request.body = ${JSON.stringify(postData.text)}`);\n }\n blank();\n push(\"response = http.request(request)\");\n push(\"puts response.read_body\");\n return join();\n }\n};\n\n// src/targets/ruby/target.ts\nvar ruby = {\n info: {\n key: \"ruby\",\n title: \"Ruby\",\n default: \"native\"\n },\n clientsById: {\n native: native4\n }\n};\n\n// src/helpers/shell.ts\nvar quote = (value = \"\") => {\n const safe = /^[a-z0-9-_/.@%^=:]+$/i;\n const isShellSafe = safe.test(value);\n if (isShellSafe) {\n return value;\n }\n return `'${value.replace(/'/g, \"'\\\\''\")}'`;\n};\nvar escape = (value) => value.replace(/\\r/g, \"\\\\r\").replace(/\\n/g, \"\\\\n\");\n\n// src/targets/shell/curl/client.ts\nvar params = {\n \"http1.0\": \"0\",\n \"url \": \"\",\n cookie: \"b\",\n data: \"d\",\n form: \"F\",\n globoff: \"g\",\n header: \"H\",\n insecure: \"k\",\n request: \"X\"\n};\nvar getArg = (short) => (longName) => {\n if (short) {\n const shortName = params[longName];\n if (!shortName) {\n return \"\";\n }\n return `-${shortName}`;\n }\n return `--${longName}`;\n};\nvar curl2 = {\n info: {\n key: \"curl\",\n title: \"cURL\",\n link: \"http://curl.haxx.se/\",\n description: \"cURL is a command line tool and library for transferring data with URL syntax\",\n extname: \".sh\"\n },\n convert: ({ fullUrl, method, httpVersion, headersObj, allHeaders, postData }, options = {}) => {\n const { indent = \" \", short = false, binary = false, globOff = false } = options;\n const indentJSON = \" \";\n const { push, join } = new CodeBuilder({\n ...typeof indent === \"string\" ? { indent } : {},\n join: indent !== false ? ` \\\\\n${indent}` : \" \"\n });\n const arg = getArg(short);\n let formattedUrl = quote(fullUrl);\n push(`curl ${arg(\"request\")} ${method}`);\n if (globOff) {\n formattedUrl = unescape(formattedUrl);\n push(arg(\"globoff\"));\n }\n push(`${arg(\"url \")}${formattedUrl}`);\n if (httpVersion === \"HTTP/1.0\") {\n push(arg(\"http1.0\"));\n }\n if (getHeader(allHeaders, \"accept-encoding\")) {\n push(\"--compressed\");\n }\n if (postData.mimeType === \"multipart/form-data\") {\n const contentTypeHeaderName = getHeaderName(headersObj, \"content-type\");\n if (contentTypeHeaderName) {\n const contentTypeHeader = headersObj[contentTypeHeaderName];\n if (contentTypeHeaderName && contentTypeHeader) {\n const noBoundary = String(contentTypeHeader).replace(/; boundary.+?(?=(;|$))/, \"\");\n headersObj[contentTypeHeaderName] = noBoundary;\n allHeaders[contentTypeHeaderName] = noBoundary;\n }\n }\n }\n Object.keys(headersObj).sort().forEach((key) => {\n const header = `${key}: ${headersObj[key]}`;\n push(`${arg(\"header\")} ${quote(header)}`);\n });\n if (allHeaders.cookie) {\n push(`${arg(\"cookie\")} ${quote(allHeaders.cookie)}`);\n }\n switch (postData.mimeType) {\n case \"multipart/form-data\":\n postData.params?.forEach((param) => {\n let post = \"\";\n if (param.fileName) {\n post = `${param.name}='@${param.fileName}'`;\n } else {\n post = quote(`${param.name}=${param.value}`);\n }\n push(`${arg(\"form\")} ${post}`);\n });\n break;\n case \"application/x-www-form-urlencoded\":\n if (postData.params) {\n postData.params.forEach((param) => {\n const unencoded = param.name;\n const encoded = encodeURIComponent(param.name);\n const needsEncoding = encoded !== unencoded;\n const name = needsEncoding ? encoded : unencoded;\n const flag = binary ? \"--data-binary\" : needsEncoding ? \"--data-urlencode\" : arg(\"data\");\n push(`${flag} ${quote(`${name}=${param.value}`)}`);\n });\n } else {\n push(`${binary ? \"--data-binary\" : arg(\"data\")} ${quote(postData.text)}`);\n }\n break;\n default:\n if (!postData.text) {\n break;\n }\n let builtPayload = false;\n if (isMimeTypeJSON(postData.mimeType)) {\n if (postData.text.length > 20) {\n try {\n const jsonPayload = JSON.parse(postData.text);\n builtPayload = true;\n if (postData.text.indexOf(\"'\") > 0) {\n push(\n `${binary ? \"--data-binary\" : arg(\"data\")} @- <<EOF\n${JSON.stringify(\n jsonPayload,\n null,\n indentJSON\n )}\nEOF`\n );\n } else {\n push(\n `${binary ? \"--data-binary\" : arg(\"data\")} '\n${JSON.stringify(jsonPayload, null, indentJSON)}\n'`\n );\n }\n } catch (err) {\n }\n }\n }\n if (!builtPayload) {\n push(`${binary ? \"--data-binary\" : arg(\"data\")} ${quote(postData.text)}`);\n }\n }\n return join();\n }\n};\n\n// src/targets/shell/httpie/client.ts\nvar httpie = {\n info: {\n key: \"httpie\",\n title: \"HTTPie\",\n link: \"http://httpie.org/\",\n description: \"a CLI, cURL-like tool for humans\",\n extname: \".sh\",\n installation: \"brew install httpie\"\n },\n convert: ({ allHeaders, postData, queryObj, fullUrl, method, url }, options) => {\n const opts = {\n body: false,\n cert: false,\n headers: false,\n indent: \" \",\n pretty: false,\n print: false,\n queryParams: false,\n short: false,\n style: false,\n timeout: false,\n verbose: false,\n verify: false,\n ...options\n };\n const { push, join, unshift } = new CodeBuilder({\n indent: opts.indent,\n // @ts-expect-error SEEMS LEGIT\n join: opts.indent !== false ? ` \\\\\n${opts.indent}` : \" \"\n });\n let raw = false;\n const flags = [];\n if (opts.headers) {\n flags.push(opts.short ? \"-h\" : \"--headers\");\n }\n if (opts.body) {\n flags.push(opts.short ? \"-b\" : \"--body\");\n }\n if (opts.verbose) {\n flags.push(opts.short ? \"-v\" : \"--verbose\");\n }\n if (opts.print) {\n flags.push(`${opts.short ? \"-p\" : \"--print\"}=${opts.print}`);\n }\n if (opts.verify) {\n flags.push(`--verify=${opts.verify}`);\n }\n if (opts.cert) {\n flags.push(`--cert=${opts.cert}`);\n }\n if (opts.pretty) {\n flags.push(`--pretty=${opts.pretty}`);\n }\n if (opts.style) {\n flags.push(`--style=${opts.style}`);\n }\n if (opts.timeout) {\n flags.push(`--timeout=${opts.timeout}`);\n }\n if (opts.queryParams) {\n Object.keys(queryObj).forEach((name) => {\n const value = queryObj[name];\n if (Array.isArray(value)) {\n value.forEach((val) => {\n push(`${name}==${quote(val)}`);\n });\n } else {\n push(`${name}==${quote(value)}`);\n }\n });\n }\n Object.keys(allHeaders).sort().forEach((key) => {\n push(`${key}:${quote(allHeaders[key])}`);\n });\n if (postData.mimeType === \"application/x-www-form-urlencoded\") {\n if (postData.params && postData.params.length) {\n flags.push(opts.short ? \"-f\" : \"--form\");\n postData.params.forEach((param) => {\n push(`${param.name}=${quote(param.value)}`);\n });\n }\n } else {\n raw = true;\n }\n const cliFlags = flags.length ? `${flags.join(\" \")} ` : \"\";\n url = quote(opts.queryParams ? url : fullUrl);\n unshift(`http ${cliFlags}${method} ${url}`);\n if (raw && postData.text) {\n const postDataText = quote(postData.text);\n unshift(`echo ${postDataText} | `);\n }\n return join();\n }\n};\n\n// src/targets/shell/wget/client.ts\nvar wget = {\n info: {\n key: \"wget\",\n title: \"Wget\",\n link: \"https://www.gnu.org/software/wget/\",\n description: \"a free software package for retrieving files using HTTP, HTTPS\",\n extname: \".sh\"\n },\n convert: ({ method, postData, allHeaders, fullUrl }, options) => {\n const opts = {\n indent: \" \",\n short: false,\n verbose: false,\n ...options\n };\n const { push, join } = new CodeBuilder({\n ...typeof opts.indent === \"string\" ? { indent: opts.indent } : {},\n join: opts.indent !== false ? ` \\\\\n${opts.indent}` : \" \"\n });\n if (opts.verbose) {\n push(`wget ${opts.short ? \"-v\" : \"--verbose\"}`);\n } else {\n push(`wget ${opts.short ? \"-q\" : \"--quiet\"}`);\n }\n push(`--method ${quote(method)}`);\n Object.keys(allHeaders).forEach((key) => {\n const header = `${key}: ${allHeaders[key]}`;\n push(`--header ${quote(header)}`);\n });\n if (postData.text) {\n push(`--body-data ${escape(quote(postData.text))}`);\n }\n push(opts.short ? \"-O\" : \"--output-document\");\n push(`- ${quote(fullUrl)}`);\n return join();\n }\n};\n\n// src/targets/shell/target.ts\nvar shell = {\n info: {\n key: \"shell\",\n title: \"Shell\",\n default: \"curl\",\n cli: \"%s\"\n },\n clientsById: {\n curl: curl2,\n httpie,\n wget\n }\n};\n\n// src/targets/swift/helpers.ts\nvar buildString = (length, str) => str.repeat(length);\nvar concatArray = (arr, pretty, indentation, indentLevel) => {\n const currentIndent = buildString(indentLevel, indentation);\n const closingBraceIndent = buildString(indentLevel - 1, indentation);\n const join = pretty ? `,\n${currentIndent}` : \", \";\n if (pretty) {\n return `[\n${currentIndent}${arr.join(join)}\n${closingBraceIndent}]`;\n }\n return `[${arr.join(join)}]`;\n};\nvar literalDeclaration = (name, parameters, opts) => `let ${name} = ${literalRepresentation3(parameters, opts)}`;\nvar literalRepresentation3 = (value, opts, indentLevel) => {\n indentLevel = indentLevel === void 0 ? 1 : indentLevel + 1;\n switch (Object.prototype.toString.call(value)) {\n case \"[object Number]\":\n return value;\n case \"[object Array]\": {\n let pretty = false;\n const valuesRepresentation = value.map((v) => {\n if (Object.prototype.toString.call(v) === \"[object Object]\") {\n pretty = Object.keys(v).length > 1;\n }\n return literalRepresentation3(v, opts, indentLevel);\n });\n return concatArray(valuesRepresentation, pretty, opts.indent, indentLevel);\n }\n case \"[object Object]\": {\n const keyValuePairs = [];\n for (const key in value) {\n keyValuePairs.push(`\"${key}\": ${literalRepresentation3(value[key], opts, indentLevel)}`);\n }\n return concatArray(\n keyValuePairs,\n // @ts-expect-error needs better types\n opts.pretty && keyValuePairs.length > 1,\n // @ts-expect-error needs better types\n opts.indent,\n indentLevel\n );\n }\n case \"[object Boolean]\":\n return value.toString();\n default:\n if (value === null || value === void 0) {\n return \"nil\";\n }\n return `\"${value.toString().replace(/\"/g, '\\\\\"')}\"`;\n }\n};\n\n// src/targets/swift/urlsession/client.ts\nvar urlsession = {\n info: {\n key: \"urlsession\",\n title: \"URLSession\",\n link: \"https://developer.apple.com/documentation/foundation/urlsession\",\n description: \"Foundation's URLSession request\",\n extname: \".swift\"\n },\n convert: ({ allHeaders, postData, uriObj, queryObj, method }, options) => {\n const opts = {\n indent: \" \",\n pretty: true,\n timeout: 10,\n ...options\n };\n const { push, blank, join } = new CodeBuilder({ indent: opts.indent });\n push(\"import Foundation\");\n blank();\n const hasBody = postData.text || postData.jsonObj || postData.params;\n if (hasBody) {\n switch (postData.mimeType) {\n case \"application/x-www-form-urlencoded\":\n if (postData.params?.length) {\n const parameters = postData.params.map((p) => `\"${p.name}\": \"${p.value}\"`);\n if (opts.pretty) {\n push(\"let parameters = [\");\n parameters.forEach((param) => push(`${param},`, 1));\n push(\"]\");\n } else {\n push(`let parameters = [${parameters.join(\", \")}]`);\n }\n push('let joinedParameters = parameters.map { \"\\\\($0.key)=\\\\($0.value)\" }.joined(separator: \"&\")');\n push(\"let postData = Data(joinedParameters.utf8)\");\n blank();\n }\n break;\n case \"application/json\":\n if (postData.jsonObj) {\n push(`${literalDeclaration(\"parameters\", postData.jsonObj, opts)} as [String : Any?]`);\n blank();\n push(\"let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])\");\n blank();\n }\n break;\n case \"multipart/form-data\":\n push(literalDeclaration(\"parameters\", postData.params, opts));\n blank();\n push(`let boundary = \"${postData.boundary}\"`);\n blank();\n push('var body = \"\"');\n push(\"for param in parameters {\");\n push('let paramName = param[\"name\"]!', 1);\n push('body += \"--\\\\(boundary)\\\\r\\\\n\"', 1);\n push('body += \"Content-Disposition:form-data; name=\\\\\"\\\\(paramName)\\\\\"\"', 1);\n push('if let filename = param[\"fileName\"] {', 1);\n push('let contentType = param[\"contentType\"]!', 2);\n push(\"let fileContent = try String(contentsOfFile: filename, encoding: .utf8)\", 2);\n push('body += \"; filename=\\\\\"\\\\(filename)\\\\\"\\\\r\\\\n\"', 2);\n push('body += \"Content-Type: \\\\(contentType)\\\\r\\\\n\\\\r\\\\n\"', 2);\n push(\"body += fileContent\", 2);\n push('} else if let paramValue = param[\"value\"] {', 1);\n push('body += \"\\\\r\\\\n\\\\r\\\\n\\\\(paramValue)\"', 2);\n push(\"}\", 1);\n push(\"}\");\n blank();\n push(\"let postData = Data(body.utf8)\");\n blank();\n break;\n default:\n push(`let postData = Data(\"${postData.text}\".utf8)`);\n blank();\n }\n }\n push(`let url = URL(string: \"${uriObj.href}\")!`);\n const queries = queryObj ? Object.entries(queryObj) : [];\n if (queries.length < 1) {\n push(\"var request = URLRequest(url: url)\");\n } else {\n push(\"var components = URLComponents(url: url, resolvingAgainstBaseURL: true)!\");\n push(\"let queryItems: [URLQueryItem] = [\");\n queries.forEach((query) => {\n const key = query[0];\n const value = query[1];\n switch (Object.prototype.toString.call(value)) {\n case \"[object String]\":\n push(`URLQueryItem(name: \"${key}\", value: \"${value}\"),`, 1);\n break;\n case \"[object Array]\":\n value.forEach((val) => {\n push(`URLQueryItem(name: \"${key}\", value: \"${val}\"),`, 1);\n });\n break;\n }\n });\n push(\"]\");\n push(\"components.queryItems = components.queryItems.map { $0 + queryItems } ?? queryItems\");\n blank();\n push(\"var request = URLRequest(url: components.url!)\");\n }\n push(`request.httpMethod = \"${method}\"`);\n push(`request.timeoutInterval = ${opts.timeout}`);\n if (Object.keys(allHeaders).length) {\n push(`request.allHTTPHeaderFields = ${literalRepresentation3(allHeaders, opts)}`);\n }\n if (hasBody) {\n push(\"request.httpBody = postData\");\n }\n blank();\n push(\"let (data, _) = try await URLSession.shared.data(for: request)\");\n push(\"print(String(decoding: data, as: UTF8.self))\");\n return join();\n }\n};\n\n// src/targets/swift/target.ts\nvar swift = {\n info: {\n key: \"swift\",\n title: \"Swift\",\n default: \"urlsession\"\n },\n clientsById: {\n urlsession\n }\n};\n\n// src/targets/index.ts\nvar targets = {\n c,\n clojure,\n csharp,\n go,\n http,\n java,\n javascript,\n json,\n kotlin,\n node,\n objc,\n ocaml,\n php,\n powershell,\n python,\n r,\n ruby,\n shell,\n swift\n};\nvar isTarget = (target) => {\n if (typeof target !== \"object\" || target === null || Array.isArray(target)) {\n const got = target === null ? \"null\" : Array.isArray(target) ? \"array\" : typeof target;\n throw new Error(`you tried to add a target which is not an object, got type: \"${got}\"`);\n }\n if (!Object.prototype.hasOwnProperty.call(target, \"info\")) {\n throw new Error(\"targets must contain an `info` object\");\n }\n if (!Object.prototype.hasOwnProperty.call(target.info, \"key\")) {\n throw new Error(\"targets must have an `info` object with the property `key`\");\n }\n if (!target.info.key) {\n throw new Error(\"target key must be a unique string\");\n }\n if (Object.prototype.hasOwnProperty.call(targets, target.info.key)) {\n throw new Error(`a target already exists with this key, \\`${target.info.key}\\``);\n }\n if (!Object.prototype.hasOwnProperty.call(target.info, \"title\")) {\n throw new Error(\"targets must have an `info` object with the property `title`\");\n }\n if (!target.info.title) {\n throw new Error(\"target title must be a non-zero-length string\");\n }\n if (!Object.prototype.hasOwnProperty.call(target, \"clientsById\") || !target.clientsById || Object.keys(target.clientsById).length === 0) {\n throw new Error(\n `No clients provided in target ${target.info.key}. You must provide the property \\`clientsById\\` containg your clients.`\n );\n }\n if (!Object.prototype.hasOwnProperty.call(target.info, \"default\")) {\n throw new Error(\"targets must have an `info` object with the property `default`\");\n }\n if (!Object.prototype.hasOwnProperty.call(target.clientsById, target.info.default)) {\n throw new Error(\n `target ${target.info.key} is configured with a default client ${target.info.default}, but no such client was found in the property \\`clientsById\\` (found ${JSON.stringify(\n Object.keys(target.clientsById)\n )})`\n );\n }\n Object.values(target.clientsById).forEach(isClient);\n return true;\n};\nvar addTarget = (target) => {\n if (!isTarget(target)) ;\n targets[target.info.key] = target;\n};\nvar isClient = (client) => {\n if (!client) {\n throw new Error(\"clients must be objects\");\n }\n if (!Object.prototype.hasOwnProperty.call(client, \"info\")) {\n throw new Error(\"targets client must contain an `info` object\");\n }\n if (!Object.prototype.hasOwnProperty.call(client.info, \"key\")) {\n throw new Error(\"targets client must have an `info` object with property `key`\");\n }\n if (!client.info.key) {\n throw new Error(\"client.info.key must contain an identifier unique to this target\");\n }\n if (!Object.prototype.hasOwnProperty.call(client.info, \"title\")) {\n throw new Error(\"targets client must have an `info` object with property `title`\");\n }\n if (!Object.prototype.hasOwnProperty.call(client.info, \"description\")) {\n throw new Error(\"targets client must have an `info` object with property `description`\");\n }\n if (!Object.prototype.hasOwnProperty.call(client.info, \"link\")) {\n throw new Error(\"targets client must have an `info` object with property `link`\");\n }\n if (!Object.prototype.hasOwnProperty.call(client.info, \"extname\")) {\n throw new Error(\"targets client must have an `info` object with the property `extname`\");\n }\n if (!Object.prototype.hasOwnProperty.call(client, \"convert\") || typeof client.convert !== \"function\") {\n throw new Error(\"targets client must have a `convert` property containing a conversion function\");\n }\n return true;\n};\nvar addClientPlugin = (plugin) => {\n addTargetClient(plugin.target, plugin.client);\n};\nvar addTargetClient = (targetId, client) => {\n if (!isClient(client)) ;\n if (!Object.prototype.hasOwnProperty.call(targets, targetId)) {\n throw new Error(`Sorry, but no ${targetId} target exists to add clients to`);\n }\n if (Object.prototype.hasOwnProperty.call(targets[targetId], client.info.key)) {\n throw new Error(\n `the target ${targetId} already has a client with the key ${client.info.key}, please use a different key`\n );\n }\n targets[targetId].clientsById[client.info.key] = client;\n};\n\nexport { addClientPlugin, addTarget, addTargetClient, getHeaderName, isClient, isTarget, targets };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=chunk-UEZF7UNC.js.map","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap<object, unknown>} */ var $wm;\n\t/** @type {Map<object, unknown>} */ var $m;\n\t/** @type {import('.').RootNode<unknown>} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","import { reducer } from './chunk-7LT4AZED.js';\nimport { targets, getHeaderName } from './chunk-UEZF7UNC.js';\nexport { addClientPlugin, addTarget, addTargetClient } from './chunk-UEZF7UNC.js';\nimport './chunk-UPA5TN5W.js';\nimport { parse, format } from 'url';\nimport { stringify } from 'qs';\n\n// src/helpers/utils.ts\nvar availableTargets = () => Object.keys(targets).map((targetId) => ({\n ...targets[targetId].info,\n clients: Object.keys(targets[targetId].clientsById).map(\n (clientId) => targets[targetId].clientsById[clientId].info\n )\n}));\nvar extname = (targetId, clientId) => {\n const target = targets[targetId];\n if (!target) {\n return \"\";\n }\n return target.clientsById[clientId]?.info.extname || \"\";\n};\n\n// src/index.ts\nvar isHarEntry = (value) => typeof value === \"object\" && \"log\" in value && typeof value.log === \"object\" && \"entries\" in value.log && Array.isArray(value.log.entries);\nvar HTTPSnippet = class {\n constructor(input, opts = {}) {\n this.initCalled = false;\n this.entries = [];\n this.requests = [];\n this.options = {};\n this.options = {\n harIsAlreadyEncoded: false,\n ...opts\n };\n this.requests = [];\n if (isHarEntry(input)) {\n this.entries = input.log.entries;\n } else {\n this.entries = [\n {\n request: input\n }\n ];\n }\n }\n init() {\n this.initCalled = true;\n this.requests = this.entries.map(({ request }) => {\n const req = {\n bodySize: 0,\n headersSize: 0,\n headers: [],\n cookies: [],\n httpVersion: \"HTTP/1.1\",\n queryString: [],\n postData: {\n mimeType: request.postData?.mimeType || \"application/octet-stream\"\n },\n ...request\n };\n if (req.postData && !req.postData.mimeType) {\n req.postData.mimeType = \"application/octet-stream\";\n }\n return this.prepare(req, this.options);\n });\n return this;\n }\n prepare(harRequest, options) {\n const request = {\n ...harRequest,\n fullUrl: \"\",\n uriObj: {},\n queryObj: {},\n headersObj: {},\n cookiesObj: {},\n allHeaders: {}\n };\n if (request.queryString && request.queryString.length) {\n request.queryObj = request.queryString.reduce(reducer, {});\n }\n if (request.headers && request.headers.length) {\n const http2VersionRegex = /^HTTP\\/2/;\n request.headersObj = request.headers.reduce((accumulator, { name, value }) => {\n const headerName = http2VersionRegex.exec(request.httpVersion) ? name.toLocaleLowerCase() : name;\n return {\n ...accumulator,\n [headerName]: value\n };\n }, {});\n }\n if (request.cookies && request.cookies.length) {\n request.cookiesObj = request.cookies.reduceRight(\n (accumulator, { name, value }) => ({\n ...accumulator,\n [name]: value\n }),\n {}\n );\n }\n const cookies = request.cookies?.map(({ name, value }) => {\n if (options.harIsAlreadyEncoded) {\n return `${name}=${value}`;\n }\n return `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n });\n if (cookies?.length) {\n request.allHeaders.cookie = cookies.join(\"; \");\n }\n switch (request.postData.mimeType) {\n case \"multipart/mixed\":\n case \"multipart/related\":\n case \"multipart/form-data\":\n case \"multipart/alternative\":\n request.postData.text = \"\";\n request.postData.mimeType = \"multipart/form-data\";\n if (request.postData?.params) {\n const boundary = \"---011000010111000001101001\";\n const carriage = `${boundary}--`;\n const rn = \"\\r\\n\";\n const escape = (str) => str.replace(/\\n/g, \"%0A\").replace(/\\r/g, \"%0D\").replace(/\"/g, \"%22\");\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, \"\\r\\n\");\n const payload = [`--${boundary}`];\n request.postData?.params.forEach((param, i) => {\n const name = param.name;\n const value = param.value || \"\";\n const filename = param.fileName || null;\n const contentType = param.contentType || \"application/octet-stream\";\n if (filename) {\n payload.push(\n `Content-Disposition: form-data; name=\"${escape(normalizeLinefeeds(name))}\"; filename=\"${filename}\"`\n );\n payload.push(`Content-Type: ${contentType}`);\n } else {\n payload.push(`Content-Disposition: form-data; name=\"${escape(normalizeLinefeeds(name))}\"`);\n }\n payload.push(\"\");\n payload.push(normalizeLinefeeds(value));\n if (i !== request.postData.params.length - 1) {\n payload.push(`--${boundary}`);\n }\n });\n payload.push(`--${carriage}`);\n request.postData.boundary = boundary;\n request.postData.text = payload.join(rn);\n const contentTypeHeader = getHeaderName(request.headersObj, \"content-type\") || \"content-type\";\n request.headersObj[contentTypeHeader] = `multipart/form-data; boundary=${boundary}`;\n }\n break;\n case \"application/x-www-form-urlencoded\":\n if (!request.postData.params) {\n request.postData.text = \"\";\n } else {\n request.postData.paramsObj = request.postData.params.reduce(reducer, {});\n request.postData.text = stringify(request.postData.paramsObj);\n }\n break;\n case \"text/json\":\n case \"text/x-json\":\n case \"application/json\":\n case \"application/x-json\":\n request.postData.mimeType = \"application/json\";\n if (request.postData.text) {\n try {\n request.postData.jsonObj = JSON.parse(request.postData.text);\n } catch (e) {\n request.postData.mimeType = \"text/plain\";\n }\n }\n break;\n }\n const allHeaders = {\n ...request.allHeaders,\n ...request.headersObj\n };\n const urlWithParsedQuery = parse(request.url, true, true);\n request.queryObj = {\n ...request.queryObj,\n ...urlWithParsedQuery.query\n };\n let search;\n if (options.harIsAlreadyEncoded) {\n search = stringify(request.queryObj, {\n encode: false,\n indices: false\n });\n } else {\n search = stringify(request.queryObj, {\n indices: false\n });\n }\n const uriObj = {\n ...urlWithParsedQuery,\n query: request.queryObj,\n search,\n path: search ? `${urlWithParsedQuery.pathname}?${search}` : urlWithParsedQuery.pathname\n };\n const url = format({\n ...urlWithParsedQuery,\n query: null,\n search: null\n });\n const fullUrl = format({\n ...urlWithParsedQuery,\n ...uriObj\n });\n return {\n ...request,\n allHeaders,\n fullUrl,\n url,\n uriObj\n };\n }\n convert(targetId, clientId, options) {\n if (!this.initCalled) {\n this.init();\n }\n if (!options && clientId) {\n options = clientId;\n }\n const target = targets[targetId];\n if (!target) {\n return false;\n }\n const { convert } = target.clientsById[clientId || target.info.default];\n const results = this.requests.map((request) => convert(request, options));\n return results;\n }\n};\n/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nexport { HTTPSnippet, availableTargets, extname };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.js.map","import { HTTPSnippet } from \"@zudoku/httpsnippet\";\nimport type { OperationsFragmentFragment } from \"../graphql/graphql.js\";\n\nexport const createHttpSnippet = ({\n operation,\n selectedServer,\n exampleBody,\n}: {\n operation: OperationsFragmentFragment;\n selectedServer: string;\n exampleBody: {\n mimeType: string;\n text?: string;\n };\n}) => {\n return new HTTPSnippet({\n method: operation.method.toUpperCase(),\n url:\n selectedServer + operation.path.replaceAll(\"{\", \":\").replaceAll(\"}\", \"\"),\n postData: exampleBody,\n headers: [\n ...(exampleBody.text\n ? [{ name: \"Content-Type\", value: exampleBody.mimeType }]\n : []),\n ...(operation.parameters\n ?.filter((p) => p.in === \"header\" && p.required === true)\n .map((p) => ({\n name: p.name,\n value:\n p.schema?.default ??\n p.examples?.find((x) => x.value)?.value ??\n (p.schema?.type === \"string\"\n ? \"<string>\"\n : p.schema?.type === \"number\" || p.schema?.type === \"integer\"\n ? \"<number>\"\n : p.schema?.type === \"boolean\"\n ? \"<bool>\"\n : \"<value>\"),\n })) ?? []),\n ],\n queryString:\n operation.parameters\n ?.filter((p) => p.in === \"query\" && p.required === true)\n .map((p) => ({\n name: p.name,\n value:\n p.schema?.default ??\n p.examples?.find((x) => x.value)?.value ??\n (p.schema?.type === \"string\"\n ? \"<string>\"\n : p.schema?.type === \"number\" || p.schema?.type === \"integer\"\n ? \"<number>\"\n : p.schema?.type === \"boolean\"\n ? \"<bool>\"\n : \"<value>\"),\n })) ?? [],\n httpVersion: \"\",\n cookies: [],\n headersSize: 0,\n bodySize: 0,\n });\n};\n\nexport const getConverted = (snippet: HTTPSnippet, option: string) => {\n // biome-ignore lint/suspicious/noExplicitAny: Allow any type\n let converted: any;\n switch (option) {\n case \"shell\":\n converted = snippet.convert(\"shell\", \"curl\");\n break;\n case \"js\":\n converted = snippet.convert(\"javascript\", \"fetch\");\n break;\n case \"python\":\n converted = snippet.convert(\"python\", \"requests\");\n break;\n case \"java\":\n converted = snippet.convert(\"java\", \"okhttp\");\n break;\n case \"go\":\n converted = snippet.convert(\"go\", \"native\");\n break;\n case \"csharp\":\n converted = snippet.convert(\"csharp\", \"httpclient\");\n break;\n case \"kotlin\":\n converted = snippet.convert(\"kotlin\", \"okhttp\");\n break;\n case \"objc\":\n converted = snippet.convert(\"objc\", \"nsurlsession\");\n break;\n case \"php\":\n converted = snippet.convert(\"php\", \"http2\");\n break;\n case \"ruby\":\n converted = snippet.convert(\"ruby\");\n break;\n case \"swift\":\n converted = snippet.convert(\"swift\");\n break;\n default:\n converted = snippet.convert(\"shell\");\n break;\n }\n\n return converted ? converted[0] : \"\";\n};\n","import type { SchemaObject } from \"../../../oas/graphql/index.js\";\nimport { isCircularRef } from \"../schema/utils.js\";\n\nexport const generateSchemaExample = (\n schema?: SchemaObject,\n name?: string,\n // biome-ignore lint/suspicious/noExplicitAny: Allow any type\n): any => {\n if (!schema || isCircularRef(schema)) {\n return null;\n }\n\n // Check for schema-level example first\n if (schema.example !== undefined) {\n return schema.example;\n }\n\n // Then check for schema-level examples\n if (\n schema.examples &&\n typeof schema.examples === \"object\" &&\n \"default\" in schema.examples\n ) {\n const defaultExample = schema.examples.default;\n if (defaultExample !== null) {\n return typeof defaultExample === \"object\" && \"value\" in defaultExample\n ? defaultExample.value\n : defaultExample;\n }\n }\n\n // No example needed for const values\n if (schema.const !== undefined) {\n return schema.const;\n }\n\n // For object schemas with properties\n if (schema.type === \"object\" && schema.properties) {\n // biome-ignore lint/suspicious/noExplicitAny: Allow any type\n const example: Record<string, any> = {};\n\n for (const [key, propSchema] of Object.entries(schema.properties)) {\n if (typeof propSchema === \"object\") {\n example[key] = generateSchemaExample(propSchema as SchemaObject, key);\n }\n }\n\n return example;\n }\n\n if (schema.type === \"array\") {\n if (Array.isArray(schema.items)) {\n return schema.items.map((itemSchema) =>\n generateSchemaExample(itemSchema as SchemaObject),\n );\n }\n if (schema.items) {\n return [generateSchemaExample(schema.items as SchemaObject)];\n }\n return [];\n }\n\n if (schema.format !== undefined) {\n // Partial implementation of JSON Schema format examples\n // https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7.3\n switch (schema.format) {\n case \"date-time\":\n return \"2024-08-25T15:00:00Z\";\n case \"date\":\n return \"2024-08-25\";\n case \"time\":\n return \"15:00:00\";\n case \"email\":\n return \"test@example.com\";\n case \"uri\":\n return \"https://www.example.com/path/to/resource\";\n case \"uri-reference\":\n return \"/path/to/resource\";\n case \"uuid\":\n return \"00000000-0000-0000-0000-000000000000\";\n }\n }\n\n if (schema.enum) {\n return schema.enum[0];\n }\n\n if (schema.oneOf && schema.oneOf.length > 0) {\n return generateSchemaExample(schema.oneOf[0]);\n }\n\n if (schema.anyOf && schema.anyOf.length > 0) {\n // Should likely be expanded to return a partial set of values, but it would require\n // detection if being used within an array or a string type.\n return generateSchemaExample(schema.anyOf[0]);\n }\n\n // Check for property-level examples\n if (\n schema.examples &&\n Array.isArray(schema.examples) &&\n schema.examples.length > 0\n ) {\n return schema.examples[0];\n }\n\n switch (schema.type) {\n case \"string\":\n return name || \"string\";\n case \"number\":\n case \"integer\":\n return 0;\n case \"boolean\":\n return true;\n case \"null\":\n return null;\n case \"object\":\n return {};\n default:\n return {};\n }\n};\n","export const TextColorMap = {\n green: \"text-green-600\",\n blue: \"text-sky-600\",\n yellow: \"text-yellow-600\",\n red: \"text-red-600\",\n purple: \"text-purple-600\",\n indigo: \"text-indigo-600\",\n gray: \"text-gray-600\",\n};\n\nexport const methodToColor = {\n get: TextColorMap.green,\n post: TextColorMap.blue,\n put: TextColorMap.yellow,\n delete: TextColorMap.red,\n patch: TextColorMap.purple,\n options: TextColorMap.indigo,\n head: TextColorMap.gray,\n trace: TextColorMap.gray,\n};\n\nexport const methodForColor = (method: string) => {\n return (\n methodToColor[method.toLocaleLowerCase() as keyof typeof methodToColor] ??\n TextColorMap.gray\n );\n};\n","import { useMemo, useState, useTransition } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { useZudoku } from \"zudoku/hooks\";\nimport { Badge } from \"zudoku/ui/Badge.js\";\nimport { NativeSelect, NativeSelectOption } from \"zudoku/ui/NativeSelect.js\";\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { useAuthState } from \"../../authentication/state.js\";\nimport { PathRenderer } from \"../../components/PathRenderer.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { useOnScreen } from \"../../util/useOnScreen.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport { NonHighlightedCode } from \"./components/NonHighlightedCode.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { GeneratedExampleSidecarBox } from \"./GeneratedExampleSidecarBox.js\";\nimport type { OperationsFragmentFragment } from \"./graphql/graphql.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { PlaygroundDialogWrapper } from \"./PlaygroundDialogWrapper.js\";\nimport { RequestBodySidecarBox } from \"./RequestBodySidecarBox.js\";\nimport { ResponsesSidecarBox } from \"./ResponsesSidecarBox.js\";\nimport * as SidecarBox from \"./SidecarBox.js\";\nimport { createHttpSnippet, getConverted } from \"./util/createHttpSnippet.js\";\nimport { generateSchemaExample } from \"./util/generateSchemaExample.js\";\nimport { methodForColor } from \"./util/methodToColor.js\";\n\nexport const GetServerQuery = graphql(/* GraphQL */ `\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n`);\n\nconst EXAMPLE_LANGUAGES = [\n { value: \"shell\", label: \"cURL\" },\n { value: \"js\", label: \"JavaScript\" },\n { value: \"python\", label: \"Python\" },\n { value: \"java\", label: \"Java\" },\n { value: \"go\", label: \"Go\" },\n { value: \"csharp\", label: \"C#\" },\n { value: \"kotlin\", label: \"Kotlin\" },\n { value: \"objc\", label: \"Objective-C\" },\n { value: \"php\", label: \"PHP\" },\n { value: \"ruby\", label: \"Ruby\" },\n { value: \"swift\", label: \"Swift\" },\n];\n\nexport const Sidecar = ({\n operation,\n selectedResponse,\n globalSelectedServer,\n shouldLazyHighlight,\n}: {\n operation: OperationsFragmentFragment;\n selectedResponse?: string;\n globalSelectedServer?: string;\n shouldLazyHighlight?: boolean;\n}) => {\n const { options } = useOasConfig();\n const auth = useAuthState();\n const context = useZudoku();\n\n const methodTextColor = methodForColor(operation.method);\n\n const [searchParams, setSearchParams] = useSearchParams();\n const [, startTransition] = useTransition();\n\n const supportedLanguages = options?.supportedLanguages ?? EXAMPLE_LANGUAGES;\n\n const preferredLang =\n searchParams.get(\"lang\") ?? options?.examplesLanguage ?? \"shell\";\n\n const selectedLang =\n supportedLanguages.find((lang) => lang.value === preferredLang)?.value ??\n supportedLanguages.at(0)?.value ??\n \"shell\";\n\n const requestBodyContent = operation.requestBody?.content;\n const transformedRequestBodyContent =\n requestBodyContent && options?.transformExamples\n ? options.transformExamples({\n auth,\n type: \"request\",\n operation,\n content: requestBodyContent,\n context,\n })\n : requestBodyContent;\n\n const [selectedRequestExample, setSelectedRequestExample] = useState<{\n contentTypeIndex: number;\n exampleIndex: number;\n }>({\n contentTypeIndex: 0,\n exampleIndex: 0,\n });\n\n const selectedContent = transformedRequestBodyContent?.at(\n selectedRequestExample.contentTypeIndex,\n );\n const currentExample = selectedContent?.examples?.at(\n selectedRequestExample.exampleIndex,\n );\n\n const currentExampleCode = currentExample\n ? (currentExample?.value ?? currentExample)\n : selectedContent?.schema\n ? generateSchemaExample(selectedContent?.schema)\n : undefined;\n\n const path = (\n <PathRenderer\n path={operation.path}\n renderParam={({ name }) => (\n <ColorizedParam\n name={name}\n backgroundOpacity=\"0\"\n className=\"py-px px-0.5\"\n // same as in `ParameterListItem`\n slug={`${operation.slug}-${name}`}\n >\n {`{${name}}`}\n </ColorizedParam>\n )}\n />\n );\n\n // Manual server selection takes precedence over the server hierarchy.\n // If no manual selection, fall back to operation's first server (already respects operation > path > global hierarchy)\n const selectedServer =\n globalSelectedServer || operation.servers.at(0)?.url || \"\";\n\n const httpSnippetCode = useMemo<string | undefined>(() => {\n const converted = options?.generateCodeSnippet?.({\n selectedLang,\n selectedServer,\n context,\n operation,\n example: currentExampleCode,\n auth,\n });\n\n if (converted) return converted;\n\n const snippet = createHttpSnippet({\n operation,\n selectedServer,\n exampleBody: currentExampleCode\n ? {\n mimeType: \"application/json\",\n text: JSON.stringify(currentExampleCode, null, 2),\n }\n : { mimeType: \"application/json\" },\n });\n\n return getConverted(snippet, selectedLang);\n }, [\n currentExampleCode,\n operation,\n selectedServer,\n selectedLang,\n options,\n auth,\n context,\n ]);\n\n const [ref, isOnScreen] = useOnScreen({ rootMargin: \"200px 0px 200px 0px\" });\n\n const showPlayground =\n isOnScreen &&\n (operation.extensions[\"x-explorer-enabled\"] === true ||\n operation.extensions[\"x-zudoku-playground-enabled\"] === true ||\n (operation.extensions[\"x-explorer-enabled\"] === undefined &&\n operation.extensions[\"x-zudoku-playground-enabled\"] === undefined &&\n !options?.disablePlayground));\n\n const hasResponseExamples = operation.responses.some((response) =>\n response.content?.some((content) => (content.examples?.length ?? 0) > 0),\n );\n\n return (\n <aside\n ref={ref}\n className=\"flex flex-col sticky top-(--scroll-padding) gap-4\"\n data-pagefind-ignore=\"all\"\n >\n <SidecarBox.Root>\n <SidecarBox.Head className=\"py-1.5\">\n <div className=\"flex items-center flex-wrap gap-2 justify-between w-full\">\n <span className=\"font-mono wrap-break-word leading-6 space-x-1\">\n <Badge\n variant=\"outline\"\n className={cn(\n methodTextColor,\n \"px-1.5 rounded-md border-none bg-current/7 dark:bg-current/15\",\n )}\n >\n {operation.method.toUpperCase()}\n </Badge>\n {path}\n </span>\n <div className=\"flex items-center gap-1\">\n <NativeSelect\n className=\"py-0.5 h-fit max-w-32 truncate bg-background\"\n value={selectedLang}\n onChange={(e) => {\n startTransition(() => {\n setSearchParams((prev) => {\n prev.set(\"lang\", e.target.value);\n return prev;\n });\n });\n }}\n >\n {supportedLanguages.map((language) => (\n <NativeSelectOption\n key={language.value}\n value={language.value}\n >\n {language.label}\n </NativeSelectOption>\n ))}\n </NativeSelect>\n {showPlayground && (\n <PlaygroundDialogWrapper\n servers={operation.servers.map((server) => server.url)}\n operation={operation}\n examples={requestBodyContent ?? undefined}\n />\n )}\n </div>\n </div>\n </SidecarBox.Head>\n <SidecarBox.Body>\n {shouldLazyHighlight && !isOnScreen ? (\n <NonHighlightedCode code={httpSnippetCode ?? \"\"} />\n ) : (\n <SyntaxHighlight\n embedded\n language={selectedLang}\n className=\"[--scrollbar-color:gray] rounded-none text-xs max-h-[200px]\"\n // biome-ignore lint/style/noNonNullAssertion: code is guaranteed to be defined\n code={httpSnippetCode!}\n />\n )}\n </SidecarBox.Body>\n </SidecarBox.Root>\n\n {transformedRequestBodyContent && currentExample ? (\n <RequestBodySidecarBox\n content={transformedRequestBodyContent}\n onExampleChange={(selected) => {\n setSelectedRequestExample(selected);\n }}\n selectedContentIndex={selectedRequestExample.contentTypeIndex}\n selectedExampleIndex={selectedRequestExample.exampleIndex}\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n />\n ) : transformedRequestBodyContent && currentExampleCode ? (\n <GeneratedExampleSidecarBox\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n code={JSON.stringify(currentExampleCode, null, 2)}\n />\n ) : null}\n\n {hasResponseExamples ? (\n <ResponsesSidecarBox\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n selectedResponse={selectedResponse}\n responses={operation.responses.map((response) => ({\n ...response,\n content:\n response.content && options?.transformExamples\n ? options.transformExamples({\n auth,\n type: \"response\",\n context,\n operation,\n content: response.content,\n })\n : response.content,\n }))}\n />\n ) : (\n <ResponsesSidecarBox\n isGenerated\n isOnScreen={isOnScreen}\n shouldLazyHighlight={shouldLazyHighlight}\n selectedResponse={selectedResponse}\n responses={operation.responses.map((response) => ({\n ...response,\n content: response.content?.map((content) => ({\n ...content,\n examples: content.schema\n ? [{ name: \"\", value: generateSchemaExample(content.schema) }]\n : content.examples,\n })),\n }))}\n />\n )}\n </aside>\n );\n};\n","import { useState } from \"react\";\nimport { Badge } from \"zudoku/ui/Badge.js\";\nimport { Separator } from \"zudoku/ui/Separator.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { PagefindSearchMeta } from \"../../components/PagefindSearchMeta.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { ResponseContent } from \"./components/ResponseContent.js\";\nimport { SelectOnClick } from \"./components/SelectOnClick.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { type FragmentType, useFragment } from \"./graphql/index.js\";\nimport { MCPEndpoint } from \"./MCPEndpoint.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\nimport { methodForColor } from \"./util/methodToColor.js\";\n\nconst PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n globalSelectedServer,\n shouldLazyHighlight,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n globalSelectedServer?: string;\n shouldLazyHighlight?: boolean;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n const { options } = useOasConfig();\n\n // Manual server selection takes precedence over the server hierarchy.\n // If no manual selection, fall back to operation's first server (already respects operation > path > global hierarchy)\n const displayServerUrl = globalSelectedServer || operation.servers.at(0)?.url;\n\n const first = operation.responses.at(0);\n const [selectedResponse, setSelectedResponse] = useState(first?.statusCode);\n const isMCPEndpoint = operation.extensions?.[\"x-mcp-server\"] !== undefined;\n\n return (\n <div>\n {operation.deprecated && (\n <Badge variant=\"muted\" className=\"text-xs mb-4\">\n deprecated\n </Badge>\n )}\n <div\n key={operation.operationId}\n className={cn(\n \"grid grid-cols-1 lg:grid-cols-[minmax(0,4fr)_minmax(0,3fr)] gap-x-8 gap-y-4 items-start\",\n operation.deprecated && \"opacity-50 transition hover:opacity-100\",\n )}\n >\n <Heading\n level={2}\n id={operation.slug}\n registerNavigationAnchor\n className=\"break-all col-span-full\"\n >\n {operation.summary}\n </Heading>\n {!isMCPEndpoint && (\n <div className=\"text-sm flex gap-2 font-mono col-span-full\">\n <span className={methodForColor(operation.method)}>\n {operation.method.toUpperCase()}\n </span>\n <SelectOnClick className=\"max-w-full truncate flex cursor-pointer\">\n {displayServerUrl && (\n <div className=\"text-neutral-400 dark:text-neutral-500 truncate\">\n {displayServerUrl.replace(/\\/$/, \"\")}\n </div>\n )}\n <div className=\"text-neutral-900 dark:text-neutral-200\">\n {operation.path}\n </div>\n </SelectOnClick>\n </div>\n )}\n\n {isMCPEndpoint ? (\n <div className=\"col-span-full\">\n <MCPEndpoint\n serverUrl={displayServerUrl}\n summary={operation.summary ?? undefined}\n data={operation.extensions?.[\"x-mcp-server\"]}\n />\n </div>\n ) : (\n <div\n className={cn(\n \"flex flex-col gap-4\",\n options?.disableSidecar && \"col-span-full\",\n )}\n >\n {operation.description && (\n <Markdown\n className=\"max-w-full prose-img:max-w-prose\"\n content={operation.description}\n />\n )}\n {operation.parameters &&\n operation.parameters.length > 0 &&\n PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n summary={operation.summary ?? undefined}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, () => (\n <Separator className=\"my-4\" />\n ))}\n {renderIf(\n operation.requestBody?.content?.at(0)?.schema,\n (schema) => (\n <div className=\"flex flex-col gap-4\">\n <Heading\n level={3}\n className=\"capitalize flex items-center gap-2\"\n id={`${operation.slug}/request-body`}\n >\n {operation.summary && (\n <PagefindSearchMeta>\n {operation.summary} &rsaquo;{\" \"}\n </PagefindSearchMeta>\n )}\n Request Body{\" \"}\n {operation.requestBody?.required === false ? (\n <Badge variant=\"muted\">optional</Badge>\n ) : (\n \"\"\n )}\n </Heading>\n <SchemaView schema={schema} />\n </div>\n ),\n )}\n <Separator className=\"my-4\" />\n {operation.responses.length > 0 && (\n <>\n <Heading level={3} id={`${operation.slug}/responses`}>\n {operation.summary && (\n <PagefindSearchMeta>\n {operation.summary} &rsaquo;{\" \"}\n </PagefindSearchMeta>\n )}\n Responses\n </Heading>\n <ResponseContent\n responses={operation.responses}\n selectedResponse={selectedResponse}\n onSelectResponse={setSelectedResponse}\n />\n </>\n )}\n </div>\n )}\n\n {renderIf(!options?.disableSidecar && !isMCPEndpoint, () => (\n <Sidecar\n selectedResponse={selectedResponse}\n operation={operation}\n globalSelectedServer={globalSelectedServer}\n shouldLazyHighlight={shouldLazyHighlight}\n />\n ))}\n </div>\n </div>\n );\n};\n","export function sanitizeMarkdownForMetatag(\n description: string,\n maxLength: number = 160,\n): string {\n if (!description) {\n return \"\";\n }\n\n return (\n description\n // Replace Markdown links [text](url) with just \"text\"\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, \"$1\")\n // Remove Markdown image syntax: ![alt](url)\n .replace(/!\\[.*?\\]\\(.*?\\)/g, \"\")\n // Remove other Markdown syntax (e.g., **bold**, _italic_, `code`)\n .replace(/[_*`~]/g, \"\")\n // Remove headings (# Heading), blockquotes (> Quote), and horizontal rules (--- or ***)\n .replace(/^(?:>|\\s*#+|-{3,}|\\*{3,})/gm, \"\")\n // Remove any remaining formatting characters\n .replace(/[|>{}[\\]]/g, \"\")\n // Collapse multiple spaces and trim the text\n .replace(/\\s+/g, \" \")\n .trim()\n // Limit to the specified maximum length\n .substring(0, maxLength)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/'/g, \"&#039;\")\n );\n}\n","import { useQuery, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ChevronsDownUpIcon, ChevronsUpDownIcon } from \"lucide-react\";\nimport { useNavigate, useParams } from \"react-router\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"zudoku/ui/Select.js\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { useApiIdentities } from \"../../components/context/ZudokuContext.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { PagefindSearchMeta } from \"../../components/PagefindSearchMeta.js\";\nimport { Pagination } from \"../../components/Pagination.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { useCreateQuery } from \"./client/useCreateQuery.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { DownloadSchemaButton } from \"./DownloadSchemaButton.js\";\nimport { Endpoint } from \"./Endpoint.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { UNTAGGED_PATH } from \"./index.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport { useSelectedServer } from \"./state.js\";\nimport { sanitizeMarkdownForMetatag } from \"./util/sanitizeMarkdownForMetatag.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n deprecated\n extensions\n servers {\n url\n description\n }\n parameters {\n name\n in\n description\n required\n schema\n style\n explode\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nconst SchemaWarmupQuery = graphql(/* GraphQL */ `\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n openapi\n }\n }\n`);\n\nconst OperationsForTagQuery = graphql(/* GraphQL */ `\n query OperationsForTag(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n servers {\n url\n }\n description\n summary\n title\n url\n version\n tag(slug: $tag, untagged: $untagged) {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n extensions\n next {\n name\n slug\n extensions\n }\n prev {\n name\n slug\n extensions\n }\n }\n }\n }\n`);\n\nconst LAZY_OPERATION_LIST_THRESHOLD = 30;\n\nexport const OperationList = ({\n tag,\n untagged,\n}: {\n tag?: string;\n untagged?: boolean;\n}) => {\n const { path, input, type, versions, version, options } = useOasConfig();\n const { tag: tagFromParams } = useParams<\"tag\">();\n const query = useCreateQuery(OperationsForTagQuery, {\n input,\n type,\n tag: tag ?? tagFromParams,\n untagged,\n });\n const result = useSuspenseQuery(query);\n const {\n data: { schema },\n } = result;\n // Global server selection for the dropdown UI\n const { selectedServer: globalSelectedServer } = useSelectedServer(\n schema.servers,\n );\n const title = schema.title;\n const summary = schema.summary;\n const description = schema.description;\n const navigate = useNavigate();\n\n // This is to warmup (i.e. load the schema in the background) the schema on the client, if the page has been rendered on the server\n const warmupQuery = useCreateQuery(SchemaWarmupQuery, { input, type });\n useQuery({\n ...warmupQuery,\n enabled: typeof window !== \"undefined\",\n notifyOnChangeProps: [],\n });\n\n // Prefetch for Playground\n useApiIdentities();\n\n if (!schema.tag) {\n return (\n <div className=\"flex flex-col h-full items-center justify-center text-center\">\n <div className=\"text-muted-foreground font-medium\">\n No operations found\n </div>\n <div className=\"mt-2 text-sm text-muted-foreground\">\n This API doesn't have any operations defined yet.\n </div>\n </div>\n );\n }\n\n const { operations, next, prev, description: tagDescription } = schema.tag;\n\n // Simple heuristic to determine if we should lazy highlight the code\n // This is to avoid the performance issues when there are a lot of operations\n const shouldLazyHighlight = operations.length > LAZY_OPERATION_LIST_THRESHOLD;\n\n // The summary property is preferable here as it is a short description of\n // the API, whereas the description property is typically longer and supports\n // commonmark formatting, making it ill-suited for use in the meta description\n const metaDescription = tagDescription\n ? sanitizeMarkdownForMetatag(tagDescription)\n : summary\n ? summary\n : description\n ? sanitizeMarkdownForMetatag(description)\n : undefined;\n\n const hasMultipleVersions = Object.entries(versions).length > 1;\n\n const showVersions =\n options?.showVersionSelect === \"always\" ||\n (hasMultipleVersions && options?.showVersionSelect !== \"hide\");\n\n const paginationProps = {\n prev: prev\n ? {\n to: `../${prev.slug}`,\n label: prev.extensions?.[\"x-displayName\"] ?? prev.name,\n }\n : undefined,\n next: next\n ? {\n to: `../${next.slug ?? UNTAGGED_PATH}`,\n label:\n next.extensions?.[\"x-displayName\"] ??\n next.name ??\n \"Other endpoints\",\n }\n : undefined,\n };\n\n const tagTitle = schema.tag.extensions?.[\"x-displayName\"] ?? schema.tag.name;\n const helmetTitle = [tagTitle, title].filter(Boolean).join(\" - \");\n\n const downloadUrl =\n typeof input === \"string\"\n ? type === \"url\"\n ? input\n : joinUrl(path, version, input.split(\"/\").pop())\n : undefined;\n\n return (\n <div\n className=\"pt-(--padding-content-top)\"\n data-pagefind-filter=\"section:openapi\"\n data-pagefind-meta=\"section:openapi\"\n >\n <PagefindSearchMeta name=\"category\">{title}</PagefindSearchMeta>\n <Helmet>\n {helmetTitle && <title>{helmetTitle}</title>}\n {metaDescription && (\n <meta name=\"description\" content={metaDescription} />\n )}\n </Helmet>\n\n <div className=\"mb-8\">\n <Collapsible\n className=\"w-full\"\n defaultOpen={options?.expandApiInformation}\n >\n <div className=\"flex flex-col gap-4 sm:flex-row justify-around items-start sm:items-end\">\n <div className=\"flex flex-col flex-1 gap-2\">\n <CategoryHeading>{title}</CategoryHeading>\n <Heading\n level={1}\n id=\"description\"\n registerNavigationAnchor\n className=\"mb-0\"\n >\n {tagTitle}\n {showVersions && (\n <span className=\"text-xl text-muted-foreground ms-1.5\">\n {\" \"}\n ({version})\n </span>\n )}\n </Heading>\n <Endpoint />\n </div>\n <div className=\"flex flex-col gap-4 sm:items-end\">\n <div className=\"flex gap-2 items-center\">\n {showVersions && (\n <Select\n onValueChange={(version) =>\n // biome-ignore lint/style/noNonNullAssertion: is guaranteed to be defined\n navigate(versions[version]!.path)\n }\n defaultValue={version}\n disabled={!hasMultipleVersions}\n >\n <SelectTrigger className=\"w-[180px]\" size=\"sm\">\n <SelectValue placeholder=\"Select version\" />\n </SelectTrigger>\n <SelectContent>\n {Object.entries(versions).map(([version, { label }]) => (\n <SelectItem key={version} value={version}>\n {label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )}\n {options?.schemaDownload?.enabled && downloadUrl && (\n <DownloadSchemaButton downloadUrl={downloadUrl} />\n )}\n </div>\n {schema.description && (\n <CollapsibleTrigger className=\"flex items-center gap-1 text-sm font-medium text-muted-foreground group\">\n <span>API information</span>\n\n <ChevronsUpDownIcon\n className=\"group-data-[state=open]:hidden translate-y-px\"\n size={14}\n />\n <ChevronsDownUpIcon\n className=\"group-data-[state=closed]:hidden translate-y-px\"\n size={13}\n />\n </CollapsibleTrigger>\n )}\n </div>\n </div>\n {schema.description && (\n <CollapsibleContent className=\"CollapsibleContent\">\n <div className=\"mt-4 max-w-full border rounded-sm bg-muted/25\">\n <Markdown\n className=\"max-w-full prose-img:max-w-prose border-border p-3 lg:p-5\"\n content={schema.description}\n />\n </div>\n </CollapsibleContent>\n )}\n </Collapsible>\n {tagDescription && (\n <Markdown\n className=\"my-4 max-w-full prose-img:max-w-prose\"\n content={tagDescription}\n />\n )}\n </div>\n <hr />\n {/* px, -mx is so that `content-visibility` doesn't cut off overflown heading anchor links '#' */}\n <div className=\"px-6 mt-6 -mx-6 [content-visibility:auto]\">\n {operations.map((fragment) => (\n <div key={fragment.slug}>\n <OperationListItem\n operationFragment={fragment}\n globalSelectedServer={globalSelectedServer}\n shouldLazyHighlight={shouldLazyHighlight}\n />\n <hr className=\"my-10\" />\n </div>\n ))}\n <Pagination className=\"mb-4\" {...paginationProps} />\n </div>\n </div>\n );\n};\n"],"names":["useFragment","_documentNode","fragmentType","buttonGroupVariants","cva","ButtonGroup","className","orientation","props","jsx","cn","DownloadSchemaButton","downloadUrl","copyToClipboard","useCopyToClipboard","handleDownload","e","response","blob","url","a","error","Button","DownloadIcon","DropdownMenu","DropdownMenuTrigger","ChevronDownIcon","jsxs","DropdownMenuContent","DropdownMenuItem","ExternalLinkIcon","schema","CopyIcon","prompt","ClaudeLogo","ChatGPTLogo","SimpleSelect","value","onChange","options","showChevrons","option","ChevronsUpDownIcon","ServersQuery","graphql","CopyButton","isCopied","setIsCopied","useState","CheckIcon","Endpoint","input","type","useOasConfig","query","useCreateQuery","result","useSuspenseQuery","startTransition","useTransition","selectedServer","setSelectedServer","useSelectedServer","servers","firstServer","server","InlineCode","badgeVariants","Badge","variant","asChild","Comp","Slot","Separator","decorative","SeparatorPrimitive","renderIf","variable","callback","NativeSelect","NativeSelectOption","cnUtil","ResponseContent","responses","selectedResponse","onSelectResponse","selectedMediaType","setSelectedMediaType","currentResponse","r","hideTabs","cardHeader","Tabs","c","Markdown","newResponse","SchemaView","content","MCPEndpoint","serverUrl","summary","data","mcpUrl","name","claudeConfig","cursorConfig","chatgptConfig","vscodeConfig","handleCopy","Card","TabsList","TabsTrigger","Typography","TabsContent","SyntaxHighlight","Callout","getParameterSchema","parameter","ParameterListItem","group","id","paramSchema","isOpen","setIsOpen","isCollapsible","isArrayType","shouldRenderDescription","Item","ItemContent","ItemTitle","ColorizedParam","ParamInfos","EnumValues","SchemaExampleAndDefault","ItemActions","MinusIcon","PlusIcon","Collapsible","ParameterList","parameters","sortedParameters","b","Fragment","Heading","VisuallyHidden","Frame","FramePanel","ItemGroup","index","ItemSeparator","useOnScreen","rootMargin","threshold","root","isVisible","setIsVisible","ref","useRef","useEffect","observer","entry","currentElement","OverflowOverlay","NonHighlightedCode","code","Root","children","Head","Body","Footer","GeneratedExampleSidecarBox","isOnScreen","shouldLazyHighlight","SidecarBox.Root","SidecarBox.Head","TooltipProvider","Tooltip","TooltipTrigger","InfoIcon","TooltipContent","SidecarBox.Body","PlaygroundDialogWrapper","operation","examples","headers","p","x","queryParams","pathParams","PlaygroundDialog","formatForDisplay","getLanguage","mediaType","SidecarExamples","description","onExampleChange","selectedContentIndex","selectedExampleIndex","selectedContent","selectedExample","formattedExample","language","SidecarBox.Footer","example","RequestBodySidecarBox","CollapsibleTrigger","ChevronsDownUpIcon","CollapsibleContent","ResponsesSidecarBox","isGenerated","internalSelectedResponse","setInternalSelectedResponse","setSelectedContentIndex","setSelectedExampleIndex","selected","reducer","accumulator","pair","currentValue","DEFAULT_INDENTATION_CHARACTER","DEFAULT_LINE_JOIN","CodeBuilder","indent","join","line","indentationLevel","newLine","unreplacedCode","replacer","postProcessor","isRegexp","re","isObj","lib","object","keySymbol","require$$0","require$$1","getOwnEnumPropSymbols","require$$2","stringifyObject","val","opts","pad","seen","stringify","tokens","expandWhiteSpace","string","oneLined","ret","el","i","eol","objKeys","isSymbol","isClassic","key","escapeString","rawValue","delimiter","escapeChar","escapeNewlines","c2","escapeForSingleQuotes","escapeForDoubleQuotes","libcurl","method","fullUrl","headersObj","allHeaders","postData","push","blank","header","getHeaderName","getHeader","headerName","hasHeader","isMimeTypeJSON","mimeType","Keyword","File","path","jsType","objEmpty","filterEmpty","padBlock","padSize","padding","jsToEdn","js","obj","arr","clj_http","queryObj","methods","params2","param","formattedParams","clojure","getDecompressionMethods","acceptEncodings","supportedMethods2","acceptEncoding","encoding","match","httpclient","clienthandler","cookies","decompressionMethods","contentType","title","s","restsharp","uriObj","isMultipart","text","csharp","native","showBoilerplate","checkErrors","printBody","timeout","errorPlaceholder","errorCheck","hasTimeout","hasClient","client","go","CRLF","http11","httpVersion","requestUrl","headerKeys","keyCapitalized","length","headerSection","messageBody","http","asynchttp","nethttp","okhttp","methodsWithBody","unirest","java","axios","addPostProcessor","requestOptions","optionString","stringifyObject9","fetch","inputOpts","contentTypeHeader","property","originalResult","jquery","settings","stringifiedSettings","xhr","javascript","native2","payload","multipartPayload","json","okhttp2","kotlin","axios2","reqOpts","stringifiedOptions","fetch2","includeFS","unshift","cookiesString","native3","request","attachment","unirest2","cookie","multipart","part","node","nsDeclaration","nsClass","opening","literal","literalRepresentation","indentation","keyValuePairs","nsurlsession","req","head","tail","objc","cohttp","h","m","ocaml","convertType","lastIndent","contents","item","supportedMethods","curl","closingTag","maxRedirects","namedErrors","noTags","shortTags","curlOptions","curlopts","escape2","curlCookies","guzzle","requestCode","requestPush","requestJoin","fields","field","cookieString","http1","cookiesObj","http2","hasBody","files","fileName","formValue","php","generatePowershellConvert","command","commandOptions","restmethod","webrequest","powershell","concatValues","concatType","values","pretty","indentLevel","currentIndent","closingBraceIndent","openingBrace","closingBrace","literalRepresentation2","valuesRepresentation","v","builtInMethods","requests","hasFiles","hasPayload","jsonPayload","nonFilePayload","stringPayload","headerCount","count","request2","python","httr","queryString","qs","queryCount","cookieHeader","acceptHeader","setCookies","setAccept","setContentType","otherHeaders","setHeaders","headerAdditions","native4","rawMethod","capMethod","ruby","quote","escape","params","getArg","short","longName","shortName","curl2","binary","globOff","indentJSON","arg","formattedUrl","contentTypeHeaderName","noBoundary","post","unencoded","encoded","needsEncoding","flag","builtPayload","httpie","raw","flags","cliFlags","postDataText","wget","shell","buildString","str","concatArray","literalDeclaration","literalRepresentation3","urlsession","queries","swift","targets","freeExports","exports","freeModule","module","freeGlobal","global","punycode","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","stringFromCharCode","map","array","fn","mapDomain","parts","labels","ucs2decode","output","counter","extra","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","decode","inputLength","out","n","bias","basic","j","oldi","w","t","baseMinusT","encode","handledCPCount","basicLength","q","handledCPCountPlusOne","qMinusT","toUnicode","toASCII","this","esObjectAtoms","esErrors","_eval","range","syntax","uri","abs","max","min","pow","round","_isNaN","$isNaN","sign","number","gOPD","$gOPD","gopd","$defineProperty","esDefineProperty","shams","sym","symObj","symVal","_","syms","descriptor","origSymbol","hasSymbolSham","hasSymbols","Reflect_getPrototypeOf","$Object","Object_getPrototypeOf","ERROR_MESSAGE","toStr","funcType","concatty","slicy","arrLike","offset","joiny","joiner","implementation","that","target","args","bound","binder","boundLength","boundArgs","Empty","functionBind","functionCall","functionApply","reflectApply","bind","$apply","$call","$reflectApply","require$$3","actualApply","$TypeError","$actualApply","callBindApplyHelpers","callBind","hasProtoAccessor","desc","$getPrototypeOf","get","reflectGetProto","originalGetProto","getDunderProto","getProto","O","call","$hasOwn","hasown","undefined","$Error","$EvalError","$RangeError","$ReferenceError","require$$4","$SyntaxError","require$$5","require$$6","$URIError","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","$Function","getEvalledConstructor","expressionSyntax","require$$15","require$$16","throwTypeError","ThrowTypeError","require$$17","require$$18","$ObjectGPO","require$$19","$ReflectGPO","require$$20","require$$21","require$$22","needsEval","TypedArray","INTRINSICS","errorProto","doEval","gen","LEGACY_ALIASES","require$$23","hasOwn","require$$24","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","first","last","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","getIntrinsic","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","defineDataProperty","nonEnumerable","nonWritable","nonConfigurable","loose","hasPropertyDescriptors","hasPropertyDescriptors_1","GetIntrinsic","define","hasDescriptors","$floor","setFunctionLength","functionLengthIsConfigurable","functionLengthIsWritable","applyBind","callBindBasic","originalFunction","func","adjustedLength","$indexOf","callBound","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","addNumericSeparator","num","sepRegex","int","intStr","dec","utilInspect","inspectCustom","inspectSymbol","objectInspect","inspect_","depth","has","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","isArray","getIndent","indexOf","inspect","from","noIndent","newOpts","isRegExp","nameOf","keys","arrObjKeys","symString","markBoxed","isElement","attrs","wrapQuotes","xs","singleLineValues","indentedJoin","isError","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","isPlainObject","protoTag","stringTag","constructorTag","tag","defaultStyle","quoteChar","f","l","remaining","trailer","lowbyte","size","entries","joinedEntries","baseIndent","lineJoiner","isArr","symMap","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","list","prev","curr","listGet","objects","listSet","listHas","sideChannel","$wm","$m","$o","channel","replace","percentTwenties","Format","formats","hexTable","compactQueue","queue","compacted","arrayToObject","source","merge","mergeTarget","targetItem","acc","assign","decoder","charset","strWithoutPlus","limit","defaultEncoder","kind","format","$0","segment","compact","refs","isBuffer","combine","maybeMap","mapped","utils","getSideChannel","arrayPrefixGenerators","prefix","pushToArray","valueOrArray","toISO","defaultFormat","defaults","date","isNonNullishPrimitive","sentinel","generateArrayPrefix","commaRoundTrip","allowEmptyArrays","strictNullHandling","skipNulls","encodeDotInKeys","encoder","filter","sort","allowDots","serializeDate","formatter","encodeValuesOnly","tmpSc","step","findFlag","pos","keyValue","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","stringify_1","joined","interpretNumericEntities","numberStr","parseArrayValue","isoSentinel","charsetSentinel","parseValues","cleanStr","skipIndex","bracketEqualsPos","encodedVal","existing","parseObject","chain","valuesParsed","leaf","cleanRoot","decodedRoot","parseKeys","givenKey","brackets","child","parent","normalizeParseOptions","duplicates","parse","tempObj","newObj","Url","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","urlParse","parseQueryString","slashesDenoteHost","u","queryIndex","splitter","uSplit","slashRegex","rest","simplePath","proto","lowerProto","slashes","hostEnd","hec","auth","atSign","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","ae","esc","hash","qm","urlFormat","protocol","pathname","host","search","urlResolve","relative","urlResolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","port","isHarEntry","HTTPSnippet","harRequest","http2VersionRegex","boundary","carriage","rn","normalizeLinefeeds","filename","urlWithParsedQuery","targetId","clientId","convert","createHttpSnippet","exampleBody","getConverted","snippet","converted","generateSchemaExample","isCircularRef","defaultExample","propSchema","itemSchema","TextColorMap","methodToColor","methodForColor","EXAMPLE_LANGUAGES","Sidecar","globalSelectedServer","useAuthState","context","useZudoku","methodTextColor","searchParams","setSearchParams","useSearchParams","supportedLanguages","preferredLang","selectedLang","lang","requestBodyContent","transformedRequestBodyContent","selectedRequestExample","setSelectedRequestExample","currentExample","currentExampleCode","PathRenderer","httpSnippetCode","useMemo","showPlayground","hasResponseExamples","PARAM_GROUPS","OperationListItem","operationFragment","OperationsFragment","groupedParameters","groupBy","displayServerUrl","setSelectedResponse","isMCPEndpoint","SelectOnClick","PagefindSearchMeta","sanitizeMarkdownForMetatag","maxLength","SchemaWarmupQuery","OperationsForTagQuery","LAZY_OPERATION_LIST_THRESHOLD","OperationList","untagged","versions","version","tagFromParams","useParams","navigate","useNavigate","warmupQuery","useQuery","useApiIdentities","operations","next","tagDescription","metaDescription","hasMultipleVersions","showVersions","paginationProps","UNTAGGED_PATH","tagTitle","helmetTitle","joinUrl","Helmet","CategoryHeading","Select","SelectTrigger","SelectValue","SelectContent","label","SelectItem","fragment","Pagination"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEO,SAASA,GACdC,GACAC,GAMgE;AAChE,SAAOA;AACT;ACxEA,MAAMC,KAAsBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,aAAa;AAAA,QACX,YACE;AAAA,QACF,UACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;AAEA,SAASC,GAAY;AAAA,EACnB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,GAA2E;AACzE,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkBF;AAAA,MAClB,WAAWG,GAAGP,GAAoB,EAAE,aAAAI,EAAA,CAAa,GAAGD,CAAS;AAAA,MAC5D,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACjBO,MAAMG,KAAuB,CAAC;AAAA,EACnC,aAAAC;AACF,MAEM;AACJ,QAAM,CAAA,EAAGC,CAAe,IAAIC,GAAA,GAEtBC,IAAuD,OAAOC,MAAM;AAGxE,QAFmBJ,EAAY,SAAS,KAAK,GAI7C;AAAA,MAAAI,EAAE,eAAA;AACF,UAAI;AACF,cAAMC,IAAW,MAAM,MAAML,CAAW;AACxC,YAAI,CAACK,EAAS;AACZ,gBAAM,IAAI,MAAM,oBAAoBA,EAAS,UAAU,EAAE;AAE3D,cAAMC,IAAO,MAAMD,EAAS,KAAA,GACtBE,IAAM,OAAO,IAAI,gBAAgBD,CAAI,GACrCE,IAAI,SAAS,cAAc,GAAG;AACpC,QAAAA,EAAE,OAAOD,GACTC,EAAE,WAAWR,EAAY,MAAM,GAAG,EAAE,SAAS,eAC7C,SAAS,KAAK,YAAYQ,CAAC,GAC3BA,EAAE,MAAA,GACF,SAAS,KAAK,YAAYA,CAAC,GAC3B,OAAO,IAAI,gBAAgBD,CAAG;AAAA,MAChC,SAASE,GAAO;AAEd,gBAAQ,MAAM,8BAA8BA,CAAK;AAAA,MACnD;AAAA;AAAA,EACF;AAEA,gCACGhB,IAAA,EACC,UAAA;AAAA,IAAAI,gBAAAA,EAAAA;AAAAA,MAACa;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAO;AAAA,QAEP,iCAAC,KAAA,EAAE,MAAMV,GAAa,UAAQ,IAAC,SAASG,GACtC,UAAA;AAAA,UAAAN,gBAAAA,EAAAA,IAACc,IAAA,EAAa,MAAM,GAAA,CAAI;AAAA,UAAE;AAAA,QAAA,EAAA,CAE5B;AAAA,MAAA;AAAA,IAAA;AAAA,2BAEDC,IAAA,EACC,UAAA;AAAA,MAAAf,gBAAAA,MAACgB,MAAoB,SAAO,IAC1B,UAAAhB,gBAAAA,EAAAA,IAACa,IAAA,EAAO,MAAK,MAAK,SAAQ,WAAU,WAAU,UAC5C,UAAAb,gBAAAA,MAACiB,IAAA,EAAgB,MAAM,GAAA,CAAI,GAC7B,GACF;AAAA,MACAC,gBAAAA,EAAAA,KAACC,IAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,QAAAnB,gBAAAA,EAAAA,IAACoB,IAAA,EAAiB,SAAO,IACvB,UAAAF,gBAAAA,EAAAA,KAAC,KAAA,EAAE,MAAMf,GAAa,QAAO,UAAS,KAAI,uBACxC,UAAA;AAAA,UAAAH,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,MAAM,GAAA,CAAI;AAAA,UAAE;AAAA,QAAA,EAAA,CAEhC,EAAA,CACF;AAAA,QACAH,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAS,YAAY;AAEnB,oBAAME,IAAS,OADE,MAAM,MAAMnB,CAAW,GACV,KAAA;AAC9B,cAAAC,EAAgBkB,CAAM;AAAA,YACxB;AAAA,YAEA,UAAA;AAAA,cAAAtB,gBAAAA,EAAAA,IAACuB,IAAA,EAAS,MAAM,GAAA,CAAI;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGxBL,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAS,MAAM;AACb,oBAAMI,IAAS;AAAA,gBACb,gCAAgC,IAAI,IAAIrB,GAAa,OAAO,SAAS,IAAI,EAAE,IAAI;AAAA,cAAA;AAEjF,qBAAO,KAAK,2BAA2BqB,CAAM,IAAI,QAAQ;AAAA,YAC3D;AAAA,YAEA,UAAA;AAAA,cAAAxB,gBAAAA,EAAAA,IAACyB,IAAA,EAAW,WAAU,SAAA,CAAS;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGnCP,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAS,MAAM;AACb,oBAAMI,IAAS;AAAA,gBACb,gCAAgC,IAAI,IAAIrB,GAAa,OAAO,SAAS,IAAI,EAAE,IAAI;AAAA,cAAA;AAEjF,qBAAO,KAAK,0BAA0BqB,CAAM,IAAI,QAAQ;AAAA,YAC1D;AAAA,YAEA,UAAA;AAAA,cAAAxB,gBAAAA,EAAAA,IAAC0B,IAAA,EAAY,WAAU,SAAA,CAAS;AAAA,cAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEpC,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GC9GaC,KAAe,CAAC;AAAA,EAC3B,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAhC;AAAA,EACA,SAAAiC;AAAA,EACA,cAAAC,IAAe;AACjB,MAUEb,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,EAAAlB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAAA,QACT;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,OAAA+B;AAAA,MACA,UAAAC;AAAA,MAEC,UAAAC,EAAQ,IAAI,CAACE,MACZhC,gBAAAA,EAAAA,IAAC,UAAA,EAAO,OAAOgC,EAAO,OACnB,UAAAA,EAAO,MAAA,GADwBA,EAAO,KAEzC,CACD;AAAA,IAAA;AAAA,EAAA;AAAA,EAEHhC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAAA,QACT,CAAC8B,KAAgB;AAAA,QACjB;AAAA,MAAA;AAAA,MAGF,UAAA/B,gBAAAA,EAAAA,IAACiC,IAAA,EAAmB,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC,GACF,GCjCIC,KAAeC;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1C,GAEKC,KAAa,CAAC,EAAE,KAAA1B,QAA2B;AAC/C,QAAM,CAAC2B,GAAUC,CAAW,IAAIC,GAAS,EAAK;AAE9C,SACEvC,gBAAAA,EAAAA;AAAAA,IAACa;AAAAA,IAAA;AAAA,MACC,SAAS,MAAM;AACb,QAAK,UAAU,UAAU,UAAUH,CAAG,EAAE,KAAK,MAAM;AACjD,UAAA4B,EAAY,EAAI,GAChB,WAAW,MAAMA,EAAY,EAAK,GAAG,GAAI;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MAEJ,UAAAD,IACCrC,gBAAAA,EAAAA,IAACwC,IAAA,EAAU,WAAU,kBAAiB,MAAM,GAAA,CAAI,IAEhDxC,gBAAAA,EAAAA,IAACuB,IAAA,EAAS,MAAM,IAAI,aAAa,IAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAI9C,GAEakB,KAAW,MAAM;AAC5B,QAAM,EAAE,OAAAC,GAAO,MAAAC,EAAA,IAASC,GAAA,GAClBC,IAAQC,GAAeZ,IAAc,EAAE,OAAAQ,GAAO,MAAAC,GAAM,GACpDI,IAASC,GAAiBH,CAAK,GAC/B,CAAA,EAAGI,CAAe,IAAIC,GAAA,GACtB,EAAE,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBC;AAAA,IAC5CN,EAAO,KAAK,OAAO;AAAA,EAAA,GAGf,EAAE,SAAAO,EAAA,IAAYP,EAAO,KAAK,QAC1BQ,IAAcD,EAAQ,GAAG,CAAC;AAEhC,SAAKC,IAGHrC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,yCACb,UAAA;AAAA,IAAAlB,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,uBAAsB,UAAA,YAAQ;AAAA,IAC7CsD,EAAQ,SAAS,IAChBtD,gBAAAA,EAAAA;AAAAA,MAAC2B;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,UAAU,CAACpB,MACT0C,EAAgB,MAAMG,EAAkB7C,EAAE,OAAO,KAAK,CAAC;AAAA,QAEzD,OAAO4C;AAAA,QACP,cAAcG,EAAQ,SAAS;AAAA,QAC/B,SAASA,EAAQ,IAAI,CAACE,OAAY;AAAA,UAChC,OAAOA,EAAO;AAAA,UACd,OAAOA,EAAO;AAAA,QAAA,EACd;AAAA,MAAA;AAAA,IAAA,0BAGHC,IAAA,EAAW,WAAU,uBAAsB,eAAa,IACtD,YAAY,KACf;AAAA,IAGFzD,gBAAAA,MAACoC,MAAW,KAAKkB,EAAQ,SAAS,IAAIH,IAAiBI,EAAY,IAAA,CAAK;AAAA,EAAA,GAC1E,IAzBuB;AA2B3B,GC/EMG,KAAgB/D;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASgE,GAAM;AAAA,EACb,WAAA9D;AAAA,EACA,SAAA+D;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAG9D;AACL,GAC8D;AAC5D,QAAM+D,IAAOD,IAAUE,KAAO;AAE9B,SACE/D,gBAAAA,EAAAA;AAAAA,IAAC8D;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW7D,GAAGyD,GAAc,EAAE,SAAAE,EAAA,CAAS,GAAG/D,CAAS;AAAA,MAClD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACvCA,SAASiE,GAAU;AAAA,EACjB,WAAAnE;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,YAAAmE,IAAa;AAAA,EACb,GAAGlE;AACL,GAAyD;AACvD,SACEC,gBAAAA,EAAAA;AAAAA,IAACkE,GAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,YAAAD;AAAA,MACA,aAAAnE;AAAA,MACA,WAAWG;AAAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACtBO,MAAMoE,KAAW,CACtBC,GACAC,MACmBD,IAAWC,EAASD,CAAQ,IAAI;ACCrD,SAASE,GAAa,EAAE,WAAAzE,GAAW,GAAGE,KAAyC;AAC7E,SACEmB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,aAAU;AAAA,MAEV,UAAA;AAAA,QAAAlB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,aAAU;AAAA,YACV,WAAWC;AAAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACAJ;AAAA,YAAA;AAAA,YAED,GAAGE;AAAA,UAAA;AAAA,QAAA;AAAA,QAENC,gBAAAA,EAAAA;AAAAA,UAACiB;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA,YACZ,aAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASsD,GAAmB,EAAE,GAAGxE,KAAyC;AACxE,SAAOC,gBAAAA,EAAAA,IAAC,UAAA,EAAO,aAAU,wBAAwB,GAAGD,GAAO;AAC7D;AC7BO,MAAME,KAAKuE,ICaLC,KAAkB,CAAC;AAAA,EAC9B,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACF,MAIM;AACJ,QAAM,CAACC,GAAmBC,CAAoB,IAAIvC;AAAA,IAChDmC,EAAU,CAAC,GAAG,UAAU,CAAC,GAAG,aAAa;AAAA,EAAA,GAErCK,IACJL,EAAU,KAAK,CAACM,MAAMA,EAAE,eAAeL,CAAgB,KAAKD,EAAU,CAAC,GAEnEO,IACJP,EAAU,WAAW,KAAKA,EAAU,GAAG,CAAC,GAAG,eAAe,OAEtDQ,IACJhE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,uCACb,UAAA;AAAA,IAAAA,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWjB;AAAA,UACT;AAAA,UACA,CAACgF,KAAY;AAAA,QAAA;AAAA,QAGd,UAAA;AAAA,UAAA,CAACA,KACAjF,gBAAAA,EAAAA,IAACmF,GAAK,MAAL,EAAU,WAAU,2CAClB,UAAAT,EAAU,IAAI,CAAClE,MACdR,gBAAAA,EAAAA;AAAAA,YAACmF,GAAK;AAAA,YAAL;AAAA,cAEC,OAAO3E,EAAS;AAAA,cAChB,WAAWP;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,cAAA;AAAA,cAGD,UAAAO,EAAS;AAAA,YAAA;AAAA,YARLA,EAAS;AAAA,UAAA,CAUjB,GACH;AAAA,UAEDuE,GAAiB,WAAWA,EAAgB,QAAQ,SAAS,KAC5D/E,gBAAAA,EAAAA;AAAAA,YAACsE;AAAA,YAAA;AAAA,cACC,OAAOO;AAAA,cACP,UAAU,CAACtE,MAAMuE,EAAqBvE,EAAE,OAAO,KAAK;AAAA,cACpD,WAAU;AAAA,cAET,UAAAwE,EAAgB,QAAQ,IAAI,CAACK,MAC5BpF,gBAAAA,EAAAA,IAACuE,IAAA,EAAqC,OAAOa,EAAE,WAC5C,UAAAA,EAAE,UAAA,GADoBA,EAAE,SAE3B,CACD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJlE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,MAAA+D,2BACEtB,IAAA,EAAM,SAAQ,WAAU,WAAU,oBAChC,aAAiB,WAAA,CACpB;AAAA,MAEDoB,GAAiB,eAChB/E,gBAAAA,EAAAA;AAAAA,QAACqF;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,SAASN,EAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IAC3B,EAAA,CAEJ;AAAA,EAAA,GACF;AAGF,SACE/E,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,uBACb,UAAAA,gBAAAA,EAAAA;AAAAA,IAACmF,GAAK;AAAA,IAAL;AAAA,MACC,OAAOR;AAAA,MACP,eAAe,CAAC/C,MAAU;AACxB,QAAAgD,IAAmBhD,CAAK;AACxB,cAAM0D,IAAcZ,EAAU,KAAK,CAACM,MAAMA,EAAE,eAAepD,CAAK;AAChE,QAAAkD,EAAqBQ,GAAa,UAAU,CAAC,GAAG,aAAa,EAAE;AAAA,MACjE;AAAA,MAEC,UAAAZ,EAAU,IAAI,CAAClE,MACdR,gBAAAA,EAAAA,IAACmF,GAAK,SAAL,EAAuC,OAAO3E,EAAS,YACtD,UAAAR,gBAAAA,EAAAA;AAAAA,QAACuF;AAAA,QAAA;AAAA,UACC,QACE/E,EAAS,SAAS;AAAA,YAChB,CAACgF,MAAYA,EAAQ,cAAcX;AAAA,UAAA,GAClC;AAAA,UAEL,YAAAK;AAAA,QAAA;AAAA,MAAA,EACF,GARiB1E,EAAS,UAS5B,CACD;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ,GCtGaiF,KAAc,CAAC;AAAA,EAC1B,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AACF,MAIM;AACJ,QAAM,CAACvD,GAAUC,CAAW,IAAIC,GAAS,EAAK,GACxCsD,IAAS,IAAIH,KAAa,IAAI,QAAQ,QAAQ,EAAE,CAAC,QAEjDI,IACJ,OAAOF,KAAS,YACXD,KAAW,eACXC,GAAM,QAAQD,KAAW,cAE1BI,IAAe;AAAA;AAAA,OAEhBD,CAAI;AAAA;AAAA;AAAA;AAAA,WAIAD,CAAM;AAAA;AAAA;AAAA;AAAA,IAMTG,IAAe;AAAA;AAAA,OAEhBF,CAAI;AAAA,gBACKD,CAAM;AAAA;AAAA;AAAA,IAKdI,IAAgBJ,GAEhBK,IAAe;AAAA;AAAA,OAEhBJ,CAAI;AAAA;AAAA;AAAA;AAAA,WAIAD,CAAM;AAAA;AAAA;AAAA;AAAA,IAMTM,IAAa,MAAM;AACvB,IAAK,UAAU,UAAU,UAAUN,CAAM,EAAE,KAAK,MAAM;AACpD,MAAAvD,EAAY,EAAI,GAChB,WAAW,MAAMA,EAAY,EAAK,GAAG,GAAI;AAAA,IAC3C,CAAC;AAAA,EACH;AAEA,+BACG8D,IAAA,EAAK,WAAU,4BACd,UAAAlF,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAAA,gBAAAA,OAAC,OAAA,EACC,UAAA;AAAA,MAAAlB,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,gBAAY;AAAA,MACvDkB,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAU,sCAAqC,UAAA;AAAA,QAAA;AAAA,QACpB;AAAA,QAC5BlB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,WAAU;AAAA,YACX,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEG;AAAA,MAAA,GAEN;AAAA,MAEAkB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWjB;AAAAA,YACT;AAAA,UAAA;AAAA,UAGF,UAAA;AAAA,YAAAD,gBAAAA,EAAAA,IAACyD,IAAA,EAAW,WAAU,8CACnB,UAAAoC,GACH;AAAA,YACA7F,gBAAAA,EAAAA;AAAAA,cAACa;AAAAA,cAAA;AAAA,gBACC,SAASsF;AAAA,gBACT,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBAET,UAAA9D,0BACEG,IAAA,EAAU,WAAU,0BAAyB,IAE9CxC,gBAAAA,EAAAA,IAACuB,IAAA,EAAS,WAAU,UAAA,CAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UAElC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GACF;AAAA,2BAEC,OAAA,EACC,UAAA;AAAA,MAAAvB,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,yBAAqB;AAAA,MAChEA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAU,sCAAqC,UAAA,kEAElD;AAAA,MAEAA,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,OAAA,CAAO;AAAA,MAErBkB,gBAAAA,EAAAA,KAACiE,IAAA,EAAK,cAAa,UAAS,WAAU,UACpC,UAAA;AAAA,QAAAjE,gBAAAA,EAAAA,KAACmF,IAAA,EAAS,WAAU,2BAClB,UAAA;AAAA,UAAArG,gBAAAA,EAAAA,IAACsG,IAAA,EAAY,OAAM,UAAS,UAAA,UAAM;AAAA,UAClCtG,gBAAAA,EAAAA,IAACsG,IAAA,EAAY,OAAM,WAAU,UAAA,WAAO;AAAA,UACpCtG,gBAAAA,EAAAA,IAACsG,IAAA,EAAY,OAAM,UAAS,UAAA,UAAM;AAAA,UAClCtG,gBAAAA,EAAAA,IAACsG,IAAA,EAAY,OAAM,UAAS,UAAA,UAAA,CAAO;AAAA,QAAA,GACrC;AAAA,QAEApF,gBAAAA,EAAAA,KAACqF,IAAA,EAAW,WAAU,sBACpB,UAAA;AAAA,UAAArF,gBAAAA,EAAAA,KAACsF,IAAA,EAAY,OAAM,UAAS,WAAU,aACpC,UAAA;AAAA,YAAAtF,gBAAAA,OAAC,MAAA,EACC,UAAA;AAAA,cAAAA,gBAAAA,OAAC,MAAA,EAAG,UAAA;AAAA,gBAAA;AAAA,gBAC4BlB,gBAAAA,EAAAA,IAAC,YAAO,UAAA,WAAA,CAAQ;AAAA,gBAAS;AAAA,cAAA,GAEzD;AAAA,qCACC,MAAA,EAAG,UAAA;AAAA,gBAAA;AAAA,gBACUA,gBAAAA,EAAAA,IAAC,YAAO,UAAA,YAAA,CAAS;AAAA,gBAAS;AAAA,gBAAO;AAAA,gBAC7CA,gBAAAA,EAAAA,IAAC,YAAO,UAAA,cAAA,CAAW;AAAA,cAAA,GACrB;AAAA,qCACC,MAAA,EACC,UAAA;AAAA,gBAAAA,gBAAAA,EAAAA,IAAC,UAAK,UAAA,6BAAA,CAA0B;AAAA,gBAChCA,gBAAAA,EAAAA,IAACyD,MAAW,UAAA,6BAAA,CAA0B;AAAA,gBAAa;AAAA,gBACnDzD,gBAAAA,EAAAA;AAAAA,kBAACyG;AAAA,kBAAA;AAAA,oBACC,uBAAqB;AAAA,oBACrB,OAAM;AAAA,oBACN,UAAS;AAAA,oBACT,MAAMV;AAAA,oBACN,WAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ,GACF;AAAA,cACA/F,gBAAAA,EAAAA,IAAC,QAAG,UAAA,6FAAA,CAGJ;AAAA,YAAA,GACF;AAAA,YACAkB,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAU,sCAAqC,UAAA;AAAA,cAAA;AAAA,oCAG/C,MAAA,EAAG;AAAA,cAAE;AAAA,YAAA,GAER;AAAA,YACAA,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBACX,UAAA;AAAA,kBAAA;AAAA,kBAEClB,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACxC,GACF;AAAA,UAEAH,gBAAAA,EAAAA,KAACsF,IAAA,EAAY,OAAM,WAAU,WAAU,aACrC,UAAA;AAAA,YAAAxG,gBAAAA,MAAC0G,IAAA,EAAQ,MAAK,QAAO,OAAM,gBAAe,UAAA,mIAI1C;AAAA,mCACC,MAAA,EACC,UAAA;AAAA,cAAAxF,gBAAAA,OAAC,MAAA,EAAG,UAAA;AAAA,gBAAA;AAAA,gBACIlB,gBAAAA,EAAAA,IAAC,YAAO,UAAA,WAAA,CAAQ;AAAA,gBAAS;AAAA,gBAAG;AAAA,gBAClCA,gBAAAA,EAAAA,IAAC,YAAO,UAAA,aAAA,CAAU;AAAA,gBAAS;AAAA,gBAAGA,gBAAAA,EAAAA,IAAC,YAAO,UAAA,UAAA,CAAO;AAAA,cAAA,GAC/C;AAAA,qCACC,MAAA,EAAG,UAAA;AAAA,gBAAA;AAAA,gBACIA,gBAAAA,EAAAA,IAAC,YAAO,UAAA,SAAA,CAAM;AAAA,gBAAS;AAAA,gBAC7BA,gBAAAA,EAAAA,IAACyD,IAAA,EAAW,WAAU,QAAQ,UAAAwC,EAAA,CAAc;AAAA,cAAA,GAC9C;AAAA,cACAjG,gBAAAA,EAAAA,IAAC,QAAG,UAAA,oDAAA,CAAiD;AAAA,cACrDA,gBAAAA,EAAAA,IAAC,QAAG,UAAA,8FAAA,CAGJ;AAAA,cACAA,gBAAAA,EAAAA,IAAC,QAAG,UAAA,sDAAA,CAAmD;AAAA,YAAA,GACzD;AAAA,YAEAkB,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBACX,UAAA;AAAA,kBAAA;AAAA,kBAEClB,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACxC,GACF;AAAA,UAEAH,gBAAAA,EAAAA,KAACsF,IAAA,EAAY,OAAM,UAAS,WAAU,aACpC,UAAA;AAAA,YAAAtF,gBAAAA,OAAC,MAAA,EACC,UAAA;AAAA,cAAAA,gBAAAA,OAAC,MAAA,EACC,UAAA;AAAA,gBAAAlB,gBAAAA,EAAAA,IAAC,UAAK,UAAA,mBAAA,CAAgB;AAAA,gBACtBA,gBAAAA,EAAAA,IAACyD,MAAW,UAAA,qBAAA,CAAkB;AAAA,gBAC9BzD,gBAAAA,EAAAA,IAAC,UAAK,UAAA,gBAAA,CAAa;AAAA,gBACnBA,gBAAAA,EAAAA,IAACyD,MAAW,UAAA,mBAAA,CAAgB;AAAA,gBAC5BzD,gBAAAA,EAAAA,IAAC,UAAK,UAAA,aAAA,CAAU;AAAA,gBAChBA,gBAAAA,EAAAA;AAAAA,kBAACyG;AAAA,kBAAA;AAAA,oBACC,uBAAqB;AAAA,oBACrB,OAAM;AAAA,oBACN,UAAS;AAAA,oBACT,MAAMT;AAAA,oBACN,WAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ,GACF;AAAA,cACAhG,gBAAAA,EAAAA,IAAC,QAAG,UAAA,4CAAA,CAAyC;AAAA,YAAA,GAC/C;AAAA,YACAkB,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBACX,UAAA;AAAA,kBAAA;AAAA,kBAEClB,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACxC,GACF;AAAA,UAEAH,gBAAAA,EAAAA,KAACsF,IAAA,EAAY,OAAM,UAAS,WAAU,aACpC,UAAA;AAAA,YAAAxG,gBAAAA,MAAC0G,IAAA,EAAQ,MAAK,QAAO,OAAM,gBAAe,UAAA,yCAE1C;AAAA,mCAEC,MAAA,EACC,UAAA;AAAA,cAAAxF,gBAAAA,OAAC,MAAA,EACC,UAAA;AAAA,gBAAAlB,gBAAAA,EAAAA,IAAC,UAAK,UAAA,UAAA,CAAO;AAAA,gBACbA,gBAAAA,EAAAA,IAACyD,MAAW,UAAA,mBAAA,CAAgB;AAAA,gBAC5BzD,gBAAAA,EAAAA,IAAC,UAAK,UAAA,+CAAA,CAA4C;AAAA,gBAClDA,gBAAAA,EAAAA;AAAAA,kBAACyG;AAAA,kBAAA;AAAA,oBACC,uBAAqB;AAAA,oBACrB,OAAM;AAAA,oBACN,UAAS;AAAA,oBACT,MAAMP;AAAA,oBACN,WAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ,GACF;AAAA,cACAlG,gBAAAA,EAAAA,IAAC,QAAG,UAAA,6CAAA,CAA0C;AAAA,cAC9CA,gBAAAA,EAAAA,IAAC,QAAG,UAAA,+DAAA,CAEJ;AAAA,YAAA,GACF;AAAA,YACAkB,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAU;AAAA,gBACX,UAAA;AAAA,kBAAA;AAAA,kBAEClB,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACxC,EAAA,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ,GC/PMsF,KAAqB,CAACC,MACtBA,EAAU,UAAU,QAAQ,OAAOA,EAAU,UAAW,WACnDA,EAAU,SAEZ;AAAA,EACL,MAAM;AAAA,GAIGC,KAAoB,CAAC;AAAA,EAChC,WAAAD;AAAA,EACA,OAAAE;AAAA,EACA,IAAAC;AACF,MAIM;AACJ,QAAMC,IAAcL,GAAmBC,CAAS,GAC1C,CAACK,GAAQC,CAAS,IAAI3E,GAAS,EAAK,GAEpC4E,IACJH,EAAY,SAAS,YACpBI,GAAYJ,CAAW,KACtB,WAAWA,KACXA,EAAY,OAAO,SAAS,UAE1BK,IAA0B,GAC9BT,EAAU,eACRI,EAAY,eACXA,EAAY,SAAS,WAAWA,EAAY,OAAO,QACpDA,EAAY,QACZA,EAAY,YAAY,UACxBA,EAAY,YAAY;AAG5B,gCACGM,IAAA,EACC,UAAA;AAAA,IAAApG,gBAAAA,EAAAA,KAACqG,IAAA,EAAY,WAAU,WACrB,UAAA;AAAA,MAAArG,gBAAAA,OAAC,OAAA,EACC,UAAA;AAAA,QAAAlB,gBAAAA,EAAAA,IAACwH,IAAA,EAAU,WAAU,eAClB,UAAAL,IACCnH,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,MAAMkH,EAAU,CAACD,CAAM;AAAA,YAChC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV,UAAAjH,gBAAAA,EAAAA,IAAC,QAAA,EACE,UAAA8G,MAAU,SACT9G,gBAAAA,EAAAA;AAAAA,cAACyH;AAAA,cAAA;AAAA,gBACC,MAAMb,EAAU;AAAA,gBAChB,mBAAkB;AAAA,gBAClB,WAAU;AAAA,gBACV,MAAM,GAAGG,CAAE,IAAIH,EAAU,IAAI;AAAA,cAAA;AAAA,YAAA,IAG/BA,EAAU,KAAA,CAEd;AAAA,UAAA;AAAA,QAAA,IAGF5G,gBAAAA,EAAAA,IAAC,QAAA,EACE,UAAA8G,MAAU,SACT9G,gBAAAA,EAAAA;AAAAA,UAACyH;AAAA,UAAA;AAAA,YACC,MAAMb,EAAU;AAAA,YAChB,mBAAkB;AAAA,YAClB,WAAU;AAAA,YACV,MAAM,GAAGG,CAAE,IAAIH,EAAU,IAAI;AAAA,UAAA;AAAA,QAAA,IAG/BA,EAAU,KAAA,CAEd,GAEJ;AAAA,QACA5G,gBAAAA,EAAAA;AAAAA,UAAC0H;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,QAAQV;AAAA,YACR,YAAY;AAAA,cACVJ,EAAU,YACR5G,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,gBAAe,UAAA,YAAQ;AAAA,cAEzC4G,EAAU,SAAS,UAAUA,EAAU,KAAK;AAAA,cAC5CA,EAAU,WAAW,YAAYA,EAAU,OAAO;AAAA,YAAA;AAAA,UACpD;AAAA,QAAA;AAAA,MACF,GACF;AAAA,MACCS,KACCnG,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,yBACZ,UAAA;AAAA,QAAA0F,EAAU,eACT5G,gBAAAA,EAAAA,IAACqF,IAAA,EAAS,SAASuB,EAAU,aAAa,WAAU,YAAW;AAAA,QAEhEI,EAAY,eACXhH,gBAAAA,EAAAA;AAAAA,UAACqF;AAAAA,UAAA;AAAA,YACC,SAAS2B,EAAY;AAAA,YACrB,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAGbA,EAAY,SAAS,WAAWA,EAAY,OAAO,6BACjDW,IAAA,EAAW,QAAQX,EAAY,MAAM,KAAA,CAAM,IAE5CA,EAAY,8BAASW,IAAA,EAAW,QAAQX,EAAY,MAAM;AAAA,QAE5DhH,gBAAAA,EAAAA,IAAC4H,IAAA,EAAwB,QAAQZ,EAAA,CAAa;AAAA,MAAA,EAAA,CAChD;AAAA,IAAA,GAEJ;AAAA,IAECG,KACCnH,gBAAAA,EAAAA,IAAC6H,IAAA,EAAY,WAAU,cACrB,UAAA7H,gBAAAA,EAAAA;AAAAA,MAACa;AAAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAMqG,EAAU,CAACD,CAAM;AAAA,QAChC,cAAW;AAAA,QAEV,UAAAA,0BAAUa,IAAA,EAAU,MAAM,IAAI,IAAK9H,gBAAAA,EAAAA,IAAC+H,IAAA,EAAS,MAAM,GAAA,CAAI;AAAA,MAAA;AAAA,IAAA,GAE5D;AAAA,IAGDZ,KACCnH,gBAAAA,EAAAA;AAAAA,MAACgI,GAAY;AAAA,MAAZ;AAAA,QACC,aAAa;AAAA,QACb,MAAMf;AAAA,QACN,cAAcC;AAAA,QACd,WAAWjH,GAAG,UAAU,CAACgH,KAAU,UAAU;AAAA,QAE7C,gCAACe,GAAY,SAAZ,EAAoB,SAAO,IAC1B,gCAACT,IAAA,EACC,UAAAvH,gBAAAA,EAAAA;AAAAA,UAACuF;AAAA,UAAA;AAAA,YACC,QACE,WAAWyB,IAAcA,EAAY,QAAQA;AAAA,UAAA;AAAA,QAAA,GAGnD,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ,GCtJaiB,KAAgB,CAAC;AAAA,EAC5B,SAAAtC;AAAA,EACA,OAAAmB;AAAA,EACA,YAAAoB;AAAA,EACA,IAAAnB;AACF,MAKM;AACJ,QAAMoB,IAAmBD,EAAW;AAAA,IAAK,CAACvH,GAAGyH,MAC3CzH,EAAE,aAAayH,EAAE,WAAW,IAAIzH,EAAE,WAAW,KAAK;AAAA,EAAA;AAGpD,SACEO,gBAAAA,EAAAA,KAAAmH,YAAA,EACE,UAAA;AAAA,IAAAnH,gBAAAA,EAAAA;AAAAA,MAACoH;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,IAAI,GAAGvB,CAAE,IAAID,CAAK;AAAA,QAClB,WAAU;AAAA,QAET,UAAA;AAAA,UAAAnB,4BAAY4C,IAAA,EAAgB,UAAA;AAAA,YAAA5C;AAAA,YAAQ;AAAA,UAAA,GAAU;AAAA,UAC9CmB,MAAU,WAAW,YAAY,GAAGA,CAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,0BAE3C0B,IAAA,EACC,UAAAxI,gBAAAA,MAACyI,IAAA,EAAW,WAAU,QACpB,UAAAzI,gBAAAA,EAAAA,IAAC0I,IAAA,EAAU,WAAU,iBAClB,YAAiB,IAAI,CAAC9B,GAAW+B,MAChCzH,gBAAAA,EAAAA,KAACmH,IAAA,EACE,UAAA;AAAA,MAAAM,IAAQ,2BAAMC,IAAA,CAAA,CAAc;AAAA,MAC7B5I,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,WAAAD;AAAA,UACA,IAAAG;AAAA,UACA,OAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,EAAA,GANa,GAAGF,EAAU,IAAI,IAAIA,EAAU,EAAE,EAOhD,CACD,EAAA,CACH,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GClDaiC,KAAc,CAAkC;AAAA,EAC3D,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,MAAAC;AACF,IAII,OAAO;AACT,QAAM,CAACC,GAAWC,CAAY,IAAI3G,GAAS,EAAK,GAC1C4G,IAAMC,GAAiB,IAAI;AAEjC,SAAAC,GAAU,MAAM;AACd,UAAMC,IAAW,IAAI;AAAA,MACnB,CAAC,CAACC,CAAK,MAAM;AACX,QAAKA,KACLL,EAAaK,EAAM,cAAc;AAAA,MACnC;AAAA,MACA,EAAE,YAAAT,GAAY,WAAAC,GAAW,MAAAC,EAAA;AAAA,IAAK,GAG1BQ,IAAiBL,EAAI;AAE3B,QAAKK;AAEL,aAAAF,EAAS,QAAQE,CAAc,GAExB,MAAMF,EAAS,UAAUE,CAAc;AAAA,EAChD,GAAG,CAACR,GAAMF,GAAYC,CAAS,CAAC,GAEzB,CAACI,GAAKF,CAAS;AACxB,GCtBaQ,KAAkB,MAC7BzJ,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,oIAAA,CAAoI,GCTxI0J,KAAqB,CAAC;AAAA,EACjC,MAAAC;AAAA,EACA,WAAA9J;AACF,MAIEG,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGF,iCAAC,QAAA,EACE,UAAA;AAAA,MAAA8J,EAAK,MAAM;AAAA,CAAI,EAAE,SAAS,4BAAOF,IAAA,EAAgB;AAAA,MACjDE;AAAA,IAAA,EAAA,CACH;AAAA,EAAA;AACF,GCbWC,KAAO,CAAC,EAAE,UAAAC,GAAU,WAAAhK,QAC/BG,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,aAAU;AAAA,IACV,WAAWC;AAAAA,MACT;AAAA,MACA;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGD,UAAAgK;AAAA,EAAA;AACH,GAGWC,KAAO,CAAC,EAAE,UAAAD,GAAU,WAAAhK,QAC/BG,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,aAAU;AAAA,IACV,WAAWC;AAAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGD,UAAAgK;AAAA,EAAA;AACH,GAGWE,KAAO,CAAC,EAAE,UAAAF,GAAU,WAAAhK,QAC/BG,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,aAAU;AAAA,IACV,WAAWC;AAAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGD,UAAAgK;AAAA,EAAA;AACH,GAGWG,KAAS,CAAC,EAAE,UAAAH,GAAU,WAAAhK,QACjCG,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,aAAU;AAAA,IACV,WAAWC;AAAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAGD,UAAAgK;AAAA,EAAA;AACH,GC5CWI,KAA6B,CAAC;AAAA,EACzC,MAAAN;AAAA,EACA,YAAAO;AAAA,EACA,qBAAAC;AACF,MAMIjJ,gBAAAA,EAAAA,KAACkJ,IAAA,EACC,UAAA;AAAA,EAAApK,gBAAAA,EAAAA,IAACqK,IAAA,EAAgB,WAAU,6CACzB,UAAAnJ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,IAAAlB,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,eAAc,UAAA,wBAAoB;AAAA,IAClDA,gBAAAA,EAAAA,IAACsK,IAAA,EACC,UAAApJ,gBAAAA,EAAAA,KAACqJ,IAAA,EACC,UAAA;AAAA,MAAAvK,gBAAAA,EAAAA,IAACwK,MAAe,SAAO,IACrB,gCAACC,IAAA,EAAS,MAAM,IAAI,EAAA,CACtB;AAAA,MACAzK,gBAAAA,EAAAA,IAAC0K,MAAe,UAAA,kDAAA,CAEhB;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAAA,EACA1K,gBAAAA,EAAAA,IAAC2K,IAAA,EAAgB,WAAU,OACxB,UAAAR,KAAuB,CAACD,IACvBlK,gBAAAA,EAAAA,IAAC0J,IAAA,EAAmB,MAAAC,EAAA,CAAY,IAEhC3J,gBAAAA,EAAAA;AAAAA,IAACyG;AAAAA,IAAA;AAAA,MACC,UAAQ;AAAA,MACR,UAAS;AAAA,MACT,MAAAkD;AAAA,MACA,WAAU;AAAA,IAAA;AAAA,EAAA,EACZ,CAEJ;AAAA,GACF,GC3CSiB,KAA0B,CAAC;AAAA,EACtC,QAAApH;AAAA,EACA,SAAAF;AAAA,EACA,WAAAuH;AAAA,EACA,UAAAC;AACF,MAKM;AACJ,QAAMC,IAAUF,EAAU,YACtB,OAAO,CAACG,MAAMA,EAAE,OAAO,QAAQ,EAChC,KAAK,CAACrK,GAAGyH,MAAOzH,EAAE,YAAY,CAACyH,EAAE,WAAW,KAAK,CAAE,EACnD,IAAI,CAAC4C,OAAO;AAAA,IACX,MAAMA,EAAE;AAAA,IACR,cACEA,EAAE,QAAQ,WAAWA,EAAE,UAAU,KAAK,CAACC,MAAMA,EAAE,KAAK,GAAG,SAAS;AAAA,IAClE,eAAeD,EAAE,YAAY;AAAA,IAC7B,YAAYA,EAAE,YAAY;AAAA,IAC1B,MAAMA,EAAE,QAAQ,SAAS,UAAUA,EAAE,QAAQ,OAAO,OAAOA,EAAE,QAAQ;AAAA,IACrE,MAAMA,EAAE,QAAQ,QAAQ;AAAA,EAAA,EACxB,GAEEE,IAAcL,EAAU,YAC1B,OAAO,CAACG,MAAMA,EAAE,OAAO,OAAO,EAC/B,KAAK,CAACrK,GAAGyH,MAAOzH,EAAE,YAAY,CAACyH,EAAE,WAAW,KAAK,CAAE,EACnD,IAAI,CAAC4C,OAAO;AAAA,IACX,MAAMA,EAAE;AAAA,IACR,eAAeA,EAAE,YAAY;AAAA,IAC7B,YAAYA,EAAE,YAAY;AAAA,IAC1B,MAAMA,EAAE,QAAQ,SAAS,UAAUA,EAAE,QAAQ,OAAO,OAAOA,EAAE,QAAQ;AAAA,IACrE,MAAMA,EAAE,QAAQ,QAAQ;AAAA,IACxB,cAAcA,EAAE,QAAQ;AAAA,EAAA,EACxB,GAEEG,IAAaN,EAAU,YACzB,OAAO,CAACG,MAAMA,EAAE,OAAO,MAAM,EAC9B,IAAI,CAACA,OAAO;AAAA,IACX,MAAMA,EAAE;AAAA,IACR,cAAcA,EAAE,QAAQ;AAAA,EAAA,EACxB;AAEJ,SACEhL,gBAAAA,EAAAA;AAAAA,IAACoL;AAAA,IAAA;AAAA,MACC,QAAA5H;AAAA,MACA,SAAAF;AAAA,MACA,QAAQuH,EAAU;AAAA,MAClB,KAAKA,EAAU;AAAA,MACf,SAAAE;AAAA,MACA,aAAAG;AAAA,MACA,YAAAC;AAAA,MACA,UAAAL;AAAA,IAAA;AAAA,EAAA;AAGN,GCrDMO,KAAmB,CAACzJ,MAAuC;AAC/D,MAAIA,KAAS;AACb,WAAI,OAAOA,KAAU,WAAiBA,EAAM,KAAA,IACrC,KAAK,UAAUA,GAAO,MAAM,CAAC;AACtC,GAEM0J,KAAc,CAACC,MACdA,IACDA,EAAU,SAAS,OAAO,IAAU,SACpCA,EAAU,SAAS,MAAM,IAAU,QACnCA,EAAU,SAAS,OAAO,IAAU,SAEE;AAAA,EACxC,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,YAAY;AAAA,EACZ,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EAERA,CAAS,KAAK,UAfR,SAkCZC,KAAkB,CAAC;AAAA,EAC9B,SAAAhG;AAAA,EACA,aAAAiG;AAAA,EACA,iBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,YAAA1B;AAAA,EACA,qBAAAC;AACF,MAA4B;AAE1B,QAAM0B,IAAkBrG,EAAQmG,CAAoB,GAC9Cb,IAAWe,GAAiB,YAAY,CAAA,GACxCC,IAAkBhB,IAAWc,CAAoB,GAEjDG,IAAmBV,GAAiBS,GAAiB,KAAK,GAC1DE,IAAWV,GAAYO,GAAiB,SAAS;AAEvD,SACE3K,gBAAAA,EAAAA,KAAAmH,YAAA,EACE,UAAA;AAAA,IAAAnH,gBAAAA,EAAAA,KAACyJ,IAAA,EAAgB,WAAU,OACxB,UAAA;AAAA,MAAAmB,GAAiB,gBAChB9L,gBAAAA,MAAC,OAAA,EAAI,WAAU,OACb,UAAAkB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM4K,EAAgB;AAAA,UACtB,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,WAAU;AAAA,UACX,UAAA;AAAA,YAAA;AAAA,YAEC9L,gBAAAA,EAAAA,IAACqB,IAAA,EAAiB,WAAU,4CAAA,CAA4C;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EAC1E,CACF,IACE8I,KAAuB,CAACD,KAAc6B,IACxC/L,gBAAAA,EAAAA,IAAC0J,IAAA,EAAmB,MAAMqC,GAAkB,IAC1CA,IACF/L,gBAAAA,EAAAA;AAAAA,QAACyG;AAAA,QAAA;AAAA,UACC,UAAQ;AAAA,UACR,UAAAuF;AAAA,UACA,WAAU;AAAA,UACV,MAAMD;AAAA,QAAA;AAAA,MAAA,IAGR/L,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,kEAAiE,UAAA,8CAEhF;AAAA,MAED8L,GAAiB,eAChB9L,gBAAAA,EAAAA,IAAC,SAAI,WAAU,sDACZ,YAAgB,YAAA,CACnB;AAAA,IAAA,GAEJ;AAAA,IACAkB,gBAAAA,EAAAA,KAAC+K,IAAA,EAAkB,WAAU,WAC1B,UAAA;AAAA,MAAAR,KACCzL,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,2CACZ,UAAAyL,GACH;AAAA,OAEAX,EAAS,WAAW,KAAKtF,EAAQ,WAAW,MAC5CtE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,QAAAlB,gBAAAA,MAAC,OAAA,EAAI,WAAU,qCACZ,UAAAwF,EAAQ,SAAS,IAChBxF,gBAAAA,EAAAA;AAAAA,UAACsE;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAOqH,EAAqB,SAAA;AAAA,YAC5B,UAAU,CAACpL,MACTmL,IAAkB;AAAA,cAChB,kBAAkB,OAAOnL,EAAE,OAAO,KAAK;AAAA,cACvC,cAAc;AAAA,YAAA,CACf;AAAA,YAGF,UAAAiF,EAAQ,IAAI,CAACJ,GAAGuD,MACf3I,gBAAAA,EAAAA;AAAAA,cAACuE;AAAA,cAAA;AAAA,gBAEC,OAAOoE,EAAM,SAAA;AAAA,gBAEZ,UAAAvD,EAAE;AAAA,cAAA;AAAA,cAHEA,EAAE;AAAA,YAAA,CAKV;AAAA,UAAA;AAAA,QAAA,IAGHpF,gBAAAA,EAAAA;AAAAA,UAAC2D;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAQ;AAAA,YAEP,UAAA6B,EAAQ,CAAC,GAAG;AAAA,UAAA;AAAA,QAAA,GAGnB;AAAA,QACCsF,EAAS,SAAS,KACjB9K,gBAAAA,EAAAA;AAAAA,UAACsE;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAOsH,EAAqB,SAAA;AAAA,YAC5B,UAAU,CAACrL,MACTmL,IAAkB;AAAA,cAChB,kBAAkBC;AAAA,cAClB,cAAc,OAAOpL,EAAE,OAAO,KAAK;AAAA,YAAA,CACpC;AAAA,YAGF,UAAAuK,EAAS,IAAI,CAACoB,GAASvD,MACtB3I,gBAAAA,EAAAA;AAAAA,cAACuE;AAAA,cAAA;AAAA,gBAOC,OAAOoE,EAAM,SAAA;AAAA,gBAEZ,UAAAuD,EAAQ,WACPA,EAAQ,QACRA,EAAQ,eACR,WAAWvD,IAAQ,CAAC;AAAA,cAAA;AAAA,cAVpBuD,EAAQ,WACRA,EAAQ,QACRA,EAAQ,eACR,WAAWvD,IAAQ,CAAC;AAAA,YAAA,CASzB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ,GClKawD,KAAwB,CAAC;AAAA,EACpC,SAAA3G;AAAA,EACA,iBAAAkG;AAAA,EACA,YAAAxB;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAwB;AAAA,EACA,sBAAAC;AACF,MAWMpG,EAAQ,WAAW,IAAU,OAG/BxF,gBAAAA,MAACgI,MAAY,WAAU,qBAAoB,aAAW,IACpD,UAAA9G,gBAAAA,EAAAA,KAACkJ,IAAA,EACC,UAAA;AAAA,EAAApK,gBAAAA,EAAAA,IAACqK,IAAA,EAAgB,WAAU,6CACzB,UAAAnJ,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,uCACd,UAAA;AAAA,IAAAlB,gBAAAA,EAAAA,IAACoM,IAAA,EAAmB,SAAO,IACzB,UAAAlL,gBAAAA,EAAAA;AAAAA,MAACL;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,UAAA;AAAA,UAAAb,gBAAAA,EAAAA,IAACqM,IAAA,EAAmB,WAAU,0DAAA,CAA0D;AAAA,UACxFrM,gBAAAA,EAAAA,IAACiC,IAAA,EAAmB,WAAU,wDAAA,CAAwD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAE1F;AAAA,IAAqB;AAAA,EAAA,EAAA,CAEvB,EAAA,CACF;AAAA,wBACCqK,IAAA,EACC,UAAAtM,gBAAAA,EAAAA;AAAAA,IAACwL;AAAA,IAAA;AAAA,MACC,sBAAAG;AAAA,MACA,sBAAAC;AAAA,MACA,SAAApG;AAAA,MACA,iBAAAkG;AAAA,MACA,YAAAxB;AAAA,MACA,qBAAAC;AAAA,IAAA;AAAA,EAAA,EACF,CACF;AAAA,EAAA,CACF,EAAA,CACF,GCzCSoC,KAAsB,CAAC;AAAA,EAClC,WAAA7H;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAuF;AAAA,EACA,qBAAAC;AAAA,EACA,aAAAqC;AACF,MAMM;AACJ,QAAM,CAACC,GAA0BC,CAA2B,IAAInK;AAAA,IAC9DoC,KAAoBD,EAAU,CAAC,GAAG;AAAA,EAAA,GAE9B,CAACiH,GAAsBgB,CAAuB,IAAIpK,GAAS,CAAC,GAC5D,CAACqJ,GAAsBgB,CAAuB,IAAIrK,GAAS,CAAC;AAElE,SAAA8G,GAAU,MAAM;AACd,IAAK1E,KAEL+H,EAA4B/H,CAAgB;AAAA,EAC9C,GAAG,CAACA,CAAgB,CAAC,GAErB0E,GAAU,MAAM;AACd,IAAKoD,MAELE,EAAwB,CAAC,GACzBC,EAAwB,CAAC;AAAA,EAC3B,GAAG,CAACH,CAAwB,CAAC,GAG3BzM,gBAAAA,MAACgI,MAAY,WAAU,qBAAoB,aAAW,IACpD,UAAA9G,gBAAAA,EAAAA,KAACkJ,IAAA,EACC,UAAA;AAAA,IAAAlJ,gBAAAA,EAAAA,KAACmJ,IAAA,EAAgB,WAAU,6CACzB,UAAA;AAAA,MAAAnJ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,QAAAlB,gBAAAA,EAAAA,IAACoM,IAAA,EAAmB,SAAO,IACzB,UAAAlL,gBAAAA,EAAAA;AAAAA,UAACL;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,cAAW;AAAA,YAEX,UAAA;AAAA,cAAAb,gBAAAA,EAAAA,IAACqM,IAAA,EAAmB,WAAU,0DAAA,CAA0D;AAAA,cACxFrM,gBAAAA,EAAAA,IAACiC,IAAA,EAAmB,WAAU,wDAAA,CAAwD;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAE1F;AAAA,QAAqB;AAAA,QAEpBuK,KACCxM,gBAAAA,EAAAA,IAACsK,IAAA,EACC,UAAApJ,gBAAAA,OAACqJ,IAAA,EACC,UAAA;AAAA,UAAAvK,gBAAAA,EAAAA,IAACwK,MAAe,SAAO,IACrB,gCAACC,IAAA,EAAS,MAAM,IAAI,EAAA,CACtB;AAAA,UACAzK,gBAAAA,EAAAA,IAAC0K,MAAe,UAAA,kDAAA,CAEhB;AAAA,QAAA,EAAA,CACF,EAAA,CACF;AAAA,MAAA,GAEJ;AAAA,MACA1K,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,mDACb,UAAAA,gBAAAA,EAAAA;AAAAA,QAACsE;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAOmI;AAAA,UACP,UAAU,CAAClM,MAAMmM,EAA4BnM,EAAE,OAAO,KAAK;AAAA,UAE1D,UAAAmE,EAAU,IAAI,CAAClE,MACdR,gBAAAA,EAAAA;AAAAA,YAACuE;AAAA,YAAA;AAAA,cAEC,OAAO/D,EAAS;AAAA,cAEf,UAAAA,EAAS;AAAA,YAAA;AAAA,YAHLA,EAAS;AAAA,UAAA,CAKjB;AAAA,QAAA;AAAA,MAAA,EACH,CACF;AAAA,IAAA,GACF;AAAA,0BACC8L,IAAA,EACC,UAAAtM,gBAAAA,EAAAA;AAAAA,MAACwL;AAAA,MAAA;AAAA,QACC,sBAAAG;AAAA,QACA,sBAAAC;AAAA,QACA,iBAAiB,CAACiB,MAAa;AAC7B,UAAAF,EAAwBE,EAAS,gBAAgB,GACjDD,EAAwBC,EAAS,YAAY;AAAA,QAC/C;AAAA,QACA,SACEnI,EAAU,KAAK,CAACM,MAAMA,EAAE,eAAeyH,CAAwB,GAC3D,WAAW,CAAA;AAAA,QAEjB,YAAAvC;AAAA,QACA,qBAAAC;AAAA,MAAA;AAAA,IAAA,EACF,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;ACnHA,IAAI2C,KAAU,CAACC,GAAaC,MAAS;AACnC,QAAMC,IAAeF,EAAYC,EAAK,IAAI;AAC1C,SAAIC,MAAiB,UACnBF,EAAYC,EAAK,IAAI,IAAIA,EAAK,OACvBD,KAEL,MAAM,QAAQE,CAAY,KAC5BA,EAAa,KAAKD,EAAK,KAAK,GACrBD,MAETA,EAAYC,EAAK,IAAI,IAAI,CAACC,GAAcD,EAAK,KAAK,GAC3CD;AACT,GCZIG,KAAgC,IAChCC,KAAoB;AAAA,GACpBC,IAAc,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,YAAY,EAAE,QAAAC,GAAQ,MAAAC,EAAI,IAAK,CAAA,GAAI;AACjC,SAAK,iBAAiB,CAAA,GACtB,KAAK,OAAO,CAAA,GACZ,KAAK,uBAAuBJ,IAC5B,KAAK,WAAWC,IAIhB,KAAK,aAAa,CAACI,GAAMC,IAAmB,MAEnC,GADQ,KAAK,qBAAqB,OAAOA,CAAgB,CAChD,GAAGD,CAAI,IAKzB,KAAK,UAAU,CAACA,GAAMC,MAAqB;AACzC,YAAMC,IAAU,KAAK,WAAWF,GAAMC,CAAgB;AACtD,WAAK,KAAK,QAAQC,CAAO;AAAA,IAC3B,GAIA,KAAK,OAAO,CAACF,GAAMC,MAAqB;AACtC,YAAMC,IAAU,KAAK,WAAWF,GAAMC,CAAgB;AACtD,WAAK,KAAK,KAAKC,CAAO;AAAA,IACxB,GAIA,KAAK,QAAQ,MAAM;AACjB,WAAK,KAAK,KAAK,EAAE;AAAA,IACnB,GAIA,KAAK,OAAO,MAAM;AAChB,YAAMC,IAAiB,KAAK,KAAK,KAAK,KAAK,QAAQ;AAEnD,aADuB,KAAK,eAAe,OAAO,CAACX,GAAaY,MAAaA,EAASZ,CAAW,GAAGW,CAAc;AAAA,IAEpH,GAKA,KAAK,mBAAmB,CAACE,MAAkB;AACzC,WAAK,iBAAiB,CAAC,GAAG,KAAK,gBAAgBA,CAAa;AAAA,IAC9D,GACA,KAAK,uBAAuBP,KAAUH,IACtC,KAAK,WAAWI,KAAQH;AAAA,EAC1B;AACF;;wBCzDAU,KAAiB,SAAUC,GAAI;AAC9B,WAAO,OAAO,UAAU,SAAS,KAAKA,CAAE,MAAM;AAAA,EAC/C;;;;wBCFAC,KAAiB,SAAU9C,GAAG;AAC7B,QAAItI,IAAO,OAAOsI;AAClB,WAAOA,MAAM,SAAStI,MAAS,YAAYA,MAAS;AAAA,EACrD;;;;wBCHA,OAAO,eAAeqL,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,UAAkB,CAACC,MAAW,OACzB,sBAAsBA,CAAM,EAC5B,OAAO,CAACC,MAAc,OAAO,UAAU,qBAAqB,KAAKD,GAAQC,CAAS,CAAC;;;;;;ACHxF,QAAML,IAAWM,GAAA,GACXJ,IAAQK,GAAA,GACRC,IAAwBC,GAAA,EAA+C;AAE7E,SAAAC,KAAiB,CAACC,GAAKC,GAAMC,MAAQ;AACpC,UAAMC,IAAO,CAAA;AAEb,YAAQ,SAASC,EAAUJ,GAAKC,GAAMC,GAAK;AAC1C,MAAAD,IAAOA,KAAQ,CAAA,GACfA,EAAK,SAASA,EAAK,UAAU,KAC7BC,IAAMA,KAAO;AAEb,UAAIG;AAEJ,MAAIJ,EAAK,yBAAyB,SACjCI,IAAS;AAAA,QACR,SAAS;AAAA;AAAA,QACT,gBAAgB;AAAA;AAAA,QAChB,KAAAH;AAAA,QACA,QAAQA,IAAMD,EAAK;AAAA,UAGpBI,IAAS;AAAA,QACR,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA;AAIV,YAAMC,IAAmB,CAAAC,MAAU;AAClC,YAAIN,EAAK,yBAAyB;AACjC,iBAAOM;AAGR,cAAMC,IAAWD,EACf,QAAQ,IAAI,OAAOF,EAAO,SAAS,GAAG,GAAG,EAAE,EAC3C,QAAQ,IAAI,OAAOA,EAAO,gBAAgB,GAAG,GAAG,GAAG,EACnD,QAAQ,IAAI,OAAOA,EAAO,MAAM,MAAMA,EAAO,QAAQ,GAAG,GAAG,EAAE;AAE/D,eAAIG,EAAS,UAAUP,EAAK,uBACpBO,IAGDD,EACL,QAAQ,IAAI,OAAOF,EAAO,UAAU,MAAMA,EAAO,gBAAgB,GAAG,GAAG;AAAA,CAAI,EAC3E,QAAQ,IAAI,OAAOA,EAAO,KAAK,GAAG,GAAGH,CAAG,EACxC,QAAQ,IAAI,OAAOG,EAAO,QAAQ,GAAG,GAAGH,IAAMD,EAAK,MAAM;AAAA,MAC9D;AAEE,UAAIE,EAAK,QAAQH,CAAG,MAAM;AACzB,eAAO;AAGR,UAAIA,KAAQ,QAEX,OAAOA,KAAQ,YACf,OAAOA,KAAQ,aACf,OAAOA,KAAQ,cACf,OAAOA,KAAQ,YACfX,EAASW,CAAG;AACZ,eAAO,OAAOA,CAAG;AAGlB,UAAIA,aAAe;AAClB,eAAO,aAAaA,EAAI,YAAW,CAAE;AAGtC,UAAI,MAAM,QAAQA,CAAG,GAAG;AACvB,YAAIA,EAAI,WAAW;AAClB,iBAAO;AAGR,QAAAG,EAAK,KAAKH,CAAG;AAEb,cAAMS,IAAM,MAAMJ,EAAO,UAAUL,EAAI,IAAI,CAACU,GAAIC,MAAM;AACrD,gBAAMC,IAAMZ,EAAI,SAAS,MAAMW,IAAIN,EAAO,UAAU,MAAMA,EAAO;AACjE,cAAIjN,IAAQgN,EAAUM,GAAIT,GAAMC,IAAMD,EAAK,MAAM;AACjD,iBAAIA,EAAK,cACR7M,IAAQ6M,EAAK,UAAUD,GAAKW,GAAGvN,CAAK,IAE9BiN,EAAO,SAASjN,IAAQwN;AAAA,QACnC,CAAI,EAAE,KAAK,EAAE,IAAIP,EAAO,MAAM;AAE3B,eAAAF,EAAK,IAAG,GAEDG,EAAiBG,CAAG;AAAA,MAC9B;AAEE,UAAIlB,EAAMS,CAAG,GAAG;AACf,YAAIa,IAAU,OAAO,KAAKb,CAAG,EAAE,OAAOH,EAAsBG,CAAG,CAAC;AAMhE,YAJIC,EAAK,WACRY,IAAUA,EAAQ,OAAO,CAAAH,MAAMT,EAAK,OAAOD,GAAKU,CAAE,CAAC,IAGhDG,EAAQ,WAAW;AACtB,iBAAO;AAGR,QAAAV,EAAK,KAAKH,CAAG;AAEb,cAAMS,IAAM,MAAMJ,EAAO,UAAUQ,EAAQ,IAAI,CAACH,GAAIC,MAAM;AACzD,gBAAMC,IAAMC,EAAQ,SAAS,MAAMF,IAAIN,EAAO,UAAU,MAAMA,EAAO,gBAC/DS,IAAW,OAAOJ,KAAO,UACzBK,IAAY,CAACD,KAAY,wBAAwB,KAAKJ,CAAE,GACxDM,IAAMF,KAAYC,IAAYL,IAAKN,EAAUM,GAAIT,CAAI;AAC3D,cAAI7M,IAAQgN,EAAUJ,EAAIU,CAAE,GAAGT,GAAMC,IAAMD,EAAK,MAAM;AACtD,iBAAIA,EAAK,cACR7M,IAAQ6M,EAAK,UAAUD,GAAKU,GAAItN,CAAK,IAE/BiN,EAAO,SAAS,OAAOW,CAAG,IAAI,OAAO5N,IAAQwN;AAAA,QACxD,CAAI,EAAE,KAAK,EAAE,IAAIP,EAAO,MAAM;AAE3B,eAAAF,EAAK,IAAG,GAEDG,EAAiBG,CAAG;AAAA,MAC9B;AAIE,aAFAT,IAAM,OAAOA,CAAG,EAAE,QAAQ,WAAW,CAAAvD,MAAKA,MAAM;AAAA,IAAO,QAAQ,KAAK,GAEhEwD,EAAK,iBAAiB,MACzBD,IAAMA,EAAI,QAAQ,MAAM,KAAK,GACtB,IAAIA,CAAG,QAGfA,IAAMA,EAAI,QAAQ,SAAS,KAAM,GAC1B,IAAIA,CAAG;AAAA,IAChB,GAAIA,GAAKC,GAAMC,CAAG;AAAA,EAClB;;;;AC9HA,SAASe,GAAaC,GAAU5N,IAAU,IAAI;AAC5C,QAAM,EAAE,WAAA6N,IAAY,KAAK,YAAAC,IAAa,MAAM,gBAAAC,IAAiB,GAAI,IAAK/N;AAEtE,SAAO,CAAC,GADY4N,EAAS,SAAQ,CACf,EAAE,IAAI,CAACI,MACvBA,MAAO,OACF,GAAGF,CAAU,MACXE,MAAO,MACT,GAAGF,CAAU,MACXE,MAAO;AAAA,IACZD,IACK,GAAGD,CAAU,MAEfE,IACEA,MAAO,OACT,GAAGF,CAAU,MACXE,MAAO,OACZD,IACK,GAAGD,CAAU,MAEfE,IACEA,MAAOF,IACTA,IAAaA,IACXE,MAAOH,IACTC,IAAaD,IACXG,IAAK,OAAOA,IAAK,MACnB,KAAK,UAAUA,CAAE,EAAE,MAAM,GAAG,EAAE,IAEhCA,CACR,EAAE,KAAK,EAAE;AACZ;AACA,IAAIC,KAAwB,CAACnO,MAAU6N,GAAa7N,GAAO,EAAE,WAAW,KAAK,GACzEoO,KAAwB,CAACpO,MAAU6N,GAAa7N,GAAO,EAAE,WAAW,KAAK,GAGzEqO,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAC,GAAQ,SAAAC,GAAS,YAAAC,GAAY,YAAAC,GAAY,UAAAC,QAAe;AAClE,UAAM,EAAE,MAAAC,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAW;AAC7C,IAAAmD,EAAK,+BAA+B,GACpCC,EAAK,GACLD,EAAK,iDAAiDL,EAAO,YAAW,CAAE,KAAK,GAC/EK,EAAK,mDAAmD,GACxDA,EAAK,uCAAuCJ,CAAO,KAAK;AACxD,UAAMpF,IAAU,OAAO,KAAKqF,CAAU;AACtC,WAAIrF,EAAQ,WACVyF,EAAK,GACLD,EAAK,oCAAoC,GACzCxF,EAAQ,QAAQ,CAAC0F,MAAW;AAC1B,MAAAF,EAAK,yCAAyCE,CAAM,KAAKT,GAAsBI,EAAWK,CAAM,CAAC,CAAC,KAAK;AAAA,IACzG,CAAC,GACDF,EAAK,qDAAqD,IAExDF,EAAW,WACbG,EAAK,GACLD,EAAK,0CAA0CF,EAAW,MAAM,KAAK,IAEnEC,EAAS,SACXE,EAAK,GACLD,EAAK,6CAA6C,KAAK,UAAUD,EAAS,IAAI,CAAC,IAAI,IAErFE,EAAK,GACLD,EAAK,wCAAwC,GACtCjD,EAAI;AAAA,EACb;AACF,GAGIlI,KAAI;AAAA,EACN,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,SAAA6K;AAAA,EACJ;AACA,GAGIS,KAAgB,CAAC3F,GAASjF,MAAS,OAAO,KAAKiF,CAAO,EAAE,KAAK,CAAC0F,MAAWA,EAAO,YAAW,MAAO3K,EAAK,YAAW,CAAE,GACpH6K,KAAY,CAAC5F,GAASjF,MAAS;AACjC,QAAM8K,IAAaF,GAAc3F,GAASjF,CAAI;AAC9C,MAAK8K;AAGL,WAAO7F,EAAQ6F,CAAU;AAC3B,GACIC,KAAY,CAAC9F,GAASjF,MAAS,EAAQ4K,GAAc3F,GAASjF,CAAI,GAClEgL,KAAiB,CAACC,MAAa,CAAC,oBAAoB,sBAAsB,aAAa,eAAe,OAAO,EAAE;AAAA,EACjH,CAACpO,MAASoO,EAAS,QAAQpO,CAAI,IAAI;AACrC,GAGIqO,KAAU,MAAM;AAAA,EAClB,YAAYlL,GAAM;AAChB,SAAK,OAAO,IACZ,KAAK,WAAW,MAAM,IAAI,KAAK,IAAI,IACnC,KAAK,OAAOA;AAAA,EACd;AACF,GACImL,KAAO,MAAM;AAAA,EACf,YAAYC,GAAM;AAChB,SAAK,OAAO,IACZ,KAAK,WAAW,MAAM,0BAA0B,KAAK,IAAI,MACzD,KAAK,OAAOA;AAAA,EACd;AACF,GACIC,KAAS,CAACzO,MACRA,MAAU,SACL,OAELA,MAAU,OACL,SAEFA,EAAM,YAAY,KAAK,YAAW,GAEvC0O,KAAW,CAAC1O,MACVA,MAAU,SACL,KACEyO,GAAOzO,CAAK,MAAM,WACpB,OAAO,KAAKA,CAAK,EAAE,WAAW,IAEhC,IAEL2O,KAAc,CAAC3O,OACjB,OAAO,KAAKA,CAAK,EAAE,OAAO,CAACuI,MAAMmG,GAAS1O,EAAMuI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAACA,MAAM;AAClE,SAAOvI,EAAMuI,CAAC;AAChB,CAAC,GACMvI,IAEL4O,KAAW,CAACC,GAAS7O,MAAU;AACjC,QAAM8O,IAAU,IAAI,OAAOD,CAAO;AAClC,SAAO7O,EAAM,QAAQ,OAAO;AAAA,EAC5B8O,CAAO,EAAE;AACX,GACIC,KAAU,CAACC,MAAO;AACpB,UAAQP,GAAOO,CAAE,GAAC;AAAA,IAChB,KAAK;AACH,aAAO,IAAIA,EAAG,QAAQ,MAAM,KAAK,CAAC;AAAA,IACpC,KAAK;AACH,aAAOA,EAAG,SAAQ;AAAA,IACpB,KAAK;AACH,aAAOA,EAAG,SAAQ;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,KAAKA,EAAG,MAAM;AAAA,IACvB,KAAK,UAAU;AACb,YAAMC,IAAM,OAAO,KAAKD,CAAE,EAAE,OAAO,CAAC3E,GAAayC,MAAQ;AACvD,cAAMhB,IAAM8C,GAAS9B,EAAI,SAAS,GAAGiC,GAAQC,EAAGlC,CAAG,CAAC,CAAC;AACrD,eAAO,GAAGzC,CAAW,IAAIyC,CAAG,IAAIhB,CAAG;AAAA;AAAA,MAErC,GAAG,EAAE,EAAE,KAAI;AACX,aAAO,IAAI8C,GAAS,GAAGK,CAAG,CAAC;AAAA,IAC7B;AAAA,IACA,KAAK,SAAS;AACZ,YAAMC,IAAMF,EAAG,OAAO,CAAC3E,GAAanL,MAAU,GAAGmL,CAAW,IAAI0E,GAAQ7P,CAAK,CAAC,IAAI,EAAE,EAAE,KAAI;AAC1F,aAAO,IAAI0P,GAAS,GAAGM,CAAG,CAAC;AAAA,IAC7B;AAAA,IACA;AACE,aAAOF,EAAG,SAAQ;AAAA,EACxB;AACA,GACIG,KAAW;AAAA,EACb,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAAC,GAAU,QAAA5B,GAAQ,UAAAI,GAAU,KAAA5P,GAAK,YAAA2P,EAAU,GAAIvO,MAAY;AACrE,UAAM,EAAE,MAAAyO,GAAM,MAAAjD,MAAS,IAAIF,EAAY,EAAE,QAAQtL,GAAS,QAAQ,GAC5DiQ,IAAU,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,QAAQ,SAAS;AAE3E,QADA7B,IAASA,EAAO,YAAW,GACvB,CAAC6B,EAAQ,SAAS7B,CAAM;AAC1B,aAAAK,EAAK,sBAAsB,GACpBjD,EAAI;AAEb,UAAM0E,IAAU;AAAA,MACd,SAAS3B;AAAA,MACT,gBAAgByB;AAAA,IACtB;AACI,YAAQxB,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH;AACE,UAAA0B,EAAQ,cAAc,IAAI,IAAIhB,GAAQ,MAAM,GAC5CgB,EAAQ,aAAa,IAAI1B,EAAS;AAClC,gBAAMG,IAASC,GAAcsB,EAAQ,SAAS,cAAc;AAC5D,UAAIvB,KACF,OAAOuB,EAAQ,QAAQvB,CAAM;AAAA,QAEjC;AACA;AAAA,MACF,KAAK;AACH;AACE,UAAAuB,EAAQ,aAAa,IAAI1B,EAAS;AAClC,gBAAMG,IAASC,GAAcsB,EAAQ,SAAS,cAAc;AAC5D,UAAIvB,KACF,OAAOuB,EAAQ,QAAQvB,CAAM;AAAA,QAEjC;AACA;AAAA,MACF,KAAK;AACH;AACE,UAAAuB,EAAQ,OAAO1B,EAAS;AACxB,gBAAMG,IAASC,GAAcsB,EAAQ,SAAS,cAAc;AAC5D,UAAIvB,KACF,OAAOuB,EAAQ,QAAQvB,CAAM;AAAA,QAEjC;AACA;AAAA,MACF,KAAK,uBAAuB;AAC1B,YAAIH,EAAS,QAAQ;AACnB,UAAA0B,EAAQ,YAAY1B,EAAS,OAAO,IAAI,CAAC2B,MACnCA,EAAM,YAAY,CAACA,EAAM,QACpB;AAAA,YACL,MAAMA,EAAM;AAAA,YACZ,SAAS,IAAIhB,GAAKgB,EAAM,QAAQ;AAAA,UAChD,IAEmB;AAAA,YACL,MAAMA,EAAM;AAAA,YACZ,SAASA,EAAM;AAAA,UAC7B,CACW;AACD,gBAAMxB,IAASC,GAAcsB,EAAQ,SAAS,cAAc;AAC5D,UAAIvB,KACF,OAAOuB,EAAQ,QAAQvB,CAAM;AAAA,QAEjC;AACA;AAAA,MACF;AAAA,IACN;AACI,YAAQE,GAAUqB,EAAQ,SAAS,QAAQ,GAAC;AAAA,MAC1C,KAAK;AACH;AACE,UAAAA,EAAQ,SAAS,IAAIhB,GAAQ,MAAM;AACnC,gBAAMP,IAASC,GAAcsB,EAAQ,SAAS,QAAQ;AACtD,UAAIvB,KACF,OAAOuB,EAAQ,QAAQvB,CAAM;AAAA,QAEjC;AACA;AAAA,IACR;AAEI,QADAF,EAAK;AAAA,CAA2C,GAC5Ca,GAASC,GAAYW,CAAO,CAAC;AAC/B,MAAAzB,EAAK,WAAWL,CAAM,KAAKxP,CAAG,IAAI;AAAA,SAC7B;AACL,YAAM8Q,IAAU,KAAKtB,EAAO,SAASxP,EAAI,QACnCwR,IAAkBZ,GAASE,GAASC,GAAQJ,GAAYW,CAAO,CAAC,CAAC;AACvE,MAAAzB,EAAK,WAAWL,CAAM,KAAKxP,CAAG,KAAKwR,CAAe,GAAG;AAAA,IACvD;AACA,WAAO5E,EAAI;AAAA,EACb;AACF,GAGI6E,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,UAAAN;AAAA,EACJ;AACA,GAGIO,KAA0B,CAAC/B,MAAe;AAC5C,MAAIgC,IAAkB1B,GAAUN,GAAY,iBAAiB;AAC7D,MAAI,CAACgC;AACH,WAAO,CAAA;AAET,QAAMC,IAAoB;AAAA,IACxB,MAAM;AAAA,IACN,SAAS;AAAA,EACb,GACQP,IAAU,CAAA;AAChB,SAAI,OAAOM,KAAoB,aAC7BA,IAAkB,CAACA,CAAe,IAEpCA,EAAgB,QAAQ,CAACE,MAAmB;AAC1C,IAAAA,EAAe,MAAM,GAAG,EAAE,QAAQ,CAACC,MAAa;AAC9C,YAAMC,IAAQ,eAAe,KAAKD,CAAQ;AAC1C,UAAIC,GAAO;AACT,cAAMvC,IAASoC,EAAkBG,EAAM,CAAC,CAAC;AACzC,QAAIvC,KACF6B,EAAQ,KAAK7B,CAAM;AAAA,MAEvB;AAAA,IACF,CAAC;AAAA,EACH,CAAC,GACM6B;AACT,GACIW,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,YAAArC,GAAY,UAAAC,GAAU,QAAAJ,GAAQ,SAAAC,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,MAAAjD,MAAS,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AAC9D,IAAA8B,EAAK,gCAAgC;AACrC,QAAIoC,IAAgB;AACpB,UAAMC,IAAU,EAAQvC,EAAW,QAC7BwC,IAAuBT,GAAwB/B,CAAU;AAC/D,KAAIuC,KAAWC,EAAqB,YAClCF,IAAgB,iBAChBpC,EAAK,2CAA2C,GAChDA,EAAK,GAAG,GACJqC,KACFrC,EAAK,uBAAuB,CAAC,GAE3BsC,EAAqB,UACvBtC,EAAK,4BAA4BsC,EAAqB,KAAK,KAAK,CAAC,KAAK,CAAC,GAEzEtC,EAAK,IAAI,IAEXA,EAAK,+BAA+BoC,CAAa,IAAI,GACrDpC,EAAK,sCAAsC,GAC3CA,EAAK,GAAG;AACR,UAAMwB,IAAU,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,QAAQ,WAAW,OAAO;AACpF,IAAA7B,IAASA,EAAO,YAAW,GACvBA,KAAU6B,EAAQ,SAAS7B,CAAM,IACnCA,IAAS,cAAcA,EAAO,CAAC,CAAC,GAAGA,EAAO,UAAU,CAAC,EAAE,YAAW,CAAE,KAEpEA,IAAS,mBAAmBA,CAAM,MAEpCK,EAAK,YAAYL,CAAM,KAAK,CAAC,GAC7BK,EAAK,yBAAyBJ,CAAO,OAAO,CAAC;AAC7C,UAAMpF,IAAU,OAAO,KAAKsF,CAAU,EAAE,OAAO,CAACI,MAAW;AACzD,cAAQA,EAAO,YAAW,GAAE;AAAA,QAC1B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACjB;AAAA,IACI,CAAC;AASD,QARI1F,EAAQ,WACVwF,EAAK,aAAa,CAAC,GACnBA,EAAK,KAAK,CAAC,GACXxF,EAAQ,QAAQ,CAACyE,MAAQ;AACvB,MAAAe,EAAK,MAAMf,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,QAAQ,CAAC;AAAA,IACtE,CAAC,GACDe,EAAK,MAAM,CAAC,IAEVD,EAAS,MAAM;AACjB,YAAMwC,IAAcxC,EAAS;AAC7B,cAAQwC,GAAW;AAAA,QACjB,KAAK;AACH,UAAAvC,EAAK,sEAAsE,CAAC,GAC5EA,EAAK,KAAK,CAAC,GACXD,EAAS,QAAQ,QAAQ,CAAC2B,MAAU;AAClC,YAAA1B,EAAK,MAAM0B,EAAM,IAAI,OAAOA,EAAM,KAAK,QAAQ,CAAC;AAAA,UAClD,CAAC,GACD1B,EAAK,OAAO,CAAC;AACb;AAAA,QACF,KAAK;AACH,UAAAA,EAAK,0CAA0C,CAAC,GAChDA,EAAK,KAAK,CAAC,GACXD,EAAS,QAAQ,QAAQ,CAAC2B,MAAU;AAClC,YAAA1B,EAAK,qBAAqB,KAAK,UAAU0B,EAAM,SAAS,EAAE,CAAC,KAAK,CAAC,GACjE1B,EAAK,KAAK,CAAC,GACXA,EAAK,aAAa,CAAC,GACnBA,EAAK,KAAK,CAAC,GACP0B,EAAM,eACR1B,EAAK,2CAA2C0B,EAAM,WAAW,OAAO,CAAC,GAE3E1B,EAAK,uEAAuE,CAAC,GAC7EA,EAAK,KAAK,CAAC,GACXA,EAAK,WAAW0B,EAAM,IAAI,MAAM,CAAC,GAC7BA,EAAM,YACR1B,EAAK,eAAe0B,EAAM,QAAQ,MAAM,CAAC,GAE3C1B,EAAK,KAAK,CAAC,GACXA,EAAK,KAAK,CAAC,GACXA,EAAK,MAAM,CAAC;AAAA,UACd,CAAC,GACDA,EAAK,MAAM,CAAC;AACZ;AAAA,QACF;AACE,UAAAA,EAAK,+BAA+B,KAAK,UAAUD,EAAS,QAAQ,EAAE,CAAC,KAAK,CAAC,GAC7EC,EAAK,KAAK,CAAC,GACXA,EAAK,aAAa,CAAC,GACnBA,EAAK,KAAK,CAAC,GACXA,EAAK,2CAA2CuC,CAAW,MAAM,CAAC,GAClEvC,EAAK,KAAK,CAAC,GACXA,EAAK,KAAK,CAAC;AACX;AAAA,MACV;AAAA,IACI;AACA,WAAAA,EAAK,IAAI,GACTA,EAAK,wDAAwD,GAC7DA,EAAK,GAAG,GACRA,EAAK,uCAAuC,CAAC,GAC7CA,EAAK,0DAA0D,CAAC,GAChEA,EAAK,4BAA4B,CAAC,GAClCA,EAAK,GAAG,GACDjD,EAAI;AAAA,EACb;AACF;AAGA,SAASyF,GAAMC,GAAG;AAChB,SAAOA,EAAE,CAAC,EAAE,YAAW,IAAKA,EAAE,MAAM,CAAC,EAAE,YAAW;AACpD;AACA,IAAIC,KAAY;AAAA,EACd,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,QAAA/C,GAAQ,SAAAC,GAAS,YAAAC,GAAY,SAAAwC,GAAS,UAAAtC,GAAU,QAAA4C,QAAa;AACvE,UAAM,EAAE,MAAA3C,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAW;AAItC,QAAI,CAHsB,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,QAAQ,SAAS,EAAE;AAAA,MACrF8C,EAAO,YAAW;AAAA,IACxB;AAEM,aAAO;AAET,IAAAK,EAAK;AAAA;AAAA,CAAsB,GAC3BA,EAAK,wCAAwCJ,CAAO,KAAK,GACzDI,EAAK,uCAAuC,GAC5CA,EAAK,oCAAoC;AACzC,UAAM4C,IAAc7C,EAAS,YAAYA,EAAS,aAAa;AAgB/D,YAfI6C,KACF5C,EAAK,yCAAyC,GAEhD,OAAO,KAAKH,CAAU,EAAE,QAAQ,CAACZ,MAAQ;AACvC,UAAIc,EAAS,YAAYd,EAAI,YAAW,MAAO,kBAAkBc,EAAS,MAAM;AAC9E,QAAI6C,KAAe7C,EAAS,YAC1BC,EAAK,2BAA2BD,EAAS,QAAQ,IAAI;AAEvD;AAAA,MACF;AACA,MAAAC,EAAK,sBAAsBf,CAAG,OAAOQ,GAAsBI,EAAWZ,CAAG,CAAC,CAAC,KAAK;AAAA,IAClF,CAAC,GACDoD,EAAQ,QAAQ,CAAC,EAAE,MAAA9M,GAAM,OAAAlE,EAAK,MAAO;AACnC,MAAA2O,EAAK,sBAAsBzK,CAAI,OAAOkK,GAAsBpO,CAAK,CAAC,OAAOsR,EAAO,QAAQ,OAAOA,EAAO,IAAI,KAAK;AAAA,IACjH,CAAC,GACO5C,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,YAAI,CAACA,EAAS,OAAQ;AACtB,QAAAA,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAIA,EAAM,WACR1B,EAAK,oBAAoB0B,EAAM,IAAI,OAAOA,EAAM,QAAQ,KAAK,IAE7D1B,EAAK,yBAAyB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAAA,QAEnE,CAAC;AACD;AAAA,MACF,KAAK;AACH,YAAI,CAAC3B,EAAS,OAAQ;AACtB,QAAAA,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,yBAAyB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAAA,QACjE,CAAC;AACD;AAAA,MACF,KAAK,oBAAoB;AACvB,YAAI,CAAC3B,EAAS,KAAM;AACpB,cAAM8C,IAAO,KAAK,UAAU9C,EAAS,IAAI;AACzC,QAAAC,EAAK,uBAAuB6C,CAAI,WAAW;AAC3C;AAAA,MACF;AAAA,MACA;AACE,YAAI,CAAC9C,EAAS,KAAM;AACpB,QAAAC,EAAK,0BAA0BD,EAAS,IAAI,OAAOA,EAAS,QAAQ,KAAK;AAAA,IACjF;AACI,WAAAC,EAAK,+BAA+BwC,GAAM7C,CAAM,CAAC;AAAA,CACpD,GACGK,EAAK;AAAA,CAA+C,GAC7CjD,EAAI;AAAA,EACb;AACF,GAGI+F,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,YAAAX;AAAA,IACA,WAAAO;AAAA,EACJ;AACA,GAGIK,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAAhD,GAAU,QAAAJ,GAAQ,YAAAG,GAAY,SAAAF,EAAO,GAAIrO,IAAU,OAAO;AACpE,UAAM,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQ,KAAK,GACvD,EAAE,iBAAAmG,IAAkB,IAAM,aAAAC,IAAc,IAAO,WAAAC,IAAY,IAAM,SAAAC,IAAU,GAAE,IAAK5R,GAClF6R,IAAmBH,IAAc,QAAQ,KACzCnG,IAASkG,IAAkB,IAAI,GAC/BK,IAAa,MAAM;AACvB,MAAIJ,MACFjD,EAAK,mBAAmBlD,CAAM,GAC9BkD,EAAK,cAAclD,IAAS,CAAC,GAC7BkD,EAAK,KAAKlD,CAAM;AAAA,IAEpB;AACA,IAAIkG,MACFhD,EAAK,cAAc,GACnBC,EAAK,GACLD,EAAK,UAAU,GACfA,EAAK,SAASlD,CAAM,GAChBqG,IAAU,KACZnD,EAAK,UAAUlD,CAAM,GAEnBiD,EAAS,QACXC,EAAK,aAAalD,CAAM,GAE1BkD,EAAK,cAAclD,CAAM,GACrBoG,KACFlD,EAAK,QAAQlD,CAAM,GAErBkD,EAAK,GAAG,GACRC,EAAK,GACLD,EAAK,eAAe,GACpBC,EAAK;AAEP,UAAMqD,IAAaH,IAAU,GACvBI,IAAYD,GACZE,IAASD,IAAY,WAAW;AACtC,WAAIA,MACFvD,EAAK,0BAA0BlD,CAAM,GACjCwG,KACFtD,EAAK,0BAA0BmD,CAAO,oBAAoBrG,IAAS,CAAC,GAEtEkD,EAAK,KAAKlD,CAAM,GAChBmD,EAAK,IAEPD,EAAK,WAAWJ,CAAO,KAAK9C,CAAM,GAClCmD,EAAK,GACDF,EAAS,QACXC,EAAK,gCAAgC,KAAK,UAAUD,EAAS,IAAI,CAAC,KAAKjD,CAAM,GAC7EmD,EAAK,GACLD,EAAK,QAAQoD,CAAgB,wBAAwBzD,CAAM,oBAAoB7C,CAAM,GACrFmD,EAAK,MAELD,EAAK,QAAQoD,CAAgB,wBAAwBzD,CAAM,gBAAgB7C,CAAM,GACjFmD,EAAK,IAEPoD,EAAU,GACN,OAAO,KAAKvD,CAAU,EAAE,WAC1B,OAAO,KAAKA,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,mBAAmBf,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAMnC,CAAM;AAAA,IACtF,CAAC,GACDmD,EAAK,IAEPD,EAAK,QAAQoD,CAAgB,OAAOI,CAAM,YAAY1G,CAAM,GAC5DuG,EAAU,GACNH,MACFjD,EAAK,GACLD,EAAK,0BAA0BlD,CAAM,GACrCkD,EAAK,SAASoD,CAAgB,4BAA4BtG,CAAM,GAChEuG,EAAU,IAEZpD,EAAK,GACDiD,KACFlD,EAAK,6BAA6BlD,CAAM,GAEtCkG,MACF/C,EAAK,GACLD,EAAK,GAAG,IAEHjD,EAAI;AAAA,EACb;AACF,GAGI0G,KAAK;AAAA,EACP,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,QAAAV;AAAA,EACJ;AACA,GAGIW,KAAO;AAAA,GACPC,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAhE,GAAQ,SAAAC,GAAS,QAAA+C,GAAQ,aAAAiB,GAAa,YAAA9D,GAAY,UAAAC,EAAQ,GAAIxO,MAAY;AACpF,UAAM2M,IAAO;AAAA,MACX,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,MAAS,IAAIF,EAAY,EAAE,QAAQ,IAAI,MAAM6G,GAAI,CAAE,GAClEG,IAAa3F,EAAK,cAAc0B,IAAU+C,EAAO;AACvD,IAAA3C,EAAK,GAAGL,CAAM,IAAIkE,CAAU,IAAID,CAAW,EAAE;AAC7C,UAAME,IAAa,OAAO,KAAKhE,CAAU;AAQzC,QAPAgE,EAAW,QAAQ,CAAC7E,MAAQ;AAC1B,YAAM8E,IAAiB9E,EAAI,cAAc,QAAQ,cAAc,CAAC9M,MAAUA,EAAM,aAAa;AAC7F,MAAA6N,EAAK,GAAG+D,CAAc,KAAKjE,EAAWb,CAAG,CAAC,EAAE;AAAA,IAC9C,CAAC,GACGf,EAAK,YAAY,CAAC4F,EAAW,SAAS,MAAM,KAC9C9D,EAAK,SAAS2C,EAAO,IAAI,EAAE,GAEzBzE,EAAK,qBAAqB6B,EAAS,QAAQ,CAAC+D,EAAW,SAAS,gBAAgB,GAAG;AAErF,YAAME,IADU,IAAI,YAAW,EACR,OAAOjE,EAAS,IAAI,EAAE,OAAO,SAAQ;AAC5D,MAAAC,EAAK,mBAAmBgE,CAAM,EAAE;AAAA,IAClC;AACA,IAAA/D,EAAK;AACL,UAAMgE,IAAgBlH,EAAI,GACpBmH,IAAcnE,EAAS,QAAQ;AACrC,WAAO,GAAGkE,CAAa,GAAGP,EAAI,GAAGQ,CAAW;AAAA,EAC9C;AACF,GAGIC,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,WAAWR;AAAA,EACf;AACA,GAGIS,KAAY;AAAA,EACd,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAzE,GAAQ,YAAAG,GAAY,UAAAC,GAAU,SAAAH,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AACrE,WAAA8B,EAAK,wDAAwD,GAC7DA,EAAK,mBAAmBL,EAAO,YAAW,CAAE,OAAOC,CAAO,IAAI,GAC9D,OAAO,KAAKE,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,eAAef,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAM,CAAC;AAAA,IAC7E,CAAC,GACGc,EAAS,QACXC,EAAK,YAAY,KAAK,UAAUD,EAAS,IAAI,CAAC,KAAK,CAAC,GAEtDC,EAAK,cAAc,CAAC,GACpBA,EAAK,0BAA0B,CAAC,GAChCA,EAAK,oCAAoC,CAAC,GAC1CA,EAAK,YAAY,CAAC,GAClBC,EAAK,GACLD,EAAK,iBAAiB,GACfjD,EAAI;AAAA,EACb;AACF,GAGIsH,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,YAAAvE,GAAY,SAAAF,GAAS,QAAAD,GAAQ,UAAAI,EAAQ,GAAIxO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,MAAAjD,MAAS,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AAC9D,WAAA8B,EAAK,gDAAgD,GACrDA,EAAK,oBAAoBJ,CAAO,OAAO,CAAC,GACxC,OAAO,KAAKE,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,YAAYf,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAM,CAAC;AAAA,IAC1E,CAAC,GACGc,EAAS,OACXC;AAAA,MACE,YAAYL,EAAO,YAAW,CAAE,0CAA0C,KAAK,UAAUI,EAAS,IAAI,CAAC;AAAA,MACvG;AAAA,IACR,IAEMC,EAAK,YAAYL,EAAO,YAAW,CAAE,2CAA2C,CAAC,GAEnFK,EAAK,aAAa,CAAC,GACnBA;AAAA,MACE;AAAA,IACN,GACIA,EAAK,sCAAsC,GACpCjD,EAAI;AAAA,EACb;AACF,GAGIuH,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAAvE,GAAU,QAAAJ,GAAQ,SAAAC,GAAS,YAAAE,EAAU,GAAIvO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/DsD,IAAU,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,MAAM,GAC1D+C,IAAkB,CAAC,QAAQ,OAAO,UAAU,OAAO;AACzD,WAAAvE,EAAK,2CAA2C,GAChDC,EAAK,GACDF,EAAS,SACPA,EAAS,WACXC,EAAK,0CAA0CD,EAAS,QAAQ,cAAcA,EAAS,QAAQ,KAAK,IAEpGC,EAAK,0CAA0CD,EAAS,QAAQ,KAAK,GAEvEC,EAAK,oDAAoD,KAAK,UAAUD,EAAS,IAAI,CAAC,IAAI,IAE5FC,EAAK,yCAAyC,GAC9CA,EAAK,SAASJ,CAAO,MAAM,CAAC,GACvB4B,EAAQ,SAAS7B,EAAO,YAAW,CAAE,IAM/B4E,EAAgB,SAAS5E,EAAO,YAAW,CAAE,IAClDI,EAAS,OACXC,EAAK,IAAIL,EAAO,YAAW,CAAE,UAAU,CAAC,IAExCK,EAAK,IAAIL,EAAO,YAAW,CAAE,UAAU,CAAC,IAG1CK,EAAK,IAAIL,EAAO,YAAW,CAAE,MAAM,CAAC,IAZhCI,EAAS,OACXC,EAAK,YAAYL,EAAO,YAAW,CAAE,YAAY,CAAC,IAElDK,EAAK,YAAYL,EAAO,YAAW,CAAE,YAAY,CAAC,GAWtD,OAAO,KAAKG,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,eAAef,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAM,CAAC;AAAA,IAC7E,CAAC,GACDe,EAAK,aAAa,CAAC,GACnBC,EAAK,GACLD,EAAK,wDAAwD,GACtDjD,EAAI;AAAA,EACb;AACF,GAGIyH,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAA7E,GAAQ,YAAAG,GAAY,UAAAC,GAAU,SAAAH,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAwL,GAAM,MAAAiD,MAAS,IAAInD,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AAE9D,WADgB,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,QAAQ,SAAS,EAC9D,SAASyB,EAAO,YAAW,CAAE,IAGxCK,EAAK,2CAA2CL,EAAO,YAAW,CAAE,KAAKC,CAAO,IAAI,IAFpFI,EAAK,yDAAyDL,EAAO,YAAW,CAAE,MAAMC,CAAO,IAAI,GAIrG,OAAO,KAAKE,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,YAAYf,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAM,CAAC;AAAA,IAC1E,CAAC,GACGc,EAAS,QACXC,EAAK,SAAS,KAAK,UAAUD,EAAS,IAAI,CAAC,KAAK,CAAC,GAEnDC,EAAK,gBAAgB,CAAC,GACfjD,EAAI;AAAA,EACb;AACF,GAGI0H,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,WAAAL;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAAAE;AAAA,EACJ;AACA,GACIE,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,YAAA5E,GAAY,QAAAH,GAAQ,KAAAxP,GAAK,UAAAoR,GAAU,UAAAxB,EAAQ,GAAIxO,MAAY;AACrE,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,GAAM,kBAAA4H,EAAgB,IAAK,IAAI9H,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AACvF,IAAA8B,EAAK,4BAA4B,GACjCC,EAAK;AACL,UAAM2E,IAAiB;AAAA,MACrB,QAAAjF;AAAA,MACA,KAAAxP;AAAA,IACN;AAOI,YANI,OAAO,KAAKoR,CAAQ,EAAE,WACxBqD,EAAe,SAASrD,IAEtB,OAAO,KAAKzB,CAAU,EAAE,WAC1B8E,EAAe,UAAU9E,IAEnBC,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAIA,EAAS,WACXC,EAAK,8CAA8C,GACnDD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,sBAAsB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAAA,QAC9D,CAAC,GACDzB,EAAK,GACL2E,EAAe,OAAO,kBACtBD,EAAiB,CAACvL,MAASA,EAAK,QAAQ,oBAAoB,gBAAgB,CAAC;AAE/E;AAAA,MACF,KAAK;AACH,QAAI2G,EAAS,YACX6E,EAAe,OAAO7E,EAAS;AAEjC;AAAA,MACF,KAAK;AACH,YAAI,CAACA,EAAS;AACZ;AAEF,QAAAC,EAAK,8BAA8B,GACnCD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,gBAAgB0B,EAAM,IAAI,OAAOA,EAAM,SAASA,EAAM,YAAY,EAAE,KAAK;AAAA,QAChF,CAAC,GACDzB,EAAK,GACL2E,EAAe,OAAO;AACtB;AAAA,MACF;AACE,QAAI7E,EAAS,SACX6E,EAAe,OAAO7E,EAAS;AAAA,IAEzC;AACI,UAAM8E,IAAeC,GAAiBF,GAAgB;AAAA,MACpD,QAAQ;AAAA,MACR,sBAAsB;AAAA,IAC5B,CAAK,EAAE,QAAQ,YAAY,MAAM;AAC7B,WAAA5E,EAAK,mBAAmB6E,CAAY,GAAG,GACvC5E,EAAK,GACLD,EAAK,OAAO,GACZA,EAAK,qBAAqB,CAAC,GAC3BA,EAAK,+BAA+B,CAAC,GACrCA,EAAK,+BAA+B,CAAC,GACrCA,EAAK,MAAM,CAAC,GACZA,EAAK,6BAA6B,CAAC,GACnCA,EAAK,yBAAyB,CAAC,GAC/BA,EAAK,OAAO,CAAC,GACNjD,EAAI;AAAA,EACb;AACF,GACIgI,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAApF,GAAQ,YAAAG,GAAY,UAAAC,GAAU,SAAAH,EAAO,GAAIoF,MAAc;AACjE,UAAM9G,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,GAAG8G;AAAA,IACT,GACU,EAAE,OAAA/E,GAAO,MAAAlD,GAAM,MAAAiD,EAAI,IAAK,IAAInD,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/D3M,IAAU;AAAA,MACd,QAAAoO;AAAA,IACN;AAOI,YANI,OAAO,KAAKG,CAAU,EAAE,WAC1BvO,EAAQ,UAAUuO,IAEhB5B,EAAK,gBAAgB,SACvB3M,EAAQ,cAAc2M,EAAK,cAErB6B,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAxO,EAAQ,OAAOwO,EAAS,YAAYA,EAAS,YAAYA,EAAS;AAClE;AAAA,MACF,KAAK;AACH,QAAIA,EAAS,YACXxO,EAAQ,OAAOwO,EAAS;AAE1B;AAAA,MACF,KAAK;AACH,YAAI,CAACA,EAAS;AACZ;AAEF,cAAMkF,IAAoB9E,GAAcL,GAAY,cAAc;AAClE,QAAImF,KACF,OAAOnF,EAAWmF,CAAiB,GAErCjF,EAAK,8BAA8B,GACnCD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,gBAAgB0B,EAAM,IAAI,OAAOA,EAAM,SAASA,EAAM,YAAY,EAAE,KAAK;AAAA,QAChF,CAAC,GACDzB,EAAK;AACL;AAAA,MACF;AACE,QAAIF,EAAS,SACXxO,EAAQ,OAAOwO,EAAS;AAAA,IAElC;AACI,WAAIxO,EAAQ,WAAW,CAAC,OAAO,KAAKA,EAAQ,OAAO,EAAE,UACnD,OAAOA,EAAQ,SAEjByO;AAAA,MACE,mBAAmB8E,GAAiBvT,GAAS;AAAA,QAC3C,QAAQ2M,EAAK;AAAA,QACb,sBAAsB;AAAA;AAAA;AAAA;AAAA,QAItB,WAAW,CAACR,GAAQwH,GAAUC,MAAmB;AAC/C,cAAID,MAAa,QAAQ;AACvB,gBAAInF,EAAS,aAAa;AACxB,qBAAO,uBAAuBoF,CAAc;AACvC,gBAAIpF,EAAS,aAAa;AAC/B,qBAAO,kBAAkBoF,CAAc;AAAA,UAE3C;AACA,iBAAOA;AAAA,QACT;AAAA,MACR,CAAO,CAAC;AAAA,IACR,GACIlF,EAAK,GACDF,EAAS,UAAUA,EAAS,aAAa,0BAC3CC,EAAK,sBAAsB,GAC3BC,EAAK,IAEPD,EAAK,UAAUJ,CAAO,aAAa,GACnCI,EAAK,sCAAsC,CAAC,GAC5CA,EAAK,4CAA4C,CAAC,GAClDA,EAAK,sCAAsC,CAAC,GACrCjD,EAAI;AAAA,EACb;AACF,GACIqI,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,SAAAxF,GAAS,QAAAD,GAAQ,YAAAG,GAAY,UAAAC,EAAQ,GAAIxO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/DmH,IAAW;AAAA,MACf,OAAO;AAAA,MACP,aAAa;AAAA,MACb,KAAKzF;AAAA,MACL,QAAAD;AAAA,MACA,SAASG;AAAA,IACf;AACI,YAAQC,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAsF,EAAS,OAAOtF,EAAS,YAAYA,EAAS,YAAYA,EAAS;AACnE;AAAA,MACF,KAAK;AACH,QAAAsF,EAAS,cAAc,IACvBA,EAAS,OAAOtF,EAAS;AACzB;AAAA,MACF,KAAK;AACH,YAAI,CAACA,EAAS;AACZ;AAUF,YARAC,EAAK,8BAA8B,GACnCD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,gBAAgB0B,EAAM,IAAI,OAAOA,EAAM,SAASA,EAAM,YAAY,EAAE,KAAK;AAAA,QAChF,CAAC,GACD2D,EAAS,cAAc,IACvBA,EAAS,cAAc,IACvBA,EAAS,WAAW,uBACpBA,EAAS,OAAO,UACZ/E,GAAUR,GAAY,cAAc,KAClCM,GAAUN,GAAY,cAAc,GAAG,SAAS,UAAU,GAAG;AAC/D,gBAAMO,IAAaF,GAAcL,GAAY,cAAc;AAC3D,UAAIO,KACF,OAAOgF,EAAS,QAAQhF,CAAU;AAAA,QAEtC;AAEF,QAAAJ,EAAK;AACL;AAAA,MACF;AACE,QAAIF,EAAS,SACXsF,EAAS,OAAOtF,EAAS;AAAA,IAEnC;AACI,UAAMuF,IAAsBR,GAAiBO,GAAU,EAAE,QAAQnH,EAAK,QAAQ,EAAE,QAAQ,YAAY,MAAM;AAC1G,WAAA8B,EAAK,oBAAoBsF,CAAmB,GAAG,GAC/CrF,EAAK,GACLD,EAAK,6CAA6C,GAClDA,EAAK,0BAA0B,CAAC,GAChCA,EAAK,KAAK,GACHjD,EAAI;AAAA,EACb;AACF,GACIwI,KAAM;AAAA,EACR,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAAxF,GAAU,YAAAD,GAAY,QAAAH,GAAQ,SAAAC,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAD,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AACrE,YAAQ6B,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAC;AAAA,UACE,+BAA+B8E,GAAiB/E,EAAS,SAAS;AAAA,YAChE,QAAQ7B,EAAK;AAAA,UACzB,CAAW,CAAC;AAAA,QACZ,GACQ+B,EAAK;AACL;AAAA,MACF,KAAK;AACH,YAAI,CAACF,EAAS;AACZ;AAMF,YAJAC,EAAK,8BAA8B,GACnCD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,gBAAgB0B,EAAM,IAAI,OAAOA,EAAM,SAASA,EAAM,YAAY,EAAE,KAAK;AAAA,QAChF,CAAC,GACGpB,GAAUR,GAAY,cAAc,KAClCM,GAAUN,GAAY,cAAc,GAAG,SAAS,UAAU,GAAG;AAC/D,gBAAMO,IAAaF,GAAcL,GAAY,cAAc;AAC3D,UAAIO,KACF,OAAOP,EAAWO,CAAU;AAAA,QAEhC;AAEF,QAAAJ,EAAK;AACL;AAAA,MACF;AACE,QAAAD,EAAK,gBAAgBD,EAAS,OAAO,IAAIA,EAAS,IAAI,MAAM,MAAM,GAAG,GACrEE,EAAK;AAAA,IACb;AACI,WAAAD,EAAK,mCAAmC,GACpC9B,EAAK,QACP8B,EAAK,6BAA6B,GAEpCC,EAAK,GACLD,EAAK,wDAAwD,GAC7DA,EAAK,wCAAwC,CAAC,GAC9CA,EAAK,mCAAmC,CAAC,GACzCA,EAAK,KAAK,CAAC,GACXA,EAAK,KAAK,GACVC,EAAK,GACLD,EAAK,aAAaL,CAAM,OAAOC,CAAO,KAAK,GAC3C,OAAO,KAAKE,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,yBAAyBf,CAAG,OAAOO,GAAsBM,EAAWb,CAAG,CAAC,CAAC,KAAK;AAAA,IACrF,CAAC,GACDgB,EAAK,GACLD,EAAK,iBAAiB,GACfjD,EAAI;AAAA,EACb;AACF,GAGIyI,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,KAAAD;AAAA,IACA,OAAAb;AAAA,IACJ,OAAIK;AAAAA,IACA,QAAAK;AAAA,EACJ;AACA,GAGIK,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAA1F,EAAQ,GAAIiF,MAAc;AACpC,UAAM9G,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG8G;AAAA,IACT;AACI,QAAIU,IAAU;AACd,YAAQ3F,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAA2F,IAAU3F,EAAS,YAAYA,EAAS,YAAYA,EAAS;AAC7D;AAAA,MACF,KAAK;AACH,QAAIA,EAAS,YACX2F,IAAU3F,EAAS;AAErB;AAAA,MACF,KAAK;AACH,YAAI,CAACA,EAAS;AACZ;AAEF,cAAM4F,IAAmB,CAAA;AACzB,QAAA5F,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAAiE,EAAiBjE,EAAM,IAAI,IAAIA,EAAM;AAAA,QACvC,CAAC,GACDgE,IAAUC;AACV;AAAA,MACF;AACE,QAAI5F,EAAS,SACX2F,IAAU3F,EAAS;AAAA,IAE7B;AACI,WAAI,OAAO2F,IAAY,OAAeA,MAAY,KACzC,iBAEF,KAAK,UAAUA,GAAS,MAAMxH,EAAK,MAAM;AAAA,EAClD;AACF,GAGI0H,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,QAAQH;AAAA,EACZ;AACA,GAGII,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAA9F,GAAU,SAAAH,GAAS,QAAAD,GAAQ,YAAAG,EAAU,GAAIvO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAlD,GAAM,MAAAiD,EAAI,IAAK,IAAInD,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/DsD,IAAU,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,MAAM,GAC1D+C,IAAkB,CAAC,QAAQ,OAAO,UAAU,OAAO;AACzD,WAAAvE,EAAK,6BAA6B,GAClCC,EAAK,GACDF,EAAS,SACPA,EAAS,WACXC,EAAK,oCAAoCD,EAAS,QAAQ,cAAcA,EAAS,QAAQ,IAAI,IAE7FC,EAAK,oCAAoCD,EAAS,QAAQ,IAAI,GAEhEC,EAAK,4CAA4C,KAAK,UAAUD,EAAS,IAAI,CAAC,GAAG,IAEnFC,EAAK,iCAAiC,GACtCA,EAAK,SAASJ,CAAO,MAAM,CAAC,GACvB4B,EAAQ,SAAS7B,EAAO,YAAW,CAAE,IAM/B4E,EAAgB,SAAS5E,EAAO,YAAW,CAAE,IAClDI,EAAS,OACXC,EAAK,IAAIL,EAAO,YAAW,CAAE,UAAU,CAAC,IAExCK,EAAK,IAAIL,EAAO,YAAW,CAAE,UAAU,CAAC,IAG1CK,EAAK,IAAIL,EAAO,YAAW,CAAE,MAAM,CAAC,IAZhCI,EAAS,OACXC,EAAK,YAAYL,EAAO,YAAW,CAAE,YAAY,CAAC,IAElDK,EAAK,YAAYL,EAAO,YAAW,CAAE,YAAY,CAAC,GAWtD,OAAO,KAAKG,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,MAAAe,EAAK,eAAef,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,MAAM,CAAC;AAAA,IAC7E,CAAC,GACDe,EAAK,YAAY,CAAC,GAClBC,EAAK,GACLD,EAAK,kDAAkD,GAChDjD,EAAI;AAAA,EACb;AACF,GAGI+I,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,QAAQD;AAAA,EACZ;AACA,GACIE,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,QAAApG,GAAQ,SAAAC,GAAS,YAAAE,GAAY,UAAAC,EAAQ,GAAIxO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,OAAA0O,GAAO,MAAAlD,GAAM,MAAAiD,GAAM,kBAAA2E,EAAgB,IAAK,IAAI9H,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AACvF,IAAA8B,EAAK,iCAAiC;AACtC,UAAMgG,IAAU;AAAA,MACd,QAAArG;AAAA,MACA,KAAKC;AAAA,IACX;AAII,YAHI,OAAO,KAAKE,CAAU,EAAE,WAC1BkG,EAAQ,UAAUlG,IAEZC,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAIA,EAAS,WACXC,EAAK,6CAA6C,GAClDC,EAAK,GACLD,EAAK,8CAA8C,GACnDD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,UAAA1B,EAAK,sBAAsB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAAA,QAC9D,CAAC,GACDzB,EAAK,GACL+F,EAAQ,OAAO,kBACfrB,EAAiB,CAACvL,MAASA,EAAK,QAAQ,oBAAoB,gBAAgB,CAAC;AAE/E;AAAA,MACF,KAAK;AACH,QAAA6G,EAAK,GACDF,EAAS,YACXiG,EAAQ,OAAOjG,EAAS;AAE1B;AAAA,MACF;AACE,QAAAE,EAAK,GACDF,EAAS,SACXiG,EAAQ,OAAOjG,EAAS;AAAA,IAElC;AACI,UAAMkG,IAAqBnB,GAAiBkB,GAAS,EAAE,QAAQ,MAAM,sBAAsB,IAAI;AAC/F,WAAAhG,EAAK,mBAAmBiG,CAAkB,GAAG,GAC7ChG,EAAK,GACLD,EAAK,OAAO,GACZA,EAAK,qBAAqB,CAAC,GAC3BA,EAAK,+BAA+B,CAAC,GACrCA,EAAK,+BAA+B,CAAC,GACrCA,EAAK,MAAM,CAAC,GACZA,EAAK,6BAA6B,CAAC,GACnCA,EAAK,yBAAyB,CAAC,GAC/BA,EAAK,OAAO,CAAC,GACNjD,EAAI;AAAA,EACb;AACF,GACImJ,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,QAAAvG,GAAQ,SAAAC,GAAS,UAAAG,GAAU,YAAAF,GAAY,SAAAwC,EAAO,GAAI9Q,MAAY;AACxE,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT;AACI,QAAI4U,IAAY;AAChB,UAAM,EAAE,OAAAlG,GAAO,MAAAD,GAAM,MAAAjD,GAAM,SAAAqJ,EAAO,IAAK,IAAIvJ,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AAC9E,IAAA8B,EAAK,sCAAsC;AAC3C,UAAM7P,IAAMyP,GACNoG,IAAU;AAAA,MACd,QAAArG;AAAA,IACN;AAII,YAHI,OAAO,KAAKE,CAAU,EAAE,WAC1BmG,EAAQ,UAAUnG,IAEZE,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAqG,EAAQ,6CAA6C,GACrDpG,EAAK,8CAA8C,GACnDC,EAAK,GACLF,EAAS,QAAQ,QAAQ,CAAC2B,MAAU;AAClC,UAAA1B,EAAK,sBAAsB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAAA,QAC9D,CAAC,GACDsE,EAAQ,OAAO;AACf;AAAA,MACF,KAAK;AACH,QAAIjG,EAAS,YACXiG,EAAQ,OAAOjG,EAAS;AAE1B;AAAA,MACF,KAAK;AACH,YAAI,CAACA,EAAS;AACZ;AAEF,cAAMkF,IAAoB9E,GAAcN,GAAY,cAAc;AAClE,QAAIoF,KACF,OAAOpF,EAAWoF,CAAiB,GAErCmB,EAAQ,wCAAwC,GAChDpG,EAAK,kCAAkC,GACvCC,EAAK,GACLF,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,cAAI,CAACA,EAAM,YAAY,CAACA,EAAM,YAAY,CAACA,EAAM,aAAa;AAC5D,YAAA1B,EAAK,oBAAoB0B,EAAM,IAAI,OAAOA,EAAM,KAAK,KAAK;AAC1D;AAAA,UACF;AACA,UAAIA,EAAM,aACRyE,IAAY,IACZnG,EAAK,oBAAoB0B,EAAM,IAAI,2BAA2BA,EAAM,QAAQ,MAAM;AAAA,QAEtF,CAAC;AACD;AAAA,MACF;AACE,QAAI3B,EAAS,SACXiG,EAAQ,OAAOjG,EAAS;AAAA,IAElC;AACI,QAAIsC,EAAQ,QAAQ;AAClB,YAAMgE,IAAgBhE,EAAQ,IAAI,CAAC,EAAE,MAAA9M,GAAM,OAAAlE,EAAK,MAAO,GAAG,mBAAmBkE,CAAI,CAAC,IAAI,mBAAmBlE,CAAK,CAAC,EAAE,EAAE,KAAK,IAAI;AAC5H,MAAI2U,EAAQ,YAGVA,EAAQ,UAAU,CAAA,IAClBA,EAAQ,QAAQ,SAASK;AAAA,IAE7B;AACA,IAAApG,EAAK,GACLD,EAAK,gBAAgB7P,CAAG,IAAI,GACxB6V,EAAQ,WAAW,CAAC,OAAO,KAAKA,EAAQ,OAAO,EAAE,UACnD,OAAOA,EAAQ;AAEjB,UAAMC,IAAqBnB,GAAiBkB,GAAS;AAAA,MACnD,QAAQ;AAAA,MACR,sBAAsB;AAAA;AAAA;AAAA;AAAA,MAItB,WAAW,CAACtI,GAAQwH,GAAUC,MACxBD,MAAa,UAAUnF,EAAS,aAAa,qBACxC,kBAAkBoF,CAAc,MAElCA;AAAA,IAEf,CAAK;AACD,WAAAnF,EAAK,mBAAmBiG,CAAkB,GAAG,GAC7ChG,EAAK,GACDkG,KACFC,EAAQ,2BAA2B,GAEjCrG,EAAS,UAAUA,EAAS,aAAa,0BAC3CC,EAAK,0BAA0B,GAC/BC,EAAK,IAEPD,EAAK,qBAAqB,GAC1BA,EAAK,4BAA4B,CAAC,GAClCA,EAAK,oCAAoC,CAAC,GAC1CA,EAAK,iDAAiD,CAAC,GAChDjD,EAAI,EAAG,QAAQ,mBAAmB,eAAe,EAAE,QAAQ,wCAAwC,2BAA2B;AAAA,EACvI;AACF,GACIuJ,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAA3D,GAAQ,QAAAhD,GAAQ,YAAAG,GAAY,UAAAC,EAAQ,GAAIxO,IAAU,OAAO;AACnE,UAAM,EAAE,QAAAuL,IAAS,KAAI,IAAKvL,GACpB,EAAE,OAAA0O,GAAO,MAAAlD,GAAM,MAAAiD,GAAM,SAAAoG,EAAO,IAAK,IAAIvJ,EAAY,EAAE,QAAAC,GAAQ,GAC3DkJ,IAAU;AAAA,MACd,QAAArG;AAAA,MACA,UAAUgD,EAAO;AAAA,MACjB,MAAMA,EAAO;AAAA,MACb,MAAMA,EAAO;AAAA,MACb,SAAS7C;AAAA,IACf;AAkBI,YAjBAE,EAAK,yBAAyB2C,EAAO,UAAU,QAAQ,KAAK,EAAE,CAAC,KAAK,GACpE1C,EAAK,GACLD,EAAK,mBAAmB8E,GAAiBkB,GAAS,EAAE,QAAAlJ,EAAM,CAAE,CAAC,GAAG,GAChEmD,EAAK,GACLD,EAAK,oDAAoD,GACzDA,EAAK,sBAAsB,CAAC,GAC5BC,EAAK,GACLD,EAAK,qCAAqC,CAAC,GAC3CA,EAAK,uBAAuB,CAAC,GAC7BA,EAAK,OAAO,CAAC,GACbC,EAAK,GACLD,EAAK,+BAA+B,CAAC,GACrCA,EAAK,uCAAuC,CAAC,GAC7CA,EAAK,iCAAiC,CAAC,GACvCA,EAAK,OAAO,CAAC,GACbA,EAAK,KAAK,GACVC,EAAK,GACGF,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAIA,EAAS,cACXqG,EAAQ,oCAAoC,GAC5CpG;AAAA,UACE,0BAA0B8E,GAAiB/E,EAAS,WAAW;AAAA,YAC7D,QAAQ;AAAA,YACR,sBAAsB;AAAA,UACpC,CAAa,CAAC;AAAA,QACd;AAEQ;AAAA,MACF,KAAK;AACH,QAAIA,EAAS,WACXC;AAAA,UACE,4BAA4B8E,GAAiB/E,EAAS,SAAS;AAAA,YAC7D,QAAQ;AAAA,YACR,sBAAsB;AAAA,UACpC,CAAa,CAAC;AAAA,QACd;AAEQ;AAAA,MACF;AACE,QAAIA,EAAS,QACXC,EAAK,aAAa8E,GAAiB/E,EAAS,MAAM,EAAE,QAAAjD,EAAM,CAAE,CAAC,IAAI;AAAA,IAE3E;AACI,WAAAkD,EAAK,YAAY,GACVjD,EAAI;AAAA,EACb;AACF,GACIwJ,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,QAAA5G,GAAQ,KAAAxP,GAAK,SAAAyP,GAAS,UAAAG,GAAU,YAAAF,GAAY,SAAAwC,EAAO,GAAI9Q,MAAY;AAC7E,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT;AACI,QAAI4U,IAAY;AAChB,UAAM,EAAE,MAAAnG,GAAM,OAAAC,GAAO,MAAAlD,GAAM,SAAAqJ,GAAS,kBAAAzB,MAAqB,IAAI9H,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AAChG,IAAA8B,EAAK,qCAAqC,GAC1CC,EAAK;AACL,UAAM+F,IAAU;AAAA,MACd,QAAArG;AAAA,MACA,KAAKC;AAAA,IACX;AAII,YAHI,OAAO,KAAKC,CAAU,EAAE,WAC1BmG,EAAQ,UAAUnG,IAEZE,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAiG,EAAQ,OAAOjG,EAAS;AACxB;AAAA,MACF,KAAK;AACH,QAAIA,EAAS,YACXiG,EAAQ,OAAOjG,EAAS,SACxBiG,EAAQ,OAAO;AAEjB;AAAA,MACF,KAAK;AACH,YAAI,CAACjG,EAAS;AACZ;AAEF,QAAAiG,EAAQ,WAAW,CAAA,GACnBjG,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,cAAI,CAACA,EAAM,YAAY,CAACA,EAAM,YAAY,CAACA,EAAM,aAAa;AAC5D,YAAAsE,EAAQ,SAAStE,EAAM,IAAI,IAAIA,EAAM;AACrC;AAAA,UACF;AACA,cAAI8E,IAAa,CAAA;AACjB,UAAI9E,EAAM,YACRyE,IAAY,IACZK,IAAa;AAAA,YACX,OAAO,uBAAuB9E,EAAM,QAAQ;AAAA,YAC5C,SAAS;AAAA,cACP,UAAUA,EAAM;AAAA,cAChB,aAAaA,EAAM,cAAcA,EAAM,cAAc;AAAA,YACrE;AAAA,UACA,KACqBA,EAAM,UACf8E,EAAW,QAAQ9E,EAAM,QAE3BsE,EAAQ,SAAStE,EAAM,IAAI,IAAI8E;AAAA,QACjC,CAAC,GACD7B,EAAiB,CAACvL,MAASA,EAAK,QAAQ,kCAAkC,2BAA2B,CAAC;AACtG;AAAA,MACF;AACE,QAAI2G,EAAS,SACXiG,EAAQ,OAAOjG,EAAS;AAAA,IAElC;AACI,WAAIsC,EAAQ,WACV2D,EAAQ,MAAM,OACdhG,EAAK,4BAA4B,GACjCqC,EAAQ,QAAQ,CAAC,EAAE,MAAA9M,GAAM,OAAAlE,EAAK,MAAO;AACnC,MAAA2O,EAAK,iCAAiC,mBAAmBzK,CAAI,CAAC,IAAI,mBAAmBlE,CAAK,CAAC,QAAQlB,CAAG,KAAK;AAAA,IAC7G,CAAC,GACD8P,EAAK,GACL0E,EAAiB,CAACvL,MAASA,EAAK,QAAQ,SAAS,KAAK,CAAC,IAErD+M,KACFC,EAAQ,2BAA2B,GAErCpG,EAAK,mBAAmB8E,GAAiBkB,GAAS,EAAE,QAAQ,MAAM,sBAAsB,IAAI,CAAC,GAAG,GAChG/F,EAAK,GACLD,EAAK,qDAAqD,GAC1DA,EAAK,sCAAsC,CAAC,GAC5CC,EAAK,GACLD,EAAK,sBAAsB,CAAC,GAC5BA,EAAK,KAAK,GACHjD,EAAI;AAAA,EACb;AACF,GACI0J,KAAW;AAAA,EACb,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAA9G,GAAQ,KAAAxP,GAAK,SAAAkS,GAAS,UAAAd,GAAU,UAAAxB,GAAU,YAAAF,EAAU,GAAItO,MAAY;AAC9E,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT;AACI,QAAI4U,IAAY;AAChB,UAAM,EAAE,kBAAAxB,GAAkB,OAAA1E,GAAO,MAAAlD,GAAM,MAAAiD,GAAM,SAAAoG,EAAO,IAAK,IAAIvJ,EAAY;AAAA,MACvE,QAAQqB,EAAK;AAAA,IACnB,CAAK;AAqBD,YApBA8B,EAAK,qCAAqC,GAC1CC,EAAK,GACLD,EAAK,wBAAwBL,CAAM,OAAOxP,CAAG,KAAK,GAClD8P,EAAK,GACDoC,EAAQ,WACVrC,EAAK,kCAAkC,GACvCqC,EAAQ,QAAQ,CAACqE,MAAW;AAC1B,MAAA1G,EAAK,kBAAkB,mBAAmB0G,EAAO,IAAI,CAAC,IAAI,mBAAmBA,EAAO,KAAK,CAAC,OAAOvW,CAAG,KAAK;AAAA,IAC3G,CAAC,GACD6P,EAAK,qBAAqB,GAC1BC,EAAK,IAEH,OAAO,KAAKsB,CAAQ,EAAE,WACxBvB,EAAK,aAAa8E,GAAiBvD,GAAU,EAAE,QAAQrD,EAAK,OAAM,CAAE,CAAC,IAAI,GACzE+B,EAAK,IAEH,OAAO,KAAKJ,CAAU,EAAE,WAC1BG,EAAK,eAAe8E,GAAiBjF,GAAY,EAAE,QAAQ3B,EAAK,OAAM,CAAE,CAAC,IAAI,GAC7E+B,EAAK,IAECF,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAIA,EAAS,cACXC,EAAK,YAAY8E,GAAiB/E,EAAS,WAAW,EAAE,QAAQ7B,EAAK,QAAQ,CAAC,IAAI,GAClF+B,EAAK;AAEP;AAAA,MACF,KAAK;AACH,QAAIF,EAAS,YACXC,EAAK,mBAAmB,GACxBA,EAAK,YAAY8E,GAAiB/E,EAAS,SAAS,EAAE,QAAQ7B,EAAK,QAAQ,CAAC,IAAI,GAChF+B,EAAK;AAEP;AAAA,MACF,KAAK,uBAAuB;AAC1B,YAAI,CAACF,EAAS;AACZ;AAEF,cAAM4G,IAAY,CAAA;AAClB,QAAA5G,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,gBAAMkF,IAAO,CAAA;AACb,UAAIlF,EAAM,YAAY,CAACA,EAAM,SAC3ByE,IAAY,IACZS,EAAK,OAAO,wBAAwBlF,EAAM,QAAQ,MAClDiD,EAAiB,CAACvL,MAASA,EAAK,QAAQ,wCAAwC,2BAA2B,CAAC,KACnGsI,EAAM,UACfkF,EAAK,OAAOlF,EAAM,QAEhBkF,EAAK,SACHlF,EAAM,gBACRkF,EAAK,cAAc,IAAIlF,EAAM,cAE/BiF,EAAU,KAAKC,CAAI;AAAA,QAEvB,CAAC,GACD5G,EAAK,iBAAiB8E,GAAiB6B,GAAW,EAAE,QAAQzI,EAAK,OAAM,CAAE,CAAC,IAAI,GAC9E+B,EAAK;AACL;AAAA,MACF;AAAA,MACA;AACE,QAAIF,EAAS,SACXC,EAAK,YAAY8E,GAAiB/E,EAAS,MAAM,EAAE,QAAQ7B,EAAK,QAAQ,CAAC,IAAI,GAC7E+B,EAAK;AAAA,IAEf;AACI,WAAIkG,KACFC,EAAQ,2BAA2B,GAErCpG,EAAK,0BAA0B,GAC/BA,EAAK,8CAA8C,CAAC,GACpDC,EAAK,GACLD,EAAK,0BAA0B,CAAC,GAChCA,EAAK,KAAK,GACHjD,EAAI;AAAA,EACb;AACF,GAGI8J,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,QAAQP;AAAA,IACR,SAAAC;AAAA,IACA,SAASE;AAAA,IACT,OAAOV;AAAA,IACP,OAAOG;AAAA,EACX;AACA,GAGIY,KAAgB,CAACC,GAASxR,GAAMoC,GAAYmF,MAAW;AACzD,QAAMkK,IAAU,GAAGD,CAAO,KAAKxR,CAAI,OAC7B0R,IAAUC,GAAsBvP,GAAYmF,IAASkK,EAAQ,SAAS,MAAM;AAClF,SAAO,GAAGA,CAAO,GAAGC,CAAO;AAC7B,GACIC,KAAwB,CAAC7V,GAAO8V,MAAgB;AAClD,QAAMpK,IAAOoK,MAAgB,SAAS,OAAO;AAAA,KAC1C,IAAI,OAAOA,CAAW,CAAC;AAC1B,UAAQ,OAAO,UAAU,SAAS,KAAK9V,CAAK,GAAC;AAAA,IAC3C,KAAK;AACH,aAAO,IAAIA,CAAK;AAAA,IAClB,KAAK;AAEH,aAAO,MADsBA,EAAM,IAAI,CAAC4M,MAAQiJ,GAAsBjJ,CAAG,CAAC,EACxC,KAAKlB,CAAI,CAAC;AAAA,IAE9C,KAAK,mBAAmB;AACtB,YAAMqK,IAAgB,CAAA;AACtB,oBAAO,KAAK/V,CAAK,EAAE,QAAQ,CAAC4N,MAAQ;AAClC,QAAAmI,EAAc,KAAK,KAAKnI,CAAG,MAAMiI,GAAsB7V,EAAM4N,CAAG,CAAC,CAAC,EAAE;AAAA,MACtE,CAAC,GACM,MAAMmI,EAAc,KAAKrK,CAAI,CAAC;AAAA,IACvC;AAAA,IACA,KAAK;AACH,aAAO1L,IAAQ,SAAS;AAAA,IAC1B;AACE,aAAIA,KAAU,OACL,KAEF,KAAKA,EAAM,SAAQ,EAAG,QAAQ,MAAM,KAAK,CAAC;AAAA,EACvD;AACA,GAGIgW,KAAe;AAAA,EACjB,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,YAAAvH,GAAY,UAAAC,GAAU,QAAAJ,GAAQ,SAAAC,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,MAAAjD,GAAM,OAAAkD,EAAK,IAAK,IAAIpD,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/DoJ,IAAM;AAAA,MACV,YAAY;AAAA,MACZ,SAAS;AAAA,IACf;AAOI,QANAtH,EAAK,mCAAmC,GACpC,OAAO,KAAKF,CAAU,EAAE,WAC1BwH,EAAI,aAAa,IACjBrH,EAAK,GACLD,EAAK8G,GAAc,gBAAgB,WAAWhH,GAAY5B,EAAK,MAAM,CAAC,IAEpE6B,EAAS,QAAQA,EAAS,WAAWA,EAAS;AAEhD,cADAuH,EAAI,UAAU,IACNvH,EAAS,UAAQ;AAAA,QACvB,KAAK;AACH,cAAIA,EAAS,QAAQ,QAAQ;AAC3B,YAAAE,EAAK;AACL,kBAAM,CAACsH,GAAM,GAAGC,CAAI,IAAIzH,EAAS;AACjC,YAAAC;AAAA,cACE,oEAAoEuH,EAAK,IAAI,IAAIA,EAAK,KAAK;AAAA,YACzG,GACYC,EAAK,QAAQ,CAAC,EAAE,MAAAjS,GAAM,OAAAlE,EAAK,MAAO;AAChC,cAAA2O,EAAK,4BAA4BzK,CAAI,IAAIlE,CAAK,6CAA6C;AAAA,YAC7F,CAAC;AAAA,UACH;AACE,YAAAiW,EAAI,UAAU;AAEhB;AAAA,QACF,KAAK;AACH,UAAIvH,EAAS,YACXC,EAAK8G,GAAc,gBAAgB,cAAc/G,EAAS,SAAS7B,EAAK,MAAM,CAAC,GAC/E+B,EAAK,GACLD,EAAK,6FAA6F;AAEpG;AAAA,QACF,KAAK;AACH,UAAAA,EAAK8G,GAAc,WAAW,cAAc/G,EAAS,UAAU,CAAA,GAAI7B,EAAK,MAAM,CAAC,GAC/E8B,EAAK,0BAA0BD,EAAS,QAAQ,IAAI,GACpDE,EAAK,GACLD,EAAK,iBAAiB,GACtBA,EAAK,mDAAmD,GACxDA,EAAK,2CAA2C,GAChDA,EAAK,gDAAgD,CAAC,GACtDA,EAAK,6BAA6B,CAAC,GACnCA;AAAA,YACE;AAAA,YACA;AAAA,UACZ,GACUA,EAAK,+EAA+E,CAAC,GACrFA;AAAA,YACE;AAAA,YACA;AAAA,UACZ,GACUA,EAAK,gBAAgB,CAAC,GACtBA,EAAK,wBAAwB,CAAC,GAC9BA,EAAK,KAAK,CAAC,GACXA,EAAK,YAAY,CAAC,GAClBA,EAAK,oGAAoG,CAAC,GAC1GA,EAAK,+CAA+C,CAAC,GACrDA,EAAK,KAAK,CAAC,GACXA,EAAK,GAAG,GACRA,EAAK,sDAAsD,GAC3DA,EAAK,mEAAmE;AACxE;AAAA,QACF;AACE,UAAAC,EAAK,GACLD;AAAA,YACE,sDAAsDD,EAAS,IAAI;AAAA,UAC/E;AAAA,MACA;AAEI,WAAAE,EAAK,GACLD,EAAK,6FAA6FJ,CAAO,IAAI,GAC7GI,EAAK,uGAAuG,GAC5GA,EAAK,sEAAsE9B,EAAK,QAAQ,QAAQ,CAAC,CAAC,IAAI,GACtG8B,EAAK,4BAA4BL,CAAM,KAAK,GACxC2H,EAAI,cACNtH,EAAK,2CAA2C,GAE9CsH,EAAI,WACNtH,EAAK,iCAAiC,GAExCC,EAAK,GACLD,EAAK,uDAAuD,GAC5DA,EAAK,uEAAuE,GAC5EA;AAAA,MACE;AAAA,IACN,GACIA,EAAK,4DAA4D,CAAC,GAClEA,EAAK,oEAAoE,CAAC,GAC1EA,EAAK,wDAAwD,CAAC,GAC9DA;AAAA,MACE;AAAA,MACA;AAAA,IACN,GACIA,EAAK,2EAA2E,CAAC,GACjFA,EAAK,iDAAiD,CAAC,GACvDA,EAAK,iDAAiD,GACtDA,EAAK,oBAAoB,GAClBjD,EAAI;AAAA,EACb;AACF,GAGI0K,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,cAAAJ;AAAA,EACJ;AACA,GAGIK,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,SAAA9H,GAAS,YAAAE,GAAY,UAAAC,GAAU,QAAAJ,EAAM,GAAIpO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACUiQ,IAAU,CAAC,OAAO,QAAQ,QAAQ,UAAU,SAAS,OAAO,SAAS,GACrE,EAAE,MAAAxB,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AACrE,IAAA8B,EAAK,sBAAsB,GAC3BA,EAAK,aAAa,GAClBA,EAAK,UAAU,GACfC,EAAK,GACLD,EAAK,4BAA4BJ,CAAO,MAAM;AAC9C,UAAMpF,IAAU,OAAO,KAAKsF,CAAU;AACtC,IAAItF,EAAQ,WAAW,IACrBwF;AAAA,MACE,8CAA8CxF,EAAQ,CAAC,CAAC,MAAMiF;AAAA,QAC5DK,EAAWtF,EAAQ,CAAC,CAAC;AAAA,MAC/B,CAAS;AAAA,IACT,IACeA,EAAQ,SAAS,MAC1BwF,EAAK,kDAAkD,GACvDxF,EAAQ,QAAQ,CAACyE,MAAQ;AACvB,MAAAe,EAAK,KAAKf,CAAG,OAAOQ,GAAsBK,EAAWb,CAAG,CAAC,CAAC,OAAO,CAAC;AAAA,IACpE,CAAC,GACDe,EAAK,MAAM,IAETD,EAAS,QACXC,EAAK,wCAAwC,KAAK,UAAUD,EAAS,IAAI,CAAC,KAAK,GAEjFE,EAAK;AACL,UAAM0H,IAAInN,EAAQ,SAAS,cAAc,IACnC3C,IAAIkI,EAAS,OAAO,WAAW,IAC/B6H,IAAIpG,EAAQ,SAAS7B,EAAO,YAAW,CAAE,IAAI,KAAKA,EAAO,YAAW,CAAE,KAAK,2BAA2BA,CAAM;AAClH,WAAAK,EAAK,eAAe2H,CAAC,GAAG9P,CAAC,GAAG+P,CAAC,MAAM,GACnC5H,EAAK,+BAA+B,GACpCA,EAAK,kCAAkC,CAAC,GACjCjD,EAAI;AAAA,EACb;AACF,GAGI8K,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,QAAAH;AAAA,EACJ;AACA,GAGII,KAAc,CAAC1G,GAAKtE,GAAQiL,MAAe;AAG7C,UAFAA,IAAaA,KAAc,IAC3BjL,IAASA,KAAU,IACX,OAAO,UAAU,SAAS,KAAKsE,CAAG,GAAC;AAAA,IACzC,KAAK;AACH,aAAOA;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,IAAIlC,GAAakC,GAAK,EAAE,WAAW,KAAK,gBAAgB,IAAO,CAAC;AAAA,IACzE,KAAK;AACH,aAAOA,EAAI,SAAQ;AAAA,IACrB,KAAK,kBAAkB;AACrB,YAAM4G,IAAW5G,EAAI,IAAI,CAAC6G,MAASH,GAAYG,GAAM,GAAGnL,CAAM,GAAGA,CAAM,IAAIA,CAAM,CAAC,EAAE,KAAK;AAAA,EAC7FA,CAAM,EAAE;AACJ,aAAO;AAAA,EACXA,CAAM,GAAGkL,CAAQ;AAAA,EACjBD,CAAU;AAAA,IACR;AAAA,IACA,KAAK,mBAAmB;AACtB,YAAMvV,IAAS,CAAA;AACf,iBAAWoM,KAAKwC;AACd,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAKxC,CAAC,KAC7CpM,EAAO,KAAK,GAAGsV,GAAYlJ,GAAG9B,CAAM,CAAC,OAAOgL,GAAY1G,EAAIxC,CAAC,GAAG,GAAG9B,CAAM,GAAGA,CAAM,IAAIA,CAAM,CAAC,EAAE;AAGnG,aAAO;AAAA,EACXA,CAAM,GAAGtK,EAAO,KAAK;AAAA,EACrBsK,CAAM,EAAE,CAAC;AAAA,EACTiL,CAAU;AAAA,IACR;AAAA,IACA;AACE,aAAO;AAAA,EACb;AACA,GACIG,KAAmB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGIC,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAxF,GAAQ,UAAA5C,GAAU,SAAAH,GAAS,QAAAD,GAAQ,aAAAiE,GAAa,SAAAvB,GAAS,YAAAxC,KAActO,IAAU,CAAA,MAAO;AAClG,UAAM;AAAA,MACJ,YAAA6W,IAAa;AAAA,MACb,QAAAtL,IAAS;AAAA,MACT,cAAAuL,IAAe;AAAA,MACf,aAAAC,IAAc;AAAA,MACd,QAAAC,IAAS;AAAA,MACT,WAAAC,IAAY;AAAA,MACZ,SAAArF,IAAU;AAAA,IAChB,IAAQ5R,GACE,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAAC,GAAQ;AACxD,IAAKyL,MACHvI,EAAKwI,IAAY,OAAO,OAAO,GAC/BvI,EAAK,IAEPD,EAAK,sBAAsB,GAC3BC,EAAK;AACL,UAAMwI,IAAc;AAAA,MAClB;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO9F,EAAO;AAAA,MACtB;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO/C;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAOyI;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAOlF;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAOS,MAAgB,aAAa,0BAA0B;AAAA,MACtE;AAAA,MACM;AAAA,QACE,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAOjE;AAAA,MACf;AAAA,MACM;AAAA,QACE,QAAQ,CAACI,EAAS;AAAA,QAClB,MAAM;AAAA,QACN,OAAOA,IAAWA,EAAS,UAAU,eAAe+H,GAAY/H,EAAS,SAASjD,EAAO,OAAO,CAAC,GAAGA,CAAM,CAAC,MAAMiD,EAAS,OAAO;AAAA,MACzI;AAAA,IACA;AACI,IAAAC,EAAK,4BAA4B;AACjC,UAAM0I,IAAW,IAAI7L,EAAY,EAAE,QAAAC,GAAQ,MAAM;AAAA,EACnDA,CAAM,GAAE,CAAE;AACR,IAAA2L,EAAY,QAAQ,CAAC,EAAE,OAAApX,GAAO,MAAAkE,GAAM,QAAQoT,QAAc;AACxD,MAAItX,KAAU,QACZqX,EAAS,KAAK,GAAGnT,CAAI,OAAOoT,IAAU,KAAK,UAAUtX,CAAK,IAAIA,CAAK,GAAG;AAAA,IAE1E,CAAC;AACD,UAAMuX,IAAcvG,EAAQ,IAAI,CAACqE,MAAW,GAAG,mBAAmBA,EAAO,IAAI,CAAC,IAAI,mBAAmBA,EAAO,KAAK,CAAC,EAAE;AACpH,IAAIkC,EAAY,UACdF,EAAS,KAAK,sBAAsBE,EAAY,KAAK,IAAI,CAAC,IAAI;AAEhE,UAAMpO,IAAU,OAAO,KAAKqF,CAAU,EAAE,KAAI,EAAG,IAAI,CAACZ,MAAQ,IAAIA,CAAG,KAAKQ,GAAsBI,EAAWZ,CAAG,CAAC,CAAC,GAAG;AACjH,WAAIzE,EAAQ,WACVkO,EAAS,KAAK,yBAAyB,GACvCA,EAAS,KAAKlO,EAAQ,KAAK;AAAA,EAC/BsC,CAAM,GAAGA,CAAM,EAAE,GAAG,CAAC,GACjB4L,EAAS,KAAK,IAAI,IAEpB1I,EAAK0I,EAAS,KAAI,GAAI,CAAC,GACvB1I,EAAK,KAAK,GACVC,EAAK,GACLD,EAAK,+BAA+B,GACpCA,EAAK,2BAA2B,GAChCC,EAAK,GACLD,EAAK,oBAAoB,GACzBC,EAAK,GACLD,EAAK,aAAa,GAEhBA,EADEsI,IACG,gEAEA,gCAF+D,CAAC,GAIvEtI,EAAK,UAAU,GACfA,EAAK,mBAAmB,CAAC,GACzBA,EAAK,GAAG,GACJ,CAACuI,KAAUH,MACbnI,EAAK,GACLD,EAAK,IAAI,IAEJjD,EAAI;AAAA,EACb;AACF,GAGI8L,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,UAAA9I,GAAU,SAAAH,GAAS,QAAAD,GAAQ,SAAA0C,GAAS,YAAAxC,EAAU,GAAItO,MAAY;AACxE,UAAM2M,IAAO;AAAA,MACX,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ,GAC/D,EAAE,MAAM4K,GAAa,MAAMC,GAAa,MAAMC,EAAW,IAAK,IAAInM,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AAM3G,YALKA,EAAK,UACR8B,EAAK9B,EAAK,YAAY,OAAO,OAAO,GAEtC8B,EAAK,sCAAsC,GAC3CC,EAAK,GACGF,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAgJ,EAAY,oBAAoBjB,GAAY/H,EAAS,WAAW7B,EAAK,SAASA,EAAK,QAAQA,EAAK,MAAM,CAAC,KAAK,CAAC;AAC7G;AAAA,MACF,KAAK,uBAAuB;AAC1B,cAAM+K,IAAS,CAAA;AAqBf,YApBIlJ,EAAS,UACXA,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,cAAIA,EAAM,UAAU;AAClB,kBAAMwH,IAAQ;AAAA,cACZ,MAAMxH,EAAM;AAAA,cACZ,UAAUA,EAAM;AAAA,cAChB,UAAUA,EAAM;AAAA,YAChC;AACc,YAAIA,EAAM,gBACRwH,EAAM,UAAU,EAAE,gBAAgBxH,EAAM,YAAW,IAErDuH,EAAO,KAAKC,CAAK;AAAA,UACnB,MAAO,CAAIxH,EAAM,SACfuH,EAAO,KAAK;AAAA,YACV,MAAMvH,EAAM;AAAA,YACZ,UAAUA,EAAM;AAAA,UAChC,CAAe;AAAA,QAEL,CAAC,GAECuH,EAAO,WACTF,EAAY,kBAAkBjB,GAAYmB,GAAQ/K,EAAK,SAASA,EAAK,QAAQA,EAAK,MAAM,CAAC,IAAI,CAAC,GAC1FoC,GAAUT,GAAY,cAAc,KAClCO,GAAUP,GAAY,cAAc,GAAG,QAAQ,UAAU,IAAG;AAC9D,gBAAMQ,IAAaF,GAAcN,GAAY,cAAc;AAC3D,UAAIQ,KACF,OAAOR,EAAWQ,CAAU;AAAA,QAEhC;AAGJ;AAAA,MACF;AAAA,MACA;AACE,QAAIN,EAAS,QACXgJ,EAAY,aAAajB,GAAY/H,EAAS,IAAI,CAAC,KAAK,CAAC;AAAA,IAEnE;AACI,UAAMvF,IAAU,OAAO,KAAKqF,CAAU,EAAE,KAAI,EAAG,IAAI,SAASZ,GAAK;AAC/D,aAAO,GAAGf,EAAK,MAAM,GAAGA,EAAK,MAAM,IAAIe,CAAG,SAASO,GAAsBK,EAAWZ,CAAG,CAAC,CAAC;AAAA,IAC3F,CAAC,GACKkK,IAAe9G,EAAQ,IAAI,CAACqE,MAAW,GAAG,mBAAmBA,EAAO,IAAI,CAAC,IAAI,mBAAmBA,EAAO,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI;AAChI,WAAIyC,EAAa,UACf3O,EAAQ,KAAK,GAAG0D,EAAK,MAAM,GAAGA,EAAK,MAAM,gBAAgBsB,GAAsB2J,CAAY,CAAC,IAAI,GAE9F3O,EAAQ,WACVuO,EAAY,kBAAkB,CAAC,GAC/BA,EAAYvO,EAAQ,KAAK;AAAA,CAAI,CAAC,GAC9BuO,EAAY,MAAM,CAAC,IAErB/I,EAAK,uCAAuC,GAC5CC,EAAK,GACD6I,EAAY,UACd9I,EAAK,iCAAiCL,CAAM,OAAOC,CAAO,MAAM,GAChEI,EAAKgJ,EAAW,CAAE,GAClBhJ,EAAK,KAAK,KAEVA,EAAK,iCAAiCL,CAAM,OAAOC,CAAO,KAAK,GAEjEK,EAAK,GACLD,EAAK,4BAA4B,GAC7B,CAAC9B,EAAK,UAAUA,EAAK,eACvB+B,EAAK,GACLD,EAAK,IAAI,IAEJjD,EAAI;AAAA,EACb;AACF,GAGIqM,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAzJ,GAAQ,KAAAxP,GAAK,UAAA4P,GAAU,UAAAwB,GAAU,YAAA1B,GAAY,YAAAwJ,EAAU,GAAI9X,IAAU,OAAO;AACtF,UAAM,EAAE,YAAA6W,IAAa,IAAO,QAAAtL,IAAS,MAAM,QAAAyL,IAAS,IAAO,WAAAC,IAAY,GAAK,IAAKjX,GAC3E,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAAC,GAAQ;AA4BxD,YA3BKyL,MACHvI,EAAKwI,IAAY,OAAO,OAAO,GAC/BvI,EAAK,IAEFiI,GAAiB,SAASvI,EAAO,YAAW,CAAE,KACjDK,EAAK,gCAAgCL,CAAM,KAAK,GAElDK,EAAK,+BAA+B,GACpCA,EAAK,oBAAoB8H,GAAY3X,CAAG,CAAC,IAAI,GACzC+X,GAAiB,SAASvI,EAAO,YAAW,CAAE,IAChDK,EAAK,iCAAiCL,EAAO,YAAW,CAAE,IAAI,IAE9DK,EAAK,8CAA8CL,EAAO,YAAW,CAAE,IAAI,GAE7EM,EAAK,GACD,OAAO,KAAKsB,CAAQ,EAAE,WACxBvB,EAAK,0BAA0B8H,GAAYvG,GAAUzE,CAAM,CAAC,IAAI,GAChEmD,EAAK,IAEH,OAAO,KAAKJ,CAAU,EAAE,WAC1BG,EAAK,wBAAwB8H,GAAYjI,GAAY/C,CAAM,CAAC,IAAI,GAChEmD,EAAK,IAEH,OAAO,KAAKoJ,CAAU,EAAE,WAC1BrJ,EAAK,wBAAwB8H,GAAYuB,GAAYvM,CAAM,CAAC,IAAI,GAChEmD,EAAK,IAECF,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAC,EAAK,4BAA4B8H,GAAY/H,EAAS,QAAQ,CAAC,IAAI,GACnEC,EAAK,2BAA2B8H,GAAY/H,EAAS,WAAWjD,CAAM,CAAC,IAAI,GAC3EmD,EAAK;AACL;AAAA,MACF,KAAK;AACH,QAAAD,EAAK,4BAA4B8H,GAAY/H,EAAS,QAAQ,CAAC,IAAI,GACnEC,EAAK,iCAAiC8H,GAAY/H,EAAS,SAASjD,CAAM,CAAC,KAAK,GAChFmD,EAAK;AACL;AAAA,MACF;AACE,QAAIF,EAAS,SACXC,EAAK,qBAAqB8H,GAAY/H,EAAS,IAAI,CAAC,IAAI,GACxDE,EAAK;AAAA,IAEf;AACI,WAAAD,EAAK,OAAO,GACZA,EAAK,iCAAiC,CAAC,GACvCC,EAAK,GACLD,EAAK,8BAA8B,CAAC,GACpCA,EAAK,+BAA+B,GACpCA,EAAK,aAAa,CAAC,GACnBA,EAAK,GAAG,GACJ,CAACuI,KAAUH,MACbnI,EAAK,GACLD,EAAK,IAAI,IAEJjD,EAAI;AAAA,EACb;AACF,GAGIuM,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,UAAAvJ,GAAU,YAAAF,GAAY,QAAAF,GAAQ,UAAA4B,GAAU,YAAA8H,GAAY,KAAAlZ,EAAG,GAAIoB,IAAU,OAAO;AACtF,UAAM,EAAE,YAAA6W,IAAa,IAAO,QAAAtL,IAAS,MAAM,QAAAyL,IAAS,IAAO,WAAAC,IAAY,GAAK,IAAKjX,GAC3E,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAAC,GAAQ;AACxD,QAAIyM,IAAU;AAQd,YAPKhB,MACHvI,EAAKwI,IAAY,OAAO,OAAO,GAC/BvI,EAAK,IAEPD,EAAK,6BAA6B,GAClCA,EAAK,uCAAuC,GAC5CC,EAAK,GACGF,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAC,EAAK,kCAAkC,GACvCA,EAAK,uCAAuC8H,GAAY/H,EAAS,WAAWjD,CAAM,CAAC,KAAK,GACxFmD,EAAK,GACLsJ,IAAU;AACV;AAAA,MACF,KAAK,uBAAuB;AAC1B,YAAI,CAACxJ,EAAS;AACZ;AAEF,cAAMyJ,IAAQ,CAAA,GACRP,IAAS,CAAA;AACf,QAAAlJ,EAAS,OAAO,QAAQ,CAAC,EAAE,MAAAxK,GAAM,UAAAkU,GAAU,OAAApY,GAAO,aAAAkR,QAAkB;AAClE,cAAIkH,GAAU;AACZ,YAAAD,EAAM,KAAK;AAAA,cACT,MAAAjU;AAAA,cACA,MAAMgN;AAAA,cACN,MAAMkH;AAAA,cACN,MAAMpY;AAAA,YACpB,CAAa;AACD;AAAA,UACF;AACA,UAAIA,MACF4X,EAAO1T,CAAI,IAAIlE;AAAA,QAEnB,CAAC;AACD,cAAM6X,IAAQ,OAAO,KAAKD,CAAM,EAAE,SAASnB,GAAYmB,GAAQnM,CAAM,IAAI,QACnE4M,IAAYF,EAAM,SAAS1B,GAAY0B,GAAO1M,CAAM,IAAI;AAG9D,YAFAkD,EAAK,kCAAkC,GACvCA,EAAK,kBAAkBkJ,CAAK,KAAKQ,CAAS,IAAI,GAC1CpJ,GAAUT,GAAY,cAAc,KAClCO,GAAUP,GAAY,cAAc,GAAG,QAAQ,UAAU,GAAG;AAC9D,gBAAMQ,IAAaF,GAAcN,GAAY,cAAc;AAC3D,UAAIQ,KACF,OAAOR,EAAWQ,CAAU;AAAA,QAEhC;AAEF,QAAAJ,EAAK,GACLsJ,IAAU;AACV;AAAA,MACF;AAAA,MACA,KAAK;AACH,QAAAvJ,EAAK,kCAAkC,GACvCA,EAAK,6BAA6B8H,GAAY/H,EAAS,SAASjD,CAAM,CAAC,KAAK,GAC5EyM,IAAU;AACV;AAAA,MACF;AACE,QAAIxJ,EAAS,SACXC,EAAK,kCAAkC,GACvCA,EAAK,iBAAiB8H,GAAY/H,EAAS,IAAI,CAAC,IAAI,GACpDE,EAAK,GACLsJ,IAAU;AAAA,IAEpB;AACI,WAAAvJ,EAAK,2BAA2B8H,GAAY3X,CAAG,CAAC,IAAI,GACpD6P,EAAK,8BAA8B8H,GAAYnI,CAAM,CAAC,IAAI,GACtD4J,MACFvJ,EAAK,2BAA2B,GAChCC,EAAK,IAEH,OAAO,KAAKsB,CAAQ,EAAE,WACxBvB,EAAK,4CAA4C8H,GAAYvG,GAAUzE,CAAM,CAAC,KAAK,GACnFmD,EAAK,IAEH,OAAO,KAAKJ,CAAU,EAAE,WAC1BG,EAAK,wBAAwB8H,GAAYjI,GAAY/C,CAAM,CAAC,IAAI,GAChEmD,EAAK,IAEH,OAAO,KAAKoJ,CAAU,EAAE,WAC1BpJ,EAAK,GACLD,EAAK,uBAAuB8H,GAAYuB,GAAYvM,CAAM,CAAC,IAAI,GAC/DmD,EAAK,IAEPD,EAAK,qCAAqC,GAC1CA,EAAK,qCAAqC,GAC1CC,EAAK,GACLD,EAAK,4BAA4B,GAC7B,CAACuI,KAAUH,MACbnI,EAAK,GACLD,EAAK,IAAI,IAEJjD,EAAI;AAAA,EACb;AACF,GAGI4M,KAAM;AAAA,EACR,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,MAAAxB;AAAA,IACA,QAAAU;AAAA,IACA,OAAAO;AAAA,IACA,OAAAE;AAAA,EACJ;AACA,GAGIM,KAA4B,CAACC,MACf,CAAC,EAAE,QAAAlK,GAAQ,YAAAE,GAAY,SAAAwC,GAAS,QAAAM,GAAQ,SAAA/C,GAAS,UAAAG,GAAU,YAAAD,QAAiB;AAC1F,QAAM,EAAE,MAAAE,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAW;AAEtC,MAAI,CADY,CAAC,OAAO,QAAQ,OAAO,UAAU,SAAS,QAAQ,SAAS,EAC9D,SAAS8C,EAAO,YAAW,CAAE;AACxC,WAAO;AAET,QAAMmK,IAAiB,CAAA,GACjBtP,IAAU,OAAO,KAAKqF,CAAU;AACtC,SAAIrF,EAAQ,WACVwF,EAAK,cAAc,GACnBxF,EAAQ,QAAQ,CAACyE,MAAQ;AACvB,IAAIA,MAAQ,gBACVe,EAAK,iBAAiBf,CAAG,OAAOC,GAAaW,EAAWZ,CAAG,GAAG,EAAE,YAAY,IAAG,CAAE,CAAC,IAAI;AAAA,EAE1F,CAAC,GACD6K,EAAe,KAAK,mBAAmB,IAErCzH,EAAQ,WACVrC,EAAK,uEAAuE,GAC5EqC,EAAQ,QAAQ,CAACqE,MAAW;AAC1B,IAAA1G,EAAK,wCAAwC,GAC7CA,EAAK,mBAAmB0G,EAAO,IAAI,GAAG,GACtC1G,EAAK,oBAAoB0G,EAAO,KAAK,GAAG,GACxC1G,EAAK,qBAAqB2C,EAAO,IAAI,GAAG,GACxC3C,EAAK,+BAA+B;AAAA,EACtC,CAAC,GACD8J,EAAe,KAAK,sBAAsB,IAExC/J,EAAS,SACX+J,EAAe;AAAA,IACb,iBAAiB5K,GAAakB,GAAUN,GAAY,cAAc,GAAG,EAAE,WAAW,KAAK,YAAY,IAAG,CAAE,CAAC;AAAA,EACjH,GACMgK,EAAe,KAAK,UAAU/J,EAAS,IAAI,GAAG,IAEhDC,EAAK,eAAe6J,CAAO,UAAUjK,CAAO,aAAaD,CAAM,IAAImK,EAAe,KAAK,GAAG,CAAC,GAAG,KAAI,CAAE,GAC7F/M,EAAI;AACb,GAKEgN,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAASH,GAA0B,mBAAmB;AACxD,GAGII,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAASJ,GAA0B,mBAAmB;AACxD,GAGIK,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,YAAAD;AAAA,IACA,YAAAD;AAAA,EACJ;AACA;AAGA,SAASG,GAAaC,GAAYC,GAAQC,GAAQlD,GAAamD,GAAa;AAC1E,QAAMC,IAAgBpD,EAAY,OAAOmD,CAAW,GAC9CE,IAAqBrD,EAAY,OAAOmD,IAAc,CAAC,GACvDvN,IAAOsN,IAAS;AAAA,EACtBE,CAAa,KAAK,MACZE,IAAeN,MAAe,WAAW,MAAM,KAC/CO,IAAeP,MAAe,WAAW,MAAM;AACrD,SAAIE,IACK,GAAGI,CAAY;AAAA,EACxBF,CAAa,GAAGH,EAAO,KAAKrN,CAAI,CAAC;AAAA,EACjCyN,CAAkB,GAAGE,CAAY,KAE7BP,MAAe,YAAYC,EAAO,SAAS,IACtC,GAAGK,CAAY,IAAIL,EAAO,KAAKrN,CAAI,CAAC,IAAI2N,CAAY,KAEtD,GAAGD,CAAY,GAAGL,EAAO,KAAKrN,CAAI,CAAC,GAAG2N,CAAY;AAC3D;AACA,IAAIC,KAAyB,CAACtZ,GAAO6M,GAAMoM,MAAgB;AAEzD,UADAA,IAAcA,MAAgB,SAAS,IAAIA,IAAc,GACjD,OAAO,UAAU,SAAS,KAAKjZ,CAAK,GAAC;AAAA,IAC3C,KAAK;AACH,aAAOA;AAAA,IACT,KAAK,kBAAkB;AACrB,UAAIgZ,IAAS;AACb,YAAMO,IAAuBvZ,EAAM,IAAI,CAACwZ,OAClC,OAAO,UAAU,SAAS,KAAKA,CAAC,MAAM,sBACxCR,IAAS,OAAO,KAAKQ,CAAC,EAAE,SAAS,IAE5BF,GAAuBE,GAAG3M,GAAMoM,CAAW,EACnD;AACD,aAAOJ,GAAa,SAASU,GAAsBP,GAAQnM,EAAK,QAAQoM,CAAW;AAAA,IACrF;AAAA,IACA,KAAK,mBAAmB;AACtB,YAAMlD,IAAgB,CAAA;AACtB,iBAAWnI,KAAO5N;AAChB,QAAA+V,EAAc,KAAK,IAAInI,CAAG,MAAM0L,GAAuBtZ,EAAM4N,CAAG,GAAGf,GAAMoM,CAAW,CAAC,EAAE;AAEzF,aAAOJ,GAAa,UAAU9C,GAAelJ,EAAK,UAAUkJ,EAAc,SAAS,GAAGlJ,EAAK,QAAQoM,CAAW;AAAA,IAChH;AAAA,IACA,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAOjZ,IAAQ,SAAS;AAAA,IAC1B;AACE,aAAIA,KAAU,OACL,KAEF,IAAIA,EAAM,SAAQ,EAAG,QAAQ,MAAM,KAAK,CAAC;AAAA,EACtD;AACA,GAGIyZ,KAAiB,CAAC,QAAQ,OAAO,QAAQ,OAAO,SAAS,UAAU,SAAS,GAC5EC,KAAW;AAAA,EACb,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,SAAAnL,GAAS,UAAAG,GAAU,YAAAD,GAAY,QAAAH,EAAM,GAAIpO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,GAAM,kBAAA4H,EAAgB,IAAK,IAAI9H,EAAY,EAAE,QAAQqB,EAAK,OAAM,CAAE;AACvF,IAAA8B,EAAK,iBAAiB,GACtBC,EAAK,GACLD,EAAK,UAAUJ,CAAO,GAAG,GACzBK,EAAK;AACL,UAAMzF,IAAUsF;AAChB,QAAI4F,IAAU,CAAA;AACd,UAAM8D,IAAQ,CAAA;AACd,QAAIwB,IAAW,IACXC,IAAa,IACbC,IAAc;AAClB,YAAQnL,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAIA,EAAS,YACXC,EAAK,aAAa2K,GAAuB5K,EAAS,SAAS7B,CAAI,CAAC,EAAE,GAClEgN,IAAc,IACdD,IAAa;AAEf;AAAA,MACF,KAAK;AACH,YAAI,CAAClL,EAAS;AACZ;AAgBF,YAdA2F,IAAU,CAAA,GACV3F,EAAS,OAAO,QAAQ,CAACtF,MAAM;AAC7B,UAAIA,EAAE,YACAA,EAAE,cACJ+O,EAAM/O,EAAE,IAAI,IAAI,KAAKA,EAAE,QAAQ,YAAYA,EAAE,QAAQ,cAAcA,EAAE,WAAW,OAEhF+O,EAAM/O,EAAE,IAAI,IAAI,KAAKA,EAAE,QAAQ,YAAYA,EAAE,QAAQ,aAEvDuQ,IAAW,OAEXtF,EAAQjL,EAAE,IAAI,IAAIA,EAAE,OACpBwQ,IAAa;AAAA,QAEjB,CAAC,GACGD,GAAU;AACZ,UAAAhL,EAAK,WAAW2K,GAAuBnB,GAAOtL,CAAI,CAAC,EAAE,GACjD+M,KACFjL,EAAK,aAAa2K,GAAuBjF,GAASxH,CAAI,CAAC,EAAE;AAE3D,gBAAMmC,IAAaF,GAAc3F,GAAS,cAAc;AACxD,UAAI6F,KACF,OAAO7F,EAAQ6F,CAAU;AAAA,QAE7B,OAAO;AACL,gBAAM8K,IAAiB,KAAK,UAAUpL,EAAS,IAAI;AACnD,UAAIoL,MACFnL,EAAK,aAAamL,CAAc,EAAE,GAClCF,IAAa;AAAA,QAEjB;AACA,QAAAtG;AAAA,UACE,CAACvL,MAASA,EAAK,QAAQ,uCAAuC,0BAA0B,EAAE,QAAQ,+CAA+C,gCAAgC;AAAA,QAC3L;AACQ;AAAA,MACF,SAAS;AACP,YAAI2G,EAAS,aAAa,uCAAuCA,EAAS,WAAW;AACnF,UAAAC,EAAK,aAAa2K,GAAuB5K,EAAS,WAAW7B,CAAI,CAAC,EAAE,GACpE+M,IAAa;AACb;AAAA,QACF;AACA,cAAMG,IAAgB,KAAK,UAAUrL,EAAS,IAAI;AAClD,QAAIqL,MACFpL,EAAK,aAAaoL,CAAa,EAAE,GACjCH,IAAa;AAAA,MAEjB;AAAA,IACN;AACI,UAAMI,IAAc,OAAO,KAAK7Q,CAAO,EAAE;AACzC,QAAI6Q,MAAgB,MAAMJ,KAAcD;AACtC,MAAA/K,EAAK;AAAA,aACIoL,MAAgB;AACzB,aAAO,KAAK7Q,CAAO,EAAE,QAAQ,CAAC0F,MAAW;AACvC,QAAAF,EAAK,eAAeE,CAAM,OAAOT,GAAsBjF,EAAQ0F,CAAM,CAAC,CAAC,IAAI,GAC3ED,EAAK;AAAA,MACP,CAAC;AAAA,aACQoL,IAAc,GAAG;AAC1B,UAAIC,IAAQ;AACZ,MAAAtL,EAAK,aAAa,GAClB,OAAO,KAAKxF,CAAO,EAAE,QAAQ,CAAC0F,MAAW;AACvC,QACEF,EADEsL,MAAUD,IACP,IAAInL,CAAM,OAAOT,GAAsBjF,EAAQ0F,CAAM,CAAC,CAAC,OAEvD,IAAIA,CAAM,OAAOT,GAAsBjF,EAAQ0F,CAAM,CAAC,CAAC,KAFM,CAAC,GAIrEoL,KAAS;AAAA,MACX,CAAC,GACDtL,EAAK,GAAG,GACRC,EAAK;AAAA,IACP;AACA,QAAIsL,IAAWT,GAAe,SAASnL,CAAM,IAAI,uBAAuBA,EAAO,YAAW,CAAE,SAAS,gCAAgCA,CAAM;AAC3I,WAAIsL,MACEC,IACFK,KAAY,mBAEZA,KAAY,mBAGZP,MACFO,KAAY,kBAEVF,IAAc,MAChBE,KAAY,sBAEdA,KAAY,KACZvL,EAAKuL,CAAQ,GACbtL,EAAK,GACLD,EAAK,sBAAsB,GACpBjD,EAAI;AAAA,EACb;AACF,GAGIyO,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,UAAAT;AAAA,EACJ;AACA,GAGIU,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,KAAAtb,GAAK,UAAAoR,GAAU,aAAAmK,GAAa,UAAA3L,GAAU,YAAAD,GAAY,QAAAH,QAAa;AACzE,UAAM,EAAE,MAAAK,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAW;AAC7C,IAAAmD,EAAK,eAAe,GACpBC,EAAK,GACLD,EAAK,WAAW7P,CAAG,GAAG,GACtB8P,EAAK;AACL,UAAM0L,IAAKpK;AACX,WAAOA,EAAS;AAChB,UAAMqK,IAAa,OAAO,KAAKD,CAAE,EAAE;AACnC,IAAID,EAAY,WAAW,KACzB1L,EAAK,uBAAuB,OAAO,KAAK2L,CAAE,CAAC,OAAO,OAAO,OAAOA,CAAE,EAAE,SAAQ,CAAE,IAAI,GAClF1L,EAAK,KACIyL,EAAY,SAAS,MAC9B1L,EAAK,sBAAsB,GAC3B,OAAO,KAAK2L,CAAE,EAAE,QAAQ,CAACrZ,GAAOsM,MAAM;AACpC,MAAIA,MAAMgN,IAAa,IACrB5L,EAAK,KAAK1N,CAAK,OAAOqZ,EAAGrZ,CAAK,EAAE,UAAU,IAAI,IAE9C0N,EAAK,KAAK1N,CAAK,OAAOqZ,EAAGrZ,CAAK,EAAE,UAAU,GAAG;AAAA,IAEjD,CAAC,GACD0N,EAAK,GAAG,GACRC,EAAK;AAEP,UAAMyF,IAAU,KAAK,UAAU3F,EAAS,IAAI;AAK5C,QAJI2F,MACF1F,EAAK,cAAc0F,CAAO,EAAE,GAC5BzF,EAAK,IAEHF,EAAS,QAAQA,EAAS,WAAWA,EAAS;AAChD,cAAQA,EAAS,UAAQ;AAAA,QACvB,KAAK;AACH,UAAAC,EAAK,kBAAkB,GACvBC,EAAK;AACL;AAAA,QACF,KAAK;AACH,UAAAD,EAAK,kBAAkB,GACvBC,EAAK;AACL;AAAA,QACF,KAAK;AACH,UAAAD,EAAK,uBAAuB,GAC5BC,EAAK;AACL;AAAA,QACF;AACE,UAAAD,EAAK,iBAAiB,GACtBC,EAAK;AACL;AAAA,MACV;AAEI,UAAM4L,IAAezL,GAAUN,GAAY,QAAQ,GAC7CgM,IAAe1L,GAAUN,GAAY,QAAQ,GAC7CiM,IAAaF,IAAe,iBAAiB,OAAOA,CAAY,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,OAAO,CAAC,OAAO,QAC3IG,IAAYF,IAAe,WAAWrM,GAAsBqM,CAAY,CAAC,OAAO,QAChFG,IAAiB,iBAAiBxM,GAAsBM,EAAS,QAAQ,CAAC,MAC1EmM,IAAe,OAAO,QAAQpM,CAAU,EAAE,OAAO,CAAC,CAACb,CAAG,MAAM,CAAC,CAAC,UAAU,UAAU,cAAc,EAAE,SAASA,EAAI,YAAW,CAAE,CAAC,EAAE,IAAI,CAAC,CAACA,GAAK5N,CAAK,MAAM,IAAI4N,CAAG,QAAQO,GAAsBnO,CAAK,CAAC,GAAG,EAAE,KAAK,IAAI,GAC9M8a,IAAaD,IAAe,eAAeA,CAAY,MAAM;AACnE,QAAIX,IAAW,qBAAqB5L,CAAM;AAC1C,IAAI+F,MACF6F,KAAY,qBAEVG,EAAY,WACdH,KAAY;AAEd,UAAMa,IAAkB,CAACD,GAAYF,GAAgBD,GAAWD,CAAU,EAAE,OAAO,CAACrR,MAAM,CAAC,CAACA,CAAC,EAAE,KAAK,IAAI;AACxG,WAAI0R,MACFb,KAAY,KAAKa,CAAe,MAE9BrM,EAAS,QAAQA,EAAS,WAAWA,EAAS,YAChDwL,KAAY,sBAEdA,KAAY,KACZvL,EAAKuL,CAAQ,GACbtL,EAAK,GACLD,EAAK,2BAA2B,GACzBjD,EAAI;AAAA,EACb;AACF,GAGItI,KAAI;AAAA,EACN,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,MAAAgX;AAAA,EACJ;AACA,GAGIY,KAAU;AAAA,EACZ,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAA1J,GAAQ,QAAQ2J,GAAW,SAAA1M,GAAS,UAAAG,GAAU,YAAAD,QAAiB;AACzE,UAAM,EAAE,MAAAE,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAW;AAC7C,IAAAmD,EAAK,eAAe,GACpBA,EAAK,oBAAoB,GACzBC,EAAK;AACL,UAAMN,IAAS2M,EAAU,YAAW,GAC9B9K,IAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,GACU+K,IAAY5M,EAAO,OAAO,CAAC,IAAIA,EAAO,UAAU,CAAC,EAAE,YAAW;AACpE,IAAK6B,EAAQ,SAAS7B,CAAM,MAC1BK,EAAK,oBAAoBuM,CAAS,qBAAqB,GACvDvM,EAAK,eAAeL,EAAO,YAAW,CAAE,GAAG,GAC3CK,EAAK,yBAAyBD,EAAS,OAAO,SAAS,OAAO,GAAG,GACjEC,EAAK,4BAA4B,GACjCA,EAAK,KAAK,GACVC,EAAK,IAEPD,EAAK,cAAcJ,CAAO,IAAI,GAC9BK,EAAK,GACLD,EAAK,0CAA0C,GAC3C2C,EAAO,aAAa,YACtB3C,EAAK,qBAAqB,GAE5BC,EAAK,GACLD,EAAK,wBAAwBuM,CAAS,WAAW;AACjD,UAAM/R,IAAU,OAAO,KAAKsF,CAAU;AACtC,WAAItF,EAAQ,UACVA,EAAQ,QAAQ,CAACyE,MAAQ;AACvB,MAAAe,EAAK,YAAYf,CAAG,SAASO,GAAsBM,EAAWb,CAAG,CAAC,CAAC,GAAG;AAAA,IACxE,CAAC,GAECc,EAAS,QACXC,EAAK,kBAAkB,KAAK,UAAUD,EAAS,IAAI,CAAC,EAAE,GAExDE,EAAK,GACLD,EAAK,kCAAkC,GACvCA,EAAK,yBAAyB,GACvBjD,EAAI;AAAA,EACb;AACF,GAGIyP,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,QAAQH;AAAA,EACZ;AACA,GAGII,KAAQ,CAACpb,IAAQ,OACN,wBACY,KAAKA,CAAK,IAE1BA,IAEF,IAAIA,EAAM,QAAQ,MAAM,OAAO,CAAC,KAErCqb,KAAS,CAACrb,MAAUA,EAAM,QAAQ,OAAO,KAAK,EAAE,QAAQ,OAAO,KAAK,GAGpEsb,KAAS;AAAA,EACX,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AACX,GACIC,KAAS,CAACC,MAAU,CAACC,MAAa;AACpC,MAAID,GAAO;AACT,UAAME,IAAYJ,GAAOG,CAAQ;AACjC,WAAKC,IAGE,IAAIA,CAAS,KAFX;AAAA,EAGX;AACA,SAAO,KAAKD,CAAQ;AACtB,GACIE,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,SAAApN,GAAS,QAAAD,GAAQ,aAAAiE,GAAa,YAAA/D,GAAY,YAAAC,GAAY,UAAAC,EAAQ,GAAIxO,IAAU,OAAO;AAC7F,UAAM,EAAE,QAAAuL,IAAS,MAAM,OAAA+P,IAAQ,IAAO,QAAAI,IAAS,IAAO,SAAAC,IAAU,GAAK,IAAK3b,GACpE4b,IAAa,MACb,EAAE,MAAAnN,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY;AAAA,MACrC,GAAG,OAAOC,KAAW,WAAW,EAAE,QAAAA,EAAM,IAAK,CAAA;AAAA,MAC7C,MAAMA,MAAW,KAAQ;AAAA,EAC7BA,CAAM,KAAK;AAAA,IACb,CAAK,GACKsQ,IAAMR,GAAOC,CAAK;AACxB,QAAIQ,IAAeZ,GAAM7M,CAAO;AAahC,QAZAI,EAAK,QAAQoN,EAAI,SAAS,CAAC,IAAIzN,CAAM,EAAE,GACnCuN,MACFG,IAAe,SAASA,CAAY,GACpCrN,EAAKoN,EAAI,SAAS,CAAC,IAErBpN,EAAK,GAAGoN,EAAI,MAAM,CAAC,GAAGC,CAAY,EAAE,GAChCzJ,MAAgB,cAClB5D,EAAKoN,EAAI,SAAS,CAAC,GAEjBhN,GAAUN,GAAY,iBAAiB,KACzCE,EAAK,cAAc,GAEjBD,EAAS,aAAa,uBAAuB;AAC/C,YAAMuN,IAAwBnN,GAAcN,GAAY,cAAc;AACtE,UAAIyN,GAAuB;AACzB,cAAMrI,IAAoBpF,EAAWyN,CAAqB;AAC1D,YAAIA,KAAyBrI,GAAmB;AAC9C,gBAAMsI,IAAa,OAAOtI,CAAiB,EAAE,QAAQ,0BAA0B,EAAE;AACjF,UAAApF,EAAWyN,CAAqB,IAAIC,GACpCzN,EAAWwN,CAAqB,IAAIC;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAQA,YAPA,OAAO,KAAK1N,CAAU,EAAE,KAAI,EAAG,QAAQ,CAACZ,MAAQ;AAC9C,YAAMiB,IAAS,GAAGjB,CAAG,KAAKY,EAAWZ,CAAG,CAAC;AACzC,MAAAe,EAAK,GAAGoN,EAAI,QAAQ,CAAC,IAAIX,GAAMvM,CAAM,CAAC,EAAE;AAAA,IAC1C,CAAC,GACGJ,EAAW,UACbE,EAAK,GAAGoN,EAAI,QAAQ,CAAC,IAAIX,GAAM3M,EAAW,MAAM,CAAC,EAAE,GAE7CC,EAAS,UAAQ;AAAA,MACvB,KAAK;AACH,QAAAA,EAAS,QAAQ,QAAQ,CAAC2B,MAAU;AAClC,cAAI8L,IAAO;AACX,UAAI9L,EAAM,WACR8L,IAAO,GAAG9L,EAAM,IAAI,MAAMA,EAAM,QAAQ,MAExC8L,IAAOf,GAAM,GAAG/K,EAAM,IAAI,IAAIA,EAAM,KAAK,EAAE,GAE7C1B,EAAK,GAAGoN,EAAI,MAAM,CAAC,IAAII,CAAI,EAAE;AAAA,QAC/B,CAAC;AACD;AAAA,MACF,KAAK;AACH,QAAIzN,EAAS,SACXA,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,gBAAM+L,IAAY/L,EAAM,MAClBgM,IAAU,mBAAmBhM,EAAM,IAAI,GACvCiM,IAAgBD,MAAYD,GAC5BlY,IAAOoY,IAAgBD,IAAUD,GACjCG,IAAOX,IAAS,kBAAkBU,IAAgB,qBAAqBP,EAAI,MAAM;AACvF,UAAApN,EAAK,GAAG4N,CAAI,IAAInB,GAAM,GAAGlX,CAAI,IAAImM,EAAM,KAAK,EAAE,CAAC,EAAE;AAAA,QACnD,CAAC,IAED1B,EAAK,GAAGiN,IAAS,kBAAkBG,EAAI,MAAM,CAAC,IAAIX,GAAM1M,EAAS,IAAI,CAAC,EAAE;AAE1E;AAAA,MACF;AACE,YAAI,CAACA,EAAS;AACZ;AAEF,YAAI8N,IAAe;AACnB,YAAItN,GAAeR,EAAS,QAAQ,KAC9BA,EAAS,KAAK,SAAS;AACzB,cAAI;AACF,kBAAMmL,IAAc,KAAK,MAAMnL,EAAS,IAAI;AAC5C,YAAA8N,IAAe,IACX9N,EAAS,KAAK,QAAQ,GAAG,IAAI,IAC/BC;AAAA,cACE,GAAGiN,IAAS,kBAAkBG,EAAI,MAAM,CAAC;AAAA,EACzD,KAAK;AAAA,gBACalC;AAAA,gBACA;AAAA,gBACAiC;AAAA,cACpB,CAAmB;AAAA;AAAA,YAEnB,IAEgBnN;AAAA,cACE,GAAGiN,IAAS,kBAAkBG,EAAI,MAAM,CAAC;AAAA,EACzD,KAAK,UAAUlC,GAAa,MAAMiC,CAAU,CAAC;AAAA;AAAA,YAE/C;AAAA,UAEY,QAAc;AAAA,UACd;AAGJ,QAAKU,KACH7N,EAAK,GAAGiN,IAAS,kBAAkBG,EAAI,MAAM,CAAC,IAAIX,GAAM1M,EAAS,IAAI,CAAC,EAAE;AAAA,IAElF;AACI,WAAOhD,EAAI;AAAA,EACb;AACF,GAGI+Q,KAAS;AAAA,EACX,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EAClB;AAAA,EACE,SAAS,CAAC,EAAE,YAAAhO,GAAY,UAAAC,GAAU,UAAAwB,GAAU,SAAA3B,GAAS,QAAAD,GAAQ,KAAAxP,EAAG,GAAIoB,MAAY;AAC9E,UAAM2M,IAAO;AAAA,MACX,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,MACb,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,MAAAjD,GAAM,SAAAqJ,EAAO,IAAK,IAAIvJ,EAAY;AAAA,MAC9C,QAAQqB,EAAK;AAAA;AAAA,MAEb,MAAMA,EAAK,WAAW,KAAQ;AAAA,EAClCA,EAAK,MAAM,KAAK;AAAA,IAClB,CAAK;AACD,QAAI6P,IAAM;AACV,UAAMC,IAAQ,CAAA;AACd,IAAI9P,EAAK,WACP8P,EAAM,KAAK9P,EAAK,QAAQ,OAAO,WAAW,GAExCA,EAAK,QACP8P,EAAM,KAAK9P,EAAK,QAAQ,OAAO,QAAQ,GAErCA,EAAK,WACP8P,EAAM,KAAK9P,EAAK,QAAQ,OAAO,WAAW,GAExCA,EAAK,SACP8P,EAAM,KAAK,GAAG9P,EAAK,QAAQ,OAAO,SAAS,IAAIA,EAAK,KAAK,EAAE,GAEzDA,EAAK,UACP8P,EAAM,KAAK,YAAY9P,EAAK,MAAM,EAAE,GAElCA,EAAK,QACP8P,EAAM,KAAK,UAAU9P,EAAK,IAAI,EAAE,GAE9BA,EAAK,UACP8P,EAAM,KAAK,YAAY9P,EAAK,MAAM,EAAE,GAElCA,EAAK,SACP8P,EAAM,KAAK,WAAW9P,EAAK,KAAK,EAAE,GAEhCA,EAAK,WACP8P,EAAM,KAAK,aAAa9P,EAAK,OAAO,EAAE,GAEpCA,EAAK,eACP,OAAO,KAAKqD,CAAQ,EAAE,QAAQ,CAAChM,MAAS;AACtC,YAAMlE,IAAQkQ,EAAShM,CAAI;AAC3B,MAAI,MAAM,QAAQlE,CAAK,IACrBA,EAAM,QAAQ,CAAC4M,MAAQ;AACrB,QAAA+B,EAAK,GAAGzK,CAAI,KAAKkX,GAAMxO,CAAG,CAAC,EAAE;AAAA,MAC/B,CAAC,IAED+B,EAAK,GAAGzK,CAAI,KAAKkX,GAAMpb,CAAK,CAAC,EAAE;AAAA,IAEnC,CAAC,GAEH,OAAO,KAAKyO,CAAU,EAAE,KAAI,EAAG,QAAQ,CAACb,MAAQ;AAC9C,MAAAe,EAAK,GAAGf,CAAG,IAAIwN,GAAM3M,EAAWb,CAAG,CAAC,CAAC,EAAE;AAAA,IACzC,CAAC,GACGc,EAAS,aAAa,sCACpBA,EAAS,UAAUA,EAAS,OAAO,WACrCiO,EAAM,KAAK9P,EAAK,QAAQ,OAAO,QAAQ,GACvC6B,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,MAAA1B,EAAK,GAAG0B,EAAM,IAAI,IAAI+K,GAAM/K,EAAM,KAAK,CAAC,EAAE;AAAA,IAC5C,CAAC,KAGHqM,IAAM;AAER,UAAME,IAAWD,EAAM,SAAS,GAAGA,EAAM,KAAK,GAAG,CAAC,MAAM;AAGxD,QAFA7d,IAAMsc,GAAMvO,EAAK,cAAc/N,IAAMyP,CAAO,GAC5CwG,EAAQ,QAAQ6H,CAAQ,GAAGtO,CAAM,IAAIxP,CAAG,EAAE,GACtC4d,KAAOhO,EAAS,MAAM;AACxB,YAAMmO,IAAezB,GAAM1M,EAAS,IAAI;AACxC,MAAAqG,EAAQ,QAAQ8H,CAAY,KAAK;AAAA,IACnC;AACA,WAAOnR,EAAI;AAAA,EACb;AACF,GAGIoR,KAAO;AAAA,EACT,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,QAAAxO,GAAQ,UAAAI,GAAU,YAAAD,GAAY,SAAAF,EAAO,GAAIrO,MAAY;AAC/D,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,MACT,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,MAAAjD,EAAI,IAAK,IAAIF,EAAY;AAAA,MACrC,GAAG,OAAOqB,EAAK,UAAW,WAAW,EAAE,QAAQA,EAAK,OAAM,IAAK,CAAA;AAAA,MAC/D,MAAMA,EAAK,WAAW,KAAQ;AAAA,EAClCA,EAAK,MAAM,KAAK;AAAA,IAClB,CAAK;AACD,WAAIA,EAAK,UACP8B,EAAK,QAAQ9B,EAAK,QAAQ,OAAO,WAAW,EAAE,IAE9C8B,EAAK,QAAQ9B,EAAK,QAAQ,OAAO,SAAS,EAAE,GAE9C8B,EAAK,YAAYyM,GAAM9M,CAAM,CAAC,EAAE,GAChC,OAAO,KAAKG,CAAU,EAAE,QAAQ,CAACb,MAAQ;AACvC,YAAMiB,IAAS,GAAGjB,CAAG,KAAKa,EAAWb,CAAG,CAAC;AACzC,MAAAe,EAAK,YAAYyM,GAAMvM,CAAM,CAAC,EAAE;AAAA,IAClC,CAAC,GACGH,EAAS,QACXC,EAAK,eAAe0M,GAAOD,GAAM1M,EAAS,IAAI,CAAC,CAAC,EAAE,GAEpDC,EAAK9B,EAAK,QAAQ,OAAO,mBAAmB,GAC5C8B,EAAK,KAAKyM,GAAM7M,CAAO,CAAC,EAAE,GACnB7C,EAAI;AAAA,EACb;AACF,GAGIqR,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACT;AAAA,EACE,aAAa;AAAA,IACX,MAAMpB;AAAA,IACN,QAAAc;AAAA,IACA,MAAAK;AAAA,EACJ;AACA,GAGIE,KAAc,CAACrK,GAAQsK,MAAQA,EAAI,OAAOtK,CAAM,GAChDuK,KAAc,CAAClN,GAAKgJ,GAAQlD,GAAamD,MAAgB;AAC3D,QAAMC,IAAgB8D,GAAY/D,GAAanD,CAAW,GACpDqD,IAAqB6D,GAAY/D,IAAc,GAAGnD,CAAW,GAC7DpK,IAAOsN,IAAS;AAAA,EACtBE,CAAa,KAAK;AAClB,SAAIF,IACK;AAAA,EACTE,CAAa,GAAGlJ,EAAI,KAAKtE,CAAI,CAAC;AAAA,EAC9ByN,CAAkB,MAEX,IAAInJ,EAAI,KAAKtE,CAAI,CAAC;AAC3B,GACIyR,KAAqB,CAACjZ,GAAMoC,GAAYuG,MAAS,OAAO3I,CAAI,MAAMkZ,GAAuB9W,GAAYuG,CAAI,CAAC,IAC1GuQ,KAAyB,CAACpd,GAAO6M,GAAMoM,MAAgB;AAEzD,UADAA,IAAcA,MAAgB,SAAS,IAAIA,IAAc,GACjD,OAAO,UAAU,SAAS,KAAKjZ,CAAK,GAAC;AAAA,IAC3C,KAAK;AACH,aAAOA;AAAA,IACT,KAAK,kBAAkB;AACrB,UAAIgZ,IAAS;AACb,YAAMO,IAAuBvZ,EAAM,IAAI,CAACwZ,OAClC,OAAO,UAAU,SAAS,KAAKA,CAAC,MAAM,sBACxCR,IAAS,OAAO,KAAKQ,CAAC,EAAE,SAAS,IAE5B4D,GAAuB5D,GAAG3M,GAAMoM,CAAW,EACnD;AACD,aAAOiE,GAAY3D,GAAsBP,GAAQnM,EAAK,QAAQoM,CAAW;AAAA,IAC3E;AAAA,IACA,KAAK,mBAAmB;AACtB,YAAMlD,IAAgB,CAAA;AACtB,iBAAWnI,KAAO5N;AAChB,QAAA+V,EAAc,KAAK,IAAInI,CAAG,MAAMwP,GAAuBpd,EAAM4N,CAAG,GAAGf,GAAMoM,CAAW,CAAC,EAAE;AAEzF,aAAOiE;AAAA,QACLnH;AAAA;AAAA,QAEAlJ,EAAK,UAAUkJ,EAAc,SAAS;AAAA;AAAA,QAEtClJ,EAAK;AAAA,QACLoM;AAAA,MACR;AAAA,IACI;AAAA,IACA,KAAK;AACH,aAAOjZ,EAAM,SAAQ;AAAA,IACvB;AACE,aAAIA,KAAU,OACL,QAEF,IAAIA,EAAM,SAAQ,EAAG,QAAQ,MAAM,KAAK,CAAC;AAAA,EACtD;AACA,GAGIqd,KAAa;AAAA,EACf,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb;AAAA,EACE,SAAS,CAAC,EAAE,YAAA5O,GAAY,UAAAC,GAAU,QAAA4C,GAAQ,UAAApB,GAAU,QAAA5B,EAAM,GAAIpO,MAAY;AACxE,UAAM2M,IAAO;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,GAAG3M;AAAA,IACT,GACU,EAAE,MAAAyO,GAAM,OAAAC,GAAO,MAAAlD,EAAI,IAAK,IAAIF,EAAY,EAAE,QAAQqB,EAAK,QAAQ;AACrE,IAAA8B,EAAK,mBAAmB,GACxBC,EAAK;AACL,UAAMsJ,IAAUxJ,EAAS,QAAQA,EAAS,WAAWA,EAAS;AAC9D,QAAIwJ;AACF,cAAQxJ,EAAS,UAAQ;AAAA,QACvB,KAAK;AACH,cAAIA,EAAS,QAAQ,QAAQ;AAC3B,kBAAMpI,IAAaoI,EAAS,OAAO,IAAI,CAACtF,MAAM,IAAIA,EAAE,IAAI,OAAOA,EAAE,KAAK,GAAG;AACzE,YAAIyD,EAAK,UACP8B,EAAK,oBAAoB,GACzBrI,EAAW,QAAQ,CAAC+J,MAAU1B,EAAK,GAAG0B,CAAK,KAAK,CAAC,CAAC,GAClD1B,EAAK,GAAG,KAERA,EAAK,qBAAqBrI,EAAW,KAAK,IAAI,CAAC,GAAG,GAEpDqI,EAAK,4FAA4F,GACjGA,EAAK,4CAA4C,GACjDC,EAAK;AAAA,UACP;AACA;AAAA,QACF,KAAK;AACH,UAAIF,EAAS,YACXC,EAAK,GAAGwO,GAAmB,cAAczO,EAAS,SAAS7B,CAAI,CAAC,qBAAqB,GACrF+B,EAAK,GACLD,EAAK,oFAAoF,GACzFC,EAAK;AAEP;AAAA,QACF,KAAK;AACH,UAAAD,EAAKwO,GAAmB,cAAczO,EAAS,QAAQ7B,CAAI,CAAC,GAC5D+B,EAAK,GACLD,EAAK,mBAAmBD,EAAS,QAAQ,GAAG,GAC5CE,EAAK,GACLD,EAAK,eAAe,GACpBA,EAAK,2BAA2B,GAChCA,EAAK,kCAAkC,CAAC,GACxCA,EAAK,kCAAkC,CAAC,GACxCA,EAAK,qEAAqE,CAAC,GAC3EA,EAAK,yCAAyC,CAAC,GAC/CA,EAAK,2CAA2C,CAAC,GACjDA,EAAK,2EAA2E,CAAC,GACjFA,EAAK,iDAAiD,CAAC,GACvDA,EAAK,uDAAuD,CAAC,GAC7DA,EAAK,uBAAuB,CAAC,GAC7BA,EAAK,+CAA+C,CAAC,GACrDA,EAAK,wCAAwC,CAAC,GAC9CA,EAAK,KAAK,CAAC,GACXA,EAAK,GAAG,GACRC,EAAK,GACLD,EAAK,gCAAgC,GACrCC,EAAK;AACL;AAAA,QACF;AACE,UAAAD,EAAK,wBAAwBD,EAAS,IAAI,SAAS,GACnDE,EAAK;AAAA,MACf;AAEI,IAAAD,EAAK,0BAA0B2C,EAAO,IAAI,KAAK;AAC/C,UAAMgM,IAAUpN,IAAW,OAAO,QAAQA,CAAQ,IAAI,CAAA;AACtD,WAAIoN,EAAQ,SAAS,IACnB3O,EAAK,oCAAoC,KAEzCA,EAAK,0EAA0E,GAC/EA,EAAK,oCAAoC,GACzC2O,EAAQ,QAAQ,CAACrc,MAAU;AACzB,YAAM2M,IAAM3M,EAAM,CAAC,GACbjB,IAAQiB,EAAM,CAAC;AACrB,cAAQ,OAAO,UAAU,SAAS,KAAKjB,CAAK,GAAC;AAAA,QAC3C,KAAK;AACH,UAAA2O,EAAK,uBAAuBf,CAAG,cAAc5N,CAAK,OAAO,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,UAAAA,EAAM,QAAQ,CAAC4M,MAAQ;AACrB,YAAA+B,EAAK,uBAAuBf,CAAG,cAAchB,CAAG,OAAO,CAAC;AAAA,UAC1D,CAAC;AACD;AAAA,MACZ;AAAA,IACM,CAAC,GACD+B,EAAK,GAAG,GACRA,EAAK,qFAAqF,GAC1FC,EAAK,GACLD,EAAK,gDAAgD,IAEvDA,EAAK,yBAAyBL,CAAM,GAAG,GACvCK,EAAK,6BAA6B9B,EAAK,OAAO,EAAE,GAC5C,OAAO,KAAK4B,CAAU,EAAE,UAC1BE,EAAK,iCAAiCyO,GAAuB3O,GAAY5B,CAAI,CAAC,EAAE,GAE9EqL,KACFvJ,EAAK,6BAA6B,GAEpCC,EAAK,GACLD,EAAK,gEAAgE,GACrEA,EAAK,8CAA8C,GAC5CjD,EAAI;AAAA,EACb;AACF,GAGI6R,KAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACb;AAAA,EACE,aAAa;AAAA,IACX,YAAAF;AAAA,EACJ;AACA,GAGIG,KAAU;AAAA,EACZ,GAAAha;AAAA,EACA,SAAA+M;AAAA,EACA,QAAAkB;AAAA,EACA,IAAAW;AAAA,EACA,MAAAU;AAAA,EACA,MAAAM;AAAA,EACA,YAAAe;AAAA,EACA,MAAAI;AAAA,EACA,QAAAE;AAAA,EACA,MAAAe;AAAA,EACA,MAAAY;AAAA,EACA,OAAAI;AAAA,EACA,KAAA8B;AAAA,EACA,YAAAM;AAAA,EACA,QAAAuB;AAAA,EACA,GAAA/W;AAAA,EACA,MAAA+X;AAAA,EACA,OAAA4B;AAAA,EACA,OAAAQ;AACF;;;;;AChyGC,KAAC,SAASnW,GAAM;AAGhB,UAAIqW,IAA4CC,KAC/C,CAACA,EAAQ,YAAYA,GAClBC,IAA0CC,KAC7C,CAACA,EAAO,YAAYA,GACjBC,IAAa,OAAOC,MAAU,YAAYA;AAC9C,OACCD,EAAW,WAAWA,KACtBA,EAAW,WAAWA,KACtBA,EAAW,SAASA,OAEpBzW,IAAOyW;AAQR,UAAIE,GAGJC,IAAS,YAGTC,IAAO,IACPC,IAAO,GACPC,IAAO,IACPC,IAAO,IACPC,IAAO,KACPC,IAAc,IACdC,IAAW,KACXxQ,IAAY,KAGZyQ,IAAgB,SAChBC,IAAgB,gBAChBC,IAAkB,6BAGlBC,IAAS;AAAA,QACR,UAAY;AAAA,QACZ,aAAa;AAAA,QACb,iBAAiB;AAAA,SAIlBC,IAAgBX,IAAOC,GACvBW,IAAQ,KAAK,OACbC,IAAqB,OAAO,cAG5BlR;AAUA,eAAS5O,EAAM+B,GAAM;AACpB,cAAM,IAAI,WAAW4d,EAAO5d,CAAI,CAAC;AAAA,MACnC;AAUC,eAASge,EAAIC,GAAOC,GAAI;AAGvB,iBAFItM,IAASqM,EAAM,QACf7d,IAAS,CAAA,GACNwR;AACN,UAAAxR,EAAOwR,CAAM,IAAIsM,EAAGD,EAAMrM,CAAM,CAAC;AAElC,eAAOxR;AAAA,MACT;AAYC,eAAS+d,EAAU/R,GAAQ8R,GAAI;AAC9B,YAAIE,IAAQhS,EAAO,MAAM,GAAG,GACxBhM,IAAS;AACb,QAAIge,EAAM,SAAS,MAGlBhe,IAASge,EAAM,CAAC,IAAI,KACpBhS,IAASgS,EAAM,CAAC,IAGjBhS,IAASA,EAAO,QAAQuR,GAAiB,GAAM;AAC/C,YAAIU,IAASjS,EAAO,MAAM,GAAG,GACzBkP,IAAU0C,EAAIK,GAAQH,CAAE,EAAE,KAAK,GAAG;AACtC,eAAO9d,IAASkb;AAAA,MAClB;AAeC,eAASgD,EAAWlS,GAAQ;AAM3B,iBALImS,IAAS,CAAA,GACTC,IAAU,GACV5M,IAASxF,EAAO,QAChBnN,GACAwf,GACGD,IAAU5M;AAChB,UAAA3S,IAAQmN,EAAO,WAAWoS,GAAS,GAC/Bvf,KAAS,SAAUA,KAAS,SAAUuf,IAAU5M,KAEnD6M,IAAQrS,EAAO,WAAWoS,GAAS,IAC9BC,IAAQ,UAAW,QACvBF,EAAO,OAAOtf,IAAQ,SAAU,OAAOwf,IAAQ,QAAS,KAAO,KAI/DF,EAAO,KAAKtf,CAAK,GACjBuf,QAGDD,EAAO,KAAKtf,CAAK;AAGnB,eAAOsf;AAAA,MACT;AAUC,eAASG,EAAWT,GAAO;AAC1B,eAAOD,EAAIC,GAAO,SAAShf,GAAO;AACjC,cAAIsf,IAAS;AACb,iBAAItf,IAAQ,UACXA,KAAS,OACTsf,KAAUR,EAAmB9e,MAAU,KAAK,OAAQ,KAAM,GAC1DA,IAAQ,QAASA,IAAQ,OAE1Bsf,KAAUR,EAAmB9e,CAAK,GAC3Bsf;AAAA,QACV,CAAG,EAAE,KAAK,EAAE;AAAA,MACZ;AAWC,eAASI,EAAaC,GAAW;AAChC,eAAIA,IAAY,KAAK,KACbA,IAAY,KAEhBA,IAAY,KAAK,KACbA,IAAY,KAEhBA,IAAY,KAAK,KACbA,IAAY,KAEb1B;AAAA,MACT;AAaC,eAAS2B,EAAaC,GAAOtD,GAAM;AAGlC,eAAOsD,IAAQ,KAAK,MAAMA,IAAQ,QAAQtD,KAAQ,MAAM;AAAA,MAC1D;AAOC,eAASuD,EAAMC,GAAOC,GAAWC,GAAW;AAC3C,YAAIC,IAAI;AAGR,aAFAH,IAAQE,IAAYpB,EAAMkB,IAAQ1B,CAAI,IAAI0B,KAAS,GACnDA,KAASlB,EAAMkB,IAAQC,CAAS,GACFD,IAAQnB,IAAgBT,KAAQ,GAAG+B,KAAKjC;AACrE,UAAA8B,IAAQlB,EAAMkB,IAAQnB,CAAa;AAEpC,eAAOC,EAAMqB,KAAKtB,IAAgB,KAAKmB,KAASA,IAAQ3B,EAAK;AAAA,MAC/D;AASC,eAAS+B,GAAOrf,GAAO;AAEtB,YAAIwe,IAAS,CAAA,GACTc,IAActf,EAAM,QACpBuf,GACA9S,IAAI,GACJ+S,IAAI/B,GACJgC,IAAOjC,GACPkC,GACAC,IACA1Z,GACA2Z,GACAC,GACAT,GACAL,GACAe,GAEAC;AAWJ,aALAL,IAAQ1f,EAAM,YAAYiN,CAAS,GAC/ByS,IAAQ,MACXA,IAAQ,IAGJC,KAAI,GAAGA,KAAID,GAAO,EAAEC;AAExB,UAAI3f,EAAM,WAAW2f,EAAC,KAAK,OAC1BzhB,EAAM,WAAW,GAElBsgB,EAAO,KAAKxe,EAAM,WAAW2f,EAAC,CAAC;AAMhC,aAAK1Z,IAAQyZ,IAAQ,IAAIA,IAAQ,IAAI,GAAGzZ,IAAQqZ,KAAwC;AAOvF,eAAKM,IAAOnT,GAAGoT,IAAI,GAAGT,IAAIjC,GAErBlX,KAASqZ,KACZphB,EAAM,eAAe,GAGtB6gB,IAAQH,EAAa5e,EAAM,WAAWiG,GAAO,CAAC,IAE1C8Y,KAAS5B,KAAQ4B,IAAQhB,GAAOb,IAASzQ,KAAKoT,CAAC,MAClD3hB,EAAM,UAAU,GAGjBuO,KAAKsS,IAAQc,GACbC,IAAIV,KAAKK,IAAOrC,IAAQgC,KAAKK,IAAOpC,IAAOA,IAAO+B,IAAIK,GAElD,EAAAV,IAAQe,IAfuCV,KAAKjC;AAmBxD,YAAA4C,IAAa5C,IAAO2C,GAChBD,IAAI9B,EAAMb,IAAS6C,CAAU,KAChC7hB,EAAM,UAAU,GAGjB2hB,KAAKE;AAIN,UAAAR,IAAMf,EAAO,SAAS,GACtBiB,IAAOT,EAAMvS,IAAImT,GAAML,GAAKK,KAAQ,CAAC,GAIjC7B,EAAMtR,IAAI8S,CAAG,IAAIrC,IAASsC,KAC7BthB,EAAM,UAAU,GAGjBshB,KAAKzB,EAAMtR,IAAI8S,CAAG,GAClB9S,KAAK8S,GAGLf,EAAO,OAAO/R,KAAK,GAAG+S,CAAC;AAAA,QAE1B;AAEE,eAAOb,EAAWH,CAAM;AAAA,MAC1B;AASC,eAASwB,GAAOhgB,GAAO;AACtB,YAAIwf,GACAP,GACAgB,GACAC,GACAT,GACAE,GACAlK,GACA0K,IACAf,GACAU,GACAvV,GACAiU,IAAS,CAAA,GAETc,GAEAc,GACAL,GACAM;AAcJ,aAXArgB,IAAQue,EAAWve,CAAK,GAGxBsf,IAActf,EAAM,QAGpBwf,IAAI/B,GACJwB,IAAQ,GACRQ,IAAOjC,GAGFmC,IAAI,GAAGA,IAAIL,GAAa,EAAEK;AAC9B,UAAApV,IAAevK,EAAM2f,CAAC,GAClBpV,IAAe,OAClBiU,EAAO,KAAKR,EAAmBzT,CAAY,CAAC;AAe9C,aAXA0V,IAAiBC,IAAc1B,EAAO,QAMlC0B,KACH1B,EAAO,KAAKvR,CAAS,GAIfgT,IAAiBX,KAAa;AAIpC,eAAK7J,IAAIyH,GAAQyC,IAAI,GAAGA,IAAIL,GAAa,EAAEK;AAC1C,YAAApV,IAAevK,EAAM2f,CAAC,GAClBpV,KAAgBiV,KAAKjV,IAAekL,MACvCA,IAAIlL;AAcN,eARA6V,IAAwBH,IAAiB,GACrCxK,IAAI+J,IAAIzB,GAAOb,IAAS+B,KAASmB,CAAqB,KACzDliB,EAAM,UAAU,GAGjB+gB,MAAUxJ,IAAI+J,KAAKY,GACnBZ,IAAI/J,GAECkK,IAAI,GAAGA,IAAIL,GAAa,EAAEK;AAO9B,gBANApV,IAAevK,EAAM2f,CAAC,GAElBpV,IAAeiV,KAAK,EAAEP,IAAQ/B,KACjChf,EAAM,UAAU,GAGbqM,KAAgBiV,GAAG;AAEtB,mBAAKW,KAAIlB,GAAOG,IAAIjC,GACnB2C,IAAIV,KAAKK,IAAOrC,IAAQgC,KAAKK,IAAOpC,IAAOA,IAAO+B,IAAIK,GAClD,EAAAU,KAAIL,IAFqCV,KAAKjC;AAKlD,gBAAAkD,KAAUF,KAAIL,GACdC,IAAa5C,IAAO2C,GACpBtB,EAAO;AAAA,kBACNR,EAAmBc,EAAagB,IAAIO,KAAUN,GAAY,CAAC,CAAC;AAAA,mBAE7DI,KAAIpC,EAAMsC,KAAUN,CAAU;AAG/B,cAAAvB,EAAO,KAAKR,EAAmBc,EAAaqB,IAAG,CAAC,CAAC,CAAC,GAClDV,IAAOT,EAAMC,GAAOmB,GAAuBH,KAAkBC,CAAW,GACxEjB,IAAQ,GACR,EAAEgB;AAAA,YACP;AAGG,YAAEhB,GACF,EAAEO;AAAA,QAEL;AACE,eAAOhB,EAAO,KAAK,EAAE;AAAA,MACvB;AAaC,eAAS8B,EAAUtgB,GAAO;AACzB,eAAOoe,EAAUpe,GAAO,SAASqM,GAAQ;AACxC,iBAAOqR,EAAc,KAAKrR,CAAM,IAC7BgT,GAAOhT,EAAO,MAAM,CAAC,EAAE,YAAW,CAAE,IACpCA;AAAA,QACN,CAAG;AAAA,MACH;AAaC,eAASkU,GAAQvgB,GAAO;AACvB,eAAOoe,EAAUpe,GAAO,SAASqM,GAAQ;AACxC,iBAAOsR,EAAc,KAAKtR,CAAM,IAC7B,SAAS2T,GAAO3T,CAAM,IACtBA;AAAA,QACN,CAAG;AAAA,MACH;AAwCQ,UAnCP4Q,IAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMV,SAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQX,MAAQ;AAAA,UACP,QAAUsB;AAAA,UACV,QAAUI;AAAA;QAEX,QAAUU;AAAA,QACV,QAAUW;AAAA,QACV,SAAWO;AAAA,QACX,WAAaD;AAAA,SAcH3D,KAAeE;AACzB,YAAIC,EAAO,WAAWH;AAErB,UAAAE,EAAW,UAAUI;AAAA;AAGrB,eAAKnQ,KAAOmQ;AACX,YAAAA,EAAS,eAAenQ,CAAG,MAAM6P,EAAY7P,CAAG,IAAImQ,EAASnQ,CAAG;AAAA;AAKlE,QAAAxG,EAAK,WAAW2W;AAAA,IAGlB,GAAEuD,EAAI;AAAA;;;;wBCjhBNC,KAAiB;;;;wBCAjBC,KAAiB;;;;wBCAjBC,KAAiB;;;;wBCAjBC,KAAiB;;;;wBCAjBna,KAAiB;;;;wBCAjBoa,KAAiB;;;;wBCAjB5gB,KAAiB;;;;wBCAjB6gB,KAAiB;;;;wBCAjBC,KAAiB,KAAK;;;;wBCAtBhD,KAAiB,KAAK;;;;wBCAtBiD,KAAiB,KAAK;;;;wBCAtBC,KAAiB,KAAK;;;;wBCAtBC,KAAiB,KAAK;;;;wBCAtBC,KAAiB,KAAK;;;;wBCAtBC,KAAiB,OAAO,SAAS,SAAenjB,GAAG;AAClD,WAAOA,MAAMA;AAAA,EACd;;;;;;ACHA,MAAIojB,IAAS5V,gBAAAA,GAAA;AAGb,SAAA6V,KAAiB,SAAcC,GAAQ;AACtC,WAAIF,EAAOE,CAAM,KAAKA,MAAW,IACzBA,IAEDA,IAAS,IAAI,KAAK;AAAA,EAC1B;;;;wBCPAC,KAAiB,OAAO;;;;;;ACAxB,MAAIC,IAAQhW,gBAAAA,GAAA;AAEZ,MAAIgW;AACH,QAAI;AACH,MAAAA,EAAM,CAAA,GAAI,QAAQ;AAAA,IACpB,QAAa;AAEX,MAAAA,IAAQ;AAAA,IACV;AAGA,SAAAC,KAAiBD;;;;;;ACXjB,MAAIE,IAAkB,OAAO,kBAAkB;AAC/C,MAAIA;AACH,QAAI;AACH,MAAAA,EAAgB,CAAA,GAAI,KAAK,EAAE,OAAO,EAAC,CAAE;AAAA,IACvC,QAAa;AAEX,MAAAA,IAAkB;AAAA,IACpB;AAGA,SAAAC,KAAiBD;;;;wBCTjBE,KAAiB,WAAsB;AACtC,QAAI,OAAO,UAAW,cAAc,OAAO,OAAO,yBAA0B;AAAc,aAAO;AACjG,QAAI,OAAO,OAAO,YAAa;AAAY,aAAO;AAGlD,QAAI5S,IAAM,CAAA,GACN6S,IAAM,OAAO,MAAM,GACnBC,IAAS,OAAOD,CAAG;AAIvB,QAHI,OAAOA,KAAQ,YAEf,OAAO,UAAU,SAAS,KAAKA,CAAG,MAAM,qBACxC,OAAO,UAAU,SAAS,KAAKC,CAAM,MAAM;AAAqB,aAAO;AAU3E,QAAIC,IAAS;AACb,IAAA/S,EAAI6S,CAAG,IAAIE;AACX,aAASC,KAAKhT;AAAO,aAAO;AAG5B,QAFI,OAAO,OAAO,QAAS,cAAc,OAAO,KAAKA,CAAG,EAAE,WAAW,KAEjE,OAAO,OAAO,uBAAwB,cAAc,OAAO,oBAAoBA,CAAG,EAAE,WAAW;AAAK,aAAO;AAE/G,QAAIiT,IAAO,OAAO,sBAAsBjT,CAAG;AAG3C,QAFIiT,EAAK,WAAW,KAAKA,EAAK,CAAC,MAAMJ,KAEjC,CAAC,OAAO,UAAU,qBAAqB,KAAK7S,GAAK6S,CAAG;AAAK,aAAO;AAEpE,QAAI,OAAO,OAAO,4BAA6B,YAAY;AAE1D,UAAIK;AAAA;AAAA,QAAgD,OAAO,yBAAyBlT,GAAK6S,CAAG;AAAA;AAC5F,UAAIK,EAAW,UAAUH,KAAUG,EAAW,eAAe;AAAQ,eAAO;AAAA,IAC9E;AAEC,WAAO;AAAA,EACR;;;;;;AC1CA,MAAIC,IAAa,OAAO,SAAW,OAAe,QAC9CC,IAAgB5W,GAAA;AAGpB,SAAA6W,KAAiB,WAA4B;AAI5C,WAHI,OAAOF,KAAe,cACtB,OAAO,UAAW,cAClB,OAAOA,EAAW,KAAK,KAAM,YAC7B,OAAO,OAAO,KAAK,KAAM,WAAmB,KAEzCC,EAAa;AAAA,EACrB;;;;wBCVAE,KAAkB,OAAO,UAAY,OAAe,QAAQ,kBAAmB;;;;;;ACD/E,MAAIC,IAAU/W,gBAAAA,GAAA;AAGd,SAAAgX,KAAiBD,EAAQ,kBAAkB;;;;;;ACD3C,MAAIE,IAAgB,mDAChBC,IAAQ,OAAO,UAAU,UACzB3B,IAAM,KAAK,KACX4B,IAAW,qBAEXC,IAAW,SAAkB5kB,GAAGyH,GAAG;AAGnC,aAFIwJ,IAAM,CAAA,GAEDzC,IAAI,GAAGA,IAAIxO,EAAE,QAAQwO,KAAK;AAC/B,MAAAyC,EAAIzC,CAAC,IAAIxO,EAAEwO,CAAC;AAEhB,aAASkT,IAAI,GAAGA,IAAIja,EAAE,QAAQia,KAAK;AAC/B,MAAAzQ,EAAIyQ,IAAI1hB,EAAE,MAAM,IAAIyH,EAAEia,CAAC;AAG3B,WAAOzQ;AAAA,EACX,GAEI4T,IAAQ,SAAeC,GAASC,GAAQ;AAExC,aADI9T,IAAM,CAAA,GACDzC,IAAIuW,GAAarD,IAAI,GAAGlT,IAAIsW,EAAQ,QAAQtW,KAAK,GAAGkT,KAAK;AAC9D,MAAAzQ,EAAIyQ,CAAC,IAAIoD,EAAQtW,CAAC;AAEtB,WAAOyC;AAAA,EACX,GAEI+T,IAAQ,SAAU/T,GAAKgU,GAAQ;AAE/B,aADI/G,IAAM,IACD1P,IAAI,GAAGA,IAAIyC,EAAI,QAAQzC,KAAK;AACjC,MAAA0P,KAAOjN,EAAIzC,CAAC,GACRA,IAAI,IAAIyC,EAAI,WACZiN,KAAO+G;AAGf,WAAO/G;AAAA,EACX;AAEA,SAAAgH,KAAiB,SAAcC,GAAM;AACjC,QAAIC,IAAS;AACb,QAAI,OAAOA,KAAW,cAAcV,EAAM,MAAMU,CAAM,MAAMT;AACxD,YAAM,IAAI,UAAUF,IAAgBW,CAAM;AAyB9C,aAvBIC,IAAOR,EAAM,WAAW,CAAC,GAEzBS,GACAC,IAAS,WAAY;AACrB,UAAI,gBAAgBD,GAAO;AACvB,YAAIljB,IAASgjB,EAAO;AAAA,UAChB;AAAA,UACAR,EAASS,GAAM,SAAS;AAAA;AAE5B,eAAI,OAAOjjB,CAAM,MAAMA,IACZA,IAEJ;AAAA,MACnB;AACQ,aAAOgjB,EAAO;AAAA,QACVD;AAAA,QACAP,EAASS,GAAM,SAAS;AAAA;IAGpC,GAEQG,IAAczC,EAAI,GAAGqC,EAAO,SAASC,EAAK,MAAM,GAChDI,IAAY,CAAA,GACPjX,IAAI,GAAGA,IAAIgX,GAAahX;AAC7B,MAAAiX,EAAUjX,CAAC,IAAI,MAAMA;AAKzB,QAFA8W,IAAQ,SAAS,UAAU,sBAAsBN,EAAMS,GAAW,GAAG,IAAI,2CAA2C,EAAEF,CAAM,GAExHH,EAAO,WAAW;AAClB,UAAIM,IAAQ,WAAiB;AAAA,MAAA;AAC7B,MAAAA,EAAM,YAAYN,EAAO,WACzBE,EAAM,YAAY,IAAII,EAAK,GAC3BA,EAAM,YAAY;AAAA,IAC1B;AAEI,WAAOJ;AAAA,EACX;;;;;;ACjFA,MAAIJ,IAAiB1X,GAAA;AAErB,SAAAmY,KAAiB,SAAS,UAAU,QAAQT;;;;wBCD5CU,KAAiB,SAAS,UAAU;;;;wBCApCC,KAAiB,SAAS,UAAU;;;;wBCApCC,KAAiB,OAAO,UAAY,OAAe,WAAW,QAAQ;;;;;;ACDtE,MAAIC,IAAOvY,GAAA,GAEPwY,IAASvY,GAAA,GACTwY,IAAQtY,GAAA,GACRuY,IAAgBC,GAAA;AAGpB,SAAAC,KAAiBF,KAAiBH,EAAK,KAAKE,GAAOD,CAAM;;;;;;ACPzD,MAAID,IAAOvY,GAAA,GACP6Y,IAAa5Y,gBAAAA,GAAA,GAEbwY,IAAQtY,GAAA,GACR2Y,IAAeH,GAAA;AAGnB,SAAAI,KAAiB,SAAuBlB,GAAM;AAC7C,QAAIA,EAAK,SAAS,KAAK,OAAOA,EAAK,CAAC,KAAM;AACzC,YAAM,IAAIgB,EAAW,wBAAwB;AAE9C,WAAOC,EAAaP,GAAME,GAAOZ,CAAI;AAAA,EACtC;;;;;;ACZA,MAAImB,IAAWhZ,GAAA,GACX+V,IAAO9V,gBAAAA,GAAA,GAEPgZ;AACJ,MAAI;AAEH,IAAAA;AAAA,IAA0E,CAAA,EAAI,cAAc,MAAM;AAAA,EACnG,SAAS7mB,GAAG;AACX,QAAI,CAACA,KAAK,OAAOA,KAAM,YAAY,EAAE,UAAUA,MAAMA,EAAE,SAAS;AAC/D,YAAMA;AAAA,EAER;AAGA,MAAI8mB,IAAO,CAAC,CAACD,KAAoBlD,KAAQA;AAAA,IAAK,OAAO;AAAA;AAAA,IAAyD;AAAA,EAAW,GAErHgB,IAAU,QACVoC,IAAkBpC,EAAQ;AAG9B,SAAAqC,KAAiBF,KAAQ,OAAOA,EAAK,OAAQ,aAC1CF,EAAS,CAACE,EAAK,GAAG,CAAC,IACnB,OAAOC,KAAoB;AAAA;AAAA,IACK,SAAmB1lB,GAAO;AAE1D,aAAO0lB,EAAgB1lB,KAAS,OAAOA,IAAQsjB,EAAQtjB,CAAK,CAAC;AAAA,IAChE;AAAA,MACI;;;;;;AC3BJ,MAAI4lB,IAAkBrZ,GAAA,GAClBsZ,IAAmBrZ,GAAA,GAEnBsZ,IAAiBpZ,gBAAAA,GAAA;AAGrB,SAAAqZ,KAAiBH,IACd,SAAkBI,GAAG;AAEtB,WAAOJ,EAAgBI,CAAC;AAAA,EAC1B,IACGH,IACC,SAAkBG,GAAG;AACtB,QAAI,CAACA,KAAM,OAAOA,KAAM,YAAY,OAAOA,KAAM;AAChD,YAAM,IAAI,UAAU,yBAAyB;AAG9C,WAAOH,EAAiBG,CAAC;AAAA,EAC5B,IACIF,IACC,SAAkBE,GAAG;AAEtB,WAAOF,EAAeE,CAAC;AAAA,EAC3B,IACK;;;;;;ACxBL,MAAIC,IAAO,SAAS,UAAU,MAC1BC,IAAU,OAAO,UAAU,gBAC3BpB,IAAOvY,GAAA;AAGX,SAAA4Z,KAAiBrB,EAAK,KAAKmB,GAAMC,CAAO;;;;;;ACLxC,MAAIE,GAEA9C,IAAU/W,gBAAAA,GAAA,GAEV8Z,IAAS7Z,gBAAAA,GAAA,GACT8Z,IAAa5Z,gBAAAA,GAAA,GACb6Z,IAAcrB,gBAAAA,GAAA,GACdsB,IAAkBC,gBAAAA,GAAA,GAClBC,IAAeC,gBAAAA,GAAA,GACfvB,IAAawB,gBAAAA,GAAA,GACbC,IAAYC,gBAAAA,GAAA,GAEZjF,IAAMkF,gBAAAA,GAAA,GACNlI,IAAQmI,gBAAAA,GAAA,GACRlF,IAAMmF,gBAAAA,GAAA,GACNlF,IAAMmF,gBAAAA,GAAA,GACNlF,IAAMmF,gBAAAA,GAAA,GACNlF,IAAQmF,gBAAAA,GAAA,GACRhF,IAAOiF,gBAAAA,GAAA,GAEPC,IAAY,UAGZC,IAAwB,SAAUC,GAAkB;AACvD,QAAI;AACH,aAAOF,EAAU,2BAA2BE,IAAmB,gBAAgB,EAAC;AAAA,IAClF,QAAa;AAAA,IAAA;AAAA,EACb,GAEIjF,IAAQkF,gBAAAA,GAAA,GACRhF,IAAkBiF,gBAAAA,GAAA,GAElBC,IAAiB,WAAY;AAChC,UAAM,IAAIvC,EAAU;AAAA,EACrB,GACIwC,IAAiBrF,KACjB,WAAY;AACd,QAAI;AAEH,uBAAU,QACHoF;AAAA,IACV,QAAyB;AACtB,UAAI;AAEH,eAAOpF,EAAM,WAAW,QAAQ,EAAE;AAAA,MACtC,QAAwB;AACpB,eAAOoF;AAAA,MACX;AAAA,IACA;AAAA,EACA,GAAE,IACCA,GAECvE,IAAayE,KAAsB,GAEnC9B,IAAW+B,GAAA,GACXC,IAAaC,GAAA,GACbC,IAAcC,GAAA,GAEdnD,IAASoD,GAAA,GACTnD,IAAQoD,GAAA,GAERC,IAAY,CAAA,GAEZC,IAAa,OAAO,aAAe,OAAe,CAACvC,IAAWK,IAAYL,EAAS,UAAU,GAE7FwC,IAAa;AAAA,IAChB,WAAW;AAAA,IACX,oBAAoB,OAAO,iBAAmB,MAAcnC,IAAY;AAAA,IACxE,WAAW;AAAA,IACX,iBAAiB,OAAO,cAAgB,MAAcA,IAAY;AAAA,IAClE,4BAA4BhD,KAAc2C,IAAWA,EAAS,CAAA,EAAG,OAAO,QAAQ,EAAC,CAAE,IAAIK;AAAAA,IACvF,oCAAoCA;AAAAA,IACpC,mBAAmBiC;AAAA,IACnB,oBAAoBA;AAAA,IACpB,4BAA4BA;AAAA,IAC5B,4BAA4BA;AAAA,IAC5B,aAAa,OAAO,UAAY,MAAcjC,IAAY;AAAA,IAC1D,YAAY,OAAO,SAAW,MAAcA,IAAY;AAAA,IACxD,mBAAmB,OAAO,gBAAkB,MAAcA,IAAY;AAAA,IACtE,oBAAoB,OAAO,iBAAmB,MAAcA,IAAY;AAAA,IACxE,aAAa;AAAA,IACb,cAAc,OAAO,WAAa,MAAcA,IAAY;AAAA,IAC5D,UAAU;AAAA,IACV,eAAe;AAAA,IACf,wBAAwB;AAAA,IACxB,eAAe;AAAA,IACf,wBAAwB;AAAA,IACxB,WAAWC;AAAA,IACX,UAAU;AAAA;AAAA,IACV,eAAeC;AAAA,IACf,kBAAkB,OAAO,eAAiB,MAAcF,IAAY;AAAA,IACpE,kBAAkB,OAAO,eAAiB,MAAcA,IAAY;AAAA,IACpE,kBAAkB,OAAO,eAAiB,MAAcA,IAAY;AAAA,IACpE,0BAA0B,OAAO,uBAAyB,MAAcA,IAAY;AAAA,IACpF,cAAckB;AAAA,IACd,uBAAuBe;AAAA,IACvB,eAAe,OAAO,YAAc,MAAcjC,IAAY;AAAA,IAC9D,gBAAgB,OAAO,aAAe,MAAcA,IAAY;AAAA,IAChE,gBAAgB,OAAO,aAAe,MAAcA,IAAY;AAAA,IAChE,cAAc;AAAA,IACd,WAAW;AAAA,IACX,uBAAuBhD,KAAc2C,IAAWA,EAASA,EAAS,GAAG,OAAO,QAAQ,GAAG,CAAC,IAAIK;AAAAA,IAC5F,UAAU,OAAO,QAAS,WAAW,OAAOA;AAAAA,IAC5C,SAAS,OAAO,MAAQ,MAAcA,IAAY;AAAA,IAClD,0BAA0B,OAAO,MAAQ,OAAe,CAAChD,KAAc,CAAC2C,IAAWK,IAAYL,GAAS,oBAAI,IAAG,GAAG,OAAO,QAAQ,EAAC,CAAE;AAAA,IACpI,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAYzC;AAAA,IACZ,qCAAqCf;AAAA,IACrC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,aAAa,OAAO,UAAY,MAAc6D,IAAY;AAAA,IAC1D,WAAW,OAAO,QAAU,MAAcA,IAAY;AAAA,IACtD,gBAAgBG;AAAA,IAChB,oBAAoBC;AAAA,IACpB,aAAa,OAAO,UAAY,MAAcJ,IAAY;AAAA,IAC1D,YAAY;AAAA,IACZ,SAAS,OAAO,MAAQ,MAAcA,IAAY;AAAA,IAClD,0BAA0B,OAAO,MAAQ,OAAe,CAAChD,KAAc,CAAC2C,IAAWK,IAAYL,GAAS,oBAAI,IAAG,GAAG,OAAO,QAAQ,EAAC,CAAE;AAAA,IACpI,uBAAuB,OAAO,oBAAsB,MAAcK,IAAY;AAAA,IAC9E,YAAY;AAAA,IACZ,6BAA6BhD,KAAc2C,IAAWA,EAAS,GAAG,OAAO,QAAQ,EAAC,CAAE,IAAIK;AAAAA,IACxF,YAAYhD,IAAa,SAASgD;AAAAA,IAClC,iBAAiBM;AAAA,IACjB,oBAAoBkB;AAAA,IACpB,gBAAgBU;AAAA,IAChB,eAAelD;AAAA,IACf,gBAAgB,OAAO,aAAe,MAAcgB,IAAY;AAAA,IAChE,uBAAuB,OAAO,oBAAsB,MAAcA,IAAY;AAAA,IAC9E,iBAAiB,OAAO,cAAgB,MAAcA,IAAY;AAAA,IAClE,iBAAiB,OAAO,cAAgB,MAAcA,IAAY;AAAA,IAClE,cAAcS;AAAA,IACd,aAAa,OAAO,UAAY,MAAcT,IAAY;AAAA,IAC1D,aAAa,OAAO,UAAY,MAAcA,IAAY;AAAA,IAC1D,aAAa,OAAO,UAAY,MAAcA,IAAY;AAAA,IAE1D,6BAA6BpB;AAAA,IAC7B,8BAA8BD;AAAA,IAC9B,2BAA2BtC;AAAA,IAC3B,2BAA2BsF;AAAA,IAC3B,cAAclG;AAAA,IACd,gBAAgBhD;AAAA,IAChB,cAAciD;AAAA,IACd,cAAcC;AAAA,IACd,cAAcC;AAAA,IACd,gBAAgBC;AAAA,IAChB,eAAeG;AAAA,IACf,4BAA4B6F;AAAA;AAG7B,MAAIlC;AACH,QAAI;AACH,WAAK;AAAA,IACP,SAAUpnB,GAAG;AAEX,UAAI6pB,IAAazC,EAASA,EAASpnB,CAAC,CAAC;AACrC,MAAA4pB,EAAW,mBAAmB,IAAIC;AAAA,IACpC;AAGA,MAAIC,KAAS,SAASA,EAAOvkB,GAAM;AAClC,QAAIlE;AACJ,QAAIkE,MAAS;AACZ,MAAAlE,IAAQunB,EAAsB,sBAAsB;AAAA,aAC1CrjB,MAAS;AACnB,MAAAlE,IAAQunB,EAAsB,iBAAiB;AAAA,aACrCrjB,MAAS;AACnB,MAAAlE,IAAQunB,EAAsB,uBAAuB;AAAA,aAC3CrjB,MAAS,oBAAoB;AACvC,UAAI+a,IAAKwJ,EAAO,0BAA0B;AAC1C,MAAIxJ,MACHjf,IAAQif,EAAG;AAAA,IAEd,WAAY/a,MAAS,4BAA4B;AAC/C,UAAIwkB,IAAMD,EAAO,kBAAkB;AACnC,MAAIC,KAAO3C,MACV/lB,IAAQ+lB,EAAS2C,EAAI,SAAS;AAAA,IAEjC;AAEC,WAAAH,EAAWrkB,CAAI,IAAIlE,GAEZA;AAAA,EACR,GAEI2oB,KAAiB;AAAA,IACpB,WAAW;AAAA,IACX,0BAA0B,CAAC,eAAe,WAAW;AAAA,IACrD,oBAAoB,CAAC,SAAS,WAAW;AAAA,IACzC,wBAAwB,CAAC,SAAS,aAAa,SAAS;AAAA,IACxD,wBAAwB,CAAC,SAAS,aAAa,SAAS;AAAA,IACxD,qBAAqB,CAAC,SAAS,aAAa,MAAM;AAAA,IAClD,uBAAuB,CAAC,SAAS,aAAa,QAAQ;AAAA,IACtD,4BAA4B,CAAC,iBAAiB,WAAW;AAAA,IACzD,oBAAoB,CAAC,0BAA0B,WAAW;AAAA,IAC1D,6BAA6B,CAAC,0BAA0B,aAAa,WAAW;AAAA,IAChF,sBAAsB,CAAC,WAAW,WAAW;AAAA,IAC7C,uBAAuB,CAAC,YAAY,WAAW;AAAA,IAC/C,mBAAmB,CAAC,QAAQ,WAAW;AAAA,IACvC,oBAAoB,CAAC,SAAS,WAAW;AAAA,IACzC,wBAAwB,CAAC,aAAa,WAAW;AAAA,IACjD,2BAA2B,CAAC,gBAAgB,WAAW;AAAA,IACvD,2BAA2B,CAAC,gBAAgB,WAAW;AAAA,IACvD,uBAAuB,CAAC,YAAY,WAAW;AAAA,IAC/C,eAAe,CAAC,qBAAqB,WAAW;AAAA,IAChD,wBAAwB,CAAC,qBAAqB,aAAa,WAAW;AAAA,IACtE,wBAAwB,CAAC,aAAa,WAAW;AAAA,IACjD,yBAAyB,CAAC,cAAc,WAAW;AAAA,IACnD,yBAAyB,CAAC,cAAc,WAAW;AAAA,IACnD,eAAe,CAAC,QAAQ,OAAO;AAAA,IAC/B,mBAAmB,CAAC,QAAQ,WAAW;AAAA,IACvC,kBAAkB,CAAC,OAAO,WAAW;AAAA,IACrC,qBAAqB,CAAC,UAAU,WAAW;AAAA,IAC3C,qBAAqB,CAAC,UAAU,WAAW;AAAA,IAC3C,uBAAuB,CAAC,UAAU,aAAa,UAAU;AAAA,IACzD,sBAAsB,CAAC,UAAU,aAAa,SAAS;AAAA,IACvD,sBAAsB,CAAC,WAAW,WAAW;AAAA,IAC7C,uBAAuB,CAAC,WAAW,aAAa,MAAM;AAAA,IACtD,iBAAiB,CAAC,WAAW,KAAK;AAAA,IAClC,oBAAoB,CAAC,WAAW,QAAQ;AAAA,IACxC,qBAAqB,CAAC,WAAW,SAAS;AAAA,IAC1C,yBAAyB,CAAC,cAAc,WAAW;AAAA,IACnD,6BAA6B,CAAC,kBAAkB,WAAW;AAAA,IAC3D,qBAAqB,CAAC,UAAU,WAAW;AAAA,IAC3C,kBAAkB,CAAC,OAAO,WAAW;AAAA,IACrC,gCAAgC,CAAC,qBAAqB,WAAW;AAAA,IACjE,qBAAqB,CAAC,UAAU,WAAW;AAAA,IAC3C,qBAAqB,CAAC,UAAU,WAAW;AAAA,IAC3C,0BAA0B,CAAC,eAAe,WAAW;AAAA,IACrD,yBAAyB,CAAC,cAAc,WAAW;AAAA,IACnD,wBAAwB,CAAC,aAAa,WAAW;AAAA,IACjD,yBAAyB,CAAC,cAAc,WAAW;AAAA,IACnD,gCAAgC,CAAC,qBAAqB,WAAW;AAAA,IACjE,0BAA0B,CAAC,eAAe,WAAW;AAAA,IACrD,0BAA0B,CAAC,eAAe,WAAW;AAAA,IACrD,uBAAuB,CAAC,YAAY,WAAW;AAAA,IAC/C,sBAAsB,CAAC,WAAW,WAAW;AAAA,IAC7C,sBAAsB,CAAC,WAAW,WAAW;AAAA,KAG1C7D,IAAO8D,GAAA,GACPC,KAASC,gBAAAA,GAAA,GACTC,IAAUjE,EAAK,KAAKE,GAAO,MAAM,UAAU,MAAM,GACjDgE,IAAelE,EAAK,KAAKC,GAAQ,MAAM,UAAU,MAAM,GACvDkE,IAAWnE,EAAK,KAAKE,GAAO,OAAO,UAAU,OAAO,GACpDkE,IAAYpE,EAAK,KAAKE,GAAO,OAAO,UAAU,KAAK,GACnDmE,IAAQrE,EAAK,KAAKE,GAAO,OAAO,UAAU,IAAI,GAG9CoE,IAAa,sGACbC,IAAe,YACfC,IAAe,SAAsBnc,GAAQ;AAChD,QAAIoc,IAAQL,EAAU/b,GAAQ,GAAG,CAAC,GAC9Bqc,IAAON,EAAU/b,GAAQ,EAAE;AAC/B,QAAIoc,MAAU,OAAOC,MAAS;AAC7B,YAAM,IAAI9C,EAAa,gDAAgD;AACjE,QAAI8C,MAAS,OAAOD,MAAU;AACpC,YAAM,IAAI7C,EAAa,gDAAgD;AAExE,QAAIvlB,IAAS,CAAA;AACb,WAAA8nB,EAAS9b,GAAQic,GAAY,SAAUvY,GAAOwR,GAAQjH,IAAOqO,IAAW;AACvE,MAAAtoB,EAAOA,EAAO,MAAM,IAAIia,KAAQ6N,EAASQ,IAAWJ,GAAc,IAAI,IAAIhH,KAAUxR;AAAA,IACtF,CAAE,GACM1P;AAAA,EACR,GAGIuoB,KAAmB,SAA0BxlB,GAAMylB,GAAc;AACpE,QAAIC,IAAgB1lB,GAChB2lB;AAMJ,QALIhB,GAAOF,IAAgBiB,CAAa,MACvCC,IAAQlB,GAAeiB,CAAa,GACpCA,IAAgB,MAAMC,EAAM,CAAC,IAAI,MAG9BhB,GAAON,GAAYqB,CAAa,GAAG;AACtC,UAAI5pB,IAAQuoB,EAAWqB,CAAa;AAIpC,UAHI5pB,MAAUqoB,MACbroB,IAAQyoB,GAAOmB,CAAa,IAEzB,OAAO5pB,IAAU,OAAe,CAAC2pB;AACpC,cAAM,IAAIvE,EAAW,eAAelhB,IAAO,sDAAsD;AAGlG,aAAO;AAAA,QACN,OAAO2lB;AAAA,QACP,MAAMD;AAAA,QACN,OAAO5pB;AAAA;IAEV;AAEC,UAAM,IAAI0mB,EAAa,eAAexiB,IAAO,kBAAkB;AAAA,EAChE;AAEA,SAAA4lB,KAAiB,SAAsB5lB,GAAMylB,GAAc;AAC1D,QAAI,OAAOzlB,KAAS,YAAYA,EAAK,WAAW;AAC/C,YAAM,IAAIkhB,EAAW,2CAA2C;AAEjE,QAAI,UAAU,SAAS,KAAK,OAAOuE,KAAiB;AACnD,YAAM,IAAIvE,EAAW,2CAA2C;AAGjE,QAAI+D,EAAM,eAAejlB,CAAI,MAAM;AAClC,YAAM,IAAIwiB,EAAa,oFAAoF;AAE5G,QAAIvH,IAAQmK,EAAaplB,CAAI,GACzB6lB,IAAoB5K,EAAM,SAAS,IAAIA,EAAM,CAAC,IAAI,IAElD6K,IAAYN,GAAiB,MAAMK,IAAoB,KAAKJ,CAAY,GACxEM,IAAoBD,EAAU,MAC9BhqB,KAAQgqB,EAAU,OAClBE,KAAqB,IAErBL,KAAQG,EAAU;AACtB,IAAIH,OACHE,IAAoBF,GAAM,CAAC,GAC3Bb,EAAa7J,GAAO4J,EAAQ,CAAC,GAAG,CAAC,GAAGc,EAAK,CAAC;AAG3C,aAAStc,KAAI,GAAG4c,KAAQ,IAAM5c,KAAI4R,EAAM,QAAQ5R,MAAK,GAAG;AACvD,UAAIgI,KAAO4J,EAAM5R,EAAC,GACdgc,KAAQL,EAAU3T,IAAM,GAAG,CAAC,GAC5BiU,KAAON,EAAU3T,IAAM,EAAE;AAC7B,WAEGgU,OAAU,OAAOA,OAAU,OAAOA,OAAU,OACzCC,OAAS,OAAOA,OAAS,OAAOA,OAAS,QAE3CD,OAAUC;AAEb,cAAM,IAAI9C,EAAa,sDAAsD;AAS9E,WAPInR,OAAS,iBAAiB,CAAC4U,QAC9BD,KAAqB,KAGtBH,KAAqB,MAAMxU,IAC3B0U,IAAoB,MAAMF,IAAoB,KAE1ClB,GAAON,GAAY0B,CAAiB;AACvC,QAAAjqB,KAAQuoB,EAAW0B,CAAiB;AAAA,eAC1BjqB,MAAS,MAAM;AACzB,YAAI,EAAEuV,MAAQvV,KAAQ;AACrB,cAAI,CAAC2pB;AACJ,kBAAM,IAAIvE,EAAW,wBAAwBlhB,IAAO,6CAA6C;AAElG;AAAA,QACJ;AACG,YAAIqe,KAAUhV,KAAI,KAAM4R,EAAM,QAAQ;AACrC,cAAIsG,KAAOlD,EAAMviB,IAAOuV,EAAI;AAC5B,UAAA4U,KAAQ,CAAC,CAAC1E,IASN0E,MAAS,SAAS1E,MAAQ,EAAE,mBAAmBA,GAAK,OACvDzlB,KAAQylB,GAAK,MAEbzlB,KAAQA,GAAMuV,EAAI;AAAA,QAEvB;AACI,UAAA4U,KAAQtB,GAAO7oB,IAAOuV,EAAI,GAC1BvV,KAAQA,GAAMuV,EAAI;AAGnB,QAAI4U,MAAS,CAACD,OACb3B,EAAW0B,CAAiB,IAAIjqB;AAAA,MAEpC;AAAA,IACA;AACC,WAAOA;AAAA,EACR;;;;;;ACvXA,MAAIyiB,IAAkBlW,gBAAAA,GAAA,GAElBma,IAAela,gBAAAA,GAAA,GACf4Y,IAAa1Y,gBAAAA,GAAA,GAEb8V,IAAO0C,gBAAAA,GAAA;AAGX,SAAAkF,KAAiB,SAChBra,GACA8D,GACA7T,GACC;AACD,QAAI,CAAC+P,KAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AACtD,YAAM,IAAIqV,EAAW,wCAAwC;AAE9D,QAAI,OAAOvR,KAAa,YAAY,OAAOA,KAAa;AACvD,YAAM,IAAIuR,EAAW,0CAA0C;AAEhE,QAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAM,aAAa,UAAU,CAAC,MAAM;AACjF,YAAM,IAAIA,EAAW,yDAAyD;AAE/E,QAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAM,aAAa,UAAU,CAAC,MAAM;AACjF,YAAM,IAAIA,EAAW,uDAAuD;AAE7E,QAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAM,aAAa,UAAU,CAAC,MAAM;AACjF,YAAM,IAAIA,EAAW,2DAA2D;AAEjF,QAAI,UAAU,SAAS,KAAK,OAAO,UAAU,CAAC,KAAM;AACnD,YAAM,IAAIA,EAAW,yCAAyC;AAG/D,QAAIiF,IAAgB,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MACtDC,IAAc,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MACpDC,IAAkB,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,MACxDC,IAAQ,UAAU,SAAS,IAAI,UAAU,CAAC,IAAI,IAG9C/E,IAAO,CAAC,CAACjD,KAAQA,EAAKzS,GAAK8D,CAAQ;AAEvC,QAAI4O;AACH,MAAAA,EAAgB1S,GAAK8D,GAAU;AAAA,QAC9B,cAAc0W,MAAoB,QAAQ9E,IAAOA,EAAK,eAAe,CAAC8E;AAAA,QACtE,YAAYF,MAAkB,QAAQ5E,IAAOA,EAAK,aAAa,CAAC4E;AAAA,QAChE,OAAOrqB;AAAA,QACP,UAAUsqB,MAAgB,QAAQ7E,IAAOA,EAAK,WAAW,CAAC6E;AAAA,MAC7D,CAAG;AAAA,aACSE,KAAU,CAACH,KAAiB,CAACC,KAAe,CAACC;AAEvD,MAAAxa,EAAI8D,CAAQ,IAAI7T;AAAA;AAEhB,YAAM,IAAI0mB,EAAa,6GAA6G;AAAA,EAEtI;;;;;;ACrDA,MAAIjE,IAAkBlW,gBAAAA,GAAA,GAElBke,IAAyB,WAAkC;AAC9D,WAAO,CAAC,CAAChI;AAAA,EACV;AAEA,SAAAgI,EAAuB,0BAA0B,WAAmC;AAEnF,QAAI,CAAChI;AACJ,aAAO;AAER,QAAI;AACH,aAAOA,EAAgB,CAAA,GAAI,UAAU,EAAE,OAAO,EAAC,CAAE,EAAE,WAAW;AAAA,IAChE,QAAa;AAEX,aAAO;AAAA,IACT;AAAA,EACA,GAEAiI,KAAiBD;;;;;;ACnBjB,MAAIE,IAAepe,gBAAAA,GAAA,GACfqe,IAASpe,gBAAAA,GAAA,GACTqe,IAAiBne,gBAAAA,KAAmC,GACpD4V,IAAO4C,gBAAAA,GAAA,GAEPE,IAAaqB,gBAAAA,GAAA,GACbqE,IAASH,EAAa,cAAc;AAGxC,SAAAI,KAAiB,SAA2B9L,GAAItM,GAAQ;AACvD,QAAI,OAAOsM,KAAO;AACjB,YAAM,IAAImG,EAAW,wBAAwB;AAE9C,QAAI,OAAOzS,KAAW,YAAYA,IAAS,KAAKA,IAAS,cAAcmY,EAAOnY,CAAM,MAAMA;AACzF,YAAM,IAAIyS,EAAW,4CAA4C;AAGlE,QAAIoF,IAAQ,UAAU,SAAS,KAAK,CAAC,CAAC,UAAU,CAAC,GAE7CQ,IAA+B,IAC/BC,IAA2B;AAC/B,QAAI,YAAYhM,KAAMqD,GAAM;AAC3B,UAAImD,IAAOnD,EAAKrD,GAAI,QAAQ;AAC5B,MAAIwG,KAAQ,CAACA,EAAK,iBACjBuF,IAA+B,KAE5BvF,KAAQ,CAACA,EAAK,aACjBwF,IAA2B;AAAA,IAE9B;AAEC,YAAID,KAAgCC,KAA4B,CAACT,OAC5DK,IACHD;AAAA;AAAA,MAA6C3L;AAAA,MAAK;AAAA,MAAUtM;AAAA,MAAQ;AAAA,MAAM;AAAA,IAAI,IAE9EiY;AAAA;AAAA,MAA6C3L;AAAA,MAAK;AAAA,MAAUtM;AAAA,IAAM,IAG7DsM;AAAA,EACR;;;;;;ACvCA,MAAI6F,IAAOvY,GAAA,GACPwY,IAASvY,GAAA,GACT2Y,IAAczY,GAAA;AAGlB,SAAAwe,KAAiB,WAAqB;AACrC,WAAO/F,EAAYL,GAAMC,GAAQ,SAAS;AAAA,EAC3C;;;;;ACPA,QAAIgG,IAAoBxe,gBAAAA,GAAA,GAEpBkW,IAAkBjW,gBAAAA,GAAA,GAElB2e,IAAgBze,GAAA,GAChBwe,IAAYhG,GAAA;AAEhB,IAAAtH,EAAA,UAAiB,SAAkBwN,GAAkB;AACpD,UAAIC,IAAOF,EAAc,SAAS,GAC9BG,IAAiBF,EAAiB,UAAU,UAAU,SAAS;AACnE,aAAOL;AAAA,QACNM;AAAA,QACA,KAAKC,IAAiB,IAAIA,IAAiB;AAAA,QAC3C;AAAA;IAEF,GAEI7I,IACHA,EAAgB7E,EAAO,SAAS,SAAS,EAAE,OAAOsN,GAAW,IAE7DtN,kBAAuBsN;AAAA;;;;;;ACpBxB,MAAIP,IAAepe,gBAAAA,GAAA,GAEfgZ,IAAW/Y,GAAA,GAEX+e,IAAWhG,EAASoF,EAAa,0BAA0B,CAAC;AAEhE,SAAAa,KAAiB,SAA4BtnB,GAAMylB,GAAc;AAChE,QAAIK,IAAYW,EAAazmB,GAAM,CAAC,CAACylB,CAAY;AACjD,WAAI,OAAOK,KAAc,cAAcuB,EAASrnB,GAAM,aAAa,IAAI,KAC/DqhB,EAASyE,CAAS,IAEnBA;AAAA,EACR;;;;;;ACdA,MAAIyB,IAAS,OAAO,OAAQ,cAAc,IAAI,WAC1CC,IAAoB,OAAO,4BAA4BD,IAAS,OAAO,yBAAyB,IAAI,WAAW,MAAM,IAAI,MACzHE,IAAUF,KAAUC,KAAqB,OAAOA,EAAkB,OAAQ,aAAaA,EAAkB,MAAM,MAC/GE,IAAaH,KAAU,IAAI,UAAU,SACrCI,IAAS,OAAO,OAAQ,cAAc,IAAI,WAC1CC,IAAoB,OAAO,4BAA4BD,IAAS,OAAO,yBAAyB,IAAI,WAAW,MAAM,IAAI,MACzHE,IAAUF,KAAUC,KAAqB,OAAOA,EAAkB,OAAQ,aAAaA,EAAkB,MAAM,MAC/GE,IAAaH,KAAU,IAAI,UAAU,SACrCI,IAAa,OAAO,WAAY,cAAc,QAAQ,WACtDC,IAAaD,IAAa,QAAQ,UAAU,MAAM,MAClDE,IAAa,OAAO,WAAY,cAAc,QAAQ,WACtDC,IAAaD,IAAa,QAAQ,UAAU,MAAM,MAClDE,IAAa,OAAO,WAAY,cAAc,QAAQ,WACtDC,IAAeD,IAAa,QAAQ,UAAU,QAAQ,MACtDE,IAAiB,QAAQ,UAAU,SACnCC,IAAiB,OAAO,UAAU,UAClCC,IAAmB,SAAS,UAAU,UACtCC,IAAS,OAAO,UAAU,OAC1BC,IAAS,OAAO,UAAU,OAC1B1D,IAAW,OAAO,UAAU,SAC5B2D,IAAe,OAAO,UAAU,aAChCC,IAAe,OAAO,UAAU,aAChCC,IAAQ,OAAO,UAAU,MACzB/D,IAAU,MAAM,UAAU,QAC1BgE,IAAQ,MAAM,UAAU,MACxBC,IAAY,MAAM,UAAU,OAC5BlC,IAAS,KAAK,OACdmC,IAAgB,OAAO,UAAW,aAAa,OAAO,UAAU,UAAU,MAC1EC,IAAO,OAAO,uBACdC,IAAc,OAAO,UAAW,cAAc,OAAO,OAAO,YAAa,WAAW,OAAO,UAAU,WAAW,MAChHC,IAAoB,OAAO,UAAW,cAAc,OAAO,OAAO,YAAa,UAE/EC,IAAc,OAAO,UAAW,cAAc,OAAO,gBAAgB,OAAO,OAAO,gBAAgBD,KAA+B,MAChI,OAAO,cACP,MACFE,KAAe,OAAO,UAAU,sBAEhCC,MAAO,OAAO,WAAY,aAAa,QAAQ,iBAAiB,OAAO,oBACvE,GAAG,cAAc,MAAM,YACjB,SAAUvH,GAAG;AACX,WAAOA,EAAE;AAAA,EACrB,IACU;AAGV,WAASwH,EAAoBC,GAAKxQ,GAAK;AACnC,QACIwQ,MAAQ,SACLA,MAAQ,UACRA,MAAQA,KACPA,KAAOA,IAAM,QAASA,IAAM,OAC7BX,EAAM,KAAK,KAAK7P,CAAG;AAEtB,aAAOA;AAEX,QAAIyQ,IAAW;AACf,QAAI,OAAOD,KAAQ,UAAU;AACzB,UAAIE,KAAMF,IAAM,IAAI,CAAC3C,EAAO,CAAC2C,CAAG,IAAI3C,EAAO2C,CAAG;AAC9C,UAAIE,OAAQF,GAAK;AACb,YAAIG,KAAS,OAAOD,EAAG,GACnBE,IAAMlB,EAAO,KAAK1P,GAAK2Q,GAAO,SAAS,CAAC;AAC5C,eAAO3E,EAAS,KAAK2E,IAAQF,GAAU,KAAK,IAAI,MAAMzE,EAAS,KAAKA,EAAS,KAAK4E,GAAK,eAAe,KAAK,GAAG,MAAM,EAAE;AAAA,MAClI;AAAA,IACA;AACI,WAAO5E,EAAS,KAAKhM,GAAKyQ,GAAU,KAAK;AAAA,EAC7C;AAEA,MAAII,KAAcvhB,IACdwhB,IAAgBD,GAAY,QAC5BE,IAAgBtgB,EAASqgB,CAAa,IAAIA,IAAgB;AAE9D,EAAAE,KAAiB,SAASC,EAASne,GAAK7P,GAASiuB,IAAOphB,IAAM;AAC1D,QAAIF,IAAO3M,KAAW,CAAA;AAEtB,QAAIkuB,EAAIvhB,GAAM,YAAY,KAAMA,EAAK,eAAe,YAAYA,EAAK,eAAe;AAChF,YAAM,IAAI,UAAU,kDAAkD;AAE1E,QACIuhB,EAAIvhB,GAAM,iBAAiB,MAAM,OAAOA,EAAK,mBAAoB,WAC3DA,EAAK,kBAAkB,KAAKA,EAAK,oBAAoB,QACrDA,EAAK,oBAAoB;AAG/B,YAAM,IAAI,UAAU,wFAAwF;AAEhH,QAAIwhB,KAAgBD,EAAIvhB,GAAM,eAAe,IAAIA,EAAK,gBAAgB;AACtE,QAAI,OAAOwhB,MAAkB,aAAaA,OAAkB;AACxD,YAAM,IAAI,UAAU,+EAA+E;AAGvG,QACID,EAAIvhB,GAAM,QAAQ,KACfA,EAAK,WAAW,QAChBA,EAAK,WAAW,OAChB,EAAE,SAASA,EAAK,QAAQ,EAAE,MAAMA,EAAK,UAAUA,EAAK,SAAS;AAEhE,YAAM,IAAI,UAAU,0DAA0D;AAElF,QAAIuhB,EAAIvhB,GAAM,kBAAkB,KAAK,OAAOA,EAAK,oBAAqB;AAClE,YAAM,IAAI,UAAU,mEAAmE;AAE3F,QAAIyhB,KAAmBzhB,EAAK;AAE5B,QAAI,OAAOkD,IAAQ;AACf,aAAO;AAEX,QAAIA,MAAQ;AACR,aAAO;AAEX,QAAI,OAAOA,KAAQ;AACf,aAAOA,IAAM,SAAS;AAG1B,QAAI,OAAOA,KAAQ;AACf,aAAOwe,GAAcxe,GAAKlD,CAAI;AAElC,QAAI,OAAOkD,KAAQ,UAAU;AACzB,UAAIA,MAAQ;AACR,eAAO,QAAWA,IAAM,IAAI,MAAM;AAEtC,UAAIkN,KAAM,OAAOlN,CAAG;AACpB,aAAOue,KAAmBd,EAAoBzd,GAAKkN,EAAG,IAAIA;AAAA,IAClE;AACI,QAAI,OAAOlN,KAAQ,UAAU;AACzB,UAAIye,KAAY,OAAOze,CAAG,IAAI;AAC9B,aAAOue,KAAmBd,EAAoBzd,GAAKye,EAAS,IAAIA;AAAA,IACxE;AAEI,QAAIC,KAAW,OAAO5hB,EAAK,QAAU,MAAc,IAAIA,EAAK;AAE5D,QADI,OAAOshB,KAAU,QAAeA,KAAQ,IACxCA,MAASM,MAAYA,KAAW,KAAK,OAAO1e,KAAQ;AACpD,aAAO2e,EAAQ3e,CAAG,IAAI,YAAY;AAGtC,QAAItE,KAASkjB,GAAU9hB,GAAMshB,EAAK;AAElC,QAAI,OAAOphB,KAAS;AAChB,MAAAA,KAAO,CAAA;AAAA,aACA6hB,GAAQ7hB,IAAMgD,CAAG,KAAK;AAC7B,aAAO;AAGX,aAAS8e,GAAQ7uB,IAAO8uB,IAAMC,IAAU;AAKpC,UAJID,OACA/hB,KAAOigB,EAAU,KAAKjgB,EAAI,GAC1BA,GAAK,KAAK+hB,EAAI,IAEdC,IAAU;AACV,YAAIC,KAAU;AAAA,UACV,OAAOniB,EAAK;AAAA;AAEhB,eAAIuhB,EAAIvhB,GAAM,YAAY,MACtBmiB,GAAQ,aAAaniB,EAAK,aAEvBqhB,EAASluB,IAAOgvB,IAASb,KAAQ,GAAGphB,EAAI;AAAA,MAC3D;AACQ,aAAOmhB,EAASluB,IAAO6M,GAAMshB,KAAQ,GAAGphB,EAAI;AAAA,IACpD;AAEI,QAAI,OAAOgD,KAAQ,cAAc,CAACkf,EAASlf,CAAG,GAAG;AAC7C,UAAI7L,KAAOgrB,GAAOnf,CAAG,GACjBof,KAAOC,GAAWrf,GAAK8e,EAAO;AAClC,aAAO,eAAe3qB,KAAO,OAAOA,KAAO,kBAAkB,OAAOirB,GAAK,SAAS,IAAI,QAAQpC,EAAM,KAAKoC,IAAM,IAAI,IAAI,OAAO;AAAA,IACtI;AACI,QAAIzhB,EAASqC,CAAG,GAAG;AACf,UAAIsf,KAAYjC,IAAoBnE,EAAS,KAAK,OAAOlZ,CAAG,GAAG,0BAA0B,IAAI,IAAIod,EAAY,KAAKpd,CAAG;AACrH,aAAO,OAAOA,KAAQ,YAAY,CAACqd,IAAoBkC,GAAUD,EAAS,IAAIA;AAAA,IACtF;AACI,QAAIE,GAAUxf,CAAG,GAAG;AAGhB,eAFIqB,KAAI,MAAMyb,EAAa,KAAK,OAAO9c,EAAI,QAAQ,CAAC,GAChDyf,KAAQzf,EAAI,cAAc,CAAA,GACrBxC,KAAI,GAAGA,KAAIiiB,GAAM,QAAQjiB;AAC9B,QAAA6D,MAAK,MAAMoe,GAAMjiB,EAAC,EAAE,OAAO,MAAMkiB,EAAWrU,EAAMoU,GAAMjiB,EAAC,EAAE,KAAK,GAAG,UAAUV,CAAI;AAErF,aAAAuE,MAAK,KACDrB,EAAI,cAAcA,EAAI,WAAW,WAAUqB,MAAK,QACpDA,MAAK,OAAOyb,EAAa,KAAK,OAAO9c,EAAI,QAAQ,CAAC,IAAI,KAC/CqB;AAAA,IACf;AACI,QAAIsd,EAAQ3e,CAAG,GAAG;AACd,UAAIA,EAAI,WAAW;AAAK,eAAO;AAC/B,UAAI2f,KAAKN,GAAWrf,GAAK8e,EAAO;AAChC,aAAIpjB,MAAU,CAACkkB,GAAiBD,EAAE,IACvB,MAAME,GAAaF,IAAIjkB,EAAM,IAAI,MAErC,OAAOshB,EAAM,KAAK2C,IAAI,IAAI,IAAI;AAAA,IAC7C;AACI,QAAIG,EAAQ9f,CAAG,GAAG;AACd,UAAIoP,KAAQiQ,GAAWrf,GAAK8e,EAAO;AACnC,aAAI,EAAE,WAAW,MAAM,cAAc,WAAW9e,KAAO,CAACud,GAAa,KAAKvd,GAAK,OAAO,IAC3E,QAAQ,OAAOA,CAAG,IAAI,OAAOgd,EAAM,KAAKhE,EAAQ,KAAK,cAAc8F,GAAQ9e,EAAI,KAAK,GAAGoP,EAAK,GAAG,IAAI,IAAI,OAE9GA,GAAM,WAAW,IAAY,MAAM,OAAOpP,CAAG,IAAI,MAC9C,QAAQ,OAAOA,CAAG,IAAI,OAAOgd,EAAM,KAAK5N,IAAO,IAAI,IAAI;AAAA,IACtE;AACI,QAAI,OAAOpP,KAAQ,YAAYse,IAAe;AAC1C,UAAIL,KAAiB,OAAOje,EAAIie,CAAa,KAAM,cAAcF;AAC7D,eAAOA,GAAY/d,GAAK,EAAE,OAAO0e,KAAWN,GAAK,CAAE;AAChD,UAAIE,OAAkB,YAAY,OAAOte,EAAI,WAAY;AAC5D,eAAOA,EAAI,QAAO;AAAA,IAE9B;AACI,QAAI+f,GAAM/f,CAAG,GAAG;AACZ,UAAIggB,KAAW,CAAA;AACf,aAAInE,KACAA,EAAW,KAAK7b,GAAK,SAAU/P,IAAO4N,IAAK;AACvC,QAAAmiB,GAAS,KAAKlB,GAAQjhB,IAAKmC,GAAK,EAAI,IAAI,SAAS8e,GAAQ7uB,IAAO+P,CAAG,CAAC;AAAA,MACpF,CAAa,GAEEigB,GAAa,OAAOrE,EAAQ,KAAK5b,CAAG,GAAGggB,IAAUtkB,EAAM;AAAA,IACtE;AACI,QAAIwkB,GAAMlgB,CAAG,GAAG;AACZ,UAAImgB,KAAW,CAAA;AACf,aAAIlE,KACAA,EAAW,KAAKjc,GAAK,SAAU/P,IAAO;AAClC,QAAAkwB,GAAS,KAAKrB,GAAQ7uB,IAAO+P,CAAG,CAAC;AAAA,MACjD,CAAa,GAEEigB,GAAa,OAAOjE,EAAQ,KAAKhc,CAAG,GAAGmgB,IAAUzkB,EAAM;AAAA,IACtE;AACI,QAAI0kB,GAAUpgB,CAAG;AACb,aAAOqgB,GAAiB,SAAS;AAErC,QAAIC,GAAUtgB,CAAG;AACb,aAAOqgB,GAAiB,SAAS;AAErC,QAAIE,GAAUvgB,CAAG;AACb,aAAOqgB,GAAiB,SAAS;AAErC,QAAIG,EAASxgB,CAAG;AACZ,aAAOuf,GAAUT,GAAQ,OAAO9e,CAAG,CAAC,CAAC;AAEzC,QAAIygB,EAASzgB,CAAG;AACZ,aAAOuf,GAAUT,GAAQ5B,EAAc,KAAKld,CAAG,CAAC,CAAC;AAErD,QAAI0gB,EAAU1gB,CAAG;AACb,aAAOuf,GAAU/C,EAAe,KAAKxc,CAAG,CAAC;AAE7C,QAAI2gB,GAAS3gB,CAAG;AACZ,aAAOuf,GAAUT,GAAQ,OAAO9e,CAAG,CAAC,CAAC;AAIzC,QAAI,OAAO,SAAW,OAAeA,MAAQ;AACzC,aAAO;AAEX,QACK,OAAO,aAAe,OAAeA,MAAQ,cAC1C,OAAO+N,KAAW,OAAe/N,MAAQ+N;AAE7C,aAAO;AAEX,QAAI,CAAC6S,EAAO5gB,CAAG,KAAK,CAACkf,EAASlf,CAAG,GAAG;AAChC,UAAI6gB,KAAKxB,GAAWrf,GAAK8e,EAAO,GAC5BgC,KAAgBtD,KAAMA,GAAIxd,CAAG,MAAM,OAAO,YAAYA,aAAe,UAAUA,EAAI,gBAAgB,QACnG+gB,KAAW/gB,aAAe,SAAS,KAAK,kBACxCghB,KAAY,CAACF,MAAiBxD,KAAe,OAAOtd,CAAG,MAAMA,KAAOsd,KAAetd,IAAM4c,EAAO,KAAKlJ,EAAM1T,CAAG,GAAG,GAAG,EAAE,IAAI+gB,KAAW,WAAW,IAChJE,KAAiBH,MAAiB,OAAO9gB,EAAI,eAAgB,aAAa,KAAKA,EAAI,YAAY,OAAOA,EAAI,YAAY,OAAO,MAAM,IACnIkhB,KAAMD,MAAkBD,MAAaD,KAAW,MAAM/D,EAAM,KAAKhE,EAAQ,KAAK,CAAA,GAAIgI,MAAa,CAAA,GAAID,MAAY,CAAA,CAAE,GAAG,IAAI,IAAI,OAAO;AACvI,aAAIF,GAAG,WAAW,IAAYK,KAAM,OAChCxlB,KACOwlB,KAAM,MAAMrB,GAAagB,IAAInlB,EAAM,IAAI,MAE3CwlB,KAAM,OAAOlE,EAAM,KAAK6D,IAAI,IAAI,IAAI;AAAA,IACnD;AACI,WAAO,OAAO7gB,CAAG;AAAA,EACrB;AAEA,WAAS0f,EAAWre,GAAG8f,GAAcrkB,GAAM;AACvC,QAAIskB,MAAatkB,EAAK,cAAcqkB,OAAkB,WAAW,MAAM;AACvE,WAAOC,KAAY/f,IAAI+f;AAAA,EAC3B;AAEA,WAAS/V,EAAMhK,GAAG;AACd,WAAO6X,EAAS,KAAK,OAAO7X,CAAC,GAAG,MAAM,QAAQ;AAAA,EAClD;AAEA,WAASsd,EAAQ3e,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,qBAAqB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACrI,WAAS4gB,EAAO5gB,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,oBAAoB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACnI,WAASkf,EAASlf,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,sBAAsB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACvI,WAAS8f,EAAQ9f,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,qBAAqB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACrI,WAAS2gB,GAAS3gB,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,sBAAsB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACvI,WAASwgB,EAASxgB,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,sBAAsB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AACvI,WAAS0gB,EAAU1gB,GAAK;AAAE,WAAO0T,EAAM1T,CAAG,MAAM,uBAAuB,CAACsd,KAAe,EAAE,OAAOtd,KAAQ,YAAYsd,KAAetd;AAAA,EAAM;AAGzI,WAASrC,EAASqC,GAAK;AACnB,QAAIqd;AACA,aAAOrd,KAAO,OAAOA,KAAQ,YAAYA,aAAe;AAE5D,QAAI,OAAOA,KAAQ;AACf,aAAO;AAEX,QAAI,CAACA,KAAO,OAAOA,KAAQ,YAAY,CAACod;AACpC,aAAO;AAEX,QAAI;AACA,aAAAA,EAAY,KAAKpd,CAAG,GACb;AAAA,IACf,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAASygB,EAASzgB,GAAK;AACnB,QAAI,CAACA,KAAO,OAAOA,KAAQ,YAAY,CAACkd;AACpC,aAAO;AAEX,QAAI;AACA,aAAAA,EAAc,KAAKld,CAAG,GACf;AAAA,IACf,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,MAAI8Y,IAAS,OAAO,UAAU,kBAAkB,SAAUjb,GAAK;AAAE,WAAOA,KAAO;AAAA,EAAK;AACpF,WAASwgB,EAAIre,GAAKnC,GAAK;AACnB,WAAOib,EAAO,KAAK9Y,GAAKnC,CAAG;AAAA,EAC/B;AAEA,WAAS6V,EAAM1T,GAAK;AAChB,WAAOyc,EAAe,KAAKzc,CAAG;AAAA,EAClC;AAEA,WAASmf,GAAOkC,GAAG;AACf,QAAIA,EAAE;AAAQ,aAAOA,EAAE;AACvB,QAAI7a,IAAImW,EAAO,KAAKD,EAAiB,KAAK2E,CAAC,GAAG,sBAAsB;AACpE,WAAI7a,IAAYA,EAAE,CAAC,IACZ;AAAA,EACX;AAEA,WAASqY,GAAQc,GAAIrmB,GAAG;AACpB,QAAIqmB,EAAG;AAAW,aAAOA,EAAG,QAAQrmB,CAAC;AACrC,aAASkE,IAAI,GAAG8jB,KAAI3B,EAAG,QAAQniB,IAAI8jB,IAAG9jB;AAClC,UAAImiB,EAAGniB,CAAC,MAAMlE;AAAK,eAAOkE;AAE9B,WAAO;AAAA,EACX;AAEA,WAASuiB,GAAMzmB,GAAG;AACd,QAAI,CAACsiB,KAAW,CAACtiB,KAAK,OAAOA,KAAM;AAC/B,aAAO;AAEX,QAAI;AACA,MAAAsiB,EAAQ,KAAKtiB,CAAC;AACd,UAAI;AACA,QAAA0iB,EAAQ,KAAK1iB,CAAC;AAAA,MAC1B,QAAoB;AACR,eAAO;AAAA,MACnB;AACQ,aAAOA,aAAa;AAAA,IAC5B,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAAS8mB,GAAU9mB,GAAG;AAClB,QAAI,CAAC6iB,KAAc,CAAC7iB,KAAK,OAAOA,KAAM;AAClC,aAAO;AAEX,QAAI;AACA,MAAA6iB,EAAW,KAAK7iB,GAAG6iB,CAAU;AAC7B,UAAI;AACA,QAAAE,EAAW,KAAK/iB,GAAG+iB,CAAU;AAAA,MACzC,QAAoB;AACR,eAAO;AAAA,MACnB;AACQ,aAAO/iB,aAAa;AAAA,IAC5B,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAASinB,GAAUjnB,GAAG;AAClB,QAAI,CAACijB,KAAgB,CAACjjB,KAAK,OAAOA,KAAM;AACpC,aAAO;AAEX,QAAI;AACA,aAAAijB,EAAa,KAAKjjB,CAAC,GACZ;AAAA,IACf,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAAS4mB,GAAM5mB,GAAG;AACd,QAAI,CAAC0iB,KAAW,CAAC1iB,KAAK,OAAOA,KAAM;AAC/B,aAAO;AAEX,QAAI;AACA,MAAA0iB,EAAQ,KAAK1iB,CAAC;AACd,UAAI;AACA,QAAAsiB,EAAQ,KAAKtiB,CAAC;AAAA,MAC1B,QAAoB;AACR,eAAO;AAAA,MACnB;AACQ,aAAOA,aAAa;AAAA,IAC5B,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAASgnB,GAAUhnB,GAAG;AAClB,QAAI,CAAC+iB,KAAc,CAAC/iB,KAAK,OAAOA,KAAM;AAClC,aAAO;AAEX,QAAI;AACA,MAAA+iB,EAAW,KAAK/iB,GAAG+iB,CAAU;AAC7B,UAAI;AACA,QAAAF,EAAW,KAAK7iB,GAAG6iB,CAAU;AAAA,MACzC,QAAoB;AACR,eAAO;AAAA,MACnB;AACQ,aAAO7iB,aAAa;AAAA,IAC5B,QAAgB;AAAA,IAAA;AACZ,WAAO;AAAA,EACX;AAEA,WAASkmB,GAAUlmB,GAAG;AAClB,WAAI,CAACA,KAAK,OAAOA,KAAM,WAAmB,KACtC,OAAO,cAAgB,OAAeA,aAAa,cAC5C,KAEJ,OAAOA,EAAE,YAAa,YAAY,OAAOA,EAAE,gBAAiB;AAAA,EACvE;AAEA,WAASklB,GAActR,GAAKpQ,GAAM;AAC9B,QAAIoQ,EAAI,SAASpQ,EAAK,iBAAiB;AACnC,UAAIykB,IAAYrU,EAAI,SAASpQ,EAAK,iBAC9B0kB,KAAU,SAASD,IAAY,qBAAqBA,IAAY,IAAI,MAAM;AAC9E,aAAO/C,GAAc5B,EAAO,KAAK1P,GAAK,GAAGpQ,EAAK,eAAe,GAAGA,CAAI,IAAI0kB;AAAA,IAChF;AAEI,QAAIngB,KAAI6X,EAAS,KAAKA,EAAS,KAAKhM,GAAK,YAAY,MAAM,GAAG,gBAAgBuU,EAAO;AACrF,WAAO/B,EAAWre,IAAG,UAAUvE,CAAI;AAAA,EACvC;AAEA,WAAS2kB,GAAQhuB,GAAG;AAChB,QAAI8c,IAAI9c,EAAE,WAAW,CAAC,GAClB6F,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACNiX,CAAC;AACH,WAAIjX,IAAY,OAAOA,IAChB,SAASiX,IAAI,KAAO,MAAM,MAAMsM,EAAa,KAAKtM,EAAE,SAAS,EAAE,CAAC;AAAA,EAC3E;AAEA,WAASgP,GAAUrS,GAAK;AACpB,WAAO,YAAYA,IAAM;AAAA,EAC7B;AAEA,WAASmT,GAAiBrvB,GAAM;AAC5B,WAAOA,IAAO;AAAA,EAClB;AAEA,WAASivB,GAAajvB,GAAM0wB,GAAMC,GAASjmB,IAAQ;AAC/C,QAAIkmB,KAAgBlmB,KAASmkB,GAAa8B,GAASjmB,EAAM,IAAIshB,EAAM,KAAK2E,GAAS,IAAI;AACrF,WAAO3wB,IAAO,OAAO0wB,IAAO,QAAQE,KAAgB;AAAA,EACxD;AAEA,WAAShC,GAAiBD,GAAI;AAC1B,aAASniB,IAAI,GAAGA,IAAImiB,EAAG,QAAQniB;AAC3B,UAAIqhB,GAAQc,EAAGniB,CAAC,GAAG;AAAA,CAAI,KAAK;AACxB,eAAO;AAGf,WAAO;AAAA,EACX;AAEA,WAASohB,GAAU9hB,GAAMshB,GAAO;AAC5B,QAAIyD;AACJ,QAAI/kB,EAAK,WAAW;AAChB,MAAA+kB,IAAa;AAAA,aACN,OAAO/kB,EAAK,UAAW,YAAYA,EAAK,SAAS;AACxD,MAAA+kB,IAAa7E,EAAM,KAAK,MAAMlgB,EAAK,SAAS,CAAC,GAAG,GAAG;AAAA;AAEnD,aAAO;AAEX,WAAO;AAAA,MACH,MAAM+kB;AAAA,MACN,MAAM7E,EAAM,KAAK,MAAMoB,IAAQ,CAAC,GAAGyD,CAAU;AAAA;EAErD;AAEA,WAAShC,GAAaF,GAAIjkB,GAAQ;AAC9B,QAAIikB,EAAG,WAAW;AAAK,aAAO;AAC9B,QAAImC,IAAa;AAAA,IAAOpmB,EAAO,OAAOA,EAAO;AAC7C,WAAOomB,IAAa9E,EAAM,KAAK2C,GAAI,MAAMmC,CAAU,IAAI;AAAA,IAAOpmB,EAAO;AAAA,EACzE;AAEA,WAAS2jB,GAAWrf,GAAK8e,GAAS;AAC9B,QAAIiD,IAAQpD,EAAQ3e,CAAG,GACnB2f,KAAK,CAAA;AACT,QAAIoC,GAAO;AACP,MAAApC,GAAG,SAAS3f,EAAI;AAChB,eAASxC,KAAI,GAAGA,KAAIwC,EAAI,QAAQxC;AAC5B,QAAAmiB,GAAGniB,EAAC,IAAI6gB,EAAIre,GAAKxC,EAAC,IAAIshB,EAAQ9e,EAAIxC,EAAC,GAAGwC,CAAG,IAAI;AAAA,IAEzD;AACI,QAAIiT,IAAO,OAAOkK,KAAS,aAAaA,EAAKnd,CAAG,IAAI,CAAA,GAChDgiB;AACJ,QAAI3E,GAAmB;AACnB,MAAA2E,KAAS,CAAA;AACT,eAAS7R,KAAI,GAAGA,KAAI8C,EAAK,QAAQ9C;AAC7B,QAAA6R,GAAO,MAAM/O,EAAK9C,EAAC,CAAC,IAAI8C,EAAK9C,EAAC;AAAA,IAE1C;AAEI,aAAStS,MAAOmC;AACZ,MAAKqe,EAAIre,GAAKnC,EAAG,MACbkkB,KAAS,OAAO,OAAOlkB,EAAG,CAAC,MAAMA,MAAOA,KAAMmC,EAAI,UAClDqd,KAAqB2E,GAAO,MAAMnkB,EAAG,aAAa,WAG3Ckf,EAAM,KAAK,UAAUlf,EAAG,IAC/B8hB,GAAG,KAAKb,EAAQjhB,IAAKmC,CAAG,IAAI,OAAO8e,EAAQ9e,EAAInC,EAAG,GAAGmC,CAAG,CAAC,IAEzD2f,GAAG,KAAK9hB,KAAM,OAAOihB,EAAQ9e,EAAInC,EAAG,GAAGmC,CAAG,CAAC;AAGnD,QAAI,OAAOmd,KAAS;AAChB,eAASzM,KAAI,GAAGA,KAAIuC,EAAK,QAAQvC;AAC7B,QAAI6M,GAAa,KAAKvd,GAAKiT,EAAKvC,EAAC,CAAC,KAC9BiP,GAAG,KAAK,MAAMb,EAAQ7L,EAAKvC,EAAC,CAAC,IAAI,QAAQoO,EAAQ9e,EAAIiT,EAAKvC,EAAC,CAAC,GAAG1Q,CAAG,CAAC;AAI/E,WAAO2f;AAAA,EACX;;;;;;;AC5gBA,MAAI/E,IAAepe,gBAAAA,GAAA,GACfif,IAAYhf,GAAA,GACZqiB,IAAUniB,gBAAAA,GAAA,GAEV0Y,IAAaF,gBAAAA,GAAA,GACb8M,IAAWrH,EAAa,aAAa,EAAI,GACzCsH,IAAOtH,EAAa,SAAS,EAAI,GAEjCuH,IAAc1G,EAAU,yBAAyB,EAAI,GACrD2G,IAAc3G,EAAU,yBAAyB,EAAI,GACrD4G,IAAc5G,EAAU,yBAAyB,EAAI,GACrD6G,IAAU7G,EAAU,qBAAqB,EAAI,GAC7C8G,IAAU9G,EAAU,qBAAqB,EAAI,GAC7C+G,IAAU/G,EAAU,qBAAqB,EAAI,GAQ7CgH,IAAc,SAAUC,GAAM7kB,GAAK;AAKtC,aAHI8kB,IAAOD,GAEPE,IACIA,IAAOD,EAAK,UAAU,MAAMA,IAAOC;AAC1C,UAAIA,EAAK,QAAQ/kB;AAChB,eAAA8kB,EAAK,OAAOC,EAAK,MAEjBA,EAAK;AAAA,QAAqDF,EAAK,MAC/DA,EAAK,OAAOE,GACLA;AAAA,EAGV,GAGIC,IAAU,SAAUC,GAASjlB,GAAK;AACrC,QAAI4H,IAAOgd,EAAYK,GAASjlB,CAAG;AACnC,WAAO4H,KAAQA,EAAK;AAAA,EACrB,GAEIsd,IAAU,SAAUD,GAASjlB,GAAK5N,GAAO;AAC5C,QAAIwV,IAAOgd,EAAYK,GAASjlB,CAAG;AACnC,IAAI4H,IACHA,EAAK,QAAQxV,IAGb6yB,EAAQ;AAAA,IAA0D;AAAA;AAAA,MACjE,KAAKjlB;AAAA,MACL,MAAMilB,EAAQ;AAAA,MACd,OAAO7yB;AAAA,IACV;AAAA,EAEA,GAEI+yB,IAAU,SAAUF,GAASjlB,GAAK;AACrC,WAAO,CAAC,CAAC4kB,EAAYK,GAASjlB,CAAG;AAAA,EAClC;AAGA,SAAAolB,KAAiB,WAA0B;AACF,QAAIC,GACJC,GACSC,GAG7CC,IAAU;AAAA,MACb,QAAQ,SAAUxlB,GAAK;AACtB,YAAI,CAACwlB,EAAQ,IAAIxlB,CAAG;AACnB,gBAAM,IAAIwX,EAAW,mCAAmCyJ,EAAQjhB,CAAG,CAAC;AAAA,MAExE;AAAA,MACE,KAAK,SAAUA,GAAK;AACnB,YAAIokB,KAAYpkB,MAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AACjE,cAAIqlB;AACH,mBAAOf,EAAYe,GAAKrlB,CAAG;AAAA,mBAElBqkB;AACV,cAAIiB;AACH,mBAAOb,EAAQa,GAAItlB,CAAG;AAAA,mBAGnBulB;AACH,iBAAOP,EAAQO,GAAIvlB,CAAG;AAAA,MAG3B;AAAA,MACE,KAAK,SAAUA,GAAK;AACnB,YAAIokB,KAAYpkB,MAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AACjE,cAAIqlB;AACH,mBAAOb,EAAYa,GAAKrlB,CAAG;AAAA,mBAElBqkB;AACV,cAAIiB;AACH,mBAAOX,EAAQW,GAAItlB,CAAG;AAAA,mBAGnBulB;AACH,iBAAOJ,EAAQI,GAAIvlB,CAAG;AAGxB,eAAO;AAAA,MACV;AAAA,MACE,KAAK,SAAUA,GAAK5N,GAAO;AAC1B,QAAIgyB,KAAYpkB,MAAQ,OAAOA,KAAQ,YAAY,OAAOA,KAAQ,eAC5DqlB,MACJA,IAAM,IAAIjB,EAAQ,IAEnBG,EAAYc,GAAKrlB,GAAK5N,CAAK,KACjBiyB,KACLiB,MACJA,IAAK,IAAIjB,EAAI,IAEdK,EAAQY,GAAItlB,GAAK5N,CAAK,MAEjBmzB,MAEJA,IAAK,EAAE,KAAK,IAAI,MAAM,KAAI,IAE3BL,EAAQK,GAAIvlB,GAAK5N,CAAK;AAAA,MAE1B;AAAA;AAEC,WAAOozB;AAAA,EACR;;;;;;AC9HA,MAAIC,IAAU,OAAO,UAAU,SAC3BC,IAAkB,QAElBC,IAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA;AAGb,SAAAC,KAAiB;AAAA,IACb,SAAWD,EAAO;AAAA,IAClB,YAAY;AAAA,MACR,SAAS,SAAUvzB,GAAO;AACtB,eAAOqzB,EAAQ,KAAKrzB,GAAOszB,GAAiB,GAAG;AAAA,MAC3D;AAAA,MACQ,SAAS,SAAUtzB,GAAO;AACtB,eAAO,OAAOA,CAAK;AAAA,MAC/B;AAAA;IAEI,SAASuzB,EAAO;AAAA,IAChB,SAASA,EAAO;AAAA;;;;;;ACnBpB,MAAIC,IAAUjnB,gBAAAA,GAAA,GAEV6hB,IAAM,OAAO,UAAU,gBACvBM,IAAU,MAAM,SAEhB+E,KAAY,WAAY;AAExB,aADIzU,IAAQ,CAAA,GACHzR,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACvB,MAAAyR,EAAM,KAAK,QAAQzR,IAAI,KAAK,MAAM,MAAMA,EAAE,SAAS,EAAE,GAAG,YAAW,CAAE;AAGzE,WAAOyR;AAAA,EACX,MAEI0U,IAAe,SAAsBC,GAAO;AAC5C,WAAOA,EAAM,SAAS,KAAG;AACrB,UAAI/c,IAAO+c,EAAM,IAAG,GAChB5jB,IAAM6G,EAAK,IAAIA,EAAK,IAAI;AAE5B,UAAI8X,EAAQ3e,CAAG,GAAG;AAGd,iBAFI6jB,IAAY,CAAA,GAEPnT,IAAI,GAAGA,IAAI1Q,EAAI,QAAQ,EAAE0Q;AAC9B,UAAI,OAAO1Q,EAAI0Q,CAAC,IAAM,OAClBmT,EAAU,KAAK7jB,EAAI0Q,CAAC,CAAC;AAI7B,QAAA7J,EAAK,IAAIA,EAAK,IAAI,IAAIgd;AAAA,MAClC;AAAA,IACA;AAAA,EACA,GAEIC,IAAgB,SAAuBC,GAAQ5zB,GAAS;AAExD,aADI6P,IAAM7P,KAAWA,EAAQ,eAAe,uBAAO,OAAO,IAAI,IAAI,CAAA,GACzDqN,IAAI,GAAGA,IAAIumB,EAAO,QAAQ,EAAEvmB;AACjC,MAAI,OAAOumB,EAAOvmB,CAAC,IAAM,QACrBwC,EAAIxC,CAAC,IAAIumB,EAAOvmB,CAAC;AAIzB,WAAOwC;AAAA,EACX,GAEIgkB,IAAQ,SAASA,EAAM5P,GAAQ2P,GAAQ5zB,GAAS;AAEhD,QAAI,CAAC4zB;AACD,aAAO3P;AAGX,QAAI,OAAO2P,KAAW,UAAU;AAC5B,UAAIpF,EAAQvK,CAAM;AACd,QAAAA,EAAO,KAAK2P,CAAM;AAAA,eACX3P,KAAU,OAAOA,KAAW;AACnC,SAAKjkB,MAAYA,EAAQ,gBAAgBA,EAAQ,oBAAqB,CAACkuB,EAAI,KAAK,OAAO,WAAW0F,CAAM,OACpG3P,EAAO2P,CAAM,IAAI;AAAA;AAGrB,eAAO,CAAC3P,GAAQ2P,CAAM;AAG1B,aAAO3P;AAAA,IACf;AAEI,QAAI,CAACA,KAAU,OAAOA,KAAW;AAC7B,aAAO,CAACA,CAAM,EAAE,OAAO2P,CAAM;AAGjC,QAAIE,IAAc7P;AAKlB,WAJIuK,EAAQvK,CAAM,KAAK,CAACuK,EAAQoF,CAAM,MAClCE,IAAcH,EAAc1P,GAAQjkB,CAAO,IAG3CwuB,EAAQvK,CAAM,KAAKuK,EAAQoF,CAAM,KACjCA,EAAO,QAAQ,SAAUld,GAAMrJ,GAAG;AAC9B,UAAI6gB,EAAI,KAAKjK,GAAQ5W,CAAC,GAAG;AACrB,YAAI0mB,IAAa9P,EAAO5W,CAAC;AACzB,QAAI0mB,KAAc,OAAOA,KAAe,YAAYrd,KAAQ,OAAOA,KAAS,WACxEuN,EAAO5W,CAAC,IAAIwmB,EAAME,GAAYrd,GAAM1W,CAAO,IAE3CikB,EAAO,KAAKvN,CAAI;AAAA,MAEpC;AACgB,QAAAuN,EAAO5W,CAAC,IAAIqJ;AAAA,IAE5B,CAAS,GACMuN,KAGJ,OAAO,KAAK2P,CAAM,EAAE,OAAO,SAAUI,GAAKtmB,GAAK;AAClD,UAAI5N,IAAQ8zB,EAAOlmB,CAAG;AAEtB,aAAIwgB,EAAI,KAAK8F,GAAKtmB,CAAG,IACjBsmB,EAAItmB,CAAG,IAAImmB,EAAMG,EAAItmB,CAAG,GAAG5N,GAAOE,CAAO,IAEzCg0B,EAAItmB,CAAG,IAAI5N,GAERk0B;AAAA,IACf,GAAOF,CAAW;AAAA,EAClB,GAEIG,IAAS,SAA4BhQ,GAAQ2P,GAAQ;AACrD,WAAO,OAAO,KAAKA,CAAM,EAAE,OAAO,SAAUI,GAAKtmB,GAAK;AAClD,aAAAsmB,EAAItmB,CAAG,IAAIkmB,EAAOlmB,CAAG,GACdsmB;AAAA,IACf,GAAO/P,CAAM;AAAA,EACb,GAEIhE,IAAS,SAAUlD,GAAKmX,GAASC,GAAS;AAC1C,QAAIC,IAAiBrX,EAAI,QAAQ,OAAO,GAAG;AAC3C,QAAIoX,MAAY;AAEZ,aAAOC,EAAe,QAAQ,kBAAkB,QAAQ;AAG5D,QAAI;AACA,aAAO,mBAAmBA,CAAc;AAAA,IAChD,QAAgB;AACR,aAAOA;AAAA,IACf;AAAA,EACA,GAEIC,IAAQ,MAIRzT,IAAS,SAAgB7D,GAAKuX,GAAgBH,GAASI,GAAMC,GAAQ;AAGrE,QAAIzX,EAAI,WAAW;AACf,aAAOA;AAGX,QAAI9P,IAAS8P;AAOb,QANI,OAAOA,KAAQ,WACf9P,IAAS,OAAO,UAAU,SAAS,KAAK8P,CAAG,IACpC,OAAOA,KAAQ,aACtB9P,IAAS,OAAO8P,CAAG,IAGnBoX,MAAY;AACZ,aAAO,OAAOlnB,CAAM,EAAE,QAAQ,mBAAmB,SAAUwnB,GAAI;AAC3D,eAAO,WAAW,SAASA,EAAG,MAAM,CAAC,GAAG,EAAE,IAAI;AAAA,MAC1D,CAAS;AAIL,aADItU,IAAM,IACDI,IAAI,GAAGA,IAAItT,EAAO,QAAQsT,KAAK8T,GAAO;AAI3C,eAHIK,IAAUznB,EAAO,UAAUonB,IAAQpnB,EAAO,MAAMsT,GAAGA,IAAI8T,CAAK,IAAIpnB,GAChE6C,IAAM,CAAA,GAEDzC,IAAI,GAAGA,IAAIqnB,EAAQ,QAAQ,EAAErnB,GAAG;AACrC,YAAI/J,IAAIoxB,EAAQ,WAAWrnB,CAAC;AAC5B,YACI/J,MAAM,MACHA,MAAM,MACNA,MAAM,MACNA,MAAM,OACLA,KAAK,MAAQA,KAAK,MAClBA,KAAK,MAAQA,KAAK,MAClBA,KAAK,MAAQA,KAAK,OAClBkxB,MAAWlB,EAAQ,YAAYhwB,MAAM,MAAQA,MAAM,KACzD;AACE,UAAAwM,EAAIA,EAAI,MAAM,IAAI4kB,EAAQ,OAAOrnB,CAAC;AAClC;AAAA,QAChB;AAEY,YAAI/J,IAAI,KAAM;AACV,UAAAwM,EAAIA,EAAI,MAAM,IAAIyjB,EAASjwB,CAAC;AAC5B;AAAA,QAChB;AAEY,YAAIA,IAAI,MAAO;AACX,UAAAwM,EAAIA,EAAI,MAAM,IAAIyjB,EAAS,MAAQjwB,KAAK,CAAE,IACpCiwB,EAAS,MAAQjwB,IAAI,EAAK;AAChC;AAAA,QAChB;AAEY,YAAIA,IAAI,SAAUA,KAAK,OAAQ;AAC3B,UAAAwM,EAAIA,EAAI,MAAM,IAAIyjB,EAAS,MAAQjwB,KAAK,EAAG,IACrCiwB,EAAS,MAASjwB,KAAK,IAAK,EAAK,IACjCiwB,EAAS,MAAQjwB,IAAI,EAAK;AAChC;AAAA,QAChB;AAEY,QAAA+J,KAAK,GACL/J,IAAI,UAAaA,IAAI,SAAU,KAAOoxB,EAAQ,WAAWrnB,CAAC,IAAI,OAE9DyC,EAAIA,EAAI,MAAM,IAAIyjB,EAAS,MAAQjwB,KAAK,EAAG,IACrCiwB,EAAS,MAASjwB,KAAK,KAAM,EAAK,IAClCiwB,EAAS,MAASjwB,KAAK,IAAK,EAAK,IACjCiwB,EAAS,MAAQjwB,IAAI,EAAK;AAAA,MAC5C;AAEQ,MAAA6c,KAAOrQ,EAAI,KAAK,EAAE;AAAA,IAC1B;AAEI,WAAOqQ;AAAA,EACX,GAEIwU,IAAU,SAAiB70B,GAAO;AAIlC,aAHI2zB,IAAQ,CAAC,EAAE,KAAK,EAAE,GAAG3zB,EAAK,GAAI,MAAM,KAAK,GACzC80B,IAAO,CAAA,GAEFvnB,IAAI,GAAGA,IAAIomB,EAAM,QAAQ,EAAEpmB;AAKhC,eAJIqJ,IAAO+c,EAAMpmB,CAAC,GACdwC,IAAM6G,EAAK,IAAIA,EAAK,IAAI,GAExBuY,IAAO,OAAO,KAAKpf,CAAG,GACjB0Q,IAAI,GAAGA,IAAI0O,EAAK,QAAQ,EAAE1O,GAAG;AAClC,YAAI7S,IAAMuhB,EAAK1O,CAAC,GACZ7T,IAAMmD,EAAInC,CAAG;AACjB,QAAI,OAAOhB,KAAQ,YAAYA,MAAQ,QAAQkoB,EAAK,QAAQloB,CAAG,MAAM,OACjE+mB,EAAM,KAAK,EAAE,KAAK5jB,GAAK,MAAMnC,GAAK,GAClCknB,EAAK,KAAKloB,CAAG;AAAA,MAE7B;AAGI,WAAA8mB,EAAaC,CAAK,GAEX3zB;AAAA,EACX,GAEIivB,IAAW,SAAkBlf,GAAK;AAClC,WAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,MAAM;AAAA,EACnD,GAEIglB,IAAW,SAAkBhlB,GAAK;AAClC,WAAI,CAACA,KAAO,OAAOA,KAAQ,WAChB,KAGJ,CAAC,EAAEA,EAAI,eAAeA,EAAI,YAAY,YAAYA,EAAI,YAAY,SAASA,CAAG;AAAA,EACzF,GAEIilB,IAAU,SAAiBj2B,GAAGyH,GAAG;AACjC,WAAO,GAAG,OAAOzH,GAAGyH,CAAC;AAAA,EACzB,GAEIyuB,IAAW,SAAkBroB,GAAKqS,GAAI;AACtC,QAAIyP,EAAQ9hB,CAAG,GAAG;AAEd,eADIsoB,IAAS,CAAA,GACJ3nB,IAAI,GAAGA,IAAIX,EAAI,QAAQW,KAAK;AACjC,QAAA2nB,EAAO,KAAKjW,EAAGrS,EAAIW,CAAC,CAAC,CAAC;AAE1B,aAAO2nB;AAAA,IACf;AACI,WAAOjW,EAAGrS,CAAG;AAAA,EACjB;AAEA,SAAAuoB,KAAiB;AAAA,IACb,eAAetB;AAAA,IACf,QAAQM;AAAA,IACR,SAASa;AAAA,IACT,SAASH;AAAA,IACT,QAAQ1U;AAAA,IACR,QAAQW;AAAA,IACR,UAAUiU;AAAA,IACV,UAAU9F;AAAA,IACV,UAAUgG;AAAA,IACV,OAAOlB;AAAA;;;;;;ACrQX,MAAIqB,IAAiB7oB,GAAA,GACjB4oB,IAAQ3oB,gBAAAA,GAAA,GACRgnB,IAAU9mB,gBAAAA,GAAA,GACV0hB,IAAM,OAAO,UAAU,gBAEvBiH,IAAwB;AAAA,IACxB,UAAU,SAAkBC,GAAQ;AAChC,aAAOA,IAAS;AAAA,IACxB;AAAA,IACI,OAAO;AAAA,IACP,SAAS,SAAiBA,GAAQ1nB,GAAK;AACnC,aAAO0nB,IAAS,MAAM1nB,IAAM;AAAA,IACpC;AAAA,IACI,QAAQ,SAAgB0nB,GAAQ;AAC5B,aAAOA;AAAA,IACf;AAAA,KAGI5G,IAAU,MAAM,SAChB/f,IAAO,MAAM,UAAU,MACvB4mB,IAAc,SAAUvlB,GAAKwlB,GAAc;AAC3C,IAAA7mB,EAAK,MAAMqB,GAAK0e,EAAQ8G,CAAY,IAAIA,IAAe,CAACA,CAAY,CAAC;AAAA,EACzE,GAEIC,IAAQ,KAAK,UAAU,aAEvBC,IAAgBlC,EAAQ,SACxBmC,IAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,SAASR,EAAM;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQO;AAAA,IACR,WAAWlC,EAAQ,WAAWkC,CAAa;AAAA;AAAA,IAE3C,SAAS;AAAA,IACT,eAAe,SAAuBE,GAAM;AACxC,aAAOH,EAAM,KAAKG,CAAI;AAAA,IAC9B;AAAA,IACI,WAAW;AAAA,IACX,oBAAoB;AAAA,KAGpBC,IAAwB,SAA+Brc,GAAG;AAC1D,WAAO,OAAOA,KAAM,YACb,OAAOA,KAAM,YACb,OAAOA,KAAM,aACb,OAAOA,KAAM,YACb,OAAOA,KAAM;AAAA,EACxB,GAEIsc,IAAW,CAAA,GAEX9oB,IAAY,SAASA,EACrBX,GACAipB,GACAS,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA/B,GACAgC,GACAC,GACAtC,IACArB,IACF;AAME,aALIjjB,IAAM1D,GAENuqB,KAAQ5D,IACR6D,IAAO,GACPC,IAAW,KACPF,KAAQA,GAAM,IAAId,CAAQ,OAAO,UAAkB,CAACgB,KAAU;AAElE,UAAIC,IAAMH,GAAM,IAAIvqB,CAAM;AAE1B,UADAwqB,KAAQ,GACJ,OAAOE,IAAQ,KAAa;AAC5B,YAAIA,MAAQF;AACR,gBAAM,IAAI,WAAW,qBAAqB;AAE1C,QAAAC,IAAW;AAAA,MAE3B;AACQ,MAAI,OAAOF,GAAM,IAAId,CAAQ,IAAM,QAC/Be,IAAO;AAAA,IAEnB;AAeI,QAbI,OAAOP,KAAW,aAClBvmB,IAAMumB,EAAOhB,GAAQvlB,CAAG,IACjBA,aAAe,OACtBA,IAAM0mB,EAAc1mB,CAAG,IAChBgmB,MAAwB,WAAWrH,EAAQ3e,CAAG,MACrDA,IAAMolB,EAAM,SAASplB,GAAK,SAAU/P,GAAO;AACvC,aAAIA,aAAiB,OACVy2B,EAAcz2B,CAAK,IAEvBA;AAAA,IACnB,CAAS,IAGD+P,MAAQ,MAAM;AACd,UAAImmB;AACA,eAAOG,KAAW,CAACM,IAAmBN,EAAQf,GAAQK,EAAS,SAAStB,IAAS,OAAOK,CAAM,IAAIY;AAGtG,MAAAvlB,IAAM;AAAA,IACd;AAEI,QAAI8lB,EAAsB9lB,CAAG,KAAKolB,EAAM,SAASplB,CAAG,GAAG;AACnD,UAAIsmB,GAAS;AACT,YAAIW,IAAWL,IAAmBrB,IAASe,EAAQf,GAAQK,EAAS,SAAStB,IAAS,OAAOK,CAAM;AACnG,eAAO,CAACgC,EAAUM,CAAQ,IAAI,MAAMN,EAAUL,EAAQtmB,GAAK4lB,EAAS,SAAStB,IAAS,SAASK,CAAM,CAAC,CAAC;AAAA,MACnH;AACQ,aAAO,CAACgC,EAAUpB,CAAM,IAAI,MAAMoB,EAAU,OAAO3mB,CAAG,CAAC,CAAC;AAAA,IAChE;AAEI,QAAIgJ,IAAS,CAAA;AAEb,QAAI,OAAOhJ,IAAQ;AACf,aAAOgJ;AAGX,QAAItL;AACJ,QAAIsoB,MAAwB,WAAWrH,EAAQ3e,CAAG;AAE9C,MAAI4mB,KAAoBN,MACpBtmB,IAAMolB,EAAM,SAASplB,GAAKsmB,CAAO,IAErC5oB,IAAU,CAAC,EAAE,OAAOsC,EAAI,SAAS,IAAIA,EAAI,KAAK,GAAG,KAAK,OAAO,OAAc,CAAE;AAAA,aACtE2e,EAAQ4H,CAAM;AACrB,MAAA7oB,IAAU6oB;AAAA,SACP;AACH,UAAInH,IAAO,OAAO,KAAKpf,CAAG;AAC1B,MAAAtC,IAAU8oB,IAAOpH,EAAK,KAAKoH,CAAI,IAAIpH;AAAA,IAC3C;AAEI,QAAI8H,IAAgBb,IAAkBd,EAAO,QAAQ,OAAO,KAAK,IAAIA,GAEjE4B,KAAiBlB,KAAkBtH,EAAQ3e,CAAG,KAAKA,EAAI,WAAW,IAAIknB,IAAgB,OAAOA;AAEjG,QAAIhB,KAAoBvH,EAAQ3e,CAAG,KAAKA,EAAI,WAAW;AACnD,aAAOmnB,KAAiB;AAG5B,aAASzW,IAAI,GAAGA,IAAIhT,EAAQ,QAAQ,EAAEgT,GAAG;AACrC,UAAI7S,IAAMH,EAAQgT,CAAC,GACfzgB,IAAQ,OAAO4N,KAAQ,YAAY,OAAOA,EAAI,QAAU,MAAcA,EAAI,QAAQmC,EAAInC,CAAG;AAE7F,UAAI,EAAAuoB,KAAan2B,MAAU,OAI3B;AAAA,YAAIm3B,IAAaX,KAAaJ,IAAkBxoB,EAAI,QAAQ,OAAO,KAAK,IAAIA,GACxEwpB,IAAY1I,EAAQ3e,CAAG,IACrB,OAAOgmB,KAAwB,aAAaA,EAAoBmB,IAAgBC,CAAU,IAAID,KAC9FA,MAAkBV,IAAY,MAAMW,IAAa,MAAMA,IAAa;AAE1E,QAAAnE,GAAY,IAAI3mB,GAAQwqB,CAAI;AAC5B,YAAIQ,IAAmBjC,EAAc;AACrC,QAAAiC,EAAiB,IAAIvB,GAAU9C,EAAW,GAC1CuC,EAAYxc,GAAQ/L;AAAA,UAChBhN;AAAA,UACAo3B;AAAA,UACArB;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,UACAL,MAAwB,WAAWY,KAAoBjI,EAAQ3e,CAAG,IAAI,OAAOsmB;AAAA,UAC7EC;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,UACA/B;AAAA,UACAgC;AAAA,UACAC;AAAA,UACAtC;AAAA,UACAgD;AAAA,QACZ,CAAS;AAAA;AAAA,IACT;AAEI,WAAOte;AAAA,EACX,GAEIue,IAA4B,SAAmCzqB,GAAM;AACrE,QAAI,CAACA;AACD,aAAO8oB;AAGX,QAAI,OAAO9oB,EAAK,mBAAqB,OAAe,OAAOA,EAAK,oBAAqB;AACjF,YAAM,IAAI,UAAU,wEAAwE;AAGhG,QAAI,OAAOA,EAAK,kBAAoB,OAAe,OAAOA,EAAK,mBAAoB;AAC/E,YAAM,IAAI,UAAU,uEAAuE;AAG/F,QAAIA,EAAK,YAAY,QAAQ,OAAOA,EAAK,UAAY,OAAe,OAAOA,EAAK,WAAY;AACxF,YAAM,IAAI,UAAU,+BAA+B;AAGvD,QAAIwnB,IAAUxnB,EAAK,WAAW8oB,EAAS;AACvC,QAAI,OAAO9oB,EAAK,UAAY,OAAeA,EAAK,YAAY,WAAWA,EAAK,YAAY;AACpF,YAAM,IAAI,UAAU,mEAAmE;AAG3F,QAAI6nB,IAASlB,EAAQ;AACrB,QAAI,OAAO3mB,EAAK,SAAW,KAAa;AACpC,UAAI,CAACuhB,EAAI,KAAKoF,EAAQ,YAAY3mB,EAAK,MAAM;AACzC,cAAM,IAAI,UAAU,iCAAiC;AAEzD,MAAA6nB,IAAS7nB,EAAK;AAAA,IACtB;AACI,QAAI6pB,IAAYlD,EAAQ,WAAWkB,CAAM,GAErC4B,IAASX,EAAS;AACtB,KAAI,OAAO9oB,EAAK,UAAW,cAAc6hB,EAAQ7hB,EAAK,MAAM,OACxDypB,IAASzpB,EAAK;AAGlB,QAAI0qB;AASJ,QARI1qB,EAAK,eAAewoB,IACpBkC,IAAc1qB,EAAK,cACZ,aAAaA,IACpB0qB,IAAc1qB,EAAK,UAAU,YAAY,WAEzC0qB,IAAc5B,EAAS,aAGvB,oBAAoB9oB,KAAQ,OAAOA,EAAK,kBAAmB;AAC3D,YAAM,IAAI,UAAU,+CAA+C;AAGvE,QAAI2pB,IAAY,OAAO3pB,EAAK,YAAc,MAAcA,EAAK,oBAAoB,KAAO,KAAO8oB,EAAS,YAAY,CAAC,CAAC9oB,EAAK;AAE3H,WAAO;AAAA,MACH,gBAAgB,OAAOA,EAAK,kBAAmB,YAAYA,EAAK,iBAAiB8oB,EAAS;AAAA,MAC1F,WAAWa;AAAA,MACX,kBAAkB,OAAO3pB,EAAK,oBAAqB,YAAY,CAAC,CAACA,EAAK,mBAAmB8oB,EAAS;AAAA,MAClG,aAAa4B;AAAA,MACb,SAASlD;AAAA,MACT,iBAAiB,OAAOxnB,EAAK,mBAAoB,YAAYA,EAAK,kBAAkB8oB,EAAS;AAAA,MAC7F,gBAAgB9oB,EAAK;AAAA,MACrB,WAAW,OAAOA,EAAK,YAAc,MAAc8oB,EAAS,YAAY9oB,EAAK;AAAA,MAC7E,QAAQ,OAAOA,EAAK,UAAW,YAAYA,EAAK,SAAS8oB,EAAS;AAAA,MAClE,iBAAiB,OAAO9oB,EAAK,mBAAoB,YAAYA,EAAK,kBAAkB8oB,EAAS;AAAA,MAC7F,SAAS,OAAO9oB,EAAK,WAAY,aAAaA,EAAK,UAAU8oB,EAAS;AAAA,MACtE,kBAAkB,OAAO9oB,EAAK,oBAAqB,YAAYA,EAAK,mBAAmB8oB,EAAS;AAAA,MAChG,QAAQW;AAAA,MACR,QAAQ5B;AAAA,MACR,WAAWgC;AAAA,MACX,eAAe,OAAO7pB,EAAK,iBAAkB,aAAaA,EAAK,gBAAgB8oB,EAAS;AAAA,MACxF,WAAW,OAAO9oB,EAAK,aAAc,YAAYA,EAAK,YAAY8oB,EAAS;AAAA,MAC3E,MAAM,OAAO9oB,EAAK,QAAS,aAAaA,EAAK,OAAO;AAAA,MACpD,oBAAoB,OAAOA,EAAK,sBAAuB,YAAYA,EAAK,qBAAqB8oB,EAAS;AAAA;EAE9G;AAEA,SAAA6B,KAAiB,SAAUnrB,GAAQQ,GAAM;AACrC,QAAIkD,IAAM1D,GACNnM,IAAUo3B,EAA0BzqB,CAAI,GAExCY,GACA6oB;AAEJ,IAAI,OAAOp2B,EAAQ,UAAW,cAC1Bo2B,IAASp2B,EAAQ,QACjB6P,IAAMumB,EAAO,IAAIvmB,CAAG,KACb2e,EAAQxuB,EAAQ,MAAM,MAC7Bo2B,IAASp2B,EAAQ,QACjBuN,IAAU6oB;AAGd,QAAInH,IAAO,CAAA;AAEX,QAAI,OAAOpf,KAAQ,YAAYA,MAAQ;AACnC,aAAO;AAGX,QAAIgmB,IAAsBV,EAAsBn1B,EAAQ,WAAW,GAC/D81B,IAAiBD,MAAwB,WAAW71B,EAAQ;AAEhE,IAAKuN,MACDA,IAAU,OAAO,KAAKsC,CAAG,IAGzB7P,EAAQ,QACRuN,EAAQ,KAAKvN,EAAQ,IAAI;AAI7B,aADI8yB,IAAcoC,EAAc,GACvB7nB,IAAI,GAAGA,IAAIE,EAAQ,QAAQ,EAAEF,GAAG;AACrC,UAAIK,IAAMH,EAAQF,CAAC;AAEnB,MAAIrN,EAAQ,aAAa6P,EAAInC,CAAG,MAAM,QAGtC2nB,EAAYpG,GAAMniB;AAAA,QACd+C,EAAInC,CAAG;AAAA,QACPA;AAAA,QACAmoB;AAAA,QACAC;AAAA,QACA91B,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ,SAASA,EAAQ,UAAU;AAAA,QACnCA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACR8yB;AAAA,MACZ,CAAS;AAAA,IACT;AAEI,QAAIyE,IAAStI,EAAK,KAAKjvB,EAAQ,SAAS,GACpCo1B,IAASp1B,EAAQ,mBAAmB,KAAO,MAAM;AAErD,WAAIA,EAAQ,oBACJA,EAAQ,YAAY,eAEpBo1B,KAAU,yBAGVA,KAAU,oBAIXmC,EAAO,SAAS,IAAInC,IAASmC,IAAS;AAAA,EACjD;;;;;;AC5VA,MAAItC,IAAQ5oB,gBAAAA,GAAA,GAER6hB,IAAM,OAAO,UAAU,gBACvBM,IAAU,MAAM,SAEhBiH,IAAW;AAAA,IACX,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,SAASR,EAAM;AAAA,IACf,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,0BAA0B;AAAA,IAC1B,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,cAAc;AAAA,IACd,aAAa;AAAA,IACb,oBAAoB;AAAA,KAGpBuC,IAA2B,SAAUza,GAAK;AAC1C,WAAOA,EAAI,QAAQ,aAAa,SAAU0X,GAAIgD,GAAW;AACrD,aAAO,OAAO,aAAa,SAASA,GAAW,EAAE,CAAC;AAAA,IAC1D,CAAK;AAAA,EACL,GAEIC,IAAkB,SAAUhrB,GAAK1M,GAAS;AAC1C,WAAI0M,KAAO,OAAOA,KAAQ,YAAY1M,EAAQ,SAAS0M,EAAI,QAAQ,GAAG,IAAI,KAC/DA,EAAI,MAAM,GAAG,IAGjBA;AAAA,EACX,GAOIirB,IAAc,uBAGdC,IAAkB,kBAElBC,IAAc,SAAgC9a,GAAK/c,GAAS;AAC5D,QAAI6P,IAAM,EAAE,WAAW,KAAI,GAEvBioB,IAAW93B,EAAQ,oBAAoB+c,EAAI,QAAQ,OAAO,EAAE,IAAIA;AACpE,IAAA+a,IAAWA,EAAS,QAAQ,SAAS,GAAG,EAAE,QAAQ,SAAS,GAAG;AAC9D,QAAIzD,IAAQr0B,EAAQ,mBAAmB,QAAW,SAAYA,EAAQ,gBAClEif,IAAQ6Y,EAAS,MAAM93B,EAAQ,WAAWq0B,CAAK,GAC/C0D,IAAY,IACZ1qB,GAEA8mB,IAAUn0B,EAAQ;AACtB,QAAIA,EAAQ;AACR,WAAKqN,IAAI,GAAGA,IAAI4R,EAAM,QAAQ,EAAE5R;AAC5B,QAAI4R,EAAM5R,CAAC,EAAE,QAAQ,OAAO,MAAM,MAC1B4R,EAAM5R,CAAC,MAAMuqB,IACbzD,IAAU,UACHlV,EAAM5R,CAAC,MAAMsqB,MACpBxD,IAAU,eAEd4D,IAAY1qB,GACZA,IAAI4R,EAAM;AAKtB,SAAK5R,IAAI,GAAGA,IAAI4R,EAAM,QAAQ,EAAE5R;AAC5B,UAAIA,MAAM0qB,GAGV;AAAA,YAAI1iB,IAAO4J,EAAM5R,CAAC,GAEd2qB,IAAmB3iB,EAAK,QAAQ,IAAI,GACpCwhB,IAAMmB,MAAqB,KAAK3iB,EAAK,QAAQ,GAAG,IAAI2iB,IAAmB,GAEvEtqB,GAAKhB;AACT,QAAImqB,MAAQ,MACRnpB,IAAM1N,EAAQ,QAAQqV,GAAMogB,EAAS,SAAStB,GAAS,KAAK,GAC5DznB,IAAM1M,EAAQ,qBAAqB,OAAO,OAE1C0N,IAAM1N,EAAQ,QAAQqV,EAAK,MAAM,GAAGwhB,CAAG,GAAGpB,EAAS,SAAStB,GAAS,KAAK,GAC1EznB,IAAMuoB,EAAM;AAAA,UACRyC,EAAgBriB,EAAK,MAAMwhB,IAAM,CAAC,GAAG72B,CAAO;AAAA,UAC5C,SAAUi4B,GAAY;AAClB,mBAAOj4B,EAAQ,QAAQi4B,GAAYxC,EAAS,SAAStB,GAAS,OAAO;AAAA,UACzF;AAAA,YAIYznB,KAAO1M,EAAQ,4BAA4Bm0B,MAAY,iBACvDznB,IAAM8qB,EAAyB9qB,CAAG,IAGlC2I,EAAK,QAAQ,KAAK,IAAI,OACtB3I,IAAM8hB,EAAQ9hB,CAAG,IAAI,CAACA,CAAG,IAAIA;AAGjC,YAAIwrB,IAAWhK,EAAI,KAAKre,GAAKnC,CAAG;AAChC,QAAIwqB,KAAYl4B,EAAQ,eAAe,YACnC6P,EAAInC,CAAG,IAAIunB,EAAM,QAAQplB,EAAInC,CAAG,GAAGhB,CAAG,KAC/B,CAACwrB,KAAYl4B,EAAQ,eAAe,YAC3C6P,EAAInC,CAAG,IAAIhB;AAAA;AAInB,WAAOmD;AAAA,EACX,GAEIsoB,IAAc,SAAUC,GAAO1rB,GAAK1M,GAASq4B,GAAc;AAG3D,aAFIC,IAAOD,IAAe3rB,IAAMgrB,EAAgBhrB,GAAK1M,CAAO,GAEnDqN,IAAI+qB,EAAM,SAAS,GAAG/qB,KAAK,GAAG,EAAEA,GAAG;AACxC,UAAIwC,GACA3I,IAAOkxB,EAAM/qB,CAAC;AAElB,UAAInG,MAAS,QAAQlH,EAAQ;AACzB,QAAA6P,IAAM7P,EAAQ,qBAAqBs4B,MAAS,MAAOt4B,EAAQ,sBAAsBs4B,MAAS,QACpF,CAAA,IACA,CAAA,EAAG,OAAOA,CAAI;AAAA,WACjB;AACH,QAAAzoB,IAAM7P,EAAQ,eAAe,uBAAO,OAAO,IAAI,IAAI,CAAA;AACnD,YAAIu4B,IAAYrxB,EAAK,OAAO,CAAC,MAAM,OAAOA,EAAK,OAAOA,EAAK,SAAS,CAAC,MAAM,MAAMA,EAAK,MAAM,GAAG,EAAE,IAAIA,GACjGsxB,IAAcx4B,EAAQ,kBAAkBu4B,EAAU,QAAQ,QAAQ,GAAG,IAAIA,GACzE1xB,IAAQ,SAAS2xB,GAAa,EAAE;AACpC,QAAI,CAACx4B,EAAQ,eAAew4B,MAAgB,KACxC3oB,IAAM,EAAE,GAAGyoB,EAAI,IAEf,CAAC,MAAMzxB,CAAK,KACTK,MAASsxB,KACT,OAAO3xB,CAAK,MAAM2xB,KAClB3xB,KAAS,KACR7G,EAAQ,eAAe6G,KAAS7G,EAAQ,cAE5C6P,IAAM,CAAA,GACNA,EAAIhJ,CAAK,IAAIyxB,KACNE,MAAgB,gBACvB3oB,EAAI2oB,CAAW,IAAIF;AAAA,MAEnC;AAEQ,MAAAA,IAAOzoB;AAAA,IACf;AAEI,WAAOyoB;AAAA,EACX,GAEIG,IAAY,SAA8BC,GAAUhsB,GAAK1M,GAASq4B,GAAc;AAChF,QAAKK,GAKL;AAAA,UAAIhrB,IAAM1N,EAAQ,YAAY04B,EAAS,QAAQ,eAAe,MAAM,IAAIA,GAIpEC,IAAW,gBACXC,IAAQ,iBAIRlE,IAAU10B,EAAQ,QAAQ,KAAK24B,EAAS,KAAKjrB,CAAG,GAChDmrB,IAASnE,IAAUhnB,EAAI,MAAM,GAAGgnB,EAAQ,KAAK,IAAIhnB,GAIjDuhB,IAAO,CAAA;AACX,UAAI4J,GAAQ;AAER,YAAI,CAAC74B,EAAQ,gBAAgBkuB,EAAI,KAAK,OAAO,WAAW2K,CAAM,KACtD,CAAC74B,EAAQ;AACT;AAIR,QAAAivB,EAAK,KAAK4J,CAAM;AAAA,MACxB;AAKI,eADIxrB,IAAI,GACDrN,EAAQ,QAAQ,MAAM00B,IAAUkE,EAAM,KAAKlrB,CAAG,OAAO,QAAQL,IAAIrN,EAAQ,SAAO;AAEnF,YADAqN,KAAK,GACD,CAACrN,EAAQ,gBAAgBkuB,EAAI,KAAK,OAAO,WAAWwG,EAAQ,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KACvE,CAAC10B,EAAQ;AACT;AAGR,QAAAivB,EAAK,KAAKyF,EAAQ,CAAC,CAAC;AAAA,MAC5B;AAII,UAAIA,GAAS;AACT,YAAI10B,EAAQ,gBAAgB;AACxB,gBAAM,IAAI,WAAW,0CAA0CA,EAAQ,QAAQ,0BAA0B;AAE7G,QAAAivB,EAAK,KAAK,MAAMvhB,EAAI,MAAMgnB,EAAQ,KAAK,IAAI,GAAG;AAAA,MACtD;AAEI,aAAOyD,EAAYlJ,GAAMviB,GAAK1M,GAASq4B,CAAY;AAAA;AAAA,EACvD,GAEIS,IAAwB,SAA+BnsB,GAAM;AAC7D,QAAI,CAACA;AACD,aAAO8oB;AAGX,QAAI,OAAO9oB,EAAK,mBAAqB,OAAe,OAAOA,EAAK,oBAAqB;AACjF,YAAM,IAAI,UAAU,wEAAwE;AAGhG,QAAI,OAAOA,EAAK,kBAAoB,OAAe,OAAOA,EAAK,mBAAoB;AAC/E,YAAM,IAAI,UAAU,uEAAuE;AAG/F,QAAIA,EAAK,YAAY,QAAQ,OAAOA,EAAK,UAAY,OAAe,OAAOA,EAAK,WAAY;AACxF,YAAM,IAAI,UAAU,+BAA+B;AAGvD,QAAI,OAAOA,EAAK,UAAY,OAAeA,EAAK,YAAY,WAAWA,EAAK,YAAY;AACpF,YAAM,IAAI,UAAU,mEAAmE;AAE3F,QAAIwnB,IAAU,OAAOxnB,EAAK,UAAY,MAAc8oB,EAAS,UAAU9oB,EAAK,SAExEosB,IAAa,OAAOpsB,EAAK,aAAe,MAAc8oB,EAAS,aAAa9oB,EAAK;AAErF,QAAIosB,MAAe,aAAaA,MAAe,WAAWA,MAAe;AACrE,YAAM,IAAI,UAAU,8DAA8D;AAGtF,QAAIzC,IAAY,OAAO3pB,EAAK,YAAc,MAAcA,EAAK,oBAAoB,KAAO,KAAO8oB,EAAS,YAAY,CAAC,CAAC9oB,EAAK;AAE3H,WAAO;AAAA,MACH,WAAW2pB;AAAA,MACX,kBAAkB,OAAO3pB,EAAK,oBAAqB,YAAY,CAAC,CAACA,EAAK,mBAAmB8oB,EAAS;AAAA,MAClG,iBAAiB,OAAO9oB,EAAK,mBAAoB,YAAYA,EAAK,kBAAkB8oB,EAAS;AAAA,MAC7F,aAAa,OAAO9oB,EAAK,eAAgB,YAAYA,EAAK,cAAc8oB,EAAS;AAAA,MACjF,YAAY,OAAO9oB,EAAK,cAAe,WAAWA,EAAK,aAAa8oB,EAAS;AAAA,MAC7E,SAAStB;AAAA,MACT,iBAAiB,OAAOxnB,EAAK,mBAAoB,YAAYA,EAAK,kBAAkB8oB,EAAS;AAAA,MAC7F,OAAO,OAAO9oB,EAAK,SAAU,YAAYA,EAAK,QAAQ8oB,EAAS;AAAA,MAC/D,iBAAiB,OAAO9oB,EAAK,mBAAoB,YAAYA,EAAK,kBAAkB8oB,EAAS;AAAA,MAC7F,SAAS,OAAO9oB,EAAK,WAAY,aAAaA,EAAK,UAAU8oB,EAAS;AAAA,MACtE,WAAW,OAAO9oB,EAAK,aAAc,YAAYsoB,EAAM,SAAStoB,EAAK,SAAS,IAAIA,EAAK,YAAY8oB,EAAS;AAAA;AAAA,MAE5G,OAAQ,OAAO9oB,EAAK,SAAU,YAAYA,EAAK,UAAU,KAAS,CAACA,EAAK,QAAQ8oB,EAAS;AAAA,MACzF,YAAYsD;AAAA,MACZ,mBAAmBpsB,EAAK,sBAAsB;AAAA,MAC9C,0BAA0B,OAAOA,EAAK,4BAA6B,YAAYA,EAAK,2BAA2B8oB,EAAS;AAAA,MACxH,gBAAgB,OAAO9oB,EAAK,kBAAmB,WAAWA,EAAK,iBAAiB8oB,EAAS;AAAA,MACzF,aAAa9oB,EAAK,gBAAgB;AAAA,MAClC,cAAc,OAAOA,EAAK,gBAAiB,YAAYA,EAAK,eAAe8oB,EAAS;AAAA,MACpF,aAAa,OAAO9oB,EAAK,eAAgB,YAAY,CAAC,CAACA,EAAK,cAAc8oB,EAAS;AAAA,MACnF,oBAAoB,OAAO9oB,EAAK,sBAAuB,YAAYA,EAAK,qBAAqB8oB,EAAS;AAAA;EAE9G;AAEA,SAAAuD,KAAiB,SAAUjc,GAAKpQ,GAAM;AAClC,QAAI3M,IAAU84B,EAAsBnsB,CAAI;AAExC,QAAIoQ,MAAQ,MAAMA,MAAQ,QAAQ,OAAOA,IAAQ;AAC7C,aAAO/c,EAAQ,eAAe,uBAAO,OAAO,IAAI,IAAI,CAAA;AASxD,aANIi5B,IAAU,OAAOlc,KAAQ,WAAW8a,EAAY9a,GAAK/c,CAAO,IAAI+c,GAChElN,IAAM7P,EAAQ,eAAe,uBAAO,OAAO,IAAI,IAAI,CAAA,GAInDivB,IAAO,OAAO,KAAKgK,CAAO,GACrB5rB,IAAI,GAAGA,IAAI4hB,EAAK,QAAQ,EAAE5hB,GAAG;AAClC,UAAIK,IAAMuhB,EAAK5hB,CAAC,GACZ6rB,IAAST,EAAU/qB,GAAKurB,EAAQvrB,CAAG,GAAG1N,GAAS,OAAO+c,KAAQ,QAAQ;AAC1E,MAAAlN,IAAMolB,EAAM,MAAMplB,GAAKqpB,GAAQl5B,CAAO;AAAA,IAC9C;AAEI,WAAIA,EAAQ,gBAAgB,KACjB6P,IAGJolB,EAAM,QAAQplB,CAAG;AAAA,EAC5B;;;;;;ACrSA,MAAI/C,IAAYT,gBAAAA,GAAA,GACZ2sB,IAAQ1sB,gBAAAA,GAAA,GACRgnB,IAAU9mB,gBAAAA,GAAA;AAEd,SAAAN,KAAiB;AAAA,IACb,SAASonB;AAAA,IACT,OAAO0F;AAAA,IACP,WAAWlsB;AAAA;;;;;;ACgBf,MAAI+Q,IAAWxR,GAAA;AAEf,WAAS8sB,IAAM;AACb,SAAK,WAAW,MAChB,KAAK,UAAU,MACf,KAAK,OAAO,MACZ,KAAK,OAAO,MACZ,KAAK,OAAO,MACZ,KAAK,WAAW,MAChB,KAAK,OAAO,MACZ,KAAK,SAAS,MACd,KAAK,QAAQ,MACb,KAAK,WAAW,MAChB,KAAK,OAAO,MACZ,KAAK,OAAO;AAAA,EACd;AAQA,MAAIC,IAAkB,qBACpBC,IAAc,YAGdC,IAAoB,qCAMpBC,IAAS;AAAA,IACP;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA;AAAA,IAAM;AAAA,KAIvCC,IAAS;AAAA,IACP;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA,IAAK;AAAA,EAC9B,EAAI,OAAOD,CAAM,GAGfE,IAAa,CAAC,GAAI,EAAE,OAAOD,CAAM,GAOjCE,IAAe;AAAA,IACb;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,EACxB,EAAI,OAAOD,CAAU,GACnBE,IAAkB;AAAA,IAChB;AAAA,IAAK;AAAA,IAAK;AAAA,KAEZC,IAAiB,KACjBC,IAAsB,0BACtBC,IAAoB,gCAEpBC,IAAiB;AAAA,IACf,YAAY;AAAA,IACZ,eAAe;AAAA,KAGjBC,IAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,eAAe;AAAA,KAGjBC,IAAkB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,KAEXC,IAAc5tB,gBAAAA,GAAA;AAEhB,WAAS6tB,EAASv7B,GAAKw7B,GAAkBC,GAAmB;AAC1D,QAAIz7B,KAAO,OAAOA,KAAQ,YAAYA,aAAeu6B;AAAO,aAAOv6B;AAEnE,QAAI07B,IAAI,IAAInB,EAAG;AACf,WAAAmB,EAAE,MAAM17B,GAAKw7B,GAAkBC,CAAiB,GACzCC;AAAA,EACT;AAEA,EAAAnB,EAAI,UAAU,QAAQ,SAAUv6B,GAAKw7B,GAAkBC,GAAmB;AACxE,QAAI,OAAOz7B,KAAQ;AACjB,YAAM,IAAI,UAAU,2CAA2C,OAAOA,CAAG;AAQ3E,QAAI27B,IAAa37B,EAAI,QAAQ,GAAG,GAC9B47B,IAAWD,MAAe,MAAMA,IAAa37B,EAAI,QAAQ,GAAG,IAAI,MAAM,KACtE67B,IAAS77B,EAAI,MAAM47B,CAAQ,GAC3BE,IAAa;AACf,IAAAD,EAAO,CAAC,IAAIA,EAAO,CAAC,EAAE,QAAQC,GAAY,GAAG,GAC7C97B,IAAM67B,EAAO,KAAKD,CAAQ;AAE1B,QAAIG,IAAO/7B;AAQX,QAFA+7B,IAAOA,EAAK,KAAI,GAEZ,CAACN,KAAqBz7B,EAAI,MAAM,GAAG,EAAE,WAAW,GAAG;AAErD,UAAIg8B,IAAatB,EAAkB,KAAKqB,CAAI;AAC5C,UAAIC;AACF,oBAAK,OAAOD,GACZ,KAAK,OAAOA,GACZ,KAAK,WAAWC,EAAW,CAAC,GACxBA,EAAW,CAAC,KACd,KAAK,SAASA,EAAW,CAAC,GACtBR,IACF,KAAK,QAAQF,EAAY,MAAM,KAAK,OAAO,OAAO,CAAC,CAAC,IAEpD,KAAK,QAAQ,KAAK,OAAO,OAAO,CAAC,KAE1BE,MACT,KAAK,SAAS,IACd,KAAK,QAAQ,CAAA,IAER;AAAA,IAEb;AAEE,QAAIS,IAAQzB,EAAgB,KAAKuB,CAAI;AACrC,QAAIE,GAAO;AACT,MAAAA,IAAQA,EAAM,CAAC;AACf,UAAIC,IAAaD,EAAM,YAAW;AAClC,WAAK,WAAWC,GAChBH,IAAOA,EAAK,OAAOE,EAAM,MAAM;AAAA,IACnC;AAQE,QAAIR,KAAqBQ,KAASF,EAAK,MAAM,oBAAoB,GAAG;AAClE,UAAII,KAAUJ,EAAK,OAAO,GAAG,CAAC,MAAM;AACpC,MAAII,MAAW,EAAEF,KAASb,EAAiBa,CAAK,OAC9CF,IAAOA,EAAK,OAAO,CAAC,GACpB,KAAK,UAAU;AAAA,IAErB;AAEE,QAAI,CAACX,EAAiBa,CAAK,MAAME,MAAYF,KAAS,CAACZ,EAAgBY,CAAK,IAAK;AAuB/E,eADIG,KAAU,IACL3tB,IAAI,GAAGA,IAAIssB,EAAgB,QAAQtsB,KAAK;AAC/C,YAAI4tB,KAAMN,EAAK,QAAQhB,EAAgBtsB,CAAC,CAAC;AACzC,QAAI4tB,OAAQ,OAAOD,OAAY,MAAMC,KAAMD,QAAYA,KAAUC;AAAA,MACvE;AAMI,UAAIC,GAAMC;AACV,MAAIH,OAAY,KAEdG,IAASR,EAAK,YAAY,GAAG,IAM7BQ,IAASR,EAAK,YAAY,KAAKK,EAAO,GAOpCG,MAAW,OACbD,IAAOP,EAAK,MAAM,GAAGQ,CAAM,GAC3BR,IAAOA,EAAK,MAAMQ,IAAS,CAAC,GAC5B,KAAK,OAAO,mBAAmBD,CAAI,IAIrCF,KAAU;AACV,eAAS3tB,IAAI,GAAGA,IAAIqsB,EAAa,QAAQrsB,KAAK;AAC5C,YAAI4tB,KAAMN,EAAK,QAAQjB,EAAarsB,CAAC,CAAC;AACtC,QAAI4tB,OAAQ,OAAOD,OAAY,MAAMC,KAAMD,QAAYA,KAAUC;AAAA,MACvE;AAEI,MAAID,OAAY,OAAMA,KAAUL,EAAK,SAErC,KAAK,OAAOA,EAAK,MAAM,GAAGK,EAAO,GACjCL,IAAOA,EAAK,MAAMK,EAAO,GAGzB,KAAK,UAAS,GAMd,KAAK,WAAW,KAAK,YAAY;AAMjC,UAAII,IAAe,KAAK,SAAS,CAAC,MAAM,OAAO,KAAK,SAAS,KAAK,SAAS,SAAS,CAAC,MAAM;AAG3F,UAAI,CAACA;AAEH,iBADIC,IAAY,KAAK,SAAS,MAAM,IAAI,GAC/BhuB,IAAI,GAAG8jB,IAAIkK,EAAU,QAAQhuB,IAAI8jB,GAAG9jB,KAAK;AAChD,cAAIgI,IAAOgmB,EAAUhuB,CAAC;AACtB,cAAKgI,KACD,CAACA,EAAK,MAAMwkB,CAAmB,GAAG;AAEpC,qBADIyB,IAAU,IACL/a,IAAI,GAAGP,KAAI3K,EAAK,QAAQkL,IAAIP,IAAGO;AACtC,cAAIlL,EAAK,WAAWkL,CAAC,IAAI,MAMvB+a,KAAW,MAEXA,KAAWjmB,EAAKkL,CAAC;AAIrB,gBAAI,CAAC+a,EAAQ,MAAMzB,CAAmB,GAAG;AACvC,kBAAI0B,IAAaF,EAAU,MAAM,GAAGhuB,CAAC,GACjCmuB,IAAUH,EAAU,MAAMhuB,IAAI,CAAC,GAC/BouB,IAAMpmB,EAAK,MAAMykB,CAAiB;AACtC,cAAI2B,MACFF,EAAW,KAAKE,EAAI,CAAC,CAAC,GACtBD,EAAQ,QAAQC,EAAI,CAAC,CAAC,IAEpBD,EAAQ,WACVb,IAAO,MAAMa,EAAQ,KAAK,GAAG,IAAIb,IAEnC,KAAK,WAAWY,EAAW,KAAK,GAAG;AACnC;AAAA,YACZ;AAAA,UACA;AAAA,QACA;AAGI,MAAI,KAAK,SAAS,SAAS3B,IACzB,KAAK,WAAW,KAGhB,KAAK,WAAW,KAAK,SAAS,YAAW,GAGtCwB,MAOH,KAAK,WAAWvd,EAAS,QAAQ,KAAK,QAAQ;AAGhD,UAAI3U,IAAI,KAAK,OAAO,MAAM,KAAK,OAAO,IAClCkN,IAAI,KAAK,YAAY;AACzB,WAAK,OAAOA,IAAIlN,GAChB,KAAK,QAAQ,KAAK,MAMdkyB,MACF,KAAK,WAAW,KAAK,SAAS,OAAO,GAAG,KAAK,SAAS,SAAS,CAAC,GAC5DT,EAAK,CAAC,MAAM,QACdA,IAAO,MAAMA;AAAA,IAGrB;AAME,QAAI,CAACZ,EAAee,CAAU;AAO5B,eAASztB,IAAI,GAAG8jB,IAAIsI,EAAW,QAAQpsB,IAAI8jB,GAAG9jB,KAAK;AACjD,YAAIquB,IAAKjC,EAAWpsB,CAAC;AACrB,YAAIstB,EAAK,QAAQe,CAAE,MAAM,IACzB;AAAA,cAAIC,IAAM,mBAAmBD,CAAE;AAC/B,UAAIC,MAAQD,MACVC,IAAM,OAAOD,CAAE,IAEjBf,IAAOA,EAAK,MAAMe,CAAE,EAAE,KAAKC,CAAG;AAAA;AAAA,MACpC;AAIE,QAAIC,KAAOjB,EAAK,QAAQ,GAAG;AAC3B,IAAIiB,OAAS,OAEX,KAAK,OAAOjB,EAAK,OAAOiB,EAAI,GAC5BjB,IAAOA,EAAK,MAAM,GAAGiB,EAAI;AAE3B,QAAIC,KAAKlB,EAAK,QAAQ,GAAG;AAmBzB,QAlBIkB,OAAO,MACT,KAAK,SAASlB,EAAK,OAAOkB,EAAE,GAC5B,KAAK,QAAQlB,EAAK,OAAOkB,KAAK,CAAC,GAC3BzB,MACF,KAAK,QAAQF,EAAY,MAAM,KAAK,KAAK,IAE3CS,IAAOA,EAAK,MAAM,GAAGkB,EAAE,KACdzB,MAET,KAAK,SAAS,IACd,KAAK,QAAQ,CAAA,IAEXO,MAAQ,KAAK,WAAWA,IACxBV,EAAgBa,CAAU,KAAK,KAAK,YAAY,CAAC,KAAK,aACxD,KAAK,WAAW,MAId,KAAK,YAAY,KAAK,QAAQ;AAChC,UAAI5xB,IAAI,KAAK,YAAY,IACrBgI,KAAI,KAAK,UAAU;AACvB,WAAK,OAAOhI,IAAIgI;AAAA,IACpB;AAGE,gBAAK,OAAO,KAAK,OAAM,GAChB;AAAA,EACT;AAGA,WAAS4qB,EAAUjsB,GAAK;AAQtB,WADI,OAAOA,KAAQ,aAAYA,IAAMsqB,EAAStqB,CAAG,IAC3CA,aAAespB,IACdtpB,EAAI,OAAM,IADmBspB,EAAI,UAAU,OAAO,KAAKtpB,CAAG;AAAA,EAEnE;AAEA,EAAAspB,EAAI,UAAU,SAAS,WAAY;AACjC,QAAI+B,IAAO,KAAK,QAAQ;AACxB,IAAIA,MACFA,IAAO,mBAAmBA,CAAI,GAC9BA,IAAOA,EAAK,QAAQ,QAAQ,GAAG,GAC/BA,KAAQ;AAGV,QAAIa,IAAW,KAAK,YAAY,IAC9BC,IAAW,KAAK,YAAY,IAC5BJ,IAAO,KAAK,QAAQ,IACpBK,IAAO,IACPl7B,IAAQ;AAEV,IAAI,KAAK,OACPk7B,IAAOf,IAAO,KAAK,OACV,KAAK,aACde,IAAOf,KAAQ,KAAK,SAAS,QAAQ,GAAG,MAAM,KAAK,KAAK,WAAW,MAAM,KAAK,WAAW,MACrF,KAAK,SACPe,KAAQ,MAAM,KAAK,QAInB,KAAK,SAAS,OAAO,KAAK,SAAU,YAAY,OAAO,KAAK,KAAK,KAAK,EAAE,WAC1El7B,IAAQm5B,EAAY,UAAU,KAAK,OAAO;AAAA,MACxC,aAAa;AAAA,MACb,gBAAgB;AAAA,IACtB,CAAK;AAGH,QAAIgC,IAAS,KAAK,UAAWn7B,KAAU,MAAMA,KAAW;AAExD,WAAIg7B,KAAYA,EAAS,OAAO,EAAE,MAAM,QAAOA,KAAY,MAMvD,KAAK,YAAY,CAACA,KAAY9B,EAAgB8B,CAAQ,MAAME,MAAS,MACvEA,IAAO,QAAQA,KAAQ,KACnBD,KAAYA,EAAS,OAAO,CAAC,MAAM,QAAOA,IAAW,MAAMA,MACrDC,MACVA,IAAO,KAGLL,KAAQA,EAAK,OAAO,CAAC,MAAM,QAAOA,IAAO,MAAMA,IAC/CM,KAAUA,EAAO,OAAO,CAAC,MAAM,QAAOA,IAAS,MAAMA,IAEzDF,IAAWA,EAAS,QAAQ,SAAS,SAAUrrB,GAAO;AACpD,aAAO,mBAAmBA,CAAK;AAAA,IACnC,CAAG,GACDurB,IAASA,EAAO,QAAQ,KAAK,KAAK,GAE3BH,IAAWE,IAAOD,IAAWE,IAASN;AAAA,EAC/C;AAEA,WAASO,EAAWvI,GAAQwI,GAAU;AACpC,WAAOjC,EAASvG,GAAQ,IAAO,EAAI,EAAE,QAAQwI,CAAQ;AAAA,EACvD;AAEA,EAAAjD,EAAI,UAAU,UAAU,SAAUiD,GAAU;AAC1C,WAAO,KAAK,cAAcjC,EAASiC,GAAU,IAAO,EAAI,CAAC,EAAE,OAAM;AAAA,EACnE;AAEA,WAASC,EAAiBzI,GAAQwI,GAAU;AAC1C,WAAKxI,IACEuG,EAASvG,GAAQ,IAAO,EAAI,EAAE,cAAcwI,CAAQ,IADrCA;AAAA,EAExB;AAEA,SAAAjD,EAAI,UAAU,gBAAgB,SAAUiD,GAAU;AAChD,QAAI,OAAOA,KAAa,UAAU;AAChC,UAAIE,IAAM,IAAInD,EAAG;AACjB,MAAAmD,EAAI,MAAMF,GAAU,IAAO,EAAI,GAC/BA,IAAWE;AAAA,IACf;AAIE,aAFIr7B,IAAS,IAAIk4B,EAAG,GAChBoD,IAAQ,OAAO,KAAK,IAAI,GACnBC,IAAK,GAAGA,IAAKD,EAAM,QAAQC,KAAM;AACxC,UAAIC,IAAOF,EAAMC,CAAE;AACnB,MAAAv7B,EAAOw7B,CAAI,IAAI,KAAKA,CAAI;AAAA,IAC5B;AASE,QAHAx7B,EAAO,OAAOm7B,EAAS,MAGnBA,EAAS,SAAS;AACpB,aAAAn7B,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAIT,QAAIm7B,EAAS,WAAW,CAACA,EAAS,UAAU;AAG1C,eADIM,IAAQ,OAAO,KAAKN,CAAQ,GACvBO,IAAK,GAAGA,IAAKD,EAAM,QAAQC,KAAM;AACxC,YAAIC,IAAOF,EAAMC,CAAE;AACnB,QAAIC,MAAS,eAAc37B,EAAO27B,CAAI,IAAIR,EAASQ,CAAI;AAAA,MAC7D;AAGI,aAAI3C,EAAgBh5B,EAAO,QAAQ,KAAKA,EAAO,YAAY,CAACA,EAAO,aACjEA,EAAO,WAAW,KAClBA,EAAO,OAAOA,EAAO,WAGvBA,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAAA,IACX;AAEE,QAAIm7B,EAAS,YAAYA,EAAS,aAAan7B,EAAO,UAAU;AAW9D,UAAI,CAACg5B,EAAgBmC,EAAS,QAAQ,GAAG;AAEvC,iBADInN,IAAO,OAAO,KAAKmN,CAAQ,GACtB9iB,IAAI,GAAGA,IAAI2V,EAAK,QAAQ3V,KAAK;AACpC,cAAI0G,KAAIiP,EAAK3V,CAAC;AACd,UAAArY,EAAO+e,EAAC,IAAIoc,EAASpc,EAAC;AAAA,QAC9B;AACM,eAAA/e,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAAA,MACb;AAGI,UADAA,EAAO,WAAWm7B,EAAS,UACvB,CAACA,EAAS,QAAQ,CAACpC,EAAiBoC,EAAS,QAAQ,GAAG;AAE1D,iBADIS,KAAWT,EAAS,YAAY,IAAI,MAAM,GAAG,GAC1CS,EAAQ,UAAU,EAAET,EAAS,OAAOS,EAAQ,MAAK;AAAK;AAC7D,QAAKT,EAAS,SAAQA,EAAS,OAAO,KACjCA,EAAS,aAAYA,EAAS,WAAW,KAC1CS,EAAQ,CAAC,MAAM,MAAMA,EAAQ,QAAQ,EAAE,GACvCA,EAAQ,SAAS,KAAKA,EAAQ,QAAQ,EAAE,GAC5C57B,EAAO,WAAW47B,EAAQ,KAAK,GAAG;AAAA,MACxC;AACM,QAAA57B,EAAO,WAAWm7B,EAAS;AAS7B,UAPAn7B,EAAO,SAASm7B,EAAS,QACzBn7B,EAAO,QAAQm7B,EAAS,OACxBn7B,EAAO,OAAOm7B,EAAS,QAAQ,IAC/Bn7B,EAAO,OAAOm7B,EAAS,MACvBn7B,EAAO,WAAWm7B,EAAS,YAAYA,EAAS,MAChDn7B,EAAO,OAAOm7B,EAAS,MAEnBn7B,EAAO,YAAYA,EAAO,QAAQ;AACpC,YAAIiI,KAAIjI,EAAO,YAAY,IACvBiQ,IAAIjQ,EAAO,UAAU;AACzB,QAAAA,EAAO,OAAOiI,KAAIgI;AAAA,MACxB;AACI,aAAAjQ,EAAO,UAAUA,EAAO,WAAWm7B,EAAS,SAC5Cn7B,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAAA,IACX;AAEE,QAAI67B,KAAc77B,EAAO,YAAYA,EAAO,SAAS,OAAO,CAAC,MAAM,KACjE87B,IAAWX,EAAS,QAAQA,EAAS,YAAYA,EAAS,SAAS,OAAO,CAAC,MAAM,KACjFY,IAAaD,KAAYD,MAAgB77B,EAAO,QAAQm7B,EAAS,UACjEa,IAAgBD,GAChBE,IAAUj8B,EAAO,YAAYA,EAAO,SAAS,MAAM,GAAG,KAAK,CAAA,GAC3D47B,IAAUT,EAAS,YAAYA,EAAS,SAAS,MAAM,GAAG,KAAK,CAAA,GAC/De,IAAYl8B,EAAO,YAAY,CAACg5B,EAAgBh5B,EAAO,QAAQ;AA2BjE,QAlBIk8B,MACFl8B,EAAO,WAAW,IAClBA,EAAO,OAAO,MACVA,EAAO,SACLi8B,EAAQ,CAAC,MAAM,KAAMA,EAAQ,CAAC,IAAIj8B,EAAO,OAAei8B,EAAQ,QAAQj8B,EAAO,IAAI,IAEzFA,EAAO,OAAO,IACVm7B,EAAS,aACXA,EAAS,WAAW,MACpBA,EAAS,OAAO,MACZA,EAAS,SACPS,EAAQ,CAAC,MAAM,KAAMA,EAAQ,CAAC,IAAIT,EAAS,OAAeS,EAAQ,QAAQT,EAAS,IAAI,IAE7FA,EAAS,OAAO,OAElBY,IAAaA,MAAeH,EAAQ,CAAC,MAAM,MAAMK,EAAQ,CAAC,MAAM,MAG9DH;AAEF,MAAA97B,EAAO,OAAOm7B,EAAS,QAAQA,EAAS,SAAS,KAAKA,EAAS,OAAOn7B,EAAO,MAC7EA,EAAO,WAAWm7B,EAAS,YAAYA,EAAS,aAAa,KAAKA,EAAS,WAAWn7B,EAAO,UAC7FA,EAAO,SAASm7B,EAAS,QACzBn7B,EAAO,QAAQm7B,EAAS,OACxBc,IAAUL;AAAA,aAEDA,EAAQ;AAKjB,MAAKK,MAAWA,IAAU,CAAA,IAC1BA,EAAQ,IAAG,GACXA,IAAUA,EAAQ,OAAOL,CAAO,GAChC57B,EAAO,SAASm7B,EAAS,QACzBn7B,EAAO,QAAQm7B,EAAS;AAAA,aACfA,EAAS,UAAU,MAAM;AAMlC,UAAIe,GAAW;AACb,QAAAl8B,EAAO,OAAOi8B,EAAQ,MAAK,GAC3Bj8B,EAAO,WAAWA,EAAO;AAMzB,YAAIm8B,IAAan8B,EAAO,QAAQA,EAAO,KAAK,QAAQ,GAAG,IAAI,IAAIA,EAAO,KAAK,MAAM,GAAG,IAAI;AACxF,QAAIm8B,MACFn8B,EAAO,OAAOm8B,EAAW,MAAK,GAC9Bn8B,EAAO,WAAWm8B,EAAW,MAAK,GAClCn8B,EAAO,OAAOA,EAAO;AAAA,MAE7B;AACI,aAAAA,EAAO,SAASm7B,EAAS,QACzBn7B,EAAO,QAAQm7B,EAAS,QAEpBn7B,EAAO,aAAa,QAAQA,EAAO,WAAW,UAChDA,EAAO,QAAQA,EAAO,WAAWA,EAAO,WAAW,OAAOA,EAAO,SAASA,EAAO,SAAS,MAE5FA,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAAA,IACX;AAEE,QAAI,CAACi8B,EAAQ;AAKX,aAAAj8B,EAAO,WAAW,MAEdA,EAAO,SACTA,EAAO,OAAO,MAAMA,EAAO,SAE3BA,EAAO,OAAO,MAEhBA,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAgBT,aARIqoB,IAAO4T,EAAQ,MAAM,EAAE,EAAE,CAAC,GAC1BG,MAAoBp8B,EAAO,QAAQm7B,EAAS,QAAQc,EAAQ,SAAS,OAAO5T,MAAS,OAAOA,MAAS,SAASA,MAAS,IAMvHgU,IAAK,GACAjwB,IAAI6vB,EAAQ,QAAQ7vB,KAAK,GAAGA;AACnC,MAAAic,IAAO4T,EAAQ7vB,CAAC,GACZic,MAAS,MACX4T,EAAQ,OAAO7vB,GAAG,CAAC,IACVic,MAAS,QAClB4T,EAAQ,OAAO7vB,GAAG,CAAC,GACnBiwB,OACSA,MACTJ,EAAQ,OAAO7vB,GAAG,CAAC,GACnBiwB;AAKJ,QAAI,CAACN,KAAc,CAACC;AAClB,aAAOK,KAAMA;AACX,QAAAJ,EAAQ,QAAQ,IAAI;AAIxB,IAAIF,KAAcE,EAAQ,CAAC,MAAM,OAAO,CAACA,EAAQ,CAAC,KAAKA,EAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,QAC9EA,EAAQ,QAAQ,EAAE,GAGhBG,MAAqBH,EAAQ,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,OACxDA,EAAQ,KAAK,EAAE;AAGjB,QAAIK,IAAaL,EAAQ,CAAC,MAAM,MAAOA,EAAQ,CAAC,KAAKA,EAAQ,CAAC,EAAE,OAAO,CAAC,MAAM;AAG9E,QAAIC,GAAW;AACb,MAAAl8B,EAAO,WAAWs8B,IAAa,KAAKL,EAAQ,SAASA,EAAQ,MAAK,IAAK,IACvEj8B,EAAO,OAAOA,EAAO;AAMrB,UAAIm8B,IAAan8B,EAAO,QAAQA,EAAO,KAAK,QAAQ,GAAG,IAAI,IAAIA,EAAO,KAAK,MAAM,GAAG,IAAI;AACxF,MAAIm8B,MACFn8B,EAAO,OAAOm8B,EAAW,MAAK,GAC9Bn8B,EAAO,WAAWm8B,EAAW,MAAK,GAClCn8B,EAAO,OAAOA,EAAO;AAAA,IAE3B;AAEE,WAAA+7B,IAAaA,KAAe/7B,EAAO,QAAQi8B,EAAQ,QAE/CF,KAAc,CAACO,KACjBL,EAAQ,QAAQ,EAAE,GAGhBA,EAAQ,SAAS,IACnBj8B,EAAO,WAAWi8B,EAAQ,KAAK,GAAG,KAElCj8B,EAAO,WAAW,MAClBA,EAAO,OAAO,QAIZA,EAAO,aAAa,QAAQA,EAAO,WAAW,UAChDA,EAAO,QAAQA,EAAO,WAAWA,EAAO,WAAW,OAAOA,EAAO,SAASA,EAAO,SAAS,MAE5FA,EAAO,OAAOm7B,EAAS,QAAQn7B,EAAO,MACtCA,EAAO,UAAUA,EAAO,WAAWm7B,EAAS,SAC5Cn7B,EAAO,OAAOA,EAAO,OAAM,GACpBA;AAAA,EACT,GAEAk4B,EAAI,UAAU,YAAY,WAAY;AACpC,QAAI8C,IAAO,KAAK,MACZuB,IAAOnE,EAAY,KAAK4C,CAAI;AAChC,IAAIuB,MACFA,IAAOA,EAAK,CAAC,GACTA,MAAS,QACX,KAAK,OAAOA,EAAK,OAAO,CAAC,IAE3BvB,IAAOA,EAAK,OAAO,GAAGA,EAAK,SAASuB,EAAK,MAAM,IAE7CvB,MAAQ,KAAK,WAAWA;AAAA,EAC9B,GAEAr9B,GAAA,QAAgBu7B,GAChBv7B,GAAA,UAAkBu9B,GAClBv9B,GAAA,gBAAwBy9B,GACxBz9B,GAAA,SAAiBk9B,GAEjBl9B,GAAA,MAAcu6B;;0CChvBVsE,KAAa,CAAC39B,MAAU,OAAOA,KAAU,YAAY,SAASA,KAAS,OAAOA,EAAM,OAAQ,YAAY,aAAaA,EAAM,OAAO,MAAM,QAAQA,EAAM,IAAI,OAAO,GACjK49B,KAAc,MAAM;AAAA,EACtB,YAAY98B,GAAO+L,IAAO,IAAI;AAC5B,SAAK,aAAa,IAClB,KAAK,UAAU,CAAA,GACf,KAAK,WAAW,CAAA,GAChB,KAAK,UAAU,CAAA,GACf,KAAK,UAAU;AAAA,MACb,qBAAqB;AAAA,MACrB,GAAGA;AAAA,IACT,GACI,KAAK,WAAW,CAAA,GACZ8wB,GAAW78B,CAAK,IAClB,KAAK,UAAUA,EAAM,IAAI,UAEzB,KAAK,UAAU;AAAA,MACb;AAAA,QACE,SAASA;AAAA,MACnB;AAAA,IACA;AAAA,EAEE;AAAA,EACA,OAAO;AACL,gBAAK,aAAa,IAClB,KAAK,WAAW,KAAK,QAAQ,IAAI,CAAC,EAAE,SAAAoU,QAAc;AAChD,YAAMe,IAAM;AAAA,QACV,UAAU;AAAA,QACV,aAAa;AAAA,QACb,SAAS,CAAA;AAAA,QACT,SAAS,CAAA;AAAA,QACT,aAAa;AAAA,QACb,aAAa,CAAA;AAAA,QACb,UAAU;AAAA,UACR,UAAUf,EAAQ,UAAU,YAAY;AAAA,QAClD;AAAA,QACQ,GAAGA;AAAA,MACX;AACM,aAAIe,EAAI,YAAY,CAACA,EAAI,SAAS,aAChCA,EAAI,SAAS,WAAW,6BAEnB,KAAK,QAAQA,GAAK,KAAK,OAAO;AAAA,IACvC,CAAC,GACM;AAAA,EACT;AAAA,EACA,QAAQ4nB,GAAY39B,GAAS;AAC3B,UAAMgV,IAAU;AAAA,MACd,GAAG2oB;AAAA,MACH,SAAS;AAAA,MACT,QAAQ,CAAA;AAAA,MACR,UAAU,CAAA;AAAA,MACV,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,IAClB;AAII,QAHI3oB,EAAQ,eAAeA,EAAQ,YAAY,WAC7CA,EAAQ,WAAWA,EAAQ,YAAY,OAAOhK,IAAS,EAAE,IAEvDgK,EAAQ,WAAWA,EAAQ,QAAQ,QAAQ;AAC7C,YAAM4oB,IAAoB;AAC1B,MAAA5oB,EAAQ,aAAaA,EAAQ,QAAQ,OAAO,CAAC/J,GAAa,EAAE,MAAAjH,GAAM,OAAAlE,QAAY;AAC5E,cAAMgP,IAAa8uB,EAAkB,KAAK5oB,EAAQ,WAAW,IAAIhR,EAAK,kBAAiB,IAAKA;AAC5F,eAAO;AAAA,UACL,GAAGiH;AAAA,UACH,CAAC6D,CAAU,GAAGhP;AAAA,QACxB;AAAA,MACM,GAAG,CAAA,CAAE;AAAA,IACP;AACA,IAAIkV,EAAQ,WAAWA,EAAQ,QAAQ,WACrCA,EAAQ,aAAaA,EAAQ,QAAQ;AAAA,MACnC,CAAC/J,GAAa,EAAE,MAAAjH,GAAM,OAAAlE,SAAa;AAAA,QACjC,GAAGmL;AAAA,QACH,CAACjH,CAAI,GAAGlE;AAAA,MAClB;AAAA,MACQ,CAAA;AAAA,IACR;AAEI,UAAMgR,IAAUkE,EAAQ,SAAS,IAAI,CAAC,EAAE,MAAAhR,GAAM,OAAAlE,QACxCE,EAAQ,sBACH,GAAGgE,CAAI,IAAIlE,CAAK,KAElB,GAAG,mBAAmBkE,CAAI,CAAC,IAAI,mBAAmBlE,CAAK,CAAC,EAChE;AAID,YAHIgR,GAAS,WACXkE,EAAQ,WAAW,SAASlE,EAAQ,KAAK,IAAI,IAEvCkE,EAAQ,SAAS,UAAQ;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAGH,YAFAA,EAAQ,SAAS,OAAO,IACxBA,EAAQ,SAAS,WAAW,uBACxBA,EAAQ,UAAU,QAAQ;AAC5B,gBAAM6oB,IAAW,+BACXC,IAAW,GAAGD,CAAQ,MACtBE,IAAK;AAAA,GACL5iB,IAAS,CAAC4B,MAAQA,EAAI,QAAQ,OAAO,KAAK,EAAE,QAAQ,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAK,GACrFihB,IAAqB,CAACl+B,MAAUA,EAAM,QAAQ,aAAa;AAAA,CAAM,GACjEqU,IAAU,CAAC,KAAK0pB,CAAQ,EAAE;AAChC,UAAA7oB,EAAQ,UAAU,OAAO,QAAQ,CAAC7E,GAAO9C,MAAM;AAC7C,kBAAMrJ,IAAOmM,EAAM,MACbrQ,IAAQqQ,EAAM,SAAS,IACvB8tB,IAAW9tB,EAAM,YAAY,MAC7Ba,IAAcb,EAAM,eAAe;AACzC,YAAI8tB,KACF9pB,EAAQ;AAAA,cACN,yCAAyCgH,EAAO6iB,EAAmBh6B,CAAI,CAAC,CAAC,gBAAgBi6B,CAAQ;AAAA,YACjH,GACc9pB,EAAQ,KAAK,iBAAiBnD,CAAW,EAAE,KAE3CmD,EAAQ,KAAK,yCAAyCgH,EAAO6iB,EAAmBh6B,CAAI,CAAC,CAAC,GAAG,GAE3FmQ,EAAQ,KAAK,EAAE,GACfA,EAAQ,KAAK6pB,EAAmBl+B,CAAK,CAAC,GAClCuN,MAAM2H,EAAQ,SAAS,OAAO,SAAS,KACzCb,EAAQ,KAAK,KAAK0pB,CAAQ,EAAE;AAAA,UAEhC,CAAC,GACD1pB,EAAQ,KAAK,KAAK2pB,CAAQ,EAAE,GAC5B9oB,EAAQ,SAAS,WAAW6oB,GAC5B7oB,EAAQ,SAAS,OAAOb,EAAQ,KAAK4pB,CAAE;AACvC,gBAAMrqB,IAAoB9E,GAAcoG,EAAQ,YAAY,cAAc,KAAK;AAC/E,UAAAA,EAAQ,WAAWtB,CAAiB,IAAI,iCAAiCmqB,CAAQ;AAAA,QACnF;AACA;AAAA,MACF,KAAK;AACH,QAAK7oB,EAAQ,SAAS,UAGpBA,EAAQ,SAAS,YAAYA,EAAQ,SAAS,OAAO,OAAOhK,IAAS,EAAE,GACvEgK,EAAQ,SAAS,OAAOlI,GAAAA,UAAUkI,EAAQ,SAAS,SAAS,KAH5DA,EAAQ,SAAS,OAAO;AAK1B;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAEH,YADAA,EAAQ,SAAS,WAAW,oBACxBA,EAAQ,SAAS;AACnB,cAAI;AACF,YAAAA,EAAQ,SAAS,UAAU,KAAK,MAAMA,EAAQ,SAAS,IAAI;AAAA,UAC7D,QAAY;AACV,YAAAA,EAAQ,SAAS,WAAW;AAAA,UAC9B;AAEF;AAAA,IACR;AACI,UAAMzG,IAAa;AAAA,MACjB,GAAGyG,EAAQ;AAAA,MACX,GAAGA,EAAQ;AAAA,IACjB,GACUkpB,IAAqBlF,GAAAA,MAAMhkB,EAAQ,KAAK,IAAM,EAAI;AACxD,IAAAA,EAAQ,WAAW;AAAA,MACjB,GAAGA,EAAQ;AAAA,MACX,GAAGkpB,EAAmB;AAAA,IAC5B;AACI,QAAIhC;AACJ,IAAIl8B,EAAQ,sBACVk8B,IAASpvB,GAAAA,UAAUkI,EAAQ,UAAU;AAAA,MACnC,QAAQ;AAAA,MACR,SAAS;AAAA,IACjB,CAAO,IAEDknB,IAASpvB,GAAAA,UAAUkI,EAAQ,UAAU;AAAA,MACnC,SAAS;AAAA,IACjB,CAAO;AAEH,UAAM5D,IAAS;AAAA,MACb,GAAG8sB;AAAA,MACH,OAAOlpB,EAAQ;AAAA,MACf,QAAAknB;AAAA,MACA,MAAMA,IAAS,GAAGgC,EAAmB,QAAQ,IAAIhC,CAAM,KAAKgC,EAAmB;AAAA,IACrF,GACUt/B,IAAM41B,GAAAA,OAAO;AAAA,MACjB,GAAG0J;AAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,IACd,CAAK,GACK7vB,IAAUmmB,GAAAA,OAAO;AAAA,MACrB,GAAG0J;AAAA,MACH,GAAG9sB;AAAA,IACT,CAAK;AACD,WAAO;AAAA,MACL,GAAG4D;AAAA,MACH,YAAAzG;AAAA,MACA,SAAAF;AAAA,MACA,KAAAzP;AAAA,MACA,QAAAwS;AAAA,IACN;AAAA,EACE;AAAA,EACA,QAAQ+sB,GAAUC,GAAUp+B,GAAS;AACnC,IAAK,KAAK,cACR,KAAK,KAAI,GAEP,CAACA,KAAWo+B,MACdp+B,IAAUo+B;AAEZ,UAAMna,IAAS3G,GAAQ6gB,CAAQ;AAC/B,QAAI,CAACla;AACH,aAAO;AAET,UAAM,EAAE,SAAAoa,EAAO,IAAKpa,EAAO,YAAYma,KAAYna,EAAO,KAAK,OAAO;AAEtE,WADgB,KAAK,SAAS,IAAI,CAACjP,MAAYqpB,EAAQrpB,GAAShV,CAAO,CAAC;AAAA,EAE1E;AACF;ACjOO,MAAMs+B,KAAoB,CAAC;AAAA,EAChC,WAAAv1B;AAAA,EACA,gBAAA1H;AAAA,EACA,aAAAk9B;AACF,MAQS,IAAIb,GAAY;AAAA,EACrB,QAAQ30B,EAAU,OAAO,YAAA;AAAA,EACzB,KACE1H,IAAiB0H,EAAU,KAAK,WAAW,KAAK,GAAG,EAAE,WAAW,KAAK,EAAE;AAAA,EACzE,UAAUw1B;AAAA,EACV,SAAS;AAAA,IACP,GAAIA,EAAY,OACZ,CAAC,EAAE,MAAM,gBAAgB,OAAOA,EAAY,SAAA,CAAU,IACtD,CAAA;AAAA,IACJ,GAAIx1B,EAAU,YACV,OAAO,CAACG,MAAMA,EAAE,OAAO,YAAYA,EAAE,aAAa,EAAI,EACvD,IAAI,CAACA,OAAO;AAAA,MACX,MAAMA,EAAE;AAAA,MACR,OACEA,EAAE,QAAQ,WACVA,EAAE,UAAU,KAAK,CAACC,MAAMA,EAAE,KAAK,GAAG,UACjCD,EAAE,QAAQ,SAAS,WAChB,aACAA,EAAE,QAAQ,SAAS,YAAYA,EAAE,QAAQ,SAAS,YAChD,aACAA,EAAE,QAAQ,SAAS,YACjB,WACA;AAAA,IAAA,EACV,KAAK,CAAA;AAAA,EAAC;AAAA,EAEZ,aACEH,EAAU,YACN,OAAO,CAACG,MAAMA,EAAE,OAAO,WAAWA,EAAE,aAAa,EAAI,EACtD,IAAI,CAACA,OAAO;AAAA,IACX,MAAMA,EAAE;AAAA,IACR,OACEA,EAAE,QAAQ,WACVA,EAAE,UAAU,KAAK,CAACC,MAAMA,EAAE,KAAK,GAAG,UACjCD,EAAE,QAAQ,SAAS,WAChB,aACAA,EAAE,QAAQ,SAAS,YAAYA,EAAE,QAAQ,SAAS,YAChD,aACAA,EAAE,QAAQ,SAAS,YACjB,WACA;AAAA,EAAA,EACV,KAAK,CAAA;AAAA,EACX,aAAa;AAAA,EACb,SAAS,CAAA;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA,CACX,GAGUs1B,KAAe,CAACC,GAAsBv+B,MAAmB;AAEpE,MAAIw+B;AACJ,UAAQx+B,GAAA;AAAA,IACN,KAAK;AACH,MAAAw+B,IAAYD,EAAQ,QAAQ,SAAS,MAAM;AAC3C;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,cAAc,OAAO;AACjD;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,UAAU,UAAU;AAChD;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,QAAQ,QAAQ;AAC5C;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,MAAM,QAAQ;AAC1C;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,UAAU,YAAY;AAClD;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,UAAU,QAAQ;AAC9C;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,QAAQ,cAAc;AAClD;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,OAAO,OAAO;AAC1C;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,MAAM;AAClC;AAAA,IACF,KAAK;AACH,MAAAC,IAAYD,EAAQ,QAAQ,OAAO;AACnC;AAAA,IACF;AACE,MAAAC,IAAYD,EAAQ,QAAQ,OAAO;AACnC;AAAA,EAAA;AAGJ,SAAOC,IAAYA,EAAU,CAAC,IAAI;AACpC,GCvGaC,KAAwB,CACnCn/B,GACAwE,MAEQ;AACR,MAAI,CAACxE,KAAUo/B,GAAcp/B,CAAM;AACjC,WAAO;AAIT,MAAIA,EAAO,YAAY;AACrB,WAAOA,EAAO;AAIhB,MACEA,EAAO,YACP,OAAOA,EAAO,YAAa,YAC3B,aAAaA,EAAO,UACpB;AACA,UAAMq/B,IAAiBr/B,EAAO,SAAS;AACvC,QAAIq/B,MAAmB;AACrB,aAAO,OAAOA,KAAmB,YAAY,WAAWA,IACpDA,EAAe,QACfA;AAAA,EAER;AAGA,MAAIr/B,EAAO,UAAU;AACnB,WAAOA,EAAO;AAIhB,MAAIA,EAAO,SAAS,YAAYA,EAAO,YAAY;AAEjD,UAAM4K,IAA+B,CAAA;AAErC,eAAW,CAACsD,GAAKoxB,CAAU,KAAK,OAAO,QAAQt/B,EAAO,UAAU;AAC9D,MAAI,OAAOs/B,KAAe,aACxB10B,EAAQsD,CAAG,IAAIixB,GAAsBG,GAA4BpxB,CAAG;AAIxE,WAAOtD;AAAA,EACT;AAEA,MAAI5K,EAAO,SAAS;AAClB,WAAI,MAAM,QAAQA,EAAO,KAAK,IACrBA,EAAO,MAAM;AAAA,MAAI,CAACu/B,MACvBJ,GAAsBI,CAA0B;AAAA,IAAA,IAGhDv/B,EAAO,QACF,CAACm/B,GAAsBn/B,EAAO,KAAqB,CAAC,IAEtD,CAAA;AAGT,MAAIA,EAAO,WAAW;AAGpB,YAAQA,EAAO,QAAA;AAAA,MACb,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,IAAA;AAIb,MAAIA,EAAO;AACT,WAAOA,EAAO,KAAK,CAAC;AAGtB,MAAIA,EAAO,SAASA,EAAO,MAAM,SAAS;AACxC,WAAOm/B,GAAsBn/B,EAAO,MAAM,CAAC,CAAC;AAG9C,MAAIA,EAAO,SAASA,EAAO,MAAM,SAAS;AAGxC,WAAOm/B,GAAsBn/B,EAAO,MAAM,CAAC,CAAC;AAI9C,MACEA,EAAO,YACP,MAAM,QAAQA,EAAO,QAAQ,KAC7BA,EAAO,SAAS,SAAS;AAEzB,WAAOA,EAAO,SAAS,CAAC;AAG1B,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAOwE,KAAQ;AAAA,IACjB,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,CAAA;AAAA,IACT;AACE,aAAO,CAAA;AAAA,EAAC;AAEd,GCzHag7B,KAAe;AAAA,EAC1B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AACR,GAEaC,KAAgB;AAAA,EAC3B,KAAKD,GAAa;AAAA,EAClB,MAAMA,GAAa;AAAA,EACnB,KAAKA,GAAa;AAAA,EAClB,QAAQA,GAAa;AAAA,EACrB,OAAOA,GAAa;AAAA,EACpB,SAASA,GAAa;AAAA,EACtB,MAAMA,GAAa;AAAA,EACnB,OAAOA,GAAa;AACtB,GAEaE,KAAiB,CAAC9wB,MAE3B6wB,GAAc7wB,EAAO,kBAAA,CAAiD,KACtE4wB,GAAa;ACAa3+B;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnD;AAED,MAAM8+B,KAAoB;AAAA,EACxB,EAAE,OAAO,SAAS,OAAO,OAAA;AAAA,EACzB,EAAE,OAAO,MAAM,OAAO,aAAA;AAAA,EACtB,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,EAC1B,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,EACxB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,EACtB,EAAE,OAAO,UAAU,OAAO,KAAA;AAAA,EAC1B,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,EAC1B,EAAE,OAAO,QAAQ,OAAO,cAAA;AAAA,EACxB,EAAE,OAAO,OAAO,OAAO,MAAA;AAAA,EACvB,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,EACxB,EAAE,OAAO,SAAS,OAAO,QAAA;AAC3B,GAEaC,KAAU,CAAC;AAAA,EACtB,WAAAr2B;AAAA,EACA,kBAAAlG;AAAA,EACA,sBAAAw8B;AAAA,EACA,qBAAAh3B;AACF,MAKM;AACJ,QAAM,EAAE,SAAArI,EAAA,IAAYc,GAAA,GACdo6B,IAAOoE,GAAA,GACPC,IAAUC,GAAA,GAEVC,IAAkBP,GAAen2B,EAAU,MAAM,GAEjD,CAAC22B,GAAcC,CAAe,IAAIC,GAAA,GAClC,CAAA,EAAGz+B,CAAe,IAAIC,GAAA,GAEtBy+B,IAAqB7/B,GAAS,sBAAsBm/B,IAEpDW,IACJJ,EAAa,IAAI,MAAM,KAAK1/B,GAAS,oBAAoB,SAErD+/B,IACJF,EAAmB,KAAK,CAACG,MAASA,EAAK,UAAUF,CAAa,GAAG,SACjED,EAAmB,GAAG,CAAC,GAAG,SAC1B,SAEII,IAAqBl3B,EAAU,aAAa,SAC5Cm3B,IACJD,KAAsBjgC,GAAS,oBAC3BA,EAAQ,kBAAkB;AAAA,IACxB,MAAAk7B;AAAA,IACA,MAAM;AAAA,IACN,WAAAnyB;AAAA,IACA,SAASk3B;AAAA,IACT,SAAAV;AAAA,EAAA,CACD,IACDU,GAEA,CAACE,GAAwBC,CAAyB,IAAI3/B,GAGzD;AAAA,IACD,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAAA,CACf,GAEKsJ,IAAkBm2B,GAA+B;AAAA,IACrDC,EAAuB;AAAA,EAAA,GAEnBE,IAAiBt2B,GAAiB,UAAU;AAAA,IAChDo2B,EAAuB;AAAA,EAAA,GAGnBG,IAAqBD,IACtBA,GAAgB,SAASA,IAC1Bt2B,GAAiB,SACf40B,GAAsB50B,GAAiB,MAAM,IAC7C,QAEAqF,IACJlR,gBAAAA,EAAAA;AAAAA,IAACqiC;AAAA,IAAA;AAAA,MACC,MAAMx3B,EAAU;AAAA,MAChB,aAAa,CAAC,EAAE,MAAA/E,EAAA,MACd9F,gBAAAA,EAAAA;AAAAA,QAACyH;AAAA,QAAA;AAAA,UACC,MAAA3B;AAAA,UACA,mBAAkB;AAAA,UAClB,WAAU;AAAA,UAEV,MAAM,GAAG+E,EAAU,IAAI,IAAI/E,CAAI;AAAA,UAE9B,cAAIA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IACX;AAAA,EAAA,GAOA3C,IACJg+B,KAAwBt2B,EAAU,QAAQ,GAAG,CAAC,GAAG,OAAO,IAEpDy3B,IAAkBC,GAA4B,MAAM;AACxD,UAAM/B,IAAY1+B,GAAS,sBAAsB;AAAA,MAC/C,cAAA+/B;AAAA,MACA,gBAAA1+B;AAAA,MACA,SAAAk+B;AAAA,MACA,WAAAx2B;AAAA,MACA,SAASu3B;AAAA,MACT,MAAApF;AAAA,IAAA,CACD;AAED,QAAIwD,EAAW,QAAOA;AAEtB,UAAMD,IAAUH,GAAkB;AAAA,MAChC,WAAAv1B;AAAA,MACA,gBAAA1H;AAAA,MACA,aAAai/B,IACT;AAAA,QACE,UAAU;AAAA,QACV,MAAM,KAAK,UAAUA,GAAoB,MAAM,CAAC;AAAA,MAAA,IAElD,EAAE,UAAU,mBAAA;AAAA,IAAmB,CACpC;AAED,WAAO9B,GAAaC,GAASsB,CAAY;AAAA,EAC3C,GAAG;AAAA,IACDO;AAAA,IACAv3B;AAAA,IACA1H;AAAA,IACA0+B;AAAA,IACA//B;AAAA,IACAk7B;AAAA,IACAqE;AAAA,EAAA,CACD,GAEK,CAACl4B,GAAKe,CAAU,IAAIrB,GAAY,EAAE,YAAY,uBAAuB,GAErE25B,IACJt4B,MACCW,EAAU,WAAW,oBAAoB,MAAM,MAC9CA,EAAU,WAAW,6BAA6B,MAAM,MACvDA,EAAU,WAAW,oBAAoB,MAAM,UAC9CA,EAAU,WAAW,6BAA6B,MAAM,UACxD,CAAC/I,GAAS,oBAEV2gC,IAAsB53B,EAAU,UAAU;AAAA,IAAK,CAACrK,MACpDA,EAAS,SAAS,KAAK,CAACgF,OAAaA,EAAQ,UAAU,UAAU,KAAK,CAAC;AAAA,EAAA;AAGzE,SACEtE,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAiI;AAAA,MACA,WAAU;AAAA,MACV,wBAAqB;AAAA,MAErB,UAAA;AAAA,QAAAjI,gBAAAA,OAACkJ,IAAA,EACC,UAAA;AAAA,UAAApK,gBAAAA,EAAAA,IAACqK,IAAA,EAAgB,WAAU,UACzB,UAAAnJ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,4DACb,UAAA;AAAA,YAAAA,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,iDACd,UAAA;AAAA,cAAAlB,gBAAAA,EAAAA;AAAAA,gBAAC2D;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,WAAW1D;AAAAA,oBACTshC;AAAA,oBACA;AAAA,kBAAA;AAAA,kBAGD,UAAA12B,EAAU,OAAO,YAAA;AAAA,gBAAY;AAAA,cAAA;AAAA,cAE/BqG;AAAA,YAAA,GACH;AAAA,YACAhQ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,cAAAlB,gBAAAA,EAAAA;AAAAA,gBAACsE;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAOu9B;AAAA,kBACP,UAAU,CAACthC,MAAM;AACf,oBAAA0C,EAAgB,MAAM;AACpB,sBAAAw+B,EAAgB,CAACnN,OACfA,EAAK,IAAI,QAAQ/zB,EAAE,OAAO,KAAK,GACxB+zB,EACR;AAAA,oBACH,CAAC;AAAA,kBACH;AAAA,kBAEC,UAAAqN,EAAmB,IAAI,CAAC31B,MACvBhM,gBAAAA,EAAAA;AAAAA,oBAACuE;AAAA,oBAAA;AAAA,sBAEC,OAAOyH,EAAS;AAAA,sBAEf,UAAAA,EAAS;AAAA,oBAAA;AAAA,oBAHLA,EAAS;AAAA,kBAAA,CAKjB;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEFw2B,KACCxiC,gBAAAA,EAAAA;AAAAA,gBAAC4K;AAAA,gBAAA;AAAA,kBACC,SAASC,EAAU,QAAQ,IAAI,CAACrH,MAAWA,EAAO,GAAG;AAAA,kBACrD,WAAAqH;AAAA,kBACA,UAAUk3B,KAAsB;AAAA,gBAAA;AAAA,cAAA;AAAA,YAClC,EAAA,CAEJ;AAAA,UAAA,EAAA,CACF,EAAA,CACF;AAAA,UACA/hC,gBAAAA,EAAAA,IAAC2K,IAAA,EACE,UAAAR,KAAuB,CAACD,IACvBlK,gBAAAA,MAAC0J,IAAA,EAAmB,MAAM44B,KAAmB,GAAA,CAAI,IAEjDtiC,gBAAAA,EAAAA;AAAAA,YAACyG;AAAAA,YAAA;AAAA,cACC,UAAQ;AAAA,cACR,UAAUo7B;AAAA,cACV,WAAU;AAAA,cAEV,MAAMS;AAAA,YAAA;AAAA,UAAA,EACR,CAEJ;AAAA,QAAA,GACF;AAAA,QAECN,KAAiCG,IAChCniC,gBAAAA,EAAAA;AAAAA,UAACmM;AAAA,UAAA;AAAA,YACC,SAAS61B;AAAA,YACT,iBAAiB,CAACn1B,MAAa;AAC7B,cAAAq1B,EAA0Br1B,CAAQ;AAAA,YACpC;AAAA,YACA,sBAAsBo1B,EAAuB;AAAA,YAC7C,sBAAsBA,EAAuB;AAAA,YAC7C,YAAA/3B;AAAA,YACA,qBAAAC;AAAA,UAAA;AAAA,QAAA,IAEA63B,KAAiCI,IACnCpiC,gBAAAA,EAAAA;AAAAA,UAACiK;AAAA,UAAA;AAAA,YACC,YAAAC;AAAA,YACA,qBAAAC;AAAA,YACA,MAAM,KAAK,UAAUi4B,GAAoB,MAAM,CAAC;AAAA,UAAA;AAAA,QAAA,IAEhD;AAAA,QAEHK,IACCziC,gBAAAA,EAAAA;AAAAA,UAACuM;AAAA,UAAA;AAAA,YACC,YAAArC;AAAA,YACA,qBAAAC;AAAA,YACA,kBAAAxF;AAAA,YACA,WAAWkG,EAAU,UAAU,IAAI,CAACrK,OAAc;AAAA,cAChD,GAAGA;AAAA,cACH,SACEA,EAAS,WAAWsB,GAAS,oBACzBA,EAAQ,kBAAkB;AAAA,gBACxB,MAAAk7B;AAAA,gBACA,MAAM;AAAA,gBACN,SAAAqE;AAAA,gBACA,WAAAx2B;AAAA,gBACA,SAASrK,EAAS;AAAA,cAAA,CACnB,IACDA,EAAS;AAAA,YAAA,EACf;AAAA,UAAA;AAAA,QAAA,IAGJR,gBAAAA,EAAAA;AAAAA,UAACuM;AAAA,UAAA;AAAA,YACC,aAAW;AAAA,YACX,YAAArC;AAAA,YACA,qBAAAC;AAAA,YACA,kBAAAxF;AAAA,YACA,WAAWkG,EAAU,UAAU,IAAI,CAACrK,OAAc;AAAA,cAChD,GAAGA;AAAA,cACH,SAASA,EAAS,SAAS,IAAI,CAACgF,OAAa;AAAA,gBAC3C,GAAGA;AAAA,gBACH,UAAUA,EAAQ,SACd,CAAC,EAAE,MAAM,IAAI,OAAOi7B,GAAsBj7B,EAAQ,MAAM,EAAA,CAAG,IAC3DA,EAAQ;AAAA,cAAA,EACZ;AAAA,YAAA,EACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAAA;AAIR,GC/RMk9B,KAAe,CAAC,QAAQ,SAAS,UAAU,QAAQ,GAG5CC,KAAoB,CAAC;AAAA,EAChC,mBAAAC;AAAA,EACA,sBAAAzB;AAAA,EACA,qBAAAh3B;AACF,MAIM;AACJ,QAAMU,IAAYtL,GAAYsjC,IAAoBD,CAAiB,GAC7DE,IAAoBC;AAAA,IACxBl4B,EAAU,cAAc,CAAA;AAAA,IACxB,CAACoH,MAAUA,EAAM;AAAA,EAAA,GAEb,EAAE,SAAAnQ,EAAA,IAAYc,GAAA,GAIdogC,IAAmB7B,KAAwBt2B,EAAU,QAAQ,GAAG,CAAC,GAAG,KAEpEsgB,IAAQtgB,EAAU,UAAU,GAAG,CAAC,GAChC,CAAClG,GAAkBs+B,CAAmB,IAAI1gC,GAAS4oB,GAAO,UAAU,GACpE+X,IAAgBr4B,EAAU,aAAa,cAAc,MAAM;AAEjE,gCACG,OAAA,EACE,UAAA;AAAA,IAAAA,EAAU,cACT7K,gBAAAA,MAAC2D,IAAA,EAAM,SAAQ,SAAQ,WAAU,gBAAe,UAAA,aAAA,CAEhD;AAAA,IAEFzC,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWjB;AAAAA,UACT;AAAA,UACA4K,EAAU,cAAc;AAAA,QAAA;AAAA,QAG1B,UAAA;AAAA,UAAA7K,gBAAAA,EAAAA;AAAAA,YAACsI;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,cACP,IAAIuC,EAAU;AAAA,cACd,0BAAwB;AAAA,cACxB,WAAU;AAAA,cAET,UAAAA,EAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAEZ,CAACq4B,KACAhiC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,8CACb,UAAA;AAAA,YAAAlB,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAWghC,GAAen2B,EAAU,MAAM,GAC7C,UAAAA,EAAU,OAAO,YAAA,EAAY,CAChC;AAAA,YACA3J,gBAAAA,EAAAA,KAACiiC,IAAA,EAAc,WAAU,2CACtB,UAAA;AAAA,cAAAH,KACChjC,gBAAAA,EAAAA,IAAC,SAAI,WAAU,mDACZ,YAAiB,QAAQ,OAAO,EAAE,EAAA,CACrC;AAAA,cAEFA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,0CACZ,YAAU,KAAA,CACb;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGDkjC,IACCljC,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,iBACb,UAAAA,gBAAAA,EAAAA;AAAAA,YAACyF;AAAA,YAAA;AAAA,cACC,WAAWu9B;AAAA,cACX,SAASn4B,EAAU,WAAW;AAAA,cAC9B,MAAMA,EAAU,aAAa,cAAc;AAAA,YAAA;AAAA,UAAA,GAE/C,IAEA3J,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWjB;AAAAA,gBACT;AAAA,gBACA6B,GAAS,kBAAkB;AAAA,cAAA;AAAA,cAG5B,UAAA;AAAA,gBAAA+I,EAAU,eACT7K,gBAAAA,EAAAA;AAAAA,kBAACqF;AAAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,SAASwF,EAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGtBA,EAAU,cACTA,EAAU,WAAW,SAAS,KAC9B63B,GAAa;AAAA,kBAAQ,CAAC57B,MACpBg8B,EAAkBh8B,CAAK,GAAG,SACxB9G,gBAAAA,EAAAA;AAAAA,oBAACiI;AAAA,oBAAA;AAAA,sBAEC,SAAS4C,EAAU,WAAW;AAAA,sBAC9B,IAAIA,EAAU;AAAA,sBACd,YAAYi4B,EAAkBh8B,CAAK;AAAA,sBACnC,OAAAA;AAAA,oBAAA;AAAA,oBAJKA;AAAA,kBAAA,IAOP,CAAA;AAAA,gBAAC;AAAA,gBAGN3C,GAAS0G,EAAU,aAAa,SAAS,GAAG,CAAC,GAAG,QAAQ,MACvD7K,gBAAAA,EAAAA,IAACgE,IAAA,EAAU,WAAU,QAAO,CAC7B;AAAA,gBACAG;AAAA,kBACC0G,EAAU,aAAa,SAAS,GAAG,CAAC,GAAG;AAAA,kBACvC,CAACvJ,MACCJ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,oBAAAA,gBAAAA,EAAAA;AAAAA,sBAACoH;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,wBACP,WAAU;AAAA,wBACV,IAAI,GAAGuC,EAAU,IAAI;AAAA,wBAEpB,UAAA;AAAA,0BAAAA,EAAU,kCACRu4B,IAAA,EACE,UAAA;AAAA,4BAAAv4B,EAAU;AAAA,4BAAQ;AAAA,4BAAU;AAAA,0BAAA,GAC/B;AAAA,0BACA;AAAA,0BACW;AAAA,0BACZA,EAAU,aAAa,aAAa,2BAClClH,IAAA,EAAM,SAAQ,SAAQ,UAAA,WAAA,CAAQ,IAE/B;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGJ3D,gBAAAA,MAACuF,MAAW,QAAAjE,EAAA,CAAgB;AAAA,kBAAA,EAAA,CAC9B;AAAA,gBAAA;AAAA,gBAGJtB,gBAAAA,EAAAA,IAACgE,IAAA,EAAU,WAAU,OAAA,CAAO;AAAA,gBAC3B6G,EAAU,UAAU,SAAS,KAC5B3J,gBAAAA,EAAAA,KAAAmH,EAAAA,UAAA,EACE,UAAA;AAAA,kBAAAnH,gBAAAA,EAAAA,KAACoH,MAAQ,OAAO,GAAG,IAAI,GAAGuC,EAAU,IAAI,cACrC,UAAA;AAAA,oBAAAA,EAAU,kCACRu4B,IAAA,EACE,UAAA;AAAA,sBAAAv4B,EAAU;AAAA,sBAAQ;AAAA,sBAAU;AAAA,oBAAA,GAC/B;AAAA,oBACA;AAAA,kBAAA,GAEJ;AAAA,kBACA7K,gBAAAA,EAAAA;AAAAA,oBAACyE;AAAA,oBAAA;AAAA,sBACC,WAAWoG,EAAU;AAAA,sBACrB,kBAAAlG;AAAA,sBACA,kBAAkBs+B;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACpB,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAKL9+B,GAAS,CAACrC,GAAS,kBAAkB,CAACohC,GAAe,MACpDljC,gBAAAA,EAAAA;AAAAA,YAACkhC;AAAA,YAAA;AAAA,cACC,kBAAAv8B;AAAA,cACA,WAAAkG;AAAA,cACA,sBAAAs2B;AAAA,cACA,qBAAAh3B;AAAA,YAAA;AAAA,UAAA,CAEH;AAAA,QAAA;AAAA,MAAA;AAAA,MA5HIU,EAAU;AAAA,IAAA;AAAA,EA6HjB,GACF;AAEJ;ACvLO,SAASw4B,GACd53B,GACA63B,IAAoB,KACZ;AACR,SAAK73B,IAKHA,EAEG,QAAQ,0BAA0B,IAAI,EAEtC,QAAQ,oBAAoB,EAAE,EAE9B,QAAQ,WAAW,EAAE,EAErB,QAAQ,+BAA+B,EAAE,EAEzC,QAAQ,cAAc,EAAE,EAExB,QAAQ,QAAQ,GAAG,EACnB,OAEA,UAAU,GAAG63B,CAAS,EACtB,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ,IAxBlB;AA0BX;ACEO,MAAMT,KAAqB1gC;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqEvD,GAEKohC,KAAoBphC;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAM/C,GAEKqhC,KAAwBrhC;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCnD,GAEKshC,KAAgC,IAEzBC,KAAgB,CAAC;AAAA,EAC5B,KAAA7Q;AAAA,EACA,UAAA8Q;AACF,MAGM;AACJ,QAAM,EAAE,MAAAzyB,GAAM,OAAAxO,GAAO,MAAAC,GAAM,UAAAihC,GAAU,SAAAC,GAAS,SAAA/hC,EAAA,IAAYc,GAAA,GACpD,EAAE,KAAKkhC,EAAA,IAAkBC,GAAA,GACzBlhC,IAAQC,GAAe0gC,IAAuB;AAAA,IAClD,OAAA9gC;AAAA,IACA,MAAAC;AAAA,IACA,KAAKkwB,KAAOiR;AAAA,IACZ,UAAAH;AAAA,EAAA,CACD,GACK5gC,IAASC,GAAiBH,CAAK,GAC/B;AAAA,IACJ,MAAM,EAAE,QAAAvB,EAAA;AAAA,EAAO,IACbyB,GAEE,EAAE,gBAAgBo+B,EAAA,IAAyB99B;AAAA,IAC/C/B,EAAO;AAAA,EAAA,GAEHyR,IAAQzR,EAAO,OACfqE,IAAUrE,EAAO,SACjBmK,IAAcnK,EAAO,aACrB0iC,IAAWC,GAAA,GAGXC,IAAcphC,GAAeygC,IAAmB,EAAE,OAAA7gC,GAAO,MAAAC,GAAM;AAUrE,MATAwhC,GAAS;AAAA,IACP,GAAGD;AAAA,IACH,SAAS,OAAO,SAAW;AAAA,IAC3B,qBAAqB,CAAA;AAAA,EAAC,CACvB,GAGDE,GAAA,GAEI,CAAC9iC,EAAO;AACV,WACEJ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,gEACb,UAAA;AAAA,MAAAlB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,qCAAoC,UAAA,uBAEnD;AAAA,MACAA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,sCAAqC,UAAA,oDAAA,CAEpD;AAAA,IAAA,GACF;AAIJ,QAAM,EAAE,YAAAqkC,GAAY,MAAAC,GAAM,MAAAhQ,GAAM,aAAaiQ,EAAA,IAAmBjjC,EAAO,KAIjE6I,IAAsBk6B,EAAW,SAASZ,IAK1Ce,IAAkBD,IACpBlB,GAA2BkB,CAAc,IACzC5+B,MAEE8F,IACE43B,GAA2B53B,CAAW,IACtC,SAEFg5B,IAAsB,OAAO,QAAQb,CAAQ,EAAE,SAAS,GAExDc,IACJ5iC,GAAS,sBAAsB,YAC9B2iC,KAAuB3iC,GAAS,sBAAsB,QAEnD6iC,IAAkB;AAAA,IACtB,MAAMrQ,IACF;AAAA,MACE,IAAI,MAAMA,EAAK,IAAI;AAAA,MACnB,OAAOA,EAAK,aAAa,eAAe,KAAKA,EAAK;AAAA,IAAA,IAEpD;AAAA,IACJ,MAAMgQ,IACF;AAAA,MACE,IAAI,MAAMA,EAAK,QAAQM,EAAa;AAAA,MACpC,OACEN,EAAK,aAAa,eAAe,KACjCA,EAAK,QACL;AAAA,IAAA,IAEJ;AAAA,EAAA,GAGAO,IAAWvjC,EAAO,IAAI,aAAa,eAAe,KAAKA,EAAO,IAAI,MAClEwjC,IAAc,CAACD,GAAU9xB,CAAK,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK,GAE1D5S,IACJ,OAAOuC,KAAU,WACbC,MAAS,QACPD,IACAqiC,GAAQ7zB,GAAM2yB,GAASnhC,EAAM,MAAM,GAAG,EAAE,IAAA,CAAK,IAC/C;AAEN,SACExB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,wBAAqB;AAAA,MACrB,sBAAmB;AAAA,MAEnB,UAAA;AAAA,QAAAlB,gBAAAA,EAAAA,IAACojC,IAAA,EAAmB,MAAK,YAAY,UAAArwB,GAAM;AAAA,+BAC1CiyB,IAAA,EACE,UAAA;AAAA,UAAAF,KAAe9kC,gBAAAA,EAAAA,IAAC,WAAO,UAAA8kC,EAAA,CAAY;AAAA,UACnCN,KACCxkC,gBAAAA,EAAAA,IAAC,QAAA,EAAK,MAAK,eAAc,SAASwkC,EAAA,CAAiB;AAAA,QAAA,GAEvD;AAAA,QAEAtjC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,UAAAA,gBAAAA,EAAAA;AAAAA,YAAC8G;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAalG,GAAS;AAAA,cAEtB,UAAA;AAAA,gBAAAZ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,2EACb,UAAA;AAAA,kBAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,8BACb,UAAA;AAAA,oBAAAlB,gBAAAA,EAAAA,IAACilC,MAAiB,UAAAlyB,EAAA,CAAM;AAAA,oBACxB7R,gBAAAA,EAAAA;AAAAA,sBAACoH;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,wBACP,IAAG;AAAA,wBACH,0BAAwB;AAAA,wBACxB,WAAU;AAAA,wBAET,UAAA;AAAA,0BAAAu8B;AAAA,0BACAH,KACCxjC,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,wCACb,UAAA;AAAA,4BAAA;AAAA,4BAAI;AAAA,4BACH2iC;AAAA,4BAAQ;AAAA,0BAAA,EAAA,CACZ;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,0CAGHphC,IAAA,CAAA,CAAS;AAAA,kBAAA,GACZ;AAAA,kBACAvB,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,oBAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,sBAAAwjC,KACCxjC,gBAAAA,EAAAA;AAAAA,wBAACgkC;AAAA,wBAAA;AAAA,0BACC,eAAe,CAACrB;AAAAA;AAAAA,4BAEdG,EAASJ,EAASC,CAAO,EAAG,IAAI;AAAA;AAAA,0BAElC,cAAcA;AAAA,0BACd,UAAU,CAACY;AAAA,0BAEX,UAAA;AAAA,4BAAAzkC,gBAAAA,EAAAA,IAACmlC,IAAA,EAAc,WAAU,aAAY,MAAK,MACxC,UAAAnlC,gBAAAA,EAAAA,IAAColC,IAAA,EAAY,aAAY,iBAAA,CAAiB,EAAA,CAC5C;AAAA,4BACAplC,gBAAAA,MAACqlC,MACE,UAAA,OAAO,QAAQzB,CAAQ,EAAE,IAAI,CAAC,CAACC,GAAS,EAAE,OAAAyB,EAAA,CAAO,MAChDtlC,gBAAAA,EAAAA,IAACulC,IAAA,EAAyB,OAAO1B,GAC9B,UAAAyB,EAAA,GADczB,CAEjB,CACD,EAAA,CACH;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAGH/hC,GAAS,gBAAgB,WAAW3B,KACnCH,gBAAAA,EAAAA,IAACE,MAAqB,aAAAC,EAAA,CAA0B;AAAA,oBAAA,GAEpD;AAAA,oBACCmB,EAAO,eACNJ,gBAAAA,OAACkL,IAAA,EAAmB,WAAU,2EAC5B,UAAA;AAAA,sBAAApM,gBAAAA,EAAAA,IAAC,UAAK,UAAA,kBAAA,CAAe;AAAA,sBAErBA,gBAAAA,EAAAA;AAAAA,wBAACiC;AAAA,wBAAA;AAAA,0BACC,WAAU;AAAA,0BACV,MAAM;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAERjC,gBAAAA,EAAAA;AAAAA,wBAACqM;AAAA,wBAAA;AAAA,0BACC,WAAU;AAAA,0BACV,MAAM;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACR,EAAA,CACF;AAAA,kBAAA,EAAA,CAEJ;AAAA,gBAAA,GACF;AAAA,gBACC/K,EAAO,eACNtB,gBAAAA,EAAAA,IAACsM,IAAA,EAAmB,WAAU,sBAC5B,UAAAtM,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,iDACb,UAAAA,gBAAAA,EAAAA;AAAAA,kBAACqF;AAAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,SAAS/D,EAAO;AAAA,kBAAA;AAAA,gBAAA,GAEpB,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGHijC,KACCvkC,gBAAAA,EAAAA;AAAAA,YAACqF;AAAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,SAASk/B;AAAA,YAAA;AAAA,UAAA;AAAA,QACX,GAEJ;AAAA,8BACC,MAAA,EAAG;AAAA,QAEJrjC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,6CACZ,UAAA;AAAA,UAAAmjC,EAAW,IAAI,CAACmB,MACftkC,gBAAAA,EAAAA,KAAC,OAAA,EACC,UAAA;AAAA,YAAAlB,gBAAAA,EAAAA;AAAAA,cAAC2iC;AAAA,cAAA;AAAA,gBACC,mBAAmB6C;AAAA,gBACnB,sBAAArE;AAAA,gBACA,qBAAAh3B;AAAA,cAAA;AAAA,YAAA;AAAA,YAEFnK,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAU,QAAA,CAAQ;AAAA,UAAA,KANdwlC,EAAS,IAOnB,CACD;AAAA,UACDxlC,gBAAAA,EAAAA,IAACylC,IAAA,EAAW,WAAU,QAAQ,GAAGd,EAAA,CAAiB;AAAA,QAAA,EAAA,CACpD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;","x_google_ignoreList":[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]}