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