@xenon-device-management/xenon 2.13.2 → 2.15.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 (350) hide show
  1. package/README.md +17 -8
  2. package/lib/package.json +5 -5
  3. package/lib/public/assets/{AnnotationOverlay-BXruClDk.js → AnnotationOverlay-Btq3dZRI.js} +1 -1
  4. package/lib/public/assets/{ApiKeyGate-qTS4LPLC.js → ApiKeyGate-C9OoAgg_.js} +1 -1
  5. package/lib/public/assets/DeviceMosaicView-DBC_xczB.js +2 -0
  6. package/lib/public/assets/{EmptyState-Cr17PdDv.js → EmptyState-DqWU2-vM.js} +1 -1
  7. package/lib/public/assets/{FieldGroup-Bvn08svv.js → FieldGroup-CveQ3xrA.js} +1 -1
  8. package/lib/public/assets/{FilterMenu-DDSO8aDf.js → FilterMenu-BfKDSfHz.js} +1 -1
  9. package/lib/public/assets/{Menu-B-Qn2X3T.js → Menu-CtdCybzA.js} +1 -1
  10. package/lib/public/assets/{Modal-Cg9V5JYU.js → Modal-Bsvj1tm2.js} +1 -1
  11. package/lib/public/assets/{RecordingPage-BTUs9VTW.js → RecordingPage-CRofOiyx.js} +1 -1
  12. package/lib/public/assets/{RecordingsPage-DYcfxITK.js → RecordingsPage-jNQHb2IR.js} +2 -2
  13. package/lib/public/assets/{SegmentedControl-Zy7suhT5.js → SegmentedControl-C8HtTha-.js} +1 -1
  14. package/lib/public/assets/{SettingCard-CWYmycoe.js → SettingCard-D8K1LZNo.js} +1 -1
  15. package/lib/public/assets/{Table-io9fwa98.js → Table-zNTX92Pn.js} +1 -1
  16. package/lib/public/assets/{activity-Bdf_uIWl.js → activity-CJ8LwZq9.js} +1 -1
  17. package/lib/public/assets/ai-settings-CgxQZqrc.js +16 -0
  18. package/lib/public/assets/{api-keys-CPqtVpm3.js → api-keys-ECpo-zTo.js} +1 -1
  19. package/lib/public/assets/{apps-BgZan0H9.js → apps-BjGymyf3.js} +2 -2
  20. package/lib/public/assets/{arrow-left-B27ckB31.js → arrow-left-BWfCbeHP.js} +1 -1
  21. package/lib/public/assets/{arrow-right-DOF8ITCz.js → arrow-right-DC7UGf_n.js} +1 -1
  22. package/lib/public/assets/{arrow-up-right-eFG5KTFS.js → arrow-up-right-BOjwybDk.js} +1 -1
  23. package/lib/public/assets/{auth-shell-DlC3_27j.js → auth-shell-CxMTo9aH.js} +2 -2
  24. package/lib/public/assets/{builds-page-BuXpPfKo.js → builds-page-DOCm4HkA.js} +1 -1
  25. package/lib/public/assets/{button-fIW8owMI.js → button-Cg08-EMT.js} +1 -1
  26. package/lib/public/assets/{calendar-WNjmrF-a.js → calendar-CA1ikLJs.js} +1 -1
  27. package/lib/public/assets/{check-BdTh1Sq7.js → check-BMTaH72W.js} +1 -1
  28. package/lib/public/assets/{chevron-right-B4BKlsqk.js → chevron-right-B2QOv9Nx.js} +1 -1
  29. package/lib/public/assets/{circle-check-zJU80_EF.js → circle-check-CYXBoUqT.js} +1 -1
  30. package/lib/public/assets/{circle-x-5Uwquo0h.js → circle-x-DTwnSAnl.js} +1 -1
  31. package/lib/public/assets/{clock-BtUprDsZ.js → clock-C8_HViQP.js} +1 -1
  32. package/lib/public/assets/{copy-DGSbZI3u.js → copy-Be7LNMXV.js} +1 -1
  33. package/lib/public/assets/derive-UnLRp4r3.js +1 -0
  34. package/lib/public/assets/device-explorer-BOqtfGXz.js +282 -0
  35. package/lib/public/assets/{download-WG6l7BgD.js → download-B56lwxWP.js} +1 -1
  36. package/lib/public/assets/forgot-password-CCU6bzLn.js +1 -0
  37. package/lib/public/assets/h264Stream-C-OtmIuk.js +26 -0
  38. package/lib/public/assets/index-B9KQ6LsY.js +15 -0
  39. package/lib/public/assets/{index-DI1fGIyj.js → index-BOxe43p1.js} +5 -5
  40. package/lib/public/assets/{index-HDQVe1gi.js → index-CfxsUslp.js} +1 -1
  41. package/lib/public/assets/{input-BjDRKCea.js → input-CZHFjbSg.js} +1 -1
  42. package/lib/public/assets/{line-chart-C0zdgd0v.js → line-chart-Gl_Dz3X_.js} +1 -1
  43. package/lib/public/assets/{list-checks-BdW5CjM8.js → list-checks-CCgjeyGY.js} +1 -1
  44. package/lib/public/assets/{lock-Dy3L4I8E.js → lock-CkOwgDcx.js} +1 -1
  45. package/lib/public/assets/{login-BHbY9CLG.js → login-D5cc4w7M.js} +1 -1
  46. package/lib/public/assets/maintenance-settings-t7qr3fvX.js +6 -0
  47. package/lib/public/assets/{monitor-8xjkeHHi.js → monitor-DEJixKQO.js} +1 -1
  48. package/lib/public/assets/{mouse-pointer-2-CXdKMXQ8.js → mouse-pointer-2-CtOrk4M8.js} +1 -1
  49. package/lib/public/assets/{network-Cj8JOKON.js → network-Dii9qdvk.js} +1 -1
  50. package/lib/public/assets/{overview-CTg7F0im.js → overview-rolAACrO.js} +1 -1
  51. package/lib/public/assets/{page-header--aTyJXq6.js → page-header-COQZxJfR.js} +1 -1
  52. package/lib/public/assets/{play-B-FodgHV.js → play-DrN1Se_R.js} +1 -1
  53. package/lib/public/assets/{plus-CsIk10Cq.js → plus-5aq-9uRx.js} +1 -1
  54. package/lib/public/assets/{profile-page-DkFKkMfl.js → profile-page-6i5kY6kF.js} +1 -1
  55. package/lib/public/assets/{reset-password-I2-zqLlI.js → reset-password-sp2IBrc7.js} +1 -1
  56. package/lib/public/assets/runbook-page-DJDjeopU.js +253 -0
  57. package/lib/public/assets/{select-DvCSv25z.js → select-Bpyn7rWO.js} +1 -1
  58. package/lib/public/assets/{selector-detail-redirect-BLVfMJs_.js → selector-detail-redirect-BH74vmKv.js} +1 -1
  59. package/lib/public/assets/{selector-health-page-oqadRokn.js → selector-health-page-Cw_g218H.js} +2 -2
  60. package/lib/public/assets/session-detail-page-AZJE6XXE.js +4 -0
  61. package/lib/public/assets/settings-C3uyGhyc.js +6 -0
  62. package/lib/public/assets/{settings-Dep_3kbA.css → settings-K8UHWMdI.css} +1 -1
  63. package/lib/public/assets/{stat-tile-DV9Ix-4O.js → stat-tile-xVqAKIlI.js} +1 -1
  64. package/lib/public/assets/{tablet-6b_SEN2X.js → tablet-BxUScAeO.js} +1 -1
  65. package/lib/public/assets/{teams-BjZyfuHh.js → teams-B5ljGkY2.js} +1 -1
  66. package/lib/public/assets/{trash-2-CTZpPSdd.js → trash-2-B701i8sy.js} +1 -1
  67. package/lib/public/assets/{upload-P3XzwQUb.js → upload-C2gr44RS.js} +1 -1
  68. package/lib/public/assets/{use-builds-data-1cOCMf-z.js → use-builds-data-NeQOFEoy.js} +1 -1
  69. package/lib/public/assets/{use-password-reset-mode-DgF9w088.js → use-password-reset-mode-DEzJq5ef.js} +1 -1
  70. package/lib/public/assets/{users-DMF9Mk5H.js → users-D_vv_yz4.js} +1 -1
  71. package/lib/public/assets/{users-CiNTKUiz.js → users-MY6eNe6s.js} +1 -1
  72. package/lib/public/assets/{video-off-CHp1KU_T.js → video-off-OK1lNZQn.js} +1 -1
  73. package/lib/public/assets/webhook-settings-BU-C9lBf.js +1 -0
  74. package/lib/public/assets/{zap-DRz0tDq5.js → zap-DO9ry1iz.js} +1 -1
  75. package/lib/public/index.html +1 -1
  76. package/lib/schema.json +23 -25
  77. package/lib/src/XenonCapabilityManager.js +22 -5
  78. package/lib/src/app/dashboardPluginLink.js +117 -0
  79. package/lib/src/app/index.js +13 -34
  80. package/lib/src/app/openapi/control.yaml +73 -20
  81. package/lib/src/app/openapi/grid.yaml +31 -7
  82. package/lib/src/app/openapi/identity.yaml +103 -31
  83. package/lib/src/app/openapi/platform.yaml +165 -39
  84. package/lib/src/app/openapi/sessions.yaml +10 -3
  85. package/lib/src/app/routers/apikeys.js +14 -2
  86. package/lib/src/app/routers/auth.js +29 -5
  87. package/lib/src/app/routers/control.js +20 -2
  88. package/lib/src/app/routers/dashboard.js +69 -26
  89. package/lib/src/app/routers/grid.js +37 -13
  90. package/lib/src/app/routers/profile.js +21 -0
  91. package/lib/src/app/routers/streamType.js +7 -2
  92. package/lib/src/app/routers/users.js +10 -5
  93. package/lib/src/app/routers/webhook.js +8 -4
  94. package/lib/src/app/swagger.js +2 -0
  95. package/lib/src/app/ws/h264StreamWs.js +10 -1
  96. package/lib/src/config.js +51 -5
  97. package/lib/src/dashboard/commands.js +185 -141
  98. package/lib/src/dashboard/event-manager.js +88 -67
  99. package/lib/src/dashboard/services/failure-analysis-service.js +136 -45
  100. package/lib/src/dashboard/sessionCommandSummary.js +39 -0
  101. package/lib/src/data-service/appleFamily.js +43 -0
  102. package/lib/src/data-service/db.js +11 -0
  103. package/lib/src/data-service/device-service.js +6 -1
  104. package/lib/src/data-service/device-store.js +76 -3
  105. package/lib/src/data-service/deviceClaims.js +37 -0
  106. package/lib/src/data-service/deviceFieldOwners.js +25 -11
  107. package/lib/src/data-service/deviceSettings.js +79 -0
  108. package/lib/src/data-service/prisma-store.js +169 -15
  109. package/lib/src/data-service/web-config-service.js +50 -92
  110. package/lib/src/device-managers/AndroidDeviceManager.js +9 -31
  111. package/lib/src/device-managers/android/AndroidH264StreamService.js +69 -20
  112. package/lib/src/device-managers/android/H264Multiplexer.js +38 -4
  113. package/lib/src/device-managers/ios/WDAClient.js +44 -43
  114. package/lib/src/device-managers/shellCommands.js +96 -0
  115. package/lib/src/device-utils.js +114 -40
  116. package/lib/src/gateway/defaultGateway.js +1 -1
  117. package/lib/src/gateway/forwardToNode.js +2 -0
  118. package/lib/src/gateway/healReport.js +87 -0
  119. package/lib/src/gateway/sessionGateway.js +12 -2
  120. package/lib/src/generated/client/edge.js +18 -3
  121. package/lib/src/generated/client/index-browser.js +15 -0
  122. package/lib/src/generated/client/index.d.ts +2086 -379
  123. package/lib/src/generated/client/index.js +18 -3
  124. package/lib/src/generated/client/package.json +1 -1
  125. package/lib/src/generated/client/schema.prisma +38 -7
  126. package/lib/src/generated/client/wasm.js +15 -0
  127. package/lib/src/interceptors/CommandInterceptor.js +271 -188
  128. package/lib/src/interceptors/xenonScripts.js +55 -0
  129. package/lib/src/interfaces/IPluginArgs.js +1 -2
  130. package/lib/src/middleware/authMiddleware.js +15 -3
  131. package/lib/src/middleware/commandCaller.js +3 -3
  132. package/lib/src/middleware/verifyCredential.js +58 -1
  133. package/lib/src/plugin.js +23 -4
  134. package/lib/src/prisma.js +1 -1
  135. package/lib/src/scripts/database-check.js +124 -0
  136. package/lib/src/services/AICommandService.js +9 -2
  137. package/lib/src/services/AIService.js +281 -32
  138. package/lib/src/services/CleanupService.js +6 -1
  139. package/lib/src/services/EmailService.js +29 -0
  140. package/lib/src/services/InterceptorService.js +70 -13
  141. package/lib/src/services/NetworkConditioningService.js +85 -88
  142. package/lib/src/services/NotificationService.js +36 -29
  143. package/lib/src/services/OrphanSweeper.js +7 -0
  144. package/lib/src/services/PortAllocator.js +5 -0
  145. package/lib/src/services/SelectorVerificationJob.js +15 -4
  146. package/lib/src/services/ServerManager.js +105 -9
  147. package/lib/src/services/SessionLifecycleService.js +133 -75
  148. package/lib/src/services/ShutdownCoordinator.js +33 -0
  149. package/lib/src/services/SocketServer.js +19 -3
  150. package/lib/src/services/TeamService.js +20 -3
  151. package/lib/src/services/bug-report/video-slice.js +4 -1
  152. package/lib/src/services/device-access/leaseOverride.js +7 -5
  153. package/lib/src/services/healing/FuzzyXmlHealingProvider.js +51 -0
  154. package/lib/src/services/healing/HealEtalonService.js +3 -2
  155. package/lib/src/services/healing/HealingOrchestrator.js +85 -71
  156. package/lib/src/services/healing/OcrHealingProvider.js +41 -64
  157. package/lib/src/services/healing/ResilioTreeHealingProvider.js +41 -50
  158. package/lib/src/services/healing/VisualAiHealingProvider.js +1 -1
  159. package/lib/src/services/healing/fingerprintIdentity.js +126 -0
  160. package/lib/src/services/healing/resilioPath.js +274 -0
  161. package/lib/src/services/interceptor/AndroidProxyAdapter.js +18 -0
  162. package/lib/src/services/interceptor/interceptorOptions.js +44 -0
  163. package/lib/src/services/logcat/SessionDeviceLogs.js +271 -0
  164. package/lib/src/services/logcat/deviceLogBook.js +163 -0
  165. package/lib/src/services/network/AndroidRadios.js +71 -0
  166. package/lib/src/services/network/PhoneNetworkLedger.js +184 -0
  167. package/lib/src/services/network/PhoneNetworkRestore.js +330 -0
  168. package/lib/src/services/network/adbForPhone.js +60 -0
  169. package/lib/src/services/network/phoneNetworkLock.js +20 -0
  170. package/lib/src/services/network/xenonProxy.js +107 -0
  171. package/lib/src/services/ocr/ocrData.js +118 -0
  172. package/lib/src/services/ocr/vendor/LICENSE-tessdata.txt +202 -0
  173. package/lib/src/services/ocr/vendor/eng.traineddata.gz +0 -0
  174. package/lib/src/services/omni-vision/OmniVisionService.js +132 -95
  175. package/lib/src/services/omni-vision/VisionAssertionService.js +28 -25
  176. package/lib/src/services/omni-vision/ocrTextMatch.js +105 -0
  177. package/lib/src/services/omni-vision/screenScale.js +68 -0
  178. package/lib/src/services/passwordResetLink.js +50 -9
  179. package/lib/src/services/passwordResetMode.js +3 -1
  180. package/lib/src/services/publicUrl.js +45 -0
  181. package/lib/src/services/recording/concurrency-gate.js +12 -3
  182. package/lib/src/services/session/sessionIdentity.js +5 -3
  183. package/lib/src/services/session/shutdownReason.js +26 -0
  184. package/lib/src/services/settings/SelfHealingSwitch.js +70 -0
  185. package/lib/src/services/settings/aiEngineSettings.js +219 -0
  186. package/lib/src/services/settings/labSettings.js +149 -0
  187. package/lib/src/services/token/mintedLifetime.js +51 -0
  188. package/lib/src/services/webhookEvents.js +173 -0
  189. package/lib/src/sessions/SessionManager.js +8 -2
  190. package/lib/src/sessions/sessionMemory.js +25 -0
  191. package/lib/test/helpers/fake-adb.js +58 -0
  192. package/lib/test/helpers/fake-ai-provider.js +188 -0
  193. package/lib/test/helpers/fake-device-table.js +63 -24
  194. package/lib/test/helpers/loki-stores.js +33 -0
  195. package/lib/test/helpers/page-sources.js +164 -0
  196. package/lib/test/helpers/scratch-database.js +58 -13
  197. package/lib/test/integration/audit-ingest.spec.js +10 -10
  198. package/lib/test/integration/auth-flow.spec.js +9 -14
  199. package/lib/test/integration/auth-rate-limit.spec.js +6 -3
  200. package/lib/test/integration/bug-report-route.spec.js +22 -2
  201. package/lib/test/integration/forgot-password-rate-limit.spec.js +6 -3
  202. package/lib/test/integration/forgot-password.spec.js +17 -18
  203. package/lib/test/integration/legacy-deprecation-headers.spec.js +5 -2
  204. package/lib/test/integration/migration.spec.js +6 -1
  205. package/lib/test/integration/node-pair-auth-rest.spec.js +5 -9
  206. package/lib/test/integration/ports-router.spec.js +4 -4
  207. package/lib/test/integration/prisma-device-store-add-devices.spec.js +2 -3
  208. package/lib/test/integration/prisma-device-store-team-filter.spec.js +2 -5
  209. package/lib/test/integration/profile-tokens.spec.js +10 -16
  210. package/lib/test/integration/recordings-router.spec.js +16 -16
  211. package/lib/test/integration/reset-revokes-sessions.spec.js +4 -9
  212. package/lib/test/integration/role-matrix.spec.js +4 -9
  213. package/lib/test/integration/sdk-leases-router.spec.js +9 -9
  214. package/lib/test/integration/sdk-version.spec.js +2 -2
  215. package/lib/test/integration/selector-health-endpoint.spec.js +5 -5
  216. package/lib/test/integration/team-membership-migration.spec.js +73 -12
  217. package/lib/test/integration/team-visibility-apps.spec.js +15 -22
  218. package/lib/test/integration/team-visibility-control.spec.js +96 -69
  219. package/lib/test/integration/team-visibility-dashboard.spec.js +7 -23
  220. package/lib/test/integration/team-visibility-grid.spec.js +16 -15
  221. package/lib/test/integration/team-visibility-leases.spec.js +8 -11
  222. package/lib/test/integration/team-visibility-recordings.spec.js +6 -19
  223. package/lib/test/integration/team-visibility-sessions.spec.js +6 -19
  224. package/lib/test/integration/users-flow.spec.js +7 -12
  225. package/lib/test/integration/users-lockout.spec.js +5 -3
  226. package/lib/test/unit/EmailService.test.js +66 -0
  227. package/lib/test/unit/ResilioTreeHealingProvider.test.js +46 -19
  228. package/lib/test/unit/TeamService.test.js +3 -0
  229. package/lib/test/unit/XenonCapabilityManager.spec.js +4 -2
  230. package/lib/test/unit/ai-call-time-limit.spec.js +130 -0
  231. package/lib/test/unit/ai-engine-settings.spec.js +338 -0
  232. package/lib/test/unit/ai-provider-switch.spec.js +130 -0
  233. package/lib/test/unit/ai-rate-limit.spec.js +126 -0
  234. package/lib/test/unit/android-h264-viewers.spec.js +272 -0
  235. package/lib/test/unit/android-preview-hold.spec.js +3 -2
  236. package/lib/test/unit/apikeys-router.spec.js +84 -0
  237. package/lib/test/unit/apple-family.spec.js +36 -0
  238. package/lib/test/unit/authMiddleware.bearer.spec.js +9 -0
  239. package/lib/test/unit/authMiddleware.credentialLifetime.spec.js +149 -0
  240. package/lib/test/unit/bug-report/video-slice.spec.js +19 -0
  241. package/lib/test/unit/cleanup-settings-db.spec.js +103 -0
  242. package/lib/test/unit/cleanup-settings.spec.js +244 -0
  243. package/lib/test/unit/dashboard-api-paths.spec.js +101 -0
  244. package/lib/test/unit/dashboard-commands.spec.js +249 -0
  245. package/lib/test/unit/dashboard-events-device-logs.spec.js +207 -0
  246. package/lib/test/unit/dashboard-events-team-scope.spec.js +9 -6
  247. package/lib/test/unit/dashboard-plugin-link.spec.js +213 -0
  248. package/lib/test/unit/database-check.spec.js +108 -0
  249. package/lib/test/unit/default-plugin-args.spec.js +33 -0
  250. package/lib/test/unit/device-log-book.spec.js +180 -0
  251. package/lib/test/unit/device-offline-webhook.spec.js +81 -0
  252. package/lib/test/unit/device-setting-columns.spec.js +66 -0
  253. package/lib/test/unit/device-settings-loki.spec.js +87 -0
  254. package/lib/test/unit/device-settings-survive.spec.js +555 -0
  255. package/lib/test/unit/device-sync-lost-update.spec.js +5 -0
  256. package/lib/test/unit/emulator-boot.spec.js +91 -0
  257. package/lib/test/unit/enable-dashboard-option.spec.js +57 -0
  258. package/lib/test/unit/event-log-session-data.spec.js +244 -0
  259. package/lib/test/unit/failure-analysis.spec.js +182 -0
  260. package/lib/test/unit/failure-categories.spec.js +128 -0
  261. package/lib/test/unit/fingerprint-identity.spec.js +433 -0
  262. package/lib/test/unit/h264-multiplexer.spec.js +46 -0
  263. package/lib/test/unit/heal-report.spec.js +71 -0
  264. package/lib/test/unit/healing-instrumentation.spec.js +6 -1
  265. package/lib/test/unit/healing-tier-gate.spec.js +73 -29
  266. package/lib/test/unit/healing-tiers-every-session.spec.js +219 -0
  267. package/lib/test/unit/hub-node-gateway-appium-server.spec.js +219 -0
  268. package/lib/test/unit/hub-node-same-host.spec.js +5 -0
  269. package/lib/test/unit/interceptor-visual-elements.spec.js +192 -0
  270. package/lib/test/unit/iphone-ipad-only.spec.js +132 -0
  271. package/lib/test/unit/json-logging-option.spec.js +74 -0
  272. package/lib/test/unit/lab-settings.spec.js +218 -0
  273. package/lib/test/unit/lease/lease-override.spec.js +23 -6
  274. package/lib/test/unit/lease/session-lease-proof.spec.js +16 -4
  275. package/lib/test/unit/max-sessions.spec.js +240 -0
  276. package/lib/test/unit/ocr-healing-tier-real-ocr.spec.js +113 -0
  277. package/lib/test/unit/ocr-healing-tier.spec.js +122 -0
  278. package/lib/test/unit/ocr-offline.spec.js +213 -0
  279. package/lib/test/unit/ocr-text-match.spec.js +44 -0
  280. package/lib/test/unit/omni-virtual-element-store.spec.js +301 -0
  281. package/lib/test/unit/omni-vision-analyze-screen.spec.js +72 -0
  282. package/lib/test/unit/omni-vision-ios-points.spec.js +159 -0
  283. package/lib/test/unit/omni-vision-tap-text.spec.js +129 -0
  284. package/lib/test/unit/omni-vision.spec.js +6 -8
  285. package/lib/test/unit/package-engines.spec.js +27 -0
  286. package/lib/test/unit/partial-config-file.spec.js +14 -0
  287. package/lib/test/unit/passwordResetMode.test.js +10 -2
  288. package/lib/test/unit/phone-network/boot-clean-up.spec.js +64 -0
  289. package/lib/test/unit/phone-network/interceptor-options.spec.js +77 -0
  290. package/lib/test/unit/phone-network/interceptor-proxy-restore.spec.js +145 -0
  291. package/lib/test/unit/phone-network/network-conditioning.spec.js +145 -0
  292. package/lib/test/unit/phone-network/phone-network-restore.spec.js +246 -0
  293. package/lib/test/unit/phone-network/session-end-paths.spec.js +182 -0
  294. package/lib/test/unit/phone-network/session-start.spec.js +110 -0
  295. package/lib/test/unit/phone-network/xenon-proxy.spec.js +69 -0
  296. package/lib/test/unit/plugin.spec.js +3 -3
  297. package/lib/test/unit/profile-router.test.js +122 -1
  298. package/lib/test/unit/queue-requester.spec.js +1 -1
  299. package/lib/test/unit/recording-options.spec.js +181 -0
  300. package/lib/test/unit/reset-link-address.spec.js +266 -0
  301. package/lib/test/unit/reset-link.test.js +10 -4
  302. package/lib/test/unit/resilio-path-healing.spec.js +270 -0
  303. package/lib/test/unit/selector-learning-every-session.spec.js +179 -0
  304. package/lib/test/unit/selector-verification-clean-build.spec.js +130 -0
  305. package/lib/test/unit/selector-verification-job.spec.js +13 -13
  306. package/lib/test/unit/self-healing-boot.spec.js +80 -0
  307. package/lib/test/unit/self-healing-setting.spec.js +273 -0
  308. package/lib/test/unit/session-app-resolution.spec.js +5 -1
  309. package/lib/test/unit/session-attribution-wiring.spec.js +41 -13
  310. package/lib/test/unit/session-create-credential-owner.spec.js +242 -0
  311. package/lib/test/unit/session-credential-strip.spec.js +1 -1
  312. package/lib/test/unit/session-device-logs.spec.js +347 -0
  313. package/lib/test/unit/session-end-failure-analysis.spec.js +133 -0
  314. package/lib/test/unit/session-failed-webhook.spec.js +170 -0
  315. package/lib/test/unit/session-log-indexes.spec.js +64 -3
  316. package/lib/test/unit/shell-commands.spec.js +133 -0
  317. package/lib/test/unit/socketServer.scopedEmit.spec.js +2 -0
  318. package/lib/test/unit/socketServer.sessionCookie.spec.js +2 -1
  319. package/lib/test/unit/stream-start-pipelines.spec.js +264 -0
  320. package/lib/test/unit/stream-status-type.spec.js +4 -0
  321. package/lib/test/unit/token-mint-limits.spec.js +165 -0
  322. package/lib/test/unit/unexpected-shutdown-reason.spec.js +163 -0
  323. package/lib/test/unit/verify-credential.spec.js +33 -0
  324. package/lib/test/unit/vision-assertion.spec.js +119 -0
  325. package/lib/test/unit/wda-client-shell.spec.js +133 -0
  326. package/lib/test/unit/web-config-service.spec.js +98 -0
  327. package/lib/test/unit/webhook-delivery.spec.js +24 -0
  328. package/lib/test/unit/webhook-payloads.spec.js +273 -0
  329. package/lib/test/unit/xenon-execute-scripts.spec.js +138 -0
  330. package/lib/tsconfig.tsbuildinfo +1 -1
  331. package/lib/web/src/components/webhook-settings/webhookEventVariables.json +30 -0
  332. package/package.json +5 -5
  333. package/prisma/migrations/20261004140000_keep_device_settings/migration.sql +19 -0
  334. package/prisma/migrations/20261004174413_locator_etalon_path/migration.sql +2 -0
  335. package/prisma/schema.prisma +38 -7
  336. package/schema.json +23 -25
  337. package/scripts/generate-types-from-schema.js +1 -2
  338. package/scripts/lib/always-present-plugin-args.js +4 -1
  339. package/lib/public/assets/BugReportButton-BoGhlI7F.js +0 -15
  340. package/lib/public/assets/DeviceMosaicView-8J0oYqMM.js +0 -2
  341. package/lib/public/assets/ai-settings-Bce5SJob.js +0 -21
  342. package/lib/public/assets/device-explorer-C-KnhMHI.js +0 -279
  343. package/lib/public/assets/forgot-password-DnudqFFo.js +0 -1
  344. package/lib/public/assets/maintenance-settings-zDVlOMVK.js +0 -6
  345. package/lib/public/assets/recording-group-store-WVM3hoXn.js +0 -26
  346. package/lib/public/assets/runbook-page-DJTVCJX7.js +0 -124
  347. package/lib/public/assets/session-detail-page-CGn55Pvl.js +0 -4
  348. package/lib/public/assets/settings-MsVU2ukE.js +0 -6
  349. package/lib/public/assets/webhook-settings-DiS8geIm.js +0 -1
  350. /package/lib/public/assets/{BugReportButton-CPBjfiv4.css → index-CPBjfiv4.css} +0 -0
@@ -0,0 +1,253 @@
1
+ import{J as _e,R as Fe,i as Fr,u as Ir,j as ne,K as Or}from"./index-BOxe43p1.js";import{h as vr}from"./derive-UnLRp4r3.js";import{A as Lr}from"./arrow-left-BWfCbeHP.js";const $n=["http","https","mailto","tel"];function Dr(e){const n=(e||"").trim(),t=n.charAt(0);if(t==="#"||t==="/")return n;const r=n.indexOf(":");if(r===-1)return n;let i=-1;for(;++i<$n.length;){const l=$n[i];if(r===l.length&&n.slice(0,l.length).toLowerCase()===l)return n}return i=n.indexOf("?"),i!==-1&&r>i||(i=n.indexOf("#"),i!==-1&&r>i)?n:"javascript:void(0)"}/*!
2
+ * Determine if an object is a Buffer
3
+ *
4
+ * @author Feross Aboukhadijeh <https://feross.org>
5
+ * @license MIT
6
+ */var zr=function(n){return n!=null&&n.constructor!=null&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)};const vt=_e(zr);function Ne(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?qn(e.position):"start"in e||"end"in e?qn(e):"line"in e||"column"in e?xn(e):""}function xn(e){return Wn(e&&e.line)+":"+Wn(e&&e.column)}function qn(e){return xn(e&&e.start)+"-"+xn(e&&e.end)}function Wn(e){return e&&typeof e=="number"?e:1}class ie extends Error{constructor(n,t,r){const i=[null,null];let l={start:{line:null,column:null},end:{line:null,column:null}};if(super(),typeof t=="string"&&(r=t,t=void 0),typeof r=="string"){const o=r.indexOf(":");o===-1?i[1]=r:(i[0]=r.slice(0,o),i[1]=r.slice(o+1))}t&&("type"in t||"position"in t?t.position&&(l=t.position):"start"in t||"end"in t?l=t:("line"in t||"column"in t)&&(l.start=t)),this.name=Ne(t)||"1:1",this.message=typeof n=="object"?n.message:n,this.stack="",typeof n=="object"&&n.stack&&(this.stack=n.stack),this.reason=this.message,this.fatal,this.line=l.start.line,this.column=l.start.column,this.position=l,this.source=i[0],this.ruleId=i[1],this.file,this.actual,this.expected,this.url,this.note}}ie.prototype.file="";ie.prototype.name="";ie.prototype.reason="";ie.prototype.message="";ie.prototype.stack="";ie.prototype.fatal=null;ie.prototype.column=null;ie.prototype.line=null;ie.prototype.source=null;ie.prototype.ruleId=null;ie.prototype.position=null;const pe={basename:Rr,dirname:Br,extname:Nr,join:Mr,sep:"/"};function Rr(e,n){if(n!==void 0&&typeof n!="string")throw new TypeError('"ext" argument must be a string');je(e);let t=0,r=-1,i=e.length,l;if(n===void 0||n.length===0||n.length>e.length){for(;i--;)if(e.charCodeAt(i)===47){if(l){t=i+1;break}}else r<0&&(l=!0,r=i+1);return r<0?"":e.slice(t,r)}if(n===e)return"";let o=-1,a=n.length-1;for(;i--;)if(e.charCodeAt(i)===47){if(l){t=i+1;break}}else o<0&&(l=!0,o=i+1),a>-1&&(e.charCodeAt(i)===n.charCodeAt(a--)?a<0&&(r=i):(a=-1,r=o));return t===r?r=o:r<0&&(r=e.length),e.slice(t,r)}function Br(e){if(je(e),e.length===0)return".";let n=-1,t=e.length,r;for(;--t;)if(e.charCodeAt(t)===47){if(r){n=t;break}}else r||(r=!0);return n<0?e.charCodeAt(0)===47?"/":".":n===1&&e.charCodeAt(0)===47?"//":e.slice(0,n)}function Nr(e){je(e);let n=e.length,t=-1,r=0,i=-1,l=0,o;for(;n--;){const a=e.charCodeAt(n);if(a===47){if(o){r=n+1;break}continue}t<0&&(o=!0,t=n+1),a===46?i<0?i=n:l!==1&&(l=1):i>-1&&(l=-1)}return i<0||t<0||l===0||l===1&&i===t-1&&i===r+1?"":e.slice(i,t)}function Mr(...e){let n=-1,t;for(;++n<e.length;)je(e[n]),e[n]&&(t=t===void 0?e[n]:t+"/"+e[n]);return t===void 0?".":_r(t)}function _r(e){je(e);const n=e.charCodeAt(0)===47;let t=jr(e,!n);return t.length===0&&!n&&(t="."),t.length>0&&e.charCodeAt(e.length-1)===47&&(t+="/"),n?"/"+t:t}function jr(e,n){let t="",r=0,i=-1,l=0,o=-1,a,s;for(;++o<=e.length;){if(o<e.length)a=e.charCodeAt(o);else{if(a===47)break;a=47}if(a===47){if(!(i===o-1||l===1))if(i!==o-1&&l===2){if(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){if(s=t.lastIndexOf("/"),s!==t.length-1){s<0?(t="",r=0):(t=t.slice(0,s),r=t.length-1-t.lastIndexOf("/")),i=o,l=0;continue}}else if(t.length>0){t="",r=0,i=o,l=0;continue}}n&&(t=t.length>0?t+"/..":"..",r=2)}else t.length>0?t+="/"+e.slice(i+1,o):t=e.slice(i+1,o),r=o-i-1;i=o,l=0}else a===46&&l>-1?l++:l=-1}return t}function je(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Hr={cwd:Ur};function Ur(){return"/"}function kn(e){return e!==null&&typeof e=="object"&&e.href&&e.origin}function Vr(e){if(typeof e=="string")e=new URL(e);else if(!kn(e)){const n=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw n.code="ERR_INVALID_ARG_TYPE",n}if(e.protocol!=="file:"){const n=new TypeError("The URL must be of scheme file");throw n.code="ERR_INVALID_URL_SCHEME",n}return $r(e)}function $r(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const n=e.pathname;let t=-1;for(;++t<n.length;)if(n.charCodeAt(t)===37&&n.charCodeAt(t+1)===50){const r=n.charCodeAt(t+2);if(r===70||r===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(n)}const un=["history","path","basename","stem","extname","dirname"];class Lt{constructor(n){let t;n?typeof n=="string"||qr(n)?t={value:n}:kn(n)?t={path:n}:t=n:t={},this.data={},this.messages=[],this.history=[],this.cwd=Hr.cwd(),this.value,this.stored,this.result,this.map;let r=-1;for(;++r<un.length;){const l=un[r];l in t&&t[l]!==void 0&&t[l]!==null&&(this[l]=l==="history"?[...t[l]]:t[l])}let i;for(i in t)un.includes(i)||(this[i]=t[i])}get path(){return this.history[this.history.length-1]}set path(n){kn(n)&&(n=Vr(n)),cn(n,"path"),this.path!==n&&this.history.push(n)}get dirname(){return typeof this.path=="string"?pe.dirname(this.path):void 0}set dirname(n){Xn(this.basename,"dirname"),this.path=pe.join(n||"",this.basename)}get basename(){return typeof this.path=="string"?pe.basename(this.path):void 0}set basename(n){cn(n,"basename"),sn(n,"basename"),this.path=pe.join(this.dirname||"",n)}get extname(){return typeof this.path=="string"?pe.extname(this.path):void 0}set extname(n){if(sn(n,"extname"),Xn(this.dirname,"extname"),n){if(n.charCodeAt(0)!==46)throw new Error("`extname` must start with `.`");if(n.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=pe.join(this.dirname,this.stem+(n||""))}get stem(){return typeof this.path=="string"?pe.basename(this.path,this.extname):void 0}set stem(n){cn(n,"stem"),sn(n,"stem"),this.path=pe.join(this.dirname||"",n+(this.extname||""))}toString(n){return(this.value||"").toString(n||void 0)}message(n,t,r){const i=new ie(n,t,r);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(n,t,r){const i=this.message(n,t,r);return i.fatal=null,i}fail(n,t,r){const i=this.message(n,t,r);throw i.fatal=!0,i}}function sn(e,n){if(e&&e.includes(pe.sep))throw new Error("`"+n+"` cannot be a path: did not expect `"+pe.sep+"`")}function cn(e,n){if(!e)throw new Error("`"+n+"` cannot be empty")}function Xn(e,n){if(!e)throw new Error("Setting `"+n+"` requires `path` to be set too")}function qr(e){return vt(e)}function Qn(e){if(e)throw e}var $e=Object.prototype.hasOwnProperty,Dt=Object.prototype.toString,Yn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Gn=function(n){return typeof Array.isArray=="function"?Array.isArray(n):Dt.call(n)==="[object Array]"},Jn=function(n){if(!n||Dt.call(n)!=="[object Object]")return!1;var t=$e.call(n,"constructor"),r=n.constructor&&n.constructor.prototype&&$e.call(n.constructor.prototype,"isPrototypeOf");if(n.constructor&&!t&&!r)return!1;var i;for(i in n);return typeof i>"u"||$e.call(n,i)},Zn=function(n,t){Yn&&t.name==="__proto__"?Yn(n,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):n[t.name]=t.newValue},et=function(n,t){if(t==="__proto__")if($e.call(n,t)){if(Kn)return Kn(n,t).value}else return;return n[t]},Wr=function e(){var n,t,r,i,l,o,a=arguments[0],s=1,u=arguments.length,c=!1;for(typeof a=="boolean"&&(c=a,a=arguments[1]||{},s=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});s<u;++s)if(n=arguments[s],n!=null)for(t in n)r=et(a,t),i=et(n,t),a!==i&&(c&&i&&(Jn(i)||(l=Gn(i)))?(l?(l=!1,o=r&&Gn(r)?r:[]):o=r&&Jn(r)?r:{},Zn(a,{name:t,newValue:e(c,o,i)})):typeof i<"u"&&Zn(a,{name:t,newValue:i}));return a};const nt=_e(Wr);function wn(e){if(typeof e!="object"||e===null)return!1;const n=Object.getPrototypeOf(e);return(n===null||n===Object.prototype||Object.getPrototypeOf(n)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Xr(){const e=[],n={run:t,use:r};return n;function t(...i){let l=-1;const o=i.pop();if(typeof o!="function")throw new TypeError("Expected function as last argument, not "+o);a(null,...i);function a(s,...u){const c=e[++l];let m=-1;if(s){o(s);return}for(;++m<i.length;)(u[m]===null||u[m]===void 0)&&(u[m]=i[m]);i=u,c?Qr(c,a)(...u):o(null,...u)}}function r(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),n}}function Qr(e,n){let t;return r;function r(...o){const a=e.length>o.length;let s;a&&o.push(i);try{s=e.apply(this,o)}catch(u){const c=u;if(a&&t)throw c;return i(c)}a||(s&&s.then&&typeof s.then=="function"?s.then(l,i):s instanceof Error?i(s):l(s))}function i(o,...a){t||(t=!0,n(o,...a))}function l(o){i(null,o)}}const Yr=Rt().freeze(),zt={}.hasOwnProperty;function Rt(){const e=Xr(),n=[];let t={},r,i=-1;return l.data=o,l.Parser=void 0,l.Compiler=void 0,l.freeze=a,l.attachers=n,l.use=s,l.parse=u,l.stringify=c,l.run=m,l.runSync=d,l.process=h,l.processSync=b,l;function l(){const x=Rt();let C=-1;for(;++C<n.length;)x.use(...n[C]);return x.data(nt(!0,{},t)),x}function o(x,C){return typeof x=="string"?arguments.length===2?(fn("data",r),t[x]=C,l):zt.call(t,x)&&t[x]||null:x?(fn("data",r),t=x,l):t}function a(){if(r)return l;for(;++i<n.length;){const[x,...C]=n[i];if(C[0]===!1)continue;C[0]===!0&&(C[0]=void 0);const k=x.call(l,...C);typeof k=="function"&&e.use(k)}return r=!0,i=Number.POSITIVE_INFINITY,l}function s(x,...C){let k;if(fn("use",r),x!=null)if(typeof x=="function")R(x,...C);else if(typeof x=="object")Array.isArray(x)?z(x):E(x);else throw new TypeError("Expected usable value, not `"+x+"`");return k&&(t.settings=Object.assign(t.settings||{},k)),l;function L(g){if(typeof g=="function")R(g);else if(typeof g=="object")if(Array.isArray(g)){const[T,...D]=g;R(T,...D)}else E(g);else throw new TypeError("Expected usable value, not `"+g+"`")}function E(g){z(g.plugins),g.settings&&(k=Object.assign(k||{},g.settings))}function z(g){let T=-1;if(g!=null)if(Array.isArray(g))for(;++T<g.length;){const D=g[T];L(D)}else throw new TypeError("Expected a list of plugins, not `"+g+"`")}function R(g,T){let D=-1,M;for(;++D<n.length;)if(n[D][0]===g){M=n[D];break}M?(wn(M[1])&&wn(T)&&(T=nt(!0,M[1],T)),M[1]=T):n.push([...arguments])}}function u(x){l.freeze();const C=Re(x),k=l.Parser;return pn("parse",k),tt(k,"parse")?new k(String(C),C).parse():k(String(C),C)}function c(x,C){l.freeze();const k=Re(C),L=l.Compiler;return hn("stringify",L),rt(x),tt(L,"compile")?new L(x,k).compile():L(x,k)}function m(x,C,k){if(rt(x),l.freeze(),!k&&typeof C=="function"&&(k=C,C=void 0),!k)return new Promise(L);L(null,k);function L(E,z){e.run(x,Re(C),R);function R(g,T,D){T=T||x,g?z(g):E?E(T):k(null,T,D)}}}function d(x,C){let k,L;return l.run(x,C,E),it("runSync","run",L),k;function E(z,R){Qn(z),k=R,L=!0}}function h(x,C){if(l.freeze(),pn("process",l.Parser),hn("process",l.Compiler),!C)return new Promise(k);k(null,C);function k(L,E){const z=Re(x);l.run(l.parse(z),z,(g,T,D)=>{if(g||!T||!D)R(g);else{const M=l.stringify(T,D);M==null||(Jr(M)?D.value=M:D.result=M),R(g,D)}});function R(g,T){g||!T?E(g):L?L(T):C(null,T)}}}function b(x){let C;l.freeze(),pn("processSync",l.Parser),hn("processSync",l.Compiler);const k=Re(x);return l.process(k,L),it("processSync","process",C),k;function L(E){C=!0,Qn(E)}}}function tt(e,n){return typeof e=="function"&&e.prototype&&(Kr(e.prototype)||n in e.prototype)}function Kr(e){let n;for(n in e)if(zt.call(e,n))return!0;return!1}function pn(e,n){if(typeof n!="function")throw new TypeError("Cannot `"+e+"` without `Parser`")}function hn(e,n){if(typeof n!="function")throw new TypeError("Cannot `"+e+"` without `Compiler`")}function fn(e,n){if(n)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function rt(e){if(!wn(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function it(e,n,t){if(!t)throw new Error("`"+e+"` finished async. Use `"+n+"` instead")}function Re(e){return Gr(e)?e:new Lt(e)}function Gr(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Jr(e){return typeof e=="string"||vt(e)}const Zr={};function ei(e,n){const t=Zr,r=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,i=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return Bt(e,r,i)}function Bt(e,n,t){if(ni(e)){if("value"in e)return e.type==="html"&&!t?"":e.value;if(n&&"alt"in e&&e.alt)return e.alt;if("children"in e)return lt(e.children,n,t)}return Array.isArray(e)?lt(e,n,t):""}function lt(e,n,t){const r=[];let i=-1;for(;++i<e.length;)r[i]=Bt(e[i],n,t);return r.join("")}function ni(e){return!!(e&&typeof e=="object")}function fe(e,n,t,r){const i=e.length;let l=0,o;if(n<0?n=-n>i?0:i+n:n=n>i?i:n,t=t>0?t:0,r.length<1e4)o=Array.from(r),o.unshift(n,t),e.splice(...o);else for(t&&e.splice(n,t);l<r.length;)o=r.slice(l,l+1e4),o.unshift(n,0),e.splice(...o),l+=1e4,n+=1e4}function re(e,n){return e.length>0?(fe(e,e.length,0,n),e):n}const ot={}.hasOwnProperty;function ti(e){const n={};let t=-1;for(;++t<e.length;)ri(n,e[t]);return n}function ri(e,n){let t;for(t in n){const i=(ot.call(e,t)?e[t]:void 0)||(e[t]={}),l=n[t];let o;if(l)for(o in l){ot.call(i,o)||(i[o]=[]);const a=l[o];ii(i[o],Array.isArray(a)?a:a?[a]:[])}}}function ii(e,n){let t=-1;const r=[];for(;++t<n.length;)(n[t].add==="after"?e:r).push(n[t]);fe(e,0,0,r)}const li=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,he=be(/[A-Za-z]/),te=be(/[\dA-Za-z]/),oi=be(/[#-'*+\--9=?A-Z^-~]/);function bn(e){return e!==null&&(e<32||e===127)}const Sn=be(/\d/),ai=be(/[\dA-Fa-f]/),ui=be(/[!-/:-@[-`{-~]/);function I(e){return e!==null&&e<-2}function Z(e){return e!==null&&(e<0||e===32)}function N(e){return e===-2||e===-1||e===32}const si=be(li),ci=be(/\s/);function be(e){return n;function n(t){return t!==null&&e.test(String.fromCharCode(t))}}function V(e,n,t,r){const i=r?r-1:Number.POSITIVE_INFINITY;let l=0;return o;function o(s){return N(s)?(e.enter(t),a(s)):n(s)}function a(s){return N(s)&&l++<i?(e.consume(s),a):(e.exit(t),n(s))}}const pi={tokenize:hi};function hi(e){const n=e.attempt(this.parser.constructs.contentInitial,r,i);let t;return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),V(e,n,"linePrefix")}function i(a){return e.enter("paragraph"),l(a)}function l(a){const s=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=s),t=s,o(a)}function o(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return I(a)?(e.consume(a),e.exit("chunkText"),l):(e.consume(a),o)}}const fi={tokenize:mi},at={tokenize:di};function mi(e){const n=this,t=[];let r=0,i,l,o;return a;function a(E){if(r<t.length){const z=t[r];return n.containerState=z[1],e.attempt(z[0].continuation,s,u)(E)}return u(E)}function s(E){if(r++,n.containerState._closeFlow){n.containerState._closeFlow=void 0,i&&L();const z=n.events.length;let R=z,g;for(;R--;)if(n.events[R][0]==="exit"&&n.events[R][1].type==="chunkFlow"){g=n.events[R][1].end;break}k(r);let T=z;for(;T<n.events.length;)n.events[T][1].end=Object.assign({},g),T++;return fe(n.events,R+1,0,n.events.slice(z)),n.events.length=T,u(E)}return a(E)}function u(E){if(r===t.length){if(!i)return d(E);if(i.currentConstruct&&i.currentConstruct.concrete)return b(E);n.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return n.containerState={},e.check(at,c,m)(E)}function c(E){return i&&L(),k(r),d(E)}function m(E){return n.parser.lazy[n.now().line]=r!==t.length,o=n.now().offset,b(E)}function d(E){return n.containerState={},e.attempt(at,h,b)(E)}function h(E){return r++,t.push([n.currentConstruct,n.containerState]),d(E)}function b(E){if(E===null){i&&L(),k(0),e.consume(E);return}return i=i||n.parser.flow(n.now()),e.enter("chunkFlow",{contentType:"flow",previous:l,_tokenizer:i}),x(E)}function x(E){if(E===null){C(e.exit("chunkFlow"),!0),k(0),e.consume(E);return}return I(E)?(e.consume(E),C(e.exit("chunkFlow")),r=0,n.interrupt=void 0,a):(e.consume(E),x)}function C(E,z){const R=n.sliceStream(E);if(z&&R.push(null),E.previous=l,l&&(l.next=E),l=E,i.defineSkip(E.start),i.write(R),n.parser.lazy[E.start.line]){let g=i.events.length;for(;g--;)if(i.events[g][1].start.offset<o&&(!i.events[g][1].end||i.events[g][1].end.offset>o))return;const T=n.events.length;let D=T,M,Q;for(;D--;)if(n.events[D][0]==="exit"&&n.events[D][1].type==="chunkFlow"){if(M){Q=n.events[D][1].end;break}M=!0}for(k(r),g=T;g<n.events.length;)n.events[g][1].end=Object.assign({},Q),g++;fe(n.events,D+1,0,n.events.slice(T)),n.events.length=g}}function k(E){let z=t.length;for(;z-- >E;){const R=t[z];n.containerState=R[1],R[0].exit.call(n,e)}t.length=E}function L(){i.write([null]),l=void 0,i=void 0,n.containerState._closeFlow=void 0}}function di(e,n,t){return V(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function ut(e){if(e===null||Z(e)||ci(e))return 1;if(si(e))return 2}function Tn(e,n,t){const r=[];let i=-1;for(;++i<e.length;){const l=e[i].resolveAll;l&&!r.includes(l)&&(n=l(n,t),r.push(l))}return n}const Cn={name:"attention",tokenize:yi,resolveAll:gi};function gi(e,n){let t=-1,r,i,l,o,a,s,u,c;for(;++t<e.length;)if(e[t][0]==="enter"&&e[t][1].type==="attentionSequence"&&e[t][1]._close){for(r=t;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&n.sliceSerialize(e[r][1]).charCodeAt(0)===n.sliceSerialize(e[t][1]).charCodeAt(0)){if((e[r][1]._close||e[t][1]._open)&&(e[t][1].end.offset-e[t][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[t][1].end.offset-e[t][1].start.offset)%3))continue;s=e[r][1].end.offset-e[r][1].start.offset>1&&e[t][1].end.offset-e[t][1].start.offset>1?2:1;const m=Object.assign({},e[r][1].end),d=Object.assign({},e[t][1].start);st(m,-s),st(d,s),o={type:s>1?"strongSequence":"emphasisSequence",start:m,end:Object.assign({},e[r][1].end)},a={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[t][1].start),end:d},l={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[t][1].start)},i={type:s>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},a.end)},e[r][1].end=Object.assign({},o.start),e[t][1].start=Object.assign({},a.end),u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=re(u,[["enter",e[r][1],n],["exit",e[r][1],n]])),u=re(u,[["enter",i,n],["enter",o,n],["exit",o,n],["enter",l,n]]),u=re(u,Tn(n.parser.constructs.insideSpan.null,e.slice(r+1,t),n)),u=re(u,[["exit",l,n],["enter",a,n],["exit",a,n],["exit",i,n]]),e[t][1].end.offset-e[t][1].start.offset?(c=2,u=re(u,[["enter",e[t][1],n],["exit",e[t][1],n]])):c=0,fe(e,r-1,t-r+3,u),t=r+u.length-c-2;break}}for(t=-1;++t<e.length;)e[t][1].type==="attentionSequence"&&(e[t][1].type="data");return e}function yi(e,n){const t=this.parser.constructs.attentionMarkers.null,r=this.previous,i=ut(r);let l;return o;function o(s){return l=s,e.enter("attentionSequence"),a(s)}function a(s){if(s===l)return e.consume(s),a;const u=e.exit("attentionSequence"),c=ut(s),m=!c||c===2&&i||t.includes(s),d=!i||i===2&&c||t.includes(r);return u._open=!!(l===42?m:m&&(i||!d)),u._close=!!(l===42?d:d&&(c||!m)),n(s)}}function st(e,n){e.column+=n,e.offset+=n,e._bufferIndex+=n}const xi={name:"autolink",tokenize:ki};function ki(e,n,t){let r=0;return i;function i(h){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),l}function l(h){return he(h)?(e.consume(h),o):u(h)}function o(h){return h===43||h===45||h===46||te(h)?(r=1,a(h)):u(h)}function a(h){return h===58?(e.consume(h),r=0,s):(h===43||h===45||h===46||te(h))&&r++<32?(e.consume(h),a):(r=0,u(h))}function s(h){return h===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),n):h===null||h===32||h===60||bn(h)?t(h):(e.consume(h),s)}function u(h){return h===64?(e.consume(h),c):oi(h)?(e.consume(h),u):t(h)}function c(h){return te(h)?m(h):t(h)}function m(h){return h===46?(e.consume(h),r=0,c):h===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),n):d(h)}function d(h){if((h===45||te(h))&&r++<63){const b=h===45?d:m;return e.consume(h),b}return t(h)}}const Xe={tokenize:wi,partial:!0};function wi(e,n,t){return r;function r(l){return N(l)?V(e,i,"linePrefix")(l):i(l)}function i(l){return l===null||I(l)?n(l):t(l)}}const Nt={name:"blockQuote",tokenize:bi,continuation:{tokenize:Si},exit:Ci};function bi(e,n,t){const r=this;return i;function i(o){if(o===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(o),e.exit("blockQuoteMarker"),l}return t(o)}function l(o){return N(o)?(e.enter("blockQuotePrefixWhitespace"),e.consume(o),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),n):(e.exit("blockQuotePrefix"),n(o))}}function Si(e,n,t){const r=this;return i;function i(o){return N(o)?V(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):l(o)}function l(o){return e.attempt(Nt,n,t)(o)}}function Ci(e){e.exit("blockQuote")}const Mt={name:"characterEscape",tokenize:Ei};function Ei(e,n,t){return r;function r(l){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(l),e.exit("escapeMarker"),i}function i(l){return ui(l)?(e.enter("characterEscapeValue"),e.consume(l),e.exit("characterEscapeValue"),e.exit("characterEscape"),n):t(l)}}const ct=document.createElement("i");function Fn(e){const n="&"+e+";";ct.innerHTML=n;const t=ct.textContent;return t.charCodeAt(t.length-1)===59&&e!=="semi"||t===n?!1:t}const _t={name:"characterReference",tokenize:Ai};function Ai(e,n,t){const r=this;let i=0,l,o;return a;function a(m){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(m),e.exit("characterReferenceMarker"),s}function s(m){return m===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(m),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),l=31,o=te,c(m))}function u(m){return m===88||m===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(m),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),l=6,o=ai,c):(e.enter("characterReferenceValue"),l=7,o=Sn,c(m))}function c(m){if(m===59&&i){const d=e.exit("characterReferenceValue");return o===te&&!Fn(r.sliceSerialize(d))?t(m):(e.enter("characterReferenceMarker"),e.consume(m),e.exit("characterReferenceMarker"),e.exit("characterReference"),n)}return o(m)&&i++<l?(e.consume(m),c):t(m)}}const pt={tokenize:Ti,partial:!0},ht={name:"codeFenced",tokenize:Pi,concrete:!0};function Pi(e,n,t){const r=this,i={tokenize:R,partial:!0};let l=0,o=0,a;return s;function s(g){return u(g)}function u(g){const T=r.events[r.events.length-1];return l=T&&T[1].type==="linePrefix"?T[2].sliceSerialize(T[1],!0).length:0,a=g,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),c(g)}function c(g){return g===a?(o++,e.consume(g),c):o<3?t(g):(e.exit("codeFencedFenceSequence"),N(g)?V(e,m,"whitespace")(g):m(g))}function m(g){return g===null||I(g)?(e.exit("codeFencedFence"),r.interrupt?n(g):e.check(pt,x,z)(g)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),d(g))}function d(g){return g===null||I(g)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),m(g)):N(g)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),V(e,h,"whitespace")(g)):g===96&&g===a?t(g):(e.consume(g),d)}function h(g){return g===null||I(g)?m(g):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),b(g))}function b(g){return g===null||I(g)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),m(g)):g===96&&g===a?t(g):(e.consume(g),b)}function x(g){return e.attempt(i,z,C)(g)}function C(g){return e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),k}function k(g){return l>0&&N(g)?V(e,L,"linePrefix",l+1)(g):L(g)}function L(g){return g===null||I(g)?e.check(pt,x,z)(g):(e.enter("codeFlowValue"),E(g))}function E(g){return g===null||I(g)?(e.exit("codeFlowValue"),L(g)):(e.consume(g),E)}function z(g){return e.exit("codeFenced"),n(g)}function R(g,T,D){let M=0;return Q;function Q(B){return g.enter("lineEnding"),g.consume(B),g.exit("lineEnding"),A}function A(B){return g.enter("codeFencedFence"),N(B)?V(g,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(B):P(B)}function P(B){return B===a?(g.enter("codeFencedFenceSequence"),$(B)):D(B)}function $(B){return B===a?(M++,g.consume(B),$):M>=o?(g.exit("codeFencedFenceSequence"),N(B)?V(g,q,"whitespace")(B):q(B)):D(B)}function q(B){return B===null||I(B)?(g.exit("codeFencedFence"),T(B)):D(B)}}}function Ti(e,n,t){const r=this;return i;function i(o){return o===null?t(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),l)}function l(o){return r.parser.lazy[r.now().line]?t(o):n(o)}}const mn={name:"codeIndented",tokenize:Ii},Fi={tokenize:Oi,partial:!0};function Ii(e,n,t){const r=this;return i;function i(u){return e.enter("codeIndented"),V(e,l,"linePrefix",5)(u)}function l(u){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?o(u):t(u)}function o(u){return u===null?s(u):I(u)?e.attempt(Fi,o,s)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||I(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),a)}function s(u){return e.exit("codeIndented"),n(u)}}function Oi(e,n,t){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?t(o):I(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):V(e,l,"linePrefix",5)(o)}function l(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?n(o):I(o)?i(o):t(o)}}const vi={name:"codeText",tokenize:zi,resolve:Li,previous:Di};function Li(e){let n=e.length-4,t=3,r,i;if((e[t][1].type==="lineEnding"||e[t][1].type==="space")&&(e[n][1].type==="lineEnding"||e[n][1].type==="space")){for(r=t;++r<n;)if(e[r][1].type==="codeTextData"){e[t][1].type="codeTextPadding",e[n][1].type="codeTextPadding",t+=2,n-=2;break}}for(r=t-1,n++;++r<=n;)i===void 0?r!==n&&e[r][1].type!=="lineEnding"&&(i=r):(r===n||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),n-=r-i-2,r=i+2),i=void 0);return e}function Di(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function zi(e,n,t){let r=0,i,l;return o;function o(m){return e.enter("codeText"),e.enter("codeTextSequence"),a(m)}function a(m){return m===96?(e.consume(m),r++,a):(e.exit("codeTextSequence"),s(m))}function s(m){return m===null?t(m):m===32?(e.enter("space"),e.consume(m),e.exit("space"),s):m===96?(l=e.enter("codeTextSequence"),i=0,c(m)):I(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),s):(e.enter("codeTextData"),u(m))}function u(m){return m===null||m===32||m===96||I(m)?(e.exit("codeTextData"),s(m)):(e.consume(m),u)}function c(m){return m===96?(e.consume(m),i++,c):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),n(m)):(l.type="codeTextData",u(m))}}function jt(e){const n={};let t=-1,r,i,l,o,a,s,u;for(;++t<e.length;){for(;t in n;)t=n[t];if(r=e[t],t&&r[1].type==="chunkFlow"&&e[t-1][1].type==="listItemPrefix"&&(s=r[1]._tokenizer.events,l=0,l<s.length&&s[l][1].type==="lineEndingBlank"&&(l+=2),l<s.length&&s[l][1].type==="content"))for(;++l<s.length&&s[l][1].type!=="content";)s[l][1].type==="chunkText"&&(s[l][1]._isInFirstContentOfListItem=!0,l++);if(r[0]==="enter")r[1].contentType&&(Object.assign(n,Ri(e,t)),t=n[t],u=!0);else if(r[1]._container){for(l=t,i=void 0;l--&&(o=e[l],o[1].type==="lineEnding"||o[1].type==="lineEndingBlank");)o[0]==="enter"&&(i&&(e[i][1].type="lineEndingBlank"),o[1].type="lineEnding",i=l);i&&(r[1].end=Object.assign({},e[i][1].start),a=e.slice(i,t),a.unshift(r),fe(e,i,t-i+1,a))}}return!u}function Ri(e,n){const t=e[n][1],r=e[n][2];let i=n-1;const l=[],o=t._tokenizer||r.parser[t.contentType](t.start),a=o.events,s=[],u={};let c,m,d=-1,h=t,b=0,x=0;const C=[x];for(;h;){for(;e[++i][1]!==h;);l.push(i),h._tokenizer||(c=r.sliceStream(h),h.next||c.push(null),m&&o.defineSkip(h.start),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(c),h._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),m=h,h=h.next}for(h=t;++d<a.length;)a[d][0]==="exit"&&a[d-1][0]==="enter"&&a[d][1].type===a[d-1][1].type&&a[d][1].start.line!==a[d][1].end.line&&(x=d+1,C.push(x),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(o.events=[],h?(h._tokenizer=void 0,h.previous=void 0):C.pop(),d=C.length;d--;){const k=a.slice(C[d],C[d+1]),L=l.pop();s.unshift([L,L+k.length-1]),fe(e,L,2,k)}for(d=-1;++d<s.length;)u[b+s[d][0]]=b+s[d][1],b+=s[d][1]-s[d][0]-1;return u}const Bi={tokenize:_i,resolve:Mi},Ni={tokenize:ji,partial:!0};function Mi(e){return jt(e),e}function _i(e,n){let t;return r;function r(a){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),i(a)}function i(a){return a===null?l(a):I(a)?e.check(Ni,o,l)(a):(e.consume(a),i)}function l(a){return e.exit("chunkContent"),e.exit("content"),n(a)}function o(a){return e.consume(a),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,i}}function ji(e,n,t){const r=this;return i;function i(o){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),V(e,l,"linePrefix")}function l(o){if(o===null||I(o))return t(o);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?n(o):e.interrupt(r.parser.constructs.flow,t,n)(o)}}function Ht(e,n,t,r,i,l,o,a,s){const u=s||Number.POSITIVE_INFINITY;let c=0;return m;function m(k){return k===60?(e.enter(r),e.enter(i),e.enter(l),e.consume(k),e.exit(l),d):k===null||k===32||k===41||bn(k)?t(k):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),x(k))}function d(k){return k===62?(e.enter(l),e.consume(k),e.exit(l),e.exit(i),e.exit(r),n):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(k))}function h(k){return k===62?(e.exit("chunkString"),e.exit(a),d(k)):k===null||k===60||I(k)?t(k):(e.consume(k),k===92?b:h)}function b(k){return k===60||k===62||k===92?(e.consume(k),h):h(k)}function x(k){return!c&&(k===null||k===41||Z(k))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),n(k)):c<u&&k===40?(e.consume(k),c++,x):k===41?(e.consume(k),c--,x):k===null||k===32||k===40||bn(k)?t(k):(e.consume(k),k===92?C:x)}function C(k){return k===40||k===41||k===92?(e.consume(k),x):x(k)}}function Ut(e,n,t,r,i,l){const o=this;let a=0,s;return u;function u(h){return e.enter(r),e.enter(i),e.consume(h),e.exit(i),e.enter(l),c}function c(h){return a>999||h===null||h===91||h===93&&!s||h===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?t(h):h===93?(e.exit(l),e.enter(i),e.consume(h),e.exit(i),e.exit(r),n):I(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),m(h))}function m(h){return h===null||h===91||h===93||I(h)||a++>999?(e.exit("chunkString"),c(h)):(e.consume(h),s||(s=!N(h)),h===92?d:m)}function d(h){return h===91||h===92||h===93?(e.consume(h),a++,m):m(h)}}function Vt(e,n,t,r,i,l){let o;return a;function a(d){return d===34||d===39||d===40?(e.enter(r),e.enter(i),e.consume(d),e.exit(i),o=d===40?41:d,s):t(d)}function s(d){return d===o?(e.enter(i),e.consume(d),e.exit(i),e.exit(r),n):(e.enter(l),u(d))}function u(d){return d===o?(e.exit(l),s(o)):d===null?t(d):I(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),V(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(d){return d===o||d===null||I(d)?(e.exit("chunkString"),u(d)):(e.consume(d),d===92?m:c)}function m(d){return d===o||d===92?(e.consume(d),c):c(d)}}function Me(e,n){let t;return r;function r(i){return I(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t=!0,r):N(i)?V(e,r,t?"linePrefix":"lineSuffix")(i):n(i)}}function Ie(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Hi={name:"definition",tokenize:Vi},Ui={tokenize:$i,partial:!0};function Vi(e,n,t){const r=this;let i;return l;function l(h){return e.enter("definition"),o(h)}function o(h){return Ut.call(r,e,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return i=Ie(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),s):t(h)}function s(h){return Z(h)?Me(e,u)(h):u(h)}function u(h){return Ht(e,c,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function c(h){return e.attempt(Ui,m,m)(h)}function m(h){return N(h)?V(e,d,"whitespace")(h):d(h)}function d(h){return h===null||I(h)?(e.exit("definition"),r.parser.defined.push(i),n(h)):t(h)}}function $i(e,n,t){return r;function r(a){return Z(a)?Me(e,i)(a):t(a)}function i(a){return Vt(e,l,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function l(a){return N(a)?V(e,o,"whitespace")(a):o(a)}function o(a){return a===null||I(a)?n(a):t(a)}}const qi={name:"hardBreakEscape",tokenize:Wi};function Wi(e,n,t){return r;function r(l){return e.enter("hardBreakEscape"),e.consume(l),i}function i(l){return I(l)?(e.exit("hardBreakEscape"),n(l)):t(l)}}const Xi={name:"headingAtx",tokenize:Yi,resolve:Qi};function Qi(e,n){let t=e.length-2,r=3,i,l;return e[r][1].type==="whitespace"&&(r+=2),t-2>r&&e[t][1].type==="whitespace"&&(t-=2),e[t][1].type==="atxHeadingSequence"&&(r===t-1||t-4>r&&e[t-2][1].type==="whitespace")&&(t-=r+1===t?2:4),t>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[t][1].end},l={type:"chunkText",start:e[r][1].start,end:e[t][1].end,contentType:"text"},fe(e,r,t-r+1,[["enter",i,n],["enter",l,n],["exit",l,n],["exit",i,n]])),e}function Yi(e,n,t){let r=0;return i;function i(c){return e.enter("atxHeading"),l(c)}function l(c){return e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&r++<6?(e.consume(c),o):c===null||Z(c)?(e.exit("atxHeadingSequence"),a(c)):t(c)}function a(c){return c===35?(e.enter("atxHeadingSequence"),s(c)):c===null||I(c)?(e.exit("atxHeading"),n(c)):N(c)?V(e,a,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function s(c){return c===35?(e.consume(c),s):(e.exit("atxHeadingSequence"),a(c))}function u(c){return c===null||c===35||Z(c)?(e.exit("atxHeadingText"),a(c)):(e.consume(c),u)}}const Ki=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ft=["pre","script","style","textarea"],Gi={name:"htmlFlow",tokenize:nl,resolveTo:el,concrete:!0},Ji={tokenize:rl,partial:!0},Zi={tokenize:tl,partial:!0};function el(e){let n=e.length;for(;n--&&!(e[n][0]==="enter"&&e[n][1].type==="htmlFlow"););return n>1&&e[n-2][1].type==="linePrefix"&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2)),e}function nl(e,n,t){const r=this;let i,l,o,a,s;return u;function u(f){return c(f)}function c(f){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(f),m}function m(f){return f===33?(e.consume(f),d):f===47?(e.consume(f),l=!0,x):f===63?(e.consume(f),i=3,r.interrupt?n:p):he(f)?(e.consume(f),o=String.fromCharCode(f),C):t(f)}function d(f){return f===45?(e.consume(f),i=2,h):f===91?(e.consume(f),i=5,a=0,b):he(f)?(e.consume(f),i=4,r.interrupt?n:p):t(f)}function h(f){return f===45?(e.consume(f),r.interrupt?n:p):t(f)}function b(f){const se="CDATA[";return f===se.charCodeAt(a++)?(e.consume(f),a===se.length?r.interrupt?n:P:b):t(f)}function x(f){return he(f)?(e.consume(f),o=String.fromCharCode(f),C):t(f)}function C(f){if(f===null||f===47||f===62||Z(f)){const se=f===47,Ee=o.toLowerCase();return!se&&!l&&ft.includes(Ee)?(i=1,r.interrupt?n(f):P(f)):Ki.includes(o.toLowerCase())?(i=6,se?(e.consume(f),k):r.interrupt?n(f):P(f)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?t(f):l?L(f):E(f))}return f===45||te(f)?(e.consume(f),o+=String.fromCharCode(f),C):t(f)}function k(f){return f===62?(e.consume(f),r.interrupt?n:P):t(f)}function L(f){return N(f)?(e.consume(f),L):Q(f)}function E(f){return f===47?(e.consume(f),Q):f===58||f===95||he(f)?(e.consume(f),z):N(f)?(e.consume(f),E):Q(f)}function z(f){return f===45||f===46||f===58||f===95||te(f)?(e.consume(f),z):R(f)}function R(f){return f===61?(e.consume(f),g):N(f)?(e.consume(f),R):E(f)}function g(f){return f===null||f===60||f===61||f===62||f===96?t(f):f===34||f===39?(e.consume(f),s=f,T):N(f)?(e.consume(f),g):D(f)}function T(f){return f===s?(e.consume(f),s=null,M):f===null||I(f)?t(f):(e.consume(f),T)}function D(f){return f===null||f===34||f===39||f===47||f===60||f===61||f===62||f===96||Z(f)?R(f):(e.consume(f),D)}function M(f){return f===47||f===62||N(f)?E(f):t(f)}function Q(f){return f===62?(e.consume(f),A):t(f)}function A(f){return f===null||I(f)?P(f):N(f)?(e.consume(f),A):t(f)}function P(f){return f===45&&i===2?(e.consume(f),G):f===60&&i===1?(e.consume(f),Y):f===62&&i===4?(e.consume(f),ue):f===63&&i===3?(e.consume(f),p):f===93&&i===5?(e.consume(f),me):I(f)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(Ji,de,$)(f)):f===null||I(f)?(e.exit("htmlFlowData"),$(f)):(e.consume(f),P)}function $(f){return e.check(Zi,q,de)(f)}function q(f){return e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),B}function B(f){return f===null||I(f)?$(f):(e.enter("htmlFlowData"),P(f))}function G(f){return f===45?(e.consume(f),p):P(f)}function Y(f){return f===47?(e.consume(f),o="",ae):P(f)}function ae(f){if(f===62){const se=o.toLowerCase();return ft.includes(se)?(e.consume(f),ue):P(f)}return he(f)&&o.length<8?(e.consume(f),o+=String.fromCharCode(f),ae):P(f)}function me(f){return f===93?(e.consume(f),p):P(f)}function p(f){return f===62?(e.consume(f),ue):f===45&&i===2?(e.consume(f),p):P(f)}function ue(f){return f===null||I(f)?(e.exit("htmlFlowData"),de(f)):(e.consume(f),ue)}function de(f){return e.exit("htmlFlow"),n(f)}}function tl(e,n,t){const r=this;return i;function i(o){return I(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),l):t(o)}function l(o){return r.parser.lazy[r.now().line]?t(o):n(o)}}function rl(e,n,t){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Xe,n,t)}}const il={name:"htmlText",tokenize:ll};function ll(e,n,t){const r=this;let i,l,o;return a;function a(p){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(p),s}function s(p){return p===33?(e.consume(p),u):p===47?(e.consume(p),R):p===63?(e.consume(p),E):he(p)?(e.consume(p),D):t(p)}function u(p){return p===45?(e.consume(p),c):p===91?(e.consume(p),l=0,b):he(p)?(e.consume(p),L):t(p)}function c(p){return p===45?(e.consume(p),h):t(p)}function m(p){return p===null?t(p):p===45?(e.consume(p),d):I(p)?(o=m,Y(p)):(e.consume(p),m)}function d(p){return p===45?(e.consume(p),h):m(p)}function h(p){return p===62?G(p):p===45?d(p):m(p)}function b(p){const ue="CDATA[";return p===ue.charCodeAt(l++)?(e.consume(p),l===ue.length?x:b):t(p)}function x(p){return p===null?t(p):p===93?(e.consume(p),C):I(p)?(o=x,Y(p)):(e.consume(p),x)}function C(p){return p===93?(e.consume(p),k):x(p)}function k(p){return p===62?G(p):p===93?(e.consume(p),k):x(p)}function L(p){return p===null||p===62?G(p):I(p)?(o=L,Y(p)):(e.consume(p),L)}function E(p){return p===null?t(p):p===63?(e.consume(p),z):I(p)?(o=E,Y(p)):(e.consume(p),E)}function z(p){return p===62?G(p):E(p)}function R(p){return he(p)?(e.consume(p),g):t(p)}function g(p){return p===45||te(p)?(e.consume(p),g):T(p)}function T(p){return I(p)?(o=T,Y(p)):N(p)?(e.consume(p),T):G(p)}function D(p){return p===45||te(p)?(e.consume(p),D):p===47||p===62||Z(p)?M(p):t(p)}function M(p){return p===47?(e.consume(p),G):p===58||p===95||he(p)?(e.consume(p),Q):I(p)?(o=M,Y(p)):N(p)?(e.consume(p),M):G(p)}function Q(p){return p===45||p===46||p===58||p===95||te(p)?(e.consume(p),Q):A(p)}function A(p){return p===61?(e.consume(p),P):I(p)?(o=A,Y(p)):N(p)?(e.consume(p),A):M(p)}function P(p){return p===null||p===60||p===61||p===62||p===96?t(p):p===34||p===39?(e.consume(p),i=p,$):I(p)?(o=P,Y(p)):N(p)?(e.consume(p),P):(e.consume(p),q)}function $(p){return p===i?(e.consume(p),i=void 0,B):p===null?t(p):I(p)?(o=$,Y(p)):(e.consume(p),$)}function q(p){return p===null||p===34||p===39||p===60||p===61||p===96?t(p):p===47||p===62||Z(p)?M(p):(e.consume(p),q)}function B(p){return p===47||p===62||Z(p)?M(p):t(p)}function G(p){return p===62?(e.consume(p),e.exit("htmlTextData"),e.exit("htmlText"),n):t(p)}function Y(p){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),ae}function ae(p){return N(p)?V(e,me,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(p):me(p)}function me(p){return e.enter("htmlTextData"),o(p)}}const In={name:"labelEnd",tokenize:pl,resolveTo:cl,resolveAll:sl},ol={tokenize:hl},al={tokenize:fl},ul={tokenize:ml};function sl(e){let n=-1;for(;++n<e.length;){const t=e[n][1];(t.type==="labelImage"||t.type==="labelLink"||t.type==="labelEnd")&&(e.splice(n+1,t.type==="labelImage"?4:2),t.type="data",n++)}return e}function cl(e,n){let t=e.length,r=0,i,l,o,a;for(;t--;)if(i=e[t][1],l){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[t][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(o){if(e[t][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(l=t,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(o=t);const s={type:e[l][1].type==="labelLink"?"link":"image",start:Object.assign({},e[l][1].start),end:Object.assign({},e[e.length-1][1].end)},u={type:"label",start:Object.assign({},e[l][1].start),end:Object.assign({},e[o][1].end)},c={type:"labelText",start:Object.assign({},e[l+r+2][1].end),end:Object.assign({},e[o-2][1].start)};return a=[["enter",s,n],["enter",u,n]],a=re(a,e.slice(l+1,l+r+3)),a=re(a,[["enter",c,n]]),a=re(a,Tn(n.parser.constructs.insideSpan.null,e.slice(l+r+4,o-3),n)),a=re(a,[["exit",c,n],e[o-2],e[o-1],["exit",u,n]]),a=re(a,e.slice(o+1)),a=re(a,[["exit",s,n]]),fe(e,l,e.length,a),e}function pl(e,n,t){const r=this;let i=r.events.length,l,o;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){l=r.events[i][1];break}return a;function a(d){return l?l._inactive?m(d):(o=r.parser.defined.includes(Ie(r.sliceSerialize({start:l.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(d),e.exit("labelMarker"),e.exit("labelEnd"),s):t(d)}function s(d){return d===40?e.attempt(ol,c,o?c:m)(d):d===91?e.attempt(al,c,o?u:m)(d):o?c(d):m(d)}function u(d){return e.attempt(ul,c,m)(d)}function c(d){return n(d)}function m(d){return l._balanced=!0,t(d)}}function hl(e,n,t){return r;function r(m){return e.enter("resource"),e.enter("resourceMarker"),e.consume(m),e.exit("resourceMarker"),i}function i(m){return Z(m)?Me(e,l)(m):l(m)}function l(m){return m===41?c(m):Ht(e,o,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(m)}function o(m){return Z(m)?Me(e,s)(m):c(m)}function a(m){return t(m)}function s(m){return m===34||m===39||m===40?Vt(e,u,t,"resourceTitle","resourceTitleMarker","resourceTitleString")(m):c(m)}function u(m){return Z(m)?Me(e,c)(m):c(m)}function c(m){return m===41?(e.enter("resourceMarker"),e.consume(m),e.exit("resourceMarker"),e.exit("resource"),n):t(m)}}function fl(e,n,t){const r=this;return i;function i(a){return Ut.call(r,e,l,o,"reference","referenceMarker","referenceString")(a)}function l(a){return r.parser.defined.includes(Ie(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?n(a):t(a)}function o(a){return t(a)}}function ml(e,n,t){return r;function r(l){return e.enter("reference"),e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),i}function i(l){return l===93?(e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),e.exit("reference"),n):t(l)}}const dl={name:"labelStartImage",tokenize:gl,resolveAll:In.resolveAll};function gl(e,n,t){const r=this;return i;function i(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),l}function l(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),o):t(a)}function o(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?t(a):n(a)}}const yl={name:"labelStartLink",tokenize:xl,resolveAll:In.resolveAll};function xl(e,n,t){const r=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),l}function l(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?t(o):n(o)}}const dn={name:"lineEnding",tokenize:kl};function kl(e,n){return t;function t(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),V(e,n,"linePrefix")}}const qe={name:"thematicBreak",tokenize:wl};function wl(e,n,t){let r=0,i;return l;function l(u){return e.enter("thematicBreak"),o(u)}function o(u){return i=u,a(u)}function a(u){return u===i?(e.enter("thematicBreakSequence"),s(u)):r>=3&&(u===null||I(u))?(e.exit("thematicBreak"),n(u)):t(u)}function s(u){return u===i?(e.consume(u),r++,s):(e.exit("thematicBreakSequence"),N(u)?V(e,a,"whitespace")(u):a(u))}}const J={name:"list",tokenize:Cl,continuation:{tokenize:El},exit:Pl},bl={tokenize:Tl,partial:!0},Sl={tokenize:Al,partial:!0};function Cl(e,n,t){const r=this,i=r.events[r.events.length-1];let l=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(h){const b=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:Sn(h)){if(r.containerState.type||(r.containerState.type=b,e.enter(b,{_container:!0})),b==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(qe,t,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(h)}return t(h)}function s(h){return Sn(h)&&++o<10?(e.consume(h),s):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):t(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(Xe,r.interrupt?t:c,e.attempt(bl,d,m))}function c(h){return r.containerState.initialBlankLine=!0,l++,d(h)}function m(h){return N(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),d):t(h)}function d(h){return r.containerState.size=l+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(h)}}function El(e,n,t){const r=this;return r.containerState._closeFlow=void 0,e.check(Xe,i,l);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,V(e,n,"listItemIndent",r.containerState.size+1)(a)}function l(a){return r.containerState.furtherBlankLines||!N(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Sl,n,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,V(e,e.attempt(J,n,t),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function Al(e,n,t){const r=this;return V(e,i,"listItemIndent",r.containerState.size+1);function i(l){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?n(l):t(l)}}function Pl(e){e.exit(this.containerState.type)}function Tl(e,n,t){const r=this;return V(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(l){const o=r.events[r.events.length-1];return!N(l)&&o&&o[1].type==="listItemPrefixWhitespace"?n(l):t(l)}}const mt={name:"setextUnderline",tokenize:Il,resolveTo:Fl};function Fl(e,n){let t=e.length,r,i,l;for(;t--;)if(e[t][0]==="enter"){if(e[t][1].type==="content"){r=t;break}e[t][1].type==="paragraph"&&(i=t)}else e[t][1].type==="content"&&e.splice(t,1),!l&&e[t][1].type==="definition"&&(l=t);const o={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",l?(e.splice(i,0,["enter",o,n]),e.splice(l+1,0,["exit",e[r][1],n]),e[r][1].end=Object.assign({},e[l][1].end)):e[r][1]=o,e.push(["exit",o,n]),e}function Il(e,n,t){const r=this;let i;return l;function l(u){let c=r.events.length,m;for(;c--;)if(r.events[c][1].type!=="lineEnding"&&r.events[c][1].type!=="linePrefix"&&r.events[c][1].type!=="content"){m=r.events[c][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||m)?(e.enter("setextHeadingLine"),i=u,o(u)):t(u)}function o(u){return e.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===i?(e.consume(u),a):(e.exit("setextHeadingLineSequence"),N(u)?V(e,s,"lineSuffix")(u):s(u))}function s(u){return u===null||I(u)?(e.exit("setextHeadingLine"),n(u)):t(u)}}const Ol={tokenize:vl};function vl(e){const n=this,t=e.attempt(Xe,r,e.attempt(this.parser.constructs.flowInitial,i,V(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Bi,i)),"linePrefix")));return t;function r(l){if(l===null){e.consume(l);return}return e.enter("lineEndingBlank"),e.consume(l),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t}function i(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),n.currentConstruct=void 0,t}}const Ll={resolveAll:qt()},Dl=$t("string"),zl=$t("text");function $t(e){return{tokenize:n,resolveAll:qt(e==="text"?Rl:void 0)};function n(t){const r=this,i=this.parser.constructs[e],l=t.attempt(i,o,a);return o;function o(c){return u(c)?l(c):a(c)}function a(c){if(c===null){t.consume(c);return}return t.enter("data"),t.consume(c),s}function s(c){return u(c)?(t.exit("data"),l(c)):(t.consume(c),s)}function u(c){if(c===null)return!0;const m=i[c];let d=-1;if(m)for(;++d<m.length;){const h=m[d];if(!h.previous||h.previous.call(r,r.previous))return!0}return!1}}}function qt(e){return n;function n(t,r){let i=-1,l;for(;++i<=t.length;)l===void 0?t[i]&&t[i][1].type==="data"&&(l=i,i++):(!t[i]||t[i][1].type!=="data")&&(i!==l+2&&(t[l][1].end=t[i-1][1].end,t.splice(l+2,i-l-2),i=l+2),l=void 0);return e?e(t,r):t}}function Rl(e,n){let t=0;for(;++t<=e.length;)if((t===e.length||e[t][1].type==="lineEnding")&&e[t-1][1].type==="data"){const r=e[t-1][1],i=n.sliceStream(r);let l=i.length,o=-1,a=0,s;for(;l--;){const u=i[l];if(typeof u=="string"){for(o=u.length;u.charCodeAt(o-1)===32;)a++,o--;if(o)break;o=-1}else if(u===-2)s=!0,a++;else if(u!==-1){l++;break}}if(a){const u={type:t===e.length||s||a<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-a,offset:r.end.offset-a,_index:r.start._index+l,_bufferIndex:l?o:r.start._bufferIndex+o},end:Object.assign({},r.end)};r.end=Object.assign({},u.start),r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(t,0,["enter",u,n],["exit",u,n]),t+=2)}t++}return e}function Bl(e,n,t){let r=Object.assign(t?Object.assign({},t):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},l=[];let o=[],a=[];const s={consume:L,enter:E,exit:z,attempt:T(R),check:T(g),interrupt:T(g,{interrupt:!0})},u={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:h,sliceSerialize:d,now:b,defineSkip:x,write:m};let c=n.tokenize.call(u,s);return n.resolveAll&&l.push(n),u;function m(A){return o=re(o,A),C(),o[o.length-1]!==null?[]:(D(n,0),u.events=Tn(l,u.events,u),u.events)}function d(A,P){return Ml(h(A),P)}function h(A){return Nl(o,A)}function b(){const{line:A,column:P,offset:$,_index:q,_bufferIndex:B}=r;return{line:A,column:P,offset:$,_index:q,_bufferIndex:B}}function x(A){i[A.line]=A.column,Q()}function C(){let A;for(;r._index<o.length;){const P=o[r._index];if(typeof P=="string")for(A=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===A&&r._bufferIndex<P.length;)k(P.charCodeAt(r._bufferIndex));else k(P)}}function k(A){c=c(A)}function L(A){I(A)?(r.line++,r.column=1,r.offset+=A===-3?2:1,Q()):A!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=A}function E(A,P){const $=P||{};return $.type=A,$.start=b(),u.events.push(["enter",$,u]),a.push($),$}function z(A){const P=a.pop();return P.end=b(),u.events.push(["exit",P,u]),P}function R(A,P){D(A,P.from)}function g(A,P){P.restore()}function T(A,P){return $;function $(q,B,G){let Y,ae,me,p;return Array.isArray(q)?de(q):"tokenize"in q?de([q]):ue(q);function ue(K){return Ae;function Ae(xe){const Pe=xe!==null&&K[xe],Te=xe!==null&&K.null,on=[...Array.isArray(Pe)?Pe:Pe?[Pe]:[],...Array.isArray(Te)?Te:Te?[Te]:[]];return de(on)(xe)}}function de(K){return Y=K,ae=0,K.length===0?G:f(K[ae])}function f(K){return Ae;function Ae(xe){return p=M(),me=K,K.partial||(u.currentConstruct=K),K.name&&u.parser.constructs.disable.null.includes(K.name)?Ee():K.tokenize.call(P?Object.assign(Object.create(u),P):u,s,se,Ee)(xe)}}function se(K){return A(me,p),B}function Ee(K){return p.restore(),++ae<Y.length?f(Y[ae]):G}}}function D(A,P){A.resolveAll&&!l.includes(A)&&l.push(A),A.resolve&&fe(u.events,P,u.events.length-P,A.resolve(u.events.slice(P),u)),A.resolveTo&&(u.events=A.resolveTo(u.events,u))}function M(){const A=b(),P=u.previous,$=u.currentConstruct,q=u.events.length,B=Array.from(a);return{restore:G,from:q};function G(){r=A,u.previous=P,u.currentConstruct=$,u.events.length=q,a=B,Q()}}function Q(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Nl(e,n){const t=n.start._index,r=n.start._bufferIndex,i=n.end._index,l=n.end._bufferIndex;let o;if(t===i)o=[e[t].slice(r,l)];else{if(o=e.slice(t,i),r>-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}l>0&&o.push(e[i].slice(0,l))}return o}function Ml(e,n){let t=-1;const r=[];let i;for(;++t<e.length;){const l=e[t];let o;if(typeof l=="string")o=l;else switch(l){case-5:{o="\r";break}case-4:{o=`
7
+ `;break}case-3:{o=`\r
8
+ `;break}case-2:{o=n?" ":" ";break}case-1:{if(!n&&i)continue;o=" ";break}default:o=String.fromCharCode(l)}i=l===-2,r.push(o)}return r.join("")}const _l={42:J,43:J,45:J,48:J,49:J,50:J,51:J,52:J,53:J,54:J,55:J,56:J,57:J,62:Nt},jl={91:Hi},Hl={[-2]:mn,[-1]:mn,32:mn},Ul={35:Xi,42:qe,45:[mt,qe],60:Gi,61:mt,95:qe,96:ht,126:ht},Vl={38:_t,92:Mt},$l={[-5]:dn,[-4]:dn,[-3]:dn,33:dl,38:_t,42:Cn,60:[xi,il],91:yl,92:[qi,Mt],93:In,95:Cn,96:vi},ql={null:[Cn,Ll]},Wl={null:[42,95]},Xl={null:[]},Ql=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Wl,contentInitial:jl,disable:Xl,document:_l,flow:Ul,flowInitial:Hl,insideSpan:ql,string:Vl,text:$l},Symbol.toStringTag,{value:"Module"}));function Yl(e){const t=ti([Ql,...(e||{}).extensions||[]]),r={defined:[],lazy:{},constructs:t,content:i(pi),document:i(fi),flow:i(Ol),string:i(Dl),text:i(zl)};return r;function i(l){return o;function o(a){return Bl(r,l,a)}}}const dt=/[\0\t\n\r]/g;function Kl(){let e=1,n="",t=!0,r;return i;function i(l,o,a){const s=[];let u,c,m,d,h;for(l=n+l.toString(o),m=0,n="",t&&(l.charCodeAt(0)===65279&&m++,t=void 0);m<l.length;){if(dt.lastIndex=m,u=dt.exec(l),d=u&&u.index!==void 0?u.index:l.length,h=l.charCodeAt(d),!u){n=l.slice(m);break}if(h===10&&m===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),m<d&&(s.push(l.slice(m,d)),e+=d-m),h){case 0:{s.push(65533),e++;break}case 9:{for(c=Math.ceil(e/4)*4,s.push(-2);e++<c;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:r=!0,e=1}m=d+1}return a&&(r&&s.push(-5),n&&s.push(n),s.push(null)),s}}function Gl(e){for(;!jt(e););return e}function Wt(e,n){const t=Number.parseInt(e,n);return t<9||t===11||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Jl=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Zl(e){return e.replace(Jl,eo)}function eo(e,n,t){if(n)return n;if(t.charCodeAt(0)===35){const i=t.charCodeAt(1),l=i===120||i===88;return Wt(t.slice(l?2:1),l?16:10)}return Fn(t)||e}const Xt={}.hasOwnProperty,no=function(e,n,t){return typeof n!="string"&&(t=n,n=void 0),to(t)(Gl(Yl(t).document().write(Kl()(e,n,!0))))};function to(e){const n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Un),autolinkProtocol:A,autolinkEmail:A,atxHeading:a(_n),blockQuote:a(on),characterEscape:A,characterReference:A,codeFenced:a(Mn),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:a(Mn,s),codeText:a(kr,s),codeTextData:A,data:A,codeFlowValue:A,definition:a(wr),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:a(br),hardBreakEscape:a(jn),hardBreakTrailing:a(jn),htmlFlow:a(Hn,s),htmlFlowData:A,htmlText:a(Hn,s),htmlTextData:A,image:a(Sr),label:s,link:a(Un),listItem:a(Cr),listItemValue:b,listOrdered:a(Vn,h),listUnordered:a(Vn),paragraph:a(Er),reference:Ee,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:a(_n),strong:a(Ar),thematicBreak:a(Tr)},exit:{atxHeading:c(),atxHeadingSequence:T,autolink:c(),autolinkEmail:Te,autolinkProtocol:Pe,blockQuote:c(),characterEscapeValue:P,characterReferenceMarkerHexadecimal:Ae,characterReferenceMarkerNumeric:Ae,characterReferenceValue:xe,codeFenced:c(L),codeFencedFence:k,codeFencedFenceInfo:x,codeFencedFenceMeta:C,codeFlowValue:P,codeIndented:c(E),codeText:c(Y),codeTextData:P,data:P,definition:c(),definitionDestinationString:g,definitionLabelString:z,definitionTitleString:R,emphasis:c(),hardBreakEscape:c(q),hardBreakTrailing:c(q),htmlFlow:c(B),htmlFlowData:P,htmlText:c(G),htmlTextData:P,image:c(me),label:ue,labelText:p,lineEnding:$,link:c(ae),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:K,resourceDestinationString:de,resourceTitleString:f,resource:se,setextHeading:c(Q),setextHeadingLineSequence:M,setextHeadingText:D,strong:c(),thematicBreak:c()}};Qt(n,(e||{}).mdastExtensions||[]);const t={};return r;function r(y){let S={type:"root",children:[]};const F={stack:[S],tokenStack:[],config:n,enter:u,exit:m,buffer:s,resume:d,setData:l,getData:o},j=[];let H=-1;for(;++H<y.length;)if(y[H][1].type==="listOrdered"||y[H][1].type==="listUnordered")if(y[H][0]==="enter")j.push(H);else{const ce=j.pop();H=i(y,ce,H)}for(H=-1;++H<y.length;){const ce=n[y[H][0]];Xt.call(ce,y[H][1].type)&&ce[y[H][1].type].call(Object.assign({sliceSerialize:y[H][2].sliceSerialize},F),y[H][1])}if(F.tokenStack.length>0){const ce=F.tokenStack[F.tokenStack.length-1];(ce[1]||gt).call(F,void 0,ce[0])}for(S.position={start:we(y.length>0?y[0][1].start:{line:1,column:1,offset:0}),end:we(y.length>0?y[y.length-2][1].end:{line:1,column:1,offset:0})},H=-1;++H<n.transforms.length;)S=n.transforms[H](S)||S;return S}function i(y,S,F){let j=S-1,H=-1,ce=!1,ke,ge,De,ze;for(;++j<=F;){const W=y[j];if(W[1].type==="listUnordered"||W[1].type==="listOrdered"||W[1].type==="blockQuote"?(W[0]==="enter"?H++:H--,ze=void 0):W[1].type==="lineEndingBlank"?W[0]==="enter"&&(ke&&!ze&&!H&&!De&&(De=j),ze=void 0):W[1].type==="linePrefix"||W[1].type==="listItemValue"||W[1].type==="listItemMarker"||W[1].type==="listItemPrefix"||W[1].type==="listItemPrefixWhitespace"||(ze=void 0),!H&&W[0]==="enter"&&W[1].type==="listItemPrefix"||H===-1&&W[0]==="exit"&&(W[1].type==="listUnordered"||W[1].type==="listOrdered")){if(ke){let an=j;for(ge=void 0;an--;){const ye=y[an];if(ye[1].type==="lineEnding"||ye[1].type==="lineEndingBlank"){if(ye[0]==="exit")continue;ge&&(y[ge][1].type="lineEndingBlank",ce=!0),ye[1].type="lineEnding",ge=an}else if(!(ye[1].type==="linePrefix"||ye[1].type==="blockQuotePrefix"||ye[1].type==="blockQuotePrefixWhitespace"||ye[1].type==="blockQuoteMarker"||ye[1].type==="listItemIndent"))break}De&&(!ge||De<ge)&&(ke._spread=!0),ke.end=Object.assign({},ge?y[ge][1].start:W[1].end),y.splice(ge||j,0,["exit",ke,W[2]]),j++,F++}W[1].type==="listItemPrefix"&&(ke={type:"listItem",_spread:!1,start:Object.assign({},W[1].start),end:void 0},y.splice(j,0,["enter",ke,W[2]]),j++,F++,De=void 0,ze=!0)}}return y[S][1]._spread=ce,F}function l(y,S){t[y]=S}function o(y){return t[y]}function a(y,S){return F;function F(j){u.call(this,y(j),j),S&&S.call(this,j)}}function s(){this.stack.push({type:"fragment",children:[]})}function u(y,S,F){return this.stack[this.stack.length-1].children.push(y),this.stack.push(y),this.tokenStack.push([S,F]),y.position={start:we(S.start)},y}function c(y){return S;function S(F){y&&y.call(this,F),m.call(this,F)}}function m(y,S){const F=this.stack.pop(),j=this.tokenStack.pop();if(j)j[0].type!==y.type&&(S?S.call(this,y,j[0]):(j[1]||gt).call(this,y,j[0]));else throw new Error("Cannot close `"+y.type+"` ("+Ne({start:y.start,end:y.end})+"): it’s not open");return F.position.end=we(y.end),F}function d(){return ei(this.stack.pop())}function h(){l("expectingFirstListItemValue",!0)}function b(y){if(o("expectingFirstListItemValue")){const S=this.stack[this.stack.length-2];S.start=Number.parseInt(this.sliceSerialize(y),10),l("expectingFirstListItemValue")}}function x(){const y=this.resume(),S=this.stack[this.stack.length-1];S.lang=y}function C(){const y=this.resume(),S=this.stack[this.stack.length-1];S.meta=y}function k(){o("flowCodeInside")||(this.buffer(),l("flowCodeInside",!0))}function L(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),l("flowCodeInside")}function E(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y.replace(/(\r?\n|\r)$/g,"")}function z(y){const S=this.resume(),F=this.stack[this.stack.length-1];F.label=S,F.identifier=Ie(this.sliceSerialize(y)).toLowerCase()}function R(){const y=this.resume(),S=this.stack[this.stack.length-1];S.title=y}function g(){const y=this.resume(),S=this.stack[this.stack.length-1];S.url=y}function T(y){const S=this.stack[this.stack.length-1];if(!S.depth){const F=this.sliceSerialize(y).length;S.depth=F}}function D(){l("setextHeadingSlurpLineEnding",!0)}function M(y){const S=this.stack[this.stack.length-1];S.depth=this.sliceSerialize(y).charCodeAt(0)===61?1:2}function Q(){l("setextHeadingSlurpLineEnding")}function A(y){const S=this.stack[this.stack.length-1];let F=S.children[S.children.length-1];(!F||F.type!=="text")&&(F=Pr(),F.position={start:we(y.start)},S.children.push(F)),this.stack.push(F)}function P(y){const S=this.stack.pop();S.value+=this.sliceSerialize(y),S.position.end=we(y.end)}function $(y){const S=this.stack[this.stack.length-1];if(o("atHardBreak")){const F=S.children[S.children.length-1];F.position.end=we(y.end),l("atHardBreak");return}!o("setextHeadingSlurpLineEnding")&&n.canContainEols.includes(S.type)&&(A.call(this,y),P.call(this,y))}function q(){l("atHardBreak",!0)}function B(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function G(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function Y(){const y=this.resume(),S=this.stack[this.stack.length-1];S.value=y}function ae(){const y=this.stack[this.stack.length-1];if(o("inReference")){const S=o("referenceType")||"shortcut";y.type+="Reference",y.referenceType=S,delete y.url,delete y.title}else delete y.identifier,delete y.label;l("referenceType")}function me(){const y=this.stack[this.stack.length-1];if(o("inReference")){const S=o("referenceType")||"shortcut";y.type+="Reference",y.referenceType=S,delete y.url,delete y.title}else delete y.identifier,delete y.label;l("referenceType")}function p(y){const S=this.sliceSerialize(y),F=this.stack[this.stack.length-2];F.label=Zl(S),F.identifier=Ie(S).toLowerCase()}function ue(){const y=this.stack[this.stack.length-1],S=this.resume(),F=this.stack[this.stack.length-1];if(l("inReference",!0),F.type==="link"){const j=y.children;F.children=j}else F.alt=S}function de(){const y=this.resume(),S=this.stack[this.stack.length-1];S.url=y}function f(){const y=this.resume(),S=this.stack[this.stack.length-1];S.title=y}function se(){l("inReference")}function Ee(){l("referenceType","collapsed")}function K(y){const S=this.resume(),F=this.stack[this.stack.length-1];F.label=S,F.identifier=Ie(this.sliceSerialize(y)).toLowerCase(),l("referenceType","full")}function Ae(y){l("characterReferenceType",y.type)}function xe(y){const S=this.sliceSerialize(y),F=o("characterReferenceType");let j;F?(j=Wt(S,F==="characterReferenceMarkerNumeric"?10:16),l("characterReferenceType")):j=Fn(S);const H=this.stack.pop();H.value+=j,H.position.end=we(y.end)}function Pe(y){P.call(this,y);const S=this.stack[this.stack.length-1];S.url=this.sliceSerialize(y)}function Te(y){P.call(this,y);const S=this.stack[this.stack.length-1];S.url="mailto:"+this.sliceSerialize(y)}function on(){return{type:"blockquote",children:[]}}function Mn(){return{type:"code",lang:null,meta:null,value:""}}function kr(){return{type:"inlineCode",value:""}}function wr(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function br(){return{type:"emphasis",children:[]}}function _n(){return{type:"heading",depth:void 0,children:[]}}function jn(){return{type:"break"}}function Hn(){return{type:"html",value:""}}function Sr(){return{type:"image",title:null,url:"",alt:null}}function Un(){return{type:"link",title:null,url:"",children:[]}}function Vn(y){return{type:"list",ordered:y.type==="listOrdered",start:null,spread:y._spread,children:[]}}function Cr(y){return{type:"listItem",spread:y._spread,checked:null,children:[]}}function Er(){return{type:"paragraph",children:[]}}function Ar(){return{type:"strong",children:[]}}function Pr(){return{type:"text",value:""}}function Tr(){return{type:"thematicBreak"}}}function we(e){return{line:e.line,column:e.column,offset:e.offset}}function Qt(e,n){let t=-1;for(;++t<n.length;){const r=n[t];Array.isArray(r)?Qt(e,r):ro(e,r)}}function ro(e,n){let t;for(t in n)if(Xt.call(n,t)){if(t==="canContainEols"){const r=n[t];r&&e[t].push(...r)}else if(t==="transforms"){const r=n[t];r&&e[t].push(...r)}else if(t==="enter"||t==="exit"){const r=n[t];r&&Object.assign(e[t],r)}}}function gt(e,n){throw e?new Error("Cannot close `"+e.type+"` ("+Ne({start:e.start,end:e.end})+"): a different token (`"+n.type+"`, "+Ne({start:n.start,end:n.end})+") is open"):new Error("Cannot close document, a token (`"+n.type+"`, "+Ne({start:n.start,end:n.end})+") is still open")}function io(e){Object.assign(this,{Parser:t=>{const r=this.data("settings");return no(t,Object.assign({},r,e,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}function lo(e,n){const t={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(n),!0)};return e.patch(n,t),e.applyData(n,t)}function oo(e,n){const t={type:"element",tagName:"br",properties:{},children:[]};return e.patch(n,t),[e.applyData(n,t),{type:"text",value:`
9
+ `}]}function ao(e,n){const t=n.value?n.value+`
10
+ `:"",r=n.lang?n.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,i={};r&&(i.className=["language-"+r]);let l={type:"element",tagName:"code",properties:i,children:[{type:"text",value:t}]};return n.meta&&(l.data={meta:n.meta}),e.patch(n,l),l=e.applyData(n,l),l={type:"element",tagName:"pre",properties:{},children:[l]},e.patch(n,l),l}function uo(e,n){const t={type:"element",tagName:"del",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function so(e,n){const t={type:"element",tagName:"em",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function ve(e){const n=[];let t=-1,r=0,i=0;for(;++t<e.length;){const l=e.charCodeAt(t);let o="";if(l===37&&te(e.charCodeAt(t+1))&&te(e.charCodeAt(t+2)))i=2;else if(l<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l))||(o=String.fromCharCode(l));else if(l>55295&&l<57344){const a=e.charCodeAt(t+1);l<56320&&a>56319&&a<57344?(o=String.fromCharCode(l,a),i=1):o="�"}else o=String.fromCharCode(l);o&&(n.push(e.slice(r,t),encodeURIComponent(o)),r=t+i+1,o=""),i&&(t+=i,i=0)}return n.join("")+e.slice(r)}function Yt(e,n){const t=String(n.identifier).toUpperCase(),r=ve(t.toLowerCase()),i=e.footnoteOrder.indexOf(t);let l;i===-1?(e.footnoteOrder.push(t),e.footnoteCounts[t]=1,l=e.footnoteOrder.length):(e.footnoteCounts[t]++,l=i+1);const o=e.footnoteCounts[t],a={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+r,id:e.clobberPrefix+"fnref-"+r+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(n,a);const s={type:"element",tagName:"sup",properties:{},children:[a]};return e.patch(n,s),e.applyData(n,s)}function co(e,n){const t=e.footnoteById;let r=1;for(;r in t;)r++;const i=String(r);return t[i]={type:"footnoteDefinition",identifier:i,children:[{type:"paragraph",children:n.children}],position:n.position},Yt(e,{type:"footnoteReference",identifier:i,position:n.position})}function po(e,n){const t={type:"element",tagName:"h"+n.depth,properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function ho(e,n){if(e.dangerous){const t={type:"raw",value:n.value};return e.patch(n,t),e.applyData(n,t)}return null}function Kt(e,n){const t=n.referenceType;let r="]";if(t==="collapsed"?r+="[]":t==="full"&&(r+="["+(n.label||n.identifier)+"]"),n.type==="imageReference")return{type:"text",value:"!["+n.alt+r};const i=e.all(n),l=i[0];l&&l.type==="text"?l.value="["+l.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function fo(e,n){const t=e.definition(n.identifier);if(!t)return Kt(e,n);const r={src:ve(t.url||""),alt:n.alt};t.title!==null&&t.title!==void 0&&(r.title=t.title);const i={type:"element",tagName:"img",properties:r,children:[]};return e.patch(n,i),e.applyData(n,i)}function mo(e,n){const t={src:ve(n.url)};n.alt!==null&&n.alt!==void 0&&(t.alt=n.alt),n.title!==null&&n.title!==void 0&&(t.title=n.title);const r={type:"element",tagName:"img",properties:t,children:[]};return e.patch(n,r),e.applyData(n,r)}function go(e,n){const t={type:"text",value:n.value.replace(/\r?\n|\r/g," ")};e.patch(n,t);const r={type:"element",tagName:"code",properties:{},children:[t]};return e.patch(n,r),e.applyData(n,r)}function yo(e,n){const t=e.definition(n.identifier);if(!t)return Kt(e,n);const r={href:ve(t.url||"")};t.title!==null&&t.title!==void 0&&(r.title=t.title);const i={type:"element",tagName:"a",properties:r,children:e.all(n)};return e.patch(n,i),e.applyData(n,i)}function xo(e,n){const t={href:ve(n.url)};n.title!==null&&n.title!==void 0&&(t.title=n.title);const r={type:"element",tagName:"a",properties:t,children:e.all(n)};return e.patch(n,r),e.applyData(n,r)}function ko(e,n,t){const r=e.all(n),i=t?wo(t):Gt(n),l={},o=[];if(typeof n.checked=="boolean"){const c=r[0];let m;c&&c.type==="element"&&c.tagName==="p"?m=c:(m={type:"element",tagName:"p",properties:{},children:[]},r.unshift(m)),m.children.length>0&&m.children.unshift({type:"text",value:" "}),m.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:n.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let a=-1;for(;++a<r.length;){const c=r[a];(i||a!==0||c.type!=="element"||c.tagName!=="p")&&o.push({type:"text",value:`
11
+ `}),c.type==="element"&&c.tagName==="p"&&!i?o.push(...c.children):o.push(c)}const s=r[r.length-1];s&&(i||s.type!=="element"||s.tagName!=="p")&&o.push({type:"text",value:`
12
+ `});const u={type:"element",tagName:"li",properties:l,children:o};return e.patch(n,u),e.applyData(n,u)}function wo(e){let n=!1;if(e.type==="list"){n=e.spread||!1;const t=e.children;let r=-1;for(;!n&&++r<t.length;)n=Gt(t[r])}return n}function Gt(e){const n=e.spread;return n??e.children.length>1}function bo(e,n){const t={},r=e.all(n);let i=-1;for(typeof n.start=="number"&&n.start!==1&&(t.start=n.start);++i<r.length;){const o=r[i];if(o.type==="element"&&o.tagName==="li"&&o.properties&&Array.isArray(o.properties.className)&&o.properties.className.includes("task-list-item")){t.className=["contains-task-list"];break}}const l={type:"element",tagName:n.ordered?"ol":"ul",properties:t,children:e.wrap(r,!0)};return e.patch(n,l),e.applyData(n,l)}function So(e,n){const t={type:"element",tagName:"p",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}function Co(e,n){const t={type:"root",children:e.wrap(e.all(n))};return e.patch(n,t),e.applyData(n,t)}function Eo(e,n){const t={type:"element",tagName:"strong",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}const On=Jt("start"),vn=Jt("end");function Ao(e){return{start:On(e),end:vn(e)}}function Jt(e){return n;function n(t){const r=t&&t.position&&t.position[e]||{};return{line:r.line||null,column:r.column||null,offset:r.offset>-1?r.offset:null}}}function Po(e,n){const t=e.all(n),r=t.shift(),i=[];if(r){const o={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(n.children[0],o),i.push(o)}if(t.length>0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(t,!0)},a=On(n.children[1]),s=vn(n.children[n.children.length-1]);a.line&&s.line&&(o.position={start:a,end:s}),i.push(o)}const l={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(n,l),e.applyData(n,l)}function To(e,n,t){const r=t?t.children:void 0,l=(r?r.indexOf(n):1)===0?"th":"td",o=t&&t.type==="table"?t.align:void 0,a=o?o.length:n.children.length;let s=-1;const u=[];for(;++s<a;){const m=n.children[s],d={},h=o?o[s]:void 0;h&&(d.align=h);let b={type:"element",tagName:l,properties:d,children:[]};m&&(b.children=e.all(m),e.patch(m,b),b=e.applyData(n,b)),u.push(b)}const c={type:"element",tagName:"tr",properties:{},children:e.wrap(u,!0)};return e.patch(n,c),e.applyData(n,c)}function Fo(e,n){const t={type:"element",tagName:"td",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)}const yt=9,xt=32;function Io(e){const n=String(e),t=/\r?\n|\r/g;let r=t.exec(n),i=0;const l=[];for(;r;)l.push(kt(n.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=t.exec(n);return l.push(kt(n.slice(i),i>0,!1)),l.join("")}function kt(e,n,t){let r=0,i=e.length;if(n){let l=e.codePointAt(r);for(;l===yt||l===xt;)r++,l=e.codePointAt(r)}if(t){let l=e.codePointAt(i-1);for(;l===yt||l===xt;)i--,l=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function Oo(e,n){const t={type:"text",value:Io(String(n.value))};return e.patch(n,t),e.applyData(n,t)}function vo(e,n){const t={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(n,t),e.applyData(n,t)}const Lo={blockquote:lo,break:oo,code:ao,delete:uo,emphasis:so,footnoteReference:Yt,footnote:co,heading:po,html:ho,imageReference:fo,image:mo,inlineCode:go,linkReference:yo,link:xo,listItem:ko,list:bo,paragraph:So,root:Co,strong:Eo,table:Po,tableCell:Fo,tableRow:To,text:Oo,thematicBreak:vo,toml:Ue,yaml:Ue,definition:Ue,footnoteDefinition:Ue};function Ue(){return null}const Zt=function(e){if(e==null)return Bo;if(typeof e=="string")return Ro(e);if(typeof e=="object")return Array.isArray(e)?Do(e):zo(e);if(typeof e=="function")return Qe(e);throw new Error("Expected function, string, or object as test")};function Do(e){const n=[];let t=-1;for(;++t<e.length;)n[t]=Zt(e[t]);return Qe(r);function r(...i){let l=-1;for(;++l<n.length;)if(n[l].call(this,...i))return!0;return!1}}function zo(e){return Qe(n);function n(t){let r;for(r in e)if(t[r]!==e[r])return!1;return!0}}function Ro(e){return Qe(n);function n(t){return t&&t.type===e}}function Qe(e){return n;function n(t,...r){return!!(t&&typeof t=="object"&&"type"in t&&e.call(this,t,...r))}}function Bo(){return!0}const No=!0,wt=!1,Mo="skip",_o=function(e,n,t,r){typeof n=="function"&&typeof t!="function"&&(r=t,t=n,n=null);const i=Zt(n),l=r?-1:1;o(e,void 0,[])();function o(a,s,u){const c=a&&typeof a=="object"?a:{};if(typeof c.type=="string"){const d=typeof c.tagName=="string"?c.tagName:typeof c.name=="string"?c.name:void 0;Object.defineProperty(m,"name",{value:"node ("+(a.type+(d?"<"+d+">":""))+")"})}return m;function m(){let d=[],h,b,x;if((!n||i(a,s,u[u.length-1]||null))&&(d=jo(t(a,u)),d[0]===wt))return d;if(a.children&&d[0]!==Mo)for(b=(r?a.children.length:-1)+l,x=u.concat(a);b>-1&&b<a.children.length;){if(h=o(a.children[b],b,x)(),h[0]===wt)return h;b=typeof h[1]=="number"?h[1]:b+l}return d}}};function jo(e){return Array.isArray(e)?e:typeof e=="number"?[No,e]:[e]}const Ln=function(e,n,t,r){typeof n=="function"&&typeof t!="function"&&(r=t,t=n,n=null),_o(e,n,i,r);function i(l,o){const a=o[o.length-1];return t(l,a?a.children.indexOf(l):null,a)}};function Ho(e){return!e||!e.position||!e.position.start||!e.position.start.line||!e.position.start.column||!e.position.end||!e.position.end.line||!e.position.end.column}const bt={}.hasOwnProperty;function Uo(e){const n=Object.create(null);if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return Ln(e,"definition",r=>{const i=St(r.identifier);i&&!bt.call(n,i)&&(n[i]=r)}),t;function t(r){const i=St(r);return i&&bt.call(n,i)?n[i]:null}}function St(e){return String(e||"").toUpperCase()}const We={}.hasOwnProperty;function Vo(e,n){const t=n||{},r=t.allowDangerousHtml||!1,i={};return o.dangerous=r,o.clobberPrefix=t.clobberPrefix===void 0||t.clobberPrefix===null?"user-content-":t.clobberPrefix,o.footnoteLabel=t.footnoteLabel||"Footnotes",o.footnoteLabelTagName=t.footnoteLabelTagName||"h2",o.footnoteLabelProperties=t.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=t.footnoteBackLabel||"Back to content",o.unknownHandler=t.unknownHandler,o.passThrough=t.passThrough,o.handlers={...Lo,...t.handlers},o.definition=Uo(e),o.footnoteById=i,o.footnoteOrder=[],o.footnoteCounts={},o.patch=$o,o.applyData=qo,o.one=a,o.all=s,o.wrap=Xo,o.augment=l,Ln(e,"footnoteDefinition",u=>{const c=String(u.identifier).toUpperCase();We.call(i,c)||(i[c]=u)}),o;function l(u,c){if(u&&"data"in u&&u.data){const m=u.data;m.hName&&(c.type!=="element"&&(c={type:"element",tagName:"",properties:{},children:[]}),c.tagName=m.hName),c.type==="element"&&m.hProperties&&(c.properties={...c.properties,...m.hProperties}),"children"in c&&c.children&&m.hChildren&&(c.children=m.hChildren)}if(u){const m="type"in u?u:{position:u};Ho(m)||(c.position={start:On(m),end:vn(m)})}return c}function o(u,c,m,d){return Array.isArray(m)&&(d=m,m={}),l(u,{type:"element",tagName:c,properties:m||{},children:d||[]})}function a(u,c){return er(o,u,c)}function s(u){return Dn(o,u)}}function $o(e,n){e.position&&(n.position=Ao(e))}function qo(e,n){let t=n;if(e&&e.data){const r=e.data.hName,i=e.data.hChildren,l=e.data.hProperties;typeof r=="string"&&(t.type==="element"?t.tagName=r:t={type:"element",tagName:r,properties:{},children:[]}),t.type==="element"&&l&&(t.properties={...t.properties,...l}),"children"in t&&t.children&&i!==null&&i!==void 0&&(t.children=i)}return t}function er(e,n,t){const r=n&&n.type;if(!r)throw new Error("Expected node, got `"+n+"`");return We.call(e.handlers,r)?e.handlers[r](e,n,t):e.passThrough&&e.passThrough.includes(r)?"children"in n?{...n,children:Dn(e,n)}:n:e.unknownHandler?e.unknownHandler(e,n,t):Wo(e,n)}function Dn(e,n){const t=[];if("children"in n){const r=n.children;let i=-1;for(;++i<r.length;){const l=er(e,r[i],n);if(l){if(i&&r[i-1].type==="break"&&(!Array.isArray(l)&&l.type==="text"&&(l.value=l.value.replace(/^\s+/,"")),!Array.isArray(l)&&l.type==="element")){const o=l.children[0];o&&o.type==="text"&&(o.value=o.value.replace(/^\s+/,""))}Array.isArray(l)?t.push(...l):t.push(l)}}}return t}function Wo(e,n){const t=n.data||{},r="value"in n&&!(We.call(t,"hProperties")||We.call(t,"hChildren"))?{type:"text",value:n.value}:{type:"element",tagName:"div",properties:{},children:Dn(e,n)};return e.patch(n,r),e.applyData(n,r)}function Xo(e,n){const t=[];let r=-1;for(n&&t.push({type:"text",value:`
13
+ `});++r<e.length;)r&&t.push({type:"text",value:`
14
+ `}),t.push(e[r]);return n&&e.length>0&&t.push({type:"text",value:`
15
+ `}),t}function Qo(e){const n=[];let t=-1;for(;++t<e.footnoteOrder.length;){const r=e.footnoteById[e.footnoteOrder[t]];if(!r)continue;const i=e.all(r),l=String(r.identifier).toUpperCase(),o=ve(l.toLowerCase());let a=0;const s=[];for(;++a<=e.footnoteCounts[l];){const m={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fnref-"+o+(a>1?"-"+a:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"↩"}]};a>1&&m.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(a)}]}),s.length>0&&s.push({type:"text",value:" "}),s.push(m)}const u=i[i.length-1];if(u&&u.type==="element"&&u.tagName==="p"){const m=u.children[u.children.length-1];m&&m.type==="text"?m.value+=" ":u.children.push({type:"text",value:" "}),u.children.push(...s)}else i.push(...s);const c={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+o},children:e.wrap(i,!0)};e.patch(r,c),n.push(c)}if(n.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(e.footnoteLabelProperties)),id:"footnote-label"},children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:`
16
+ `},{type:"element",tagName:"ol",properties:{},children:e.wrap(n,!0)},{type:"text",value:`
17
+ `}]}}function nr(e,n){const t=Vo(e,n),r=t.one(e,null),i=Qo(t);return i&&r.children.push({type:"text",value:`
18
+ `},i),Array.isArray(r)?{type:"root",children:r}:r}const Yo=function(e,n){return e&&"run"in e?Ko(e,n):Go(e||n)};function Ko(e,n){return(t,r,i)=>{e.run(nr(t,n),r,l=>{i(l)})}}function Go(e){return n=>nr(n,e)}var tr={exports:{}},Jo="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Zo=Jo,ea=Zo;function rr(){}function ir(){}ir.resetWarningCache=rr;var na=function(){function e(r,i,l,o,a,s){if(s!==ea){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function n(){return e}var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:ir,resetWarningCache:rr};return t.PropTypes=t,t};tr.exports=na();var ta=tr.exports;const O=_e(ta);class He{constructor(n,t,r){this.property=n,this.normal=t,r&&(this.space=r)}}He.prototype.property={};He.prototype.normal={};He.prototype.space=null;function lr(e,n){const t={},r={};let i=-1;for(;++i<e.length;)Object.assign(t,e[i].property),Object.assign(r,e[i].normal);return new He(t,r,n)}function En(e){return e.toLowerCase()}class le{constructor(n,t){this.property=n,this.attribute=t}}le.prototype.space=null;le.prototype.boolean=!1;le.prototype.booleanish=!1;le.prototype.overloadedBoolean=!1;le.prototype.number=!1;le.prototype.commaSeparated=!1;le.prototype.spaceSeparated=!1;le.prototype.commaOrSpaceSeparated=!1;le.prototype.mustUseProperty=!1;le.prototype.defined=!1;let ra=0;const v=Ce(),X=Ce(),or=Ce(),w=Ce(),U=Ce(),Oe=Ce(),ee=Ce();function Ce(){return 2**++ra}const An=Object.freeze(Object.defineProperty({__proto__:null,boolean:v,booleanish:X,commaOrSpaceSeparated:ee,commaSeparated:Oe,number:w,overloadedBoolean:or,spaceSeparated:U},Symbol.toStringTag,{value:"Module"})),gn=Object.keys(An);class zn extends le{constructor(n,t,r,i){let l=-1;if(super(n,t),Ct(this,"space",i),typeof r=="number")for(;++l<gn.length;){const o=gn[l];Ct(this,gn[l],(r&An[o])===An[o])}}}zn.prototype.defined=!0;function Ct(e,n,t){t&&(e[n]=t)}const ia={}.hasOwnProperty;function Le(e){const n={},t={};let r;for(r in e.properties)if(ia.call(e.properties,r)){const i=e.properties[r],l=new zn(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(l.mustUseProperty=!0),n[r]=l,t[En(r)]=r,t[En(l.attribute)]=r}return new He(n,t,e.space)}const ar=Le({space:"xlink",transform(e,n){return"xlink:"+n.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),ur=Le({space:"xml",transform(e,n){return"xml:"+n.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function sr(e,n){return n in e?e[n]:n}function cr(e,n){return sr(e,n.toLowerCase())}const pr=Le({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:cr,properties:{xmlns:null,xmlnsXLink:null}}),hr=Le({transform(e,n){return n==="role"?n:"aria-"+n.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:X,ariaAutoComplete:null,ariaBusy:X,ariaChecked:X,ariaColCount:w,ariaColIndex:w,ariaColSpan:w,ariaControls:U,ariaCurrent:null,ariaDescribedBy:U,ariaDetails:null,ariaDisabled:X,ariaDropEffect:U,ariaErrorMessage:null,ariaExpanded:X,ariaFlowTo:U,ariaGrabbed:X,ariaHasPopup:null,ariaHidden:X,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:U,ariaLevel:w,ariaLive:null,ariaModal:X,ariaMultiLine:X,ariaMultiSelectable:X,ariaOrientation:null,ariaOwns:U,ariaPlaceholder:null,ariaPosInSet:w,ariaPressed:X,ariaReadOnly:X,ariaRelevant:null,ariaRequired:X,ariaRoleDescription:U,ariaRowCount:w,ariaRowIndex:w,ariaRowSpan:w,ariaSelected:X,ariaSetSize:w,ariaSort:null,ariaValueMax:w,ariaValueMin:w,ariaValueNow:w,ariaValueText:null,role:null}}),la=Le({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:cr,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Oe,acceptCharset:U,accessKey:U,action:null,allow:null,allowFullScreen:v,allowPaymentRequest:v,allowUserMedia:v,alt:null,as:null,async:v,autoCapitalize:null,autoComplete:U,autoFocus:v,autoPlay:v,blocking:U,capture:null,charSet:null,checked:v,cite:null,className:U,cols:w,colSpan:null,content:null,contentEditable:X,controls:v,controlsList:U,coords:w|Oe,crossOrigin:null,data:null,dateTime:null,decoding:null,default:v,defer:v,dir:null,dirName:null,disabled:v,download:or,draggable:X,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:v,formTarget:null,headers:U,height:w,hidden:v,high:w,href:null,hrefLang:null,htmlFor:U,httpEquiv:U,id:null,imageSizes:null,imageSrcSet:null,inert:v,inputMode:null,integrity:null,is:null,isMap:v,itemId:null,itemProp:U,itemRef:U,itemScope:v,itemType:U,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:v,low:w,manifest:null,max:null,maxLength:w,media:null,method:null,min:null,minLength:w,multiple:v,muted:v,name:null,nonce:null,noModule:v,noValidate:v,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:v,optimum:w,pattern:null,ping:U,placeholder:null,playsInline:v,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:v,referrerPolicy:null,rel:U,required:v,reversed:v,rows:w,rowSpan:w,sandbox:U,scope:null,scoped:v,seamless:v,selected:v,shadowRootClonable:v,shadowRootDelegatesFocus:v,shadowRootMode:null,shape:null,size:w,sizes:null,slot:null,span:w,spellCheck:X,src:null,srcDoc:null,srcLang:null,srcSet:null,start:w,step:null,style:null,tabIndex:w,target:null,title:null,translate:null,type:null,typeMustMatch:v,useMap:null,value:X,width:w,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:U,axis:null,background:null,bgColor:null,border:w,borderColor:null,bottomMargin:w,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:v,declare:v,event:null,face:null,frame:null,frameBorder:null,hSpace:w,leftMargin:w,link:null,longDesc:null,lowSrc:null,marginHeight:w,marginWidth:w,noResize:v,noHref:v,noShade:v,noWrap:v,object:null,profile:null,prompt:null,rev:null,rightMargin:w,rules:null,scheme:null,scrolling:X,standby:null,summary:null,text:null,topMargin:w,valueType:null,version:null,vAlign:null,vLink:null,vSpace:w,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:v,disableRemotePlayback:v,prefix:null,property:null,results:w,security:null,unselectable:null}}),oa=Le({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:sr,properties:{about:ee,accentHeight:w,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:w,amplitude:w,arabicForm:null,ascent:w,attributeName:null,attributeType:null,azimuth:w,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:w,by:null,calcMode:null,capHeight:w,className:U,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:w,diffuseConstant:w,direction:null,display:null,dur:null,divisor:w,dominantBaseline:null,download:v,dx:null,dy:null,edgeMode:null,editable:null,elevation:w,enableBackground:null,end:null,event:null,exponent:w,externalResourcesRequired:null,fill:null,fillOpacity:w,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Oe,g2:Oe,glyphName:Oe,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:w,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:w,horizOriginX:w,horizOriginY:w,id:null,ideographic:w,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:w,k:w,k1:w,k2:w,k3:w,k4:w,kernelMatrix:ee,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:w,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:w,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:w,overlineThickness:w,paintOrder:null,panose1:null,path:null,pathLength:w,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:U,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:w,pointsAtY:w,pointsAtZ:w,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ee,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ee,rev:ee,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ee,requiredFeatures:ee,requiredFonts:ee,requiredFormats:ee,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:w,specularExponent:w,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:w,strikethroughThickness:w,string:null,stroke:null,strokeDashArray:ee,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:w,strokeOpacity:w,strokeWidth:null,style:null,surfaceScale:w,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ee,tabIndex:w,tableValues:null,target:null,targetX:w,targetY:w,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ee,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:w,underlineThickness:w,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:w,values:null,vAlphabetic:w,vMathematical:w,vectorEffect:null,vHanging:w,vIdeographic:w,version:null,vertAdvY:w,vertOriginX:w,vertOriginY:w,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:w,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),aa=/^data[-\w.:]+$/i,Et=/-[a-z]/g,ua=/[A-Z]/g;function sa(e,n){const t=En(n);let r=n,i=le;if(t in e.normal)return e.property[e.normal[t]];if(t.length>4&&t.slice(0,4)==="data"&&aa.test(n)){if(n.charAt(4)==="-"){const l=n.slice(5).replace(Et,pa);r="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=n.slice(4);if(!Et.test(l)){let o=l.replace(ua,ca);o.charAt(0)!=="-"&&(o="-"+o),n="data"+o}}i=zn}return new i(r,n)}function ca(e){return"-"+e.toLowerCase()}function pa(e){return e.charAt(1).toUpperCase()}const At={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},ha=lr([ur,ar,pr,hr,la],"html"),fa=lr([ur,ar,pr,hr,oa],"svg");function ma(e){if(e.allowedElements&&e.disallowedElements)throw new TypeError("Only one of `allowedElements` and `disallowedElements` should be defined");if(e.allowedElements||e.disallowedElements||e.allowElement)return n=>{Ln(n,"element",(t,r,i)=>{const l=i;let o;if(e.allowedElements?o=!e.allowedElements.includes(t.tagName):e.disallowedElements&&(o=e.disallowedElements.includes(t.tagName)),!o&&e.allowElement&&typeof r=="number"&&(o=!e.allowElement(t,r,l)),o&&typeof r=="number")return e.unwrapDisallowed&&t.children?l.children.splice(r,1,...t.children):l.children.splice(r,1),r})}}var fr={exports:{}},_={};/**
19
+ * @license React
20
+ * react-is.production.min.js
21
+ *
22
+ * Copyright (c) Facebook, Inc. and its affiliates.
23
+ *
24
+ * This source code is licensed under the MIT license found in the
25
+ * LICENSE file in the root directory of this source tree.
26
+ */var Rn=Symbol.for("react.element"),Bn=Symbol.for("react.portal"),Ye=Symbol.for("react.fragment"),Ke=Symbol.for("react.strict_mode"),Ge=Symbol.for("react.profiler"),Je=Symbol.for("react.provider"),Ze=Symbol.for("react.context"),da=Symbol.for("react.server_context"),en=Symbol.for("react.forward_ref"),nn=Symbol.for("react.suspense"),tn=Symbol.for("react.suspense_list"),rn=Symbol.for("react.memo"),ln=Symbol.for("react.lazy"),ga=Symbol.for("react.offscreen"),mr;mr=Symbol.for("react.module.reference");function oe(e){if(typeof e=="object"&&e!==null){var n=e.$$typeof;switch(n){case Rn:switch(e=e.type,e){case Ye:case Ge:case Ke:case nn:case tn:return e;default:switch(e=e&&e.$$typeof,e){case da:case Ze:case en:case ln:case rn:case Je:return e;default:return n}}case Bn:return n}}}_.ContextConsumer=Ze;_.ContextProvider=Je;_.Element=Rn;_.ForwardRef=en;_.Fragment=Ye;_.Lazy=ln;_.Memo=rn;_.Portal=Bn;_.Profiler=Ge;_.StrictMode=Ke;_.Suspense=nn;_.SuspenseList=tn;_.isAsyncMode=function(){return!1};_.isConcurrentMode=function(){return!1};_.isContextConsumer=function(e){return oe(e)===Ze};_.isContextProvider=function(e){return oe(e)===Je};_.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Rn};_.isForwardRef=function(e){return oe(e)===en};_.isFragment=function(e){return oe(e)===Ye};_.isLazy=function(e){return oe(e)===ln};_.isMemo=function(e){return oe(e)===rn};_.isPortal=function(e){return oe(e)===Bn};_.isProfiler=function(e){return oe(e)===Ge};_.isStrictMode=function(e){return oe(e)===Ke};_.isSuspense=function(e){return oe(e)===nn};_.isSuspenseList=function(e){return oe(e)===tn};_.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Ye||e===Ge||e===Ke||e===nn||e===tn||e===ga||typeof e=="object"&&e!==null&&(e.$$typeof===ln||e.$$typeof===rn||e.$$typeof===Je||e.$$typeof===Ze||e.$$typeof===en||e.$$typeof===mr||e.getModuleId!==void 0)};_.typeOf=oe;fr.exports=_;var ya=fr.exports;const xa=_e(ya);function ka(e){const n=e&&typeof e=="object"&&e.type==="text"?e.value||"":e;return typeof n=="string"&&n.replace(/[ \t\n\f\r]/g,"")===""}function wa(e){return e.join(" ").trim()}function ba(e,n){const t={};return(e[e.length-1]===""?[...e,""]:e).join((t.padRight?" ":"")+","+(t.padLeft===!1?"":" ")).trim()}var Nn={exports:{}},Pt=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Sa=/\n/g,Ca=/^\s*/,Ea=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Aa=/^:\s*/,Pa=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Ta=/^[;\s]*/,Fa=/^\s+|\s+$/g,Ia=`
27
+ `,Tt="/",Ft="*",Se="",Oa="comment",va="declaration",La=function(e,n){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];n=n||{};var t=1,r=1;function i(b){var x=b.match(Sa);x&&(t+=x.length);var C=b.lastIndexOf(Ia);r=~C?b.length-C:r+b.length}function l(){var b={line:t,column:r};return function(x){return x.position=new o(b),u(),x}}function o(b){this.start=b,this.end={line:t,column:r},this.source=n.source}o.prototype.content=e;function a(b){var x=new Error(n.source+":"+t+":"+r+": "+b);if(x.reason=b,x.filename=n.source,x.line=t,x.column=r,x.source=e,!n.silent)throw x}function s(b){var x=b.exec(e);if(x){var C=x[0];return i(C),e=e.slice(C.length),x}}function u(){s(Ca)}function c(b){var x;for(b=b||[];x=m();)x!==!1&&b.push(x);return b}function m(){var b=l();if(!(Tt!=e.charAt(0)||Ft!=e.charAt(1))){for(var x=2;Se!=e.charAt(x)&&(Ft!=e.charAt(x)||Tt!=e.charAt(x+1));)++x;if(x+=2,Se===e.charAt(x-1))return a("End of comment missing");var C=e.slice(2,x-2);return r+=2,i(C),e=e.slice(x),r+=2,b({type:Oa,comment:C})}}function d(){var b=l(),x=s(Ea);if(x){if(m(),!s(Aa))return a("property missing ':'");var C=s(Pa),k=b({type:va,property:It(x[0].replace(Pt,Se)),value:C?It(C[0].replace(Pt,Se)):Se});return s(Ta),k}}function h(){var b=[];c(b);for(var x;x=d();)x!==!1&&(b.push(x),c(b));return b}return u(),h()};function It(e){return e?e.replace(Fa,Se):Se}var Da=La;function dr(e,n){var t=null;if(!e||typeof e!="string")return t;for(var r,i=Da(e),l=typeof n=="function",o,a,s=0,u=i.length;s<u;s++)r=i[s],o=r.property,a=r.value,l?n(o,a,r):a&&(t||(t={}),t[o]=a);return t}Nn.exports=dr;Nn.exports.default=dr;var za=Nn.exports;const Ra=_e(za),Pn={}.hasOwnProperty,Ba=new Set(["table","thead","tbody","tfoot","tr"]);function gr(e,n){const t=[];let r=-1,i;for(;++r<n.children.length;)i=n.children[r],i.type==="element"?t.push(Na(e,i,r,n)):i.type==="text"?(n.type!=="element"||!Ba.has(n.tagName)||!ka(i))&&t.push(i.value):i.type==="raw"&&!e.options.skipHtml&&t.push(i.value);return t}function Na(e,n,t,r){const i=e.options,l=i.transformLinkUri===void 0?Dr:i.transformLinkUri,o=e.schema,a=n.tagName,s={};let u=o,c;if(o.space==="html"&&a==="svg"&&(u=fa,e.schema=u),n.properties)for(c in n.properties)Pn.call(n.properties,c)&&_a(s,c,n.properties[c],e);(a==="ol"||a==="ul")&&e.listDepth++;const m=gr(e,n);(a==="ol"||a==="ul")&&e.listDepth--,e.schema=o;const d=n.position||{start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}},h=i.components&&Pn.call(i.components,a)?i.components[a]:a,b=typeof h=="string"||h===Fe.Fragment;if(!xa.isValidElementType(h))throw new TypeError(`Component for name \`${a}\` not defined or is not renderable`);if(s.key=t,a==="a"&&i.linkTarget&&(s.target=typeof i.linkTarget=="function"?i.linkTarget(String(s.href||""),n.children,typeof s.title=="string"?s.title:null):i.linkTarget),a==="a"&&l&&(s.href=l(String(s.href||""),n.children,typeof s.title=="string"?s.title:null)),!b&&a==="code"&&r.type==="element"&&r.tagName!=="pre"&&(s.inline=!0),!b&&(a==="h1"||a==="h2"||a==="h3"||a==="h4"||a==="h5"||a==="h6")&&(s.level=Number.parseInt(a.charAt(1),10)),a==="img"&&i.transformImageUri&&(s.src=i.transformImageUri(String(s.src||""),String(s.alt||""),typeof s.title=="string"?s.title:null)),!b&&a==="li"&&r.type==="element"){const x=Ma(n);s.checked=x&&x.properties?!!x.properties.checked:null,s.index=yn(r,n),s.ordered=r.tagName==="ol"}return!b&&(a==="ol"||a==="ul")&&(s.ordered=a==="ol",s.depth=e.listDepth),(a==="td"||a==="th")&&(s.align&&(s.style||(s.style={}),s.style.textAlign=s.align,delete s.align),b||(s.isHeader=a==="th")),!b&&a==="tr"&&r.type==="element"&&(s.isHeader=r.tagName==="thead"),i.sourcePos&&(s["data-sourcepos"]=Ua(d)),!b&&i.rawSourcePos&&(s.sourcePosition=n.position),!b&&i.includeElementIndex&&(s.index=yn(r,n),s.siblingCount=yn(r)),b||(s.node=n),m.length>0?Fe.createElement(h,s,m):Fe.createElement(h,s)}function Ma(e){let n=-1;for(;++n<e.children.length;){const t=e.children[n];if(t.type==="element"&&t.tagName==="input")return t}return null}function yn(e,n){let t=-1,r=0;for(;++t<e.children.length&&e.children[t]!==n;)e.children[t].type==="element"&&r++;return r}function _a(e,n,t,r){const i=sa(r.schema,n);let l=t;l==null||l!==l||(Array.isArray(l)&&(l=i.commaSeparated?ba(l):wa(l)),i.property==="style"&&typeof l=="string"&&(l=ja(l)),i.space&&i.property?e[Pn.call(At,i.property)?At[i.property]:i.property]=l:i.attribute&&(e[i.attribute]=l))}function ja(e){const n={};try{Ra(e,t)}catch{}return n;function t(r,i){const l=r.slice(0,4)==="-ms-"?`ms-${r.slice(4)}`:r;n[l.replace(/-([a-z])/g,Ha)]=i}}function Ha(e,n){return n.toUpperCase()}function Ua(e){return[e.start.line,":",e.start.column,"-",e.end.line,":",e.end.column].map(String).join("")}const Ot={}.hasOwnProperty,Va="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ve={plugins:{to:"remarkPlugins",id:"change-plugins-to-remarkplugins"},renderers:{to:"components",id:"change-renderers-to-components"},astPlugins:{id:"remove-buggy-html-in-markdown-parser"},allowDangerousHtml:{id:"remove-buggy-html-in-markdown-parser"},escapeHtml:{id:"remove-buggy-html-in-markdown-parser"},source:{to:"children",id:"change-source-to-children"},allowNode:{to:"allowElement",id:"replace-allownode-allowedtypes-and-disallowedtypes"},allowedTypes:{to:"allowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},disallowedTypes:{to:"disallowedElements",id:"replace-allownode-allowedtypes-and-disallowedtypes"},includeNodeIndex:{to:"includeElementIndex",id:"change-includenodeindex-to-includeelementindex"}};function yr(e){for(const l in Ve)if(Ot.call(Ve,l)&&Ot.call(e,l)){const o=Ve[l];console.warn(`[react-markdown] Warning: please ${o.to?`use \`${o.to}\` instead of`:"remove"} \`${l}\` (see <${Va}#${o.id}> for more info)`),delete Ve[l]}const n=Yr().use(io).use(e.remarkPlugins||[]).use(Yo,{...e.remarkRehypeOptions,allowDangerousHtml:!0}).use(e.rehypePlugins||[]).use(ma,e),t=new Lt;typeof e.children=="string"?t.value=e.children:e.children!==void 0&&e.children!==null&&console.warn(`[react-markdown] Warning: please pass a string as \`children\` (not: \`${e.children}\`)`);const r=n.runSync(n.parse(t),t);if(r.type!=="root")throw new TypeError("Expected a `root` node");let i=Fe.createElement(Fe.Fragment,{},gr({options:e,schema:ha,listDepth:0},r));return e.className&&(i=Fe.createElement("div",{className:e.className},i)),i}yr.propTypes={children:O.string,className:O.string,allowElement:O.func,allowedElements:O.arrayOf(O.string),disallowedElements:O.arrayOf(O.string),unwrapDisallowed:O.bool,remarkPlugins:O.arrayOf(O.oneOfType([O.object,O.func,O.arrayOf(O.oneOfType([O.bool,O.string,O.object,O.func,O.arrayOf(O.any)]))])),rehypePlugins:O.arrayOf(O.oneOfType([O.object,O.func,O.arrayOf(O.oneOfType([O.bool,O.string,O.object,O.func,O.arrayOf(O.any)]))])),sourcePos:O.bool,rawSourcePos:O.bool,skipHtml:O.bool,includeElementIndex:O.bool,transformLinkUri:O.oneOfType([O.func,O.bool]),linkTarget:O.oneOfType([O.func,O.string]),transformImageUri:O.func,components:O.object};const Be={hub_restart:{title:"Hub restart",markdown:`# Hub restart
28
+
29
+ The Xenon server restarted while this session was running. A session on one
30
+ of that server's own phones ran inside it, so it ended with the restart. A
31
+ session on a phone connected to another machine ends too if the server can't
32
+ pick it up again after the restart.
33
+
34
+ ## Likely causes
35
+
36
+ - Someone restarted or updated the Xenon server.
37
+ - The server stopped unexpectedly and was started again.
38
+ - The computer running it restarted.
39
+
40
+ ## What to do
41
+
42
+ 1. Run the session again.
43
+ 2. If restarts happen during test runs, ask whoever looks after the Xenon
44
+ server to plan them outside test hours, and to find out why it stopped if
45
+ nobody restarted it.
46
+ `},timeout:{title:"Timeout",markdown:`# Timeout
47
+
48
+ The failure reason or one of the session's last failed commands mentions a
49
+ timeout ("timeout", "timed out") or a dropped connection ("socket hang up").
50
+ Usually a command or a wait ran out of time, or the test sent no
51
+ command for longer than its \`newCommandTimeout\` and the session was ended.
52
+ A session the server lost contact with ends up here too.
53
+
54
+ ## Likely causes
55
+
56
+ - A test step waited for an element that never appeared.
57
+ - The test paused, hung or stopped between commands for longer than
58
+ \`newCommandTimeout\`.
59
+ - A slow phone or an unreliable network.
60
+ - A command that never returned, for example because of a driver bug.
61
+ - The server lost contact with the session.
62
+
63
+ ## What to do
64
+
65
+ Raise \`newCommandTimeout\` only if the app really needs long pauses between
66
+ commands. Otherwise:
67
+
68
+ 1. In the **Commands** tab, look at the last command before the failure. If
69
+ it's a find, fix the selector or wait for the element explicitly.
70
+ 2. On the **Devices** page, check that the phone is still connected and,
71
+ where its card shows them, its battery and temperature: a hot or nearly
72
+ flat phone slows down. They are the phone's latest readings, not the ones
73
+ from the run.
74
+ 3. If the same command times out run after run, report it against the test,
75
+ or against the driver if the command clearly hung.
76
+ `},element_not_found:{title:"Element not found",markdown:`# Element not found
77
+
78
+ A command couldn't find the element the test asked for: the failure reason or
79
+ one of the last failed commands says "no such element" or "An element could not
80
+ be located". When AI self-healing is on, a failed find has already been tried
81
+ again in the other ways this session allows.
82
+
83
+ ## Likely causes
84
+
85
+ - The screen wasn't ready: the element appeared after the test stopped looking.
86
+ - A different screen was showing: a dialog, a permission prompt, a sign-in page
87
+ or an error.
88
+ - The app had crashed or closed, so another app or the home screen was showing.
89
+ - The app changed: the element's id, text or place in the layout is different
90
+ now.
91
+ - The selector only works on some phones, screen sizes or languages.
92
+
93
+ ## What to do
94
+
95
+ 1. Open the **Screenshots** tab, or play the video in **Recording**, to see what
96
+ was on screen when the find failed.
97
+ 2. If another app or the home screen was showing, the app may have crashed. On
98
+ Android, open **Device logs** and tick **Errors only**: a crash shows as
99
+ "FATAL EXCEPTION", then the app's package name.
100
+ 3. In the **Commands** tab, read the selector the failed find used and compare
101
+ it with that screen.
102
+ 4. If the element only appeared late, wait for it in the test, or have Xenon
103
+ retry finds for a while: at the start of the session, run the
104
+ \`xenon: setAutowaitProperties\` script with
105
+ \`{ "enabled": true, "timeoutMs": 10000 }\` (\`executeScript\` in Java,
106
+ \`execute_script\` in Python, \`execute\` in WebdriverIO).
107
+ 5. If the app changed, update the selector. Selectors that only still work
108
+ because Xenon heals them are listed in **Selector health**: fixing those
109
+ stops them failing like this one.
110
+
111
+ A find the test expected to fail can file a session here too. If the **Reason**
112
+ in **Why it failed** is about something else, start from that.
113
+ `},app_crash:{title:"App crash",markdown:`# App crash
114
+
115
+ The failure reason or one of the last failed commands says the app crashed or
116
+ stopped responding: "process has died", "activity has died", "The application
117
+ has crashed" or "Application not responding". Appium itself rarely words a
118
+ crash this way, so it's usually the test that reported it.
119
+
120
+ Most crashes are filed elsewhere. On Android the next find fails on whatever
121
+ replaced the app, so they're usually filed as Element not found. On an iPhone
122
+ the app "is not running, possibly crashed", which is usually filed as an
123
+ unknown failure.
124
+
125
+ ## Likely causes
126
+
127
+ - A bug in the app, often on the last screen or action the test reached.
128
+ - The phone ran low on memory or was under heavy load.
129
+ - The app was closed: by the phone, or by a test step.
130
+
131
+ ## What to do
132
+
133
+ 1. Play the video in **Recording**, or open the **Screenshots** tab, to see the
134
+ last screen before the crash.
135
+ 2. On Android, open **Device logs** and tick **Errors only**. The crash report
136
+ is there: a "FATAL EXCEPTION", then the app's package name and the code it
137
+ failed in.
138
+ 3. On Android, check **Performance**: the phone's memory running out, or the
139
+ app's own memory climbing until the crash, points at the app using too much.
140
+ 4. To watch it happen, open the phone from the **Devices** page, keep its Logs
141
+ open, and repeat the steps by hand.
142
+ 5. If the app crashes by hand too, report it to its developers with a link to
143
+ this session and the log lines.
144
+ `},permission_blocked:{title:"Permission blocked",markdown:`# Permission blocked
145
+
146
+ The failure reason or one of the last failed commands mentions a system
147
+ prompt: "Permission alert", "Security alert", "Always Allow" or "Allow while
148
+ using app". A permission or security prompt was most likely on screen, in front
149
+ of what the test wanted to use.
150
+
151
+ ## Likely causes
152
+
153
+ - The app asked for a permission (location, camera, notifications...) the first
154
+ time it needed one on this phone, or after it was reinstalled.
155
+ - The phone showed a prompt of its own.
156
+
157
+ ## What to do
158
+
159
+ 1. Open the **Screenshots** tab, or play the video in **Recording**, to see
160
+ which prompt was showing.
161
+ 2. Let Appium answer such prompts:
162
+ - Android: \`appium:autoGrantPermissions: true\` grants the app the
163
+ permissions it asks for when Appium installs it. With
164
+ \`appium:noReset\` on an app that is already installed, it does nothing.
165
+ - iPhone: \`appium:autoAcceptAlerts: true\` accepts every alert, the app's
166
+ own included, and \`appium:autoDismissAlerts: true\` dismisses every alert.
167
+ 3. If the test is meant to check the prompt itself, tap the right button in the
168
+ test before going on.
169
+ `},wda_failure:{title:"WDA failure",markdown:`# WDA failure
170
+
171
+ The failure reason or one of the last failed commands mentions WebDriverAgent,
172
+ the helper app Appium puts on an iPhone to drive it, or says "Session does not
173
+ exist". WebDriverAgent lost the session during the run, which is rarely the
174
+ test's fault. Almost every session filed here ran on an iPhone or an iOS
175
+ simulator.
176
+
177
+ ## Likely causes
178
+
179
+ - WebDriverAgent was started again during the run, without the session: the
180
+ iPhone restarted, or WebDriverAgent itself stopped, for example after running
181
+ out of memory.
182
+ - The iPhone was unplugged or lost its connection.
183
+
184
+ ## What to do
185
+
186
+ 1. Run the session again.
187
+ 2. On the **Devices** page, check the iPhone is still connected. If this keeps
188
+ happening on one iPhone, restart it and check its cable.
189
+ 3. If new sessions on that iPhone then don't start at all, check on the phone
190
+ that it's unlocked, Auto-Lock is set to Never, Developer Mode is on
191
+ (Settings, Privacy & Security), and it trusts the computer it's plugged
192
+ into. If they still don't start, ask whoever looks after the lab.
193
+ `},xenon_command_failure:{title:"Xenon command failure",markdown:`# Xenon command failure
194
+
195
+ The failure reason or one of the last failed commands says "command failed".
196
+ Despite the name, few failures land here, and they rarely mean Xenon failed.
197
+ Most are a stale element on a web page or in a web view on an iPhone, which
198
+ Appium reports as "An element command failed because the referenced element is
199
+ no longer attached to the DOM": the test found an element earlier, the page
200
+ then changed, and the element the test was holding no longer exists. A test
201
+ that reports its own failure in those words lands here too.
202
+
203
+ Stale elements in a native app are worded differently and are filed as unknown
204
+ failures.
205
+
206
+ ## What to do
207
+
208
+ 1. In **Why it failed**, read the **Reason** to see which it was.
209
+ 2. For a stale element, find the element again just before using it, rather
210
+ than keeping it from earlier in the test.
211
+ 3. If the page is still changing, wait for it to settle, for example for the
212
+ element to be visible again, before tapping or typing.
213
+ `},system_overload:{title:"System overload",markdown:`# System overload
214
+
215
+ The failure reason or one of the last failed commands says "OutOfMemory",
216
+ "MemoryLimit", "thermal throttling" or "too many open files": something ran out
217
+ of memory or open files, or the phone overheated.
218
+
219
+ ## Likely causes
220
+
221
+ - Appium's helper on the phone ran out of memory, most often while reading the
222
+ whole screen (the page source) of a very long list or web page. That is the
223
+ helper's own limit: the phone itself can have memory to spare.
224
+ - The phone got too hot and slowed itself down.
225
+ - "too many open files": the computer running Xenon hit its limit, usually after
226
+ running many sessions for a long time.
227
+
228
+ ## What to do
229
+
230
+ 1. If the test reads the page source often on a long screen, find the elements
231
+ it needs instead.
232
+ 2. On the **Devices** page, check the phone's temperature where its card shows
233
+ it. That's its latest reading, not the one from the run. Let a hot phone cool
234
+ down, and restart one that has been on for days.
235
+ 3. For "too many open files", ask whoever looks after the Xenon server: a
236
+ restart clears it, and the limit can be raised.
237
+ `},unknown:{title:"Unknown",markdown:`# Finding out why it failed
238
+
239
+ Xenon couldn't tell what kind of failure this was, or has no runbook for its
240
+ kind yet. These steps help with any failure.
241
+
242
+ ## What to do
243
+
244
+ 1. In **Why it failed**, read the **Reason**, the **First failed command** and,
245
+ if there is one, the **AI analysis**.
246
+ 2. In the **Commands** tab, tick **Errors only** to see every command that
247
+ failed. On Android, **Device logs** shows what the phone reported around the
248
+ same time, and **Errors only** there shows its errors.
249
+ 3. Run the session again and see whether it fails the same way.
250
+
251
+ If the same kind of failure keeps landing here, report it with a link to the
252
+ session, so it can get a runbook of its own.
253
+ `}};function xr(e){return e.toLowerCase().trim().replace(/[\s-]+/g,"_")}function $a(e){if(!e)return Be.unknown;const n=xr(e);return Object.prototype.hasOwnProperty.call(Be,n)?Be[n]:Be.unknown}const qa={ul:({node:e,ordered:n,depth:t,className:r,...i})=>ne.jsx("ul",{className:`list-disc space-y-1 ${r??""}`.trim(),...i}),ol:({node:e,ordered:n,depth:t,className:r,...i})=>ne.jsx("ol",{className:`list-decimal space-y-1 ${r??""}`.trim(),...i})},Ya=()=>{const{category:e}=Fr(),n=Ir(),t=$a(e),r=!!e&&t===Be.unknown&&xr(e)!=="unknown",i=()=>{if(window.history.length<=1){n("/overview");return}n(-1)};return ne.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[ne.jsxs("header",{className:"flex items-center justify-between gap-4 px-4 py-3 border-b border-[var(--border)] bg-[var(--surface)]",children:[ne.jsxs("button",{type:"button",onClick:i,className:"inline-flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text)] transition-colors",children:[ne.jsx(Lr,{className:"h-3.5 w-3.5"}),"Back"]}),ne.jsxs("div",{className:"flex items-center gap-2 text-xs text-[var(--text-dim)]",children:[ne.jsx(Or,{className:"h-3.5 w-3.5"}),ne.jsx("span",{className:"",children:"Runbook"})]})]}),ne.jsx("div",{className:"flex-1 overflow-y-auto",children:ne.jsxs("article",{className:"max-w-3xl mx-auto px-6 py-8 prose prose-invert prose-sm runbook-prose",children:[r&&ne.jsxs("div",{className:"mb-4 rounded-md border border-[var(--amber)]/30 bg-[var(--amber)]/5 px-3 py-2 text-xs text-[var(--amber)]",children:["There's no runbook for “",vr(e),"” failures yet, so these are the general steps."]}),ne.jsx(yr,{components:qa,children:t.markdown})]})})]})};export{Ya as RunbookPage,Ya as default};
@@ -1 +1 @@
1
- import{r as c,j as m}from"./index-DI1fGIyj.js";import{c as o}from"./utils-CDN07tui.js";const l=c.forwardRef(({className:s,selectSize:e="md",children:t,...a},r)=>m.jsx("select",{ref:r,className:o("select-base",e==="sm"&&"select-sm",s),...a,children:t}));l.displayName="Select";export{l as S};
1
+ import{r as c,j as m}from"./index-BOxe43p1.js";import{c as o}from"./utils-CDN07tui.js";const l=c.forwardRef(({className:s,selectSize:e="md",children:t,...a},r)=>m.jsx("select",{ref:r,className:o("select-base",e==="sm"&&"select-sm",s),...a,children:t}));l.displayName="Select";export{l as S};
@@ -1 +1 @@
1
- import{G as e,j as t,N as r}from"./index-DI1fGIyj.js";import{l as s}from"./view-state-83Z1gFME.js";const i=()=>{const[a]=e();return t.jsx(r,{to:s(a),replace:!0})};export{i as SelectorDetailRedirect,i as default};
1
+ import{H as e,j as t,N as r}from"./index-BOxe43p1.js";import{l as s}from"./view-state-83Z1gFME.js";const i=()=>{const[a]=e();return t.jsx(r,{to:s(a),replace:!0})};export{i as SelectorDetailRedirect,i as default};