@epic-web/workshop-app 5.28.0 → 5.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/_-DTLUa7j2.js +2 -0
- package/build/client/assets/_-DTLUa7j2.js.map +1 -0
- package/build/client/assets/{_basePickBy-lB0X5x6U.js → _basePickBy-Bkju64MX.js} +2 -2
- package/build/client/assets/{_basePickBy-lB0X5x6U.js.map → _basePickBy-Bkju64MX.js.map} +1 -1
- package/build/client/assets/{_baseUniq-BOjGYEEK.js → _baseUniq-Cp1g4BpN.js} +2 -2
- package/build/client/assets/{_baseUniq-BOjGYEEK.js.map → _baseUniq-Cp1g4BpN.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-Co7M7Ztw.js +2 -0
- package/build/client/assets/_exerciseNumber-Co7M7Ztw.js.map +1 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-Don1A9mU.js +2 -0
- package/build/client/assets/_exerciseNumber_._stepNumber-Don1A9mU.js.map +1 -0
- package/build/client/assets/_exerciseNumber_.finished-BqsavTTe.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-BqsavTTe.js.map +1 -0
- package/build/client/assets/_layout-BFto7KzZ.js +2 -0
- package/build/client/assets/_layout-BFto7KzZ.js.map +1 -0
- package/build/client/assets/_layout-BvOre76Q.js +2 -0
- package/build/client/assets/_layout-BvOre76Q.js.map +1 -0
- package/build/client/assets/_layout-CSP6lWdg.js +2 -0
- package/build/client/assets/_layout-CSP6lWdg.js.map +1 -0
- package/build/client/assets/_layout-DDOZBbUH.js +6 -0
- package/build/client/assets/_layout-DDOZBbUH.js.map +1 -0
- package/build/client/assets/accordion-BNzI0wOK.js +2 -0
- package/build/client/assets/{accordion-CpiLc1m2.js.map → accordion-BNzI0wOK.js.map} +1 -1
- package/build/client/assets/account-2uOW4wHE.js +2 -0
- package/build/client/assets/account-2uOW4wHE.js.map +1 -0
- package/build/client/assets/app-DfAmumll.js +2 -0
- package/build/client/assets/app-DfAmumll.js.map +1 -0
- package/build/client/assets/{arc-DmQZ2TPB.js → arc-BgUWL_JM.js} +2 -2
- package/build/client/assets/{arc-DmQZ2TPB.js.map → arc-BgUWL_JM.js.map} +1 -1
- package/build/client/assets/architectureDiagram-IEHRJDOE-VEDL5YJR.js +37 -0
- package/build/client/assets/{architectureDiagram-IEHRJDOE-BqPvrjLh.js.map → architectureDiagram-IEHRJDOE-VEDL5YJR.js.map} +1 -1
- package/build/client/assets/{blockDiagram-JOT3LUYC-D8OFd78i.js → blockDiagram-JOT3LUYC-CJojWhFE.js} +3 -3
- package/build/client/assets/{blockDiagram-JOT3LUYC-D8OFd78i.js.map → blockDiagram-JOT3LUYC-CJojWhFE.js.map} +1 -1
- package/build/client/assets/button-DRpue1NG.js +2 -0
- package/build/client/assets/button-DRpue1NG.js.map +1 -0
- package/build/client/assets/{c4Diagram-VJAJSXHY-DjROjsr_.js → c4Diagram-VJAJSXHY-CDiBL4DZ.js} +3 -3
- package/build/client/assets/{c4Diagram-VJAJSXHY-DjROjsr_.js.map → c4Diagram-VJAJSXHY-CDiBL4DZ.js.map} +1 -1
- package/build/client/assets/channel-CAodiiwJ.js +2 -0
- package/build/client/assets/{channel-DnqeaSfB.js.map → channel-CAodiiwJ.js.map} +1 -1
- package/build/client/assets/{chunk-4BMEZGHF-CNL-bCj2.js → chunk-4BMEZGHF-Dn8dm6h4.js} +2 -2
- package/build/client/assets/{chunk-4BMEZGHF-CNL-bCj2.js.map → chunk-4BMEZGHF-Dn8dm6h4.js.map} +1 -1
- package/build/client/assets/{chunk-A2AXSNBT-PeSyIKDm.js → chunk-A2AXSNBT-4MnudWit.js} +2 -2
- package/build/client/assets/{chunk-A2AXSNBT-PeSyIKDm.js.map → chunk-A2AXSNBT-4MnudWit.js.map} +1 -1
- package/build/client/assets/{chunk-AEK57VVT-B1JqGB_s.js → chunk-AEK57VVT-CqDnkZ4u.js} +2 -2
- package/build/client/assets/{chunk-AEK57VVT-B1JqGB_s.js.map → chunk-AEK57VVT-CqDnkZ4u.js.map} +1 -1
- package/build/client/assets/{chunk-D6G4REZN-C1e0nCkL.js → chunk-D6G4REZN-Brt3as5d.js} +2 -2
- package/build/client/assets/{chunk-D6G4REZN-C1e0nCkL.js.map → chunk-D6G4REZN-Brt3as5d.js.map} +1 -1
- package/build/client/assets/chunk-QMGIS6GS-CTjj1G71.js +44 -0
- package/build/client/assets/chunk-QMGIS6GS-CTjj1G71.js.map +1 -0
- package/build/client/assets/{chunk-RZ5BOZE2-D5pIwNeA.js → chunk-RZ5BOZE2-DRDeFo9p.js} +2 -2
- package/build/client/assets/{chunk-RZ5BOZE2-D5pIwNeA.js.map → chunk-RZ5BOZE2-DRDeFo9p.js.map} +1 -1
- package/build/client/assets/{chunk-XZIHB7SX-FbrNggxP.js → chunk-XZIHB7SX-jEJwVQJf.js} +2 -2
- package/build/client/assets/{chunk-XZIHB7SX-FbrNggxP.js.map → chunk-XZIHB7SX-jEJwVQJf.js.map} +1 -1
- package/build/client/assets/classDiagram-GIVACNV2-H_7kh---.js +2 -0
- package/build/client/assets/{classDiagram-GIVACNV2-cXWx-aYi.js.map → classDiagram-GIVACNV2-H_7kh---.js.map} +1 -1
- package/build/client/assets/classDiagram-v2-COTLJTTW-H_7kh---.js +2 -0
- package/build/client/assets/{classDiagram-v2-COTLJTTW-cXWx-aYi.js.map → classDiagram-v2-COTLJTTW-H_7kh---.js.map} +1 -1
- package/build/client/assets/clone-DRQ0Dnbp.js +2 -0
- package/build/client/assets/{clone-Bj8ANPCv.js.map → clone-DRQ0Dnbp.js.map} +1 -1
- package/build/client/assets/dagre-OKDRZEBW-BPnUPPO5.js +5 -0
- package/build/client/assets/{dagre-OKDRZEBW-DT9ZQRxf.js.map → dagre-OKDRZEBW-BPnUPPO5.js.map} +1 -1
- package/build/client/assets/diagram-SSKATNLV-Bh_ZXdjr.js +44 -0
- package/build/client/assets/{diagram-SSKATNLV-CcKCni9R.js.map → diagram-SSKATNLV-Bh_ZXdjr.js.map} +1 -1
- package/build/client/assets/diagram-VNBRO52H-D5zqYvJa.js +25 -0
- package/build/client/assets/{diagram-VNBRO52H-DWoRAiqO.js.map → diagram-VNBRO52H-D5zqYvJa.js.map} +1 -1
- package/build/client/assets/diff-CQ7A0nZj.js +2 -0
- package/build/client/assets/diff-CQ7A0nZj.js.map +1 -0
- package/build/client/assets/{diff-D5_VwPLF.js → diff-CtGU9cxI.js} +2 -2
- package/build/client/assets/diff-CtGU9cxI.js.map +1 -0
- package/build/client/assets/discord-91JJKnJ5.js +2 -0
- package/build/client/assets/discord-91JJKnJ5.js.map +1 -0
- package/build/client/assets/discord-D4appJa-.js +2 -0
- package/build/client/assets/discord-D4appJa-.js.map +1 -0
- package/build/client/assets/entry.client-uKxtCCau.js +35 -0
- package/build/client/assets/entry.client-uKxtCCau.js.map +1 -0
- package/build/client/assets/{epic-video-CmlkW6Rw.js → epic-video-D_3otytp.js} +3 -3
- package/build/client/assets/{epic-video-CmlkW6Rw.js.map → epic-video-D_3otytp.js.map} +1 -1
- package/build/client/assets/{erDiagram-Q7BY3M3F-DXkEmvKk.js → erDiagram-Q7BY3M3F-BxueSNDf.js} +3 -3
- package/build/client/assets/{erDiagram-Q7BY3M3F-DXkEmvKk.js.map → erDiagram-Q7BY3M3F-BxueSNDf.js.map} +1 -1
- package/build/client/assets/error-boundary-BLyHIxcu.js +2 -0
- package/build/client/assets/error-boundary-BLyHIxcu.js.map +1 -0
- package/build/client/assets/finished-BiOz59BB.js +2 -0
- package/build/client/assets/finished-BiOz59BB.js.map +1 -0
- package/build/client/assets/{flowDiagram-4HSFHLVR-DCodZaNW.js → flowDiagram-4HSFHLVR-CfL3E-FD.js} +3 -3
- package/build/client/assets/{flowDiagram-4HSFHLVR-DCodZaNW.js.map → flowDiagram-4HSFHLVR-CfL3E-FD.js.map} +1 -1
- package/build/client/assets/ganttDiagram-APWFNJXF-DxEqrjXE.js +258 -0
- package/build/client/assets/{ganttDiagram-APWFNJXF-TfB6wYvN.js.map → ganttDiagram-APWFNJXF-DxEqrjXE.js.map} +1 -1
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-csni0XOM.js +66 -0
- package/build/client/assets/{gitGraphDiagram-7IBYFJ6S-D2NQnQv2.js.map → gitGraphDiagram-7IBYFJ6S-csni0XOM.js.map} +1 -1
- package/build/client/assets/{graph-eJUngNSH.js → graph-DiSezMy_.js} +2 -2
- package/build/client/assets/{graph-eJUngNSH.js.map → graph-DiSezMy_.js.map} +1 -1
- package/build/client/assets/index-AKpqKc27.js +2 -0
- package/build/client/assets/index-AKpqKc27.js.map +1 -0
- package/build/client/assets/index-BGtlU-cD.js +2 -0
- package/build/client/assets/index-BGtlU-cD.js.map +1 -0
- package/build/client/assets/index-BP1ceC2h.js +10 -0
- package/build/client/assets/index-BP1ceC2h.js.map +1 -0
- package/build/client/assets/index-BSJLLJJ3.js +2 -0
- package/build/client/assets/index-BSJLLJJ3.js.map +1 -0
- package/build/client/assets/index-C0Fh_zu0.js +36 -0
- package/build/client/assets/{index-DLC5u33j.js.map → index-C0Fh_zu0.js.map} +1 -1
- package/build/client/assets/index-Co8qgD4k.js +2 -0
- package/build/client/assets/{index-BmMpCvYx.js.map → index-Co8qgD4k.js.map} +1 -1
- package/build/client/assets/index-D0dQzJhy.js +2 -0
- package/build/client/assets/index-D0dQzJhy.js.map +1 -0
- package/build/client/assets/index-DJsDENYs.js +42 -0
- package/build/client/assets/{index-Do-KWT0a.js.map → index-DJsDENYs.js.map} +1 -1
- package/build/client/assets/index-DWV7tDz3.js +3 -0
- package/build/client/assets/{index-DvQyydjU.js.map → index-DWV7tDz3.js.map} +1 -1
- package/build/client/assets/infoDiagram-PH2N3AL5-Dr2v4fFk.js +3 -0
- package/build/client/assets/{infoDiagram-PH2N3AL5-D-nEozcT.js.map → infoDiagram-PH2N3AL5-Dr2v4fFk.js.map} +1 -1
- package/build/client/assets/{journeyDiagram-U35MCT3I-Dc8g8jIX.js → journeyDiagram-U35MCT3I-iX4x5HVK.js} +3 -3
- package/build/client/assets/{journeyDiagram-U35MCT3I-Dc8g8jIX.js.map → journeyDiagram-U35MCT3I-iX4x5HVK.js.map} +1 -1
- package/build/client/assets/jsx-runtime-BjG_zV1W.js +10 -0
- package/build/client/assets/jsx-runtime-BjG_zV1W.js.map +1 -0
- package/build/client/assets/{kanban-definition-NDS4AKOZ-BwwcaZU2.js → kanban-definition-NDS4AKOZ-BwP5uDj3.js} +3 -3
- package/build/client/assets/{kanban-definition-NDS4AKOZ-BwwcaZU2.js.map → kanban-definition-NDS4AKOZ-BwP5uDj3.js.map} +1 -1
- package/build/client/assets/l-CVlzRdDg.js +2 -0
- package/build/client/assets/l-CVlzRdDg.js.map +1 -0
- package/build/client/assets/{layout-BAeq0-Is.js → layout-X8Y3Cf_B.js} +2 -2
- package/build/client/assets/{layout-BAeq0-Is.js.map → layout-X8Y3Cf_B.js.map} +1 -1
- package/build/client/assets/{linear-LWRPSVMz.js → linear-1DrdUlCY.js} +2 -2
- package/build/client/assets/{linear-LWRPSVMz.js.map → linear-1DrdUlCY.js.map} +1 -1
- package/build/client/assets/loading-CXEQXwx8.js +2 -0
- package/build/client/assets/{loading-b1FV2pQh.js.map → loading-CXEQXwx8.js.map} +1 -1
- package/build/client/assets/login-CaIyI5Cd.js +2 -0
- package/build/client/assets/login-CaIyI5Cd.js.map +1 -0
- package/build/client/assets/manifest-953eedfa.js +1 -0
- package/build/client/assets/mdx-DD5XL3ew.js +3 -0
- package/build/client/assets/mdx-DD5XL3ew.js.map +1 -0
- package/build/client/assets/{mermaid.core-q9C-HfFu.js → mermaid.core-D4QVSd3D.js} +5 -5
- package/build/client/assets/{mermaid.core-q9C-HfFu.js.map → mermaid.core-D4QVSd3D.js.map} +1 -1
- package/build/client/assets/mindmap-definition-ALO5MXBD-tl5KlWaB.js +96 -0
- package/build/client/assets/{mindmap-definition-ALO5MXBD-BhzLy0Zl.js.map → mindmap-definition-ALO5MXBD-tl5KlWaB.js.map} +1 -1
- package/build/client/assets/misc-yfWFSwMN.js +2 -0
- package/build/client/assets/{misc-2sBiisF5.js.map → misc-yfWFSwMN.js.map} +1 -1
- package/build/client/assets/nav-chevrons-CokHxUSB.js +2 -0
- package/build/client/assets/nav-chevrons-CokHxUSB.js.map +1 -0
- package/build/client/assets/onboarding-DyrGJaVn.js +2 -0
- package/build/client/assets/onboarding-DyrGJaVn.js.map +1 -0
- package/build/client/assets/online-CFV79-RX.js +2 -0
- package/build/client/assets/{online-DZKJk3C2.js.map → online-CFV79-RX.js.map} +1 -1
- package/build/client/assets/pe-C53l4u-6.js +2 -0
- package/build/client/assets/{pe-BShc2dvc.js.map → pe-C53l4u-6.js.map} +1 -1
- package/build/client/assets/pieDiagram-IB7DONF6-y5DqPNpS.js +31 -0
- package/build/client/assets/{pieDiagram-IB7DONF6-CaTGj8RH.js.map → pieDiagram-IB7DONF6-y5DqPNpS.js.map} +1 -1
- package/build/client/assets/preferences-C2zlOkAS.js +2 -0
- package/build/client/assets/preferences-C2zlOkAS.js.map +1 -0
- package/build/client/assets/{presence-C9bUSihT.js → presence-BoFXYAd7.js} +3 -3
- package/build/client/assets/{presence-C9bUSihT.js.map → presence-BoFXYAd7.js.map} +1 -1
- package/build/client/assets/preview-CE_VqYU4.js +2 -0
- package/build/client/assets/preview-CE_VqYU4.js.map +1 -0
- package/build/client/assets/product-TKJyOyif.js +2 -0
- package/build/client/assets/{product-DJOWNuL-.js.map → product-TKJyOyif.js.map} +1 -1
- package/build/client/assets/progress-CtGAFS2P.js +2 -0
- package/build/client/assets/{progress-BJ4ADF-s.js.map → progress-CtGAFS2P.js.map} +1 -1
- package/build/client/assets/progress-bar-DTYORRrG.js +2 -0
- package/build/client/assets/progress-bar-DTYORRrG.js.map +1 -0
- package/build/client/assets/{quadrantDiagram-7GDLP6J5-B4Od6z6p.js → quadrantDiagram-7GDLP6J5-ymq7Ot51.js} +3 -3
- package/build/client/assets/{quadrantDiagram-7GDLP6J5-B4Od6z6p.js.map → quadrantDiagram-7GDLP6J5-ymq7Ot51.js.map} +1 -1
- package/build/client/assets/{radar-MK3ICKWK-CENXhI0E.js → radar-MK3ICKWK-B8xuvUo7.js} +2 -2
- package/build/client/assets/{radar-MK3ICKWK-CENXhI0E.js.map → radar-MK3ICKWK-B8xuvUo7.js.map} +1 -1
- package/build/client/assets/{requirementDiagram-KVF5MWMF-_w0WuUxy.js → requirementDiagram-KVF5MWMF-B4D4Pi12.js} +3 -3
- package/build/client/assets/{requirementDiagram-KVF5MWMF-_w0WuUxy.js.map → requirementDiagram-KVF5MWMF-B4D4Pi12.js.map} +1 -1
- package/build/client/assets/revalidation-ws-89FLt73b.js +2 -0
- package/build/client/assets/revalidation-ws-89FLt73b.js.map +1 -0
- package/build/client/assets/root-Dd9--OJ3.js +2 -0
- package/build/client/assets/root-Dd9--OJ3.js.map +1 -0
- package/build/client/assets/sankeyDiagram-QLVOVGJD-BAY-vMZj.js +11 -0
- package/build/client/assets/{sankeyDiagram-QLVOVGJD-Bt8556P1.js.map → sankeyDiagram-QLVOVGJD-BAY-vMZj.js.map} +1 -1
- package/build/client/assets/{sequenceDiagram-X6HHIX6F-y2-oW3Ob.js → sequenceDiagram-X6HHIX6F-CDjFTgBk.js} +3 -3
- package/build/client/assets/{sequenceDiagram-X6HHIX6F-y2-oW3Ob.js.map → sequenceDiagram-X6HHIX6F-CDjFTgBk.js.map} +1 -1
- package/build/client/assets/set-playground-DtZ5ki7i.js +2 -0
- package/build/client/assets/set-playground-DtZ5ki7i.js.map +1 -0
- package/build/client/assets/stateDiagram-DGXRK772-DFekjeUZ.js +2 -0
- package/build/client/assets/{stateDiagram-DGXRK772-B3BuD15b.js.map → stateDiagram-DGXRK772-DFekjeUZ.js.map} +1 -1
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-CSkUdkOW.js +2 -0
- package/build/client/assets/{stateDiagram-v2-YXO3MK2T-BzFxWpqR.js.map → stateDiagram-v2-YXO3MK2T-CSkUdkOW.js.map} +1 -1
- package/build/client/assets/support-drzs9wuf.js +2 -0
- package/build/client/assets/support-drzs9wuf.js.map +1 -0
- package/build/client/assets/test-psaYrMGK.js +2 -0
- package/build/client/assets/test-psaYrMGK.js.map +1 -0
- package/build/client/assets/{tests-B1ak2CDI.js → tests-7juFXgcY.js} +3 -3
- package/build/client/assets/tests-7juFXgcY.js.map +1 -0
- package/build/client/assets/{timeline-definition-BDJGKUSR-DUa2yfAV.js → timeline-definition-BDJGKUSR-1WjIsnZH.js} +3 -3
- package/build/client/assets/{timeline-definition-BDJGKUSR-DUa2yfAV.js.map → timeline-definition-BDJGKUSR-1WjIsnZH.js.map} +1 -1
- package/build/client/assets/tooltip-C6xKzWST.js +2 -0
- package/build/client/assets/{tooltip-Bzd6O8vq.js.map → tooltip-C6xKzWST.js.map} +1 -1
- package/build/client/assets/use-event-source-B411g-uF.js +2 -0
- package/build/client/assets/{use-event-source-Dar8h_B8.js.map → use-event-source-B411g-uF.js.map} +1 -1
- package/build/client/assets/user-Dmcddqge.js +2 -0
- package/build/client/assets/user-Dmcddqge.js.map +1 -0
- package/build/client/assets/version-BAECczgY.js +2 -0
- package/build/client/assets/version-BAECczgY.js.map +1 -0
- package/build/client/assets/workshop-config-gFAnGhSV.js +2 -0
- package/build/client/assets/workshop-config-gFAnGhSV.js.map +1 -0
- package/build/client/assets/{xychartDiagram-VJFVF3MP-JztjcODi.js → xychartDiagram-VJFVF3MP-Cp8GqXc6.js} +3 -3
- package/build/client/assets/{xychartDiagram-VJFVF3MP-JztjcODi.js.map → xychartDiagram-VJFVF3MP-Cp8GqXc6.js.map} +1 -1
- package/build/server/index.js +4439 -4072
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/package.json +13 -13
- package/build/client/assets/_-BaHOmd8F.js +0 -2
- package/build/client/assets/_-BaHOmd8F.js.map +0 -1
- package/build/client/assets/_exerciseNumber-Dqi7TgL9.js +0 -2
- package/build/client/assets/_exerciseNumber-Dqi7TgL9.js.map +0 -1
- package/build/client/assets/_exerciseNumber_._stepNumber-DoOFEk-P.js +0 -2
- package/build/client/assets/_exerciseNumber_._stepNumber-DoOFEk-P.js.map +0 -1
- package/build/client/assets/_exerciseNumber_.finished-C5m6M0gM.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-C5m6M0gM.js.map +0 -1
- package/build/client/assets/_layout-B_BIIcpM.js +0 -2
- package/build/client/assets/_layout-B_BIIcpM.js.map +0 -1
- package/build/client/assets/_layout-B_NrRv0S.js +0 -6
- package/build/client/assets/_layout-B_NrRv0S.js.map +0 -1
- package/build/client/assets/_layout-D7_F6t3x.js +0 -2
- package/build/client/assets/_layout-D7_F6t3x.js.map +0 -1
- package/build/client/assets/_layout-QRe2q83m.js +0 -2
- package/build/client/assets/_layout-QRe2q83m.js.map +0 -1
- package/build/client/assets/accordion-CpiLc1m2.js +0 -2
- package/build/client/assets/account-CbFDiVNd.js +0 -2
- package/build/client/assets/account-CbFDiVNd.js.map +0 -1
- package/build/client/assets/app-BYSDu0vh.js +0 -2
- package/build/client/assets/app-BYSDu0vh.js.map +0 -1
- package/build/client/assets/architectureDiagram-IEHRJDOE-BqPvrjLh.js +0 -37
- package/build/client/assets/button-Dt4EcDfR.js +0 -2
- package/build/client/assets/button-Dt4EcDfR.js.map +0 -1
- package/build/client/assets/channel-DnqeaSfB.js +0 -2
- package/build/client/assets/classDiagram-GIVACNV2-cXWx-aYi.js +0 -2
- package/build/client/assets/classDiagram-v2-COTLJTTW-cXWx-aYi.js +0 -2
- package/build/client/assets/clone-Bj8ANPCv.js +0 -2
- package/build/client/assets/components-5arJTWsS.js +0 -158
- package/build/client/assets/components-5arJTWsS.js.map +0 -1
- package/build/client/assets/dagre-OKDRZEBW-DT9ZQRxf.js +0 -5
- package/build/client/assets/diagram-SSKATNLV-CcKCni9R.js +0 -44
- package/build/client/assets/diagram-VNBRO52H-DWoRAiqO.js +0 -25
- package/build/client/assets/diff-BKR4usVv.js +0 -2
- package/build/client/assets/diff-BKR4usVv.js.map +0 -1
- package/build/client/assets/diff-D5_VwPLF.js.map +0 -1
- package/build/client/assets/discord-BU7RzE6-.js +0 -2
- package/build/client/assets/discord-BU7RzE6-.js.map +0 -1
- package/build/client/assets/discord-ut4t-aMQ.js +0 -2
- package/build/client/assets/discord-ut4t-aMQ.js.map +0 -1
- package/build/client/assets/entry.client-BLUlgPHE.js +0 -44
- package/build/client/assets/entry.client-BLUlgPHE.js.map +0 -1
- package/build/client/assets/error-boundary-B07cWiEy.js +0 -2
- package/build/client/assets/error-boundary-B07cWiEy.js.map +0 -1
- package/build/client/assets/finished-MrsevkkK.js +0 -2
- package/build/client/assets/finished-MrsevkkK.js.map +0 -1
- package/build/client/assets/ganttDiagram-APWFNJXF-TfB6wYvN.js +0 -258
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-D2NQnQv2.js +0 -66
- package/build/client/assets/index-9euhNa27.js +0 -2
- package/build/client/assets/index-9euhNa27.js.map +0 -1
- package/build/client/assets/index-B8yUFowV.js +0 -2
- package/build/client/assets/index-B8yUFowV.js.map +0 -1
- package/build/client/assets/index-BmMpCvYx.js +0 -2
- package/build/client/assets/index-DLC5u33j.js +0 -36
- package/build/client/assets/index-DPHVg8Eh.js +0 -2
- package/build/client/assets/index-DPHVg8Eh.js.map +0 -1
- package/build/client/assets/index-Do-KWT0a.js +0 -42
- package/build/client/assets/index-Dsusf_Av.js +0 -38
- package/build/client/assets/index-Dsusf_Av.js.map +0 -1
- package/build/client/assets/index-DvQyydjU.js +0 -3
- package/build/client/assets/index-Fw2eA3AF.js +0 -2
- package/build/client/assets/index-Fw2eA3AF.js.map +0 -1
- package/build/client/assets/infoDiagram-PH2N3AL5-D-nEozcT.js +0 -3
- package/build/client/assets/l-ChG-6rmU.js +0 -2
- package/build/client/assets/l-ChG-6rmU.js.map +0 -1
- package/build/client/assets/loading-b1FV2pQh.js +0 -2
- package/build/client/assets/login-Ci7cdiuj.js +0 -2
- package/build/client/assets/login-Ci7cdiuj.js.map +0 -1
- package/build/client/assets/manifest-f9e2a790.js +0 -1
- package/build/client/assets/mdx-C7imFHZE.js +0 -3
- package/build/client/assets/mdx-C7imFHZE.js.map +0 -1
- package/build/client/assets/mindmap-definition-ALO5MXBD-BhzLy0Zl.js +0 -96
- package/build/client/assets/misc-2sBiisF5.js +0 -2
- package/build/client/assets/nav-chevrons-CV-dpXNR.js +0 -2
- package/build/client/assets/nav-chevrons-CV-dpXNR.js.map +0 -1
- package/build/client/assets/onboarding-c9ZuxLsm.js +0 -2
- package/build/client/assets/onboarding-c9ZuxLsm.js.map +0 -1
- package/build/client/assets/online-DZKJk3C2.js +0 -2
- package/build/client/assets/pe-BShc2dvc.js +0 -2
- package/build/client/assets/pieDiagram-IB7DONF6-CaTGj8RH.js +0 -31
- package/build/client/assets/preferences-BkWQyRCq.js +0 -2
- package/build/client/assets/preferences-BkWQyRCq.js.map +0 -1
- package/build/client/assets/preview-CqZGJtsE.js +0 -2
- package/build/client/assets/preview-CqZGJtsE.js.map +0 -1
- package/build/client/assets/product-DJOWNuL-.js +0 -2
- package/build/client/assets/progress-BJ4ADF-s.js +0 -2
- package/build/client/assets/progress-bar-DgnkQxQw.js +0 -2
- package/build/client/assets/progress-bar-DgnkQxQw.js.map +0 -1
- package/build/client/assets/revalidation-ws-B0skixgr.js +0 -2
- package/build/client/assets/revalidation-ws-B0skixgr.js.map +0 -1
- package/build/client/assets/root-C_WG23OF.js +0 -11
- package/build/client/assets/root-C_WG23OF.js.map +0 -1
- package/build/client/assets/sankeyDiagram-QLVOVGJD-Bt8556P1.js +0 -11
- package/build/client/assets/set-playground-DW2Ys-rV.js +0 -2
- package/build/client/assets/set-playground-DW2Ys-rV.js.map +0 -1
- package/build/client/assets/stateDiagram-DGXRK772-B3BuD15b.js +0 -2
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-BzFxWpqR.js +0 -2
- package/build/client/assets/support-Bg0iSyle.js +0 -2
- package/build/client/assets/support-Bg0iSyle.js.map +0 -1
- package/build/client/assets/test-DdUNKtkF.js +0 -2
- package/build/client/assets/test-DdUNKtkF.js.map +0 -1
- package/build/client/assets/tests-B1ak2CDI.js.map +0 -1
- package/build/client/assets/tooltip-Bzd6O8vq.js +0 -2
- package/build/client/assets/use-event-source-Dar8h_B8.js +0 -2
- package/build/client/assets/user-DNSnhqGn.js +0 -2
- package/build/client/assets/user-DNSnhqGn.js.map +0 -1
- package/build/client/assets/version-DriSvNMy.js +0 -2
- package/build/client/assets/version-DriSvNMy.js.map +0 -1
- package/build/client/assets/workshop-config-DchzGYJM.js +0 -2
- package/build/client/assets/workshop-config-DchzGYJM.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as n
|
|
1
|
+
import{j as n}from"./jsx-runtime-BjG_zV1W.js";import{o as k,n as Dt,r as g,d as P}from"./chunk-QMGIS6GS-CTjj1G71.js";import{D as At}from"./epic-video-D_3otytp.js";import{I as f,h as F}from"./misc-yfWFSwMN.js";import{R as kt,A as Nt}from"./accordion-BNzI0wOK.js";import{u as nt,d as N,o as L,i as Rt,n as A,s as $,l as m,b as ct,f as jt}from"./index-C0Fh_zu0.js";import{b as Ct}from"./user-Dmcddqge.js";import{u as Ut}from"./use-event-source-B411g-uF.js";import{S as V}from"./tooltip-C6xKzWST.js";import{u as I}from"./pe-C53l4u-6.js";import{a as J,P as Ht}from"./set-playground-DtZ5ki7i.js";function $t({playgroundAppName:t,problemAppName:s,isUpToDate:o,allApps:c,children:e}){const r=t===s,a=r&&o?n.jsx(f,{size:"xl",name:"Linked"}):n.jsx(f,{size:"xl",name:"Unlinked",className:"text-foreground-destructive animate-pulse"});let i="Click to reset Playground.";return o||(i="Playground is out of date. Click to reset Playground."),r||(i="Playground is not set to the right app. Click to set Playground."),n.jsxs("div",{className:"flex h-full w-full flex-col justify-between",children:[n.jsxs("div",{className:"flex h-14 flex-shrink-0 items-center justify-start gap-2 border-b px-3",children:[n.jsx("div",{className:"display-alt-up",children:s?n.jsx(J,{appName:s,tooltipText:i,children:a}):n.jsx(V,{content:"No problem app available for this step",children:n.jsx("div",{children:n.jsx(f,{name:"Question"})})})}),n.jsx("div",{className:"display-alt-down",children:t?n.jsx(J,{appName:t,reset:!0,tooltipText:"Reset Playground",children:n.jsx("div",{className:"flex h-7 w-7 items-center justify-center",children:n.jsx(f,{name:"Refresh"})})}):n.jsx("div",{className:"h-7 w-7"})}),n.jsx(Ht,{allApps:c,playgroundAppName:t})]}),n.jsx("div",{className:"flex h-full flex-1 flex-grow items-center justify-center",children:e})]})}var rt={},T={};const Vt="Á",Bt="á",Mt="Ă",Ot="ă",Pt="∾",Ft="∿",It="∾̳",Gt="Â",_t="â",zt="´",Xt="А",Jt="а",Yt="Æ",Zt="æ",Qt="",Kt="𝔄",Wt="𝔞",ts="À",ss="à",os="ℵ",ns="ℵ",cs="Α",rs="α",es="Ā",as="ā",is="⨿",ls="&",us="&",ps="⩕",ds="⩓",fs="∧",gs="⩜",ms="⩘",hs="⩚",bs="∠",vs="⦤",ws="∠",qs="⦨",ys="⦩",xs="⦪",Ls="⦫",Ts="⦬",Es="⦭",Ss="⦮",Ds="⦯",As="∡",ks="∟",Ns="⊾",Rs="⦝",js="∢",Cs="Å",Us="⍼",Hs="Ą",$s="ą",Vs="𝔸",Bs="𝕒",Ms="⩯",Os="≈",Ps="⩰",Fs="≊",Is="≋",Gs="'",_s="",zs="≈",Xs="≊",Js="Å",Ys="å",Zs="𝒜",Qs="𝒶",Ks="≔",Ws="*",to="≈",so="≍",oo="Ã",no="ã",co="Ä",ro="ä",eo="∳",ao="⨑",io="≌",lo="϶",uo="‵",po="∽",fo="⋍",go="∖",mo="⫧",ho="⊽",bo="⌅",vo="⌆",wo="⌅",qo="⎵",yo="⎶",xo="≌",Lo="Б",To="б",Eo="„",So="∵",Do="∵",Ao="∵",ko="⦰",No="϶",Ro="ℬ",jo="ℬ",Co="Β",Uo="β",Ho="ℶ",$o="≬",Vo="𝔅",Bo="𝔟",Mo="⋂",Oo="◯",Po="⋃",Fo="⨀",Io="⨁",Go="⨂",_o="⨆",zo="★",Xo="▽",Jo="△",Yo="⨄",Zo="⋁",Qo="⋀",Ko="⤍",Wo="⧫",tn="▪",sn="▴",on="▾",nn="◂",cn="▸",rn="␣",en="▒",an="░",ln="▓",un="█",pn="=⃥",dn="≡⃥",fn="⫭",gn="⌐",mn="𝔹",hn="𝕓",bn="⊥",vn="⊥",wn="⋈",qn="⧉",yn="┐",xn="╕",Ln="╖",Tn="╗",En="┌",Sn="╒",Dn="╓",An="╔",kn="─",Nn="═",Rn="┬",jn="╤",Cn="╥",Un="╦",Hn="┴",$n="╧",Vn="╨",Bn="╩",Mn="⊟",On="⊞",Pn="⊠",Fn="┘",In="╛",Gn="╜",_n="╝",zn="└",Xn="╘",Jn="╙",Yn="╚",Zn="│",Qn="║",Kn="┼",Wn="╪",tc="╫",sc="╬",oc="┤",nc="╡",cc="╢",rc="╣",ec="├",ac="╞",ic="╟",lc="╠",uc="‵",pc="˘",dc="˘",fc="¦",gc="𝒷",mc="ℬ",hc="⁏",bc="∽",vc="⋍",wc="⧅",qc="\\",yc="⟈",xc="•",Lc="•",Tc="≎",Ec="⪮",Sc="≏",Dc="≎",Ac="≏",kc="Ć",Nc="ć",Rc="⩄",jc="⩉",Cc="⩋",Uc="∩",Hc="⋒",$c="⩇",Vc="⩀",Bc="ⅅ",Mc="∩︀",Oc="⁁",Pc="ˇ",Fc="ℭ",Ic="⩍",Gc="Č",_c="č",zc="Ç",Xc="ç",Jc="Ĉ",Yc="ĉ",Zc="∰",Qc="⩌",Kc="⩐",Wc="Ċ",tr="ċ",sr="¸",or="¸",nr="⦲",cr="¢",rr="·",er="·",ar="𝔠",ir="ℭ",lr="Ч",ur="ч",pr="✓",dr="✓",fr="Χ",gr="χ",mr="ˆ",hr="≗",br="↺",vr="↻",wr="⊛",qr="⊚",yr="⊝",xr="⊙",Lr="®",Tr="Ⓢ",Er="⊖",Sr="⊕",Dr="⊗",Ar="○",kr="⧃",Nr="≗",Rr="⨐",jr="⫯",Cr="⧂",Ur="∲",Hr="”",$r="’",Vr="♣",Br="♣",Mr=":",Or="∷",Pr="⩴",Fr="≔",Ir="≔",Gr=",",_r="@",zr="∁",Xr="∘",Jr="∁",Yr="ℂ",Zr="≅",Qr="⩭",Kr="≡",Wr="∮",te="∯",se="∮",oe="𝕔",ne="ℂ",ce="∐",re="∐",ee="©",ae="©",ie="℗",le="∳",ue="↵",pe="✗",de="⨯",fe="𝒞",ge="𝒸",me="⫏",he="⫑",be="⫐",ve="⫒",we="⋯",qe="⤸",ye="⤵",xe="⋞",Le="⋟",Te="↶",Ee="⤽",Se="⩈",De="⩆",Ae="≍",ke="∪",Ne="⋓",Re="⩊",je="⊍",Ce="⩅",Ue="∪︀",He="↷",$e="⤼",Ve="⋞",Be="⋟",Me="⋎",Oe="⋏",Pe="¤",Fe="↶",Ie="↷",Ge="⋎",_e="⋏",ze="∲",Xe="∱",Je="⌭",Ye="†",Ze="‡",Qe="ℸ",Ke="↓",We="↡",ta="⇓",sa="‐",oa="⫤",na="⊣",ca="⤏",ra="˝",ea="Ď",aa="ď",ia="Д",la="д",ua="‡",pa="⇊",da="ⅅ",fa="ⅆ",ga="⤑",ma="⩷",ha="°",ba="∇",va="Δ",wa="δ",qa="⦱",ya="⥿",xa="𝔇",La="𝔡",Ta="⥥",Ea="⇃",Sa="⇂",Da="´",Aa="˙",ka="˝",Na="`",Ra="˜",ja="⋄",Ca="⋄",Ua="⋄",Ha="♦",$a="♦",Va="¨",Ba="ⅆ",Ma="ϝ",Oa="⋲",Pa="÷",Fa="÷",Ia="⋇",Ga="⋇",_a="Ђ",za="ђ",Xa="⌞",Ja="⌍",Ya="$",Za="𝔻",Qa="𝕕",Ka="¨",Wa="˙",ti="⃜",si="≐",oi="≑",ni="≐",ci="∸",ri="∔",ei="⊡",ai="⌆",ii="∯",li="¨",ui="⇓",pi="⇐",di="⇔",fi="⫤",gi="⟸",mi="⟺",hi="⟹",bi="⇒",vi="⊨",wi="⇑",qi="⇕",yi="∥",xi="⤓",Li="↓",Ti="↓",Ei="⇓",Si="⇵",Di="̑",Ai="⇊",ki="⇃",Ni="⇂",Ri="⥐",ji="⥞",Ci="⥖",Ui="↽",Hi="⥟",$i="⥗",Vi="⇁",Bi="↧",Mi="⊤",Oi="⤐",Pi="⌟",Fi="⌌",Ii="𝒟",Gi="𝒹",_i="Ѕ",zi="ѕ",Xi="⧶",Ji="Đ",Yi="đ",Zi="⋱",Qi="▿",Ki="▾",Wi="⇵",tl="⥯",sl="⦦",ol="Џ",nl="џ",cl="⟿",rl="É",el="é",al="⩮",il="Ě",ll="ě",ul="Ê",pl="ê",dl="≖",fl="≕",gl="Э",ml="э",hl="⩷",bl="Ė",vl="ė",wl="≑",ql="ⅇ",yl="≒",xl="𝔈",Ll="𝔢",Tl="⪚",El="È",Sl="è",Dl="⪖",Al="⪘",kl="⪙",Nl="∈",Rl="⏧",jl="ℓ",Cl="⪕",Ul="⪗",Hl="Ē",$l="ē",Vl="∅",Bl="∅",Ml="◻",Ol="∅",Pl="▫",Fl=" ",Il=" ",Gl=" ",_l="Ŋ",zl="ŋ",Xl=" ",Jl="Ę",Yl="ę",Zl="𝔼",Ql="𝕖",Kl="⋕",Wl="⧣",tu="⩱",su="ε",ou="Ε",nu="ε",cu="ϵ",ru="≖",eu="≕",au="≂",iu="⪖",lu="⪕",uu="⩵",pu="=",du="≂",fu="≟",gu="⇌",mu="≡",hu="⩸",bu="⧥",vu="⥱",wu="≓",qu="ℯ",yu="ℰ",xu="≐",Lu="⩳",Tu="≂",Eu="Η",Su="η",Du="Ð",Au="ð",ku="Ë",Nu="ë",Ru="€",ju="!",Cu="∃",Uu="∃",Hu="ℰ",$u="ⅇ",Vu="ⅇ",Bu="≒",Mu="Ф",Ou="ф",Pu="♀",Fu="ffi",Iu="ff",Gu="ffl",_u="𝔉",zu="𝔣",Xu="fi",Ju="◼",Yu="▪",Zu="fj",Qu="♭",Ku="fl",Wu="▱",tp="ƒ",sp="𝔽",op="𝕗",np="∀",cp="∀",rp="⋔",ep="⫙",ap="ℱ",ip="⨍",lp="½",up="⅓",pp="¼",dp="⅕",fp="⅙",gp="⅛",mp="⅔",hp="⅖",bp="¾",vp="⅗",wp="⅜",qp="⅘",yp="⅚",xp="⅝",Lp="⅞",Tp="⁄",Ep="⌢",Sp="𝒻",Dp="ℱ",Ap="ǵ",kp="Γ",Np="γ",Rp="Ϝ",jp="ϝ",Cp="⪆",Up="Ğ",Hp="ğ",$p="Ģ",Vp="Ĝ",Bp="ĝ",Mp="Г",Op="г",Pp="Ġ",Fp="ġ",Ip="≥",Gp="≧",_p="⪌",zp="⋛",Xp="≥",Jp="≧",Yp="⩾",Zp="⪩",Qp="⩾",Kp="⪀",Wp="⪂",td="⪄",sd="⋛︀",od="⪔",nd="𝔊",cd="𝔤",rd="≫",ed="⋙",ad="⋙",id="ℷ",ld="Ѓ",ud="ѓ",pd="⪥",dd="≷",fd="⪒",gd="⪤",md="⪊",hd="⪊",bd="⪈",vd="≩",wd="⪈",qd="≩",yd="⋧",xd="𝔾",Ld="𝕘",Td="`",Ed="≥",Sd="⋛",Dd="≧",Ad="⪢",kd="≷",Nd="⩾",Rd="≳",jd="𝒢",Cd="ℊ",Ud="≳",Hd="⪎",$d="⪐",Vd="⪧",Bd="⩺",Md=">",Od=">",Pd="≫",Fd="⋗",Id="⦕",Gd="⩼",_d="⪆",zd="⥸",Xd="⋗",Jd="⋛",Yd="⪌",Zd="≷",Qd="≳",Kd="≩︀",Wd="≩︀",tf="ˇ",sf=" ",of="½",nf="ℋ",cf="Ъ",rf="ъ",ef="⥈",af="↔",lf="⇔",uf="↭",pf="^",df="ℏ",ff="Ĥ",gf="ĥ",mf="♥",hf="♥",bf="…",vf="⊹",wf="𝔥",qf="ℌ",yf="ℋ",xf="⤥",Lf="⤦",Tf="⇿",Ef="∻",Sf="↩",Df="↪",Af="𝕙",kf="ℍ",Nf="―",Rf="─",jf="𝒽",Cf="ℋ",Uf="ℏ",Hf="Ħ",$f="ħ",Vf="≎",Bf="≏",Mf="⁃",Of="‐",Pf="Í",Ff="í",If="",Gf="Î",_f="î",zf="И",Xf="и",Jf="İ",Yf="Е",Zf="е",Qf="¡",Kf="⇔",Wf="𝔦",tg="ℑ",sg="Ì",og="ì",ng="ⅈ",cg="⨌",rg="∭",eg="⧜",ag="℩",ig="IJ",lg="ij",ug="Ī",pg="ī",dg="ℑ",fg="ⅈ",gg="ℐ",mg="ℑ",hg="ı",bg="ℑ",vg="⊷",wg="Ƶ",qg="⇒",yg="℅",xg="∞",Lg="⧝",Tg="ı",Eg="⊺",Sg="∫",Dg="∬",Ag="ℤ",kg="∫",Ng="⊺",Rg="⋂",jg="⨗",Cg="⨼",Ug="",Hg="",$g="Ё",Vg="ё",Bg="Į",Mg="į",Og="𝕀",Pg="𝕚",Fg="Ι",Ig="ι",Gg="⨼",_g="¿",zg="𝒾",Xg="ℐ",Jg="∈",Yg="⋵",Zg="⋹",Qg="⋴",Kg="⋳",Wg="∈",tm="",sm="Ĩ",om="ĩ",nm="І",cm="і",rm="Ï",em="ï",am="Ĵ",im="ĵ",lm="Й",um="й",pm="𝔍",dm="𝔧",fm="ȷ",gm="𝕁",mm="𝕛",hm="𝒥",bm="𝒿",vm="Ј",wm="ј",qm="Є",ym="є",xm="Κ",Lm="κ",Tm="ϰ",Em="Ķ",Sm="ķ",Dm="К",Am="к",km="𝔎",Nm="𝔨",Rm="ĸ",jm="Х",Cm="х",Um="Ќ",Hm="ќ",$m="𝕂",Vm="𝕜",Bm="𝒦",Mm="𝓀",Om="⇚",Pm="Ĺ",Fm="ĺ",Im="⦴",Gm="ℒ",_m="Λ",zm="λ",Xm="⟨",Jm="⟪",Ym="⦑",Zm="⟨",Qm="⪅",Km="ℒ",Wm="«",th="⇤",sh="⤟",oh="←",nh="↞",ch="⇐",rh="⤝",eh="↩",ah="↫",ih="⤹",lh="⥳",uh="↢",ph="⤙",dh="⤛",fh="⪫",gh="⪭",mh="⪭︀",hh="⤌",bh="⤎",vh="❲",wh="{",qh="[",yh="⦋",xh="⦏",Lh="⦍",Th="Ľ",Eh="ľ",Sh="Ļ",Dh="ļ",Ah="⌈",kh="{",Nh="Л",Rh="л",jh="⤶",Ch="“",Uh="„",Hh="⥧",$h="⥋",Vh="↲",Bh="≤",Mh="≦",Oh="⟨",Ph="⇤",Fh="←",Ih="←",Gh="⇐",_h="⇆",zh="↢",Xh="⌈",Jh="⟦",Yh="⥡",Zh="⥙",Qh="⇃",Kh="⌊",Wh="↽",tb="↼",sb="⇇",ob="↔",nb="↔",cb="⇔",rb="⇆",eb="⇋",ab="↭",ib="⥎",lb="↤",ub="⊣",pb="⥚",db="⋋",fb="⧏",gb="⊲",mb="⊴",hb="⥑",bb="⥠",vb="⥘",wb="↿",qb="⥒",yb="↼",xb="⪋",Lb="⋚",Tb="≤",Eb="≦",Sb="⩽",Db="⪨",Ab="⩽",kb="⩿",Nb="⪁",Rb="⪃",jb="⋚︀",Cb="⪓",Ub="⪅",Hb="⋖",$b="⋚",Vb="⪋",Bb="⋚",Mb="≦",Ob="≶",Pb="≶",Fb="⪡",Ib="≲",Gb="⩽",_b="≲",zb="⥼",Xb="⌊",Jb="𝔏",Yb="𝔩",Zb="≶",Qb="⪑",Kb="⥢",Wb="↽",tv="↼",sv="⥪",ov="▄",nv="Љ",cv="љ",rv="⇇",ev="≪",av="⋘",iv="⌞",lv="⇚",uv="⥫",pv="◺",dv="Ŀ",fv="ŀ",gv="⎰",mv="⎰",hv="⪉",bv="⪉",vv="⪇",wv="≨",qv="⪇",yv="≨",xv="⋦",Lv="⟬",Tv="⇽",Ev="⟦",Sv="⟵",Dv="⟵",Av="⟸",kv="⟷",Nv="⟷",Rv="⟺",jv="⟼",Cv="⟶",Uv="⟶",Hv="⟹",$v="↫",Vv="↬",Bv="⦅",Mv="𝕃",Ov="𝕝",Pv="⨭",Fv="⨴",Iv="∗",Gv="_",_v="↙",zv="↘",Xv="◊",Jv="◊",Yv="⧫",Zv="(",Qv="⦓",Kv="⇆",Wv="⌟",tw="⇋",sw="⥭",ow="",nw="⊿",cw="‹",rw="𝓁",ew="ℒ",aw="↰",iw="↰",lw="≲",uw="⪍",pw="⪏",dw="[",fw="‘",gw="‚",mw="Ł",hw="ł",bw="⪦",vw="⩹",ww="<",qw="<",yw="≪",xw="⋖",Lw="⋋",Tw="⋉",Ew="⥶",Sw="⩻",Dw="◃",Aw="⊴",kw="◂",Nw="⦖",Rw="⥊",jw="⥦",Cw="≨︀",Uw="≨︀",Hw="¯",$w="♂",Vw="✠",Bw="✠",Mw="↦",Ow="↦",Pw="↧",Fw="↤",Iw="↥",Gw="▮",_w="⨩",zw="М",Xw="м",Jw="—",Yw="∺",Zw="∡",Qw=" ",Kw="ℳ",Ww="𝔐",tq="𝔪",sq="℧",oq="µ",nq="*",cq="⫰",rq="∣",eq="·",aq="⊟",iq="−",lq="∸",uq="⨪",pq="∓",dq="⫛",fq="…",gq="∓",mq="⊧",hq="𝕄",bq="𝕞",vq="∓",wq="𝓂",qq="ℳ",yq="∾",xq="Μ",Lq="μ",Tq="⊸",Eq="⊸",Sq="∇",Dq="Ń",Aq="ń",kq="∠⃒",Nq="≉",Rq="⩰̸",jq="≋̸",Cq="ʼn",Uq="≉",Hq="♮",$q="ℕ",Vq="♮",Bq=" ",Mq="≎̸",Oq="≏̸",Pq="⩃",Fq="Ň",Iq="ň",Gq="Ņ",_q="ņ",zq="≇",Xq="⩭̸",Jq="⩂",Yq="Н",Zq="н",Qq="–",Kq="⤤",Wq="↗",ty="⇗",sy="↗",oy="≠",ny="≐̸",cy="",ry="",ey="",ay="",iy="≢",ly="⤨",uy="≂̸",py="≫",dy="≪",fy=`
|
|
2
2
|
`,gy="∄",my="∄",hy="𝔑",by="𝔫",vy="≧̸",wy="≱",qy="≱",yy="≧̸",xy="⩾̸",Ly="⩾̸",Ty="⋙̸",Ey="≵",Sy="≫⃒",Dy="≯",Ay="≯",ky="≫̸",Ny="↮",Ry="⇎",jy="⫲",Cy="∋",Uy="⋼",Hy="⋺",$y="∋",Vy="Њ",By="њ",My="↚",Oy="⇍",Py="‥",Fy="≦̸",Iy="≰",Gy="↚",_y="⇍",zy="↮",Xy="⇎",Jy="≰",Yy="≦̸",Zy="⩽̸",Qy="⩽̸",Ky="≮",Wy="⋘̸",tx="≴",sx="≪⃒",ox="≮",nx="⋪",cx="⋬",rx="≪̸",ex="∤",ax="",ix=" ",lx="𝕟",ux="ℕ",px="⫬",dx="¬",fx="≢",gx="≭",mx="∦",hx="∉",bx="≠",vx="≂̸",wx="∄",qx="≯",yx="≱",xx="≧̸",Lx="≫̸",Tx="≹",Ex="⩾̸",Sx="≵",Dx="≎̸",Ax="≏̸",kx="∉",Nx="⋵̸",Rx="⋹̸",jx="∉",Cx="⋷",Ux="⋶",Hx="⧏̸",$x="⋪",Vx="⋬",Bx="≮",Mx="≰",Ox="≸",Px="≪̸",Fx="⩽̸",Ix="≴",Gx="⪢̸",_x="⪡̸",zx="∌",Xx="∌",Jx="⋾",Yx="⋽",Zx="⊀",Qx="⪯̸",Kx="⋠",Wx="∌",tL="⧐̸",sL="⋫",oL="⋭",nL="⊏̸",cL="⋢",rL="⊐̸",eL="⋣",aL="⊂⃒",iL="⊈",lL="⊁",uL="⪰̸",pL="⋡",dL="≿̸",fL="⊃⃒",gL="⊉",mL="≁",hL="≄",bL="≇",vL="≉",wL="∤",qL="∦",yL="∦",xL="⫽⃥",LL="∂̸",TL="⨔",EL="⊀",SL="⋠",DL="⊀",AL="⪯̸",kL="⪯̸",NL="⤳̸",RL="↛",jL="⇏",CL="↝̸",UL="↛",HL="⇏",$L="⋫",VL="⋭",BL="⊁",ML="⋡",OL="⪰̸",PL="𝒩",FL="𝓃",IL="∤",GL="∦",_L="≁",zL="≄",XL="≄",JL="∤",YL="∦",ZL="⋢",QL="⋣",KL="⊄",WL="⫅̸",tT="⊈",sT="⊂⃒",oT="⊈",nT="⫅̸",cT="⊁",rT="⪰̸",eT="⊅",aT="⫆̸",iT="⊉",lT="⊃⃒",uT="⊉",pT="⫆̸",dT="≹",fT="Ñ",gT="ñ",mT="≸",hT="⋪",bT="⋬",vT="⋫",wT="⋭",qT="Ν",yT="ν",xT="#",LT="№",TT=" ",ET="≍⃒",ST="⊬",DT="⊭",AT="⊮",kT="⊯",NT="≥⃒",RT=">⃒",jT="⤄",CT="⧞",UT="⤂",HT="≤⃒",$T="<⃒",VT="⊴⃒",BT="⤃",MT="⊵⃒",OT="∼⃒",PT="⤣",FT="↖",IT="⇖",GT="↖",_T="⤧",zT="Ó",XT="ó",JT="⊛",YT="Ô",ZT="ô",QT="⊚",KT="О",WT="о",tE="⊝",sE="Ő",oE="ő",nE="⨸",cE="⊙",rE="⦼",eE="Œ",aE="œ",iE="⦿",lE="𝔒",uE="𝔬",pE="˛",dE="Ò",fE="ò",gE="⧁",mE="⦵",hE="Ω",bE="∮",vE="↺",wE="⦾",qE="⦻",yE="‾",xE="⧀",LE="Ō",TE="ō",EE="Ω",SE="ω",DE="Ο",AE="ο",kE="⦶",NE="⊖",RE="𝕆",jE="𝕠",CE="⦷",UE="“",HE="‘",$E="⦹",VE="⊕",BE="↻",ME="⩔",OE="∨",PE="⩝",FE="ℴ",IE="ℴ",GE="ª",_E="º",zE="⊶",XE="⩖",JE="⩗",YE="⩛",ZE="Ⓢ",QE="𝒪",KE="ℴ",WE="Ø",t1="ø",s1="⊘",o1="Õ",n1="õ",c1="⨶",r1="⨷",e1="⊗",a1="Ö",i1="ö",l1="⌽",u1="‾",p1="⏞",d1="⎴",f1="⏜",g1="¶",m1="∥",h1="∥",b1="⫳",v1="⫽",w1="∂",q1="∂",y1="П",x1="п",L1="%",T1=".",E1="‰",S1="⊥",D1="‱",A1="𝔓",k1="𝔭",N1="Φ",R1="φ",j1="ϕ",C1="ℳ",U1="☎",H1="Π",$1="π",V1="⋔",B1="ϖ",M1="ℏ",O1="ℎ",P1="ℏ",F1="⨣",I1="⊞",G1="⨢",_1="+",z1="∔",X1="⨥",J1="⩲",Y1="±",Z1="±",Q1="⨦",K1="⨧",W1="±",tS="ℌ",sS="⨕",oS="𝕡",nS="ℙ",cS="£",rS="⪷",eS="⪻",aS="≺",iS="≼",lS="⪷",uS="≺",pS="≼",dS="≺",fS="⪯",gS="≼",mS="≾",hS="⪯",bS="⪹",vS="⪵",wS="⋨",qS="⪯",yS="⪳",xS="≾",LS="′",TS="″",ES="ℙ",SS="⪹",DS="⪵",AS="⋨",kS="∏",NS="∏",RS="⌮",jS="⌒",CS="⌓",US="∝",HS="∝",$S="∷",VS="∝",BS="≾",MS="⊰",OS="𝒫",PS="𝓅",FS="Ψ",IS="ψ",GS=" ",_S="𝔔",zS="𝔮",XS="⨌",JS="𝕢",YS="ℚ",ZS="⁗",QS="𝒬",KS="𝓆",WS="ℍ",tD="⨖",sD="?",oD="≟",nD='"',cD='"',rD="⇛",eD="∽̱",aD="Ŕ",iD="ŕ",lD="√",uD="⦳",pD="⟩",dD="⟫",fD="⦒",gD="⦥",mD="⟩",hD="»",bD="⥵",vD="⇥",wD="⤠",qD="⤳",yD="→",xD="↠",LD="⇒",TD="⤞",ED="↪",SD="↬",DD="⥅",AD="⥴",kD="⤖",ND="↣",RD="↝",jD="⤚",CD="⤜",UD="∶",HD="ℚ",$D="⤍",VD="⤏",BD="⤐",MD="❳",OD="}",PD="]",FD="⦌",ID="⦎",GD="⦐",_D="Ř",zD="ř",XD="Ŗ",JD="ŗ",YD="⌉",ZD="}",QD="Р",KD="р",WD="⤷",tA="⥩",sA="”",oA="”",nA="↳",cA="ℜ",rA="ℛ",eA="ℜ",aA="ℝ",iA="ℜ",lA="▭",uA="®",pA="®",dA="∋",fA="⇋",gA="⥯",mA="⥽",hA="⌋",bA="𝔯",vA="ℜ",wA="⥤",qA="⇁",yA="⇀",xA="⥬",LA="Ρ",TA="ρ",EA="ϱ",SA="⟩",DA="⇥",AA="→",kA="→",NA="⇒",RA="⇄",jA="↣",CA="⌉",UA="⟧",HA="⥝",$A="⥕",VA="⇂",BA="⌋",MA="⇁",OA="⇀",PA="⇄",FA="⇌",IA="⇉",GA="↝",_A="↦",zA="⊢",XA="⥛",JA="⋌",YA="⧐",ZA="⊳",QA="⊵",KA="⥏",WA="⥜",tk="⥔",sk="↾",ok="⥓",nk="⇀",ck="˚",rk="≓",ek="⇄",ak="⇌",ik="",lk="⎱",uk="⎱",pk="⫮",dk="⟭",fk="⇾",gk="⟧",mk="⦆",hk="𝕣",bk="ℝ",vk="⨮",wk="⨵",qk="⥰",yk=")",xk="⦔",Lk="⨒",Tk="⇉",Ek="⇛",Sk="›",Dk="𝓇",Ak="ℛ",kk="↱",Nk="↱",Rk="]",jk="’",Ck="’",Uk="⋌",Hk="⋊",$k="▹",Vk="⊵",Bk="▸",Mk="⧎",Ok="⧴",Pk="⥨",Fk="℞",Ik="Ś",Gk="ś",_k="‚",zk="⪸",Xk="Š",Jk="š",Yk="⪼",Zk="≻",Qk="≽",Kk="⪰",Wk="⪴",tN="Ş",sN="ş",oN="Ŝ",nN="ŝ",cN="⪺",rN="⪶",eN="⋩",aN="⨓",iN="≿",lN="С",uN="с",pN="⊡",dN="⋅",fN="⩦",gN="⤥",mN="↘",hN="⇘",bN="↘",vN="§",wN=";",qN="⤩",yN="∖",xN="∖",LN="✶",TN="𝔖",EN="𝔰",SN="⌢",DN="♯",AN="Щ",kN="щ",NN="Ш",RN="ш",jN="↓",CN="←",UN="∣",HN="∥",$N="→",VN="↑",BN="",MN="Σ",ON="σ",PN="ς",FN="ς",IN="∼",GN="⩪",_N="≃",zN="≃",XN="⪞",JN="⪠",YN="⪝",ZN="⪟",QN="≆",KN="⨤",WN="⥲",tR="←",sR="∘",oR="∖",nR="⨳",cR="⧤",rR="∣",eR="⌣",aR="⪪",iR="⪬",lR="⪬︀",uR="Ь",pR="ь",dR="⌿",fR="⧄",gR="/",mR="𝕊",hR="𝕤",bR="♠",vR="♠",wR="∥",qR="⊓",yR="⊓︀",xR="⊔",LR="⊔︀",TR="√",ER="⊏",SR="⊑",DR="⊏",AR="⊑",kR="⊐",NR="⊒",RR="⊐",jR="⊒",CR="□",UR="□",HR="⊓",$R="⊏",VR="⊑",BR="⊐",MR="⊒",OR="⊔",PR="▪",FR="□",IR="▪",GR="→",_R="𝒮",zR="𝓈",XR="∖",JR="⌣",YR="⋆",ZR="⋆",QR="☆",KR="★",WR="ϵ",tj="ϕ",sj="¯",oj="⊂",nj="⋐",cj="⪽",rj="⫅",ej="⊆",aj="⫃",ij="⫁",lj="⫋",uj="⊊",pj="⪿",dj="⥹",fj="⊂",gj="⋐",mj="⊆",hj="⫅",bj="⊆",vj="⊊",wj="⫋",qj="⫇",yj="⫕",xj="⫓",Lj="⪸",Tj="≻",Ej="≽",Sj="≻",Dj="⪰",Aj="≽",kj="≿",Nj="⪰",Rj="⪺",jj="⪶",Cj="⋩",Uj="≿",Hj="∋",$j="∑",Vj="∑",Bj="♪",Mj="¹",Oj="²",Pj="³",Fj="⊃",Ij="⋑",Gj="⪾",_j="⫘",zj="⫆",Xj="⊇",Jj="⫄",Yj="⊃",Zj="⊇",Qj="⟉",Kj="⫗",Wj="⥻",t0="⫂",s0="⫌",o0="⊋",n0="⫀",c0="⊃",r0="⋑",e0="⊇",a0="⫆",i0="⊋",l0="⫌",u0="⫈",p0="⫔",d0="⫖",f0="⤦",g0="↙",m0="⇙",h0="↙",b0="⤪",v0="ß",w0=" ",q0="⌖",y0="Τ",x0="τ",L0="⎴",T0="Ť",E0="ť",S0="Ţ",D0="ţ",A0="Т",k0="т",N0="⃛",R0="⌕",j0="𝔗",C0="𝔱",U0="∴",H0="∴",$0="∴",V0="Θ",B0="θ",M0="ϑ",O0="ϑ",P0="≈",F0="∼",I0=" ",G0=" ",_0=" ",z0="≈",X0="∼",J0="Þ",Y0="þ",Z0="˜",Q0="∼",K0="≃",W0="≅",tC="≈",sC="⨱",oC="⊠",nC="×",cC="⨰",rC="∭",eC="⤨",aC="⌶",iC="⫱",lC="⊤",uC="𝕋",pC="𝕥",dC="⫚",fC="⤩",gC="‴",mC="™",hC="™",bC="▵",vC="▿",wC="◃",qC="⊴",yC="≜",xC="▹",LC="⊵",TC="◬",EC="≜",SC="⨺",DC="⃛",AC="⨹",kC="⧍",NC="⨻",RC="⏢",jC="𝒯",CC="𝓉",UC="Ц",HC="ц",$C="Ћ",VC="ћ",BC="Ŧ",MC="ŧ",OC="≬",PC="↞",FC="↠",IC="Ú",GC="ú",_C="↑",zC="↟",XC="⇑",JC="⥉",YC="Ў",ZC="ў",QC="Ŭ",KC="ŭ",WC="Û",tU="û",sU="У",oU="у",nU="⇅",cU="Ű",rU="ű",eU="⥮",aU="⥾",iU="𝔘",lU="𝔲",uU="Ù",pU="ù",dU="⥣",fU="↿",gU="↾",mU="▀",hU="⌜",bU="⌜",vU="⌏",wU="◸",qU="Ū",yU="ū",xU="¨",LU="_",TU="⏟",EU="⎵",SU="⏝",DU="⋃",AU="⊎",kU="Ų",NU="ų",RU="𝕌",jU="𝕦",CU="⤒",UU="↑",HU="↑",$U="⇑",VU="⇅",BU="↕",MU="↕",OU="⇕",PU="⥮",FU="↿",IU="↾",GU="⊎",_U="↖",zU="↗",XU="υ",JU="ϒ",YU="ϒ",ZU="Υ",QU="υ",KU="↥",WU="⊥",tH="⇈",sH="⌝",oH="⌝",nH="⌎",cH="Ů",rH="ů",eH="◹",aH="𝒰",iH="𝓊",lH="⋰",uH="Ũ",pH="ũ",dH="▵",fH="▴",gH="⇈",mH="Ü",hH="ü",bH="⦧",vH="⦜",wH="ϵ",qH="ϰ",yH="∅",xH="ϕ",LH="ϖ",TH="∝",EH="↕",SH="⇕",DH="ϱ",AH="ς",kH="⊊︀",NH="⫋︀",RH="⊋︀",jH="⫌︀",CH="ϑ",UH="⊲",HH="⊳",$H="⫨",VH="⫫",BH="⫩",MH="В",OH="в",PH="⊢",FH="⊨",IH="⊩",GH="⊫",_H="⫦",zH="⊻",XH="∨",JH="⋁",YH="≚",ZH="⋮",QH="|",KH="‖",WH="|",t$="‖",s$="∣",o$="|",n$="❘",c$="≀",r$=" ",e$="𝔙",a$="𝔳",i$="⊲",l$="⊂⃒",u$="⊃⃒",p$="𝕍",d$="𝕧",f$="∝",g$="⊳",m$="𝒱",h$="𝓋",b$="⫋︀",v$="⊊︀",w$="⫌︀",q$="⊋︀",y$="⊪",x$="⦚",L$="Ŵ",T$="ŵ",E$="⩟",S$="∧",D$="⋀",A$="≙",k$="℘",N$="𝔚",R$="𝔴",j$="𝕎",C$="𝕨",U$="℘",H$="≀",$$="≀",V$="𝒲",B$="𝓌",M$="⋂",O$="◯",P$="⋃",F$="▽",I$="𝔛",G$="𝔵",_$="⟷",z$="⟺",X$="Ξ",J$="ξ",Y$="⟵",Z$="⟸",Q$="⟼",K$="⋻",W$="⨀",tV="𝕏",sV="𝕩",oV="⨁",nV="⨂",cV="⟶",rV="⟹",eV="𝒳",aV="𝓍",iV="⨆",lV="⨄",uV="△",pV="⋁",dV="⋀",fV="Ý",gV="ý",mV="Я",hV="я",bV="Ŷ",vV="ŷ",wV="Ы",qV="ы",yV="¥",xV="𝔜",LV="𝔶",TV="Ї",EV="ї",SV="𝕐",DV="𝕪",AV="𝒴",kV="𝓎",NV="Ю",RV="ю",jV="ÿ",CV="Ÿ",UV="Ź",HV="ź",$V="Ž",VV="ž",BV="З",MV="з",OV="Ż",PV="ż",FV="ℨ",IV="",GV="Ζ",_V="ζ",zV="𝔷",XV="ℨ",JV="Ж",YV="ж",ZV="⇝",QV="𝕫",KV="ℤ",WV="𝒵",tB="𝓏",sB="",oB="",et={Aacute:Vt,aacute:Bt,Abreve:Mt,abreve:Ot,ac:Pt,acd:Ft,acE:It,Acirc:Gt,acirc:_t,acute:zt,Acy:Xt,acy:Jt,AElig:Yt,aelig:Zt,af:Qt,Afr:Kt,afr:Wt,Agrave:ts,agrave:ss,alefsym:os,aleph:ns,Alpha:cs,alpha:rs,Amacr:es,amacr:as,amalg:is,amp:ls,AMP:us,andand:ps,And:ds,and:fs,andd:gs,andslope:ms,andv:hs,ang:bs,ange:vs,angle:ws,angmsdaa:qs,angmsdab:ys,angmsdac:xs,angmsdad:Ls,angmsdae:Ts,angmsdaf:Es,angmsdag:Ss,angmsdah:Ds,angmsd:As,angrt:ks,angrtvb:Ns,angrtvbd:Rs,angsph:js,angst:Cs,angzarr:Us,Aogon:Hs,aogon:$s,Aopf:Vs,aopf:Bs,apacir:Ms,ap:Os,apE:Ps,ape:Fs,apid:Is,apos:Gs,ApplyFunction:_s,approx:zs,approxeq:Xs,Aring:Js,aring:Ys,Ascr:Zs,ascr:Qs,Assign:Ks,ast:Ws,asymp:to,asympeq:so,Atilde:oo,atilde:no,Auml:co,auml:ro,awconint:eo,awint:ao,backcong:io,backepsilon:lo,backprime:uo,backsim:po,backsimeq:fo,Backslash:go,Barv:mo,barvee:ho,barwed:bo,Barwed:vo,barwedge:wo,bbrk:qo,bbrktbrk:yo,bcong:xo,Bcy:Lo,bcy:To,bdquo:Eo,becaus:So,because:Do,Because:Ao,bemptyv:ko,bepsi:No,bernou:Ro,Bernoullis:jo,Beta:Co,beta:Uo,beth:Ho,between:$o,Bfr:Vo,bfr:Bo,bigcap:Mo,bigcirc:Oo,bigcup:Po,bigodot:Fo,bigoplus:Io,bigotimes:Go,bigsqcup:_o,bigstar:zo,bigtriangledown:Xo,bigtriangleup:Jo,biguplus:Yo,bigvee:Zo,bigwedge:Qo,bkarow:Ko,blacklozenge:Wo,blacksquare:tn,blacktriangle:sn,blacktriangledown:on,blacktriangleleft:nn,blacktriangleright:cn,blank:rn,blk12:en,blk14:an,blk34:ln,block:un,bne:pn,bnequiv:dn,bNot:fn,bnot:gn,Bopf:mn,bopf:hn,bot:bn,bottom:vn,bowtie:wn,boxbox:qn,boxdl:yn,boxdL:xn,boxDl:Ln,boxDL:Tn,boxdr:En,boxdR:Sn,boxDr:Dn,boxDR:An,boxh:kn,boxH:Nn,boxhd:Rn,boxHd:jn,boxhD:Cn,boxHD:Un,boxhu:Hn,boxHu:$n,boxhU:Vn,boxHU:Bn,boxminus:Mn,boxplus:On,boxtimes:Pn,boxul:Fn,boxuL:In,boxUl:Gn,boxUL:_n,boxur:zn,boxuR:Xn,boxUr:Jn,boxUR:Yn,boxv:Zn,boxV:Qn,boxvh:Kn,boxvH:Wn,boxVh:tc,boxVH:sc,boxvl:oc,boxvL:nc,boxVl:cc,boxVL:rc,boxvr:ec,boxvR:ac,boxVr:ic,boxVR:lc,bprime:uc,breve:pc,Breve:dc,brvbar:fc,bscr:gc,Bscr:mc,bsemi:hc,bsim:bc,bsime:vc,bsolb:wc,bsol:qc,bsolhsub:yc,bull:xc,bullet:Lc,bump:Tc,bumpE:Ec,bumpe:Sc,Bumpeq:Dc,bumpeq:Ac,Cacute:kc,cacute:Nc,capand:Rc,capbrcup:jc,capcap:Cc,cap:Uc,Cap:Hc,capcup:$c,capdot:Vc,CapitalDifferentialD:Bc,caps:Mc,caret:Oc,caron:Pc,Cayleys:Fc,ccaps:Ic,Ccaron:Gc,ccaron:_c,Ccedil:zc,ccedil:Xc,Ccirc:Jc,ccirc:Yc,Cconint:Zc,ccups:Qc,ccupssm:Kc,Cdot:Wc,cdot:tr,cedil:sr,Cedilla:or,cemptyv:nr,cent:cr,centerdot:rr,CenterDot:er,cfr:ar,Cfr:ir,CHcy:lr,chcy:ur,check:pr,checkmark:dr,Chi:fr,chi:gr,circ:mr,circeq:hr,circlearrowleft:br,circlearrowright:vr,circledast:wr,circledcirc:qr,circleddash:yr,CircleDot:xr,circledR:Lr,circledS:Tr,CircleMinus:Er,CirclePlus:Sr,CircleTimes:Dr,cir:Ar,cirE:kr,cire:Nr,cirfnint:Rr,cirmid:jr,cirscir:Cr,ClockwiseContourIntegral:Ur,CloseCurlyDoubleQuote:Hr,CloseCurlyQuote:$r,clubs:Vr,clubsuit:Br,colon:Mr,Colon:Or,Colone:Pr,colone:Fr,coloneq:Ir,comma:Gr,commat:_r,comp:zr,compfn:Xr,complement:Jr,complexes:Yr,cong:Zr,congdot:Qr,Congruent:Kr,conint:Wr,Conint:te,ContourIntegral:se,copf:oe,Copf:ne,coprod:ce,Coproduct:re,copy:ee,COPY:ae,copysr:ie,CounterClockwiseContourIntegral:le,crarr:ue,cross:pe,Cross:de,Cscr:fe,cscr:ge,csub:me,csube:he,csup:be,csupe:ve,ctdot:we,cudarrl:qe,cudarrr:ye,cuepr:xe,cuesc:Le,cularr:Te,cularrp:Ee,cupbrcap:Se,cupcap:De,CupCap:Ae,cup:ke,Cup:Ne,cupcup:Re,cupdot:je,cupor:Ce,cups:Ue,curarr:He,curarrm:$e,curlyeqprec:Ve,curlyeqsucc:Be,curlyvee:Me,curlywedge:Oe,curren:Pe,curvearrowleft:Fe,curvearrowright:Ie,cuvee:Ge,cuwed:_e,cwconint:ze,cwint:Xe,cylcty:Je,dagger:Ye,Dagger:Ze,daleth:Qe,darr:Ke,Darr:We,dArr:ta,dash:sa,Dashv:oa,dashv:na,dbkarow:ca,dblac:ra,Dcaron:ea,dcaron:aa,Dcy:ia,dcy:la,ddagger:ua,ddarr:pa,DD:da,dd:fa,DDotrahd:ga,ddotseq:ma,deg:ha,Del:ba,Delta:va,delta:wa,demptyv:qa,dfisht:ya,Dfr:xa,dfr:La,dHar:Ta,dharl:Ea,dharr:Sa,DiacriticalAcute:Da,DiacriticalDot:Aa,DiacriticalDoubleAcute:ka,DiacriticalGrave:Na,DiacriticalTilde:Ra,diam:ja,diamond:Ca,Diamond:Ua,diamondsuit:Ha,diams:$a,die:Va,DifferentialD:Ba,digamma:Ma,disin:Oa,div:Pa,divide:Fa,divideontimes:Ia,divonx:Ga,DJcy:_a,djcy:za,dlcorn:Xa,dlcrop:Ja,dollar:Ya,Dopf:Za,dopf:Qa,Dot:Ka,dot:Wa,DotDot:ti,doteq:si,doteqdot:oi,DotEqual:ni,dotminus:ci,dotplus:ri,dotsquare:ei,doublebarwedge:ai,DoubleContourIntegral:ii,DoubleDot:li,DoubleDownArrow:ui,DoubleLeftArrow:pi,DoubleLeftRightArrow:di,DoubleLeftTee:fi,DoubleLongLeftArrow:gi,DoubleLongLeftRightArrow:mi,DoubleLongRightArrow:hi,DoubleRightArrow:bi,DoubleRightTee:vi,DoubleUpArrow:wi,DoubleUpDownArrow:qi,DoubleVerticalBar:yi,DownArrowBar:xi,downarrow:Li,DownArrow:Ti,Downarrow:Ei,DownArrowUpArrow:Si,DownBreve:Di,downdownarrows:Ai,downharpoonleft:ki,downharpoonright:Ni,DownLeftRightVector:Ri,DownLeftTeeVector:ji,DownLeftVectorBar:Ci,DownLeftVector:Ui,DownRightTeeVector:Hi,DownRightVectorBar:$i,DownRightVector:Vi,DownTeeArrow:Bi,DownTee:Mi,drbkarow:Oi,drcorn:Pi,drcrop:Fi,Dscr:Ii,dscr:Gi,DScy:_i,dscy:zi,dsol:Xi,Dstrok:Ji,dstrok:Yi,dtdot:Zi,dtri:Qi,dtrif:Ki,duarr:Wi,duhar:tl,dwangle:sl,DZcy:ol,dzcy:nl,dzigrarr:cl,Eacute:rl,eacute:el,easter:al,Ecaron:il,ecaron:ll,Ecirc:ul,ecirc:pl,ecir:dl,ecolon:fl,Ecy:gl,ecy:ml,eDDot:hl,Edot:bl,edot:vl,eDot:wl,ee:ql,efDot:yl,Efr:xl,efr:Ll,eg:Tl,Egrave:El,egrave:Sl,egs:Dl,egsdot:Al,el:kl,Element:Nl,elinters:Rl,ell:jl,els:Cl,elsdot:Ul,Emacr:Hl,emacr:$l,empty:Vl,emptyset:Bl,EmptySmallSquare:Ml,emptyv:Ol,EmptyVerySmallSquare:Pl,emsp13:Fl,emsp14:Il,emsp:Gl,ENG:_l,eng:zl,ensp:Xl,Eogon:Jl,eogon:Yl,Eopf:Zl,eopf:Ql,epar:Kl,eparsl:Wl,eplus:tu,epsi:su,Epsilon:ou,epsilon:nu,epsiv:cu,eqcirc:ru,eqcolon:eu,eqsim:au,eqslantgtr:iu,eqslantless:lu,Equal:uu,equals:pu,EqualTilde:du,equest:fu,Equilibrium:gu,equiv:mu,equivDD:hu,eqvparsl:bu,erarr:vu,erDot:wu,escr:qu,Escr:yu,esdot:xu,Esim:Lu,esim:Tu,Eta:Eu,eta:Su,ETH:Du,eth:Au,Euml:ku,euml:Nu,euro:Ru,excl:ju,exist:Cu,Exists:Uu,expectation:Hu,exponentiale:$u,ExponentialE:Vu,fallingdotseq:Bu,Fcy:Mu,fcy:Ou,female:Pu,ffilig:Fu,fflig:Iu,ffllig:Gu,Ffr:_u,ffr:zu,filig:Xu,FilledSmallSquare:Ju,FilledVerySmallSquare:Yu,fjlig:Zu,flat:Qu,fllig:Ku,fltns:Wu,fnof:tp,Fopf:sp,fopf:op,forall:np,ForAll:cp,fork:rp,forkv:ep,Fouriertrf:ap,fpartint:ip,frac12:lp,frac13:up,frac14:pp,frac15:dp,frac16:fp,frac18:gp,frac23:mp,frac25:hp,frac34:bp,frac35:vp,frac38:wp,frac45:qp,frac56:yp,frac58:xp,frac78:Lp,frasl:Tp,frown:Ep,fscr:Sp,Fscr:Dp,gacute:Ap,Gamma:kp,gamma:Np,Gammad:Rp,gammad:jp,gap:Cp,Gbreve:Up,gbreve:Hp,Gcedil:$p,Gcirc:Vp,gcirc:Bp,Gcy:Mp,gcy:Op,Gdot:Pp,gdot:Fp,ge:Ip,gE:Gp,gEl:_p,gel:zp,geq:Xp,geqq:Jp,geqslant:Yp,gescc:Zp,ges:Qp,gesdot:Kp,gesdoto:Wp,gesdotol:td,gesl:sd,gesles:od,Gfr:nd,gfr:cd,gg:rd,Gg:ed,ggg:ad,gimel:id,GJcy:ld,gjcy:ud,gla:pd,gl:dd,glE:fd,glj:gd,gnap:md,gnapprox:hd,gne:bd,gnE:vd,gneq:wd,gneqq:qd,gnsim:yd,Gopf:xd,gopf:Ld,grave:Td,GreaterEqual:Ed,GreaterEqualLess:Sd,GreaterFullEqual:Dd,GreaterGreater:Ad,GreaterLess:kd,GreaterSlantEqual:Nd,GreaterTilde:Rd,Gscr:jd,gscr:Cd,gsim:Ud,gsime:Hd,gsiml:$d,gtcc:Vd,gtcir:Bd,gt:Md,GT:Od,Gt:Pd,gtdot:Fd,gtlPar:Id,gtquest:Gd,gtrapprox:_d,gtrarr:zd,gtrdot:Xd,gtreqless:Jd,gtreqqless:Yd,gtrless:Zd,gtrsim:Qd,gvertneqq:Kd,gvnE:Wd,Hacek:tf,hairsp:sf,half:of,hamilt:nf,HARDcy:cf,hardcy:rf,harrcir:ef,harr:af,hArr:lf,harrw:uf,Hat:pf,hbar:df,Hcirc:ff,hcirc:gf,hearts:mf,heartsuit:hf,hellip:bf,hercon:vf,hfr:wf,Hfr:qf,HilbertSpace:yf,hksearow:xf,hkswarow:Lf,hoarr:Tf,homtht:Ef,hookleftarrow:Sf,hookrightarrow:Df,hopf:Af,Hopf:kf,horbar:Nf,HorizontalLine:Rf,hscr:jf,Hscr:Cf,hslash:Uf,Hstrok:Hf,hstrok:$f,HumpDownHump:Vf,HumpEqual:Bf,hybull:Mf,hyphen:Of,Iacute:Pf,iacute:Ff,ic:If,Icirc:Gf,icirc:_f,Icy:zf,icy:Xf,Idot:Jf,IEcy:Yf,iecy:Zf,iexcl:Qf,iff:Kf,ifr:Wf,Ifr:tg,Igrave:sg,igrave:og,ii:ng,iiiint:cg,iiint:rg,iinfin:eg,iiota:ag,IJlig:ig,ijlig:lg,Imacr:ug,imacr:pg,image:dg,ImaginaryI:fg,imagline:gg,imagpart:mg,imath:hg,Im:bg,imof:vg,imped:wg,Implies:qg,incare:yg,in:"∈",infin:xg,infintie:Lg,inodot:Tg,intcal:Eg,int:Sg,Int:Dg,integers:Ag,Integral:kg,intercal:Ng,Intersection:Rg,intlarhk:jg,intprod:Cg,InvisibleComma:Ug,InvisibleTimes:Hg,IOcy:$g,iocy:Vg,Iogon:Bg,iogon:Mg,Iopf:Og,iopf:Pg,Iota:Fg,iota:Ig,iprod:Gg,iquest:_g,iscr:zg,Iscr:Xg,isin:Jg,isindot:Yg,isinE:Zg,isins:Qg,isinsv:Kg,isinv:Wg,it:tm,Itilde:sm,itilde:om,Iukcy:nm,iukcy:cm,Iuml:rm,iuml:em,Jcirc:am,jcirc:im,Jcy:lm,jcy:um,Jfr:pm,jfr:dm,jmath:fm,Jopf:gm,jopf:mm,Jscr:hm,jscr:bm,Jsercy:vm,jsercy:wm,Jukcy:qm,jukcy:ym,Kappa:xm,kappa:Lm,kappav:Tm,Kcedil:Em,kcedil:Sm,Kcy:Dm,kcy:Am,Kfr:km,kfr:Nm,kgreen:Rm,KHcy:jm,khcy:Cm,KJcy:Um,kjcy:Hm,Kopf:$m,kopf:Vm,Kscr:Bm,kscr:Mm,lAarr:Om,Lacute:Pm,lacute:Fm,laemptyv:Im,lagran:Gm,Lambda:_m,lambda:zm,lang:Xm,Lang:Jm,langd:Ym,langle:Zm,lap:Qm,Laplacetrf:Km,laquo:Wm,larrb:th,larrbfs:sh,larr:oh,Larr:nh,lArr:ch,larrfs:rh,larrhk:eh,larrlp:ah,larrpl:ih,larrsim:lh,larrtl:uh,latail:ph,lAtail:dh,lat:fh,late:gh,lates:mh,lbarr:hh,lBarr:bh,lbbrk:vh,lbrace:wh,lbrack:qh,lbrke:yh,lbrksld:xh,lbrkslu:Lh,Lcaron:Th,lcaron:Eh,Lcedil:Sh,lcedil:Dh,lceil:Ah,lcub:kh,Lcy:Nh,lcy:Rh,ldca:jh,ldquo:Ch,ldquor:Uh,ldrdhar:Hh,ldrushar:$h,ldsh:Vh,le:Bh,lE:Mh,LeftAngleBracket:Oh,LeftArrowBar:Ph,leftarrow:Fh,LeftArrow:Ih,Leftarrow:Gh,LeftArrowRightArrow:_h,leftarrowtail:zh,LeftCeiling:Xh,LeftDoubleBracket:Jh,LeftDownTeeVector:Yh,LeftDownVectorBar:Zh,LeftDownVector:Qh,LeftFloor:Kh,leftharpoondown:Wh,leftharpoonup:tb,leftleftarrows:sb,leftrightarrow:ob,LeftRightArrow:nb,Leftrightarrow:cb,leftrightarrows:rb,leftrightharpoons:eb,leftrightsquigarrow:ab,LeftRightVector:ib,LeftTeeArrow:lb,LeftTee:ub,LeftTeeVector:pb,leftthreetimes:db,LeftTriangleBar:fb,LeftTriangle:gb,LeftTriangleEqual:mb,LeftUpDownVector:hb,LeftUpTeeVector:bb,LeftUpVectorBar:vb,LeftUpVector:wb,LeftVectorBar:qb,LeftVector:yb,lEg:xb,leg:Lb,leq:Tb,leqq:Eb,leqslant:Sb,lescc:Db,les:Ab,lesdot:kb,lesdoto:Nb,lesdotor:Rb,lesg:jb,lesges:Cb,lessapprox:Ub,lessdot:Hb,lesseqgtr:$b,lesseqqgtr:Vb,LessEqualGreater:Bb,LessFullEqual:Mb,LessGreater:Ob,lessgtr:Pb,LessLess:Fb,lesssim:Ib,LessSlantEqual:Gb,LessTilde:_b,lfisht:zb,lfloor:Xb,Lfr:Jb,lfr:Yb,lg:Zb,lgE:Qb,lHar:Kb,lhard:Wb,lharu:tv,lharul:sv,lhblk:ov,LJcy:nv,ljcy:cv,llarr:rv,ll:ev,Ll:av,llcorner:iv,Lleftarrow:lv,llhard:uv,lltri:pv,Lmidot:dv,lmidot:fv,lmoustache:gv,lmoust:mv,lnap:hv,lnapprox:bv,lne:vv,lnE:wv,lneq:qv,lneqq:yv,lnsim:xv,loang:Lv,loarr:Tv,lobrk:Ev,longleftarrow:Sv,LongLeftArrow:Dv,Longleftarrow:Av,longleftrightarrow:kv,LongLeftRightArrow:Nv,Longleftrightarrow:Rv,longmapsto:jv,longrightarrow:Cv,LongRightArrow:Uv,Longrightarrow:Hv,looparrowleft:$v,looparrowright:Vv,lopar:Bv,Lopf:Mv,lopf:Ov,loplus:Pv,lotimes:Fv,lowast:Iv,lowbar:Gv,LowerLeftArrow:_v,LowerRightArrow:zv,loz:Xv,lozenge:Jv,lozf:Yv,lpar:Zv,lparlt:Qv,lrarr:Kv,lrcorner:Wv,lrhar:tw,lrhard:sw,lrm:ow,lrtri:nw,lsaquo:cw,lscr:rw,Lscr:ew,lsh:aw,Lsh:iw,lsim:lw,lsime:uw,lsimg:pw,lsqb:dw,lsquo:fw,lsquor:gw,Lstrok:mw,lstrok:hw,ltcc:bw,ltcir:vw,lt:ww,LT:qw,Lt:yw,ltdot:xw,lthree:Lw,ltimes:Tw,ltlarr:Ew,ltquest:Sw,ltri:Dw,ltrie:Aw,ltrif:kw,ltrPar:Nw,lurdshar:Rw,luruhar:jw,lvertneqq:Cw,lvnE:Uw,macr:Hw,male:$w,malt:Vw,maltese:Bw,Map:"⤅",map:Mw,mapsto:Ow,mapstodown:Pw,mapstoleft:Fw,mapstoup:Iw,marker:Gw,mcomma:_w,Mcy:zw,mcy:Xw,mdash:Jw,mDDot:Yw,measuredangle:Zw,MediumSpace:Qw,Mellintrf:Kw,Mfr:Ww,mfr:tq,mho:sq,micro:oq,midast:nq,midcir:cq,mid:rq,middot:eq,minusb:aq,minus:iq,minusd:lq,minusdu:uq,MinusPlus:pq,mlcp:dq,mldr:fq,mnplus:gq,models:mq,Mopf:hq,mopf:bq,mp:vq,mscr:wq,Mscr:qq,mstpos:yq,Mu:xq,mu:Lq,multimap:Tq,mumap:Eq,nabla:Sq,Nacute:Dq,nacute:Aq,nang:kq,nap:Nq,napE:Rq,napid:jq,napos:Cq,napprox:Uq,natural:Hq,naturals:$q,natur:Vq,nbsp:Bq,nbump:Mq,nbumpe:Oq,ncap:Pq,Ncaron:Fq,ncaron:Iq,Ncedil:Gq,ncedil:_q,ncong:zq,ncongdot:Xq,ncup:Jq,Ncy:Yq,ncy:Zq,ndash:Qq,nearhk:Kq,nearr:Wq,neArr:ty,nearrow:sy,ne:oy,nedot:ny,NegativeMediumSpace:cy,NegativeThickSpace:ry,NegativeThinSpace:ey,NegativeVeryThinSpace:ay,nequiv:iy,nesear:ly,nesim:uy,NestedGreaterGreater:py,NestedLessLess:dy,NewLine:fy,nexist:gy,nexists:my,Nfr:hy,nfr:by,ngE:vy,nge:wy,ngeq:qy,ngeqq:yy,ngeqslant:xy,nges:Ly,nGg:Ty,ngsim:Ey,nGt:Sy,ngt:Dy,ngtr:Ay,nGtv:ky,nharr:Ny,nhArr:Ry,nhpar:jy,ni:Cy,nis:Uy,nisd:Hy,niv:$y,NJcy:Vy,njcy:By,nlarr:My,nlArr:Oy,nldr:Py,nlE:Fy,nle:Iy,nleftarrow:Gy,nLeftarrow:_y,nleftrightarrow:zy,nLeftrightarrow:Xy,nleq:Jy,nleqq:Yy,nleqslant:Zy,nles:Qy,nless:Ky,nLl:Wy,nlsim:tx,nLt:sx,nlt:ox,nltri:nx,nltrie:cx,nLtv:rx,nmid:ex,NoBreak:ax,NonBreakingSpace:ix,nopf:lx,Nopf:ux,Not:px,not:dx,NotCongruent:fx,NotCupCap:gx,NotDoubleVerticalBar:mx,NotElement:hx,NotEqual:bx,NotEqualTilde:vx,NotExists:wx,NotGreater:qx,NotGreaterEqual:yx,NotGreaterFullEqual:xx,NotGreaterGreater:Lx,NotGreaterLess:Tx,NotGreaterSlantEqual:Ex,NotGreaterTilde:Sx,NotHumpDownHump:Dx,NotHumpEqual:Ax,notin:kx,notindot:Nx,notinE:Rx,notinva:jx,notinvb:Cx,notinvc:Ux,NotLeftTriangleBar:Hx,NotLeftTriangle:$x,NotLeftTriangleEqual:Vx,NotLess:Bx,NotLessEqual:Mx,NotLessGreater:Ox,NotLessLess:Px,NotLessSlantEqual:Fx,NotLessTilde:Ix,NotNestedGreaterGreater:Gx,NotNestedLessLess:_x,notni:zx,notniva:Xx,notnivb:Jx,notnivc:Yx,NotPrecedes:Zx,NotPrecedesEqual:Qx,NotPrecedesSlantEqual:Kx,NotReverseElement:Wx,NotRightTriangleBar:tL,NotRightTriangle:sL,NotRightTriangleEqual:oL,NotSquareSubset:nL,NotSquareSubsetEqual:cL,NotSquareSuperset:rL,NotSquareSupersetEqual:eL,NotSubset:aL,NotSubsetEqual:iL,NotSucceeds:lL,NotSucceedsEqual:uL,NotSucceedsSlantEqual:pL,NotSucceedsTilde:dL,NotSuperset:fL,NotSupersetEqual:gL,NotTilde:mL,NotTildeEqual:hL,NotTildeFullEqual:bL,NotTildeTilde:vL,NotVerticalBar:wL,nparallel:qL,npar:yL,nparsl:xL,npart:LL,npolint:TL,npr:EL,nprcue:SL,nprec:DL,npreceq:AL,npre:kL,nrarrc:NL,nrarr:RL,nrArr:jL,nrarrw:CL,nrightarrow:UL,nRightarrow:HL,nrtri:$L,nrtrie:VL,nsc:BL,nsccue:ML,nsce:OL,Nscr:PL,nscr:FL,nshortmid:IL,nshortparallel:GL,nsim:_L,nsime:zL,nsimeq:XL,nsmid:JL,nspar:YL,nsqsube:ZL,nsqsupe:QL,nsub:KL,nsubE:WL,nsube:tT,nsubset:sT,nsubseteq:oT,nsubseteqq:nT,nsucc:cT,nsucceq:rT,nsup:eT,nsupE:aT,nsupe:iT,nsupset:lT,nsupseteq:uT,nsupseteqq:pT,ntgl:dT,Ntilde:fT,ntilde:gT,ntlg:mT,ntriangleleft:hT,ntrianglelefteq:bT,ntriangleright:vT,ntrianglerighteq:wT,Nu:qT,nu:yT,num:xT,numero:LT,numsp:TT,nvap:ET,nvdash:ST,nvDash:DT,nVdash:AT,nVDash:kT,nvge:NT,nvgt:RT,nvHarr:jT,nvinfin:CT,nvlArr:UT,nvle:HT,nvlt:$T,nvltrie:VT,nvrArr:BT,nvrtrie:MT,nvsim:OT,nwarhk:PT,nwarr:FT,nwArr:IT,nwarrow:GT,nwnear:_T,Oacute:zT,oacute:XT,oast:JT,Ocirc:YT,ocirc:ZT,ocir:QT,Ocy:KT,ocy:WT,odash:tE,Odblac:sE,odblac:oE,odiv:nE,odot:cE,odsold:rE,OElig:eE,oelig:aE,ofcir:iE,Ofr:lE,ofr:uE,ogon:pE,Ograve:dE,ograve:fE,ogt:gE,ohbar:mE,ohm:hE,oint:bE,olarr:vE,olcir:wE,olcross:qE,oline:yE,olt:xE,Omacr:LE,omacr:TE,Omega:EE,omega:SE,Omicron:DE,omicron:AE,omid:kE,ominus:NE,Oopf:RE,oopf:jE,opar:CE,OpenCurlyDoubleQuote:UE,OpenCurlyQuote:HE,operp:$E,oplus:VE,orarr:BE,Or:ME,or:OE,ord:PE,order:FE,orderof:IE,ordf:GE,ordm:_E,origof:zE,oror:XE,orslope:JE,orv:YE,oS:ZE,Oscr:QE,oscr:KE,Oslash:WE,oslash:t1,osol:s1,Otilde:o1,otilde:n1,otimesas:c1,Otimes:r1,otimes:e1,Ouml:a1,ouml:i1,ovbar:l1,OverBar:u1,OverBrace:p1,OverBracket:d1,OverParenthesis:f1,para:g1,parallel:m1,par:h1,parsim:b1,parsl:v1,part:w1,PartialD:q1,Pcy:y1,pcy:x1,percnt:L1,period:T1,permil:E1,perp:S1,pertenk:D1,Pfr:A1,pfr:k1,Phi:N1,phi:R1,phiv:j1,phmmat:C1,phone:U1,Pi:H1,pi:$1,pitchfork:V1,piv:B1,planck:M1,planckh:O1,plankv:P1,plusacir:F1,plusb:I1,pluscir:G1,plus:_1,plusdo:z1,plusdu:X1,pluse:J1,PlusMinus:Y1,plusmn:Z1,plussim:Q1,plustwo:K1,pm:W1,Poincareplane:tS,pointint:sS,popf:oS,Popf:nS,pound:cS,prap:rS,Pr:eS,pr:aS,prcue:iS,precapprox:lS,prec:uS,preccurlyeq:pS,Precedes:dS,PrecedesEqual:fS,PrecedesSlantEqual:gS,PrecedesTilde:mS,preceq:hS,precnapprox:bS,precneqq:vS,precnsim:wS,pre:qS,prE:yS,precsim:xS,prime:LS,Prime:TS,primes:ES,prnap:SS,prnE:DS,prnsim:AS,prod:kS,Product:NS,profalar:RS,profline:jS,profsurf:CS,prop:US,Proportional:HS,Proportion:$S,propto:VS,prsim:BS,prurel:MS,Pscr:OS,pscr:PS,Psi:FS,psi:IS,puncsp:GS,Qfr:_S,qfr:zS,qint:XS,qopf:JS,Qopf:YS,qprime:ZS,Qscr:QS,qscr:KS,quaternions:WS,quatint:tD,quest:sD,questeq:oD,quot:nD,QUOT:cD,rAarr:rD,race:eD,Racute:aD,racute:iD,radic:lD,raemptyv:uD,rang:pD,Rang:dD,rangd:fD,range:gD,rangle:mD,raquo:hD,rarrap:bD,rarrb:vD,rarrbfs:wD,rarrc:qD,rarr:yD,Rarr:xD,rArr:LD,rarrfs:TD,rarrhk:ED,rarrlp:SD,rarrpl:DD,rarrsim:AD,Rarrtl:kD,rarrtl:ND,rarrw:RD,ratail:jD,rAtail:CD,ratio:UD,rationals:HD,rbarr:$D,rBarr:VD,RBarr:BD,rbbrk:MD,rbrace:OD,rbrack:PD,rbrke:FD,rbrksld:ID,rbrkslu:GD,Rcaron:_D,rcaron:zD,Rcedil:XD,rcedil:JD,rceil:YD,rcub:ZD,Rcy:QD,rcy:KD,rdca:WD,rdldhar:tA,rdquo:sA,rdquor:oA,rdsh:nA,real:cA,realine:rA,realpart:eA,reals:aA,Re:iA,rect:lA,reg:uA,REG:pA,ReverseElement:dA,ReverseEquilibrium:fA,ReverseUpEquilibrium:gA,rfisht:mA,rfloor:hA,rfr:bA,Rfr:vA,rHar:wA,rhard:qA,rharu:yA,rharul:xA,Rho:LA,rho:TA,rhov:EA,RightAngleBracket:SA,RightArrowBar:DA,rightarrow:AA,RightArrow:kA,Rightarrow:NA,RightArrowLeftArrow:RA,rightarrowtail:jA,RightCeiling:CA,RightDoubleBracket:UA,RightDownTeeVector:HA,RightDownVectorBar:$A,RightDownVector:VA,RightFloor:BA,rightharpoondown:MA,rightharpoonup:OA,rightleftarrows:PA,rightleftharpoons:FA,rightrightarrows:IA,rightsquigarrow:GA,RightTeeArrow:_A,RightTee:zA,RightTeeVector:XA,rightthreetimes:JA,RightTriangleBar:YA,RightTriangle:ZA,RightTriangleEqual:QA,RightUpDownVector:KA,RightUpTeeVector:WA,RightUpVectorBar:tk,RightUpVector:sk,RightVectorBar:ok,RightVector:nk,ring:ck,risingdotseq:rk,rlarr:ek,rlhar:ak,rlm:ik,rmoustache:lk,rmoust:uk,rnmid:pk,roang:dk,roarr:fk,robrk:gk,ropar:mk,ropf:hk,Ropf:bk,roplus:vk,rotimes:wk,RoundImplies:qk,rpar:yk,rpargt:xk,rppolint:Lk,rrarr:Tk,Rrightarrow:Ek,rsaquo:Sk,rscr:Dk,Rscr:Ak,rsh:kk,Rsh:Nk,rsqb:Rk,rsquo:jk,rsquor:Ck,rthree:Uk,rtimes:Hk,rtri:$k,rtrie:Vk,rtrif:Bk,rtriltri:Mk,RuleDelayed:Ok,ruluhar:Pk,rx:Fk,Sacute:Ik,sacute:Gk,sbquo:_k,scap:zk,Scaron:Xk,scaron:Jk,Sc:Yk,sc:Zk,sccue:Qk,sce:Kk,scE:Wk,Scedil:tN,scedil:sN,Scirc:oN,scirc:nN,scnap:cN,scnE:rN,scnsim:eN,scpolint:aN,scsim:iN,Scy:lN,scy:uN,sdotb:pN,sdot:dN,sdote:fN,searhk:gN,searr:mN,seArr:hN,searrow:bN,sect:vN,semi:wN,seswar:qN,setminus:yN,setmn:xN,sext:LN,Sfr:TN,sfr:EN,sfrown:SN,sharp:DN,SHCHcy:AN,shchcy:kN,SHcy:NN,shcy:RN,ShortDownArrow:jN,ShortLeftArrow:CN,shortmid:UN,shortparallel:HN,ShortRightArrow:$N,ShortUpArrow:VN,shy:BN,Sigma:MN,sigma:ON,sigmaf:PN,sigmav:FN,sim:IN,simdot:GN,sime:_N,simeq:zN,simg:XN,simgE:JN,siml:YN,simlE:ZN,simne:QN,simplus:KN,simrarr:WN,slarr:tR,SmallCircle:sR,smallsetminus:oR,smashp:nR,smeparsl:cR,smid:rR,smile:eR,smt:aR,smte:iR,smtes:lR,SOFTcy:uR,softcy:pR,solbar:dR,solb:fR,sol:gR,Sopf:mR,sopf:hR,spades:bR,spadesuit:vR,spar:wR,sqcap:qR,sqcaps:yR,sqcup:xR,sqcups:LR,Sqrt:TR,sqsub:ER,sqsube:SR,sqsubset:DR,sqsubseteq:AR,sqsup:kR,sqsupe:NR,sqsupset:RR,sqsupseteq:jR,square:CR,Square:UR,SquareIntersection:HR,SquareSubset:$R,SquareSubsetEqual:VR,SquareSuperset:BR,SquareSupersetEqual:MR,SquareUnion:OR,squarf:PR,squ:FR,squf:IR,srarr:GR,Sscr:_R,sscr:zR,ssetmn:XR,ssmile:JR,sstarf:YR,Star:ZR,star:QR,starf:KR,straightepsilon:WR,straightphi:tj,strns:sj,sub:oj,Sub:nj,subdot:cj,subE:rj,sube:ej,subedot:aj,submult:ij,subnE:lj,subne:uj,subplus:pj,subrarr:dj,subset:fj,Subset:gj,subseteq:mj,subseteqq:hj,SubsetEqual:bj,subsetneq:vj,subsetneqq:wj,subsim:qj,subsub:yj,subsup:xj,succapprox:Lj,succ:Tj,succcurlyeq:Ej,Succeeds:Sj,SucceedsEqual:Dj,SucceedsSlantEqual:Aj,SucceedsTilde:kj,succeq:Nj,succnapprox:Rj,succneqq:jj,succnsim:Cj,succsim:Uj,SuchThat:Hj,sum:$j,Sum:Vj,sung:Bj,sup1:Mj,sup2:Oj,sup3:Pj,sup:Fj,Sup:Ij,supdot:Gj,supdsub:_j,supE:zj,supe:Xj,supedot:Jj,Superset:Yj,SupersetEqual:Zj,suphsol:Qj,suphsub:Kj,suplarr:Wj,supmult:t0,supnE:s0,supne:o0,supplus:n0,supset:c0,Supset:r0,supseteq:e0,supseteqq:a0,supsetneq:i0,supsetneqq:l0,supsim:u0,supsub:p0,supsup:d0,swarhk:f0,swarr:g0,swArr:m0,swarrow:h0,swnwar:b0,szlig:v0,Tab:w0,target:q0,Tau:y0,tau:x0,tbrk:L0,Tcaron:T0,tcaron:E0,Tcedil:S0,tcedil:D0,Tcy:A0,tcy:k0,tdot:N0,telrec:R0,Tfr:j0,tfr:C0,there4:U0,therefore:H0,Therefore:$0,Theta:V0,theta:B0,thetasym:M0,thetav:O0,thickapprox:P0,thicksim:F0,ThickSpace:I0,ThinSpace:G0,thinsp:_0,thkap:z0,thksim:X0,THORN:J0,thorn:Y0,tilde:Z0,Tilde:Q0,TildeEqual:K0,TildeFullEqual:W0,TildeTilde:tC,timesbar:sC,timesb:oC,times:nC,timesd:cC,tint:rC,toea:eC,topbot:aC,topcir:iC,top:lC,Topf:uC,topf:pC,topfork:dC,tosa:fC,tprime:gC,trade:mC,TRADE:hC,triangle:bC,triangledown:vC,triangleleft:wC,trianglelefteq:qC,triangleq:yC,triangleright:xC,trianglerighteq:LC,tridot:TC,trie:EC,triminus:SC,TripleDot:DC,triplus:AC,trisb:kC,tritime:NC,trpezium:RC,Tscr:jC,tscr:CC,TScy:UC,tscy:HC,TSHcy:$C,tshcy:VC,Tstrok:BC,tstrok:MC,twixt:OC,twoheadleftarrow:PC,twoheadrightarrow:FC,Uacute:IC,uacute:GC,uarr:_C,Uarr:zC,uArr:XC,Uarrocir:JC,Ubrcy:YC,ubrcy:ZC,Ubreve:QC,ubreve:KC,Ucirc:WC,ucirc:tU,Ucy:sU,ucy:oU,udarr:nU,Udblac:cU,udblac:rU,udhar:eU,ufisht:aU,Ufr:iU,ufr:lU,Ugrave:uU,ugrave:pU,uHar:dU,uharl:fU,uharr:gU,uhblk:mU,ulcorn:hU,ulcorner:bU,ulcrop:vU,ultri:wU,Umacr:qU,umacr:yU,uml:xU,UnderBar:LU,UnderBrace:TU,UnderBracket:EU,UnderParenthesis:SU,Union:DU,UnionPlus:AU,Uogon:kU,uogon:NU,Uopf:RU,uopf:jU,UpArrowBar:CU,uparrow:UU,UpArrow:HU,Uparrow:$U,UpArrowDownArrow:VU,updownarrow:BU,UpDownArrow:MU,Updownarrow:OU,UpEquilibrium:PU,upharpoonleft:FU,upharpoonright:IU,uplus:GU,UpperLeftArrow:_U,UpperRightArrow:zU,upsi:XU,Upsi:JU,upsih:YU,Upsilon:ZU,upsilon:QU,UpTeeArrow:KU,UpTee:WU,upuparrows:tH,urcorn:sH,urcorner:oH,urcrop:nH,Uring:cH,uring:rH,urtri:eH,Uscr:aH,uscr:iH,utdot:lH,Utilde:uH,utilde:pH,utri:dH,utrif:fH,uuarr:gH,Uuml:mH,uuml:hH,uwangle:bH,vangrt:vH,varepsilon:wH,varkappa:qH,varnothing:yH,varphi:xH,varpi:LH,varpropto:TH,varr:EH,vArr:SH,varrho:DH,varsigma:AH,varsubsetneq:kH,varsubsetneqq:NH,varsupsetneq:RH,varsupsetneqq:jH,vartheta:CH,vartriangleleft:UH,vartriangleright:HH,vBar:$H,Vbar:VH,vBarv:BH,Vcy:MH,vcy:OH,vdash:PH,vDash:FH,Vdash:IH,VDash:GH,Vdashl:_H,veebar:zH,vee:XH,Vee:JH,veeeq:YH,vellip:ZH,verbar:QH,Verbar:KH,vert:WH,Vert:t$,VerticalBar:s$,VerticalLine:o$,VerticalSeparator:n$,VerticalTilde:c$,VeryThinSpace:r$,Vfr:e$,vfr:a$,vltri:i$,vnsub:l$,vnsup:u$,Vopf:p$,vopf:d$,vprop:f$,vrtri:g$,Vscr:m$,vscr:h$,vsubnE:b$,vsubne:v$,vsupnE:w$,vsupne:q$,Vvdash:y$,vzigzag:x$,Wcirc:L$,wcirc:T$,wedbar:E$,wedge:S$,Wedge:D$,wedgeq:A$,weierp:k$,Wfr:N$,wfr:R$,Wopf:j$,wopf:C$,wp:U$,wr:H$,wreath:$$,Wscr:V$,wscr:B$,xcap:M$,xcirc:O$,xcup:P$,xdtri:F$,Xfr:I$,xfr:G$,xharr:_$,xhArr:z$,Xi:X$,xi:J$,xlarr:Y$,xlArr:Z$,xmap:Q$,xnis:K$,xodot:W$,Xopf:tV,xopf:sV,xoplus:oV,xotime:nV,xrarr:cV,xrArr:rV,Xscr:eV,xscr:aV,xsqcup:iV,xuplus:lV,xutri:uV,xvee:pV,xwedge:dV,Yacute:fV,yacute:gV,YAcy:mV,yacy:hV,Ycirc:bV,ycirc:vV,Ycy:wV,ycy:qV,yen:yV,Yfr:xV,yfr:LV,YIcy:TV,yicy:EV,Yopf:SV,yopf:DV,Yscr:AV,yscr:kV,YUcy:NV,yucy:RV,yuml:jV,Yuml:CV,Zacute:UV,zacute:HV,Zcaron:$V,zcaron:VV,Zcy:BV,zcy:MV,Zdot:OV,zdot:PV,zeetrf:FV,ZeroWidthSpace:IV,Zeta:GV,zeta:_V,zfr:zV,Zfr:XV,ZHcy:JV,zhcy:YV,zigrarr:ZV,zopf:QV,Zopf:KV,Zscr:WV,zscr:tB,zwj:sB,zwnj:oB},nB="Á",cB="á",rB="Â",eB="â",aB="´",iB="Æ",lB="æ",uB="À",pB="à",dB="&",fB="&",gB="Å",mB="å",hB="Ã",bB="ã",vB="Ä",wB="ä",qB="¦",yB="Ç",xB="ç",LB="¸",TB="¢",EB="©",SB="©",DB="¤",AB="°",kB="÷",NB="É",RB="é",jB="Ê",CB="ê",UB="È",HB="è",$B="Ð",VB="ð",BB="Ë",MB="ë",OB="½",PB="¼",FB="¾",IB=">",GB=">",_B="Í",zB="í",XB="Î",JB="î",YB="¡",ZB="Ì",QB="ì",KB="¿",WB="Ï",tM="ï",sM="«",oM="<",nM="<",cM="¯",rM="µ",eM="·",aM=" ",iM="¬",lM="Ñ",uM="ñ",pM="Ó",dM="ó",fM="Ô",gM="ô",mM="Ò",hM="ò",bM="ª",vM="º",wM="Ø",qM="ø",yM="Õ",xM="õ",LM="Ö",TM="ö",EM="¶",SM="±",DM="£",AM='"',kM='"',NM="»",RM="®",jM="®",CM="§",UM="",HM="¹",$M="²",VM="³",BM="ß",MM="Þ",OM="þ",PM="×",FM="Ú",IM="ú",GM="Û",_M="û",zM="Ù",XM="ù",JM="¨",YM="Ü",ZM="ü",QM="Ý",KM="ý",WM="¥",tO="ÿ",sO={Aacute:nB,aacute:cB,Acirc:rB,acirc:eB,acute:aB,AElig:iB,aelig:lB,Agrave:uB,agrave:pB,amp:dB,AMP:fB,Aring:gB,aring:mB,Atilde:hB,atilde:bB,Auml:vB,auml:wB,brvbar:qB,Ccedil:yB,ccedil:xB,cedil:LB,cent:TB,copy:EB,COPY:SB,curren:DB,deg:AB,divide:kB,Eacute:NB,eacute:RB,Ecirc:jB,ecirc:CB,Egrave:UB,egrave:HB,ETH:$B,eth:VB,Euml:BB,euml:MB,frac12:OB,frac14:PB,frac34:FB,gt:IB,GT:GB,Iacute:_B,iacute:zB,Icirc:XB,icirc:JB,iexcl:YB,Igrave:ZB,igrave:QB,iquest:KB,Iuml:WB,iuml:tM,laquo:sM,lt:oM,LT:nM,macr:cM,micro:rM,middot:eM,nbsp:aM,not:iM,Ntilde:lM,ntilde:uM,Oacute:pM,oacute:dM,Ocirc:fM,ocirc:gM,Ograve:mM,ograve:hM,ordf:bM,ordm:vM,Oslash:wM,oslash:qM,Otilde:yM,otilde:xM,Ouml:LM,ouml:TM,para:EM,plusmn:SM,pound:DM,quot:AM,QUOT:kM,raquo:NM,reg:RM,REG:jM,sect:CM,shy:UM,sup1:HM,sup2:$M,sup3:VM,szlig:BM,THORN:MM,thorn:OM,times:PM,Uacute:FM,uacute:IM,Ucirc:GM,ucirc:_M,Ugrave:zM,ugrave:XM,uml:JM,Uuml:YM,uuml:ZM,Yacute:QM,yacute:KM,yen:WM,yuml:tO},oO="&",nO="'",cO=">",rO="<",eO='"',at={amp:oO,apos:nO,gt:cO,lt:rO,quot:eO};var G={};const aO={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 iO=k&&k.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(G,"__esModule",{value:!0});var Y=iO(aO),lO=String.fromCodePoint||function(t){var s="";return t>65535&&(t-=65536,s+=String.fromCharCode(t>>>10&1023|55296),t=56320|t&1023),s+=String.fromCharCode(t),s};function uO(t){return t>=55296&&t<=57343||t>1114111?"�":(t in Y.default&&(t=Y.default[t]),lO(t))}G.default=uO;var B=k&&k.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(T,"__esModule",{value:!0});T.decodeHTML=T.decodeHTMLStrict=T.decodeXML=void 0;var O=B(et),pO=B(sO),dO=B(at),Z=B(G),fO=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;T.decodeXML=it(dO.default);T.decodeHTMLStrict=it(O.default);function it(t){var s=lt(t);return function(o){return String(o).replace(fO,s)}}var Q=function(t,s){return t<s?1:-1};T.decodeHTML=function(){for(var t=Object.keys(pO.default).sort(Q),s=Object.keys(O.default).sort(Q),o=0,c=0;o<s.length;o++)t[c]===s[o]?(s[o]+=";?",c++):s[o]+=";";var e=new RegExp("&(?:"+s.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),r=lt(O.default);function a(i){return i.substr(-1)!==";"&&(i+=";"),r(i)}return function(i){return String(i).replace(e,a)}}();function lt(t){return function(o){if(o.charAt(1)==="#"){var c=o.charAt(2);return c==="X"||c==="x"?Z.default(parseInt(o.substr(3),16)):Z.default(parseInt(o.substr(2),10))}return t[o.slice(1,-1)]||o}}var h={},ut=k&&k.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(h,"__esModule",{value:!0});h.escapeUTF8=h.escape=h.encodeNonAsciiHTML=h.encodeHTML=h.encodeXML=void 0;var gO=ut(at),pt=ft(gO.default),dt=gt(pt);h.encodeXML=bt(pt);var mO=ut(et),_=ft(mO.default),hO=gt(_);h.encodeHTML=vO(_,hO);h.encodeNonAsciiHTML=bt(_);function ft(t){return Object.keys(t).sort().reduce(function(s,o){return s[t[o]]="&"+o+";",s},{})}function gt(t){for(var s=[],o=[],c=0,e=Object.keys(t);c<e.length;c++){var r=e[c];r.length===1?s.push("\\"+r):o.push(r)}s.sort();for(var a=0;a<s.length-1;a++){for(var i=a;i<s.length-1&&s[i].charCodeAt(1)+1===s[i+1].charCodeAt(1);)i+=1;var u=1+i-a;u<3||s.splice(a,u,s[a]+"-"+s[i])}return o.unshift("["+s.join("")+"]"),new RegExp(o.join("|"),"g")}var mt=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,bO=String.prototype.codePointAt!=null?function(t){return t.codePointAt(0)}:function(t){return(t.charCodeAt(0)-55296)*1024+t.charCodeAt(1)-56320+65536};function M(t){return"&#x"+(t.length>1?bO(t):t.charCodeAt(0)).toString(16).toUpperCase()+";"}function vO(t,s){return function(o){return o.replace(s,function(c){return t[c]}).replace(mt,M)}}var ht=new RegExp(dt.source+"|"+mt.source,"g");function wO(t){return t.replace(ht,M)}h.escape=wO;function qO(t){return t.replace(dt,M)}h.escapeUTF8=qO;function bt(t){return function(s){return s.replace(ht,function(o){return t[o]||M(o)})}}(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var s=T,o=h;function c(u,l){return(!l||l<=0?s.decodeXML:s.decodeHTML)(u)}t.decode=c;function e(u,l){return(!l||l<=0?s.decodeXML:s.decodeHTMLStrict)(u)}t.decodeStrict=e;function r(u,l){return(!l||l<=0?o.encodeXML:o.encodeHTML)(u)}t.encode=r;var a=h;Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return a.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return a.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return a.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return a.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return a.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return a.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return a.encodeHTML}});var i=T;Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return i.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return i.decodeXML}})})(rt);function yO(t,s){if(!(t instanceof s))throw new TypeError("Cannot call a class as a function")}function xO(t,s){for(var o=0;o<s.length;o++){var c=s[o];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(t,c.key,c)}}function LO(t,s,o){return s&&xO(t.prototype,s),t}function vt(t,s){var o=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=TO(t))||s){o&&(t=o);var c=0,e=function(){};return{s:e,n:function(){return c>=t.length?{done:!0}:{done:!1,value:t[c++]}},e:function(l){throw l},f:e}}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 r=!0,a=!1,i;return{s:function(){o=o.call(t)},n:function(){var l=o.next();return r=l.done,l},e:function(l){a=!0,i=l},f:function(){try{!r&&o.return!=null&&o.return()}finally{if(a)throw i}}}}function TO(t,s){if(t){if(typeof t=="string")return K(t,s);var o=Object.prototype.toString.call(t).slice(8,-1);if(o==="Object"&&t.constructor&&(o=t.constructor.name),o==="Map"||o==="Set")return Array.from(t);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return K(t,s)}}function K(t,s){(s==null||s>t.length)&&(s=t.length);for(var o=0,c=new Array(s);o<s;o++)c[o]=t[o];return c}var EO=rt,W={fg:"#FFF",bg:"#000",newline:!1,escapeXML:!1,stream:!1,colors:SO()};function SO(){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(s){j(0,5).forEach(function(o){j(0,5).forEach(function(c){return DO(s,o,c,t)})})}),j(0,23).forEach(function(s){var o=s+232,c=wt(s*10+8);t[o]="#"+c+c+c}),t}function DO(t,s,o,c){var e=16+t*36+s*6+o,r=t>0?t*40+55:0,a=s>0?s*40+55:0,i=o>0?o*40+55:0;c[e]=AO([r,a,i])}function wt(t){for(var s=t.toString(16);s.length<2;)s="0"+s;return s}function AO(t){var s=[],o=vt(t),c;try{for(o.s();!(c=o.n()).done;){var e=c.value;s.push(wt(e))}}catch(r){o.e(r)}finally{o.f()}return"#"+s.join("")}function tt(t,s,o,c){var e;return s==="text"?e=jO(o,c):s==="display"?e=NO(t,o,c):s==="xterm256Foreground"?e=U(t,c.colors[o]):s==="xterm256Background"?e=H(t,c.colors[o]):s==="rgb"&&(e=kO(t,o)),e}function kO(t,s){s=s.substring(2).slice(0,-1);var o=+s.substr(0,2),c=s.substring(5).split(";"),e=c.map(function(r){return("0"+Number(r).toString(16)).substr(-2)}).join("");return C(t,(o===38?"color:#":"background-color:#")+e)}function NO(t,s,o){s=parseInt(s,10);var c={"-1":function(){return"<br/>"},0:function(){return t.length&&qt(t)},1:function(){return S(t,"b")},3:function(){return S(t,"i")},4:function(){return S(t,"u")},8:function(){return C(t,"display:none")},9:function(){return S(t,"strike")},22:function(){return C(t,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return ot(t,"i")},24:function(){return ot(t,"u")},39:function(){return U(t,o.fg)},49:function(){return H(t,o.bg)},53:function(){return C(t,"text-decoration:overline")}},e;return c[s]?e=c[s]():4<s&&s<7?e=S(t,"blink"):29<s&&s<38?e=U(t,o.colors[s-30]):39<s&&s<48?e=H(t,o.colors[s-40]):89<s&&s<98?e=U(t,o.colors[8+(s-90)]):99<s&&s<108&&(e=H(t,o.colors[8+(s-100)])),e}function qt(t){var s=t.slice(0);return t.length=0,s.reverse().map(function(o){return"</"+o+">"}).join("")}function j(t,s){for(var o=[],c=t;c<=s;c++)o.push(c);return o}function RO(t){return function(s){return(t===null||s.category!==t)&&t!=="all"}}function st(t){t=parseInt(t,10);var s=null;return t===0?s="all":t===1?s="bold":2<t&&t<5?s="underline":4<t&&t<7?s="blink":t===8?s="hide":t===9?s="strike":29<t&&t<38||t===39||89<t&&t<98?s="foreground-color":(39<t&&t<48||t===49||99<t&&t<108)&&(s="background-color"),s}function jO(t,s){return s.escapeXML?EO.encodeXML(t):t}function S(t,s,o){return o||(o=""),t.push(s),"<".concat(s).concat(o?' style="'.concat(o,'"'):"",">")}function C(t,s){return S(t,"span",s)}function U(t,s){return S(t,"span","color:"+s)}function H(t,s){return S(t,"span","background-color:"+s)}function ot(t,s){var o;if(t.slice(-1)[0]===s&&(o=t.pop()),o)return"</"+s+">"}function CO(t,s,o){var c=!1,e=3;function r(){return""}function a(w,q){return o("xterm256Foreground",q),""}function i(w,q){return o("xterm256Background",q),""}function u(w){return s.newline?o("display",-1):o("text",w),""}function l(w,q){c=!0,q.trim().length===0&&(q="0"),q=q.trimRight(";").split(";");var R=vt(q),X;try{for(R.s();!(X=R.n()).done;){var Et=X.value;o("display",Et)}}catch(St){R.e(St)}finally{R.f()}return""}function E(w){return o("text",w),""}function x(w){return o("rgb",w),""}var p=[{pattern:/^\x08+/,sub:r},{pattern:/^\x1b\[[012]?K/,sub:r},{pattern:/^\x1b\[\(B/,sub:r},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:x},{pattern:/^\x1b\[38;5;(\d+)m/,sub:a},{pattern:/^\x1b\[48;5;(\d+)m/,sub:i},{pattern:/^\n/,sub:u},{pattern:/^\r+\n/,sub:u},{pattern:/^\r/,sub:u},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:l},{pattern:/^\x1b\[\d?J/,sub:r},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:r},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:r},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:E}];function d(w,q){q>e&&c||(c=!1,t=t.replace(w.pattern,w.sub))}var b=[],v=t,y=v.length;t:for(;y>0;){for(var D=0,z=0,Lt=p.length;z<Lt;D=++z){var Tt=p[D];if(d(Tt,D),t.length!==y){y=t.length;continue t}}if(t.length===y)break;b.push(0),y=t.length}return b}function UO(t,s,o){return s!=="text"&&(t=t.filter(RO(st(o))),t.push({token:s,data:o,category:st(o)})),t}var HO=function(){function t(s){yO(this,t),s=s||{},s.colors&&(s.colors=Object.assign({},W.colors,s.colors)),this.options=Object.assign({},W,s),this.stack=[],this.stickyStack=[]}return LO(t,[{key:"toHtml",value:function(o){var c=this;o=typeof o=="string"?[o]:o;var e=this.stack,r=this.options,a=[];return this.stickyStack.forEach(function(i){var u=tt(e,i.token,i.data,r);u&&a.push(u)}),CO(o.join(""),r,function(i,u){var l=tt(e,i,u,r);l&&a.push(l),r.stream&&(c.stickyStack=UO(c.stickyStack,i,u))}),e.length&&a.push(qt(e)),a.join("")}}]),t}(),$O=HO;const VO=Dt($O);function yt(){const t=nt();return g.useMemo(()=>new VO(t==="dark"?{fg:"#d6deeb",bg:"#121318",escapeXML:!0}:{fg:"#000000",bg:"#f3f3f3",escapeXML:!0}),[t])}function xt(t){return t.replace(/\u001b\[\d+A/g,"").replace(/\u001b\[\d+K/g,"")}const BO=Rt(L({type:m("epicshop:test-status-update"),timestamp:A()}),N([L({status:m("pending")}),L({status:m("pass")}),L({status:m("fail"),error:$()})])),MO=L({type:m("epicshop:test-step-update"),status:m("pass"),title:$(),timestamp:A()}),OO=N([MO,BO]);function PO({pathname:t,testFile:s}){const o=nt(),c=yt(),e=g.useRef(null),[r,a]=g.useState(null),[i,u]=g.useState([]);g.useEffect(()=>{function p(d){var y;if(d.source!==((y=e.current)==null?void 0:y.contentWindow)||"request"in d.data)return;const b=OO.safeParse(d.data,{path:["messageEvent","data"]});if(!b.success){console.error("Invalid message from test iframe",d.data,b.error);return}const{data:v}=b;v.type==="epicshop:test-status-update"&&(v.status==="pending"&&u([]),a(v)),v.type==="epicshop:test-step-update"&&u(D=>[...D,v])}return window.addEventListener("message",p),()=>{window.removeEventListener("message",p)}},[]);const l={pending:n.jsx(P,{size:14,"aria-label":"Pending"}),pass:n.jsx(f,{name:"CheckSmall","aria-label":"Passed",className:"text-emerald-700"}),fail:n.jsx(f,{name:"Remove","aria-label":"Failed",className:"text-foreground-destructive"}),unknown:n.jsx(f,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})}[(r==null?void 0:r.status)??"unknown"],E=i.sort((p,d)=>p.timestamp-d.timestamp),x={pass:n.jsx(f,{name:"CheckSmall","aria-label":"Passed"}),fail:n.jsx(f,{name:"Remove","aria-label":"Failed"}),unknown:n.jsx(f,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})};return n.jsx(n.Fragment,{children:n.jsx(kt,{className:"w-full",type:"multiple",children:n.jsx(Nt,{icon:l,title:s,forceMount:!0,children:n.jsxs("div",{className:"not-prose",children:[n.jsxs("div",{className:"flex flex-col gap-2 p-5 pt-3",children:[n.jsx("ul",{className:"flex flex-col gap-2",children:E.map((p,d)=>n.jsx("li",{children:n.jsxs("div",{className:"flex items-baseline gap-2 text-emerald-700",children:[n.jsxs("span",{children:[d+1,"."]}),n.jsx("span",{children:x[p.status]}),n.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",children:p.title})]})},p.timestamp+p.title))}),(r==null?void 0:r.status)==="fail"?n.jsxs("div",{className:"flex items-baseline gap-2 text-foreground-destructive",children:[n.jsxs("span",{children:[E.length+1,"."]}),n.jsx("span",{children:x.fail}),n.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",dangerouslySetInnerHTML:{__html:c.toHtml(xt(r.error))}})]}):null,n.jsx("iframe",{ref:e,title:s,src:t+s,className:"mt-5 min-h-[420px] w-full border bg-white",style:{colorScheme:o}})]}),n.jsxs("div",{className:"flex border-y",children:[n.jsx("button",{onClick:()=>{var p,d;return(d=(p=e.current)==null?void 0:p.contentWindow)==null?void 0:d.location.reload()},className:"border-r p-3",children:n.jsx(f,{name:"Refresh","aria-label":"Rerun Tests"})}),n.jsx("a",{href:t+s,target:"_blank",rel:"noreferrer",className:"border-r p-3",children:n.jsx(f,{name:"ExternalLink","aria-label":"Open in New Window"})})]})]})})})})}const FO=N([L({type:m("init"),exitCode:A().nullable().optional(),isRunning:jt(),output:ct(L({type:N([m("stdout"),m("stderr")]),content:$(),timestamp:A()}))}),L({type:N([m("stdout"),m("stderr")]),data:$(),timestamp:A()}),L({type:m("exit"),isRunning:m(!1),code:A().nullable()})]),IO=ct(FO);function GO(t,s){return s(t)}function _O({name:t}){const[s,o]=g.useReducer(GO,{version:0,isRunning:!1,exitCode:void 0,lines:[]}),c=yt(),{version:e,isRunning:r,exitCode:a,lines:i}=s,u=Ut(`/test?${new URLSearchParams({name:t})}&v=${e}`);return g.useEffect(()=>{if(!u)return;const l=JSON.parse(u),E=IO.safeParse(l);if(!E.success){console.error(E.error.flatten());return}for(const x of E.data)switch(x.type){case"exit":{const{isRunning:p,code:d}=x;o(b=>({...b,isRunning:p,exitCode:d}));break}case"init":{const{output:p,exitCode:d,isRunning:b}=x;o(v=>({...v,lines:p,exitCode:d,isRunning:b}));break}case"stderr":case"stdout":{const{type:p,data:d,timestamp:b}=x;o(v=>({...v,lines:[...v.lines,{type:p,content:d,timestamp:b}].sort((y,D)=>y.timestamp-D.timestamp),isRunning:!0}));break}}},[u]),n.jsxs("div",{className:"relative flex h-full w-full flex-col overflow-y-auto",children:[n.jsxs("div",{className:"flex h-12 w-full flex-shrink-0 items-center justify-between border-b",children:[n.jsxs("div",{className:"flex h-full items-center",children:[!r&&n.jsx(zO,{name:t,onRun:()=>{o(l=>({...l,exitCode:void 0,lines:[],version:l.version+1}))}}),r?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:n.jsx(P,{role:"status","aria-label":"Running Tests"})}),n.jsx(JO,{name:t})]}):null]}),!r&&a!==void 0&&n.jsx("p",{className:"pr-3.5 leading-none",children:a===0?"Tests passed":`Test failed (exit code ${String(a)})`}),!r&&a!==void 0&&n.jsx(XO,{name:t,onClear:()=>{o(l=>({...l,exitCode:void 0,lines:[]}))}})]}),n.jsxs("div",{className:"flex h-full flex-col gap-5 p-5",children:[n.jsx("p",{className:"font-mono text-sm font-medium uppercase",children:"Test Output"}),n.jsx("pre",{className:"shadow-on-scrollbox flex-1 overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:i.map(l=>n.jsx("code",{"data-type":l.type,dangerouslySetInnerHTML:{__html:c.toHtml(xt(l.content))}},l.timestamp))})]})]})}function zO({name:t,onRun:s}){const o=I(),c=F(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Run Tests":"Running Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"run",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:o.state==="idle"?n.jsx(f,{name:"TriangleSmall"}):n.jsx(P,{role:"status"})})})]})}function XO({name:t,onClear:s}){const o=I(),c=F(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Clear Tests":"Clearing Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"clear",className:"flex h-full flex-grow items-center justify-center border-l px-3.5",children:o.state==="idle"?n.jsx(f,{name:"Clear"}):n.jsx(f,{name:"Clear",className:"animate-pulse",role:"status"})})})]})}function JO({name:t,onStop:s}){const o=I(),c=F(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Stop Tests":"Stopping Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"stop",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:o.state==="idle"?n.jsx(f,{name:"Stop"}):n.jsx(f,{name:"Stop",className:"animate-pulse",role:"status"})})})]})}function aP({appInfo:t,problemAppName:s,allApps:o,isUpToDate:c}){return n.jsx($t,{playgroundAppName:t==null?void 0:t.appName,problemAppName:s,allApps:o,isUpToDate:c,children:n.jsx(YO,{playgroundAppInfo:t})})}function YO({playgroundAppInfo:t}){const[s,o]=g.useState(0);if(!Ct())return n.jsxs("div",{className:"w-full p-12",children:[n.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[n.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),n.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view and run the tests."})]}),n.jsx("div",{className:"h-16"}),n.jsx("p",{className:"pb-4",children:"Check out this video to see how the test tab works."}),n.jsx(At,{url:"https://www.epicweb.dev/tips/epic-workshop-test-tab-demo"})]});if(!t)return n.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:n.jsx("p",{children:"No tests here 😢 Sorry."})});if(t.test.type==="script")return n.jsx(_O,{name:t.name});if(t.test.type==="browser"){const{pathname:e}=t.test;return n.jsxs("div",{className:"flex h-full w-full flex-grow flex-col overflow-y-auto",children:[t.test.testFiles.map(r=>n.jsx("div",{children:n.jsx(PO,{pathname:e,testFile:r})},r)),n.jsx("div",{className:"px-3 py-[21px]",children:n.jsxs("button",{onClick:()=>o(r=>r+1),className:"flex items-center gap-2 font-mono text-sm uppercase leading-none",children:[n.jsx(f,{name:"Refresh","aria-hidden":!0})," Rerun All Tests"]})})]},s)}return n.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:n.jsx("p",{children:"No tests here 😢 Sorry."})})}export{$t as P,YO as T,aP as a};
|
|
4
|
-
//# sourceMappingURL=tests-
|
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var r=!0,a=!1,i;return{s:function(){o=o.call(t)},n:function(){var l=o.next();return r=l.done,l},e:function(l){a=!0,i=l},f:function(){try{!r&&o.return!=null&&o.return()}finally{if(a)throw i}}}}function TO(t,s){if(t){if(typeof t=="string")return K(t,s);var o=Object.prototype.toString.call(t).slice(8,-1);if(o==="Object"&&t.constructor&&(o=t.constructor.name),o==="Map"||o==="Set")return Array.from(t);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return K(t,s)}}function K(t,s){(s==null||s>t.length)&&(s=t.length);for(var o=0,c=new Array(s);o<s;o++)c[o]=t[o];return c}var EO=rt,W={fg:"#FFF",bg:"#000",newline:!1,escapeXML:!1,stream:!1,colors:SO()};function SO(){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(s){j(0,5).forEach(function(o){j(0,5).forEach(function(c){return DO(s,o,c,t)})})}),j(0,23).forEach(function(s){var o=s+232,c=wt(s*10+8);t[o]="#"+c+c+c}),t}function DO(t,s,o,c){var e=16+t*36+s*6+o,r=t>0?t*40+55:0,a=s>0?s*40+55:0,i=o>0?o*40+55:0;c[e]=AO([r,a,i])}function wt(t){for(var s=t.toString(16);s.length<2;)s="0"+s;return s}function AO(t){var s=[],o=vt(t),c;try{for(o.s();!(c=o.n()).done;){var e=c.value;s.push(wt(e))}}catch(r){o.e(r)}finally{o.f()}return"#"+s.join("")}function tt(t,s,o,c){var e;return s==="text"?e=jO(o,c):s==="display"?e=NO(t,o,c):s==="xterm256Foreground"?e=U(t,c.colors[o]):s==="xterm256Background"?e=H(t,c.colors[o]):s==="rgb"&&(e=kO(t,o)),e}function kO(t,s){s=s.substring(2).slice(0,-1);var o=+s.substr(0,2),c=s.substring(5).split(";"),e=c.map(function(r){return("0"+Number(r).toString(16)).substr(-2)}).join("");return C(t,(o===38?"color:#":"background-color:#")+e)}function NO(t,s,o){s=parseInt(s,10);var c={"-1":function(){return"<br/>"},0:function(){return t.length&&qt(t)},1:function(){return S(t,"b")},3:function(){return S(t,"i")},4:function(){return S(t,"u")},8:function(){return C(t,"display:none")},9:function(){return S(t,"strike")},22:function(){return C(t,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return ot(t,"i")},24:function(){return ot(t,"u")},39:function(){return U(t,o.fg)},49:function(){return H(t,o.bg)},53:function(){return C(t,"text-decoration:overline")}},e;return c[s]?e=c[s]():4<s&&s<7?e=S(t,"blink"):29<s&&s<38?e=U(t,o.colors[s-30]):39<s&&s<48?e=H(t,o.colors[s-40]):89<s&&s<98?e=U(t,o.colors[8+(s-90)]):99<s&&s<108&&(e=H(t,o.colors[8+(s-100)])),e}function qt(t){var s=t.slice(0);return t.length=0,s.reverse().map(function(o){return"</"+o+">"}).join("")}function j(t,s){for(var o=[],c=t;c<=s;c++)o.push(c);return o}function RO(t){return function(s){return(t===null||s.category!==t)&&t!=="all"}}function st(t){t=parseInt(t,10);var s=null;return t===0?s="all":t===1?s="bold":2<t&&t<5?s="underline":4<t&&t<7?s="blink":t===8?s="hide":t===9?s="strike":29<t&&t<38||t===39||89<t&&t<98?s="foreground-color":(39<t&&t<48||t===49||99<t&&t<108)&&(s="background-color"),s}function jO(t,s){return s.escapeXML?EO.encodeXML(t):t}function S(t,s,o){return o||(o=""),t.push(s),"<".concat(s).concat(o?' style="'.concat(o,'"'):"",">")}function C(t,s){return S(t,"span",s)}function U(t,s){return S(t,"span","color:"+s)}function H(t,s){return S(t,"span","background-color:"+s)}function ot(t,s){var o;if(t.slice(-1)[0]===s&&(o=t.pop()),o)return"</"+s+">"}function CO(t,s,o){var c=!1,e=3;function r(){return""}function a(w,q){return o("xterm256Foreground",q),""}function i(w,q){return o("xterm256Background",q),""}function u(w){return s.newline?o("display",-1):o("text",w),""}function l(w,q){c=!0,q.trim().length===0&&(q="0"),q=q.trimRight(";").split(";");var R=vt(q),X;try{for(R.s();!(X=R.n()).done;){var Et=X.value;o("display",Et)}}catch(St){R.e(St)}finally{R.f()}return""}function E(w){return o("text",w),""}function x(w){return o("rgb",w),""}var p=[{pattern:/^\x08+/,sub:r},{pattern:/^\x1b\[[012]?K/,sub:r},{pattern:/^\x1b\[\(B/,sub:r},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:x},{pattern:/^\x1b\[38;5;(\d+)m/,sub:a},{pattern:/^\x1b\[48;5;(\d+)m/,sub:i},{pattern:/^\n/,sub:u},{pattern:/^\r+\n/,sub:u},{pattern:/^\r/,sub:u},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:l},{pattern:/^\x1b\[\d?J/,sub:r},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:r},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:r},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:E}];function d(w,q){q>e&&c||(c=!1,t=t.replace(w.pattern,w.sub))}var b=[],v=t,y=v.length;t:for(;y>0;){for(var D=0,z=0,Lt=p.length;z<Lt;D=++z){var Tt=p[D];if(d(Tt,D),t.length!==y){y=t.length;continue t}}if(t.length===y)break;b.push(0),y=t.length}return b}function UO(t,s,o){return s!=="text"&&(t=t.filter(RO(st(o))),t.push({token:s,data:o,category:st(o)})),t}var HO=function(){function t(s){yO(this,t),s=s||{},s.colors&&(s.colors=Object.assign({},W.colors,s.colors)),this.options=Object.assign({},W,s),this.stack=[],this.stickyStack=[]}return LO(t,[{key:"toHtml",value:function(o){var c=this;o=typeof o=="string"?[o]:o;var e=this.stack,r=this.options,a=[];return this.stickyStack.forEach(function(i){var u=tt(e,i.token,i.data,r);u&&a.push(u)}),CO(o.join(""),r,function(i,u){var l=tt(e,i,u,r);l&&a.push(l),r.stream&&(c.stickyStack=UO(c.stickyStack,i,u))}),e.length&&a.push(qt(e)),a.join("")}}]),t}(),$O=HO;const VO=Dt($O);function yt(){const t=nt();return g.useMemo(()=>new VO(t==="dark"?{fg:"#d6deeb",bg:"#121318",escapeXML:!0}:{fg:"#000000",bg:"#f3f3f3",escapeXML:!0}),[t])}function xt(t){return t.replace(/\u001b\[\d+A/g,"").replace(/\u001b\[\d+K/g,"")}const BO=Rt(L({type:m("epicshop:test-status-update"),timestamp:A()}),N([L({status:m("pending")}),L({status:m("pass")}),L({status:m("fail"),error:$()})])),MO=L({type:m("epicshop:test-step-update"),status:m("pass"),title:$(),timestamp:A()}),OO=N([MO,BO]);function PO({pathname:t,testFile:s}){const o=nt(),c=yt(),e=g.useRef(null),[r,a]=g.useState(null),[i,u]=g.useState([]);g.useEffect(()=>{function p(d){var y;if(d.source!==((y=e.current)==null?void 0:y.contentWindow)||"request"in d.data)return;const b=OO.safeParse(d.data,{path:["messageEvent","data"]});if(!b.success){console.error("Invalid message from test iframe",d.data,b.error);return}const{data:v}=b;v.type==="epicshop:test-status-update"&&(v.status==="pending"&&u([]),a(v)),v.type==="epicshop:test-step-update"&&u(D=>[...D,v])}return window.addEventListener("message",p),()=>{window.removeEventListener("message",p)}},[]);const l={pending:n.jsx(F,{size:14,"aria-label":"Pending"}),pass:n.jsx(f,{name:"CheckSmall","aria-label":"Passed",className:"text-emerald-700"}),fail:n.jsx(f,{name:"Remove","aria-label":"Failed",className:"text-foreground-destructive"}),unknown:n.jsx(f,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})}[(r==null?void 0:r.status)??"unknown"],E=i.sort((p,d)=>p.timestamp-d.timestamp),x={pass:n.jsx(f,{name:"CheckSmall","aria-label":"Passed"}),fail:n.jsx(f,{name:"Remove","aria-label":"Failed"}),unknown:n.jsx(f,{name:"Question","aria-label":"Unknown",className:"animate-pulse"})};return n.jsx(n.Fragment,{children:n.jsx(kt,{className:"w-full",type:"multiple",children:n.jsx(Nt,{icon:l,title:s,forceMount:!0,children:n.jsxs("div",{className:"not-prose",children:[n.jsxs("div",{className:"flex flex-col gap-2 p-5 pt-3",children:[n.jsx("ul",{className:"flex flex-col gap-2",children:E.map((p,d)=>n.jsx("li",{children:n.jsxs("div",{className:"flex items-baseline gap-2 text-emerald-700",children:[n.jsxs("span",{children:[d+1,"."]}),n.jsx("span",{children:x[p.status]}),n.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",children:p.title})]})},p.timestamp+p.title))}),(r==null?void 0:r.status)==="fail"?n.jsxs("div",{className:"flex items-baseline gap-2 text-foreground-destructive",children:[n.jsxs("span",{children:[E.length+1,"."]}),n.jsx("span",{children:x.fail}),n.jsx("pre",{className:"max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",dangerouslySetInnerHTML:{__html:c.toHtml(xt(r.error))}})]}):null,n.jsx("iframe",{ref:e,title:s,src:t+s,className:"mt-5 min-h-[420px] w-full border bg-white",style:{colorScheme:o}})]}),n.jsxs("div",{className:"flex border-y",children:[n.jsx("button",{onClick:()=>{var p,d;return(d=(p=e.current)==null?void 0:p.contentWindow)==null?void 0:d.location.reload()},className:"border-r p-3",children:n.jsx(f,{name:"Refresh","aria-label":"Rerun Tests"})}),n.jsx("a",{href:t+s,target:"_blank",rel:"noreferrer",className:"border-r p-3",children:n.jsx(f,{name:"ExternalLink","aria-label":"Open in New Window"})})]})]})})})})}const FO=N([L({type:m("init"),exitCode:A().nullable().optional(),isRunning:jt(),output:ct(L({type:N([m("stdout"),m("stderr")]),content:$(),timestamp:A()}))}),L({type:N([m("stdout"),m("stderr")]),data:$(),timestamp:A()}),L({type:m("exit"),isRunning:m(!1),code:A().nullable()})]),IO=ct(FO);function GO(t,s){return s(t)}function _O({name:t}){const[s,o]=g.useReducer(GO,{version:0,isRunning:!1,exitCode:void 0,lines:[]}),c=yt(),{version:e,isRunning:r,exitCode:a,lines:i}=s,u=Ut(`/test?${new URLSearchParams({name:t})}&v=${e}`);return g.useEffect(()=>{if(!u)return;const l=JSON.parse(u),E=IO.safeParse(l);if(!E.success){console.error(E.error.flatten());return}for(const x of E.data)switch(x.type){case"exit":{const{isRunning:p,code:d}=x;o(b=>({...b,isRunning:p,exitCode:d}));break}case"init":{const{output:p,exitCode:d,isRunning:b}=x;o(v=>({...v,lines:p,exitCode:d,isRunning:b}));break}case"stderr":case"stdout":{const{type:p,data:d,timestamp:b}=x;o(v=>({...v,lines:[...v.lines,{type:p,content:d,timestamp:b}].sort((y,D)=>y.timestamp-D.timestamp),isRunning:!0}));break}}},[u]),n.jsxs("div",{className:"relative flex h-full w-full flex-col overflow-y-auto",children:[n.jsxs("div",{className:"flex h-12 w-full flex-shrink-0 items-center justify-between border-b",children:[n.jsxs("div",{className:"flex h-full items-center",children:[!r&&n.jsx(zO,{name:t,onRun:()=>{o(l=>({...l,exitCode:void 0,lines:[],version:l.version+1}))}}),r?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:n.jsx(F,{role:"status","aria-label":"Running Tests"})}),n.jsx(JO,{name:t})]}):null]}),!r&&a!==void 0&&n.jsx("p",{className:"pr-3.5 leading-none",children:a===0?"Tests passed":`Test failed (exit code ${String(a)})`}),!r&&a!==void 0&&n.jsx(XO,{name:t,onClear:()=>{o(l=>({...l,exitCode:void 0,lines:[]}))}})]}),n.jsxs("div",{className:"flex h-full flex-col gap-5 p-5",children:[n.jsx("p",{className:"font-mono text-sm font-medium uppercase",children:"Test Output"}),n.jsx("pre",{className:"shadow-on-scrollbox flex-1 overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:i.map(l=>n.jsx("code",{"data-type":l.type,dangerouslySetInnerHTML:{__html:c.toHtml(xt(l.content))}},l.timestamp))})]})]})}function zO({name:t,onRun:s}){const o=P(),c=I(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Run Tests":"Running Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"run",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:o.state==="idle"?n.jsx(f,{name:"TriangleSmall"}):n.jsx(F,{role:"status"})})})]})}function XO({name:t,onClear:s}){const o=P(),c=I(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Clear Tests":"Clearing Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"clear",className:"flex h-full flex-grow items-center justify-center border-l px-3.5",children:o.state==="idle"?n.jsx(f,{name:"Clear"}):n.jsx(f,{name:"Clear",className:"animate-pulse",role:"status"})})})]})}function JO({name:t,onStop:s}){const o=P(),c=I(),e=g.useRef(s);return g.useEffect(()=>{e.current=s},[s]),g.useEffect(()=>{var r,a;(r=o.data)!=null&&r.success&&((a=e.current)==null||a.call(e))},[o.data]),n.jsxs(o.Form,{method:"POST",action:"/test",className:"h-full",children:[c,n.jsx("input",{type:"hidden",name:"name",value:t}),n.jsx(V,{content:o.state==="idle"?"Stop Tests":"Stopping Tests...",children:n.jsx("button",{type:"submit",name:"intent",value:"stop",className:"flex h-full flex-grow items-center justify-center border-r px-3.5",children:o.state==="idle"?n.jsx(f,{name:"Stop"}):n.jsx(f,{name:"Stop",className:"animate-pulse",role:"status"})})})]})}function aP({appInfo:t,problemAppName:s,allApps:o,isUpToDate:c}){return n.jsx($t,{playgroundAppName:t==null?void 0:t.appName,problemAppName:s,allApps:o,isUpToDate:c,children:n.jsx(YO,{playgroundAppInfo:t})})}function YO({playgroundAppInfo:t}){const[s,o]=g.useState(0);if(!Ct())return n.jsxs("div",{className:"w-full p-12",children:[n.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[n.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),n.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view and run the tests."})]}),n.jsx("div",{className:"h-16"}),n.jsx("p",{className:"pb-4",children:"Check out this video to see how the test tab works."}),n.jsx(At,{url:"https://www.epicweb.dev/tips/epic-workshop-test-tab-demo"})]});if(!t)return n.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:n.jsx("p",{children:"No tests here 😢 Sorry."})});if(t.test.type==="script")return n.jsx(_O,{name:t.name});if(t.test.type==="browser"){const{pathname:e}=t.test;return n.jsxs("div",{className:"flex h-full w-full flex-grow flex-col overflow-y-auto",children:[t.test.testFiles.map(r=>n.jsx("div",{children:n.jsx(PO,{pathname:e,testFile:r})},r)),n.jsx("div",{className:"px-3 py-[21px]",children:n.jsxs("button",{onClick:()=>o(r=>r+1),className:"flex items-center gap-2 font-mono text-sm uppercase leading-none",children:[n.jsx(f,{name:"Refresh","aria-hidden":!0})," Rerun All Tests"]})})]},s)}return n.jsx("div",{className:"flex h-full items-center justify-center text-lg",children:n.jsx("p",{children:"No tests here 😢 Sorry."})})}export{$t as P,YO as T,aP as a};
|
|
4
|
+
//# sourceMappingURL=tests-7juFXgcY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tests-7juFXgcY.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=\"text-foreground-destructive animate-pulse\"\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","require$$3","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","g","toColorHexString","num","ref","results","_iterator","_step","r","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","_b","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]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as s,c as xt,l as T,d as q,ab as kt,ac as vt,ad as _t,ae as bt,D as wt,af as St,z as Et}from"./mermaid.core-
|
|
1
|
+
import{_ as s,c as xt,l as T,d as q,ab as kt,ac as vt,ad as _t,ae as bt,D as wt,af as St,z as Et}from"./mermaid.core-D4QVSd3D.js";import{d as nt}from"./arc-BgUWL_JM.js";import"./mdx-DD5XL3ew.js";import"./jsx-runtime-BjG_zV1W.js";import"./misc-yfWFSwMN.js";import"./chunk-QMGIS6GS-CTjj1G71.js";import"./index-BP1ceC2h.js";import"./epic-video-D_3otytp.js";import"./index-C0Fh_zu0.js";import"./tooltip-C6xKzWST.js";import"./pe-C53l4u-6.js";import"./online-CFV79-RX.js";import"./loading-CXEQXwx8.js";import"./user-Dmcddqge.js";import"./workshop-config-gFAnGhSV.js";import"./progress-bar-DTYORRrG.js";var X=function(){var n=s(function(f,i,a,d){for(a=a||{},d=f.length;d--;a[f[d]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],h=[1,12],c=[1,13],g=[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,d,u,y,o,S){var k=o.length-1;switch(y){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:u.addTask(o[k],0,""),this.$=o[k];break;case 16:u.addEvent(o[k].substr(2)),this.$=o[k];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:h,17:c,18:14,19:15,20:g,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:h,17:c,18:14,19:15,20:g,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 d=new Error(i);throw d.hash=a,d}},"parseError"),parse:s(function(i){var a=this,d=[0],u=[],y=[null],o=[],S=this.table,k="",M=0,P=0,B=2,J=1,O=o.slice.call(arguments,1),v=Object.create(this.lexer),E={yy:{}};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(E.yy[b]=this.yy[b]);v.setInput(i,E.yy),E.yy.lexer=v,E.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var L=v.yylloc;o.push(L);var A=v.options&&v.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(I){d.length=d.length-2*I,y.length=y.length-I,o.length=o.length-I}s(R,"popStack");function z(){var I;return I=u.pop()||v.lex()||J,typeof I!="number"&&(I instanceof Array&&(u=I,I=u.pop()),I=a.symbols_[I]||I),I}s(z,"lex");for(var w,C,N,K,F={},j,$,et,G;;){if(C=d[d.length-1],this.defaultActions[C]?N=this.defaultActions[C]:((w===null||typeof w>"u")&&(w=z()),N=S[C]&&S[C][w]),typeof N>"u"||!N.length||!N[0]){var Q="";G=[];for(j in S[C])this.terminals_[j]&&j>B&&G.push("'"+this.terminals_[j]+"'");v.showPosition?Q="Parse error on line "+(M+1)+`:
|
|
2
2
|
`+v.showPosition()+`
|
|
3
3
|
Expecting `+G.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Q="Parse error on line "+(M+1)+": Unexpected "+(w==J?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Q,{text:v.match,token:this.terminals_[w]||w,line:v.yylineno,loc:L,expected:G})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+w);switch(N[0]){case 1:d.push(w),y.push(v.yytext),o.push(v.yylloc),d.push(N[1]),w=null,P=v.yyleng,k=v.yytext,M=v.yylineno,L=v.yylloc;break;case 2:if($=this.productions_[N[1]][1],F.$=y[y.length-$],F._$={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},A&&(F._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),K=this.performAction.apply(F,[k,P,M,E.yy,N[1],y,o].concat(O)),typeof K<"u")return K;$&&(d=d.slice(0,-1*$*2),y=y.slice(0,-1*$),o=o.slice(0,-1*$)),d.push(this.productions_[N[1]][0]),y.push(F.$),o.push(F._$),et=S[d[d.length-2]][d[d.length-1]],d.push(et);break;case 3:return!0}}return!0},"parse")},x=function(){var f={EOF:1,parseError:s(function(a,d){if(this.yy.parser)this.yy.parser.parseError(a,d);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,d=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),d.length-1&&(this.yylineno-=d.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:d?(d.length===u.length?this.yylloc.first_column:0)+u[u.length-d.length].length-d[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
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()+`
|
|
@@ -58,5 +58,5 @@ Expecting `+G.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Q="Parse error on
|
|
|
58
58
|
.eventWrapper {
|
|
59
59
|
filter: brightness(120%);
|
|
60
60
|
}
|
|
61
|
-
`,"getStyles"),qt=Gt,
|
|
62
|
-
//# sourceMappingURL=timeline-definition-BDJGKUSR-
|
|
61
|
+
`,"getStyles"),qt=Gt,oe={db:at,renderer:Ot,parser:Tt,styles:qt};export{oe as diagram};
|
|
62
|
+
//# sourceMappingURL=timeline-definition-BDJGKUSR-1WjIsnZH.js.map
|