@epic-web/workshop-app 0.0.0-semantically-released
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/bin/epicshop.js +321 -0
- package/build/client/app-default.css +39 -0
- package/build/client/assets/_-C_7mS1-0.js +2 -0
- package/build/client/assets/_-C_7mS1-0.js.map +1 -0
- package/build/client/assets/_-l0sNRNKZ.js +2 -0
- package/build/client/assets/_-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/_basePickBy-DxgDhkrj.js +2 -0
- package/build/client/assets/_basePickBy-DxgDhkrj.js.map +1 -0
- package/build/client/assets/_baseUniq-Bh4NktJz.js +2 -0
- package/build/client/assets/_baseUniq-Bh4NktJz.js.map +1 -0
- package/build/client/assets/_exerciseNumber-D3lfJewu.js +2 -0
- package/build/client/assets/_exerciseNumber-D3lfJewu.js.map +1 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-BNj079sn.js +2 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-BNj079sn.js.map +1 -0
- package/build/client/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js +2 -0
- package/build/client/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/_exerciseNumber_.finished-a6jXslNA.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-a6jXslNA.js.map +1 -0
- package/build/client/assets/_layout-B3FchrR9.js +2 -0
- package/build/client/assets/_layout-B3FchrR9.js.map +1 -0
- package/build/client/assets/_layout-B6ARVFTz.js +2 -0
- package/build/client/assets/_layout-B6ARVFTz.js.map +1 -0
- package/build/client/assets/_layout-CtqVeNw0.js +6 -0
- package/build/client/assets/_layout-CtqVeNw0.js.map +1 -0
- package/build/client/assets/_layout-dHfVo9gJ.js +2 -0
- package/build/client/assets/_layout-dHfVo9gJ.js.map +1 -0
- package/build/client/assets/accordion-PSsenYUI.js +2 -0
- package/build/client/assets/accordion-PSsenYUI.js.map +1 -0
- package/build/client/assets/account-Jl0f1Zst.js +2 -0
- package/build/client/assets/account-Jl0f1Zst.js.map +1 -0
- package/build/client/assets/api._-l0sNRNKZ.js +2 -0
- package/build/client/assets/api._-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/app-CpF0K1cW.css +1 -0
- package/build/client/assets/app-CzIg9kJh.js +2 -0
- package/build/client/assets/app-CzIg9kJh.js.map +1 -0
- package/build/client/assets/app.epic_ws_.js_-l0sNRNKZ.js +2 -0
- package/build/client/assets/app.epic_ws_.js_-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/apps-DP2rzg_V.js +2 -0
- package/build/client/assets/apps-DP2rzg_V.js.map +1 -0
- package/build/client/assets/apps-l0sNRNKZ.js +2 -0
- package/build/client/assets/apps-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/arc-B6tHINqs.js +2 -0
- package/build/client/assets/arc-B6tHINqs.js.map +1 -0
- package/build/client/assets/architectureDiagram-NQ2NVSRB-D_wGZ5nT.js +37 -0
- package/build/client/assets/architectureDiagram-NQ2NVSRB-D_wGZ5nT.js.map +1 -0
- package/build/client/assets/blockDiagram-PHRCVELO-h_TbDJvl.js +123 -0
- package/build/client/assets/blockDiagram-PHRCVELO-h_TbDJvl.js.map +1 -0
- package/build/client/assets/button-cFpvwtjC.js +2 -0
- package/build/client/assets/button-cFpvwtjC.js.map +1 -0
- package/build/client/assets/c4Diagram-6F6E4RAY-BfXjadL9.js +11 -0
- package/build/client/assets/c4Diagram-6F6E4RAY-BfXjadL9.js.map +1 -0
- package/build/client/assets/cache-l0sNRNKZ.js +2 -0
- package/build/client/assets/cache-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/channel-ClIoK57K.js +2 -0
- package/build/client/assets/channel-ClIoK57K.js.map +1 -0
- package/build/client/assets/chunk-353BL4L5-CExuR7H8.js +2 -0
- package/build/client/assets/chunk-353BL4L5-CExuR7H8.js.map +1 -0
- package/build/client/assets/chunk-67H74DCK-BF9_AOuB.js +2 -0
- package/build/client/assets/chunk-67H74DCK-BF9_AOuB.js.map +1 -0
- package/build/client/assets/chunk-6OLS64BW-B_GeRv1G.js +221 -0
- package/build/client/assets/chunk-6OLS64BW-B_GeRv1G.js.map +1 -0
- package/build/client/assets/chunk-AACKK3MU-BcoQc9Ht.js +2 -0
- package/build/client/assets/chunk-AACKK3MU-BcoQc9Ht.js.map +1 -0
- package/build/client/assets/chunk-BFAMUDN2-DBCLoV1m.js +2 -0
- package/build/client/assets/chunk-BFAMUDN2-DBCLoV1m.js.map +1 -0
- package/build/client/assets/chunk-E2GYISFI-DvCzOl_M.js +16 -0
- package/build/client/assets/chunk-E2GYISFI-DvCzOl_M.js.map +1 -0
- package/build/client/assets/chunk-QEP2MXWD-BA02qRA0.js +166 -0
- package/build/client/assets/chunk-QEP2MXWD-BA02qRA0.js.map +1 -0
- package/build/client/assets/chunk-QMGIS6GS-CG5cA6CX.js +44 -0
- package/build/client/assets/chunk-QMGIS6GS-CG5cA6CX.js.map +1 -0
- package/build/client/assets/chunk-SKB7J2MH-BG1nHV0M.js +2 -0
- package/build/client/assets/chunk-SKB7J2MH-BG1nHV0M.js.map +1 -0
- package/build/client/assets/classDiagram-BGRH5UQR-BZY1Xh5a.js +2 -0
- package/build/client/assets/classDiagram-BGRH5UQR-BZY1Xh5a.js.map +1 -0
- package/build/client/assets/classDiagram-v2-O24JOBDK-BZY1Xh5a.js +2 -0
- package/build/client/assets/classDiagram-v2-O24JOBDK-BZY1Xh5a.js.map +1 -0
- package/build/client/assets/clone-RGlausHy.js +2 -0
- package/build/client/assets/clone-RGlausHy.js.map +1 -0
- package/build/client/assets/cytoscape.esm-BBIONMvf.js +332 -0
- package/build/client/assets/cytoscape.esm-BBIONMvf.js.map +1 -0
- package/build/client/assets/dagre-FFZHY6LT-CGbe3nXJ.js +5 -0
- package/build/client/assets/dagre-FFZHY6LT-CGbe3nXJ.js.map +1 -0
- package/build/client/assets/defaultLocale-C4B-KCzX.js +2 -0
- package/build/client/assets/defaultLocale-C4B-KCzX.js.map +1 -0
- package/build/client/assets/diagram-3EMPZRKU-8UM2S96z.js +25 -0
- package/build/client/assets/diagram-3EMPZRKU-8UM2S96z.js.map +1 -0
- package/build/client/assets/diagram-5UYTHUR4-Bq8b35J7.js +25 -0
- package/build/client/assets/diagram-5UYTHUR4-Bq8b35J7.js.map +1 -0
- package/build/client/assets/diagram-ZTM2IBQH-DZ0Q3vKL.js +44 -0
- package/build/client/assets/diagram-ZTM2IBQH-DZ0Q3vKL.js.map +1 -0
- package/build/client/assets/diff-DTFs5rVO.js +2 -0
- package/build/client/assets/diff-DTFs5rVO.js.map +1 -0
- package/build/client/assets/diff-DpX_9FU6.js +2 -0
- package/build/client/assets/diff-DpX_9FU6.js.map +1 -0
- package/build/client/assets/discord-C86FbV-j.js +2 -0
- package/build/client/assets/discord-C86FbV-j.js.map +1 -0
- package/build/client/assets/discord-DOEtvB6W.js +2 -0
- package/build/client/assets/discord-DOEtvB6W.js.map +1 -0
- package/build/client/assets/entry.client-anc4-dZY.js +35 -0
- package/build/client/assets/entry.client-anc4-dZY.js.map +1 -0
- package/build/client/assets/epic-video-CCv7QINN.js +3210 -0
- package/build/client/assets/epic-video-CCv7QINN.js.map +1 -0
- package/build/client/assets/epic-video-D2Xftn6t.css +1 -0
- package/build/client/assets/epic_ws_.js_-l0sNRNKZ.js +2 -0
- package/build/client/assets/epic_ws_.js_-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/erDiagram-R3QVA2FD-Bu6B069U.js +61 -0
- package/build/client/assets/erDiagram-R3QVA2FD-Bu6B069U.js.map +1 -0
- package/build/client/assets/error-boundary-B8bEOgxp.js +2 -0
- package/build/client/assets/error-boundary-B8bEOgxp.js.map +1 -0
- package/build/client/assets/exercises-l0sNRNKZ.js +2 -0
- package/build/client/assets/exercises-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/finished-RnlPhc3t.js +2 -0
- package/build/client/assets/finished-RnlPhc3t.js.map +1 -0
- package/build/client/assets/flowDiagram-PKI6S5ZS-ie1Nf5_c.js +163 -0
- package/build/client/assets/flowDiagram-PKI6S5ZS-ie1Nf5_c.js.map +1 -0
- package/build/client/assets/ganttDiagram-EK5VF46D-BjgRWg6k.js +268 -0
- package/build/client/assets/ganttDiagram-EK5VF46D-BjgRWg6k.js.map +1 -0
- package/build/client/assets/gitGraphDiagram-GW3U2K7C-BmD31KK0.js +66 -0
- package/build/client/assets/gitGraphDiagram-GW3U2K7C-BmD31KK0.js.map +1 -0
- package/build/client/assets/graph-BBuyk5Ru.js +2 -0
- package/build/client/assets/graph-BBuyk5Ru.js.map +1 -0
- package/build/client/assets/icons-BM6r7NHK.svg +570 -0
- package/build/client/assets/index-7Ba6ptu2.js +42 -0
- package/build/client/assets/index-7Ba6ptu2.js.map +1 -0
- package/build/client/assets/index-Bp_2FjuO.js +10 -0
- package/build/client/assets/index-Bp_2FjuO.js.map +1 -0
- package/build/client/assets/index-CNmh2cao.js +2 -0
- package/build/client/assets/index-CNmh2cao.js.map +1 -0
- package/build/client/assets/index-CZ8q0Nf8.js +2 -0
- package/build/client/assets/index-CZ8q0Nf8.js.map +1 -0
- package/build/client/assets/index-DP2rzg_V.js +2 -0
- package/build/client/assets/index-DP2rzg_V.js.map +1 -0
- package/build/client/assets/index-DSMFPAn8.js +2 -0
- package/build/client/assets/index-DSMFPAn8.js.map +1 -0
- package/build/client/assets/index-DxbpRM0V.js +2 -0
- package/build/client/assets/index-DxbpRM0V.js.map +1 -0
- package/build/client/assets/index-K6Dvbx-E.js +2 -0
- package/build/client/assets/index-K6Dvbx-E.js.map +1 -0
- package/build/client/assets/index-LNXI3Vlr.js +2 -0
- package/build/client/assets/index-LNXI3Vlr.js.map +1 -0
- package/build/client/assets/index-_jNKXw67.js +2 -0
- package/build/client/assets/index-_jNKXw67.js.map +1 -0
- package/build/client/assets/index-l0sNRNKZ.js +2 -0
- package/build/client/assets/index-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/index-rknZKmMI.js +36 -0
- package/build/client/assets/index-rknZKmMI.js.map +1 -0
- package/build/client/assets/infoDiagram-RLU2ROGC-DVoDIRGH.js +3 -0
- package/build/client/assets/infoDiagram-RLU2ROGC-DVoDIRGH.js.map +1 -0
- package/build/client/assets/init-Gi6I4Gst.js +2 -0
- package/build/client/assets/init-Gi6I4Gst.js.map +1 -0
- package/build/client/assets/journeyDiagram-EWQZEKCU-C_Lb2L11.js +140 -0
- package/build/client/assets/journeyDiagram-EWQZEKCU-C_Lb2L11.js.map +1 -0
- package/build/client/assets/jsx-runtime-EKYJJIwR.js +10 -0
- package/build/client/assets/jsx-runtime-EKYJJIwR.js.map +1 -0
- package/build/client/assets/kanban-definition-ILFWEQ3N-KsekSC1N.js +90 -0
- package/build/client/assets/kanban-definition-ILFWEQ3N-KsekSC1N.js.map +1 -0
- package/build/client/assets/katex-DsmCZfJr.js +262 -0
- package/build/client/assets/katex-DsmCZfJr.js.map +1 -0
- package/build/client/assets/l-D9C1VDbZ.js +2 -0
- package/build/client/assets/l-D9C1VDbZ.js.map +1 -0
- package/build/client/assets/launch-editor-l0sNRNKZ.js +2 -0
- package/build/client/assets/launch-editor-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/layout-BkH8Qi9T.js +2 -0
- package/build/client/assets/layout-BkH8Qi9T.js.map +1 -0
- package/build/client/assets/linear-tKBS5mAJ.js +2 -0
- package/build/client/assets/linear-tKBS5mAJ.js.map +1 -0
- package/build/client/assets/loading-CZYaLyAk.js +2 -0
- package/build/client/assets/loading-CZYaLyAk.js.map +1 -0
- package/build/client/assets/login-BHKNDLwl.js +2 -0
- package/build/client/assets/login-BHKNDLwl.js.map +1 -0
- package/build/client/assets/login-sse-l0sNRNKZ.js +2 -0
- package/build/client/assets/login-sse-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/manifest-b97649b5.js +1 -0
- package/build/client/assets/mdx-BEhxx-X4.js +3 -0
- package/build/client/assets/mdx-BEhxx-X4.js.map +1 -0
- package/build/client/assets/mermaid.core-CqaUvNIK.js +214 -0
- package/build/client/assets/mermaid.core-CqaUvNIK.js.map +1 -0
- package/build/client/assets/mindmap-definition-CZNETY7S-BGn0gmpB.js +96 -0
- package/build/client/assets/mindmap-definition-CZNETY7S-BGn0gmpB.js.map +1 -0
- package/build/client/assets/misc-COGqV2fm.js +2 -0
- package/build/client/assets/misc-COGqV2fm.js.map +1 -0
- package/build/client/assets/nav-chevrons-Cxzx0j13.js +2 -0
- package/build/client/assets/nav-chevrons-Cxzx0j13.js.map +1 -0
- package/build/client/assets/notifications-l0sNRNKZ.js +2 -0
- package/build/client/assets/notifications-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/og-l0sNRNKZ.js +2 -0
- package/build/client/assets/og-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/onboarding-7Vho777l.js +2 -0
- package/build/client/assets/onboarding-7Vho777l.js.map +1 -0
- package/build/client/assets/online-CwZkKwTv.js +2 -0
- package/build/client/assets/online-CwZkKwTv.js.map +1 -0
- package/build/client/assets/ordinal-Cboi1Yqb.js +2 -0
- package/build/client/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/build/client/assets/pe-DoDyGTeN.js +2 -0
- package/build/client/assets/pe-DoDyGTeN.js.map +1 -0
- package/build/client/assets/pieDiagram-NIOCPIFQ-TwGmrzCW.js +31 -0
- package/build/client/assets/pieDiagram-NIOCPIFQ-TwGmrzCW.js.map +1 -0
- package/build/client/assets/preferences-Dx_EUPYj.js +2 -0
- package/build/client/assets/preferences-Dx_EUPYj.js.map +1 -0
- package/build/client/assets/presence-tDxUeb6L.js +28 -0
- package/build/client/assets/presence-tDxUeb6L.js.map +1 -0
- package/build/client/assets/preview-COuApZAb.js +2 -0
- package/build/client/assets/preview-COuApZAb.js.map +1 -0
- package/build/client/assets/processes-l0sNRNKZ.js +2 -0
- package/build/client/assets/processes-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/product-DNKDVhI_.js +2 -0
- package/build/client/assets/product-DNKDVhI_.js.map +1 -0
- package/build/client/assets/progress-DKsShYpv.js +2 -0
- package/build/client/assets/progress-DKsShYpv.js.map +1 -0
- package/build/client/assets/progress-bar-Cww9t8Vn.js +2 -0
- package/build/client/assets/progress-bar-Cww9t8Vn.js.map +1 -0
- package/build/client/assets/progress-l0sNRNKZ.js +2 -0
- package/build/client/assets/progress-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/quadrantDiagram-2OG54O6I-C2FaFW77.js +8 -0
- package/build/client/assets/quadrantDiagram-2OG54O6I-C2FaFW77.js.map +1 -0
- package/build/client/assets/requirementDiagram-SO3GGRV7-BENrmejn.js +65 -0
- package/build/client/assets/requirementDiagram-SO3GGRV7-BENrmejn.js.map +1 -0
- package/build/client/assets/revalidation-ws-DJwDeSaI.js +2 -0
- package/build/client/assets/revalidation-ws-DJwDeSaI.js.map +1 -0
- package/build/client/assets/robots_._txt-l0sNRNKZ.js +2 -0
- package/build/client/assets/robots_._txt-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/root-30K5JoaI.js +2 -0
- package/build/client/assets/root-30K5JoaI.js.map +1 -0
- package/build/client/assets/sankeyDiagram-4UZDY2LN-DHcxz6y6.js +11 -0
- package/build/client/assets/sankeyDiagram-4UZDY2LN-DHcxz6y6.js.map +1 -0
- package/build/client/assets/seo-t5J-DRxw.js +2 -0
- package/build/client/assets/seo-t5J-DRxw.js.map +1 -0
- package/build/client/assets/sequenceDiagram-ZIKVLSP4-wsbYfOcv.js +123 -0
- package/build/client/assets/sequenceDiagram-ZIKVLSP4-wsbYfOcv.js.map +1 -0
- package/build/client/assets/set-playground-Bx0yIjpY.js +2 -0
- package/build/client/assets/set-playground-Bx0yIjpY.js.map +1 -0
- package/build/client/assets/set-playground-l0sNRNKZ.js +2 -0
- package/build/client/assets/set-playground-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/sitemap_._xml-l0sNRNKZ.js +2 -0
- package/build/client/assets/sitemap_._xml-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/start-l0sNRNKZ.js +2 -0
- package/build/client/assets/start-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/stateDiagram-XX37X6EN-D8VCWzU7.js +2 -0
- package/build/client/assets/stateDiagram-XX37X6EN-D8VCWzU7.js.map +1 -0
- package/build/client/assets/stateDiagram-v2-GD6S3NHB-CWoWkzf7.js +2 -0
- package/build/client/assets/stateDiagram-v2-GD6S3NHB-CWoWkzf7.js.map +1 -0
- package/build/client/assets/support-BnsTkkCH.js +2 -0
- package/build/client/assets/support-BnsTkkCH.js.map +1 -0
- package/build/client/assets/tailwind-Dqccob1p.css +1 -0
- package/build/client/assets/test-B2dwsj84.js +2 -0
- package/build/client/assets/test-B2dwsj84.js.map +1 -0
- package/build/client/assets/test-l0sNRNKZ.js +2 -0
- package/build/client/assets/test-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/test._testName-l0sNRNKZ.js +2 -0
- package/build/client/assets/test._testName-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/test.epic_ws_.js_-l0sNRNKZ.js +2 -0
- package/build/client/assets/test.epic_ws_.js_-l0sNRNKZ.js.map +1 -0
- package/build/client/assets/tests-DvbNIXBP.js +4 -0
- package/build/client/assets/tests-DvbNIXBP.js.map +1 -0
- package/build/client/assets/timeline-definition-RI47OAVP-D44Hv-fs.js +62 -0
- package/build/client/assets/timeline-definition-RI47OAVP-D44Hv-fs.js.map +1 -0
- package/build/client/assets/tooltip-Cm7A1uIP.js +2 -0
- package/build/client/assets/tooltip-Cm7A1uIP.js.map +1 -0
- package/build/client/assets/treemap-FKARHQ26-COx8AcUM.js +129 -0
- package/build/client/assets/treemap-FKARHQ26-COx8AcUM.js.map +1 -0
- package/build/client/assets/use-event-source-DDlZtAwc.js +2 -0
- package/build/client/assets/use-event-source-DDlZtAwc.js.map +1 -0
- package/build/client/assets/user-BQ8D2Fty.js +2 -0
- package/build/client/assets/user-BQ8D2Fty.js.map +1 -0
- package/build/client/assets/version-CG_ZHfTC.js +2 -0
- package/build/client/assets/version-CG_ZHfTC.js.map +1 -0
- package/build/client/assets/workshop-config-5VcXxeyp.js +2 -0
- package/build/client/assets/workshop-config-5VcXxeyp.js.map +1 -0
- package/build/client/assets/xychartDiagram-H2YORKM3-rhbSyPlb.js +8 -0
- package/build/client/assets/xychartDiagram-H2YORKM3-rhbSyPlb.js.map +1 -0
- package/build/client/favicon.ico +0 -0
- package/build/client/favicon.png +0 -0
- package/build/client/favicon.svg +13 -0
- package/build/client/fonts/neogrotesk/0b8b755c-fee2-4661-9c8b-c5d1fbea901b.woff2 +0 -0
- package/build/client/fonts/neogrotesk/146d9d20-3e53-4e5d-beb2-1209bba5ac61.woff2 +0 -0
- package/build/client/fonts/neogrotesk/1798ef2b-5ee0-4f39-8b2c-ae3e36f07cd1.woff2 +0 -0
- package/build/client/fonts/neogrotesk/1eb2cb40-6822-4654-856c-8cbe652366b6.woff +0 -0
- package/build/client/fonts/neogrotesk/3b64793c-0bdb-4e4f-bf0e-cdf2e974d5f2.woff +0 -0
- package/build/client/fonts/neogrotesk/3bb44ed4-cf17-469c-8d0d-5946d10fdad1.woff +0 -0
- package/build/client/fonts/neogrotesk/4bd29470-1701-41fe-94b6-4a147512160c.woff +0 -0
- package/build/client/fonts/neogrotesk/5cdbf070-a094-44c8-b8f1-17a00a19c959.woff2 +0 -0
- package/build/client/fonts/neogrotesk/6d439be9-37df-4912-ac09-388ce938fa46.woff2 +0 -0
- package/build/client/fonts/neogrotesk/7fc2971f-a9c2-4e09-bd24-bfd4ee6e97b3.woff +0 -0
- package/build/client/fonts/neogrotesk/861b65ee-56bd-4057-9af4-3b2903af231e.woff +0 -0
- package/build/client/fonts/neogrotesk/8cf836d9-a49e-4387-bcbd-4800766e5d24.woff +0 -0
- package/build/client/fonts/neogrotesk/8d61128d-534c-4793-9668-b98bcc2e5969.woff2 +0 -0
- package/build/client/fonts/neogrotesk/98423f75-c341-4161-8b92-7cd5c05081e5.woff +0 -0
- package/build/client/fonts/neogrotesk/a1456726-ad0d-4f5e-9d8f-ce92e8ce375d.woff2 +0 -0
- package/build/client/fonts/neogrotesk/af81e7d2-0bb1-4aa0-bc76-adb78338c568.woff +0 -0
- package/build/client/fonts/neogrotesk/d1302ad5-ceee-47cb-a0fa-2da6bd0d4d54.woff2 +0 -0
- package/build/client/fonts/neogrotesk/e7e15c31-aad1-4384-abd3-0671ccd03251.woff +0 -0
- package/build/client/fonts/neogrotesk/ec6cb127-161b-469c-9816-69489032a234.woff2 +0 -0
- package/build/client/fonts/neogrotesk/f480430c-6c50-4ae3-9abb-e92c484f84d6.woff2 +0 -0
- package/build/client/img/tiffany.png +0 -0
- package/build/client/logo.svg +48 -0
- package/build/client/neogrotesk-font.css +100 -0
- package/build/client/og/background.png +0 -0
- package/build/client/og/logo.svg +1 -0
- package/build/server/index.js +11899 -0
- package/build/server/index.js.map +1 -0
- package/dist/server/index.js +247 -0
- package/package.json +1 -0
- package/start.js +50 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{j as s}from"./jsx-runtime-EKYJJIwR.js";import{o as $t,r as S,d as nt}from"./chunk-QMGIS6GS-CG5cA6CX.js";import{D as kt}from"./epic-video-CCv7QINN.js";import{I as T,h as st}from"./misc-COGqV2fm.js";import{R as Ct,A as Mt}from"./accordion-PSsenYUI.js";import{u as ht,d as X,o as P,i as Ht,n as G,s as Q,l as $,b as bt,f as Ot}from"./index-rknZKmMI.js";import{b as _t}from"./user-BQ8D2Fty.js";import{u as Ut}from"./use-event-source-DDlZtAwc.js";import{S as K}from"./tooltip-Cm7A1uIP.js";import{u as ot}from"./pe-DoDyGTeN.js";import{a as it,P as Ft}from"./set-playground-Bx0yIjpY.js";function Pt({playgroundAppName:o,problemAppName:r,isUpToDate:i,allApps:g,children:e}){const d=o===r,v=d&&i?s.jsx(T,{size:"xl",name:"Linked"}):s.jsx(T,{size:"xl",name:"Unlinked",className:"animate-pulse text-foreground-destructive"});let b="Click to reset Playground.";return i||(b="Playground is out of date. Click to reset Playground."),d||(b="Playground is not set to the right app. Click to set Playground."),s.jsxs("div",{className:"flex h-full w-full flex-col justify-between",children:[s.jsxs("div",{className:"flex h-14 flex-shrink-0 items-center justify-start gap-2 border-b px-3",children:[s.jsx("div",{className:"display-alt-up",children:r?s.jsx(it,{appName:r,tooltipText:b,children:v}):s.jsx(K,{content:"No problem app available for this step",children:s.jsx("div",{children:s.jsx(T,{name:"Question"})})})}),s.jsx("div",{className:"display-alt-down",children:o?s.jsx(it,{appName:o,reset:!0,tooltipText:"Reset Playground",children:s.jsx("div",{className:"flex h-7 w-7 items-center justify-center",children:s.jsx(T,{name:"Refresh"})})}):s.jsx("div",{className:"h-7 w-7"})}),s.jsx(Ft,{allApps:g,playgroundAppName:o})]}),s.jsx("div",{className:"flex h-full flex-1 flex-grow items-center justify-center",children:e})]})}var W={},U={};const It="Á",Bt="á",Vt="Ă",Gt="ă",zt="∾",Xt="∿",Yt="∾̳",Jt="Â",Qt="â",Kt="´",Zt="А",Wt="а",tn="Æ",nn="æ",sn="",on="𝔄",cn="𝔞",en="À",rn="à",an="ℵ",ln="ℵ",un="Α",dn="α",pn="Ā",fn="ā",mn="⨿",gn="&",hn="&",bn="⩕",vn="⩓",xn="∧",yn="⩜",wn="⩘",qn="⩚",Tn="∠",Ln="⦤",jn="∠",Sn="⦨",En="⦩",An="⦪",Dn="⦫",Nn="⦬",Rn="⦭",$n="⦮",kn="⦯",Cn="∡",Mn="∟",Hn="⊾",On="⦝",_n="∢",Un="Å",Fn="⍼",Pn="Ą",In="ą",Bn="𝔸",Vn="𝕒",Gn="⩯",zn="≈",Xn="⩰",Yn="≊",Jn="≋",Qn="'",Kn="",Zn="≈",Wn="≊",ts="Å",ns="å",ss="𝒜",os="𝒶",cs="≔",es="*",rs="≈",as="≍",is="Ã",ls="ã",us="Ä",ds="ä",ps="∳",fs="⨑",ms="≌",gs="϶",hs="‵",bs="∽",vs="⋍",xs="∖",ys="⫧",ws="⊽",qs="⌅",Ts="⌆",Ls="⌅",js="⎵",Ss="⎶",Es="≌",As="Б",Ds="б",Ns="„",Rs="∵",$s="∵",ks="∵",Cs="⦰",Ms="϶",Hs="ℬ",Os="ℬ",_s="Β",Us="β",Fs="ℶ",Ps="≬",Is="𝔅",Bs="𝔟",Vs="⋂",Gs="◯",zs="⋃",Xs="⨀",Ys="⨁",Js="⨂",Qs="⨆",Ks="★",Zs="▽",Ws="△",to="⨄",no="⋁",so="⋀",oo="⤍",co="⧫",eo="▪",ro="▴",ao="▾",io="◂",lo="▸",uo="␣",po="▒",fo="░",mo="▓",go="█",ho="=⃥",bo="≡⃥",vo="⫭",xo="⌐",yo="𝔹",wo="𝕓",qo="⊥",To="⊥",Lo="⋈",jo="⧉",So="┐",Eo="╕",Ao="╖",Do="╗",No="┌",Ro="╒",$o="╓",ko="╔",Co="─",Mo="═",Ho="┬",Oo="╤",_o="╥",Uo="╦",Fo="┴",Po="╧",Io="╨",Bo="╩",Vo="⊟",Go="⊞",zo="⊠",Xo="┘",Yo="╛",Jo="╜",Qo="╝",Ko="└",Zo="╘",Wo="╙",tc="╚",nc="│",sc="║",oc="┼",cc="╪",ec="╫",rc="╬",ac="┤",ic="╡",lc="╢",uc="╣",dc="├",pc="╞",fc="╟",mc="╠",gc="‵",hc="˘",bc="˘",vc="¦",xc="𝒷",yc="ℬ",wc="⁏",qc="∽",Tc="⋍",Lc="⧅",jc="\\",Sc="⟈",Ec="•",Ac="•",Dc="≎",Nc="⪮",Rc="≏",$c="≎",kc="≏",Cc="Ć",Mc="ć",Hc="⩄",Oc="⩉",_c="⩋",Uc="∩",Fc="⋒",Pc="⩇",Ic="⩀",Bc="ⅅ",Vc="∩︀",Gc="⁁",zc="ˇ",Xc="ℭ",Yc="⩍",Jc="Č",Qc="č",Kc="Ç",Zc="ç",Wc="Ĉ",te="ĉ",ne="∰",se="⩌",oe="⩐",ce="Ċ",ee="ċ",re="¸",ae="¸",ie="⦲",le="¢",ue="·",de="·",pe="𝔠",fe="ℭ",me="Ч",ge="ч",he="✓",be="✓",ve="Χ",xe="χ",ye="ˆ",we="≗",qe="↺",Te="↻",Le="⊛",je="⊚",Se="⊝",Ee="⊙",Ae="®",De="Ⓢ",Ne="⊖",Re="⊕",$e="⊗",ke="○",Ce="⧃",Me="≗",He="⨐",Oe="⫯",_e="⧂",Ue="∲",Fe="”",Pe="’",Ie="♣",Be="♣",Ve=":",Ge="∷",ze="⩴",Xe="≔",Ye="≔",Je=",",Qe="@",Ke="∁",Ze="∘",We="∁",tr="ℂ",nr="≅",sr="⩭",or="≡",cr="∮",er="∯",rr="∮",ar="𝕔",ir="ℂ",lr="∐",ur="∐",dr="©",pr="©",fr="℗",mr="∳",gr="↵",hr="✗",br="⨯",vr="𝒞",xr="𝒸",yr="⫏",wr="⫑",qr="⫐",Tr="⫒",Lr="⋯",jr="⤸",Sr="⤵",Er="⋞",Ar="⋟",Dr="↶",Nr="⤽",Rr="⩈",$r="⩆",kr="≍",Cr="∪",Mr="⋓",Hr="⩊",Or="⊍",_r="⩅",Ur="∪︀",Fr="↷",Pr="⤼",Ir="⋞",Br="⋟",Vr="⋎",Gr="⋏",zr="¤",Xr="↶",Yr="↷",Jr="⋎",Qr="⋏",Kr="∲",Zr="∱",Wr="⌭",ta="†",na="‡",sa="ℸ",oa="↓",ca="↡",ea="⇓",ra="‐",aa="⫤",ia="⊣",la="⤏",ua="˝",da="Ď",pa="ď",fa="Д",ma="д",ga="‡",ha="⇊",ba="ⅅ",va="ⅆ",xa="⤑",ya="⩷",wa="°",qa="∇",Ta="Δ",La="δ",ja="⦱",Sa="⥿",Ea="𝔇",Aa="𝔡",Da="⥥",Na="⇃",Ra="⇂",$a="´",ka="˙",Ca="˝",Ma="`",Ha="˜",Oa="⋄",_a="⋄",Ua="⋄",Fa="♦",Pa="♦",Ia="¨",Ba="ⅆ",Va="ϝ",Ga="⋲",za="÷",Xa="÷",Ya="⋇",Ja="⋇",Qa="Ђ",Ka="ђ",Za="⌞",Wa="⌍",ti="$",ni="𝔻",si="𝕕",oi="¨",ci="˙",ei="⃜",ri="≐",ai="≑",ii="≐",li="∸",ui="∔",di="⊡",pi="⌆",fi="∯",mi="¨",gi="⇓",hi="⇐",bi="⇔",vi="⫤",xi="⟸",yi="⟺",wi="⟹",qi="⇒",Ti="⊨",Li="⇑",ji="⇕",Si="∥",Ei="⤓",Ai="↓",Di="↓",Ni="⇓",Ri="⇵",$i="̑",ki="⇊",Ci="⇃",Mi="⇂",Hi="⥐",Oi="⥞",_i="⥖",Ui="↽",Fi="⥟",Pi="⥗",Ii="⇁",Bi="↧",Vi="⊤",Gi="⤐",zi="⌟",Xi="⌌",Yi="𝒟",Ji="𝒹",Qi="Ѕ",Ki="ѕ",Zi="⧶",Wi="Đ",tl="đ",nl="⋱",sl="▿",ol="▾",cl="⇵",el="⥯",rl="⦦",al="Џ",il="џ",ll="⟿",ul="É",dl="é",pl="⩮",fl="Ě",ml="ě",gl="Ê",hl="ê",bl="≖",vl="≕",xl="Э",yl="э",wl="⩷",ql="Ė",Tl="ė",Ll="≑",jl="ⅇ",Sl="≒",El="𝔈",Al="𝔢",Dl="⪚",Nl="È",Rl="è",$l="⪖",kl="⪘",Cl="⪙",Ml="∈",Hl="⏧",Ol="ℓ",_l="⪕",Ul="⪗",Fl="Ē",Pl="ē",Il="∅",Bl="∅",Vl="◻",Gl="∅",zl="▫",Xl=" ",Yl=" ",Jl=" ",Ql="Ŋ",Kl="ŋ",Zl=" ",Wl="Ę",tu="ę",nu="𝔼",su="𝕖",ou="⋕",cu="⧣",eu="⩱",ru="ε",au="Ε",iu="ε",lu="ϵ",uu="≖",du="≕",pu="≂",fu="⪖",mu="⪕",gu="⩵",hu="=",bu="≂",vu="≟",xu="⇌",yu="≡",wu="⩸",qu="⧥",Tu="⥱",Lu="≓",ju="ℯ",Su="ℰ",Eu="≐",Au="⩳",Du="≂",Nu="Η",Ru="η",$u="Ð",ku="ð",Cu="Ë",Mu="ë",Hu="€",Ou="!",_u="∃",Uu="∃",Fu="ℰ",Pu="ⅇ",Iu="ⅇ",Bu="≒",Vu="Ф",Gu="ф",zu="♀",Xu="ffi",Yu="ff",Ju="ffl",Qu="𝔉",Ku="𝔣",Zu="fi",Wu="◼",td="▪",nd="fj",sd="♭",od="fl",cd="▱",ed="ƒ",rd="𝔽",ad="𝕗",id="∀",ld="∀",ud="⋔",dd="⫙",pd="ℱ",fd="⨍",md="½",gd="⅓",hd="¼",bd="⅕",vd="⅙",xd="⅛",yd="⅔",wd="⅖",qd="¾",Td="⅗",Ld="⅜",jd="⅘",Sd="⅚",Ed="⅝",Ad="⅞",Dd="⁄",Nd="⌢",Rd="𝒻",$d="ℱ",kd="ǵ",Cd="Γ",Md="γ",Hd="Ϝ",Od="ϝ",_d="⪆",Ud="Ğ",Fd="ğ",Pd="Ģ",Id="Ĝ",Bd="ĝ",Vd="Г",Gd="г",zd="Ġ",Xd="ġ",Yd="≥",Jd="≧",Qd="⪌",Kd="⋛",Zd="≥",Wd="≧",tp="⩾",np="⪩",sp="⩾",op="⪀",cp="⪂",ep="⪄",rp="⋛︀",ap="⪔",ip="𝔊",lp="𝔤",up="≫",dp="⋙",pp="⋙",fp="ℷ",mp="Ѓ",gp="ѓ",hp="⪥",bp="≷",vp="⪒",xp="⪤",yp="⪊",wp="⪊",qp="⪈",Tp="≩",Lp="⪈",jp="≩",Sp="⋧",Ep="𝔾",Ap="𝕘",Dp="`",Np="≥",Rp="⋛",$p="≧",kp="⪢",Cp="≷",Mp="⩾",Hp="≳",Op="𝒢",_p="ℊ",Up="≳",Fp="⪎",Pp="⪐",Ip="⪧",Bp="⩺",Vp=">",Gp=">",zp="≫",Xp="⋗",Yp="⦕",Jp="⩼",Qp="⪆",Kp="⥸",Zp="⋗",Wp="⋛",tf="⪌",nf="≷",sf="≳",of="≩︀",cf="≩︀",ef="ˇ",rf=" ",af="½",lf="ℋ",uf="Ъ",df="ъ",pf="⥈",ff="↔",mf="⇔",gf="↭",hf="^",bf="ℏ",vf="Ĥ",xf="ĥ",yf="♥",wf="♥",qf="…",Tf="⊹",Lf="𝔥",jf="ℌ",Sf="ℋ",Ef="⤥",Af="⤦",Df="⇿",Nf="∻",Rf="↩",$f="↪",kf="𝕙",Cf="ℍ",Mf="―",Hf="─",Of="𝒽",_f="ℋ",Uf="ℏ",Ff="Ħ",Pf="ħ",If="≎",Bf="≏",Vf="⁃",Gf="‐",zf="Í",Xf="í",Yf="",Jf="Î",Qf="î",Kf="И",Zf="и",Wf="İ",tm="Е",nm="е",sm="¡",om="⇔",cm="𝔦",em="ℑ",rm="Ì",am="ì",im="ⅈ",lm="⨌",um="∭",dm="⧜",pm="℩",fm="IJ",mm="ij",gm="Ī",hm="ī",bm="ℑ",vm="ⅈ",xm="ℐ",ym="ℑ",wm="ı",qm="ℑ",Tm="⊷",Lm="Ƶ",jm="⇒",Sm="℅",Em="∞",Am="⧝",Dm="ı",Nm="⊺",Rm="∫",$m="∬",km="ℤ",Cm="∫",Mm="⊺",Hm="⋂",Om="⨗",_m="⨼",Um="",Fm="",Pm="Ё",Im="ё",Bm="Į",Vm="į",Gm="𝕀",zm="𝕚",Xm="Ι",Ym="ι",Jm="⨼",Qm="¿",Km="𝒾",Zm="ℐ",Wm="∈",tg="⋵",ng="⋹",sg="⋴",og="⋳",cg="∈",eg="",rg="Ĩ",ag="ĩ",ig="І",lg="і",ug="Ï",dg="ï",pg="Ĵ",fg="ĵ",mg="Й",gg="й",hg="𝔍",bg="𝔧",vg="ȷ",xg="𝕁",yg="𝕛",wg="𝒥",qg="𝒿",Tg="Ј",Lg="ј",jg="Є",Sg="є",Eg="Κ",Ag="κ",Dg="ϰ",Ng="Ķ",Rg="ķ",$g="К",kg="к",Cg="𝔎",Mg="𝔨",Hg="ĸ",Og="Х",_g="х",Ug="Ќ",Fg="ќ",Pg="𝕂",Ig="𝕜",Bg="𝒦",Vg="𝓀",Gg="⇚",zg="Ĺ",Xg="ĺ",Yg="⦴",Jg="ℒ",Qg="Λ",Kg="λ",Zg="⟨",Wg="⟪",th="⦑",nh="⟨",sh="⪅",oh="ℒ",ch="«",eh="⇤",rh="⤟",ah="←",ih="↞",lh="⇐",uh="⤝",dh="↩",ph="↫",fh="⤹",mh="⥳",gh="↢",hh="⤙",bh="⤛",vh="⪫",xh="⪭",yh="⪭︀",wh="⤌",qh="⤎",Th="❲",Lh="{",jh="[",Sh="⦋",Eh="⦏",Ah="⦍",Dh="Ľ",Nh="ľ",Rh="Ļ",$h="ļ",kh="⌈",Ch="{",Mh="Л",Hh="л",Oh="⤶",_h="“",Uh="„",Fh="⥧",Ph="⥋",Ih="↲",Bh="≤",Vh="≦",Gh="⟨",zh="⇤",Xh="←",Yh="←",Jh="⇐",Qh="⇆",Kh="↢",Zh="⌈",Wh="⟦",tb="⥡",nb="⥙",sb="⇃",ob="⌊",cb="↽",eb="↼",rb="⇇",ab="↔",ib="↔",lb="⇔",ub="⇆",db="⇋",pb="↭",fb="⥎",mb="↤",gb="⊣",hb="⥚",bb="⋋",vb="⧏",xb="⊲",yb="⊴",wb="⥑",qb="⥠",Tb="⥘",Lb="↿",jb="⥒",Sb="↼",Eb="⪋",Ab="⋚",Db="≤",Nb="≦",Rb="⩽",$b="⪨",kb="⩽",Cb="⩿",Mb="⪁",Hb="⪃",Ob="⋚︀",_b="⪓",Ub="⪅",Fb="⋖",Pb="⋚",Ib="⪋",Bb="⋚",Vb="≦",Gb="≶",zb="≶",Xb="⪡",Yb="≲",Jb="⩽",Qb="≲",Kb="⥼",Zb="⌊",Wb="𝔏",tv="𝔩",nv="≶",sv="⪑",ov="⥢",cv="↽",ev="↼",rv="⥪",av="▄",iv="Љ",lv="љ",uv="⇇",dv="≪",pv="⋘",fv="⌞",mv="⇚",gv="⥫",hv="◺",bv="Ŀ",vv="ŀ",xv="⎰",yv="⎰",wv="⪉",qv="⪉",Tv="⪇",Lv="≨",jv="⪇",Sv="≨",Ev="⋦",Av="⟬",Dv="⇽",Nv="⟦",Rv="⟵",$v="⟵",kv="⟸",Cv="⟷",Mv="⟷",Hv="⟺",Ov="⟼",_v="⟶",Uv="⟶",Fv="⟹",Pv="↫",Iv="↬",Bv="⦅",Vv="𝕃",Gv="𝕝",zv="⨭",Xv="⨴",Yv="∗",Jv="_",Qv="↙",Kv="↘",Zv="◊",Wv="◊",tx="⧫",nx="(",sx="⦓",ox="⇆",cx="⌟",ex="⇋",rx="⥭",ax="",ix="⊿",lx="‹",ux="𝓁",dx="ℒ",px="↰",fx="↰",mx="≲",gx="⪍",hx="⪏",bx="[",vx="‘",xx="‚",yx="Ł",wx="ł",qx="⪦",Tx="⩹",Lx="<",jx="<",Sx="≪",Ex="⋖",Ax="⋋",Dx="⋉",Nx="⥶",Rx="⩻",$x="◃",kx="⊴",Cx="◂",Mx="⦖",Hx="⥊",Ox="⥦",_x="≨︀",Ux="≨︀",Fx="¯",Px="♂",Ix="✠",Bx="✠",Vx="↦",Gx="↦",zx="↧",Xx="↤",Yx="↥",Jx="▮",Qx="⨩",Kx="М",Zx="м",Wx="—",ty="∺",ny="∡",sy=" ",oy="ℳ",cy="𝔐",ey="𝔪",ry="℧",ay="µ",iy="*",ly="⫰",uy="∣",dy="·",py="⊟",fy="−",my="∸",gy="⨪",hy="∓",by="⫛",vy="…",xy="∓",yy="⊧",wy="𝕄",qy="𝕞",Ty="∓",Ly="𝓂",jy="ℳ",Sy="∾",Ey="Μ",Ay="μ",Dy="⊸",Ny="⊸",Ry="∇",$y="Ń",ky="ń",Cy="∠⃒",My="≉",Hy="⩰̸",Oy="≋̸",_y="ʼn",Uy="≉",Fy="♮",Py="ℕ",Iy="♮",By=" ",Vy="≎̸",Gy="≏̸",zy="⩃",Xy="Ň",Yy="ň",Jy="Ņ",Qy="ņ",Ky="≇",Zy="⩭̸",Wy="⩂",tw="Н",nw="н",sw="–",ow="⤤",cw="↗",ew="⇗",rw="↗",aw="≠",iw="≐̸",lw="",uw="",dw="",pw="",fw="≢",mw="⤨",gw="≂̸",hw="≫",bw="≪",vw=`
|
|
2
|
+
`,xw="∄",yw="∄",ww="𝔑",qw="𝔫",Tw="≧̸",Lw="≱",jw="≱",Sw="≧̸",Ew="⩾̸",Aw="⩾̸",Dw="⋙̸",Nw="≵",Rw="≫⃒",$w="≯",kw="≯",Cw="≫̸",Mw="↮",Hw="⇎",Ow="⫲",_w="∋",Uw="⋼",Fw="⋺",Pw="∋",Iw="Њ",Bw="њ",Vw="↚",Gw="⇍",zw="‥",Xw="≦̸",Yw="≰",Jw="↚",Qw="⇍",Kw="↮",Zw="⇎",Ww="≰",t1="≦̸",n1="⩽̸",s1="⩽̸",o1="≮",c1="⋘̸",e1="≴",r1="≪⃒",a1="≮",i1="⋪",l1="⋬",u1="≪̸",d1="∤",p1="",f1=" ",m1="𝕟",g1="ℕ",h1="⫬",b1="¬",v1="≢",x1="≭",y1="∦",w1="∉",q1="≠",T1="≂̸",L1="∄",j1="≯",S1="≱",E1="≧̸",A1="≫̸",D1="≹",N1="⩾̸",R1="≵",$1="≎̸",k1="≏̸",C1="∉",M1="⋵̸",H1="⋹̸",O1="∉",_1="⋷",U1="⋶",F1="⧏̸",P1="⋪",I1="⋬",B1="≮",V1="≰",G1="≸",z1="≪̸",X1="⩽̸",Y1="≴",J1="⪢̸",Q1="⪡̸",K1="∌",Z1="∌",W1="⋾",tq="⋽",nq="⊀",sq="⪯̸",oq="⋠",cq="∌",eq="⧐̸",rq="⋫",aq="⋭",iq="⊏̸",lq="⋢",uq="⊐̸",dq="⋣",pq="⊂⃒",fq="⊈",mq="⊁",gq="⪰̸",hq="⋡",bq="≿̸",vq="⊃⃒",xq="⊉",yq="≁",wq="≄",qq="≇",Tq="≉",Lq="∤",jq="∦",Sq="∦",Eq="⫽⃥",Aq="∂̸",Dq="⨔",Nq="⊀",Rq="⋠",$q="⊀",kq="⪯̸",Cq="⪯̸",Mq="⤳̸",Hq="↛",Oq="⇏",_q="↝̸",Uq="↛",Fq="⇏",Pq="⋫",Iq="⋭",Bq="⊁",Vq="⋡",Gq="⪰̸",zq="𝒩",Xq="𝓃",Yq="∤",Jq="∦",Qq="≁",Kq="≄",Zq="≄",Wq="∤",tT="∦",nT="⋢",sT="⋣",oT="⊄",cT="⫅̸",eT="⊈",rT="⊂⃒",aT="⊈",iT="⫅̸",lT="⊁",uT="⪰̸",dT="⊅",pT="⫆̸",fT="⊉",mT="⊃⃒",gT="⊉",hT="⫆̸",bT="≹",vT="Ñ",xT="ñ",yT="≸",wT="⋪",qT="⋬",TT="⋫",LT="⋭",jT="Ν",ST="ν",ET="#",AT="№",DT=" ",NT="≍⃒",RT="⊬",$T="⊭",kT="⊮",CT="⊯",MT="≥⃒",HT=">⃒",OT="⤄",_T="⧞",UT="⤂",FT="≤⃒",PT="<⃒",IT="⊴⃒",BT="⤃",VT="⊵⃒",GT="∼⃒",zT="⤣",XT="↖",YT="⇖",JT="↖",QT="⤧",KT="Ó",ZT="ó",WT="⊛",tL="Ô",nL="ô",sL="⊚",oL="О",cL="о",eL="⊝",rL="Ő",aL="ő",iL="⨸",lL="⊙",uL="⦼",dL="Œ",pL="œ",fL="⦿",mL="𝔒",gL="𝔬",hL="˛",bL="Ò",vL="ò",xL="⧁",yL="⦵",wL="Ω",qL="∮",TL="↺",LL="⦾",jL="⦻",SL="‾",EL="⧀",AL="Ō",DL="ō",NL="Ω",RL="ω",$L="Ο",kL="ο",CL="⦶",ML="⊖",HL="𝕆",OL="𝕠",_L="⦷",UL="“",FL="‘",PL="⦹",IL="⊕",BL="↻",VL="⩔",GL="∨",zL="⩝",XL="ℴ",YL="ℴ",JL="ª",QL="º",KL="⊶",ZL="⩖",WL="⩗",tj="⩛",nj="Ⓢ",sj="𝒪",oj="ℴ",cj="Ø",ej="ø",rj="⊘",aj="Õ",ij="õ",lj="⨶",uj="⨷",dj="⊗",pj="Ö",fj="ö",mj="⌽",gj="‾",hj="⏞",bj="⎴",vj="⏜",xj="¶",yj="∥",wj="∥",qj="⫳",Tj="⫽",Lj="∂",jj="∂",Sj="П",Ej="п",Aj="%",Dj=".",Nj="‰",Rj="⊥",$j="‱",kj="𝔓",Cj="𝔭",Mj="Φ",Hj="φ",Oj="ϕ",_j="ℳ",Uj="☎",Fj="Π",Pj="π",Ij="⋔",Bj="ϖ",Vj="ℏ",Gj="ℎ",zj="ℏ",Xj="⨣",Yj="⊞",Jj="⨢",Qj="+",Kj="∔",Zj="⨥",Wj="⩲",tS="±",nS="±",sS="⨦",oS="⨧",cS="±",eS="ℌ",rS="⨕",aS="𝕡",iS="ℙ",lS="£",uS="⪷",dS="⪻",pS="≺",fS="≼",mS="⪷",gS="≺",hS="≼",bS="≺",vS="⪯",xS="≼",yS="≾",wS="⪯",qS="⪹",TS="⪵",LS="⋨",jS="⪯",SS="⪳",ES="≾",AS="′",DS="″",NS="ℙ",RS="⪹",$S="⪵",kS="⋨",CS="∏",MS="∏",HS="⌮",OS="⌒",_S="⌓",US="∝",FS="∝",PS="∷",IS="∝",BS="≾",VS="⊰",GS="𝒫",zS="𝓅",XS="Ψ",YS="ψ",JS=" ",QS="𝔔",KS="𝔮",ZS="⨌",WS="𝕢",t0="ℚ",n0="⁗",s0="𝒬",o0="𝓆",c0="ℍ",e0="⨖",r0="?",a0="≟",i0='"',l0='"',u0="⇛",d0="∽̱",p0="Ŕ",f0="ŕ",m0="√",g0="⦳",h0="⟩",b0="⟫",v0="⦒",x0="⦥",y0="⟩",w0="»",q0="⥵",T0="⇥",L0="⤠",j0="⤳",S0="→",E0="↠",A0="⇒",D0="⤞",N0="↪",R0="↬",$0="⥅",k0="⥴",C0="⤖",M0="↣",H0="↝",O0="⤚",_0="⤜",U0="∶",F0="ℚ",P0="⤍",I0="⤏",B0="⤐",V0="❳",G0="}",z0="]",X0="⦌",Y0="⦎",J0="⦐",Q0="Ř",K0="ř",Z0="Ŗ",W0="ŗ",tE="⌉",nE="}",sE="Р",oE="р",cE="⤷",eE="⥩",rE="”",aE="”",iE="↳",lE="ℜ",uE="ℛ",dE="ℜ",pE="ℝ",fE="ℜ",mE="▭",gE="®",hE="®",bE="∋",vE="⇋",xE="⥯",yE="⥽",wE="⌋",qE="𝔯",TE="ℜ",LE="⥤",jE="⇁",SE="⇀",EE="⥬",AE="Ρ",DE="ρ",NE="ϱ",RE="⟩",$E="⇥",kE="→",CE="→",ME="⇒",HE="⇄",OE="↣",_E="⌉",UE="⟧",FE="⥝",PE="⥕",IE="⇂",BE="⌋",VE="⇁",GE="⇀",zE="⇄",XE="⇌",YE="⇉",JE="↝",QE="↦",KE="⊢",ZE="⥛",WE="⋌",tA="⧐",nA="⊳",sA="⊵",oA="⥏",cA="⥜",eA="⥔",rA="↾",aA="⥓",iA="⇀",lA="˚",uA="≓",dA="⇄",pA="⇌",fA="",mA="⎱",gA="⎱",hA="⫮",bA="⟭",vA="⇾",xA="⟧",yA="⦆",wA="𝕣",qA="ℝ",TA="⨮",LA="⨵",jA="⥰",SA=")",EA="⦔",AA="⨒",DA="⇉",NA="⇛",RA="›",$A="𝓇",kA="ℛ",CA="↱",MA="↱",HA="]",OA="’",_A="’",UA="⋌",FA="⋊",PA="▹",IA="⊵",BA="▸",VA="⧎",GA="⧴",zA="⥨",XA="℞",YA="Ś",JA="ś",QA="‚",KA="⪸",ZA="Š",WA="š",tD="⪼",nD="≻",sD="≽",oD="⪰",cD="⪴",eD="Ş",rD="ş",aD="Ŝ",iD="ŝ",lD="⪺",uD="⪶",dD="⋩",pD="⨓",fD="≿",mD="С",gD="с",hD="⊡",bD="⋅",vD="⩦",xD="⤥",yD="↘",wD="⇘",qD="↘",TD="§",LD=";",jD="⤩",SD="∖",ED="∖",AD="✶",DD="𝔖",ND="𝔰",RD="⌢",$D="♯",kD="Щ",CD="щ",MD="Ш",HD="ш",OD="↓",_D="←",UD="∣",FD="∥",PD="→",ID="↑",BD="",VD="Σ",GD="σ",zD="ς",XD="ς",YD="∼",JD="⩪",QD="≃",KD="≃",ZD="⪞",WD="⪠",tN="⪝",nN="⪟",sN="≆",oN="⨤",cN="⥲",eN="←",rN="∘",aN="∖",iN="⨳",lN="⧤",uN="∣",dN="⌣",pN="⪪",fN="⪬",mN="⪬︀",gN="Ь",hN="ь",bN="⌿",vN="⧄",xN="/",yN="𝕊",wN="𝕤",qN="♠",TN="♠",LN="∥",jN="⊓",SN="⊓︀",EN="⊔",AN="⊔︀",DN="√",NN="⊏",RN="⊑",$N="⊏",kN="⊑",CN="⊐",MN="⊒",HN="⊐",ON="⊒",_N="□",UN="□",FN="⊓",PN="⊏",IN="⊑",BN="⊐",VN="⊒",GN="⊔",zN="▪",XN="□",YN="▪",JN="→",QN="𝒮",KN="𝓈",ZN="∖",WN="⌣",tR="⋆",nR="⋆",sR="☆",oR="★",cR="ϵ",eR="ϕ",rR="¯",aR="⊂",iR="⋐",lR="⪽",uR="⫅",dR="⊆",pR="⫃",fR="⫁",mR="⫋",gR="⊊",hR="⪿",bR="⥹",vR="⊂",xR="⋐",yR="⊆",wR="⫅",qR="⊆",TR="⊊",LR="⫋",jR="⫇",SR="⫕",ER="⫓",AR="⪸",DR="≻",NR="≽",RR="≻",$R="⪰",kR="≽",CR="≿",MR="⪰",HR="⪺",OR="⪶",_R="⋩",UR="≿",FR="∋",PR="∑",IR="∑",BR="♪",VR="¹",GR="²",zR="³",XR="⊃",YR="⋑",JR="⪾",QR="⫘",KR="⫆",ZR="⊇",WR="⫄",t$="⊃",n$="⊇",s$="⟉",o$="⫗",c$="⥻",e$="⫂",r$="⫌",a$="⊋",i$="⫀",l$="⊃",u$="⋑",d$="⊇",p$="⫆",f$="⊋",m$="⫌",g$="⫈",h$="⫔",b$="⫖",v$="⤦",x$="↙",y$="⇙",w$="↙",q$="⤪",T$="ß",L$=" ",j$="⌖",S$="Τ",E$="τ",A$="⎴",D$="Ť",N$="ť",R$="Ţ",$$="ţ",k$="Т",C$="т",M$="⃛",H$="⌕",O$="𝔗",_$="𝔱",U$="∴",F$="∴",P$="∴",I$="Θ",B$="θ",V$="ϑ",G$="ϑ",z$="≈",X$="∼",Y$=" ",J$=" ",Q$=" ",K$="≈",Z$="∼",W$="Þ",tk="þ",nk="˜",sk="∼",ok="≃",ck="≅",ek="≈",rk="⨱",ak="⊠",ik="×",lk="⨰",uk="∭",dk="⤨",pk="⌶",fk="⫱",mk="⊤",gk="𝕋",hk="𝕥",bk="⫚",vk="⤩",xk="‴",yk="™",wk="™",qk="▵",Tk="▿",Lk="◃",jk="⊴",Sk="≜",Ek="▹",Ak="⊵",Dk="◬",Nk="≜",Rk="⨺",$k="⃛",kk="⨹",Ck="⧍",Mk="⨻",Hk="⏢",Ok="𝒯",_k="𝓉",Uk="Ц",Fk="ц",Pk="Ћ",Ik="ћ",Bk="Ŧ",Vk="ŧ",Gk="≬",zk="↞",Xk="↠",Yk="Ú",Jk="ú",Qk="↑",Kk="↟",Zk="⇑",Wk="⥉",tC="Ў",nC="ў",sC="Ŭ",oC="ŭ",cC="Û",eC="û",rC="У",aC="у",iC="⇅",lC="Ű",uC="ű",dC="⥮",pC="⥾",fC="𝔘",mC="𝔲",gC="Ù",hC="ù",bC="⥣",vC="↿",xC="↾",yC="▀",wC="⌜",qC="⌜",TC="⌏",LC="◸",jC="Ū",SC="ū",EC="¨",AC="_",DC="⏟",NC="⎵",RC="⏝",$C="⋃",kC="⊎",CC="Ų",MC="ų",HC="𝕌",OC="𝕦",_C="⤒",UC="↑",FC="↑",PC="⇑",IC="⇅",BC="↕",VC="↕",GC="⇕",zC="⥮",XC="↿",YC="↾",JC="⊎",QC="↖",KC="↗",ZC="υ",WC="ϒ",tM="ϒ",nM="Υ",sM="υ",oM="↥",cM="⊥",eM="⇈",rM="⌝",aM="⌝",iM="⌎",lM="Ů",uM="ů",dM="◹",pM="𝒰",fM="𝓊",mM="⋰",gM="Ũ",hM="ũ",bM="▵",vM="▴",xM="⇈",yM="Ü",wM="ü",qM="⦧",TM="⦜",LM="ϵ",jM="ϰ",SM="∅",EM="ϕ",AM="ϖ",DM="∝",NM="↕",RM="⇕",$M="ϱ",kM="ς",CM="⊊︀",MM="⫋︀",HM="⊋︀",OM="⫌︀",_M="ϑ",UM="⊲",FM="⊳",PM="⫨",IM="⫫",BM="⫩",VM="В",GM="в",zM="⊢",XM="⊨",YM="⊩",JM="⊫",QM="⫦",KM="⊻",ZM="∨",WM="⋁",tH="≚",nH="⋮",sH="|",oH="‖",cH="|",eH="‖",rH="∣",aH="|",iH="❘",lH="≀",uH=" ",dH="𝔙",pH="𝔳",fH="⊲",mH="⊂⃒",gH="⊃⃒",hH="𝕍",bH="𝕧",vH="∝",xH="⊳",yH="𝒱",wH="𝓋",qH="⫋︀",TH="⊊︀",LH="⫌︀",jH="⊋︀",SH="⊪",EH="⦚",AH="Ŵ",DH="ŵ",NH="⩟",RH="∧",$H="⋀",kH="≙",CH="℘",MH="𝔚",HH="𝔴",OH="𝕎",_H="𝕨",UH="℘",FH="≀",PH="≀",IH="𝒲",BH="𝓌",VH="⋂",GH="◯",zH="⋃",XH="▽",YH="𝔛",JH="𝔵",QH="⟷",KH="⟺",ZH="Ξ",WH="ξ",t2="⟵",n2="⟸",s2="⟼",o2="⋻",c2="⨀",e2="𝕏",r2="𝕩",a2="⨁",i2="⨂",l2="⟶",u2="⟹",d2="𝒳",p2="𝓍",f2="⨆",m2="⨄",g2="△",h2="⋁",b2="⋀",v2="Ý",x2="ý",y2="Я",w2="я",q2="Ŷ",T2="ŷ",L2="Ы",j2="ы",S2="¥",E2="𝔜",A2="𝔶",D2="Ї",N2="ї",R2="𝕐",$2="𝕪",k2="𝒴",C2="𝓎",M2="Ю",H2="ю",O2="ÿ",_2="Ÿ",U2="Ź",F2="ź",P2="Ž",I2="ž",B2="З",V2="з",G2="Ż",z2="ż",X2="ℨ",Y2="",J2="Ζ",Q2="ζ",K2="𝔷",Z2="ℨ",W2="Ж",tO="ж",nO="⇝",sO="𝕫",oO="ℤ",cO="𝒵",eO="𝓏",rO="",aO="",vt={Aacute:It,aacute:Bt,Abreve:Vt,abreve:Gt,ac:zt,acd:Xt,acE:Yt,Acirc:Jt,acirc:Qt,acute:Kt,Acy:Zt,acy:Wt,AElig:tn,aelig:nn,af:sn,Afr:on,afr:cn,Agrave:en,agrave:rn,alefsym:an,aleph:ln,Alpha:un,alpha:dn,Amacr:pn,amacr:fn,amalg:mn,amp:gn,AMP:hn,andand:bn,And:vn,and:xn,andd:yn,andslope:wn,andv:qn,ang:Tn,ange:Ln,angle:jn,angmsdaa:Sn,angmsdab:En,angmsdac:An,angmsdad:Dn,angmsdae:Nn,angmsdaf:Rn,angmsdag:$n,angmsdah:kn,angmsd:Cn,angrt:Mn,angrtvb:Hn,angrtvbd:On,angsph:_n,angst:Un,angzarr:Fn,Aogon:Pn,aogon:In,Aopf:Bn,aopf:Vn,apacir:Gn,ap:zn,apE:Xn,ape:Yn,apid:Jn,apos:Qn,ApplyFunction:Kn,approx:Zn,approxeq:Wn,Aring:ts,aring:ns,Ascr:ss,ascr:os,Assign:cs,ast:es,asymp:rs,asympeq:as,Atilde:is,atilde:ls,Auml:us,auml:ds,awconint:ps,awint:fs,backcong:ms,backepsilon:gs,backprime:hs,backsim:bs,backsimeq:vs,Backslash:xs,Barv:ys,barvee:ws,barwed:qs,Barwed:Ts,barwedge:Ls,bbrk:js,bbrktbrk:Ss,bcong:Es,Bcy:As,bcy:Ds,bdquo:Ns,becaus:Rs,because:$s,Because:ks,bemptyv:Cs,bepsi:Ms,bernou:Hs,Bernoullis:Os,Beta:_s,beta:Us,beth:Fs,between:Ps,Bfr:Is,bfr:Bs,bigcap:Vs,bigcirc:Gs,bigcup:zs,bigodot:Xs,bigoplus:Ys,bigotimes:Js,bigsqcup:Qs,bigstar:Ks,bigtriangledown:Zs,bigtriangleup:Ws,biguplus:to,bigvee:no,bigwedge:so,bkarow:oo,blacklozenge:co,blacksquare:eo,blacktriangle:ro,blacktriangledown:ao,blacktriangleleft:io,blacktriangleright:lo,blank:uo,blk12:po,blk14:fo,blk34:mo,block:go,bne:ho,bnequiv:bo,bNot:vo,bnot:xo,Bopf:yo,bopf:wo,bot:qo,bottom:To,bowtie:Lo,boxbox:jo,boxdl:So,boxdL:Eo,boxDl:Ao,boxDL:Do,boxdr:No,boxdR:Ro,boxDr:$o,boxDR:ko,boxh:Co,boxH:Mo,boxhd:Ho,boxHd:Oo,boxhD:_o,boxHD:Uo,boxhu:Fo,boxHu:Po,boxhU:Io,boxHU:Bo,boxminus:Vo,boxplus:Go,boxtimes:zo,boxul:Xo,boxuL:Yo,boxUl:Jo,boxUL:Qo,boxur:Ko,boxuR:Zo,boxUr:Wo,boxUR:tc,boxv:nc,boxV:sc,boxvh:oc,boxvH:cc,boxVh:ec,boxVH:rc,boxvl:ac,boxvL:ic,boxVl:lc,boxVL:uc,boxvr:dc,boxvR:pc,boxVr:fc,boxVR:mc,bprime:gc,breve:hc,Breve:bc,brvbar:vc,bscr:xc,Bscr:yc,bsemi:wc,bsim:qc,bsime:Tc,bsolb:Lc,bsol:jc,bsolhsub:Sc,bull:Ec,bullet:Ac,bump:Dc,bumpE:Nc,bumpe:Rc,Bumpeq:$c,bumpeq:kc,Cacute:Cc,cacute:Mc,capand:Hc,capbrcup:Oc,capcap:_c,cap:Uc,Cap:Fc,capcup:Pc,capdot:Ic,CapitalDifferentialD:Bc,caps:Vc,caret:Gc,caron:zc,Cayleys:Xc,ccaps:Yc,Ccaron:Jc,ccaron:Qc,Ccedil:Kc,ccedil:Zc,Ccirc:Wc,ccirc:te,Cconint:ne,ccups:se,ccupssm:oe,Cdot:ce,cdot:ee,cedil:re,Cedilla:ae,cemptyv:ie,cent:le,centerdot:ue,CenterDot:de,cfr:pe,Cfr:fe,CHcy:me,chcy:ge,check:he,checkmark:be,Chi:ve,chi:xe,circ:ye,circeq:we,circlearrowleft:qe,circlearrowright:Te,circledast:Le,circledcirc:je,circleddash:Se,CircleDot:Ee,circledR:Ae,circledS:De,CircleMinus:Ne,CirclePlus:Re,CircleTimes:$e,cir:ke,cirE:Ce,cire:Me,cirfnint:He,cirmid:Oe,cirscir:_e,ClockwiseContourIntegral:Ue,CloseCurlyDoubleQuote:Fe,CloseCurlyQuote:Pe,clubs:Ie,clubsuit:Be,colon:Ve,Colon:Ge,Colone:ze,colone:Xe,coloneq:Ye,comma:Je,commat:Qe,comp:Ke,compfn:Ze,complement:We,complexes:tr,cong:nr,congdot:sr,Congruent:or,conint:cr,Conint:er,ContourIntegral:rr,copf:ar,Copf:ir,coprod:lr,Coproduct:ur,copy:dr,COPY:pr,copysr:fr,CounterClockwiseContourIntegral:mr,crarr:gr,cross:hr,Cross:br,Cscr:vr,cscr:xr,csub:yr,csube:wr,csup:qr,csupe:Tr,ctdot:Lr,cudarrl:jr,cudarrr:Sr,cuepr:Er,cuesc:Ar,cularr:Dr,cularrp:Nr,cupbrcap:Rr,cupcap:$r,CupCap:kr,cup:Cr,Cup:Mr,cupcup:Hr,cupdot:Or,cupor:_r,cups:Ur,curarr:Fr,curarrm:Pr,curlyeqprec:Ir,curlyeqsucc:Br,curlyvee:Vr,curlywedge:Gr,curren:zr,curvearrowleft:Xr,curvearrowright:Yr,cuvee:Jr,cuwed:Qr,cwconint:Kr,cwint:Zr,cylcty:Wr,dagger:ta,Dagger:na,daleth:sa,darr:oa,Darr:ca,dArr:ea,dash:ra,Dashv:aa,dashv:ia,dbkarow:la,dblac:ua,Dcaron:da,dcaron:pa,Dcy:fa,dcy:ma,ddagger:ga,ddarr:ha,DD:ba,dd:va,DDotrahd:xa,ddotseq:ya,deg:wa,Del:qa,Delta:Ta,delta:La,demptyv:ja,dfisht:Sa,Dfr:Ea,dfr:Aa,dHar:Da,dharl:Na,dharr:Ra,DiacriticalAcute:$a,DiacriticalDot:ka,DiacriticalDoubleAcute:Ca,DiacriticalGrave:Ma,DiacriticalTilde:Ha,diam:Oa,diamond:_a,Diamond:Ua,diamondsuit:Fa,diams:Pa,die:Ia,DifferentialD:Ba,digamma:Va,disin:Ga,div:za,divide:Xa,divideontimes:Ya,divonx:Ja,DJcy:Qa,djcy:Ka,dlcorn:Za,dlcrop:Wa,dollar:ti,Dopf:ni,dopf:si,Dot:oi,dot:ci,DotDot:ei,doteq:ri,doteqdot:ai,DotEqual:ii,dotminus:li,dotplus:ui,dotsquare:di,doublebarwedge:pi,DoubleContourIntegral:fi,DoubleDot:mi,DoubleDownArrow:gi,DoubleLeftArrow:hi,DoubleLeftRightArrow:bi,DoubleLeftTee:vi,DoubleLongLeftArrow:xi,DoubleLongLeftRightArrow:yi,DoubleLongRightArrow:wi,DoubleRightArrow:qi,DoubleRightTee:Ti,DoubleUpArrow:Li,DoubleUpDownArrow:ji,DoubleVerticalBar:Si,DownArrowBar:Ei,downarrow:Ai,DownArrow:Di,Downarrow:Ni,DownArrowUpArrow:Ri,DownBreve:$i,downdownarrows:ki,downharpoonleft:Ci,downharpoonright:Mi,DownLeftRightVector:Hi,DownLeftTeeVector:Oi,DownLeftVectorBar:_i,DownLeftVector:Ui,DownRightTeeVector:Fi,DownRightVectorBar:Pi,DownRightVector:Ii,DownTeeArrow:Bi,DownTee:Vi,drbkarow:Gi,drcorn:zi,drcrop:Xi,Dscr:Yi,dscr:Ji,DScy:Qi,dscy:Ki,dsol:Zi,Dstrok:Wi,dstrok:tl,dtdot:nl,dtri:sl,dtrif:ol,duarr:cl,duhar:el,dwangle:rl,DZcy:al,dzcy:il,dzigrarr:ll,Eacute:ul,eacute:dl,easter:pl,Ecaron:fl,ecaron:ml,Ecirc:gl,ecirc:hl,ecir:bl,ecolon:vl,Ecy:xl,ecy:yl,eDDot:wl,Edot:ql,edot:Tl,eDot:Ll,ee:jl,efDot:Sl,Efr:El,efr:Al,eg:Dl,Egrave:Nl,egrave:Rl,egs:$l,egsdot:kl,el:Cl,Element:Ml,elinters:Hl,ell:Ol,els:_l,elsdot:Ul,Emacr:Fl,emacr:Pl,empty:Il,emptyset:Bl,EmptySmallSquare:Vl,emptyv:Gl,EmptyVerySmallSquare:zl,emsp13:Xl,emsp14:Yl,emsp:Jl,ENG:Ql,eng:Kl,ensp:Zl,Eogon:Wl,eogon:tu,Eopf:nu,eopf:su,epar:ou,eparsl:cu,eplus:eu,epsi:ru,Epsilon:au,epsilon:iu,epsiv:lu,eqcirc:uu,eqcolon:du,eqsim:pu,eqslantgtr:fu,eqslantless:mu,Equal:gu,equals:hu,EqualTilde:bu,equest:vu,Equilibrium:xu,equiv:yu,equivDD:wu,eqvparsl:qu,erarr:Tu,erDot:Lu,escr:ju,Escr:Su,esdot:Eu,Esim:Au,esim:Du,Eta:Nu,eta:Ru,ETH:$u,eth:ku,Euml:Cu,euml:Mu,euro:Hu,excl:Ou,exist:_u,Exists:Uu,expectation:Fu,exponentiale:Pu,ExponentialE:Iu,fallingdotseq:Bu,Fcy:Vu,fcy:Gu,female:zu,ffilig:Xu,fflig:Yu,ffllig:Ju,Ffr:Qu,ffr:Ku,filig:Zu,FilledSmallSquare:Wu,FilledVerySmallSquare:td,fjlig:nd,flat:sd,fllig:od,fltns:cd,fnof:ed,Fopf:rd,fopf:ad,forall:id,ForAll:ld,fork:ud,forkv:dd,Fouriertrf:pd,fpartint:fd,frac12:md,frac13:gd,frac14:hd,frac15:bd,frac16:vd,frac18:xd,frac23:yd,frac25:wd,frac34:qd,frac35:Td,frac38:Ld,frac45:jd,frac56:Sd,frac58:Ed,frac78:Ad,frasl:Dd,frown:Nd,fscr:Rd,Fscr:$d,gacute:kd,Gamma:Cd,gamma:Md,Gammad:Hd,gammad:Od,gap:_d,Gbreve:Ud,gbreve:Fd,Gcedil:Pd,Gcirc:Id,gcirc:Bd,Gcy:Vd,gcy:Gd,Gdot:zd,gdot:Xd,ge:Yd,gE:Jd,gEl:Qd,gel:Kd,geq:Zd,geqq:Wd,geqslant:tp,gescc:np,ges:sp,gesdot:op,gesdoto:cp,gesdotol:ep,gesl:rp,gesles:ap,Gfr:ip,gfr:lp,gg:up,Gg:dp,ggg:pp,gimel:fp,GJcy:mp,gjcy:gp,gla:hp,gl:bp,glE:vp,glj:xp,gnap:yp,gnapprox:wp,gne:qp,gnE:Tp,gneq:Lp,gneqq:jp,gnsim:Sp,Gopf:Ep,gopf:Ap,grave:Dp,GreaterEqual:Np,GreaterEqualLess:Rp,GreaterFullEqual:$p,GreaterGreater:kp,GreaterLess:Cp,GreaterSlantEqual:Mp,GreaterTilde:Hp,Gscr:Op,gscr:_p,gsim:Up,gsime:Fp,gsiml:Pp,gtcc:Ip,gtcir:Bp,gt:Vp,GT:Gp,Gt:zp,gtdot:Xp,gtlPar:Yp,gtquest:Jp,gtrapprox:Qp,gtrarr:Kp,gtrdot:Zp,gtreqless:Wp,gtreqqless:tf,gtrless:nf,gtrsim:sf,gvertneqq:of,gvnE:cf,Hacek:ef,hairsp:rf,half:af,hamilt:lf,HARDcy:uf,hardcy:df,harrcir:pf,harr:ff,hArr:mf,harrw:gf,Hat:hf,hbar:bf,Hcirc:vf,hcirc:xf,hearts:yf,heartsuit:wf,hellip:qf,hercon:Tf,hfr:Lf,Hfr:jf,HilbertSpace:Sf,hksearow:Ef,hkswarow:Af,hoarr:Df,homtht:Nf,hookleftarrow:Rf,hookrightarrow:$f,hopf:kf,Hopf:Cf,horbar:Mf,HorizontalLine:Hf,hscr:Of,Hscr:_f,hslash:Uf,Hstrok:Ff,hstrok:Pf,HumpDownHump:If,HumpEqual:Bf,hybull:Vf,hyphen:Gf,Iacute:zf,iacute:Xf,ic:Yf,Icirc:Jf,icirc:Qf,Icy:Kf,icy:Zf,Idot:Wf,IEcy:tm,iecy:nm,iexcl:sm,iff:om,ifr:cm,Ifr:em,Igrave:rm,igrave:am,ii:im,iiiint:lm,iiint:um,iinfin:dm,iiota:pm,IJlig:fm,ijlig:mm,Imacr:gm,imacr:hm,image:bm,ImaginaryI:vm,imagline:xm,imagpart:ym,imath:wm,Im:qm,imof:Tm,imped:Lm,Implies:jm,incare:Sm,in:"∈",infin:Em,infintie:Am,inodot:Dm,intcal:Nm,int:Rm,Int:$m,integers:km,Integral:Cm,intercal:Mm,Intersection:Hm,intlarhk:Om,intprod:_m,InvisibleComma:Um,InvisibleTimes:Fm,IOcy:Pm,iocy:Im,Iogon:Bm,iogon:Vm,Iopf:Gm,iopf:zm,Iota:Xm,iota:Ym,iprod:Jm,iquest:Qm,iscr:Km,Iscr:Zm,isin:Wm,isindot:tg,isinE:ng,isins:sg,isinsv:og,isinv:cg,it:eg,Itilde:rg,itilde:ag,Iukcy:ig,iukcy:lg,Iuml:ug,iuml:dg,Jcirc:pg,jcirc:fg,Jcy:mg,jcy:gg,Jfr:hg,jfr:bg,jmath:vg,Jopf:xg,jopf:yg,Jscr:wg,jscr:qg,Jsercy:Tg,jsercy:Lg,Jukcy:jg,jukcy:Sg,Kappa:Eg,kappa:Ag,kappav:Dg,Kcedil:Ng,kcedil:Rg,Kcy:$g,kcy:kg,Kfr:Cg,kfr:Mg,kgreen:Hg,KHcy:Og,khcy:_g,KJcy:Ug,kjcy:Fg,Kopf:Pg,kopf:Ig,Kscr:Bg,kscr:Vg,lAarr:Gg,Lacute:zg,lacute:Xg,laemptyv:Yg,lagran:Jg,Lambda:Qg,lambda:Kg,lang:Zg,Lang:Wg,langd:th,langle:nh,lap:sh,Laplacetrf:oh,laquo:ch,larrb:eh,larrbfs:rh,larr:ah,Larr:ih,lArr:lh,larrfs:uh,larrhk:dh,larrlp:ph,larrpl:fh,larrsim:mh,larrtl:gh,latail:hh,lAtail:bh,lat:vh,late:xh,lates:yh,lbarr:wh,lBarr:qh,lbbrk:Th,lbrace:Lh,lbrack:jh,lbrke:Sh,lbrksld:Eh,lbrkslu:Ah,Lcaron:Dh,lcaron:Nh,Lcedil:Rh,lcedil:$h,lceil:kh,lcub:Ch,Lcy:Mh,lcy:Hh,ldca:Oh,ldquo:_h,ldquor:Uh,ldrdhar:Fh,ldrushar:Ph,ldsh:Ih,le:Bh,lE:Vh,LeftAngleBracket:Gh,LeftArrowBar:zh,leftarrow:Xh,LeftArrow:Yh,Leftarrow:Jh,LeftArrowRightArrow:Qh,leftarrowtail:Kh,LeftCeiling:Zh,LeftDoubleBracket:Wh,LeftDownTeeVector:tb,LeftDownVectorBar:nb,LeftDownVector:sb,LeftFloor:ob,leftharpoondown:cb,leftharpoonup:eb,leftleftarrows:rb,leftrightarrow:ab,LeftRightArrow:ib,Leftrightarrow:lb,leftrightarrows:ub,leftrightharpoons:db,leftrightsquigarrow:pb,LeftRightVector:fb,LeftTeeArrow:mb,LeftTee:gb,LeftTeeVector:hb,leftthreetimes:bb,LeftTriangleBar:vb,LeftTriangle:xb,LeftTriangleEqual:yb,LeftUpDownVector:wb,LeftUpTeeVector:qb,LeftUpVectorBar:Tb,LeftUpVector:Lb,LeftVectorBar:jb,LeftVector:Sb,lEg:Eb,leg:Ab,leq:Db,leqq:Nb,leqslant:Rb,lescc:$b,les:kb,lesdot:Cb,lesdoto:Mb,lesdotor:Hb,lesg:Ob,lesges:_b,lessapprox:Ub,lessdot:Fb,lesseqgtr:Pb,lesseqqgtr:Ib,LessEqualGreater:Bb,LessFullEqual:Vb,LessGreater:Gb,lessgtr:zb,LessLess:Xb,lesssim:Yb,LessSlantEqual:Jb,LessTilde:Qb,lfisht:Kb,lfloor:Zb,Lfr:Wb,lfr:tv,lg:nv,lgE:sv,lHar:ov,lhard:cv,lharu:ev,lharul:rv,lhblk:av,LJcy:iv,ljcy:lv,llarr:uv,ll:dv,Ll:pv,llcorner:fv,Lleftarrow:mv,llhard:gv,lltri:hv,Lmidot:bv,lmidot:vv,lmoustache:xv,lmoust:yv,lnap:wv,lnapprox:qv,lne:Tv,lnE:Lv,lneq:jv,lneqq:Sv,lnsim:Ev,loang:Av,loarr:Dv,lobrk:Nv,longleftarrow:Rv,LongLeftArrow:$v,Longleftarrow:kv,longleftrightarrow:Cv,LongLeftRightArrow:Mv,Longleftrightarrow:Hv,longmapsto:Ov,longrightarrow:_v,LongRightArrow:Uv,Longrightarrow:Fv,looparrowleft:Pv,looparrowright:Iv,lopar:Bv,Lopf:Vv,lopf:Gv,loplus:zv,lotimes:Xv,lowast:Yv,lowbar:Jv,LowerLeftArrow:Qv,LowerRightArrow:Kv,loz:Zv,lozenge:Wv,lozf:tx,lpar:nx,lparlt:sx,lrarr:ox,lrcorner:cx,lrhar:ex,lrhard:rx,lrm:ax,lrtri:ix,lsaquo:lx,lscr:ux,Lscr:dx,lsh:px,Lsh:fx,lsim:mx,lsime:gx,lsimg:hx,lsqb:bx,lsquo:vx,lsquor:xx,Lstrok:yx,lstrok:wx,ltcc:qx,ltcir:Tx,lt:Lx,LT:jx,Lt:Sx,ltdot:Ex,lthree:Ax,ltimes:Dx,ltlarr:Nx,ltquest:Rx,ltri:$x,ltrie:kx,ltrif:Cx,ltrPar:Mx,lurdshar:Hx,luruhar:Ox,lvertneqq:_x,lvnE:Ux,macr:Fx,male:Px,malt:Ix,maltese:Bx,Map:"⤅",map:Vx,mapsto:Gx,mapstodown:zx,mapstoleft:Xx,mapstoup:Yx,marker:Jx,mcomma:Qx,Mcy:Kx,mcy:Zx,mdash:Wx,mDDot:ty,measuredangle:ny,MediumSpace:sy,Mellintrf:oy,Mfr:cy,mfr:ey,mho:ry,micro:ay,midast:iy,midcir:ly,mid:uy,middot:dy,minusb:py,minus:fy,minusd:my,minusdu:gy,MinusPlus:hy,mlcp:by,mldr:vy,mnplus:xy,models:yy,Mopf:wy,mopf:qy,mp:Ty,mscr:Ly,Mscr:jy,mstpos:Sy,Mu:Ey,mu:Ay,multimap:Dy,mumap:Ny,nabla:Ry,Nacute:$y,nacute:ky,nang:Cy,nap:My,napE:Hy,napid:Oy,napos:_y,napprox:Uy,natural:Fy,naturals:Py,natur:Iy,nbsp:By,nbump:Vy,nbumpe:Gy,ncap:zy,Ncaron:Xy,ncaron:Yy,Ncedil:Jy,ncedil:Qy,ncong:Ky,ncongdot:Zy,ncup:Wy,Ncy:tw,ncy:nw,ndash:sw,nearhk:ow,nearr:cw,neArr:ew,nearrow:rw,ne:aw,nedot:iw,NegativeMediumSpace:lw,NegativeThickSpace:uw,NegativeThinSpace:dw,NegativeVeryThinSpace:pw,nequiv:fw,nesear:mw,nesim:gw,NestedGreaterGreater:hw,NestedLessLess:bw,NewLine:vw,nexist:xw,nexists:yw,Nfr:ww,nfr:qw,ngE:Tw,nge:Lw,ngeq:jw,ngeqq:Sw,ngeqslant:Ew,nges:Aw,nGg:Dw,ngsim:Nw,nGt:Rw,ngt:$w,ngtr:kw,nGtv:Cw,nharr:Mw,nhArr:Hw,nhpar:Ow,ni:_w,nis:Uw,nisd:Fw,niv:Pw,NJcy:Iw,njcy:Bw,nlarr:Vw,nlArr:Gw,nldr:zw,nlE:Xw,nle:Yw,nleftarrow:Jw,nLeftarrow:Qw,nleftrightarrow:Kw,nLeftrightarrow:Zw,nleq:Ww,nleqq:t1,nleqslant:n1,nles:s1,nless:o1,nLl:c1,nlsim:e1,nLt:r1,nlt:a1,nltri:i1,nltrie:l1,nLtv:u1,nmid:d1,NoBreak:p1,NonBreakingSpace:f1,nopf:m1,Nopf:g1,Not:h1,not:b1,NotCongruent:v1,NotCupCap:x1,NotDoubleVerticalBar:y1,NotElement:w1,NotEqual:q1,NotEqualTilde:T1,NotExists:L1,NotGreater:j1,NotGreaterEqual:S1,NotGreaterFullEqual:E1,NotGreaterGreater:A1,NotGreaterLess:D1,NotGreaterSlantEqual:N1,NotGreaterTilde:R1,NotHumpDownHump:$1,NotHumpEqual:k1,notin:C1,notindot:M1,notinE:H1,notinva:O1,notinvb:_1,notinvc:U1,NotLeftTriangleBar:F1,NotLeftTriangle:P1,NotLeftTriangleEqual:I1,NotLess:B1,NotLessEqual:V1,NotLessGreater:G1,NotLessLess:z1,NotLessSlantEqual:X1,NotLessTilde:Y1,NotNestedGreaterGreater:J1,NotNestedLessLess:Q1,notni:K1,notniva:Z1,notnivb:W1,notnivc:tq,NotPrecedes:nq,NotPrecedesEqual:sq,NotPrecedesSlantEqual:oq,NotReverseElement:cq,NotRightTriangleBar:eq,NotRightTriangle:rq,NotRightTriangleEqual:aq,NotSquareSubset:iq,NotSquareSubsetEqual:lq,NotSquareSuperset:uq,NotSquareSupersetEqual:dq,NotSubset:pq,NotSubsetEqual:fq,NotSucceeds:mq,NotSucceedsEqual:gq,NotSucceedsSlantEqual:hq,NotSucceedsTilde:bq,NotSuperset:vq,NotSupersetEqual:xq,NotTilde:yq,NotTildeEqual:wq,NotTildeFullEqual:qq,NotTildeTilde:Tq,NotVerticalBar:Lq,nparallel:jq,npar:Sq,nparsl:Eq,npart:Aq,npolint:Dq,npr:Nq,nprcue:Rq,nprec:$q,npreceq:kq,npre:Cq,nrarrc:Mq,nrarr:Hq,nrArr:Oq,nrarrw:_q,nrightarrow:Uq,nRightarrow:Fq,nrtri:Pq,nrtrie:Iq,nsc:Bq,nsccue:Vq,nsce:Gq,Nscr:zq,nscr:Xq,nshortmid:Yq,nshortparallel:Jq,nsim:Qq,nsime:Kq,nsimeq:Zq,nsmid:Wq,nspar:tT,nsqsube:nT,nsqsupe:sT,nsub:oT,nsubE:cT,nsube:eT,nsubset:rT,nsubseteq:aT,nsubseteqq:iT,nsucc:lT,nsucceq:uT,nsup:dT,nsupE:pT,nsupe:fT,nsupset:mT,nsupseteq:gT,nsupseteqq:hT,ntgl:bT,Ntilde:vT,ntilde:xT,ntlg:yT,ntriangleleft:wT,ntrianglelefteq:qT,ntriangleright:TT,ntrianglerighteq:LT,Nu:jT,nu:ST,num:ET,numero:AT,numsp:DT,nvap:NT,nvdash:RT,nvDash:$T,nVdash:kT,nVDash:CT,nvge:MT,nvgt:HT,nvHarr:OT,nvinfin:_T,nvlArr:UT,nvle:FT,nvlt:PT,nvltrie:IT,nvrArr:BT,nvrtrie:VT,nvsim:GT,nwarhk:zT,nwarr:XT,nwArr:YT,nwarrow:JT,nwnear:QT,Oacute:KT,oacute:ZT,oast:WT,Ocirc:tL,ocirc:nL,ocir:sL,Ocy:oL,ocy:cL,odash:eL,Odblac:rL,odblac:aL,odiv:iL,odot:lL,odsold:uL,OElig:dL,oelig:pL,ofcir:fL,Ofr:mL,ofr:gL,ogon:hL,Ograve:bL,ograve:vL,ogt:xL,ohbar:yL,ohm:wL,oint:qL,olarr:TL,olcir:LL,olcross:jL,oline:SL,olt:EL,Omacr:AL,omacr:DL,Omega:NL,omega:RL,Omicron:$L,omicron:kL,omid:CL,ominus:ML,Oopf:HL,oopf:OL,opar:_L,OpenCurlyDoubleQuote:UL,OpenCurlyQuote:FL,operp:PL,oplus:IL,orarr:BL,Or:VL,or:GL,ord:zL,order:XL,orderof:YL,ordf:JL,ordm:QL,origof:KL,oror:ZL,orslope:WL,orv:tj,oS:nj,Oscr:sj,oscr:oj,Oslash:cj,oslash:ej,osol:rj,Otilde:aj,otilde:ij,otimesas:lj,Otimes:uj,otimes:dj,Ouml:pj,ouml:fj,ovbar:mj,OverBar:gj,OverBrace:hj,OverBracket:bj,OverParenthesis:vj,para:xj,parallel:yj,par:wj,parsim:qj,parsl:Tj,part:Lj,PartialD:jj,Pcy:Sj,pcy:Ej,percnt:Aj,period:Dj,permil:Nj,perp:Rj,pertenk:$j,Pfr:kj,pfr:Cj,Phi:Mj,phi:Hj,phiv:Oj,phmmat:_j,phone:Uj,Pi:Fj,pi:Pj,pitchfork:Ij,piv:Bj,planck:Vj,planckh:Gj,plankv:zj,plusacir:Xj,plusb:Yj,pluscir:Jj,plus:Qj,plusdo:Kj,plusdu:Zj,pluse:Wj,PlusMinus:tS,plusmn:nS,plussim:sS,plustwo:oS,pm:cS,Poincareplane:eS,pointint:rS,popf:aS,Popf:iS,pound:lS,prap:uS,Pr:dS,pr:pS,prcue:fS,precapprox:mS,prec:gS,preccurlyeq:hS,Precedes:bS,PrecedesEqual:vS,PrecedesSlantEqual:xS,PrecedesTilde:yS,preceq:wS,precnapprox:qS,precneqq:TS,precnsim:LS,pre:jS,prE:SS,precsim:ES,prime:AS,Prime:DS,primes:NS,prnap:RS,prnE:$S,prnsim:kS,prod:CS,Product:MS,profalar:HS,profline:OS,profsurf:_S,prop:US,Proportional:FS,Proportion:PS,propto:IS,prsim:BS,prurel:VS,Pscr:GS,pscr:zS,Psi:XS,psi:YS,puncsp:JS,Qfr:QS,qfr:KS,qint:ZS,qopf:WS,Qopf:t0,qprime:n0,Qscr:s0,qscr:o0,quaternions:c0,quatint:e0,quest:r0,questeq:a0,quot:i0,QUOT:l0,rAarr:u0,race:d0,Racute:p0,racute:f0,radic:m0,raemptyv:g0,rang:h0,Rang:b0,rangd:v0,range:x0,rangle:y0,raquo:w0,rarrap:q0,rarrb:T0,rarrbfs:L0,rarrc:j0,rarr:S0,Rarr:E0,rArr:A0,rarrfs:D0,rarrhk:N0,rarrlp:R0,rarrpl:$0,rarrsim:k0,Rarrtl:C0,rarrtl:M0,rarrw:H0,ratail:O0,rAtail:_0,ratio:U0,rationals:F0,rbarr:P0,rBarr:I0,RBarr:B0,rbbrk:V0,rbrace:G0,rbrack:z0,rbrke:X0,rbrksld:Y0,rbrkslu:J0,Rcaron:Q0,rcaron:K0,Rcedil:Z0,rcedil:W0,rceil:tE,rcub:nE,Rcy:sE,rcy:oE,rdca:cE,rdldhar:eE,rdquo:rE,rdquor:aE,rdsh:iE,real:lE,realine:uE,realpart:dE,reals:pE,Re:fE,rect:mE,reg:gE,REG:hE,ReverseElement:bE,ReverseEquilibrium:vE,ReverseUpEquilibrium:xE,rfisht:yE,rfloor:wE,rfr:qE,Rfr:TE,rHar:LE,rhard:jE,rharu:SE,rharul:EE,Rho:AE,rho:DE,rhov:NE,RightAngleBracket:RE,RightArrowBar:$E,rightarrow:kE,RightArrow:CE,Rightarrow:ME,RightArrowLeftArrow:HE,rightarrowtail:OE,RightCeiling:_E,RightDoubleBracket:UE,RightDownTeeVector:FE,RightDownVectorBar:PE,RightDownVector:IE,RightFloor:BE,rightharpoondown:VE,rightharpoonup:GE,rightleftarrows:zE,rightleftharpoons:XE,rightrightarrows:YE,rightsquigarrow:JE,RightTeeArrow:QE,RightTee:KE,RightTeeVector:ZE,rightthreetimes:WE,RightTriangleBar:tA,RightTriangle:nA,RightTriangleEqual:sA,RightUpDownVector:oA,RightUpTeeVector:cA,RightUpVectorBar:eA,RightUpVector:rA,RightVectorBar:aA,RightVector:iA,ring:lA,risingdotseq:uA,rlarr:dA,rlhar:pA,rlm:fA,rmoustache:mA,rmoust:gA,rnmid:hA,roang:bA,roarr:vA,robrk:xA,ropar:yA,ropf:wA,Ropf:qA,roplus:TA,rotimes:LA,RoundImplies:jA,rpar:SA,rpargt:EA,rppolint:AA,rrarr:DA,Rrightarrow:NA,rsaquo:RA,rscr:$A,Rscr:kA,rsh:CA,Rsh:MA,rsqb:HA,rsquo:OA,rsquor:_A,rthree:UA,rtimes:FA,rtri:PA,rtrie:IA,rtrif:BA,rtriltri:VA,RuleDelayed:GA,ruluhar:zA,rx:XA,Sacute:YA,sacute:JA,sbquo:QA,scap:KA,Scaron:ZA,scaron:WA,Sc:tD,sc:nD,sccue:sD,sce:oD,scE:cD,Scedil:eD,scedil:rD,Scirc:aD,scirc:iD,scnap:lD,scnE:uD,scnsim:dD,scpolint:pD,scsim:fD,Scy:mD,scy:gD,sdotb:hD,sdot:bD,sdote:vD,searhk:xD,searr:yD,seArr:wD,searrow:qD,sect:TD,semi:LD,seswar:jD,setminus:SD,setmn:ED,sext:AD,Sfr:DD,sfr:ND,sfrown:RD,sharp:$D,SHCHcy:kD,shchcy:CD,SHcy:MD,shcy:HD,ShortDownArrow:OD,ShortLeftArrow:_D,shortmid:UD,shortparallel:FD,ShortRightArrow:PD,ShortUpArrow:ID,shy:BD,Sigma:VD,sigma:GD,sigmaf:zD,sigmav:XD,sim:YD,simdot:JD,sime:QD,simeq:KD,simg:ZD,simgE:WD,siml:tN,simlE:nN,simne:sN,simplus:oN,simrarr:cN,slarr:eN,SmallCircle:rN,smallsetminus:aN,smashp:iN,smeparsl:lN,smid:uN,smile:dN,smt:pN,smte:fN,smtes:mN,SOFTcy:gN,softcy:hN,solbar:bN,solb:vN,sol:xN,Sopf:yN,sopf:wN,spades:qN,spadesuit:TN,spar:LN,sqcap:jN,sqcaps:SN,sqcup:EN,sqcups:AN,Sqrt:DN,sqsub:NN,sqsube:RN,sqsubset:$N,sqsubseteq:kN,sqsup:CN,sqsupe:MN,sqsupset:HN,sqsupseteq:ON,square:_N,Square:UN,SquareIntersection:FN,SquareSubset:PN,SquareSubsetEqual:IN,SquareSuperset:BN,SquareSupersetEqual:VN,SquareUnion:GN,squarf:zN,squ:XN,squf:YN,srarr:JN,Sscr:QN,sscr:KN,ssetmn:ZN,ssmile:WN,sstarf:tR,Star:nR,star:sR,starf:oR,straightepsilon:cR,straightphi:eR,strns:rR,sub:aR,Sub:iR,subdot:lR,subE:uR,sube:dR,subedot:pR,submult:fR,subnE:mR,subne:gR,subplus:hR,subrarr:bR,subset:vR,Subset:xR,subseteq:yR,subseteqq:wR,SubsetEqual:qR,subsetneq:TR,subsetneqq:LR,subsim:jR,subsub:SR,subsup:ER,succapprox:AR,succ:DR,succcurlyeq:NR,Succeeds:RR,SucceedsEqual:$R,SucceedsSlantEqual:kR,SucceedsTilde:CR,succeq:MR,succnapprox:HR,succneqq:OR,succnsim:_R,succsim:UR,SuchThat:FR,sum:PR,Sum:IR,sung:BR,sup1:VR,sup2:GR,sup3:zR,sup:XR,Sup:YR,supdot:JR,supdsub:QR,supE:KR,supe:ZR,supedot:WR,Superset:t$,SupersetEqual:n$,suphsol:s$,suphsub:o$,suplarr:c$,supmult:e$,supnE:r$,supne:a$,supplus:i$,supset:l$,Supset:u$,supseteq:d$,supseteqq:p$,supsetneq:f$,supsetneqq:m$,supsim:g$,supsub:h$,supsup:b$,swarhk:v$,swarr:x$,swArr:y$,swarrow:w$,swnwar:q$,szlig:T$,Tab:L$,target:j$,Tau:S$,tau:E$,tbrk:A$,Tcaron:D$,tcaron:N$,Tcedil:R$,tcedil:$$,Tcy:k$,tcy:C$,tdot:M$,telrec:H$,Tfr:O$,tfr:_$,there4:U$,therefore:F$,Therefore:P$,Theta:I$,theta:B$,thetasym:V$,thetav:G$,thickapprox:z$,thicksim:X$,ThickSpace:Y$,ThinSpace:J$,thinsp:Q$,thkap:K$,thksim:Z$,THORN:W$,thorn:tk,tilde:nk,Tilde:sk,TildeEqual:ok,TildeFullEqual:ck,TildeTilde:ek,timesbar:rk,timesb:ak,times:ik,timesd:lk,tint:uk,toea:dk,topbot:pk,topcir:fk,top:mk,Topf:gk,topf:hk,topfork:bk,tosa:vk,tprime:xk,trade:yk,TRADE:wk,triangle:qk,triangledown:Tk,triangleleft:Lk,trianglelefteq:jk,triangleq:Sk,triangleright:Ek,trianglerighteq:Ak,tridot:Dk,trie:Nk,triminus:Rk,TripleDot:$k,triplus:kk,trisb:Ck,tritime:Mk,trpezium:Hk,Tscr:Ok,tscr:_k,TScy:Uk,tscy:Fk,TSHcy:Pk,tshcy:Ik,Tstrok:Bk,tstrok:Vk,twixt:Gk,twoheadleftarrow:zk,twoheadrightarrow:Xk,Uacute:Yk,uacute:Jk,uarr:Qk,Uarr:Kk,uArr:Zk,Uarrocir:Wk,Ubrcy:tC,ubrcy:nC,Ubreve:sC,ubreve:oC,Ucirc:cC,ucirc:eC,Ucy:rC,ucy:aC,udarr:iC,Udblac:lC,udblac:uC,udhar:dC,ufisht:pC,Ufr:fC,ufr:mC,Ugrave:gC,ugrave:hC,uHar:bC,uharl:vC,uharr:xC,uhblk:yC,ulcorn:wC,ulcorner:qC,ulcrop:TC,ultri:LC,Umacr:jC,umacr:SC,uml:EC,UnderBar:AC,UnderBrace:DC,UnderBracket:NC,UnderParenthesis:RC,Union:$C,UnionPlus:kC,Uogon:CC,uogon:MC,Uopf:HC,uopf:OC,UpArrowBar:_C,uparrow:UC,UpArrow:FC,Uparrow:PC,UpArrowDownArrow:IC,updownarrow:BC,UpDownArrow:VC,Updownarrow:GC,UpEquilibrium:zC,upharpoonleft:XC,upharpoonright:YC,uplus:JC,UpperLeftArrow:QC,UpperRightArrow:KC,upsi:ZC,Upsi:WC,upsih:tM,Upsilon:nM,upsilon:sM,UpTeeArrow:oM,UpTee:cM,upuparrows:eM,urcorn:rM,urcorner:aM,urcrop:iM,Uring:lM,uring:uM,urtri:dM,Uscr:pM,uscr:fM,utdot:mM,Utilde:gM,utilde:hM,utri:bM,utrif:vM,uuarr:xM,Uuml:yM,uuml:wM,uwangle:qM,vangrt:TM,varepsilon:LM,varkappa:jM,varnothing:SM,varphi:EM,varpi:AM,varpropto:DM,varr:NM,vArr:RM,varrho:$M,varsigma:kM,varsubsetneq:CM,varsubsetneqq:MM,varsupsetneq:HM,varsupsetneqq:OM,vartheta:_M,vartriangleleft:UM,vartriangleright:FM,vBar:PM,Vbar:IM,vBarv:BM,Vcy:VM,vcy:GM,vdash:zM,vDash:XM,Vdash:YM,VDash:JM,Vdashl:QM,veebar:KM,vee:ZM,Vee:WM,veeeq:tH,vellip:nH,verbar:sH,Verbar:oH,vert:cH,Vert:eH,VerticalBar:rH,VerticalLine:aH,VerticalSeparator:iH,VerticalTilde:lH,VeryThinSpace:uH,Vfr:dH,vfr:pH,vltri:fH,vnsub:mH,vnsup:gH,Vopf:hH,vopf:bH,vprop:vH,vrtri:xH,Vscr:yH,vscr:wH,vsubnE:qH,vsubne:TH,vsupnE:LH,vsupne:jH,Vvdash:SH,vzigzag:EH,Wcirc:AH,wcirc:DH,wedbar:NH,wedge:RH,Wedge:$H,wedgeq:kH,weierp:CH,Wfr:MH,wfr:HH,Wopf:OH,wopf:_H,wp:UH,wr:FH,wreath:PH,Wscr:IH,wscr:BH,xcap:VH,xcirc:GH,xcup:zH,xdtri:XH,Xfr:YH,xfr:JH,xharr:QH,xhArr:KH,Xi:ZH,xi:WH,xlarr:t2,xlArr:n2,xmap:s2,xnis:o2,xodot:c2,Xopf:e2,xopf:r2,xoplus:a2,xotime:i2,xrarr:l2,xrArr:u2,Xscr:d2,xscr:p2,xsqcup:f2,xuplus:m2,xutri:g2,xvee:h2,xwedge:b2,Yacute:v2,yacute:x2,YAcy:y2,yacy:w2,Ycirc:q2,ycirc:T2,Ycy:L2,ycy:j2,yen:S2,Yfr:E2,yfr:A2,YIcy:D2,yicy:N2,Yopf:R2,yopf:$2,Yscr:k2,yscr:C2,YUcy:M2,yucy:H2,yuml:O2,Yuml:_2,Zacute:U2,zacute:F2,Zcaron:P2,zcaron:I2,Zcy:B2,zcy:V2,Zdot:G2,zdot:z2,zeetrf:X2,ZeroWidthSpace:Y2,Zeta:J2,zeta:Q2,zfr:K2,Zfr:Z2,ZHcy:W2,zhcy:tO,zigrarr:nO,zopf:sO,Zopf:oO,Zscr:cO,zscr:eO,zwj:rO,zwnj:aO},iO="Á",lO="á",uO="Â",dO="â",pO="´",fO="Æ",mO="æ",gO="À",hO="à",bO="&",vO="&",xO="Å",yO="å",wO="Ã",qO="ã",TO="Ä",LO="ä",jO="¦",SO="Ç",EO="ç",AO="¸",DO="¢",NO="©",RO="©",$O="¤",kO="°",CO="÷",MO="É",HO="é",OO="Ê",_O="ê",UO="È",FO="è",PO="Ð",IO="ð",BO="Ë",VO="ë",GO="½",zO="¼",XO="¾",YO=">",JO=">",QO="Í",KO="í",ZO="Î",WO="î",t_="¡",n_="Ì",s_="ì",o_="¿",c_="Ï",e_="ï",r_="«",a_="<",i_="<",l_="¯",u_="µ",d_="·",p_=" ",f_="¬",m_="Ñ",g_="ñ",h_="Ó",b_="ó",v_="Ô",x_="ô",y_="Ò",w_="ò",q_="ª",T_="º",L_="Ø",j_="ø",S_="Õ",E_="õ",A_="Ö",D_="ö",N_="¶",R_="±",$_="£",k_='"',C_='"',M_="»",H_="®",O_="®",__="§",U_="",F_="¹",P_="²",I_="³",B_="ß",V_="Þ",G_="þ",z_="×",X_="Ú",Y_="ú",J_="Û",Q_="û",K_="Ù",Z_="ù",W_="¨",tU="Ü",nU="ü",sU="Ý",oU="ý",cU="¥",eU="ÿ",rU={Aacute:iO,aacute:lO,Acirc:uO,acirc:dO,acute:pO,AElig:fO,aelig:mO,Agrave:gO,agrave:hO,amp:bO,AMP:vO,Aring:xO,aring:yO,Atilde:wO,atilde:qO,Auml:TO,auml:LO,brvbar:jO,Ccedil:SO,ccedil:EO,cedil:AO,cent:DO,copy:NO,COPY:RO,curren:$O,deg:kO,divide:CO,Eacute:MO,eacute:HO,Ecirc:OO,ecirc:_O,Egrave:UO,egrave:FO,ETH:PO,eth:IO,Euml:BO,euml:VO,frac12:GO,frac14:zO,frac34:XO,gt:YO,GT:JO,Iacute:QO,iacute:KO,Icirc:ZO,icirc:WO,iexcl:t_,Igrave:n_,igrave:s_,iquest:o_,Iuml:c_,iuml:e_,laquo:r_,lt:a_,LT:i_,macr:l_,micro:u_,middot:d_,nbsp:p_,not:f_,Ntilde:m_,ntilde:g_,Oacute:h_,oacute:b_,Ocirc:v_,ocirc:x_,Ograve:y_,ograve:w_,ordf:q_,ordm:T_,Oslash:L_,oslash:j_,Otilde:S_,otilde:E_,Ouml:A_,ouml:D_,para:N_,plusmn:R_,pound:$_,quot:k_,QUOT:C_,raquo:M_,reg:H_,REG:O_,sect:__,shy:U_,sup1:F_,sup2:P_,sup3:I_,szlig:B_,THORN:V_,thorn:G_,times:z_,Uacute:X_,uacute:Y_,Ucirc:J_,ucirc:Q_,Ugrave:K_,ugrave:Z_,uml:W_,Uuml:tU,uuml:nU,Yacute:sU,yacute:oU,yen:cU,yuml:eU},aU="&",iU="'",lU=">",uU="<",dU='"',xt={amp:aU,apos:iU,gt:lU,lt:uU,quot:dU};var V={};const pU={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};var lt;function fU(){if(lt)return V;lt=1;var o=V&&V.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(V,"__esModule",{value:!0});var r=o(pU),i=String.fromCodePoint||function(e){var d="";return e>65535&&(e-=65536,d+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),d+=String.fromCharCode(e),d};function g(e){return e>=55296&&e<=57343||e>1114111?"�":(e in r.default&&(e=r.default[e]),i(e))}return V.default=g,V}var ut;function dt(){if(ut)return U;ut=1;var o=U&&U.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(U,"__esModule",{value:!0}),U.decodeHTML=U.decodeHTMLStrict=U.decodeXML=void 0;var r=o(vt),i=o(rU),g=o(xt),e=o(fU()),d=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;U.decodeXML=v(g.default),U.decodeHTMLStrict=v(r.default);function v(l){var x=w(l);return function(m){return String(m).replace(d,x)}}var b=function(l,x){return l<x?1:-1};U.decodeHTML=function(){for(var l=Object.keys(i.default).sort(b),x=Object.keys(r.default).sort(b),m=0,h=0;m<x.length;m++)l[h]===x[m]?(x[m]+=";?",h++):x[m]+=";";var y=new RegExp("&(?:"+x.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),A=w(r.default);function L(j){return j.substr(-1)!==";"&&(j+=";"),A(j)}return function(j){return String(j).replace(y,L)}}();function w(l){return function(m){if(m.charAt(1)==="#"){var h=m.charAt(2);return h==="X"||h==="x"?e.default(parseInt(m.substr(3),16)):e.default(parseInt(m.substr(2),10))}return l[m.slice(1,-1)]||m}}return U}var D={},pt;function ft(){if(pt)return D;pt=1;var o=D&&D.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(D,"__esModule",{value:!0}),D.escapeUTF8=D.escape=D.encodeNonAsciiHTML=D.encodeHTML=D.encodeXML=void 0;var r=o(xt),i=b(r.default),g=w(i);D.encodeXML=j(i);var e=o(vt),d=b(e.default),v=w(d);D.encodeHTML=h(d,v),D.encodeNonAsciiHTML=j(d);function b(p){return Object.keys(p).sort().reduce(function(q,R){return q[p[R]]="&"+R+";",q},{})}function w(p){for(var q=[],R=[],N=0,B=Object.keys(p);N<B.length;N++){var I=B[N];I.length===1?q.push("\\"+I):R.push(I)}q.sort();for(var C=0;C<q.length-1;C++){for(var F=C;F<q.length-1&&q[F].charCodeAt(1)+1===q[F+1].charCodeAt(1);)F+=1;var Y=1+F-C;Y<3||q.splice(C,Y,q[C]+"-"+q[F])}return R.unshift("["+q.join("")+"]"),new RegExp(R.join("|"),"g")}var l=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,x=String.prototype.codePointAt!=null?function(p){return p.codePointAt(0)}:function(p){return(p.charCodeAt(0)-55296)*1024+p.charCodeAt(1)-56320+65536};function m(p){return"&#x"+(p.length>1?x(p):p.charCodeAt(0)).toString(16).toUpperCase()+";"}function h(p,q){return function(R){return R.replace(q,function(N){return p[N]}).replace(l,m)}}var y=new RegExp(g.source+"|"+l.source,"g");function A(p){return p.replace(y,m)}D.escape=A;function L(p){return p.replace(g,m)}D.escapeUTF8=L;function j(p){return function(q){return q.replace(y,function(R){return p[R]||m(R)})}}return D}var mt;function mU(){return mt||(mt=1,function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.decodeXMLStrict=o.decodeHTML5Strict=o.decodeHTML4Strict=o.decodeHTML5=o.decodeHTML4=o.decodeHTMLStrict=o.decodeHTML=o.decodeXML=o.encodeHTML5=o.encodeHTML4=o.escapeUTF8=o.escape=o.encodeNonAsciiHTML=o.encodeHTML=o.encodeXML=o.encode=o.decodeStrict=o.decode=void 0;var r=dt(),i=ft();function g(w,l){return(!l||l<=0?r.decodeXML:r.decodeHTML)(w)}o.decode=g;function e(w,l){return(!l||l<=0?r.decodeXML:r.decodeHTMLStrict)(w)}o.decodeStrict=e;function d(w,l){return(!l||l<=0?i.encodeXML:i.encodeHTML)(w)}o.encode=d;var v=ft();Object.defineProperty(o,"encodeXML",{enumerable:!0,get:function(){return v.encodeXML}}),Object.defineProperty(o,"encodeHTML",{enumerable:!0,get:function(){return v.encodeHTML}}),Object.defineProperty(o,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return v.encodeNonAsciiHTML}}),Object.defineProperty(o,"escape",{enumerable:!0,get:function(){return v.escape}}),Object.defineProperty(o,"escapeUTF8",{enumerable:!0,get:function(){return v.escapeUTF8}}),Object.defineProperty(o,"encodeHTML4",{enumerable:!0,get:function(){return v.encodeHTML}}),Object.defineProperty(o,"encodeHTML5",{enumerable:!0,get:function(){return v.encodeHTML}});var b=dt();Object.defineProperty(o,"decodeXML",{enumerable:!0,get:function(){return b.decodeXML}}),Object.defineProperty(o,"decodeHTML",{enumerable:!0,get:function(){return b.decodeHTML}}),Object.defineProperty(o,"decodeHTMLStrict",{enumerable:!0,get:function(){return b.decodeHTMLStrict}}),Object.defineProperty(o,"decodeHTML4",{enumerable:!0,get:function(){return b.decodeHTML}}),Object.defineProperty(o,"decodeHTML5",{enumerable:!0,get:function(){return b.decodeHTML}}),Object.defineProperty(o,"decodeHTML4Strict",{enumerable:!0,get:function(){return b.decodeHTMLStrict}}),Object.defineProperty(o,"decodeHTML5Strict",{enumerable:!0,get:function(){return b.decodeHTMLStrict}}),Object.defineProperty(o,"decodeXMLStrict",{enumerable:!0,get:function(){return b.decodeXML}})}(W)),W}var tt,gt;function gU(){if(gt)return tt;gt=1;function o(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function r(t,n){for(var c=0;c<n.length;c++){var a=n[c];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function i(t,n,c){return n&&r(t.prototype,n),t}function g(t,n){var c=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!c){if(Array.isArray(t)||(c=e(t))||n){c&&(t=c);var a=0,f=function(){};return{s:f,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(H){throw H},f}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var u=!0,M=!1,k;return{s:function(){c=c.call(t)},n:function(){var H=c.next();return u=H.done,H},e:function(H){M=!0,k=H},f:function(){try{!u&&c.return!=null&&c.return()}finally{if(M)throw k}}}}function e(t,n){if(t){if(typeof t=="string")return d(t,n);var c=Object.prototype.toString.call(t).slice(8,-1);if(c==="Object"&&t.constructor&&(c=t.constructor.name),c==="Map"||c==="Set")return Array.from(t);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return d(t,n)}}function d(t,n){(n==null||n>t.length)&&(n=t.length);for(var c=0,a=new Array(n);c<n;c++)a[c]=t[c];return a}var v=mU(),b={fg:"#FFF",bg:"#000",newline:!1,escapeXML:!1,stream:!1,colors:w()};function w(){var t={0:"#000",1:"#A00",2:"#0A0",3:"#A50",4:"#00A",5:"#A0A",6:"#0AA",7:"#AAA",8:"#555",9:"#F55",10:"#5F5",11:"#FF5",12:"#55F",13:"#F5F",14:"#5FF",15:"#FFF"};return j(0,5).forEach(function(n){j(0,5).forEach(function(c){j(0,5).forEach(function(a){return l(n,c,a,t)})})}),j(0,23).forEach(function(n){var c=n+232,a=x(n*10+8);t[c]="#"+a+a+a}),t}function l(t,n,c,a){var f=16+t*36+n*6+c,u=t>0?t*40+55:0,M=n>0?n*40+55:0,k=c>0?c*40+55:0;a[f]=m([u,M,k])}function x(t){for(var n=t.toString(16);n.length<2;)n="0"+n;return n}function m(t){var n=[],c=g(t),a;try{for(c.s();!(a=c.n()).done;){var f=a.value;n.push(x(f))}}catch(u){c.e(u)}finally{c.f()}return"#"+n.join("")}function h(t,n,c,a){var f;return n==="text"?f=R(c,a):n==="display"?f=A(t,c,a):n==="xterm256Foreground"?f=I(t,a.colors[c]):n==="xterm256Background"?f=C(t,a.colors[c]):n==="rgb"&&(f=y(t,c)),f}function y(t,n){n=n.substring(2).slice(0,-1);var c=+n.substr(0,2),a=n.substring(5).split(";"),f=a.map(function(u){return("0"+Number(u).toString(16)).substr(-2)}).join("");return B(t,(c===38?"color:#":"background-color:#")+f)}function A(t,n,c){n=parseInt(n,10);var a={"-1":function(){return"<br/>"},0:function(){return t.length&&L(t)},1:function(){return N(t,"b")},3:function(){return N(t,"i")},4:function(){return N(t,"u")},8:function(){return B(t,"display:none")},9:function(){return N(t,"strike")},22:function(){return B(t,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return F(t,"i")},24:function(){return F(t,"u")},39:function(){return I(t,c.fg)},49:function(){return C(t,c.bg)},53:function(){return B(t,"text-decoration:overline")}},f;return a[n]?f=a[n]():4<n&&n<7?f=N(t,"blink"):29<n&&n<38?f=I(t,c.colors[n-30]):39<n&&n<48?f=C(t,c.colors[n-40]):89<n&&n<98?f=I(t,c.colors[8+(n-90)]):99<n&&n<108&&(f=C(t,c.colors[8+(n-100)])),f}function L(t){var n=t.slice(0);return t.length=0,n.reverse().map(function(c){return"</"+c+">"}).join("")}function j(t,n){for(var c=[],a=t;a<=n;a++)c.push(a);return c}function p(t){return function(n){return(t===null||n.category!==t)&&t!=="all"}}function q(t){t=parseInt(t,10);var n=null;return t===0?n="all":t===1?n="bold":2<t&&t<5?n="underline":4<t&&t<7?n="blink":t===8?n="hide":t===9?n="strike":29<t&&t<38||t===39||89<t&&t<98?n="foreground-color":(39<t&&t<48||t===49||99<t&&t<108)&&(n="background-color"),n}function R(t,n){return n.escapeXML?v.encodeXML(t):t}function N(t,n,c){return c||(c=""),t.push(n),"<".concat(n).concat(c?' style="'.concat(c,'"'):"",">")}function B(t,n){return N(t,"span",n)}function I(t,n){return N(t,"span","color:"+n)}function C(t,n){return N(t,"span","background-color:"+n)}function F(t,n){var c;if(t.slice(-1)[0]===n&&(c=t.pop()),c)return"</"+n+">"}function Y(t,n,c){var a=!1,f=3;function u(){return""}function M(O,_){return c("xterm256Foreground",_),""}function k(O,_){return c("xterm256Background",_),""}function E(O){return n.newline?c("display",-1):c("text",O),""}function H(O,_){a=!0,_.trim().length===0&&(_="0"),_=_.trimRight(";").split(";");var J=g(_),at;try{for(J.s();!(at=J.n()).done;){var Nt=at.value;c("display",Nt)}}catch(Rt){J.e(Rt)}finally{J.f()}return""}function Lt(O){return c("text",O),""}function jt(O){return c("rgb",O),""}var ct=[{pattern:/^\x08+/,sub:u},{pattern:/^\x1b\[[012]?K/,sub:u},{pattern:/^\x1b\[\(B/,sub:u},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:jt},{pattern:/^\x1b\[38;5;(\d+)m/,sub:M},{pattern:/^\x1b\[48;5;(\d+)m/,sub:k},{pattern:/^\n/,sub:E},{pattern:/^\r+\n/,sub:E},{pattern:/^\r/,sub:E},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:H},{pattern:/^\x1b\[\d?J/,sub:u},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:u},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:u},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:Lt}];function St(O,_){_>f&&a||(a=!1,t=t.replace(O.pattern,O.sub))}var et=[],Et=t,z=Et.length;t:for(;z>0;){for(var Z=0,rt=0,At=ct.length;rt<At;Z=++rt){var Dt=ct[Z];if(St(Dt,Z),t.length!==z){z=t.length;continue t}}if(t.length===z)break;et.push(0),z=t.length}return et}function qt(t,n,c){return n!=="text"&&(t=t.filter(p(q(c))),t.push({token:n,data:c,category:q(c)})),t}var Tt=function(){function t(n){o(this,t),n=n||{},n.colors&&(n.colors=Object.assign({},b.colors,n.colors)),this.options=Object.assign({},b,n),this.stack=[],this.stickyStack=[]}return i(t,[{key:"toHtml",value:function(c){var a=this;c=typeof c=="string"?[c]:c;var f=this.stack,u=this.options,M=[];return this.stickyStack.forEach(function(k){var E=h(f,k.token,k.data,u);E&&M.push(E)}),Y(c.join(""),u,function(k,E){var H=h(f,k,E,u);H&&M.push(H),u.stream&&(a.stickyStack=qt(a.stickyStack,k,E))}),f.length&&M.push(L(f)),M.join("")}}]),t}();return tt=Tt,tt}var hU=gU();const bU=$t(hU);function yt(){const o=ht();return S.useMemo(()=>new bU(o==="dark"?{fg:"#d6deeb",bg:"#121318",escapeXML:!0}:{fg:"#000000",bg:"#f3f3f3",escapeXML:!0}),[o])}function wt(o){return o.replace(/\u001b\[\d+A/g,"").replace(/\u001b\[\d+K/g,"")}const vU=Ht(P({type:$("epicshop:test-status-update"),timestamp:G()}),X([P({status:$("pending")}),P({status:$("pass")}),P({status:$("fail"),error:Q()})])),xU=P({type:$("epicshop:test-step-update"),status:$("pass"),title:Q(),timestamp:G()}),yU=X([xU,vU]);function wU({pathname:o,testFile:r}){const i=ht(),g=yt(),e=S.useRef(null),[d,v]=S.useState(null),[b,w]=S.useState([]);S.useEffect(()=>{function h(y){if(y.source!==e.current?.contentWindow||"request"in y.data)return;const A=yU.safeParse(y.data,{path:["messageEvent","data"]});if(!A.success){console.error("Invalid message from test iframe",y.data,A.error);return}const{data:L}=A;L.type==="epicshop:test-status-update"&&(L.status==="pending"&&w([]),v(L)),L.type==="epicshop:test-step-update"&&w(j=>[...j,L])}return window.addEventListener("message",h),()=>{window.removeEventListener("message",h)}},[]);const l={pending:s.jsx(st,{size:14,"aria-label":"Pending"}),pass:s.jsx(T,{name:"CheckSmall","aria-label":"Passed",className:"text-emerald-700"}),fail:s.jsx(T,{name:"Remove","aria-label":"Failed",className:"text-foreground-destructive"}),unknown:s.jsx(T,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})}[d?.status??"unknown"],x=b.sort((h,y)=>h.timestamp-y.timestamp),m={pass:s.jsx(T,{name:"CheckSmall","aria-label":"Passed"}),fail:s.jsx(T,{name:"Remove","aria-label":"Failed"}),unknown:s.jsx(T,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})};return s.jsx(s.Fragment,{children:s.jsx(Ct,{className:"w-full",type:"multiple",children:s.jsx(Mt,{icon:l,title:r,forceMount:!0,children:s.jsxs("div",{className:"not-prose",children:[s.jsxs("div",{className:"flex flex-col gap-2 p-5 pt-3",children:[s.jsx("ul",{className:"flex flex-col gap-2",children:x.map((h,y)=>s.jsx("li",{children:s.jsxs("div",{className:"flex items-baseline gap-2 text-emerald-700",children:[s.jsxs("span",{children:[y+1,"."]}),s.jsx("span",{children:m[h.status]}),s.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",children:h.title})]})},h.timestamp+h.title))}),d?.status==="fail"?s.jsxs("div",{className:"flex items-baseline gap-2 text-foreground-destructive",children:[s.jsxs("span",{children:[x.length+1,"."]}),s.jsx("span",{children:m.fail}),s.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",dangerouslySetInnerHTML:{__html:g.toHtml(wt(d.error))}})]}):null,s.jsx("iframe",{ref:e,title:r,src:o+r,className:"mt-5 min-h-[420px] w-full border bg-white",style:{colorScheme:i}})]}),s.jsxs("div",{className:"flex border-y",children:[s.jsx("button",{onClick:()=>e.current?.contentWindow?.location.reload(),className:"border-r p-3",children:s.jsx(T,{name:"Refresh","aria-label":"Rerun Tests"})}),s.jsx("a",{href:o+r,target:"_blank",rel:"noreferrer",className:"border-r p-3",children:s.jsx(T,{name:"ExternalLink","aria-label":"Open in New Window"})})]})]})})})})}const qU=X([P({type:$("init"),exitCode:G().nullable().optional(),isRunning:Ot(),output:bt(P({type:X([$("stdout"),$("stderr")]),content:Q(),timestamp:G()}))}),P({type:X([$("stdout"),$("stderr")]),data:Q(),timestamp:G()}),P({type:$("exit"),isRunning:$(!1),code:G().nullable()})]),TU=bt(qU);function LU(o,r){return r(o)}function jU({name:o}){const[r,i]=S.useReducer(LU,{version:0,isRunning:!1,exitCode:void 0,lines:[]}),g=yt(),{version:e,isRunning:d,exitCode:v,lines:b}=r,w=Ut(`/test?${new URLSearchParams({name:o})}&v=${e}`);return S.useEffect(()=>{if(!w)return;const l=JSON.parse(w),x=TU.safeParse(l);if(!x.success){console.error(x.error.flatten());return}for(const m of x.data)switch(m.type){case"exit":{const{isRunning:h,code:y}=m;i(A=>({...A,isRunning:h,exitCode:y}));break}case"init":{const{output:h,exitCode:y,isRunning:A}=m;i(L=>({...L,lines:h,exitCode:y,isRunning:A}));break}case"stderr":case"stdout":{const{type:h,data:y,timestamp:A}=m;i(L=>({...L,lines:[...L.lines,{type:h,content:y,timestamp:A}].sort((j,p)=>j.timestamp-p.timestamp),isRunning:!0}));break}}},[w]),s.jsxs("div",{className:"relative flex h-full w-full flex-col overflow-y-auto",children:[s.jsxs("div",{className:"flex h-12 w-full flex-shrink-0 items-center justify-between border-b",children:[s.jsxs("div",{className:"flex h-full items-center",children:[!d&&s.jsx(SU,{name:o,onRun:()=>{i(l=>({...l,exitCode:void 0,lines:[],version:l.version+1}))}}),d?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:s.jsx(st,{role:"status","aria-label":"Running Tests"})}),s.jsx(AU,{name:o})]}):null]}),!d&&v!==void 0&&s.jsx("p",{className:"pr-3.5 leading-none",children:v===0?"Tests passed":`Test failed (exit code ${String(v)})`}),!d&&v!==void 0&&s.jsx(EU,{name:o,onClear:()=>{i(l=>({...l,exitCode:void 0,lines:[]}))}})]}),s.jsxs("div",{className:"flex h-full flex-col gap-5 p-5",children:[s.jsx("p",{className:"font-mono text-sm font-medium uppercase",children:"Test Output"}),s.jsx("pre",{className:"shadow-on-scrollbox flex-1 overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:b.map(l=>s.jsx("code",{"data-type":l.type,dangerouslySetInnerHTML:{__html:g.toHtml(wt(l.content))}},l.timestamp))})]})]})}function SU({name:o,onRun:r}){const i=nt(),g=ot(),e=S.useRef(r);return S.useEffect(()=>{e.current=r},[r]),S.useEffect(()=>{i.data?.success&&e.current?.()},[i.data]),s.jsxs(i.Form,{method:"POST",action:"/test",className:"h-full",children:[g,s.jsx("input",{type:"hidden",name:"name",value:o}),s.jsx(K,{content:i.state==="idle"?"Run Tests":"Running Tests...",children:s.jsx("button",{type:"submit",name:"intent",value:"run",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:i.state==="idle"?s.jsx(T,{name:"TriangleSmall"}):s.jsx(st,{role:"status"})})})]})}function EU({name:o,onClear:r}){const i=nt(),g=ot(),e=S.useRef(r);return S.useEffect(()=>{e.current=r},[r]),S.useEffect(()=>{i.data?.success&&e.current?.()},[i.data]),s.jsxs(i.Form,{method:"POST",action:"/test",className:"h-full",children:[g,s.jsx("input",{type:"hidden",name:"name",value:o}),s.jsx(K,{content:i.state==="idle"?"Clear Tests":"Clearing Tests...",children:s.jsx("button",{type:"submit",name:"intent",value:"clear",className:"flex h-full flex-grow items-center justify-center border-l px-3.5",children:i.state==="idle"?s.jsx(T,{name:"Clear"}):s.jsx(T,{name:"Clear",className:"animate-pulse",role:"status"})})})]})}function AU({name:o,onStop:r}){const i=nt(),g=ot(),e=S.useRef(r);return S.useEffect(()=>{e.current=r},[r]),S.useEffect(()=>{i.data?.success&&e.current?.()},[i.data]),s.jsxs(i.Form,{method:"POST",action:"/test",className:"h-full",children:[g,s.jsx("input",{type:"hidden",name:"name",value:o}),s.jsx(K,{content:i.state==="idle"?"Stop Tests":"Stopping Tests...",children:s.jsx("button",{type:"submit",name:"intent",value:"stop",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:i.state==="idle"?s.jsx(T,{name:"Stop"}):s.jsx(T,{name:"Stop",className:"animate-pulse",role:"status"})})})]})}function PU({appInfo:o,problemAppName:r,allApps:i,isUpToDate:g}){return s.jsx(Pt,{playgroundAppName:o?.appName,problemAppName:r,allApps:i,isUpToDate:g,children:s.jsx(DU,{playgroundAppInfo:o})})}function DU({playgroundAppInfo:o}){const[r,i]=S.useState(0);if(!_t())return s.jsxs("div",{className:"w-full p-12",children:[s.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[s.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),s.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view and run the tests."})]}),s.jsx("div",{className:"h-16"}),s.jsx("p",{className:"pb-4",children:"Check out this video to see how the test tab works."}),s.jsx(kt,{url:"https://www.epicweb.dev/tips/epic-workshop-test-tab-demo"})]});if(!o)return s.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:s.jsx("p",{children:"No tests here 😢 Sorry."})});if(o.test.type==="script")return s.jsx(jU,{name:o.name});if(o.test.type==="browser"){const{pathname:e}=o.test;return s.jsxs("div",{className:"flex h-full w-full flex-grow flex-col overflow-y-auto",children:[o.test.testFiles.map(d=>s.jsx("div",{children:s.jsx(wU,{pathname:e,testFile:d})},d)),s.jsx("div",{className:"px-3 py-[21px]",children:s.jsxs("button",{onClick:()=>i(d=>d+1),className:"flex items-center gap-2 font-mono text-sm uppercase leading-none",children:[s.jsx(T,{name:"Refresh","aria-hidden":!0})," Rerun All Tests"]})})]},r)}return s.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:s.jsx("p",{children:"No tests here 😢 Sorry."})})}export{Pt as P,DU as T,PU as a};
|
|
4
|
+
//# sourceMappingURL=tests-DvbNIXBP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tests-DvbNIXBP.js","sources":["../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/__shared/playground-window.tsx","../../../../../node_modules/entities/lib/decode_codepoint.js","../../../../../node_modules/entities/lib/decode.js","../../../../../node_modules/entities/lib/encode.js","../../../../../node_modules/entities/lib/index.js","../../../../../node_modules/ansi-to-html/lib/ansi_to_html.js","../../../app/utils/ansi-text.ts","../../../app/components/in-browser-test-runner.tsx","../../../app/routes/test.tsx","../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/__shared/tests.tsx"],"sourcesContent":["import { Icon } from '#app/components/icons'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.js'\nimport { PlaygroundChooser, SetPlayground } from '#app/routes/set-playground'\n\nexport function PlaygroundWindow({\n\tplaygroundAppName,\n\tproblemAppName,\n\tisUpToDate,\n\tallApps,\n\tchildren,\n}: {\n\tplaygroundAppName?: string\n\tproblemAppName?: string\n\tisUpToDate: boolean\n\tallApps: Array<{ name: string; displayName: string }>\n\tchildren: React.ReactNode\n}) {\n\tconst isCorrectApp = playgroundAppName === problemAppName\n\tconst playgroundLinkedUI =\n\t\tisCorrectApp && isUpToDate ? (\n\t\t\t<Icon size=\"xl\" name=\"Linked\" />\n\t\t) : (\n\t\t\t<Icon\n\t\t\t\tsize=\"xl\"\n\t\t\t\tname=\"Unlinked\"\n\t\t\t\tclassName=\"animate-pulse text-foreground-destructive\"\n\t\t\t/>\n\t\t)\n\tlet setPlaygroundTooltipText = 'Click to reset Playground.'\n\tif (!isUpToDate) {\n\t\tsetPlaygroundTooltipText =\n\t\t\t'Playground is out of date. Click to reset Playground.'\n\t}\n\tif (!isCorrectApp) {\n\t\tsetPlaygroundTooltipText =\n\t\t\t'Playground is not set to the right app. Click to set Playground.'\n\t}\n\treturn (\n\t\t<div className=\"flex h-full w-full flex-col justify-between\">\n\t\t\t<div className=\"flex h-14 flex-shrink-0 items-center justify-start gap-2 border-b px-3\">\n\t\t\t\t<div className=\"display-alt-up\">\n\t\t\t\t\t{problemAppName ? (\n\t\t\t\t\t\t<SetPlayground\n\t\t\t\t\t\t\tappName={problemAppName}\n\t\t\t\t\t\t\ttooltipText={setPlaygroundTooltipText}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{playgroundLinkedUI}\n\t\t\t\t\t\t</SetPlayground>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SimpleTooltip content=\"No problem app available for this step\">\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Icon name=\"Question\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"display-alt-down\">\n\t\t\t\t\t{playgroundAppName ? (\n\t\t\t\t\t\t<SetPlayground\n\t\t\t\t\t\t\tappName={playgroundAppName}\n\t\t\t\t\t\t\treset\n\t\t\t\t\t\t\ttooltipText=\"Reset Playground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"flex h-7 w-7 items-center justify-center\">\n\t\t\t\t\t\t\t\t<Icon name=\"Refresh\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</SetPlayground>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"h-7 w-7\" />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<PlaygroundChooser\n\t\t\t\t\tallApps={allApps}\n\t\t\t\t\tplaygroundAppName={playgroundAppName}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div className=\"flex h-full flex-1 flex-grow items-center justify-center\">\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault(require(\"./maps/decode.json\"));\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint(codePoint);\n}\nexports.default = decodeCodePoint;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\nexports.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `#`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nexports.escape = escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `ü`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nexports.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\nvar decode_1 = require(\"./decode\");\nvar encode_1 = require(\"./encode\");\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\nfunction decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\nfunction encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\nexports.encode = encode;\nvar encode_2 = require(\"./encode\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nvar decode_2 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar entities = require('entities');\n\nvar defaults = {\n fg: '#FFF',\n bg: '#000',\n newline: false,\n escapeXML: false,\n stream: false,\n colors: getDefaultColors()\n};\n\nfunction getDefaultColors() {\n var colors = {\n 0: '#000',\n 1: '#A00',\n 2: '#0A0',\n 3: '#A50',\n 4: '#00A',\n 5: '#A0A',\n 6: '#0AA',\n 7: '#AAA',\n 8: '#555',\n 9: '#F55',\n 10: '#5F5',\n 11: '#FF5',\n 12: '#55F',\n 13: '#F5F',\n 14: '#5FF',\n 15: '#FFF'\n };\n range(0, 5).forEach(function (red) {\n range(0, 5).forEach(function (green) {\n range(0, 5).forEach(function (blue) {\n return setStyleColor(red, green, blue, colors);\n });\n });\n });\n range(0, 23).forEach(function (gray) {\n var c = gray + 232;\n var l = toHexString(gray * 10 + 8);\n colors[c] = '#' + l + l + l;\n });\n return colors;\n}\n/**\n * @param {number} red\n * @param {number} green\n * @param {number} blue\n * @param {object} colors\n */\n\n\nfunction setStyleColor(red, green, blue, colors) {\n var c = 16 + red * 36 + green * 6 + blue;\n var r = red > 0 ? red * 40 + 55 : 0;\n var g = green > 0 ? green * 40 + 55 : 0;\n var b = blue > 0 ? blue * 40 + 55 : 0;\n colors[c] = toColorHexString([r, g, b]);\n}\n/**\n * Converts from a number like 15 to a hex string like 'F'\n * @param {number} num\n * @returns {string}\n */\n\n\nfunction toHexString(num) {\n var str = num.toString(16);\n\n while (str.length < 2) {\n str = '0' + str;\n }\n\n return str;\n}\n/**\n * Converts from an array of numbers like [15, 15, 15] to a hex string like 'FFF'\n * @param {[red, green, blue]} ref\n * @returns {string}\n */\n\n\nfunction toColorHexString(ref) {\n var results = [];\n\n var _iterator = _createForOfIteratorHelper(ref),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var r = _step.value;\n results.push(toHexString(r));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return '#' + results.join('');\n}\n/**\n * @param {Array} stack\n * @param {string} token\n * @param {*} data\n * @param {object} options\n */\n\n\nfunction generateOutput(stack, token, data, options) {\n var result;\n\n if (token === 'text') {\n result = pushText(data, options);\n } else if (token === 'display') {\n result = handleDisplay(stack, data, options);\n } else if (token === 'xterm256Foreground') {\n result = pushForegroundColor(stack, options.colors[data]);\n } else if (token === 'xterm256Background') {\n result = pushBackgroundColor(stack, options.colors[data]);\n } else if (token === 'rgb') {\n result = handleRgb(stack, data);\n }\n\n return result;\n}\n/**\n * @param {Array} stack\n * @param {string} data\n * @returns {*}\n */\n\n\nfunction handleRgb(stack, data) {\n data = data.substring(2).slice(0, -1);\n var operation = +data.substr(0, 2);\n var color = data.substring(5).split(';');\n var rgb = color.map(function (value) {\n return ('0' + Number(value).toString(16)).substr(-2);\n }).join('');\n return pushStyle(stack, (operation === 38 ? 'color:#' : 'background-color:#') + rgb);\n}\n/**\n * @param {Array} stack\n * @param {number} code\n * @param {object} options\n * @returns {*}\n */\n\n\nfunction handleDisplay(stack, code, options) {\n code = parseInt(code, 10);\n var codeMap = {\n '-1': function _() {\n return '<br/>';\n },\n 0: function _() {\n return stack.length && resetStyles(stack);\n },\n 1: function _() {\n return pushTag(stack, 'b');\n },\n 3: function _() {\n return pushTag(stack, 'i');\n },\n 4: function _() {\n return pushTag(stack, 'u');\n },\n 8: function _() {\n return pushStyle(stack, 'display:none');\n },\n 9: function _() {\n return pushTag(stack, 'strike');\n },\n 22: function _() {\n return pushStyle(stack, 'font-weight:normal;text-decoration:none;font-style:normal');\n },\n 23: function _() {\n return closeTag(stack, 'i');\n },\n 24: function _() {\n return closeTag(stack, 'u');\n },\n 39: function _() {\n return pushForegroundColor(stack, options.fg);\n },\n 49: function _() {\n return pushBackgroundColor(stack, options.bg);\n },\n 53: function _() {\n return pushStyle(stack, 'text-decoration:overline');\n }\n };\n var result;\n\n if (codeMap[code]) {\n result = codeMap[code]();\n } else if (4 < code && code < 7) {\n result = pushTag(stack, 'blink');\n } else if (29 < code && code < 38) {\n result = pushForegroundColor(stack, options.colors[code - 30]);\n } else if (39 < code && code < 48) {\n result = pushBackgroundColor(stack, options.colors[code - 40]);\n } else if (89 < code && code < 98) {\n result = pushForegroundColor(stack, options.colors[8 + (code - 90)]);\n } else if (99 < code && code < 108) {\n result = pushBackgroundColor(stack, options.colors[8 + (code - 100)]);\n }\n\n return result;\n}\n/**\n * Clear all the styles\n * @returns {string}\n */\n\n\nfunction resetStyles(stack) {\n var stackClone = stack.slice(0);\n stack.length = 0;\n return stackClone.reverse().map(function (tag) {\n return '</' + tag + '>';\n }).join('');\n}\n/**\n * Creates an array of numbers ranging from low to high\n * @param {number} low\n * @param {number} high\n * @returns {Array}\n * @example range(3, 7); // creates [3, 4, 5, 6, 7]\n */\n\n\nfunction range(low, high) {\n var results = [];\n\n for (var j = low; j <= high; j++) {\n results.push(j);\n }\n\n return results;\n}\n/**\n * Returns a new function that is true if value is NOT the same category\n * @param {string} category\n * @returns {function}\n */\n\n\nfunction notCategory(category) {\n return function (e) {\n return (category === null || e.category !== category) && category !== 'all';\n };\n}\n/**\n * Converts a code into an ansi token type\n * @param {number} code\n * @returns {string}\n */\n\n\nfunction categoryForCode(code) {\n code = parseInt(code, 10);\n var result = null;\n\n if (code === 0) {\n result = 'all';\n } else if (code === 1) {\n result = 'bold';\n } else if (2 < code && code < 5) {\n result = 'underline';\n } else if (4 < code && code < 7) {\n result = 'blink';\n } else if (code === 8) {\n result = 'hide';\n } else if (code === 9) {\n result = 'strike';\n } else if (29 < code && code < 38 || code === 39 || 89 < code && code < 98) {\n result = 'foreground-color';\n } else if (39 < code && code < 48 || code === 49 || 99 < code && code < 108) {\n result = 'background-color';\n }\n\n return result;\n}\n/**\n * @param {string} text\n * @param {object} options\n * @returns {string}\n */\n\n\nfunction pushText(text, options) {\n if (options.escapeXML) {\n return entities.encodeXML(text);\n }\n\n return text;\n}\n/**\n * @param {Array} stack\n * @param {string} tag\n * @param {string} [style='']\n * @returns {string}\n */\n\n\nfunction pushTag(stack, tag, style) {\n if (!style) {\n style = '';\n }\n\n stack.push(tag);\n return \"<\".concat(tag).concat(style ? \" style=\\\"\".concat(style, \"\\\"\") : '', \">\");\n}\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\n\n\nfunction pushStyle(stack, style) {\n return pushTag(stack, 'span', style);\n}\n\nfunction pushForegroundColor(stack, color) {\n return pushTag(stack, 'span', 'color:' + color);\n}\n\nfunction pushBackgroundColor(stack, color) {\n return pushTag(stack, 'span', 'background-color:' + color);\n}\n/**\n * @param {Array} stack\n * @param {string} style\n * @returns {string}\n */\n\n\nfunction closeTag(stack, style) {\n var last;\n\n if (stack.slice(-1)[0] === style) {\n last = stack.pop();\n }\n\n if (last) {\n return '</' + style + '>';\n }\n}\n/**\n * @param {string} text\n * @param {object} options\n * @param {function} callback\n * @returns {Array}\n */\n\n\nfunction tokenize(text, options, callback) {\n var ansiMatch = false;\n var ansiHandler = 3;\n\n function remove() {\n return '';\n }\n\n function removeXterm256Foreground(m, g1) {\n callback('xterm256Foreground', g1);\n return '';\n }\n\n function removeXterm256Background(m, g1) {\n callback('xterm256Background', g1);\n return '';\n }\n\n function newline(m) {\n if (options.newline) {\n callback('display', -1);\n } else {\n callback('text', m);\n }\n\n return '';\n }\n\n function ansiMess(m, g1) {\n ansiMatch = true;\n\n if (g1.trim().length === 0) {\n g1 = '0';\n }\n\n g1 = g1.trimRight(';').split(';');\n\n var _iterator2 = _createForOfIteratorHelper(g1),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var g = _step2.value;\n callback('display', g);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return '';\n }\n\n function realText(m) {\n callback('text', m);\n return '';\n }\n\n function rgb(m) {\n callback('rgb', m);\n return '';\n }\n /* eslint no-control-regex:0 */\n\n\n var tokens = [{\n pattern: /^\\x08+/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[[012]?K/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[\\(B/,\n sub: remove\n }, {\n pattern: /^\\x1b\\[[34]8;2;\\d+;\\d+;\\d+m/,\n sub: rgb\n }, {\n pattern: /^\\x1b\\[38;5;(\\d+)m/,\n sub: removeXterm256Foreground\n }, {\n pattern: /^\\x1b\\[48;5;(\\d+)m/,\n sub: removeXterm256Background\n }, {\n pattern: /^\\n/,\n sub: newline\n }, {\n pattern: /^\\r+\\n/,\n sub: newline\n }, {\n pattern: /^\\r/,\n sub: newline\n }, {\n pattern: /^\\x1b\\[((?:\\d{1,3};?)+|)m/,\n sub: ansiMess\n }, {\n // CSI n J\n // ED - Erase in Display Clears part of the screen.\n // If n is 0 (or missing), clear from cursor to end of screen.\n // If n is 1, clear from cursor to beginning of the screen.\n // If n is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS).\n // If n is 3, clear entire screen and delete all lines saved in the scrollback buffer\n // (this feature was added for xterm and is supported by other terminal applications).\n pattern: /^\\x1b\\[\\d?J/,\n sub: remove\n }, {\n // CSI n ; m f\n // HVP - Horizontal Vertical Position Same as CUP\n pattern: /^\\x1b\\[\\d{0,3};\\d{0,3}f/,\n sub: remove\n }, {\n // catch-all for CSI sequences?\n pattern: /^\\x1b\\[?[\\d;]{0,3}/,\n sub: remove\n }, {\n /**\n * extracts real text - not containing:\n * - `\\x1b' - ESC - escape (Ascii 27)\n * - '\\x08' - BS - backspace (Ascii 8)\n * - `\\n` - Newline - linefeed (LF) (ascii 10)\n * - `\\r` - Windows Carriage Return (CR)\n */\n pattern: /^(([^\\x1b\\x08\\r\\n])+)/,\n sub: realText\n }];\n\n function process(handler, i) {\n if (i > ansiHandler && ansiMatch) {\n return;\n }\n\n ansiMatch = false;\n text = text.replace(handler.pattern, handler.sub);\n }\n\n var results1 = [];\n var _text = text,\n length = _text.length;\n\n outer: while (length > 0) {\n for (var i = 0, o = 0, len = tokens.length; o < len; i = ++o) {\n var handler = tokens[i];\n process(handler, i);\n\n if (text.length !== length) {\n // We matched a token and removed it from the text. We need to\n // start matching *all* tokens against the new text.\n length = text.length;\n continue outer;\n }\n }\n\n if (text.length === length) {\n break;\n }\n\n results1.push(0);\n length = text.length;\n }\n\n return results1;\n}\n/**\n * If streaming, then the stack is \"sticky\"\n *\n * @param {Array} stickyStack\n * @param {string} token\n * @param {*} data\n * @returns {Array}\n */\n\n\nfunction updateStickyStack(stickyStack, token, data) {\n if (token !== 'text') {\n stickyStack = stickyStack.filter(notCategory(categoryForCode(data)));\n stickyStack.push({\n token: token,\n data: data,\n category: categoryForCode(data)\n });\n }\n\n return stickyStack;\n}\n\nvar Filter = /*#__PURE__*/function () {\n /**\n * @param {object} options\n * @param {string=} options.fg The default foreground color used when reset color codes are encountered.\n * @param {string=} options.bg The default background color used when reset color codes are encountered.\n * @param {boolean=} options.newline Convert newline characters to `<br/>`.\n * @param {boolean=} options.escapeXML Generate HTML/XML entities.\n * @param {boolean=} options.stream Save style state across invocations of `toHtml()`.\n * @param {(string[] | {[code: number]: string})=} options.colors Can override specific colors or the entire ANSI palette.\n */\n function Filter(options) {\n _classCallCheck(this, Filter);\n\n options = options || {};\n\n if (options.colors) {\n options.colors = Object.assign({}, defaults.colors, options.colors);\n }\n\n this.options = Object.assign({}, defaults, options);\n this.stack = [];\n this.stickyStack = [];\n }\n /**\n * @param {string | string[]} input\n * @returns {string}\n */\n\n\n _createClass(Filter, [{\n key: \"toHtml\",\n value: function toHtml(input) {\n var _this = this;\n\n input = typeof input === 'string' ? [input] : input;\n var stack = this.stack,\n options = this.options;\n var buf = [];\n this.stickyStack.forEach(function (element) {\n var output = generateOutput(stack, element.token, element.data, options);\n\n if (output) {\n buf.push(output);\n }\n });\n tokenize(input.join(''), options, function (token, data) {\n var output = generateOutput(stack, token, data, options);\n\n if (output) {\n buf.push(output);\n }\n\n if (options.stream) {\n _this.stickyStack = updateStickyStack(_this.stickyStack, token, data);\n }\n });\n\n if (stack.length) {\n buf.push(resetStyles(stack));\n }\n\n return buf.join('');\n }\n }]);\n\n return Filter;\n}();\n\nmodule.exports = Filter;\n//# sourceMappingURL=ansi_to_html.js.map","import AnsiToHTML from 'ansi-to-html'\nimport { useMemo } from 'react'\nimport { useTheme } from '#app/routes/theme/index.js'\n\nexport function useAnsiToHtml() {\n\tconst theme = useTheme()\n\tconst ansi = useMemo(\n\t\t() =>\n\t\t\tnew AnsiToHTML(\n\t\t\t\ttheme === 'dark'\n\t\t\t\t\t? { fg: '#d6deeb', bg: '#121318', escapeXML: true }\n\t\t\t\t\t: { fg: '#000000', bg: '#f3f3f3', escapeXML: true },\n\t\t\t),\n\t\t[theme],\n\t)\n\treturn ansi\n}\n\n// remove this when this is fixed: https://github.com/rburns/ansi-to-html/issues/112\nexport function stripCursorMovements(data: string) {\n\treturn data.replace(/\\u001b\\[\\d+A/g, '').replace(/\\u001b\\[\\d+K/g, '')\n}\n","import * as Accordion from '@radix-ui/react-accordion'\nimport { useEffect, useRef, useState } from 'react'\nimport { z } from 'zod'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { useTheme } from '#app/routes/theme/index.tsx'\nimport { stripCursorMovements, useAnsiToHtml } from '#app/utils/ansi-text.js'\nimport { AnimatedBars, Icon } from './icons.tsx'\n\nconst testRunnerStatusDataSchema = z.intersection(\n\tz.object({\n\t\ttype: z.literal('epicshop:test-status-update'),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.union([\n\t\tz.object({ status: z.literal('pending') }),\n\t\tz.object({ status: z.literal('pass') }),\n\t\tz.object({ status: z.literal('fail'), error: z.string() }),\n\t]),\n)\n\nconst testRunnerTestStepDataSchema = z.object({\n\ttype: z.literal('epicshop:test-step-update'),\n\tstatus: z.literal('pass'),\n\ttitle: z.string(),\n\ttimestamp: z.number(),\n})\n\nconst testRunnerDataSchema = z.union([\n\ttestRunnerTestStepDataSchema,\n\ttestRunnerStatusDataSchema,\n])\n\ntype TestRunnerStatusData = z.infer<typeof testRunnerStatusDataSchema>\ntype TestRunnerTestStepData = z.infer<typeof testRunnerTestStepDataSchema>\n\nexport function InBrowserTestRunner({\n\tpathname,\n\ttestFile,\n}: {\n\tpathname: string\n\ttestFile: string\n}) {\n\tconst theme = useTheme()\n\tconst ansi = useAnsiToHtml()\n\tconst iframeRef = useRef<HTMLIFrameElement>(null)\n\tconst [message, setMessage] = useState<TestRunnerStatusData | null>(null)\n\tconst [testSteps, setTestSteps] = useState<Array<TestRunnerTestStepData>>([])\n\n\tuseEffect(() => {\n\t\tfunction handleMessage(messageEvent: MessageEvent) {\n\t\t\tif (messageEvent.source !== iframeRef.current?.contentWindow) return\n\t\t\tif ('request' in messageEvent.data) return\n\n\t\t\tconst result = testRunnerDataSchema.safeParse(messageEvent.data, {\n\t\t\t\tpath: ['messageEvent', 'data'],\n\t\t\t})\n\t\t\tif (!result.success) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`Invalid message from test iframe`,\n\t\t\t\t\tmessageEvent.data,\n\t\t\t\t\tresult.error,\n\t\t\t\t)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst { data } = result\n\t\t\tif (data.type === 'epicshop:test-status-update') {\n\t\t\t\tif (data.status === 'pending') {\n\t\t\t\t\tsetTestSteps([])\n\t\t\t\t}\n\t\t\t\tsetMessage(data)\n\t\t\t}\n\t\t\tif (data.type === 'epicshop:test-step-update') {\n\t\t\t\tsetTestSteps((steps) => [...steps, data])\n\t\t\t}\n\t\t}\n\t\twindow.addEventListener('message', handleMessage)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('message', handleMessage)\n\t\t}\n\t}, [])\n\n\tconst statusEmoji = {\n\t\tpending: <AnimatedBars size={14} aria-label=\"Pending\" />,\n\t\tpass: (\n\t\t\t<Icon\n\t\t\t\tname=\"CheckSmall\"\n\t\t\t\taria-label=\"Passed\"\n\t\t\t\tclassName=\"text-emerald-700\"\n\t\t\t/>\n\t\t),\n\t\tfail: (\n\t\t\t<Icon\n\t\t\t\tname=\"Remove\"\n\t\t\t\taria-label=\"Failed\"\n\t\t\t\tclassName=\"text-foreground-destructive\"\n\t\t\t/>\n\t\t),\n\t\tunknown: (\n\t\t\t<Icon name=\"Question\" aria-label=\"Unknown\" className=\"animate-pulse\" />\n\t\t),\n\t}[message?.status ?? 'unknown']\n\n\tconst sortedTestSteps = testSteps.sort((a, b) => a.timestamp - b.timestamp)\n\tconst testStepStatusEmojis = {\n\t\tpass: <Icon name=\"CheckSmall\" aria-label=\"Passed\" />,\n\t\tfail: <Icon name=\"Remove\" aria-label=\"Failed\" />,\n\t\tunknown: (\n\t\t\t<Icon name=\"Question\" aria-label=\"Unknown\" className=\"animate-pulse\" />\n\t\t),\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t<AccordionComponent\n\t\t\t\t\ticon={statusEmoji}\n\t\t\t\t\ttitle={testFile}\n\t\t\t\t\tforceMount={true}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"not-prose\">\n\t\t\t\t\t\t<div className=\"flex flex-col gap-2 p-5 pt-3\">\n\t\t\t\t\t\t\t<ul className=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t{sortedTestSteps.map((testStep, index) => (\n\t\t\t\t\t\t\t\t\t// sometimes the steps come in so fast that the timestamp is the same\n\t\t\t\t\t\t\t\t\t<li key={testStep.timestamp + testStep.title}>\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-baseline gap-2 text-emerald-700\">\n\t\t\t\t\t\t\t\t\t\t\t<span>{index + 1}.</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{testStepStatusEmojis[testStep.status]}</span>\n\t\t\t\t\t\t\t\t\t\t\t<pre className=\"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t\t\t\t\t\t{testStep.title}\n\t\t\t\t\t\t\t\t\t\t\t</pre>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t{message?.status === 'fail' ? (\n\t\t\t\t\t\t\t\t<div className=\"flex items-baseline gap-2 text-foreground-destructive\">\n\t\t\t\t\t\t\t\t\t<span>{sortedTestSteps.length + 1}.</span>\n\t\t\t\t\t\t\t\t\t<span>{testStepStatusEmojis.fail}</span>\n\t\t\t\t\t\t\t\t\t<pre\n\t\t\t\t\t\t\t\t\t\tclassName=\"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t\t\t\t__html: ansi.toHtml(stripCursorMovements(message.error)),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\t\tref={iframeRef}\n\t\t\t\t\t\t\t\ttitle={testFile}\n\t\t\t\t\t\t\t\tsrc={pathname + testFile}\n\t\t\t\t\t\t\t\tclassName=\"mt-5 min-h-[420px] w-full border bg-white\"\n\t\t\t\t\t\t\t\tstyle={{ colorScheme: theme }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex border-y\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\tiframeRef.current?.contentWindow?.location.reload()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"border-r p-3\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon name=\"Refresh\" aria-label=\"Rerun Tests\" />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={pathname + testFile}\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noreferrer\"\n\t\t\t\t\t\t\t\tclassName=\"border-r p-3\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon name=\"ExternalLink\" aria-label=\"Open in New Window\" />\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</AccordionComponent>\n\t\t\t</Accordion.Root>\n\t\t</>\n\t)\n}\n","import { getAppByName } from '@epic-web/workshop-utils/apps.server'\nimport { userHasAccessToWorkshop } from '@epic-web/workshop-utils/epic-api.server'\nimport {\n\tclearTestProcessEntry,\n\tgetTestProcessEntry,\n\tisTestRunning,\n\trunAppTests,\n} from '@epic-web/workshop-utils/process-manager.server'\nimport { useEffect, useReducer, useRef } from 'react'\nimport {\n\tdata,\n\ttype ActionFunctionArgs,\n\ttype LoaderFunctionArgs,\n\tuseFetcher,\n} from 'react-router'\nimport { useEventSource } from 'remix-utils/sse/react'\nimport { eventStream } from 'remix-utils/sse/server'\nimport { z } from 'zod'\nimport { AnimatedBars, Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { stripCursorMovements, useAnsiToHtml } from '#app/utils/ansi-text.js'\nimport { ensureUndeployed } from '#app/utils/misc.tsx'\nimport { dataWithPE, usePERedirectInput } from '#app/utils/pe.js'\nimport { createToastHeaders } from '#app/utils/toast.server.js'\n\nconst testActionSchema = z.union([\n\tz.object({\n\t\tintent: z.literal('run'),\n\t\tname: z.string(),\n\t}),\n\tz.object({\n\t\tintent: z.literal('stop'),\n\t\tname: z.string(),\n\t}),\n\tz.object({\n\t\tintent: z.literal('clear'),\n\t\tname: z.string(),\n\t}),\n])\n\nconst testEventSchema = z.union([\n\tz.object({\n\t\ttype: z.literal('init'),\n\t\texitCode: z.number().nullable().optional(),\n\t\tisRunning: z.boolean(),\n\t\toutput: z.array(\n\t\t\tz.object({\n\t\t\t\ttype: z.union([z.literal('stdout'), z.literal('stderr')]),\n\t\t\t\tcontent: z.string(),\n\t\t\t\ttimestamp: z.number(),\n\t\t\t}),\n\t\t),\n\t}),\n\tz.object({\n\t\ttype: z.union([z.literal('stdout'), z.literal('stderr')]),\n\t\tdata: z.string(),\n\t\ttimestamp: z.number(),\n\t}),\n\tz.object({\n\t\ttype: z.literal('exit'),\n\t\tisRunning: z.literal(false),\n\t\tcode: z.number().nullable(),\n\t}),\n])\nconst testEventQueueSchema = z.array(testEventSchema)\n\ntype TestEvent = z.infer<typeof testEventSchema>\ntype TestEventQueue = z.infer<typeof testEventQueueSchema>\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tensureUndeployed()\n\tconst url = new URL(request.url)\n\tconst name = url.searchParams.get('name')\n\tif (!name) {\n\t\treturn data({ error: 'Missing name' }, { status: 400 })\n\t}\n\tconst app = await getAppByName(name)\n\tif (!app) {\n\t\treturn data({ error: 'App not found' }, { status: 404 })\n\t}\n\tconst processEntry = getTestProcessEntry(app)\n\tif (!processEntry) {\n\t\treturn data({ error: 'App is not running tests' }, { status: 404 })\n\t}\n\treturn eventStream(request.signal, function setup(send) {\n\t\t// have to batch because the client may miss events if we send too many\n\t\t// too rapidly\n\t\tlet queue: TestEventQueue = []\n\t\tfunction sendEvent(event: TestEvent) {\n\t\t\tqueue.push(event)\n\t\t}\n\t\tconst interval = setInterval(() => {\n\t\t\tif (queue.length) {\n\t\t\t\tsend({ data: JSON.stringify(queue) })\n\t\t\t\tqueue = []\n\t\t\t}\n\t\t}, 10)\n\n\t\tconst isRunning = isTestRunning(app)\n\n\t\tsendEvent({\n\t\t\ttype: 'init',\n\t\t\texitCode: processEntry.exitCode,\n\t\t\tisRunning,\n\t\t\toutput: processEntry.output.map((line) => ({\n\t\t\t\ttype: line.type,\n\t\t\t\tcontent: line.content,\n\t\t\t\ttimestamp: line.timestamp,\n\t\t\t})),\n\t\t})\n\n\t\tconst testProcess = processEntry.process\n\t\tif (!testProcess) {\n\t\t\treturn () => {}\n\t\t}\n\n\t\tfunction handleStdOutData(data: Buffer) {\n\t\t\tsendEvent({\n\t\t\t\ttype: 'stdout',\n\t\t\t\tdata: data.toString('utf-8'),\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t})\n\t\t}\n\t\tfunction handleStdErrData(data: Buffer) {\n\t\t\tsendEvent({\n\t\t\t\ttype: 'stderr',\n\t\t\t\tdata: data.toString('utf-8'),\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t})\n\t\t}\n\t\tfunction handleExit(code: number) {\n\t\t\ttestProcess?.stdout?.off('data', handleStdOutData)\n\t\t\ttestProcess?.stderr?.off('data', handleStdErrData)\n\t\t\ttestProcess?.off('exit', handleExit)\n\t\t\tsendEvent({ type: 'exit', isRunning: false, code })\n\t\t}\n\t\ttestProcess.stdout?.on('data', handleStdOutData)\n\t\ttestProcess.stderr?.on('data', handleStdErrData)\n\t\ttestProcess.on('exit', handleExit)\n\t\treturn function cleanup() {\n\t\t\ttestProcess.stdout?.off('data', handleStdOutData)\n\t\t\ttestProcess.stderr?.off('data', handleStdErrData)\n\t\t\ttestProcess.off('exit', handleExit)\n\t\t\tclearInterval(interval)\n\t\t}\n\t})\n}\n\nexport async function action({ request }: ActionFunctionArgs) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst userHasAccess = await userHasAccessToWorkshop({\n\t\trequest,\n\t})\n\tif (!userHasAccess) {\n\t\treturn dataWithPE(\n\t\t\tformData,\n\t\t\t{\n\t\t\t\tsuccess: false,\n\t\t\t\terror:\n\t\t\t\t\t'You do not have access to this workshop. Login or register for the workshop to be able to run the tests.',\n\t\t\t},\n\t\t\t{\n\t\t\t\tstatus: 403,\n\t\t\t\theaders: await createToastHeaders({\n\t\t\t\t\ttitle: 'Access denied',\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t'You do not have access to this workshop. Login or register for the workshop to be able to run the tests.',\n\t\t\t\t}),\n\t\t\t},\n\t\t)\n\t}\n\tconst result = testActionSchema.safeParse({\n\t\tintent: formData.get('intent'),\n\t\tname: formData.get('name'),\n\t})\n\tif (!result.success) {\n\t\treturn dataWithPE(\n\t\t\tformData,\n\t\t\t{ success: false, error: result.error.flatten() },\n\t\t\t{ status: 400 },\n\t\t)\n\t}\n\tconst app = await getAppByName(result.data.name)\n\tif (!app) {\n\t\treturn dataWithPE(\n\t\t\tformData,\n\t\t\t{ success: false, error: 'App not found' },\n\t\t\t{ status: 404 },\n\t\t)\n\t}\n\tswitch (result.data.intent) {\n\t\tcase 'run': {\n\t\t\tvoid runAppTests(app)\n\t\t\treturn dataWithPE(formData, { success: true })\n\t\t}\n\t\tcase 'stop': {\n\t\t\tconst processEntry = getTestProcessEntry(app)\n\t\t\tif (processEntry) {\n\t\t\t\tprocessEntry.process?.kill()\n\t\t\t}\n\t\t\treturn dataWithPE(formData, { success: true })\n\t\t}\n\t\tcase 'clear': {\n\t\t\tclearTestProcessEntry(app)\n\t\t\treturn dataWithPE(formData, { success: true })\n\t\t}\n\t}\n}\n\nfunction simpleReducer<State>(prev: State, getNext: (prev: State) => State) {\n\treturn getNext(prev)\n}\n\nexport function TestOutput({ name }: { name: string }) {\n\ttype State = {\n\t\t/** version is used to trigger an unsubscribe and resubscribe to the event source */\n\t\tversion: number\n\t\tisRunning: boolean\n\t\texitCode: number | null | undefined\n\t\tlines: Array<{\n\t\t\ttype: 'stdout' | 'stderr'\n\t\t\tcontent: string\n\t\t\ttimestamp: number\n\t\t}>\n\t}\n\tconst [state, dispatch] = useReducer(simpleReducer<State>, {\n\t\tversion: 0,\n\t\tisRunning: false,\n\t\texitCode: undefined,\n\t\tlines: [],\n\t})\n\tconst ansi = useAnsiToHtml()\n\tconst { version, isRunning, exitCode, lines } = state\n\tconst lastMessage = useEventSource(\n\t\t`/test?${new URLSearchParams({ name })}&v=${version}`,\n\t)\n\tuseEffect(() => {\n\t\tif (!lastMessage) return\n\n\t\tconst parsed = JSON.parse(lastMessage)\n\t\tconst result = testEventQueueSchema.safeParse(parsed)\n\t\tif (!result.success) {\n\t\t\tconsole.error(result.error.flatten())\n\t\t\treturn\n\t\t}\n\t\tfor (const event of result.data) {\n\t\t\tswitch (event.type) {\n\t\t\t\tcase 'exit': {\n\t\t\t\t\tconst { isRunning, code: exitCode } = event\n\t\t\t\t\tdispatch((prev) => ({ ...prev, isRunning, exitCode }))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'init': {\n\t\t\t\t\tconst { output, exitCode, isRunning } = event\n\t\t\t\t\tdispatch((prev) => ({ ...prev, lines: output, exitCode, isRunning }))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'stderr':\n\t\t\t\tcase 'stdout': {\n\t\t\t\t\tconst { type, data: content, timestamp } = event\n\t\t\t\t\tdispatch((prev) => ({\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\tlines: [...prev.lines, { type, content, timestamp }].sort(\n\t\t\t\t\t\t\t(a, b) => a.timestamp - b.timestamp,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tisRunning: true,\n\t\t\t\t\t}))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [lastMessage])\n\n\treturn (\n\t\t<div className=\"relative flex h-full w-full flex-col overflow-y-auto\">\n\t\t\t<div className=\"flex h-12 w-full flex-shrink-0 items-center justify-between border-b\">\n\t\t\t\t<div className=\"flex h-full items-center\">\n\t\t\t\t\t{!isRunning && (\n\t\t\t\t\t\t<TestRunner\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tonRun={() => {\n\t\t\t\t\t\t\t\tdispatch((prev) => ({\n\t\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t\texitCode: undefined,\n\t\t\t\t\t\t\t\t\tlines: [],\n\t\t\t\t\t\t\t\t\tversion: prev.version + 1,\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{isRunning ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"flex h-full flex-grow items-center justify-center border-r px-3.5\">\n\t\t\t\t\t\t\t\t<AnimatedBars role=\"status\" aria-label=\"Running Tests\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<StopTest name={name} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\n\t\t\t\t{!isRunning && exitCode !== undefined && (\n\t\t\t\t\t<p className=\"pr-3.5 leading-none\">\n\t\t\t\t\t\t{exitCode === 0\n\t\t\t\t\t\t\t? `Tests passed`\n\t\t\t\t\t\t\t: `Test failed (exit code ${String(exitCode)})`}\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t\t{!isRunning && exitCode !== undefined && (\n\t\t\t\t\t<ClearTest\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tdispatch((prev) => ({\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\texitCode: undefined,\n\t\t\t\t\t\t\t\tlines: [],\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className=\"flex h-full flex-col gap-5 p-5\">\n\t\t\t\t<p className=\"font-mono text-sm font-medium uppercase\">Test Output</p>\n\t\t\t\t<pre className=\"shadow-on-scrollbox flex-1 overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{lines.map((line) => (\n\t\t\t\t\t\t<code\n\t\t\t\t\t\t\tkey={line.timestamp}\n\t\t\t\t\t\t\tdata-type={line.type}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t__html: ansi.toHtml(stripCursorMovements(line.content)),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</pre>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nexport function TestRunner({\n\tname,\n\tonRun,\n}: {\n\tname: string\n\tonRun?: () => void\n}) {\n\tconst fetcher = useFetcher<typeof action>()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst latestOnRun = useRef(onRun)\n\tuseEffect(() => {\n\t\tlatestOnRun.current = onRun\n\t}, [onRun])\n\tuseEffect(() => {\n\t\tif (fetcher.data?.success) {\n\t\t\tlatestOnRun.current?.()\n\t\t}\n\t}, [fetcher.data])\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action=\"/test\" className=\"h-full\">\n\t\t\t{peRedirectInput}\n\t\t\t<input type=\"hidden\" name=\"name\" value={name} />\n\t\t\t<SimpleTooltip\n\t\t\t\tcontent={fetcher.state === 'idle' ? 'Run Tests' : 'Running Tests...'}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tname=\"intent\"\n\t\t\t\t\tvalue=\"run\"\n\t\t\t\t\tclassName=\"flex h-full flex-grow items-center justify-center border-r px-3.5\"\n\t\t\t\t>\n\t\t\t\t\t{fetcher.state === 'idle' ? (\n\t\t\t\t\t\t<Icon name=\"TriangleSmall\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<AnimatedBars role=\"status\" />\n\t\t\t\t\t)}\n\t\t\t\t</button>\n\t\t\t</SimpleTooltip>\n\t\t</fetcher.Form>\n\t)\n}\n\nexport function ClearTest({\n\tname,\n\tonClear,\n}: {\n\tname: string\n\tonClear?: () => void\n}) {\n\tconst fetcher = useFetcher<typeof action>()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst latestOnClear = useRef(onClear)\n\tuseEffect(() => {\n\t\tlatestOnClear.current = onClear\n\t}, [onClear])\n\tuseEffect(() => {\n\t\tif (fetcher.data?.success) {\n\t\t\tlatestOnClear.current?.()\n\t\t}\n\t}, [fetcher.data])\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action=\"/test\" className=\"h-full\">\n\t\t\t{peRedirectInput}\n\t\t\t<input type=\"hidden\" name=\"name\" value={name} />\n\t\t\t<SimpleTooltip\n\t\t\t\tcontent={fetcher.state === 'idle' ? 'Clear Tests' : 'Clearing Tests...'}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tname=\"intent\"\n\t\t\t\t\tvalue=\"clear\"\n\t\t\t\t\tclassName=\"flex h-full flex-grow items-center justify-center border-l px-3.5\"\n\t\t\t\t>\n\t\t\t\t\t{fetcher.state === 'idle' ? (\n\t\t\t\t\t\t<Icon name=\"Clear\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Icon name=\"Clear\" className=\"animate-pulse\" role=\"status\" />\n\t\t\t\t\t)}\n\t\t\t\t</button>\n\t\t\t</SimpleTooltip>\n\t\t</fetcher.Form>\n\t)\n}\n\nexport function StopTest({\n\tname,\n\tonStop,\n}: {\n\tname: string\n\tonStop?: () => void\n}) {\n\tconst fetcher = useFetcher<typeof action>()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst latestOnStop = useRef(onStop)\n\tuseEffect(() => {\n\t\tlatestOnStop.current = onStop\n\t}, [onStop])\n\tuseEffect(() => {\n\t\tif (fetcher.data?.success) {\n\t\t\tlatestOnStop.current?.()\n\t\t}\n\t}, [fetcher.data])\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action=\"/test\" className=\"h-full\">\n\t\t\t{peRedirectInput}\n\t\t\t<input type=\"hidden\" name=\"name\" value={name} />\n\t\t\t<SimpleTooltip\n\t\t\t\tcontent={fetcher.state === 'idle' ? 'Stop Tests' : 'Stopping Tests...'}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tname=\"intent\"\n\t\t\t\t\tvalue=\"stop\"\n\t\t\t\t\tclassName=\"flex h-full flex-grow items-center justify-center border-r px-3.5\"\n\t\t\t\t>\n\t\t\t\t\t{fetcher.state === 'idle' ? (\n\t\t\t\t\t\t<Icon name=\"Stop\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Icon name=\"Stop\" className=\"animate-pulse\" role=\"status\" />\n\t\t\t\t\t)}\n\t\t\t\t</button>\n\t\t\t</SimpleTooltip>\n\t\t</fetcher.Form>\n\t)\n}\n","import { type PlaygroundApp } from '@epic-web/workshop-utils/apps.server'\nimport { useState } from 'react'\nimport { DeferredEpicVideo } from '#app/components/epic-video.js'\nimport { Icon } from '#app/components/icons'\nimport { InBrowserTestRunner } from '#app/components/in-browser-test-runner'\nimport { useUserHasAccess } from '#app/components/user.js'\nimport { TestOutput } from '#app/routes/test'\nimport { PlaygroundWindow } from './playground-window'\n\nexport function Tests({\n\tappInfo: playgroundAppInfo,\n\tproblemAppName,\n\tallApps,\n\tisUpToDate,\n}: {\n\tappInfo: Pick<PlaygroundApp, 'appName' | 'name' | 'test'> | null\n\tproblemAppName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tisUpToDate: boolean\n}) {\n\treturn (\n\t\t<PlaygroundWindow\n\t\t\tplaygroundAppName={playgroundAppInfo?.appName}\n\t\t\tproblemAppName={problemAppName}\n\t\t\tallApps={allApps}\n\t\t\tisUpToDate={isUpToDate}\n\t\t>\n\t\t\t<TestUI playgroundAppInfo={playgroundAppInfo} />\n\t\t</PlaygroundWindow>\n\t)\n}\n\nexport function TestUI({\n\tplaygroundAppInfo,\n}: {\n\tplaygroundAppInfo: Pick<PlaygroundApp, 'name' | 'test'> | null\n}) {\n\tconst [inBrowserTestKey, setInBrowserTestKey] = useState(0)\n\tconst userHasAccess = useUserHasAccess()\n\n\tif (!userHasAccess) {\n\t\treturn (\n\t\t\t<div className=\"w-full p-12\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-4 text-center\">\n\t\t\t\t\t<p className=\"text-2xl font-bold\">Access Denied</p>\n\t\t\t\t\t<p className=\"text-lg\">\n\t\t\t\t\t\tYou must login or register for the workshop to view and run the\n\t\t\t\t\t\ttests.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"h-16\" />\n\t\t\t\t<p className=\"pb-4\">\n\t\t\t\t\tCheck out this video to see how the test tab works.\n\t\t\t\t</p>\n\t\t\t\t<DeferredEpicVideo url=\"https://www.epicweb.dev/tips/epic-workshop-test-tab-demo\" />\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (!playgroundAppInfo) {\n\t\treturn (\n\t\t\t<div className=\"flex h-full items-center justify-center text-lg\">\n\t\t\t\t<p>No tests here 😢 Sorry.</p>\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (playgroundAppInfo.test.type === 'script') {\n\t\treturn <TestOutput name={playgroundAppInfo.name} />\n\t}\n\n\tif (playgroundAppInfo.test.type === 'browser') {\n\t\tconst { pathname } = playgroundAppInfo.test\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName=\"flex h-full w-full flex-grow flex-col overflow-y-auto\"\n\t\t\t\tkey={inBrowserTestKey}\n\t\t\t>\n\t\t\t\t{playgroundAppInfo.test.testFiles.map((testFile) => (\n\t\t\t\t\t<div key={testFile}>\n\t\t\t\t\t\t<InBrowserTestRunner pathname={pathname} testFile={testFile} />\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t\t<div className=\"px-3 py-[21px]\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => setInBrowserTestKey((c) => c + 1)}\n\t\t\t\t\t\tclassName=\"flex items-center gap-2 font-mono text-sm uppercase leading-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon name=\"Refresh\" aria-hidden /> Rerun All Tests\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className=\"flex h-full items-center justify-center text-lg\">\n\t\t\t<p>No tests here 😢 Sorry.</p>\n\t\t</div>\n\t)\n}\n"],"names":["PlaygroundWindow","playgroundAppName","problemAppName","isUpToDate","allApps","children","isCorrectApp","playgroundLinkedUI","jsx","Icon","setPlaygroundTooltipText","jsxs","SetPlayground","SimpleTooltip","PlaygroundChooser","__importDefault","this","mod","decode_codepoint","decode_json_1","require$$0","fromCodePoint","codePoint","output","decodeCodePoint","decode","entities_json_1","legacy_json_1","require$$1","xml_json_1","require$$2","decode_codepoint_1","strictEntityRe","getStrictDecoder","map","replace","getReplacer","str","sorter","a","b","legacy","keys","i","j","re","replacer","secondChar","encode","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverseHTML","htmlReplacer","getInverse","obj","inverse","name","single","multiple","_i","_a","k","start","end","count","reNonASCII","getCodePoint","c","singleCharReplacer","data","reEscapeChars","escape","escapeUTF8","exports","decode_1","encode_1","level","decodeStrict","encode_2","decode_2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_createForOfIteratorHelper","o","allowArrayLike","it","_unsupportedIterableToArray","F","_e","normalCompletion","didErr","err","step","_e2","minLen","_arrayLikeToArray","n","arr","len","arr2","entities","defaults","getDefaultColors","colors","range","red","green","blue","setStyleColor","gray","l","toHexString","r","g","toColorHexString","num","ref","results","_iterator","_step","generateOutput","stack","token","options","result","pushText","handleDisplay","pushForegroundColor","pushBackgroundColor","handleRgb","operation","color","rgb","value","pushStyle","code","codeMap","resetStyles","pushTag","closeTag","stackClone","tag","low","high","notCategory","category","e","categoryForCode","text","style","last","tokenize","callback","ansiMatch","ansiHandler","remove","removeXterm256Foreground","m","g1","removeXterm256Background","newline","ansiMess","_iterator2","_step2","realText","tokens","process","handler","results1","_text","length","outer","updateStickyStack","stickyStack","Filter","input","_this","buf","element","ansi_to_html","useAnsiToHtml","theme","useTheme","useMemo","AnsiToHTML","stripCursorMovements","testRunnerStatusDataSchema","z.intersection","z.object","z.literal","z.number","z.union","z.string","testRunnerTestStepDataSchema","testRunnerDataSchema","InBrowserTestRunner","pathname","testFile","ansi","iframeRef","useRef","message","setMessage","useState","testSteps","setTestSteps","useEffect","handleMessage","messageEvent","steps","statusEmoji","AnimatedBars","sortedTestSteps","testStepStatusEmojis","Fragment","Accordion.Root","AccordionComponent","testStep","index","testEventSchema","z","type","exitCode","nullable","optional","isRunning","content","timestamp","testEventQueueSchema","simpleReducer","prev","getNext","TestOutput","state","dispatch","useReducer","version","lines","lastMessage","useEventSource","URLSearchParams","parsed","JSON","parse","safeParse","success","console","error","flatten","event","sort","className","TestRunner","onRun","role","StopTest","String","ClearTest","onClear","line","dangerouslySetInnerHTML","__html","toHtml","fetcher","useFetcher","peRedirectInput","usePERedirectInput","latestOnRun","current","Form","method","action","latestOnClear","onStop","latestOnStop","Tests","playgroundAppInfo","TestUI","inBrowserTestKey","setInBrowserTestKey","useUserHasAccess","DeferredEpicVideo"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import{_ as s,c as xt,l as E,d as j,ac as kt,ad as vt,ae as _t,af as bt,D as wt,ag as St,z as Et}from"./mermaid.core-CqaUvNIK.js";import{d as nt}from"./arc-B6tHINqs.js";import"./mdx-BEhxx-X4.js";import"./jsx-runtime-EKYJJIwR.js";import"./misc-COGqV2fm.js";import"./chunk-QMGIS6GS-CG5cA6CX.js";import"./index-Bp_2FjuO.js";import"./epic-video-CCv7QINN.js";import"./index-rknZKmMI.js";import"./tooltip-Cm7A1uIP.js";import"./pe-DoDyGTeN.js";import"./online-CwZkKwTv.js";import"./loading-CZYaLyAk.js";import"./user-BQ8D2Fty.js";import"./workshop-config-5VcXxeyp.js";import"./progress-bar-Cww9t8Vn.js";var Q=function(){var n=s(function(x,i,a,c){for(a=a||{},c=x.length;c--;a[x[c]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],d=[1,12],h=[1,13],f=[1,16],m=[1,17],p={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,c,u,y,o,w){var v=o.length-1;switch(y){case 1:return o[v-1];case 2:this.$=[];break;case 3:o[v-1].push(o[v]),this.$=o[v-1];break;case 4:case 5:this.$=o[v];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[v].substr(6)),this.$=o[v].substr(6);break;case 9:this.$=o[v].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[v].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[v].substr(8)),this.$=o[v].substr(8);break;case 15:u.addTask(o[v],0,""),this.$=o[v];break;case 16:u.addEvent(o[v].substr(2)),this.$=o[v];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:d,17:h,18:14,19:15,20:f,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=a,c}},"parseError"),parse:s(function(i){var a=this,c=[0],u=[],y=[null],o=[],w=this.table,v="",N=0,P=0,V=2,U=1,H=o.slice.call(arguments,1),g=Object.create(this.lexer),b={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(b.yy[L]=this.yy[L]);g.setInput(i,b.yy),b.yy.lexer=g,b.yy.parser=this,typeof g.yylloc>"u"&&(g.yylloc={});var M=g.yylloc;o.push(M);var W=g.options&&g.options.ranges;typeof b.yy.parseError=="function"?this.parseError=b.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(T){c.length=c.length-2*T,y.length=y.length-T,o.length=o.length-T}s(Z,"popStack");function tt(){var T;return T=u.pop()||g.lex()||U,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=a.symbols_[T]||T),T}s(tt,"lex");for(var S,A,I,J,R={},B,$,et,O;;){if(A=c[c.length-1],this.defaultActions[A]?I=this.defaultActions[A]:((S===null||typeof S>"u")&&(S=tt()),I=w[A]&&w[A][S]),typeof I>"u"||!I.length||!I[0]){var K="";O=[];for(B in w[A])this.terminals_[B]&&B>V&&O.push("'"+this.terminals_[B]+"'");g.showPosition?K="Parse error on line "+(N+1)+`:
|
|
2
|
+
`+g.showPosition()+`
|
|
3
|
+
Expecting `+O.join(", ")+", got '"+(this.terminals_[S]||S)+"'":K="Parse error on line "+(N+1)+": Unexpected "+(S==U?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(K,{text:g.match,token:this.terminals_[S]||S,line:g.yylineno,loc:M,expected:O})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+S);switch(I[0]){case 1:c.push(S),y.push(g.yytext),o.push(g.yylloc),c.push(I[1]),S=null,P=g.yyleng,v=g.yytext,N=g.yylineno,M=g.yylloc;break;case 2:if($=this.productions_[I[1]][1],R.$=y[y.length-$],R._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},W&&(R._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),J=this.performAction.apply(R,[v,P,N,b.yy,I[1],y,o].concat(H)),typeof J<"u")return J;$&&(c=c.slice(0,-1*$*2),y=y.slice(0,-1*$),o=o.slice(0,-1*$)),c.push(this.productions_[I[1]][0]),y.push(R.$),o.push(R._$),et=w[c[c.length-2]][c[c.length-1]],c.push(et);break;case 3:return!0}}return!0},"parse")},k=function(){var x={EOF:1,parseError:s(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:s(function(i,a){return this.yy=a||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:s(function(i){var a=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===u.length?this.yylloc.first_column:0)+u[u.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(i){this.unput(this.match.slice(i))},"less"),pastInput:s(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|
|
5
|
+
`+a+"^"},"showPosition"),test_match:s(function(i,a){var c,u,y;if(this.options.backtrack_lexer&&(y={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(y.yylloc.range=this.yylloc.range.slice(0))),u=i[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var o in y)this[o]=y[o];return!1}return!1},"test_match"),next:s(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,a,c,u;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),o=0;o<y.length;o++)if(c=this._input.match(this.rules[y[o]]),c&&(!a||c[0].length>a[0].length)){if(a=c,u=o,this.options.backtrack_lexer){if(i=this.test_match(c,y[o]),i!==!1)return i;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(i=this.test_match(a,y[u]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:s(function(){var a=this.next();return a||this.lex()},"lex"),begin:s(function(a){this.conditionStack.push(a)},"begin"),popState:s(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:s(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:s(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:s(function(a){this.begin(a)},"pushState"),stateStackSize:s(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:s(function(a,c,u,y){switch(u){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return x}();p.lexer=k;function _(){this.yy={}}return s(_,"Parser"),_.prototype=p,p.Parser=_,new _}();Q.parser=Q;var Tt=Q,at={};wt(at,{addEvent:()=>yt,addSection:()=>ht,addTask:()=>pt,addTaskOrg:()=>gt,clear:()=>ct,default:()=>It,getCommonDb:()=>ot,getSections:()=>dt,getTasks:()=>ut});var z="",lt=0,X=[],G=[],F=[],ot=s(()=>St,"getCommonDb"),ct=s(function(){X.length=0,G.length=0,z="",F.length=0,Et()},"clear"),ht=s(function(n){z=n,X.push(n)},"addSection"),dt=s(function(){return X},"getSections"),ut=s(function(){let n=rt();const t=100;let e=0;for(;!n&&e<t;)n=rt(),e++;return G.push(...F),G},"getTasks"),pt=s(function(n,t,e){const l={id:lt++,section:z,type:z,task:n,score:t||0,events:e?[e]:[]};F.push(l)},"addTask"),yt=s(function(n){F.find(e=>e.id===lt-1).events.push(n)},"addEvent"),gt=s(function(n){const t={section:z,type:z,description:n,task:n,classes:[]};G.push(t)},"addTaskOrg"),rt=s(function(){const n=s(function(e){return F[e].processed},"compileTask");let t=!0;for(const[e,l]of F.entries())n(e),t=t&&l.processed;return t},"compileTasks"),It={clear:ct,getCommonDb:ot,addSection:ht,getSections:dt,getTasks:ut,addTask:pt,addTaskOrg:gt,addEvent:yt},Nt=12,q=s(function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},"drawRect"),Lt=s(function(n,t){const l=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=n.append("g");r.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function d(m){const p=nt().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);m.append("path").attr("class","mouth").attr("d",p).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}s(d,"smile");function h(m){const p=nt().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);m.append("path").attr("class","mouth").attr("d",p).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}s(h,"sad");function f(m){m.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s(f,"ambivalent"),t.score>3?d(r):t.score<3?h(r):f(r),l},"drawFace"),Mt=s(function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},"drawCircle"),ft=s(function(n,t){const e=t.text.replace(/<br\s*\/?>/gi," "),l=n.append("text");l.attr("x",t.x),l.attr("y",t.y),l.attr("class","legend"),l.style("text-anchor",t.anchor),t.class!==void 0&&l.attr("class",t.class);const r=l.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(e),l},"drawText"),$t=s(function(n,t){function e(r,d,h,f,m){return r+","+d+" "+(r+h)+","+d+" "+(r+h)+","+(d+f-m)+" "+(r+h-m*1.2)+","+(d+f)+" "+r+","+(d+f)}s(e,"genPoints");const l=n.append("polygon");l.attr("points",e(t.x,t.y,50,20,7)),l.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,ft(n,t)},"drawLabel"),Ht=s(function(n,t,e){const l=n.append("g"),r=Y();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=e.width,r.height=e.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,q(l,r),mt(e)(t.text,l,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},e,t.colour)},"drawSection"),it=-1,Pt=s(function(n,t,e){const l=t.x+e.width/2,r=n.append("g");it++;const d=300+5*30;r.append("line").attr("id","task"+it).attr("x1",l).attr("y1",t.y).attr("x2",l).attr("y2",d).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Lt(r,{cx:l,cy:300+(5-t.score)*30,score:t.score});const h=Y();h.x=t.x,h.y=t.y,h.fill=t.fill,h.width=e.width,h.height=e.height,h.class="task task-type-"+t.num,h.rx=3,h.ry=3,q(r,h),mt(e)(t.task,r,h.x,h.y,h.width,h.height,{class:"task"},e,t.colour)},"drawTask"),At=s(function(n,t){q(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),Ct=s(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),Y=s(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),mt=function(){function n(r,d,h,f,m,p,k,_){const x=d.append("text").attr("x",h+m/2).attr("y",f+p/2+5).style("font-color",_).style("text-anchor","middle").text(r);l(x,k)}s(n,"byText");function t(r,d,h,f,m,p,k,_,x){const{taskFontSize:i,taskFontFamily:a}=_,c=r.split(/<br\s*\/?>/gi);for(let u=0;u<c.length;u++){const y=u*i-i*(c.length-1)/2,o=d.append("text").attr("x",h+m/2).attr("y",f).attr("fill",x).style("text-anchor","middle").style("font-size",i).style("font-family",a);o.append("tspan").attr("x",h+m/2).attr("dy",y).text(c[u]),o.attr("y",f+p/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),l(o,k)}}s(t,"byTspan");function e(r,d,h,f,m,p,k,_){const x=d.append("switch"),a=x.append("foreignObject").attr("x",h).attr("y",f).attr("width",m).attr("height",p).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");a.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(r),t(r,x,h,f,m,p,k,_),l(a,k)}s(e,"byFo");function l(r,d){for(const h in d)h in d&&r.attr(h,d[h])}return s(l,"_setTextAttrs"),function(r){return r.textPlacement==="fo"?e:r.textPlacement==="old"?n:t}}(),Rt=s(function(n){n.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function D(n,t){n.each(function(){var e=j(this),l=e.text().split(/(\s+|<br>)/).reverse(),r,d=[],h=1.1,f=e.attr("y"),m=parseFloat(e.attr("dy")),p=e.text(null).append("tspan").attr("x",0).attr("y",f).attr("dy",m+"em");for(let k=0;k<l.length;k++)r=l[l.length-1-k],d.push(r),p.text(d.join(" ").trim()),(p.node().getComputedTextLength()>t||r==="<br>")&&(d.pop(),p.text(d.join(" ").trim()),r==="<br>"?d=[""]:d=[r],p=e.append("tspan").attr("x",0).attr("y",f).attr("dy",h+"em").text(r))})}s(D,"wrap");var zt=s(function(n,t,e,l){const r=e%Nt-1,d=n.append("g");t.section=r,d.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+r));const h=d.append("g"),f=d.append("g"),p=f.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(D,t.width).node().getBBox(),k=l.fontSize?.replace?l.fontSize.replace("px",""):l.fontSize;return t.height=p.height+k*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,f.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),Vt(h,t,r,l),t},"drawNode"),Ft=s(function(n,t,e){const l=n.append("g"),d=l.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(D,t.width).node().getBBox(),h=e.fontSize?.replace?e.fontSize.replace("px",""):e.fontSize;return l.remove(),d.height+h*1.1*.5+t.padding},"getVirtualNodeHeight"),Vt=s(function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+2*5} q0,-5 5,-5 h${t.width-2*5} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),C={drawRect:q,drawCircle:Mt,drawSection:Ht,drawText:ft,drawLabel:$t,drawTask:Pt,drawBackgroundRect:At,getTextObj:Ct,getNoteRect:Y,initGraphics:Rt,drawNode:zt,getVirtualNodeHeight:Ft},Wt=s(function(n,t,e,l){const r=xt(),d=r.leftMargin??50;E.debug("timeline",l.db);const h=r.securityLevel;let f;h==="sandbox"&&(f=j("#i"+t));const p=(h==="sandbox"?j(f.nodes()[0].contentDocument.body):j("body")).select("#"+t);p.append("g");const k=l.db.getTasks(),_=l.db.getCommonDb().getDiagramTitle();E.debug("task",k),C.initGraphics(p);const x=l.db.getSections();E.debug("sections",x);let i=0,a=0,c=0,u=0,y=50+d,o=50;u=50;let w=0,v=!0;x.forEach(function(H){const g={number:w,descr:H,section:w,width:150,padding:20,maxHeight:i},b=C.getVirtualNodeHeight(p,g,r);E.debug("sectionHeight before draw",b),i=Math.max(i,b+20)});let N=0,P=0;E.debug("tasks.length",k.length);for(const[H,g]of k.entries()){const b={number:H,descr:g,section:g.section,width:150,padding:20,maxHeight:a},L=C.getVirtualNodeHeight(p,b,r);E.debug("taskHeight before draw",L),a=Math.max(a,L+20),N=Math.max(N,g.events.length);let M=0;for(const W of g.events){const Z={descr:W,section:g.section,number:g.section,width:150,padding:20,maxHeight:50};M+=C.getVirtualNodeHeight(p,Z,r)}g.events.length>0&&(M+=(g.events.length-1)*10),P=Math.max(P,M)}E.debug("maxSectionHeight before draw",i),E.debug("maxTaskHeight before draw",a),x&&x.length>0?x.forEach(H=>{const g=k.filter(W=>W.section===H),b={number:w,descr:H,section:w,width:200*Math.max(g.length,1)-50,padding:20,maxHeight:i};E.debug("sectionNode",b);const L=p.append("g"),M=C.drawNode(L,b,w,r);E.debug("sectionNode output",M),L.attr("transform",`translate(${y}, ${u})`),o+=i+50,g.length>0&&st(p,g,w,y,o,a,r,N,P,i,!1),y+=200*Math.max(g.length,1),o=u,w++}):(v=!1,st(p,k,w,y,o,a,r,N,P,i,!0));const V=p.node().getBBox();E.debug("bounds",V),_&&p.append("text").text(_).attr("x",V.width/2-d).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),c=v?i+a+150:a+100,p.append("g").attr("class","lineWrapper").append("line").attr("x1",d).attr("y1",c).attr("x2",V.width+3*d).attr("y2",c).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),kt(void 0,p,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),st=s(function(n,t,e,l,r,d,h,f,m,p,k){for(const _ of t){const x={descr:_.task,section:e,number:e,width:150,padding:20,maxHeight:d};E.debug("taskNode",x);const i=n.append("g").attr("class","taskWrapper"),c=C.drawNode(i,x,e,h).height;if(E.debug("taskHeight after draw",c),i.attr("transform",`translate(${l}, ${r})`),d=Math.max(d,c),_.events){const u=n.append("g").attr("class","lineWrapper");let y=d;r+=100,y=y+Bt(n,_.events,e,l,r,h),r-=100,u.append("line").attr("x1",l+190/2).attr("y1",r+d).attr("x2",l+190/2).attr("y2",r+d+100+m+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}l=l+200,k&&!h.timeline?.disableMulticolor&&e++}r=r-10},"drawTasks"),Bt=s(function(n,t,e,l,r,d){let h=0;const f=r;r=r+100;for(const m of t){const p={descr:m,section:e,number:e,width:150,padding:20,maxHeight:50};E.debug("eventNode",p);const k=n.append("g").attr("class","eventWrapper"),x=C.drawNode(k,p,e,d).height;h=h+x,k.attr("transform",`translate(${l}, ${r})`),r=r+10+x}return r=f,h},"drawEvents"),Ot={setConf:s(()=>{},"setConf"),draw:Wt},jt=s(n=>{let t="";for(let e=0;e<n.THEME_COLOR_LIMIT;e++)n["lineColor"+e]=n["lineColor"+e]||n["cScaleInv"+e],vt(n["lineColor"+e])?n["lineColor"+e]=_t(n["lineColor"+e],20):n["lineColor"+e]=bt(n["lineColor"+e],20);for(let e=0;e<n.THEME_COLOR_LIMIT;e++){const l=""+(17-3*e);t+=`
|
|
7
|
+
.section-${e-1} rect, .section-${e-1} path, .section-${e-1} circle, .section-${e-1} path {
|
|
8
|
+
fill: ${n["cScale"+e]};
|
|
9
|
+
}
|
|
10
|
+
.section-${e-1} text {
|
|
11
|
+
fill: ${n["cScaleLabel"+e]};
|
|
12
|
+
}
|
|
13
|
+
.node-icon-${e-1} {
|
|
14
|
+
font-size: 40px;
|
|
15
|
+
color: ${n["cScaleLabel"+e]};
|
|
16
|
+
}
|
|
17
|
+
.section-edge-${e-1}{
|
|
18
|
+
stroke: ${n["cScale"+e]};
|
|
19
|
+
}
|
|
20
|
+
.edge-depth-${e-1}{
|
|
21
|
+
stroke-width: ${l};
|
|
22
|
+
}
|
|
23
|
+
.section-${e-1} line {
|
|
24
|
+
stroke: ${n["cScaleInv"+e]} ;
|
|
25
|
+
stroke-width: 3;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.lineWrapper line{
|
|
29
|
+
stroke: ${n["cScaleLabel"+e]} ;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.disabled, .disabled circle, .disabled text {
|
|
33
|
+
fill: lightgray;
|
|
34
|
+
}
|
|
35
|
+
.disabled text {
|
|
36
|
+
fill: #efefef;
|
|
37
|
+
}
|
|
38
|
+
`}return t},"genSections"),Gt=s(n=>`
|
|
39
|
+
.edge {
|
|
40
|
+
stroke-width: 3;
|
|
41
|
+
}
|
|
42
|
+
${jt(n)}
|
|
43
|
+
.section-root rect, .section-root path, .section-root circle {
|
|
44
|
+
fill: ${n.git0};
|
|
45
|
+
}
|
|
46
|
+
.section-root text {
|
|
47
|
+
fill: ${n.gitBranchLabel0};
|
|
48
|
+
}
|
|
49
|
+
.icon-container {
|
|
50
|
+
height:100%;
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
align-items: center;
|
|
54
|
+
}
|
|
55
|
+
.edge {
|
|
56
|
+
fill: none;
|
|
57
|
+
}
|
|
58
|
+
.eventWrapper {
|
|
59
|
+
filter: brightness(120%);
|
|
60
|
+
}
|
|
61
|
+
`,"getStyles"),qt=Gt,oe={db:at,renderer:Ot,parser:Tt,styles:qt};export{oe as diagram};
|
|
62
|
+
//# sourceMappingURL=timeline-definition-RI47OAVP-D44Hv-fs.js.map
|